2008-03-06
_ Plagger::Plugin::Filter::FetchNicoVideo でニコニコ動画(SP1) H.264 形式対応
2008-03-07 追記:Plagger::Plugin::Filter::FetchNicoVideo でニコニコ動画(SP1)対応(2)でニコニコムービーメーカにも対応した形に変更しています.
ニコニコ動画が H.264 に対応したので,Plagger::Plugin::Filter::FetchNicoVideo で FLV と H.264 を判別するようにしてみました.H.264 の動画は拡張子が mp4 でダウンロードするようにしています.とりあえず diff だけ.
Index: FetchNicoVideo.pm
===================================================================
--- FetchNicoVideo.pm (revision 7529)
+++ FetchNicoVideo.pm (working copy)
@@ -73,8 +73,12 @@
if ( $self->conf->{filename_encode} ) {
Encode::from_to( $filename, "utf-8", $self->conf->{filename_encode} );
}
- my $path = File::Spec->catfile( $self->conf->{dir}, $filename . ".flv" );
+ $enclosure->url =~ m!^http://[^/]+(?:smilevideo|nicovideo)\.jp/smile\?(v|m)=(?:[^.]+)\.\d+(?:low)?!;
+ my $ext = $1 eq 'v' ? 'flv' : 'mp4';
+
+ my $path = File::Spec->catfile( $self->conf->{dir}, $filename . ".$ext" );
+
unless ( -e $path ) {
#access video page
$ua->get("http://www.nicovideo.jp/watch/$video_id");
@@ -112,6 +116,7 @@
if ($res->header('Content-Length') ) {
$enclosure->length( $res->header('Content-Length') );
}
+ $enclosure->type( Plagger::Util::mime_type_of($path) );
$entry->add_enclosure($enclosure);
}
これまでだと,ダウンロードした FLV を MP4 に変換という部分が,H.264 動画の場合は必要ないこともあるかと思うので,enclosure の type を見るようにすると,振り分けることが可能です.config.yaml の一部はこんな感じ.
- module: Filter::FFmpeg
rule:
- expression: $args->{entry}->enclosure->type eq "video/x-flv"
[ツッコミを入れる]
- Firefox をインストールしたらまず行う設定(Firefox 2.0 版) - SmallStyle (2006-10-25)
- SmallStyle - Firefox をインストールしたらまず行う設定(Firefox 2.0 版)
- SmallStyle - Debian に Plagger をインストール
- Lightbox JS を使って画像表示をかっこよくみせてみる�� - SmallStyle (2006-01-03)
- SmallStyle - Plagger::Plugin::Filter::FetchNicoVideo でニコニコ動画(SP1) H.264 形式対応
- SmallStyle - YAML のための vim 設定メモ
- SmallStyle - Filter::EntryFullText の設定ファイルを書いてみる
- SmallStyle - Java Service Wrapper を使って NicoCache をWindows サービスとして登録する
- SmallStyle - Stylish でユーザスタイルシートの切り替えを手軽に , 仕事納め
- category プラグインを利用した タグクラウド 表示プラグイン - SmallStyle (2006-05-23)