iPod touchが届いたー!
この連休は家から出られなくなったので、iPod touchをいじり倒す予定です。
せっかくなので、Plaggerを使って、ニコニコ動画のマイリストから動画Podcastを生成してみました。ニコニコ動画 => Podcast => iTunes => iPod touch が自動できるようになるので、いつでも素敵動画が持ち歩けるように!
実際にやってみた
ではまず、おもむろにお気に入りの動画をマイリストに登録します。いかにも怪しげなマイリストです。
このマイリストのRSSをもとにPlaggerで動画Podcastを生成します。Plaggerの野良プラグインに、Filter::FetchNicoVideoとFilter::FFmpegがあるのでこれを利用します。詳しくは後述。
できあがったPodcastはiTunesではこんな感じに見えますよ。
ここまでくれば、あとは、これをiPod touchに同期させるだけですね。しばし待ちます。
ちゃんと読み込めたー!iPod touchではこんな感じで表示されます。
最近のヒットは「お嫁にしなさい!」
iPod touchサイコウサイコウ。
どうやるの?
このアイディア自体はゆーすけべーさんがやっていたものを参考にさせてもらいました。ありがとうございます。yusukebe++。参考: Plaggerでニコニコ動画のFLVとコメントを一括ダウンロード!
というか、ほとんどそのまんまで、ゆーすけべーさんの作ったモジュールを利用してたり。ただ、動作しないところもあったので、ちょっとだけ手を入れています。
Filter::FetchNicoVideoはニコニコ動画の新認証方式に対応してなかったので、perl - ニコニコ動画ダウンローダー新認証対応版のコードをマージして対応させました。
mizzyさん作のFilter::FFmpegはオプションの指定方法が手元のffmpegと違ったので、とりあえず、強引にオプションをそのまま渡せるようにしてあります。また、ニコニコ動画のFLVは動画のアスペクト比が4:3のものと、16:9のものが混在しているのでFLV::Infoモジュールをつかってその判定だけやっています。以下のようなコードになりました。
# アスペクト比によって出力サイズを変える use FLV::Info; my $reader = FLV::Info->new(); $reader->parse($flv_path); my %info = $reader->get_info; my $height = $info{video_height} || $info{meta_height}; my $width = $info{video_width} || $info{meta_width}; my $s; # ffmpegに渡すサイズ my $aspect; # ffmpegに渡すアスペクト比 if ($width/$height > 1.5) { # 16:9 $s = "640x360"; $aspect = '16:9'; } else { # 4:3 $s = "640x480"; $aspect = '4:3'; }
あとは、YAMLを書いてcronに仕込んでおくだけです。マシンの性能にもよりますが、作業用BGM120分とかをエンコードしない限り、夜に始めれば朝にはPodcastのできあがり。マイリスト登録をぽちぽちとするだけで、できあがるというのは、ちょっと楽しいですね。
一応、修正したプラグインのdiffとYAMLの例を置いておくので参考にやってみてください。変更後のこととか考えずに、修正しているのでひどいdiffになってます。Filter::FFmpegがflvからの変換専用になってるのも注意が必要です。微妙にうまく動いていないという報告も受けているので、問題を発見したらぜひ教えてください。勝手に直してもらってもかまいませんよー。
- 出版社/メーカー: Apple Computer
- 発売日: 2007/09/25
- メディア: エレクトロニクス
- クリック: 123回
- この商品を含むブログ (188件) を見る