Filter::FLVInfo書いた

iPod touch向けのニコニコ動画のPodcastを生成するのときは、Filter::FFmpegを直接いじってたのだけど、
あまりかっこよくないので、FLV::Infoで情報を取り出す部分だけを、別のプラグインに分けました。

FLV::Infoでとりだした情報を$entry->meta->{flvinfo}に突っ込んでるだけ。以下のようにして、Rule::Expressionで分岐させるのに使えます。

plugins:
  - module: Subscription::Config
    config:
      # 略
  - module: Filter::FetchNicoVideo
    config:
      # 略

  - module: Filter::FLVInfo

  - module: Filter::FFmpeg
    rule:
      expression: "$args->{entry}->meta->{flvinfo}->{aspect} eq '4:3'"
    config:
      # アスペクト比が4:3の時の設定をここに書く

  - module: Filter::FFmpeg
    rule:
      expression: "$args->{entry}->meta->{flvinfo}->{aspect} eq '16:9'"
    config:
      # アスペクト比が16:9の時の設定をここに書く

これで修正してない元のFilter::FFmpegを使っても、FLVサイズに合わせた設定の場合分けが可能になりますね。ただし、ruleに書く条件は排他になってないと、何回も動画変換が走って大変うざい感じになります。

# ていうかFilter::FFmpegに直接option_string渡すように変えたのなんでだっけな?

とりあえず、CodeReposに上げといた。新認証/Cookie認証に対応にしたFetchNicoCastもCodeReposに上げるのが良いかな?