YouTubeのflv

Rimoってflvをどうやって取得しているのかなぁ、って思ったら、Perlにライブラリあった。
WebService::YouTube::Util
TagTube: YouTubeからタグ検索して20個表示するビデオプレイヤー なるへそ。

flvを取得する肝心要の箇所をPHPで書くと大体こんな感じか。 [php num=1]<?php function get_youtube_url($video_id) { $video_url = 'http://youtube.com/?v='.$video_id; $data = file_get_contents($video_url); if (preg_match('/player2.swf\?([^"]+)",\s*"movie_player"/', $data, $m) != 0) { return 'http://youtube.com/get_video.php?'.$m[1]; } return ''; } $video_id = 'XXXXXXXX'; $url = get_youtube_url($video_id); $data=file_get_contents($url);

$fh = fopen($video_id.'.flv', 'w'); fwrite($fh, $data); fclose($fh);

exit();[/php] これでうまくダウンロードできる気がするのだが。。。

なお、(flvを扱える)Flashがないので本当にいいのか否かは未確認。
Flashがなくても、ffmpegを使えば多分変換できるので、CentOSにインストールしてみたが、なんか swf のフォーマットがないって怒られた。
ないことはないはずなのだけども眠いしまた今度。