google tag

My Soundcloud Channel --- Testing :D

Thursday, April 26, 2007

今日のYouTube ダウンロードスクリプトの変造メモ

メモ----

以前こちらに書いたYouTubeデータダウンロードスクリプトはずーっと愛用しているのだが、最近ちょっと動作が変わった事に気がついた。

具体的には、旧スクリプトだとYouTube側のヘンテコなファイル名を引っ張った上にさらに指定したファイルを再度落としてしまう様になってしまった...

つまり同じファイルを二度、一つはYouTube側のファイル名、一つは同じものを指定したファイル名で....というムダな動き...なぜかしらないけど...

で探ってみると 中間のURL2 で ビデオデータそのものを引っ張ってしまうみたい、なのでスクリプトを変造して対処...

-----
youtube-custom.sh


#!/bin/sh
# $Id: youtube.sh 496 2006-06-05 23:37:35Z berto $
#if [ "$#" != "1" ]; then
# echo "YouTube Video Downloader"
# echo "Written by Alberto Garcia "
# echo "Homepage: http://people.igalia.com/berto/"
# echo
# echo "Usage:"
# echo " youtube.sh http://www.youtube.com/watch?v="
# echo " or"
# echo " youtube.sh "
# echo
# exit 64
#fi
VID=$(echo "$1"|sed "s/.*v=\([^&]*\).*/\1/")
URL1="http://www.youtube.com/watch?v=$VID"
echo -n "Getting $URL1 ..."
PARAM="$(wget -q -O - "$URL1"|grep watch_fullscreen|cut -d '&' -f 3)"
echo " done."
URL2="http://www.youtube.com/get_video?video_id=$VID&$PARAM"
echo -n "Getting $URL2 ..."
#URL3="$(wget -S "$URL2" 2>&1|sed -n /Location:/s/.*http:/http:/p)" #<---- old scheme echo " done." #echo "Video address is $URL3" #exec wget -O "$2.flv" "$URL3" #<---old scheme exec wget -O "$2.flv" "$URL2" #<---current scheme echo "done"



youtube.sh オリジナルからの変造箇所は
入力チェックを無視させて
URL2で直接ダウンロードさせる <---今回の変造点
youtube-custom URL filename
とURLと保存したい任意のファイル名を指定する
---
あいかわらずへっぽこ、だけど自分的に便利なスクリプト... これがないと TP600でYouTubeが見られない。TP600ではCPU的にFlashでの動画再生は無理なのだ....

---
追補

その後 YouTube の仕様変更があった様で、このスクリプトはもはや使えません....