mirror of
https://github.com/CoolnsX/repos_scripts.git
synced 2025-12-20 07:15:20 +05:30
further optimized ani-cli script
This commit is contained in:
51
ani-cli
51
ani-cli
@@ -65,37 +65,15 @@ get_embedded_video_link() {
|
||||
anime_id=$1
|
||||
ep_no=$2
|
||||
|
||||
# credits to fork: https://github.com/Dink4n/ani-cli for the fix
|
||||
if [ $is_alter -eq 0 ]; then
|
||||
curl -s "https://$site/$anime_id-episode-$ep_no" |
|
||||
sed -n -E 's/^[[:space:]]*<li class="dowloads"><a href="([^"]*)".*/\1/p'
|
||||
else
|
||||
curl -s "https://$site/$anime_id-episode-$ep_no" |
|
||||
sed -n -E '
|
||||
/^[[:space:]]*<a href="#" rel="100"/{
|
||||
s/.*data-video="([^"]*)".*/https:\1/p
|
||||
q
|
||||
}'
|
||||
fi
|
||||
curl -s "https://$site/$anime_id-episode-$ep_no" |
|
||||
sed -n -E 's/^[[:space:]]*<li class="dowloads"><a href="([^"]*)".*/\1/p'
|
||||
}
|
||||
|
||||
get_links () {
|
||||
embedded_video_url="$1"
|
||||
if [ $is_alter -eq 0 ]; then
|
||||
temp=$(curl -s "$embedded_video_url" |
|
||||
sed -n -E 's/^[[:space:]]*href="([^"]*)".*/\1/p')
|
||||
lol=$(echo "$temp" | sed -n 's/vidstreamingcdn/\0/p' | tail -1 | sed -n 's/\&\;/\&/p')
|
||||
[ -z "$lol" ] && lol=$(echo "$temp" | sed -n 's/loadfast/\0/p' | tail -1 | sed -n 's/\&\;/\&/p')
|
||||
echo "$lol"
|
||||
else
|
||||
curl -s "$embedded_video_url" |
|
||||
sed -n -E '
|
||||
/^[[:space:]]*sources:/{
|
||||
s/.*(https[^'\'']*).*/\1/p
|
||||
q
|
||||
}
|
||||
'
|
||||
fi
|
||||
curl -s "$embedded_video_url" |
|
||||
sed -n -E 's/^[[:space:]]*href="([^"]*)".*/\1/p' |
|
||||
grep -Eo "(http|https):\/\/.*com\/cdn.*expiry=[0-9]*" | tail -1 | sed 's/amp;//'
|
||||
}
|
||||
|
||||
dep_ch () {
|
||||
@@ -204,16 +182,10 @@ open_episode () {
|
||||
# add 0 padding to the episode name
|
||||
episode=$(printf "%03d" $episode)
|
||||
{
|
||||
if [ $is_alter -eq 1 ]; then
|
||||
ffmpeg -headers "Referer: $embedded_video_url" -i "$video_url" -c copy "${anime_id}-${episode}.mkv" &&
|
||||
printf "${c_green}Downloaded episode: %s${c_reset}\n" "$episode" ||
|
||||
printf "${c_red}Download failed episode: %s${c_reset}\n" "$episode"
|
||||
else
|
||||
# aria2c -x 16 -s 16 --referer $embedded_video_url "$video_url" --dir=MOVIES -o "${anime_id}-${episode}.mp4" &&
|
||||
aria2c --referer $embedded_video_url "$video_url" --dir=MOVIES -o "${anime_id}-${episode}.mp4" &&
|
||||
printf "${c_green}Downloaded episode: %s${c_reset}\n" "$episode" ||
|
||||
printf "${c_red}Download failed episode: %s${c_reset}\n" "$episode"
|
||||
fi
|
||||
}
|
||||
fi
|
||||
}
|
||||
@@ -229,8 +201,7 @@ dep_ch "$player_fn" "curl" "sed" "grep"
|
||||
|
||||
# option parsing
|
||||
is_download=0
|
||||
is_alter=0
|
||||
while getopts 'hdaH' OPT; do
|
||||
while getopts 'hd' OPT; do
|
||||
case $OPT in
|
||||
h)
|
||||
help_text
|
||||
@@ -239,9 +210,6 @@ while getopts 'hdaH' OPT; do
|
||||
d)
|
||||
is_download=1
|
||||
;;
|
||||
a)
|
||||
is_alter=1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
shift $((OPTIND - 1))
|
||||
@@ -279,7 +247,6 @@ while :; do
|
||||
printf "$c_blue[${c_cyan}%s$c_blue] $c_magenta%s$c_reset\n" "p" "previous episode"
|
||||
printf "$c_blue[${c_cyan}%s$c_blue] $c_yellow%s$c_reset\n" "s" "select episode"
|
||||
printf "$c_blue[${c_cyan}%s$c_blue] $c_magenta%s$c_reset\n" "r" "replay current episode"
|
||||
[ $is_alter -eq 0 ] && printf "$c_blue[${c_cyan}%s$c_blue] $c_magenta%s$c_reset\n" "R" "replay current episode(slow, use if normal is not working)"
|
||||
printf "$c_blue[${c_cyan}%s$c_blue] $c_red%s$c_reset\n" "q" "exit"
|
||||
printf "${c_blue}Enter choice:${c_green} "
|
||||
read choice
|
||||
@@ -305,12 +272,6 @@ while :; do
|
||||
episode=$((episode))
|
||||
open_episode "$selection_id" "$episode"
|
||||
;;
|
||||
R)
|
||||
is_alter=1
|
||||
episode=$((episode))
|
||||
open_episode "$selection_id" "$episode"
|
||||
is_alter=0
|
||||
;;
|
||||
|
||||
q)
|
||||
break;;
|
||||
|
||||
Reference in New Issue
Block a user