ニコ生の配信データを保存する rtmpdump のコマンド内容のまとめ


一般的にニコ生と言っても配信者は公式、チャンネル、ユーザーの3タイプと、ライブとタイムシフト(TS)を組み合わせた6種類ある。その中で特殊なコマンド -N が必要になるのは、ユーザー生放送のライブとタイムシフト、チャンネル生放送のライブである。さらに -N を使う場合データはリアルタイム(等速)でしか取得できないので、ユーザー生放送のタイムシフトは放送時間分だけ時間が掛かることになる。Win 環境では namarokuR, kakoroku が主流になっているが、現在開発が活発ではないので今後の仕様変更に対応できるかどうかは不明である。

-N が使える rtmpdump の配布先
nht.r.ribbon.to
meronpan3419/rtmpdump_nicolive(ソースコードのみ)
rtmpdump[20160215_1949].zip(パッチファイル付き)
Axfc UpLoader -2786658.zip-(Mac と linux)

新しいニコ生用の rtmpdump
N を使わない新しいニコ生用の rtmpdump と ffmpeg(librtmp)

ニコ生の新配信(β)と録画方法について

API の getplayerstatus にアクセスするには niconico にログインしている必要がある。

以下のどれにでもアクセスしてもよい
http://watch.live.nicovideo.jp/api/getplayerstatus?v=lv[id]
http://watch.live.nicovideo.jp/api/getplayerstatus/lv[id]
http://sp.live.nicovideo.jp/api/getplayerstatus?v=lv[id]
http://sp.live.nicovideo.jp/api/getplayerstatus/lv[id]


http://watch.live.nicovideo.jp/api/getplayerstatus?v=lv219589296

ライブのときの場合

公式生放送その1

アニメ配信など高画質対応生放送の場合
stream に3つの連番で配信データがあるが数値は固定ではなく、nlari 以外もある。

nlari_01@s12345	416x234
nlari_02@s12346	704x396
nlari_03@s12347	416x234

コマンド例
rtmpdump -vr rtmp://nlakmjpk.live.nicovideo.jp:1935/live/nlari_02@s12346?auth=dbEagczc.badbcfdSdtbudqbYcYbXdIcfdP-bvsI40-frG-vga-CwDCzp_zyCAmy&aifp=0191210 -o out.flvrtmpdump -vr rtmp://nlakmjpk.live.nicovideo.jp:1935/live/<stream><tickets><stream name></stream></tickets></stream>?<stream><tickets><stream></stream></tickets></stream> -o out.flv
librtmp
mpc-hc "rtmp://nlakmjpk.live.nicovideo.jp:1935/live playpath=nlari_02@s12346?auth=dbEagczc.badbcfdSdtbudqbYcYbXdIcfdP-bvsI40-frG-vga-CwDCzp_zyCAmy&aifp=0191210"mpc-hc "rtmp://nlakmjpk.live.nicovideo.jp:1935/live playpath=<stream><tickets><stream name></stream></tickets></stream>?<stream><tickets><stream></stream></tickets></stream>"
ffplay "rtmp://nlakmjpk.live.nicovideo.jp:1935/live playpath=<stream><tickets><stream name></stream></tickets></stream>?<stream><tickets><stream></stream></tickets></stream> live=1"

公式生放送その2

tickets に10のストリームがあり来場者数によって受信できるストリームは異なる。1つしかない場合は一番最初が高画質。2つの場合は二番目が高画質。

コマンド例
rtmpdump -vr rtmp://smilevideo.fc.llnwd.net:1935/smilevideo/s_lv219589296?uid=151356&h=05ae291cd42109d2cb8a12ed4792e950 -o out.flvrtmpdump -vr rtmp://smilevideo.fc.llnwd.net:1935/smilevideo/s_lv219589296_sub1?uid=151356&h=05ae291cd42109d2cb8a12ed4792e950 -o out.flvrtmpdump -vr rtmp://smilevideo.fc.llnwd.net:1935/smilevideo/s_lv[id]?<tickets></tickets> -o out.flv
librtmp
mpc-hc "rtmp://smilevideo.fc.llnwd.net:1935/smilevideo playpath=s_lv219589296?uid=151356&h=05ae291cd42109d2cb8a12ed4792e950"mpc-hc "rtmp://smilevideo.fc.llnwd.net:1935/smilevideo playpath=s_lv[id]?<tickets></tickets>"

チャンネル生放送

途中から有料生放送の場合は有料になる前でも数分で途切れることが多い。

コマンド例
rtmpdump -vr rtmp://nlech01.live.nicovideo.jp:1935/liveedge/live_150509_00_1/lv200000000 -N rtmp://chnl01.ep.live.nicovideo.jp:1935/publicorigin/150509_00_1/,lv200000000?1430000000:30:f2ca0fe957422c14 -C S:151356:lv200000000:0:1430000000:4150e64db27c979c -o out.flvrtmpdump -vr <rtmp><url></url></rtmp>/lv[id] -N <stream><contents_list><contents></contents></contents_list></stream> -C S:<rtmp><ticket></ticket></rtmp> -o out.flv

ユーザー生放送

チャンネル生放送と同じだがホストが異なる。

