最新 RSS

horiday blog

2010/01/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 の取得時にはちょっと不便かもしれませんね.


関連リンク