#!/bin/bash useragent="Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37... nope, actually wget" mode=$1 help() { if test "$2" = "file"; then echo -e \ "Usage: $1 file URL FILE"\ "\nDownloads one video from URL (GoGoAnime-Page) to FILE." elif test "$2" = "search"; then echo -e \ "Usage: $1 search KEYWORDS [DIRECTORY]"\ "\nLists all links on the first result page at a search for KEYWORDS on GoGoAnime."\ "\nIf DIRECTORY is given, it will be created if it doesn't exist yet and all result videos will be downloaded to that directory." else echo -e \ "Usage: $1 file|search"\ "\nDownloads videos from GoGoAnime."\ "\n"\ "\nFor more help try: $1 file"\ "\n or: $1 search" fi } if test "$mode" = "search"; then text=$(echo $2 | tr " " "+") dir=$3 if test -z "$text"; then help $0 search exit 2 fi echo -n "Searching for $text ... " links=$(wget --user-agent="$useragent" -O - "http://www.gogoanime.com/?s=${text}" 2> /dev/null | grep "Permanent Link to" | awk -F"&2 vurl=$(wget --user-agent="$useragent" -q -O - "$1" 2> /dev/null| grep "url: " | grep '.flv\|.mp4' | tr '\"' "'" | awk -F"'" '{ print $2 }' 2> /dev/null) vurl=$(python2 -c 'import sys, urllib; print urllib.unquote(sys.argv[1])' $vurl) echo -e "[ \033[32mdone\033[0m ]" 1>&2 echo $vurl } download() { # first param: video url echo -n " Probing size... " size=$(wget --user-agent="$useragent" "$1" --spider --server-response -O - 2>&1 | grep "Content-Length: " | awk '{ print $2 }' | egrep ".{5}") echo -n $size if test $size -lt 20000000 ; then echo -e " \033[31m< 20 MB\033[0m" return 1 fi echo -e " > 20 MB" echo " Starting Download... " wget --user-agent="$useragent" -O "${file}" -c "$1" --progress=bar:force 2>&1 | tail -f -n +12 # echo -ne "\033[2A\033[0K" echo " Download completed." return 0 } echo -n " Try to extract playpanda-frame... " page=$(wget --user-agent="$useragent" -q -O - "${url}") purl=$(echo -e "${page}" | grep "playpanda" | sed -e "s/#038;//g" | awk -F'\"' '{ print $2; }' 2> /dev/null) if test -n "${purl}"; then echo -e "[ \033[32mdone\033[0m ]" download `extract $purl` if test "$?" == 0; then echo -n " overall download... " echo -e "[ \033[32mdone\033[0m ]" exit 0 fi echo -n " overall download... " fi echo -e "[ \033[31mfail\033[0m ]" echo -n " Try to extract videowing-frame... " page=$(wget --user-agent="$useragent" -q -O - "${url}") purl=$(echo -e "${page}" | grep "videowing" | sed -e "s/#038;//g" | awk -F'\"' '{ print $2; }' 2> /dev/null) if test -n "${purl}"; then echo -e "[ \033[32mdone\033[0m ]" download `extract $purl` if test "$?" == 0; then echo -n " overall download... " echo -e "[ \033[32mdone\033[0m ]" exit 0 fi echo -n " overall download... " fi echo -e "[ \033[31mfail\033[0m ]" echo -n " Try to extract playbb-frame... " page=$(wget --user-agent="$useragent" -q -O - "${url}") purl=$(echo -e "${page}" | grep "playbb.me" | sed -e "s/#038;//g" | awk -F'\"' '{ print $2; }' 2> /dev/null) if test -n "${purl}"; then echo -e "[ \033[32mdone\033[0m ]" download `extract $purl` if test "$?" == 0; then echo -n " overall download... " echo -e "[ \033[32mdone\033[0m ]" exit 0 fi echo -n " overall download... " fi echo -e "[ \033[31mfail\033[0m ]" echo -n " Try to extract easyvideo-frame... " page=$(wget --user-agent="$useragent" -q -O - "${url}") purl=$(echo -e "${page}" | grep "easyvideo.me" | sed -e "s/#038;//g" | awk -F'\"' '{ print $2; }' 2> /dev/null) if test -n "${purl}"; then echo -e "[ \033[32mdone\033[0m ]" download `extract $purl` if test "$?" == 0; then echo -n " overall download... " echo -e "[ \033[32mdone\033[0m ]" exit 0 fi echo -n " overall download... " fi echo -e "[ \033[31mfail\033[0m ]" # Add additional providers here echo -e " \033[31mPermanent fail!\033[0m" exit 1 else help $0 exit 2 fi