コマンド例
rtmpdump -vr rtmp://nleu13.live.nicovideo.jp:1935/liveedge/live_150509_00_1/lv200000000 -N rtmp://nlpoca124.live.nicovideo.jp:1935/publicorigin/150509_00_1/,lv200000000?1430000000:30:d3624da642c8f3bf -C S:151356:lv200000000:0:1430000000:e742879ae0d3d94f -o out.flvrtmpdump -vr <rtmp><url></url></rtmp>/lv[id] -N <stream><contents_list><contents></contents></contents_list></stream> -C S:<rtmp><ticket></ticket></rtmp> -o out.flv

タイムシフトのときの場合

タイムシフトの場合は <stream><quesheet><que></que></quesheet></stream> の中から、/publish から始まるデータの必要部分だけを抜き出し、複数ある場合もあるのでその都度取得する。

公式生放送

KSV 版を使う場合はファイルパス(-y)とレジューム(-e)を指定する必要がある。現在(2015年12月)はレジュームは不要か未検証。
最近は見られないが、rtmpe 配信の場合は、-W http://live.nicovideo.jp/certified.swf を追加する。

コマンド例
rtmpdump -r rtmp://nlaoe111.live.nicovideo.jp:1935/fileorigin/01/mp4:/content/20150427/lv217145340_194126458000_1_966ec4.f4v -C S:151356:lv217145340:0:1430000000:7a3277826cd26a64 -o out.flvrtmpdump -r rtmp://nlaoe111.live.nicovideo.jp:1935/fileorigin/01 -y mp4:/content/20150427/lv217145340_194126458000_1_966ec4.f4v -C S:151356:lv217145340:0:1430000000:7a3277826cd26a64 -e -o out.flvrtmpdump -r <rtmp><url></url></rtmp>/mp4:/<stream><quesheet><que></que></quesheet></stream> -C S:<rtmp><ticket></ticket></rtmp> -o out.flvrtmpdump -r <rtmp><url></url></rtmp> -y mp4:/<stream><quesheet><que></que></quesheet></stream> -C S:<rtmp><ticket></ticket></rtmp> -e -o out.flv
librtmp
mpc-hc "rtmp://nlaoe111.live.nicovideo.jp:1935/fileorigin playpath=mp4:content/20150427/lv217145340_194126458000_1_966ec4.f4v conn=S:151356:lv217145340:0:1430000000:7a3277826cd26a64"mpc-hc "<rtmp><url></url></rtmp> playpath=mp4:<stream><quesheet><que></que></quesheet></stream> conn=S:<rtmp><ticket></ticket></rtmp>"

チャンネル生放送

簡単配信(H.263)でもファイルパスのコンテナは f4v になる。
KSV 版を使う場合はファイルパス(-y)とレジューム(-e)を指定する必要がある。現在(2015年12月)はレジュームは不要か未検証。

コマンド例
rtmpdump -r rtmp://nlace01.live.nicovideo.jp:1935/fileorigin/00/mp4:/content/150509/lv200000000_203510899000_2_1eb707.f4v -C S:151356:lv200000000:0:1430000000:067e232cc6900011 -o outflvrtmpdump -r rtmp://nlace01.live.nicovideo.jp:1935/fileorigin/00 -y mp4:/content/150509/lv200000000_203510899000_2_1eb707.f4v -C S:151356:lv200000000:0:1430000000:067e232cc6900011 -e -o outflvrtmpdump -r <rtmp><url></url></rtmp>/mp4:/<stream><quesheet><que></que></quesheet></stream> -C S:<rtmp><ticket></ticket></rtmp> -o out.flvrtmpdump -r <rtmp><url></url></rtmp> -y mp4:/<stream><quesheet><que></que></quesheet></stream> -C S:<rtmp><ticket></ticket></rtmp> -e -o out.flv
librtmp
mpc-hc "rtmp://nlace01.live.nicovideo.jp:1935/fileorigin playpath=mp4:content/150509/lv200000000_203510899000_2_1eb707.f4v conn=S:151356:lv200000000:0:1430000000:067e232cc6900011"mpc-hc "<rtmp><url></url></rtmp> playpath=mp4:<stream><quesheet><que></que></quesheet></stream> conn=S:<rtmp><ticket></ticket></rtmp>"

ユーザー生放送

簡単配信(H.263)でもファイルパスのコンテナは f4v になる。

コマンド例
rtmpdump -vr rtmp://nleu22.live.nicovideo.jp:1935/liveedge/ts_150509_00_0 -C S:151356:lv200000000:0:1430000000:28078a7a50bca2d4 -N rtmp://nlpoca143.live.nicovideo.jp:1935/fileorigin/ts_00,/content/20150506/lv200000000_224815576000_3_3d715a.f4v?1430000000:30:98f4e9bc83f491f1 -o out.flvrtmpdump -vr <rtmp><url></url></rtmp>/lv[id] -N <stream><quesheet><que></que></quesheet></stream> -C S:<rtmp><ticket></ticket></rtmp> -o out.flv

関連記事

更新履歴
2015年5月14日 書き間違いの修正とKSV版のコマンドの追加と rtmpe のときの対応、XMLタグの色つけ。
2015年5月28日 librtmp での読み込み方法。
2015年7月4日 公式生放送の librtmp 読み込みで live=1 が不要だったので消した。
2016年3月25日 公式のアニメ配信で MPC-HC で音が鳴らなくなるのを確認、ffplay では live=1 が必要になった
2016年10月6日 ユーザー生放送のTSの librtmp の playpath の説明部分が間違っていたのを直した

コメントを残す

メールアドレスが公開されることはありません。