#!/bin/sh # # Copyright (c) 2006 Volker Uhrig and Benjamin Schweizer. All rights reserved. # # Abstract # ~~~~~~~~ # Downloads videos from Google Video and YouTube in FLV format, using the web # services at videodl.org and videodownloader.net. # # Authors # ~~~~~~~ # Benjamin Schweizer # Volker Uhrig # # Changes # ~~~~~~~ # 2006-10-19, schweizer: added google video support, added fallback, fixed argv2 # 2006-06-19, schweizer: added syntax checks and replaced wget+lynx with curl # 2006-05-21, volker: initial release # # Todo # ~~~~ # - nothing # function usage() { cat < [] uri: video uri, like http://youtube.com/watch?v=wizKUrUgFOw or http://video.google.com/videoplay?docid=3336384089449952745 filename: optional local filename HEREDOC } function get_data_uri() { WATCH_URI="${1}" #http://videodownloader.net/get/?url=http://youtube.com/watch?v=m7dnGo_2tZA echo -n "Searching for data uri (videodownloader.net) ... " DATA_URI=`curl --silent "http://videodownloader.net/get/?url=$1" -o - | \ grep -isE "a href=\"http://youtube.com|a href=\"http://vp.video.google.com" | \ sed "s/\&/\&/g" | \ sed "s/\">download link.*$//"` STATUS=$? if [ ${STATUS} ] && [ "${DATA_URI}" ]; then echo "done." return 0 fi echo "failed." echo "no resolvers left. giving up." return 1 } WATCH_URI="${1}" if [ $# -eq 1 ]; then FILENAME="-O" fi if [ $# -eq 2 ]; then FILENAME="-o$2" fi if [ "${FILENAME}" = "" ]; then usage exit 1 fi get_data_uri "${WATCH_URI}" || exit 1 #echo $DATA_URI echo -n "Downloading data ... " curl --silent --location "${DATA_URI}" "${FILENAME}" STATUS=$? if [ ! ${STATUS} ]; then echo "failed." exit 1 fi echo "done." # eof.