rtmpdump.exeでニコ生を保存する

保存に成功した引数をメモっておく。
2011/03/28 タイムシフトデータ保存の引数例を追記
 

通常放送


rtmpdump.exe -v -r "rtmp/url/lv放送番号" -C S:"rtmp/ticket値" -o output.flv

rtmp/urlと、rtmp/ticketは、getplayerstatusで取得した値を使う。
前者はさらにlv放送番号を付加して指定するのがミソ。
(getplayerstatusが何か分からない方は、このへんを参照してください。)
 
上記パラメタで保存できない放送もあるようだ。
放送のコーデックがVP6かH264かは関係なさそう。
 
放送開始直後で黒画面な放送は、映像が出た後に再接続で取得できたことはある。
また、すぐに取得が始まらない場合、ちょっと待ってると取得が始まることもある。

タイムシフト

rtmpdump.exe -v -r "flvまたはf4vのありか" -C S:"rtmp/ticket値" -o output.flvまたはf4v

flvまたはf4vのありかは、getplayerstatus戻り値の<quesheet><que>ここ</que></quesheet>にあります。

flvの場合の例)
<que> rtmp://nlpoca11.live.nicovideo.jp:xxxx/fileorigin/ts_01,/content/20110327/lvxxxxxxxx_xxxxxxxxxx_x_xxxxxx.flv</que>
→rtmpdump.exe -v -r “rtmp://nlpoca11.live.nicovideo.jp:xxxx/fileorigin/ts_01/content/20110327/lvxxxxxxxx_xxxxxxxxxx_x_xxxxxx.flv” -C S:”rtmp/ticket値” -o output.flv
コンマ”,”を除いて指定します。

f4vの場合の例)
<que> rtmp://nlpoca03.live.nicovideo.jp:xxxx/fileorigin/ts_00,/content/20110327/lvxxxxxxxx_xxxxxxxxxxxx_x_xxxxxx.f4v </que>
→rtmpdump.exe -v -r “rtmp://nlpoca03.live.nicovideo.jp:xxxx/fileorigin/ts_00/mp4:content/20110327/lvxxxxxxxx_xxxxxxxxxxxx_x_xxxxxx.f4v” -C S:”rtmp/ticket値” -o output.f4v
コンマ”,”を除いて、mp4:を付加して指定します。

なんらかの続報があればひっそりと追記予定。

2件のコメント

  1. お世話になります。
    こちらの記事を見て生放送中の番組を保存することはできたのですが、タイムシフトを保存することができません。

    タイムシフトはどのように保存すればよいか、おわかりになりますでしょうか?

  2. >#1 by mami さん
    こんにちわ。
    getplayerstatusの戻り値の以下にflvファイル名が書いてあるり、これを-rに指定すると保存できるっぽいです。

    <quesheet>
    <que>ここにhogehoge.flv</que>
      :
    </quesheet>

    例)
    <que>
    rtmp://nlpoca32.live.nicovideo.jp:xxxx/fileorigin/ts_01,/content/日付/lvxxxxxx_xxxx_x_xxx.flv
    </que>

    これを引数-rに指定することで保存できるようです(途中のコンマ, は削除してつなげるっぽい)。
    (さまざまな番組で試していないので参考情報程度にお知らせしておきます)

    もう少し調べたらブログ本文にも掲載しようと思います。

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です