原石アラート −キャプチャ機能付きニコニコ生放送アラート−

概要

動作

  1. RSSで新着配信を取得
  2. 条件(genseki.yaml)にマッチする配信を取捨選択
  3. 映像をキャプチャ
    • 具体的にはnamarecoでflvを取得しffmpegでjpgに変換
  4. 新着配信をキャプ画とともにHTML(genseki.html)として出力

ダウンロード

条件

  • genseki.yamlに条件を記述
  • 条件はYAML形式で記述
    • title_ex
      • 除外タイトルを配列で記述
    • description_ex
      • 除外詳細を配列で記述
    • category_ex
      • 除外カテゴリを配列で記述
    • community_name_ex
      • 除外コミュニティ名を配列で記述
    • num_res_min
      • 最小レス数を記述
    • num_res_max
      • 最大レス数を記述
    • view_min
      • 最小来場者数を記述
    • view_max
      • 最大来場者数を記述
    • member_only
      • trueでコミュ限を除外
      • 自動加入機能作ってみたけどうまく動作しない
    • comlevel_min
      • 最小コミュレベルを記述
    • comlevel_max
      • 最大コミュレベルを記述
    • comcount_min
      • 最小コミュ人数を記述
    • comcount_max
      • 最大コミュ人数を記述
    • comdays_ago
      • 何日以内にコミュを作成したか

使い方

% ruby genseki.rb

出力例

  • ローカルディスクにHTML(genseki.html)として出力
  • 一列目に配信情報/二列目に配信キャプチャ/三列目にコミュ人数やレベル等


(一部画像を加工)

ToDo

  • 条件判定がハードコーディングされてしまっているため柔軟な判定ができない
    • たとえばこのtitleにマッチした場合は他の条件によらず必ずアラートする等が記述できない
    • データ中に判定の順序まで記述するにはどうすればいいのだろうか?

バグ等

  • 判明しているキャプチャに失敗する要因
    1. 黒画面配信
    2. namarecoのバグによりファイル取得に失敗した場合
    3. 生成されたFLVファイルがffmpegで変換できない場合
  • しばらく動かすとALERTスレッドがお亡くなりになる模様
    • ruby -dで動かしても原因不明
  • ヘッダとフッタのリンクは適当
    • 境界ら辺でリンク先がないことも
  • 自動refreshしているがそのタイミングでHTMLをrotateしているとファイルが見つからなくなる