ニコ生の録画方法 まとめ
最終更新日 2013年4月11日
ニコ生の保存には rtmpdump が主に使われているが、この記事では無料で配布しているWindows用の namarokuRecorder と kakorokuRecorder(以下 kakoroku と表記) を使う方法と、もう少し発展的な使い方のまとめ記事。
用意するもの
用語の説明
生放送の予約・録画
タイムシフト(以下TS)の保存
有料放送の録画
TSの特定の時間だけ保存
録画・保存に必要なツールまとめ
namarokuRecorder と kakoroku の配布コミュニティのトップページからリンクをたどって保存する。
名無しコミュ-ニコニコミュニティ
次にOSがVista以前のPCは Microsoft .NET Framework 3.5 をインストールする。
Download: .NET Framework 3.5 - Microsoft Download Center - Download Details
namarokuRecorder の rtmpdump を以下のサイトから保存して差し替える。
ニコ生用のrtmpdump配布サイト - nht.r.ribbon.to
訂正 2013年3月2日
kakoroku の rtmpdump を以下のサイトから保存して差し替える。
kakoroku の rtmpdump は差し替えない。
アニメの生放送や、録画放送などでは rtmpdump で録画できないので ffmpeg を使う。チャンネルの前もって録画した映像の生放送は RTMPExploreX(rtmpsuck) or RTMPDumpHelper で放送を見ながら録画する。
チャンネル生放送のTSで kakorokuRecorder で保存できない場合は RTMPDumpHelper を Downloads · K-S-V/Scripts · GitHub の rtmpdump の中の rtmpsuck と一緒に使うか、API にアクセスして直接コマンドを調べて rtmpdump を実行する。
予約:生放送前の放送を予約すること
録画:生放送中の放送を保存すること
録画放送 : 録画した内容を生放送で放送すること
タイムシフト機能とは (タイムシフトキノウとは) [単語記事] - ニコニコ大百科
使うツールは namaroku(予約) と namarokuRecorder(録画)。
namaroku 起動時の画面
特定のコミュニティやユーザーの放送を予約する場合は「新規登録」から設定する。特定の生放送を予約する場合は「放送予約」タブから放送番号を入力して「追加」を押す。
新規登録 画面
コミュニティIDとユーザーIDで登録でき、登録したデータの通知方法とグループ分け、メモを記入できる
その他の機能にニコ生アラート(βα)で登録してあるコミュニティを namaroku に登録できたり、登録したコミュニティやユーザーが存在するかの確認、コミュニティやユーザーのサムネイルを保存できる。namaroku 単体では放送アラートとしても利用できる。
保存されたファイル名が長い場合には ツール(T) < オプション(O) < 録画タブ から「独自設定」で
{0}_{1}
とするとファイル名が長くならず、普段見ている放送は放送タイトルだけで放送者や放送コミュニティがわかる。
一部の生放送、またはTSが保存できないことがある
その一部というのが再放送や再配信、アニメの生放送といった予めデータを用意して配信している放送である。これを namarokuRecorder で保存するとデータはあるが再生できないファイルになる。しかし kakoroku では正しく保存できるのでこちらの保存方法をすすめる。その他にチャンネル生放送のTSも保存するのに工夫がいる。
追記 2012年12月30日
この録画できない放送は librtmp(rtmpdump) のバグなので librtmp を有効化していない ffmpeg を使って録画する。 詳細は 【ffmpeg】ニコ生のアニメ配信を録画する方法 を参照。
それでも録画できない生放送がある。その放送は一般会員は録画できないが、プレミアム会員だと録画できるというもの。この仕様の詳細は不明。
追記 2013年2月24日
rtmpdump や ffmpeg でも録画できない生放送を確認。TSでは kakoroku で保存できる。
この放送をチャンネルの録画放送で確認。この生放送を録画するには RTMPExploreX or RTMPDumpHelper の rtmpsuck を使い、放送を見ながら保存する必要がある。
追記 2013年2月28日 訂正 23時41分 2013年3月1日 0時18分
kakoroku でチャンネル生放送のTSの保存ができなくなる。
訂正 2013年3月5日 kakoroku で保存できないのはプレミアム高画質のないチャンネル生放送
今日のメンテナンスから一般とプレミアム会員とで画質の差がないチャンネル生放送のTSを kakoroku では保存できなくなり、rtmpsuck で録画しないと保存できなくなった。rtmpsuck は放送を見ながら保存するので、TS保存には放送時間分だけ録画に時間がかることになる。ここが正確ではなかったので訂正し、放送によっては放送開始から数分で保存が完了する。しかしそのまま放置すると放送が最初からに戻って再び上書き録画が再開されるので、録画中は0バイト表示になっている(プロパティを見れば容量が増えている)のを、録画が終わると容量が表示されるのでそこでブラウザを閉じて RTMPDumpHelper も閉じる。
追記 2013年3月11日
RTMPDumpHelper の起動の順番はブラウザを開いてから、RTMPDumpHelper を起動し、録画したいチャンネルの視聴ページを開くと録画が開始されます。録画されたファイルは RTMPDumpHelper と rtmpsuck と同じフォルダ内に保存されます。
ブラウザを閉じないと上書きになる点について、アドレスを放送終了時間に指定しておけば最初に戻らなくなります。2ちゃんねるのスレ>474 より
例えば http://live.nicovideo.jp/watch/lv127872748#188:01
をブラウザで一度開いて最初のところにシークバーを移動させてから再生と録画を開始します。書式は「#分:秒」なので時間の部分を分単位に変換する必要があります。
また分割ファイルを録画する場合は、一度 kakoroku で保存し、右下のログを見るか、テキストのログを見て開始時間を調べてシーク時間を見つける。2ちゃんねるのスレ>469 より
rtmpsuck を使うには RTMPDumpHelper が便利。ただし kakoroku では rtmpsuck を使わなかったので別途 rtmpsuck も K-S-V さんの配布している rtmpdump を保存する。
Downloads · K-S-V/Scripts · GitHub
RTMPDumpHelper - Download RTMP video/audio streams with RTMPDump toolkit
使用方法は rtmpdump-2.4.zip を RTMPDumpHelper と同じフォルダに解凍し、RTMPDumpHelper を実行、ネット接続のアラートが出るので許可を押してブラウザで録画したい放送を見ると自動的に保存される。この方法での注意点は放送を見るのを止めたり、一時停止すると録画も止まるので録画を後で見たい場合はコメントOFFのミュートにし、ブラウザを最小化しておく。ただし録画終わりには上書きに注意する。保存されたTSには拡張子がついていないので別途ファイル名の末尾に .flv を付けておく。
保存速度が早い放送というのは一般会員とプレミアム会員とで画質の差がある放送である。
追記 2013年3月15日 23時50分
今日の19時に kakoroku の対応版(Version 1.4.12)がリリースされ、コマンドを調べる煩わしさはなくなりました。
昨日のメンテナンス明けから、rtmpdump で直接コマンドを実行することでチャンネル生放送のTSを保存できるようになった。ただし現時点では kakoroku が対応していないのと、ブラウザ上で見られないTSは保存できない点である。
コマンド例(放送やアカウントによって異なる)
rtmpdump -r "rtmp://nlace01.live.nicovideo.jp:1935/fileorigin/01" -C S:アカウントID:lv129665246:0:1363274623:a1fc8dcbb407a569 -y "mp4:/content/20130313/lv129665246_194808517000_1_fa82ba.f4v" -o "lv129665246.flv"
コマンドを調べるには RTMPDumpHelper の rtmpsuck を使ってコマンドを出力する方法と API(http://watch.live.nicovideo.jp/api/getplayerstatus/lv放送番号) にアクセスしてコマンドを調べる方法がある。RTMPDumpHelper の使い方は、Option から rtmpsuck を選択し、ニコ生の視聴ページを開いて放送が始まると同時に rtmpsuck と同じフォルダ内にTSが保存されているのを確認。それから一度ブラウザと RTMPDumpHelper を閉じて、同じフォルダ内の Command.bat をテキストエディタで開いて最後の行のコマンドを実行すると保存できる。
API から調べる方法は、nlace を検索し nlace01 か nlace02 かを確認。次に自分のアカウントIDで検索し、アカウントID:lv129665246:0:1363274623:a1fc8dcbb407a569 の部分を探す。次に content を検索し、content/20130313/lv129665246_194808517000_1_fa82ba.f4v までを探す。最初のmp4: はAPIには書いていないが補足する。動画が複数ある場合はこの部分だけを書き換える。簡単配信で放送している場合は f4v ではないかもしれないがそのときはそれに書き換える。最後に保存ファイル名を決める。同じファイル名があるとアラート無しに上書きされるので注意。
追記 2013年3月23日
lv130173110 より API が暗号化された rtmp 配信の生放送を保存するには K-S-V の rtmpdump を使う。暗号を復号するには RTMPDumpHelper(rtmpsuck)を使う。
コマンド例
rtmpdump -r "rtmp://smilevideo.fc.llnwd.net:1935/smilevideo" -C S:"s_lv130173110_sub1?uid=ユーザーID&h=b64f03171310a394907f9a28d8f2be41" -y "s_lv130173110_sub1?uid=ユーザーID&h=b64f03171310a394908f9a27d8f2be41" -R -o "lv130173110.flv"
lv128959102 で確認された rtmpe の生放送(TSではない)はオプションに
-W http://live.nicovideo.jp/certified.swf
を付け加えることで細切れのファイルを途切れること無く保存できる。
取得したコマンドを実行するには cmd.zip を保存し rtmpdump と同じフォルダ内に解凍して、cmd を実行し、コマンドをコピペすればコマンドラインから rtmpdump を実行できる。
追記 2013年4月11日
今日のメンテナンスでユーザー生放送のTSだけ rtmpdump で保存できなくなった。チャンネル生放送は今までどおり kakoroku で保存できる。保存方法はこの記事の上の「追記 2013年3月11日」以降を参照。保存には rtmpsuck を使い放送を見ながら録画するので放送時間分録画に時間がかかる。
APIを調べてみて変わった点は、fileorigin から liveedge である。
-r "rtmp://nlepb**.live.nicovideo.jp:1935/liveedge/ts_130411_12_0"
liveedge とは生放送の時に使われているものである。生放送の時は -N を使っているが、別のオプションを使えば保存できるのか、ソースコードを書き換えて新たなオプションが必要になるのかは不明である。
ソースコードはこちらで公開してある:taonico/rtmpdump-nico-live · GitHub
kakorokuRecorder 起動時の画面
TSの保存をより便利にする機能もあり、放送ページの一括登録、同じ放送内で分割されたTSがあればそれだけ保存、TSだけ・コメントだけ保存、TSのエンコード(要:ffmpeg 非推奨)ができる。
一部のコメントファイルがTSとコメントを一緒に再生できる ひまたんぷれいや でシーク時間がおかしくなる時があるが、原因はコメントの投稿時間が放送時間ではないときに投稿されたことのよるもの。直すには NicomentXenoglossia で再生時間順でソートして再構成し、コメントファイルをテキストエディタで開いて最後のコメント行の vpos の値がおかしい部分を行すべて削除して上書き保存する。
ひまたんぷれいやの他に こめたん も倍速再生できて使いやすい。
kakoroku の保存形式を flv(変換なし)以外で保存すると動画が保存されないことがあるので、原則flv(変換なし)で保存する。
例:2番目のTSが登録される
lv107698169,2
まずMediaBoxをダウンロード(Compressed Package(1.92M))し、解凍してMediaBox.exeを実行する。次にブラウザ(32bit)を起動するが、Vista以降の場合はこちらも管理者権限で起動する。起動するときに右クリックを押して「管理者として実行」を選択する。
すると、右下にポップアップが表示され、それをクリックして、
Copy Request Header(Q) を選択し、メモ帳などにコピペする。
コピペ例
このようにコピペでき必要な部分は url: rtmp://... と、extra: AAAAAAIAAAAvAAAA... の部分。 AAAAAAIAAAAvAAAA... はbase64デコードして読めるようにする。
Base 64 Decoder
ここの入力欄に AAAAAAIAAAAvAAAA... をコピペして Decode のボタンを押す。すると文字化けした文字と数字とアルファベットが復号される。その読めるところを一時的にメモ帳などにコピペ(B'とする)する。
rtmpdump の必要なオプションは3種類だけで保存可能なので今までのオプションをまとめると
例
rtmpdump -r "A" -C S:"B'" -p "放送ページアドレス" -o output.flv
実際のコマンドはこのような感じになる
rtmpdump -r rtmp://nlaoe26.live.nicovideo.jp:1935/fileorigin/00/mp4:/content/20120822/lv123456789_173357168000_1_4fd8d1.f4v -C S:123456:lv123456789:1:1345600000:3536b27afd920185 -p http://live.nicovideo.jp/watch/lv123456789 -o hoge.flv
TSは必ず3時間毎で分割されるので分割された部分以降の時間帯までシークして再度情報を取得して分割された動画を保存する。
分割されたファイルの場合コマンドを書き換えるのは A だけでよい。ただしコマンドを取得して数十分経つと B' の有効期限が切れるので再度こちらも取得し直す。
取得したコマンドを実行するには cmd.zip を保存し rtmpdump と同じフォルダ内に解凍して、cmd を実行し、コマンドをコピペすればコマンドラインから rtmpdump を実行できる。
この方法でも録画できない放送が現れたので 【rtmpdump】続 有料生放送を保存する方法 を参照する。
アンインストーラーを使ってアンインストールする
http://download.macromedia.com/get/flashplayer/current/support/uninstall_flash_player.exe
IE以外(10.3バージョンの最新版)
http://fpdownload.macromedia.com/get/flashplayer/current/licensing/win/install_flash_player_10_plugin.exe
IE(10.3バージョンの最新版)
http://fpdownload.macromedia.com/get/flashplayer/current/licensing/win/install_flash_player_10_active_x.exe
それでもネットに繋がらない場合は起動の順序を以下のように変えてみる。
ブラウザ起動→MediaBox起動→ブラウザ、MediaBoxを終了→MediaBox起動→ブラウザ起動
例えば kakorokuRecorder でTSを保存したファイル名に「lv89834106_ 【悠木碧・内山夕実出演】咲らじ-阿知賀女子学院麻雀部- 第2局 - ニコニコ生放送_vpos-89000_1.flv」があるとする。この「vpos-89000_1」が重要で「-89000」はマイナス890秒から動画が始まり、890秒経つとニコ生の放送開始時間と同じ所から再生される。公式生放送の場合は待ち時間が大抵10分、アニメやニコファーレなどの放送は 30分待ち時間があるのでその時間を足した時間から本編が始まる。
「_1」は1番目のファイルで、2番めのファイルの場合は「_2」というファイル名になる。
特定の時間だけを保存するGUIが公開されていないので、rtmpdump のコマンドを出力してから -A, -B, -R のオプションを組み合わせる。
コマンドを実行するには cmd.zip を保存し rtmpdump と同じフォルダ内に解凍して、cmd を実行し、コマンドをコピペすればコマンドラインから rtmpdump を実行できる。
先の例に放送開始までの時間(890秒)と準備待ち時間(600秒)を保存しないコマンドは
rtmpdump.exe -r "rtmp://nlaoe25.live.nicovideo.jp:1935/fileorigin/01/mp4:content/20120508/lv89834106_203510025000_1_1eb546.f4v" -C S:"ID:lv89834106:0:123...:abc..." -A 1490 -R -o "lv89834106_ 【悠木碧・内山夕実出演】咲らじ-阿知賀女子学院麻雀部- 第2局 - ニコニコ生放送_vpos-89000_1.flv"
生放送の時
タイムシフトの時
この記事は 【kakoroku】 タイムシフトがコメント付きで高速で保存できます 【ニコ生】、 【超パーティー】 TS保存方法、【rtmpdump】 ニコ生のTSの放送前の準備時間を保存しない方法 のまとめです。
ニコ生を ffplay を使って再生することもできます。詳しくは 【librtmp】 ffmplay で rtmp を入力ソースにする を参照。
rtmpdump のコマンドに関しては rtmpdump コマンド一覧と使い方を参照。
ニコ生の保存には rtmpdump が主に使われているが、この記事では無料で配布しているWindows用の namarokuRecorder と kakorokuRecorder(以下 kakoroku と表記) を使う方法と、もう少し発展的な使い方のまとめ記事。
目次
用意するもの
用語の説明
生放送の予約・録画
タイムシフト(以下TS)の保存
有料放送の録画
TSの特定の時間だけ保存
録画・保存に必要なツールまとめ
用意するもの
namarokuRecorder と kakoroku の配布コミュニティのトップページからリンクをたどって保存する。
名無しコミュ-ニコニコミュニティ
次にOSがVista以前のPCは Microsoft .NET Framework 3.5 をインストールする。
Download: .NET Framework 3.5 - Microsoft Download Center - Download Details
namarokuRecorder の rtmpdump を以下のサイトから保存して差し替える。
ニコ生用のrtmpdump配布サイト - nht.r.ribbon.to
訂正 2013年3月2日
kakoroku の rtmpdump を以下のサイトから保存して差し替える。
kakoroku の rtmpdump は差し替えない。
アニメの生放送や、録画放送などでは rtmpdump で録画できないので ffmpeg を使う。チャンネルの前もって録画した映像の生放送は RTMPExploreX(rtmpsuck) or RTMPDumpHelper で放送を見ながら録画する。
チャンネル生放送のTSで kakorokuRecorder で保存できない場合は RTMPDumpHelper を Downloads · K-S-V/Scripts · GitHub の rtmpdump の中の rtmpsuck と一緒に使うか、API にアクセスして直接コマンドを調べて rtmpdump を実行する。
フォルダ内のまとめ
- namarokuRecorder : 生放送を保存するツール rtmpdump を差し替える
- kakorokuRecorder : TSを保存するツール そのまま使う
- RTMPExploreX or RTMPDumpHelper : 有料生放送を保存するツール K-S-V の rtmpdump と アニメ用の ffmpeg もココに入れておく
用語の説明
予約:生放送前の放送を予約すること
録画:生放送中の放送を保存すること
録画放送 : 録画した内容を生放送で放送すること
タイムシフト機能とは (タイムシフトキノウとは) [単語記事] - ニコニコ大百科
生放送の予約・録画
使うツールは namaroku(予約) と namarokuRecorder(録画)。
namaroku 起動時の画面
特定のコミュニティやユーザーの放送を予約する場合は「新規登録」から設定する。特定の生放送を予約する場合は「放送予約」タブから放送番号を入力して「追加」を押す。
新規登録 画面
コミュニティIDとユーザーIDで登録でき、登録したデータの通知方法とグループ分け、メモを記入できる
その他の機能にニコ生アラート(βα)で登録してあるコミュニティを namaroku に登録できたり、登録したコミュニティやユーザーが存在するかの確認、コミュニティやユーザーのサムネイルを保存できる。namaroku 単体では放送アラートとしても利用できる。
保存されたファイル名が長い場合には ツール(T) < オプション(O) < 録画タブ から「独自設定」で
{0}_{1}
とするとファイル名が長くならず、普段見ている放送は放送タイトルだけで放送者や放送コミュニティがわかる。
一部の生放送、またはTSが保存できないことがある
その一部というのが再放送や再配信、アニメの生放送といった予めデータを用意して配信している放送である。これを namarokuRecorder で保存するとデータはあるが再生できないファイルになる。しかし kakoroku では正しく保存できるのでこちらの保存方法をすすめる。その他にチャンネル生放送のTSも保存するのに工夫がいる。追記 2012年12月30日
この録画できない放送は librtmp(rtmpdump) のバグなので librtmp を有効化していない ffmpeg を使って録画する。 詳細は 【ffmpeg】ニコ生のアニメ配信を録画する方法 を参照。
それでも録画できない生放送がある。その放送は一般会員は録画できないが、プレミアム会員だと録画できるというもの。この仕様の詳細は不明。
追記 2013年2月24日
rtmpdump や ffmpeg でも録画できない生放送を確認。TSでは kakoroku で保存できる。
この放送をチャンネルの録画放送で確認。この生放送を録画するには RTMPExploreX or RTMPDumpHelper の rtmpsuck を使い、放送を見ながら保存する必要がある。
追記 2013年2月28日 訂正 23時41分 2013年3月1日 0時18分
kakoroku でチャンネル生放送のTSの保存ができなくなる。
訂正 2013年3月5日 kakoroku で保存できないのはプレミアム高画質のないチャンネル生放送
今日のメンテナンスから一般とプレミアム会員とで画質の差がないチャンネル生放送のTSを kakoroku では保存できなくなり、rtmpsuck で録画しないと保存できなくなった。rtmpsuck は放送を見ながら保存するので、TS保存には放送時間分だけ録画に時間がかることになる。ここが正確ではなかったので訂正し、放送によっては放送開始から数分で保存が完了する。しかしそのまま放置すると放送が最初からに戻って再び上書き録画が再開されるので、録画中は0バイト表示になっている(プロパティを見れば容量が増えている)のを、録画が終わると容量が表示されるのでそこでブラウザを閉じて RTMPDumpHelper も閉じる。
追記 2013年3月11日
RTMPDumpHelper の起動の順番はブラウザを開いてから、RTMPDumpHelper を起動し、録画したいチャンネルの視聴ページを開くと録画が開始されます。録画されたファイルは RTMPDumpHelper と rtmpsuck と同じフォルダ内に保存されます。
ブラウザを閉じないと上書きになる点について、アドレスを放送終了時間に指定しておけば最初に戻らなくなります。2ちゃんねるのスレ>474 より
例えば http://live.nicovideo.jp/watch/lv127872748#188:01
をブラウザで一度開いて最初のところにシークバーを移動させてから再生と録画を開始します。書式は「#分:秒」なので時間の部分を分単位に変換する必要があります。
また分割ファイルを録画する場合は、一度 kakoroku で保存し、右下のログを見るか、テキストのログを見て開始時間を調べてシーク時間を見つける。2ちゃんねるのスレ>469 より
★放送開始(x分x秒~)
★timeshift1.flv
★放送開始(xx分xx秒~)
★timeshift2.flv
rtmpsuck を使うには RTMPDumpHelper が便利。ただし kakoroku では rtmpsuck を使わなかったので別途 rtmpsuck も K-S-V さんの配布している rtmpdump を保存する。
Downloads · K-S-V/Scripts · GitHub
RTMPDumpHelper - Download RTMP video/audio streams with RTMPDump toolkit
使用方法は rtmpdump-2.4.zip を RTMPDumpHelper と同じフォルダに解凍し、RTMPDumpHelper を実行、ネット接続のアラートが出るので許可を押してブラウザで録画したい放送を見ると自動的に保存される。この方法での注意点は放送を見るのを止めたり、一時停止すると録画も止まるので録画を後で見たい場合はコメントOFFのミュートにし、ブラウザを最小化しておく。ただし録画終わりには上書きに注意する。保存されたTSには拡張子がついていないので別途ファイル名の末尾に .flv を付けておく。
保存速度が早い放送というのは一般会員とプレミアム会員とで画質の差がある放送である。
追記 2013年3月15日 23時50分
今日の19時に kakoroku の対応版(Version 1.4.12)がリリースされ、コマンドを調べる煩わしさはなくなりました。
昨日のメンテナンス明けから、rtmpdump で直接コマンドを実行することでチャンネル生放送のTSを保存できるようになった。ただし現時点では kakoroku が対応していないのと、ブラウザ上で見られないTSは保存できない点である。
コマンド例(放送やアカウントによって異なる)
rtmpdump -r "rtmp://nlace01.live.nicovideo.jp:1935/fileorigin/01" -C S:アカウントID:lv129665246:0:1363274623:a1fc8dcbb407a569 -y "mp4:/content/20130313/lv129665246_194808517000_1_fa82ba.f4v" -o "lv129665246.flv"
コマンドを調べるには RTMPDumpHelper の rtmpsuck を使ってコマンドを出力する方法と API(http://watch.live.nicovideo.jp/api/getplayerstatus/lv放送番号) にアクセスしてコマンドを調べる方法がある。RTMPDumpHelper の使い方は、Option から rtmpsuck を選択し、ニコ生の視聴ページを開いて放送が始まると同時に rtmpsuck と同じフォルダ内にTSが保存されているのを確認。それから一度ブラウザと RTMPDumpHelper を閉じて、同じフォルダ内の Command.bat をテキストエディタで開いて最後の行のコマンドを実行すると保存できる。
API から調べる方法は、nlace を検索し nlace01 か nlace02 かを確認。次に自分のアカウントIDで検索し、アカウントID:lv129665246:0:1363274623:a1fc8dcbb407a569 の部分を探す。次に content を検索し、content/20130313/lv129665246_194808517000_1_fa82ba.f4v までを探す。最初のmp4: はAPIには書いていないが補足する。動画が複数ある場合はこの部分だけを書き換える。簡単配信で放送している場合は f4v ではないかもしれないがそのときはそれに書き換える。最後に保存ファイル名を決める。同じファイル名があるとアラート無しに上書きされるので注意。
追記 2013年3月23日
lv130173110 より API が暗号化された rtmp 配信の生放送を保存するには K-S-V の rtmpdump を使う。暗号を復号するには RTMPDumpHelper(rtmpsuck)を使う。
コマンド例
rtmpdump -r "rtmp://smilevideo.fc.llnwd.net:1935/smilevideo" -C S:"s_lv130173110_sub1?uid=ユーザーID&h=b64f03171310a394907f9a28d8f2be41" -y "s_lv130173110_sub1?uid=ユーザーID&h=b64f03171310a394908f9a27d8f2be41" -R -o "lv130173110.flv"
lv128959102 で確認された rtmpe の生放送(TSではない)はオプションに
-W http://live.nicovideo.jp/certified.swf
を付け加えることで細切れのファイルを途切れること無く保存できる。
取得したコマンドを実行するには cmd.zip を保存し rtmpdump と同じフォルダ内に解凍して、cmd を実行し、コマンドをコピペすればコマンドラインから rtmpdump を実行できる。
追記 2013年4月11日
今日のメンテナンスでユーザー生放送のTSだけ rtmpdump で保存できなくなった。チャンネル生放送は今までどおり kakoroku で保存できる。保存方法はこの記事の上の「追記 2013年3月11日」以降を参照。保存には rtmpsuck を使い放送を見ながら録画するので放送時間分録画に時間がかかる。
APIを調べてみて変わった点は、fileorigin から liveedge である。
-r "rtmp://nlepb**.live.nicovideo.jp:1935/liveedge/ts_130411_12_0"
liveedge とは生放送の時に使われているものである。生放送の時は -N を使っているが、別のオプションを使えば保存できるのか、ソースコードを書き換えて新たなオプションが必要になるのかは不明である。
ソースコードはこちらで公開してある:taonico/rtmpdump-nico-live · GitHub
タイムシフト(以下TS)の保存
使うツールは kakorokuRecorder。kakorokuRecorder 起動時の画面
TSの保存をより便利にする機能もあり、放送ページの一括登録、同じ放送内で分割されたTSがあればそれだけ保存、TSだけ・コメントだけ保存、TSのエンコード(要:ffmpeg 非推奨)ができる。
不具合
kakoroku でコメントを保存した時にコメントの一部が歯抜けになることが稀に発生するので、その場合は保存する時間帯を朝など放送が混雑していない時間帯にするか、他のコメビュー、例えば NCV でコメントを保存する。一部のコメントファイルがTSとコメントを一緒に再生できる ひまたんぷれいや でシーク時間がおかしくなる時があるが、原因はコメントの投稿時間が放送時間ではないときに投稿されたことのよるもの。直すには NicomentXenoglossia で再生時間順でソートして再構成し、コメントファイルをテキストエディタで開いて最後のコメント行の vpos の値がおかしい部分を行すべて削除して上書き保存する。
ひまたんぷれいやの他に こめたん も倍速再生できて使いやすい。
kakoroku の保存形式を flv(変換なし)以外で保存すると動画が保存されないことがあるので、原則flv(変換なし)で保存する。
仕様
TS が3時間以上の長時間の放送は3時間毎に、放送が途切れた場合にはそこでかならず分割される。分割されたくなければ生放送中に namarokuRecorder で保存する。kakoroku にはオリジナルが分割されていないのに分割する機能はない。長時間のTSの場合に一度の放送登録では後ろのTSファイルが保存できないことがあるのでファイルを指定して保存する。方法は放送番号に ,2 などと指定する。例:2番目のTSが登録される
lv107698169,2
有料放送の録画・保存
MediaBox を使って rtmpdump の保存コマンドを出力させて保存する方法。RTMPExploreX と rtmpdumphelper でも解析できます。まずMediaBoxをダウンロード(Compressed Package(1.92M))し、解凍してMediaBox.exeを実行する。次にブラウザ(32bit)を起動するが、Vista以降の場合はこちらも管理者権限で起動する。起動するときに右クリックを押して「管理者として実行」を選択する。
すると、右下にポップアップが表示され、それをクリックして、
Copy Request Header(Q) を選択し、メモ帳などにコピペする。
コピペ例
url: rtmp://nlaoe24.live.nicovideo.jp:1935/fileorigin/00/mp4:/content/20120428/lv73382323_164610551000_1_3a613a.f4v (Aとする)
app: fileorigin/01
extra: AAAAAAIAAAAvAAAA...(Bとする)
flashVer: WIN 11,2,202,233
pageUrl: http://live.nicovideo.jp
swfUrl: http://live.nicovideo.jp/nicoliveplayer.swf?120412102902
tcUrl: rtmp://...
playPath: mp4:/content/20120428/lv73382323_...
このようにコピペでき必要な部分は url: rtmp://... と、extra: AAAAAAIAAAAvAAAA... の部分。 AAAAAAIAAAAvAAAA... はbase64デコードして読めるようにする。
Base 64 Decoder
ここの入力欄に AAAAAAIAAAAvAAAA... をコピペして Decode のボタンを押す。すると文字化けした文字と数字とアルファベットが復号される。その読めるところを一時的にメモ帳などにコピペ(B'とする)する。
rtmpdump の必要なオプションは3種類だけで保存可能なので今までのオプションをまとめると
例
rtmpdump -r "A" -C S:"B'" -p "放送ページアドレス" -o output.flv
実際のコマンドはこのような感じになる
rtmpdump -r rtmp://nlaoe26.live.nicovideo.jp:1935/fileorigin/00/mp4:/content/20120822/lv123456789_173357168000_1_4fd8d1.f4v -C S:123456:lv123456789:1:1345600000:3536b27afd920185 -p http://live.nicovideo.jp/watch/lv123456789 -o hoge.flv
TSは必ず3時間毎で分割されるので分割された部分以降の時間帯までシークして再度情報を取得して分割された動画を保存する。
分割されたファイルの場合コマンドを書き換えるのは A だけでよい。ただしコマンドを取得して数十分経つと B' の有効期限が切れるので再度こちらも取得し直す。
取得したコマンドを実行するには cmd.zip を保存し rtmpdump と同じフォルダ内に解凍して、cmd を実行し、コマンドをコピペすればコマンドラインから rtmpdump を実行できる。
この方法でも録画できない放送が現れたので 【rtmpdump】続 有料生放送を保存する方法 を参照する。
MediaBox が反応しなくなったら
Flash Player のバージョンを11.3以降にして反応しなったら一度アンインストールして10.3バージョンに差し替える。アンインストーラーを使ってアンインストールする
http://download.macromedia.com/get/flashplayer/current/support/uninstall_flash_player.exe
IE以外(10.3バージョンの最新版)
http://fpdownload.macromedia.com/get/flashplayer/current/licensing/win/install_flash_player_10_plugin.exe
IE(10.3バージョンの最新版)
http://fpdownload.macromedia.com/get/flashplayer/current/licensing/win/install_flash_player_10_active_x.exe
MediaBox を使うとネットに繋がらなくなる症状について
一部のPCで MediaBox を起動するとブラウザでネットに繋がらなくなったり、他の通信するツールでもネットに繋がらなくなることが起きている。原因はファイアウォールで MediaBox を例外指定するとネットに繋がるようになる。例外指定の方法がわからない場合は一時的にファイアウォールを切る。それでもネットに繋がらない場合は起動の順序を以下のように変えてみる。
ブラウザ起動→MediaBox起動→ブラウザ、MediaBoxを終了→MediaBox起動→ブラウザ起動
TSの特定の時間だけ保存
rtmpdump の -A, -B, -R のオプションを使ってTSの特定の時間だけを保存する方法。例えば kakorokuRecorder でTSを保存したファイル名に「lv89834106_ 【悠木碧・内山夕実出演】咲らじ-阿知賀女子学院麻雀部- 第2局 - ニコニコ生放送_vpos-89000_1.flv」があるとする。この「vpos-89000_1」が重要で「-89000」はマイナス890秒から動画が始まり、890秒経つとニコ生の放送開始時間と同じ所から再生される。公式生放送の場合は待ち時間が大抵10分、アニメやニコファーレなどの放送は 30分待ち時間があるのでその時間を足した時間から本編が始まる。
「_1」は1番目のファイルで、2番めのファイルの場合は「_2」というファイル名になる。
特定の時間だけを保存するGUIが公開されていないので、rtmpdump のコマンドを出力してから -A, -B, -R のオプションを組み合わせる。
コマンドを実行するには cmd.zip を保存し rtmpdump と同じフォルダ内に解凍して、cmd を実行し、コマンドをコピペすればコマンドラインから rtmpdump を実行できる。
コマンドを調べる方法
- MediaBox を使う
- RTMPExploreX を使う
- RTMPDumpHelper を使う
- NCVRTMPDumpWrapper を使う
- kakorokuRecorder を使い、Process Explorer でコマンドを調べる
- APIから直接調べる
- MediaBox は 有料放送の録画・保存 を参考
- RTMPExploreX を参照
- ブラウザと一緒に RTMPDumpHelper を起動して録画したい放送を見るだけ
- NCVRTMPDumpWrapper はNCV(NiconamaCommentViewer)のプラグイン NCVRTMPDumpWrapper の配布コミュニティ より保存して、プラグイン(P)< RTMPDumpWrapper < 設定 < RTMPDump.exe の PATH を namarokuRecorder で使っているニコ生用のrtmpdumpを指定する。NCVで放送に接続して、プラグインでは出力先を「なし」にするとコマンドが出力されるのでそれを一 時的にコピペする。
- Process Explorer を使う方法は、Process Explorer - technet.microsoft.com より保存し、解凍する。インストール不要なのでそのまま起動できる。kakorokuRecorder で保存しているときに Process Explorer を起動して起動プロセス内の rtmpdump をダブルクリックして「Command line:」の下のコードをすべてコピペする。
- APIから調べる方法は、 http://watch.live.nicovideo.jp/api/getplayerstatus?v=lv放送番号 にアクセスして必要なコマンドをコピペする。2番目以降のファイルを保存するのに便利だが、他の調べる方法と併用したほうがわかりやすい。
一時的にコピペしたコマンドに保存する時間を指定する
- -A は保存開始時間(秒)を指定するオプション
- -B は保存する動画時間(秒)を指定するオプション
何も指定しないと最後まで保存される - -R は -A を指定すると最後まで保存できない場合に最後まで保存できるようになるオプション
先の例に放送開始までの時間(890秒)と準備待ち時間(600秒)を保存しないコマンドは
rtmpdump.exe -r "rtmp://nlaoe25.live.nicovideo.jp:1935/fileorigin/01/mp4:content/20120508/lv89834106_203510025000_1_1eb546.f4v" -C S:"ID:lv89834106:0:123...:abc..." -A 1490 -R -o "lv89834106_ 【悠木碧・内山夕実出演】咲らじ-阿知賀女子学院麻雀部- 第2局 - ニコニコ生放送_vpos-89000_1.flv"
録画・保存に必要なツールまとめ
生放送の時
- ユーザー生放送と一般的なチャンネル生放送 = namarokuRecorder + rtmpdump改
- 普通の公式生放送 = namarokuRecorder + 同梱の rtmpdump rtmpdump改でも可能
- 公式枠のアニメ生放送で namarokuRecorder + rtmpdump改 で録画できない放送
= librtmp をインストールしていない ffmpeg - 上3つの方法では録画できないチャンネルの録画放送
= RTMPExploreX(rtmpsuck) or RTMPDumpHelper - 有料生放送で getplayerstatus が暗号化されている放送
= RTMPExploreX(rtmpsuck) or RTMPDumpHelper で解析して K-S-V の rtmpdump - チャンネル生放送でプレミアム会員なら録画できるが一般会員だと録画できない放送
今のところ録画できないので TS で保存する。
タイムシフトの時
- 有料生放送以外 = kakorokuRecorder + 同梱の rtmpdump
- 有料生放送 = RTMPExploreX(rtmpsuck) or RTMPDumpHelper で解析して K-S-V の rtmpdump
- チャンネル放送 = RTMPExploreX(rtmpsuck) or RTMPDumpHelper と K-S-V の rtmpsuck
この記事は 【kakoroku】 タイムシフトがコメント付きで高速で保存できます 【ニコ生】、 【超パーティー】 TS保存方法、【rtmpdump】 ニコ生のTSの放送前の準備時間を保存しない方法 のまとめです。
ニコ生を ffplay を使って再生することもできます。詳しくは 【librtmp】 ffmplay で rtmp を入力ソースにする を参照。
rtmpdump のコマンドに関しては rtmpdump コマンド一覧と使い方を参照。
-
次の記事これより新しい記事はありません。
-
前の記事2013-04-09 00:45:00ニコニコ動画(アニメ配信)はいつ720p配信するのか? 今でし...2コメ