[Linux] YouTube関連

夏休み中はたんまりYouTubeの動画URLをメモしておいたので、それを一括保存することにした。
Linuxではpythonスクリプトyoutube-dlというのがYouTubeの動画保存ソフトとして一般的らしい。
Python2.4以降でないと動かないらしい。debianのデフォルトはpython2.3.5なので、python2.4を別途ダウンロードしてきた。

apt-get install python2.4

また、youtube-dlを落としてきた後、pythonの参照PATHを/usr/bin/python2.4に変えること。これでようやく動くようになる。
ffmpegと組み合わせて以下の様なスクリプト組めば320x240の画面サイズのavi形式へのエンコードまで一括してやってくれるはず。

# download flv files
for url in $(cat url-list.txt)
do
./youtube-dl $url
done
# encode to avi
for file in *.flv
do
OUTFILE=${file%.flv}.avi
ffmpeg -i $file -s 320x240 $OUTFILE
done

また、YouTubeの動画はHash値で管理されているらしく16進数文字列の羅列になっているため、ファイル名からは内容がわからない。
最初YouTubeのサイトを参照してタイトルの名前に付け変えていたが、途中で面倒になり、以下のスクリプト組んでYouTubeサイトから動画ファイルのタイトルを取得して自動的にファイル名を
(YouTubeの該当タイトル)-(Hash値)の形式にリネームするようにした。LWP::Simpleは気軽にWebにアクセスしたい時に便利だ。

#!/usr/bin/perl

use LWP::Simple;
 while(<*.avi>) {
   if(/(\S+).avi/){
       $id= $1;
   }
   print "$id\n";

    $content = get("http://www.youtube.com/watch?v=$id");

    if($content =~ /\>YouTube - (.+)\

これで、Zaurusに移していつでもどこでもYouTubeの動画が参照出来るようになった。非常に便利な時代になったものである。

I bookmarked a lot of URLs of movie site at YouTube.com during summer holidays. Today is the last day of holidays so I decided to save all the movies.
I wrote the two scripts for saving movies. The first script is to download flv files from YouTube.com and encode to AVI format. I used a youtube-dl script. It can only work on python2.4 and debian is not normally using this version. So I had to install additional debian package named "python2.4".
The scond script is renaming the filename to (title at youtube site)-(Hash number) format. By using these scripts, I convert and rename movies and watching on my zaurus. It is very convenient!