diff --git a/ani-cli b/ani-cli index 9416f4b..be194a1 100755 --- a/ani-cli +++ b/ani-cli @@ -23,6 +23,7 @@ help_text () { USAGE: $prog -h show this help text -d download episode + -a using alternate link (slow, high buffering, use only if normal is not working) -H continue where you left off EOF } @@ -39,10 +40,10 @@ err () { search_anime () { # get anime name along with its id - search=$(printf '%s' "$1" | tr ' ' '-' ) + search=$1 titlepattern=')".*/\1/p' | sed 1q + else curl -s "$embedded_video_url" | sed -n -E ' /^[[:space:]]*sources:/{ @@ -92,9 +96,6 @@ get_links () { q } ' - else - curl -s "$embedded_video_url" | - sed -n -E 's/^[[:space:]]*href="([^"]*)".*/\1/p' | sed 1q fi } @@ -215,17 +216,11 @@ open_episode () { # add 0 padding to the episode name episode=$(printf "%03d" $episode) { - curl -L -# -C - "$video_url" -o "$HOME/MOVIES/${anime_id}-${episode}.mp4" && + ffmpeg -headers "Referer: $embedded_video_url" -i "$video_url" \ + -c copy -threads 4 "${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" } - # episode=$(printf "%03d" $episode) - # { - # ffmpeg -headers "Referer: $embedded_video_url" -i "$video_url" \ - # -c copy "${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 } @@ -240,8 +235,9 @@ dep_ch "$player_fn" "curl" "sed" "grep" # option parsing is_download=0 +is_alter=0 scrape=query -while getopts 'hdH' OPT; do +while getopts 'hdaH' OPT; do case $OPT in h) help_text @@ -250,6 +246,9 @@ while getopts 'hdH' OPT; do d) is_download=1 ;; + a) + is_alter=1 + ;; H) scrape=history ;; @@ -305,6 +304,7 @@ 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(high quality, slow, use if normal is in low quality)" 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 @@ -326,6 +326,11 @@ while :; do r) episode=$((episode)) ;; + R) + is_alter=1 + episode=$((episode)) + is_alter=0 + ;; q) break;;