2010/1/15
■ [perl] YouTube から高画質な flv を取得する perl スクリプト
職場で知り合いから flv だけを取得するプログラムを作って欲しいと言わたので作ってみました.get-youtubeflv.pl(後述) を下記のように実行します.実行には WebService::YouTube::Util が必要です.Ubuntu や debian などでは libwebservice-youtube-perl というパッケージがあるようです.
% perl get-youtubeflv.pl videoid > output.flv
videoid は http://www.youtube.com/watch?v=ETnQ2TDqCZM といった url の v= に続く文字列です.
#!/usr/bin/env perl # get-youtubeflv.pl use strict; use WebService::YouTube::Util; use LWP::Simple; my $video_id = shift @ARGV or "ETnQ2TDqCZM"; my $uri = WebService::YouTube::Util->get_video_uri($video_id); $uri .= "&fmt=35"; my $content = get($uri); print $content;
高画質な flv の取得にはここに書かれている fmt の種類のまとめから手頃に使える fmt=35 を選びました.
- fmt=35
- 次期 "高画質"
- flv: H264+AAC
- fmt=22
- HD画質
- mp4: H264+AAC
とても簡単なプログラムなので,取得の途中経過は表示しません.サイズの大きな flv の取得時にはちょっと不便かもしれませんね.
関連リンク