今日のスレ

ニコニコ生放送ってけしからんな その285
http://dubai.2ch.net/test/read.cgi/morningcoffee/1264925209/
ニコニコ生放送ってけしからんな その284
http://dubai.2ch.net/test/read.cgi/morningcoffee/1264874427/
ニコニコ生放送ってけしからんな その284
http://dubai.2ch.net/test/read.cgi/morningcoffee/1264874375/
ニコニコ生放送ってけしからんな その284
http://dubai.2ch.net/test/read.cgi/morningcoffee/1264874317/
若干スレ乱立気味に
去る人がいる一方新人さんも

ニコニコ生放送一般会員用タイムシフトツールnamareco

概要

  • 登録したコミュまたはユーザが配信を開始すると自動的に録画
  • Ruby版では録画したい配信URLの直接指定も可能
  • 一般会員でもタイムシフトしたいので作ってみた

ダウンロード

使い方

設定ファイル
  • 以下の設定ファイルを実行ファイルと同じフォルダに保存
  • account.txt
    • 一行目にアカウント名(メールアドレス)二行目にパスワードを記述
      • ログインIDとパスワードはブラウザと共用せず専用のアカウントを取得(ブラウザの接続が切れるため)
      • 必ず(9)時代のアカウントを利用((9)以前に取得したアカウントでは動作しないとの報告複数あり)
  • alert.txt
    • 録画したいコミュのURLまたは配信者のユーザIDを記述
    • 同時に二番組まで録画
    • 配信が三番組以上重なった場合はより上の行に記述された方を録画
    • コマンドラインから指示された配信URLは最優先で録画
  • config.yaml(書き換えなければ従来どおり使えるはず)
    • session: direct|ff|ie|gc
      • ログイン方法を指定
      • direct: 従来どおりaccount.txtで指定したメアドとパスワードを使って直接ログイン
      • ff: Firefoxのクッキーからセッション情報を取得
      • ie: Internet Explorerのクッキーからセッション情報を取得
      • gc: Google Chromeのクッキーからセッション情報を取得
      • ブラウザから取得するのはOSやブラウザのバージョンによってうまく動かないかも
    • filename: %lvid%_%caster%_%title%_%comname%(%comid%)
      • 出力ファイル名を指定
      • 上記は従来通りのファイル名にする場合
      • 必要に応じ以下のキーワードを使ってファイル名を指定
      • %lvid% lv数字(必ず含む必要がある)
      • %title% タイトル
      • %caster% 配信者名
      • %comid% コミュニティID-
      • %comname% コミュニティ名
    • cache_dir: cache/
      • ファイルを格納するフォルダを指定
      • 任意のフォルダを指定することができる(先頭の#はコメントを意味する)
    • reopen_files: true|false
      • trueにすると再接続時にFLVファイルとコメントファイルをそれぞれ別ファイルに分ける
    • detect_diffforms: true|false
      • trueにすると解像度音質変更時にFLVファイルとコメントファイルをそれぞれ別ファイルに分ける
    • tcpsocket_timeout: 数字
    • rtmp_read_timeout: 数字
      • 何秒間データを受け取らなかったら再接続するかを設定
      • デフォルト値は30秒
    • rtmp_connect_timeout: 数字
      • 何秒間rtmpのconnect()へ応答が無かったら再接続するかを設定
      • デフォルト値は2秒
    • debug: [0-4]
      • デバッグモードを指定するdebug行
      • 0から4まで指定可能で順に饒舌から無口になる
  • nico.pem
    • Windows版には同梱して配布
    • ただし安全な接続のためには各自で取得推奨(下記参照)
    • Firefox3.6から取得する方法
      1. https://secure.nicovideo.jp/にアクセス
      2. URLの左隣の緑の部分をクリック
      3. 「詳細を表示」をクリック
      4. 「証明書を表示」をクリック
      5. 「詳細」タブを開く
      6. 証明書の階層から「GTE Cyber Trust Global Root」を選択
      7. 「エクスポート」をクリック
      8. ファイルの種類「X509 証明書 (PEM)」で保存
      9. ファイル名をnico.pemにリネーム
      • IE8だとうまく取得できなかった
  1. ライブラリをダウンロード(Ruby版のみ)
    • 必要なのはMechanizeくらいのはず
  2. 起動
    • Windows
      • namarecowin.exeをダブルクリック
      • コマンドライン利用不可能
      • alert.txtに記述されたコミュあるいはユーザが起動以降に配信を開始したら録画
    • Ruby
    • 動画を記録したflvファイルとコメントを記録したxmlファイルが生成
  3. 録画
    • 動画とコメントはcache/フォルダ以下に保存
    • 動画およびコメントのファイル名は以下の通り
      • lv数字_配信者_タイトル_コミュ名(co数字).{flv,xml}
  4. 再生
    • ニコ動用のプレーヤ(たとえばひまたんぷれいや)を利用するとコメントも表示可能
      • 時刻合わせしていないマシンではコメントのタイミングが大幅にずれるかも
      • 時刻合わせしているマシンでも1秒程度の誤差は出てしまう
      • (ニコ生サーバから得られる情報の精度が秒単位なので)
    • VLC media playerでも再生できることを確認

アップデート

  • Windows
    • zipをダウンロードして解凍してフォルダ毎コピーすれば大丈夫なはず
  • Ruby
    • Git利用時
      • % git fetch origin
      • % git rebase origin/master
    • zipball利用時
      • zipをダウンロードして解凍してフォルダ毎コピーすれば大丈夫なはず

アンインストール

  • フォルダごと削除

Ruby版コマンドラインヘルプ

  • helpの英語がひどすぎて分からないと思うので日本語で書いてみた
exit:                   終了
reload:                 alert.txtを再読み込み
alert:                  alert.txtを表示
live_url:               配信URL録画開始
                        (ex. % http://live.nicovideo.jp/watch/lv10000000)
stop number:            number番目の録画を停止
                        (ex. % stop 1)
show:                   現在の録画状況を表示
community_url [number]: alert.txtのnumber行目にコミュニティURLを追加
                        numberは省略可能
                        (ex. % http://com.nicovideo.jp/community/co167641 1)
userid [number]:        alert.txtのnumber行目にユーザIDを追加
                        numberは省略可能
                        (ex. % 3059546 2)
del number:             number行目のコミュニティまたはユーザIDを消す
help:                   ヘルプを表示

特徴

  • サブ窓を使った場合は配信者の方の画面を録画し続ける(はず)
    • 逆にサブ窓でニコ動を流されても録画・録音できない
  • FLVフォーマットで録画
    • ファイルサイズが比較的小さい
  • コメントも保存
    • ニコ動用のプレイヤーを使って再生することでコメントの表示が可能

バグやTODO等

  • ニコ生側で仕様変更があるとすぐ使えなくなる可能性がある
    • パケット解析して作ったので柔軟性がないため
  • 再生時のシーク対応

ライセンス・免責等

  • copyingを参照下さい