ニコ生の録画方法 まとめ では記事が長すぎて読みにくかったのでタイムシフト(以下TS)保存の部分を分割して一部書き直した。 ファイルの準備は ニコ生の録画方法 まとめ を参照する。

コメントだけ取れて動画が取れない場合は以下を参照する。
タイムシフトを Flash で再生して kakorokuR で保存する

最終更新日 2017年9月8日
新配信のTS が分割されている場合を言及した。

目次

  • TSの保存
    • ユーザー生放送のTSの場合
    • 公式生放送やチャンネル生放送のTSの場合
    • 有料放送などのAPIが暗号されたの録画・保存
    • 不具合
    • 仕様
  • TS の特定の時間だけ保存
    • コマンドを調べる方法
    • 一時的にコピペしたコマンドに保存する時間を指定する
  • TS ファイルで音声だけで映像が流れない場合
    • 再生方法
  • 新配信のTS が分割されている場合
  • AviUtl で読み込めないニコ生TSを Avidemux で無劣化編集する(別記事)

TSの保存

使うツールは kakorokuRecorder。

kakorokuRecorder 起動時の画面
226f905893be5ac43453ee14d279813ad91ff657

TS の保存をより便利にする機能もあり、放送ページの一括登録、同じ放送内で分割された TS があればそれだけ保存、TS だけ・コメントだけ保存、TS のエンコード(要:ffmpeg 非推奨)ができる。

普通の公式生放送やチャンネル生放送は kakorokuRecoder でログインして放送アドレスを登録することで録画できるが、ユーザー生放送や有料生放送は少し手間をかける必要がある。

ニコ生TSの一括登録に便利なサイト

ユーザー生放送のTSの場合

追記 2013年11月14日
生放送メンテナンス:11月14日(木)06:00~08:30‐ニコニコインフォ
11月14日のメンテナンスで再びユーザー生放送のTS保存に放送時間分だけかかるようになった。ユーザー生放送の保存には kakorokuRecorder Version 1.5.4 でユーザー放送やチャンネル放送で使った  rtmpdump-2.4-git-20131007_20131123.zip の rtmpdump を指定する。

ツール(T) < オプション < rtmpdump指定 よりユーザー生放送の「既定のrtmpdumpを使う」と「規定の引数を使う」のチェックを外す。

引数
-vr "{rtmp_url}" -C S:"{ticket}" -N "{que_rtmp}" -o "{file}" -v

ユーザー生放送とチャンネル生放送向けの namaroku140228_A  (nht.r.ribbon.to)
公式生放送向けの namaroku140228_B (KSV)
の rtmpdump を参照する。


7c085466c11ee18f3d1e0b7f5d5b221f45386caa

分割されたユーザー生放送の場合、2ファイル目以降で失敗することが多いので、lv123456789,2 などとして別アドレスとしてアドレス欄に登録する。

27afe9b22e6885da267df24354d143d0e6a78ec6

公式生放送やチャンネル生放送のTSの場合

付属の rtmpdump だと長時間TSでファイル容量が 4Gバイトを超えたときにそこで止まるので KSV さんの rtmpdump(rtmpdump-2.4.zip) に差し替えて上のユーザー生放送のTSと同じように引数の設定を変更する。オプションから生放送用に差し替えた rtmpdump を指定してもよい。

また配信から1週間以上前の公式生放送の TS が公開されていることもあるが、これらの放送は一度ブラウザで映像が流れるのを確認してから kakorokuRecorder に登録するとエラーにならない。

公式放送の場合は
-r "{rtmp_url}" -y "mp4:{que_rtmp}" -C S:"{ticket}" -W "http://live.nicovideo.jp/certified.swf" -o "{file}"

↓に変更する。

-r "{rtmp_url}" -y "mp4:{que_rtmp}" -C S:"{ticket}" -W "https://live.nicovideo.jp/nicoliveplayer.swf" -o "{file}"


チャンネル放送の場合は
-r "{rtmp_url}" -y "mp4:{que_rtmp}" -C S:"{ticket}" -o "{file}"

有料放送などのAPIが暗号されたの録画・保存

RTMPDumpHelperrtmpsuck) を使って解析

詳しい解説:RTMPDumpHelper の使い方

RTMPDumpHelper と同じフォルダ内に rtmpsuck を移動して、RTMPDumpHelper を起動。Opitions で実行されるのが下の図のように rtmpsuck であるのを確認して Options ウインドウを閉じて、RTMPDumpHelper を起動したままニコ生の有料放送を見る。

c43fe0e21aac5b3414d4f2e25a970b6e39e68308

すると、黒い DOS 画面にコマンドが流れるので、それを確認したら一度 RTMPDumpHelper を閉じる。そして、同じフォルダ内にある command.txt に出力される最終行のコマンドをメモ帳などにコピペし、拡張子を「.bat」に変更して保存。rtmpdump がある場所にバッチファイルを移動して実行。

ここで command.txt に出力されない場合は、上の場所から rtmpsuck を使っていない場合と、ブラウザの種類(基本は 32bit のブラウザを使う)と Flash Player のバージョンが原因である。

3時間以上ある場合はそこで分割されるのでそこの時間までシークして再度コマンドを取得する。例外として2013年6月頃から公式生放送では3時間単位で分割されず6時間単位で分割される。

不具合

特に21時から25時くらいの時間帯で kakorokuRecorder でコメントを保存した時にコメントの一部が歯抜けになることが発生するので、その場合は保存する時間帯を朝など放送が混雑していない時間帯にするか、他のコメビュー、例えば NCV でコメントを保存する。

kakorokuRecorder の保存形式を flv(変換なし)以外で保存すると動画が保存されないことがあるので、原則flv(変換なし)で保存する。

仕様

TS は放送が途切れた場合や、公式生放送を除いて3時間以上の放送は3時間毎に必ず分割される。分割されたくなければ生放送中に録画する。 kakorokuRecorder にはオリジナルのファイルが分割されていないのに分割する機能はない。長時間の TS の場合に一度の放送登録では2ファイル目以降の TS ファイルが保存できないことがあるのでファイル数を指定して保存する。方法は放送アドレスに「,2」などと指定してアドレス登録する。

例:2番目のTSが登録される
http://live.nicovideo.jp/watch/lv107698169,2


ユーザー生放送の TS の最後の1分で分割されて2つの動画になることがよくあるが、これも仕様である。動画を連結する方法は ニコ生のTSを無劣化で連結する Andy's FLV Joiner を参考にする。

TS の保存も21時から25時くらいの時間帯はサーバが混雑して保存に時間がかかるのでユーザー生放送以外はできれば避けたい。

コメントでは混雑時にはアリーナ最前席以外の席を取得することもある。

追記 2013年4月17日
本家ブログの方で更新しました  ユーザー生放送のTSの仕様について

TS の特定の時間だけ保存

rtmpdump の -A, -B, -R のオプションを使ってTSの特定の時間だけを保存する方法。 注意点に、生放送ではなく TS に限定されることと、ユーザー生放送の TS には使えない。-A, -B, -R を引数に使うときは -o の前に指定する。

例えば kakorokuRecorder でTSを保存したファイル名に「lv89834106_ 【悠木碧・内山夕実出演】咲らじ-阿知賀女子学院麻雀部- 第2局 - ニコニコ生放送_vpos-89000_1.flv」があるとする。この「vpos-89000_1」が重要で「-89000」は100分の1としたマイナス890秒から動画が始まり、890秒経つとニコ生の放送開始時間と同じ所から再生される。公式生放送の場合は待ち時間が大抵10分、一挙放送のアニメやニコファーレなどの放送は 30分待ち時間があるのでその時間を足した時間から本編が始まる。

「_1」は1番目のファイルで、2番めのファイルの場合は「_2」というファイル名になる。

rtmpdump のコマンドを出力してから -A, -B のオプションを組み合わせる。-R は付けなくても保存できるかもしれない。Version 1.5.0 から引数が指定できるようになった。

コマンドを実行するには cmd.zip を保存し rtmpdump と同じフォルダ内に解凍。cmd を実行し、コマンドをコピペして実行すればコマンドラインから rtmpdump を実行できる。

この方法で保存した場合にうまく再生できない動画が保存された場合は、時間指定を短くするか時間指定をせずに保存してから各種ツールでカットする。

それでも -B で途中でカットしたファイルは動画時間がおかしくなるので ffmpeg で .mkv に入れてから再度他のコンテナに入れ直すと動画時間が直る。

ffmpeg -i input.flv -c copy input.mkv
ffmpeg -i input.mkv -c copy input.mp4

ニコニコ動画に関係する編集と再生ツールのまとめ

コマンドを調べる方法

コマンド例:ニコ生の配信データを保存する rtmpdump のコマンド内容のまとめ
  1. MediaBox を使う
  2. RTMPExploreX(rtmpsuck)を使う
  3. RTMPDumpHelper(rtmpsuck)を使う
  4. NCVRTMPDumpWrapper を使う
  5. kakorokuRecorder を使い、Process Explorer でコマンドを調べる
  6. APIから直接調べる ほげに至る病-ニコニコミュニティ のコミュトップにある「PlayerStatusを確認する為のブックマークレット」が便利
  1. MediaBox を参照
  2. RTMPExploreX を参照
  3. ブラウザと一緒に RTMPDumpHelper(rtmpsuck)を起動して録画したい放送を見るだけ
  4. NCVRTMPDumpWrapper はNCV(NiconamaCommentViewer)のプラグイン NCVRTMPDumpWrapper の配布コミュニティ より保存。プラグイン(P)< RTMPDumpWrapper < 設定 < RTMPDump.exe の PATH を namarokuRecorder で使っているニコ生用のrtmpdumpを指定。NCVで放送に接続して、プラグインでは出力先を「なし」にするとコマンドが出力されるのでそれを一 時的にコピペする。
  5. Process Explorer を使う方法は、Process Explorer - technet.microsoft.com より保存し、解凍する。インストール不要なのでそのまま起動できる。kakorokuRecorder で保存しているときに Process Explorer を起動して起動プロセス内の rtmpdump をダブルクリックして「Command line:」の下のコードをすべてコピペする。
  6. APIから調べる方法は、 http://watch.live.nicovideo.jp/api/getplayerstatus/lv放送番号 にアクセスして必要なコマンドをコピペする。2番目以降のファイルを保存するのに便利だが、他の調べる方法と併用したほうがわかりやすい。

一時的にコピペしたコマンドに保存する時間を指定する

  • -A は保存開始時間(秒)を指定するオプション
  • -B は保存する動画時間(秒)を指定するオプション
    -A からの時間ではなく最初から数えての時間指定なので -A 30 -B 50 の場合、開始30秒から50秒までの20秒が保存対象になる。何も指定しないと最後まで保存される
  • -R は -A を指定すると最後まで保存できない場合に最後まで保存できるようになるオプション
  • -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"

生放送の時の保存方法などは ニコ生の録画方法 まとめを参照する。

TS ファイルで音声だけで映像が流れない場合

kakorokuRecoder それ自体には映像と音声を分離して保存することはできない。TS を再生してニコ生上では映像が流れるのに保存した TS では映像が流れない原因は映像と音声の始まり時間の時差にある。これが一定時間以上離れていると一般的なプレイヤーでは音声だけで映像が流れない。ニコ生上では映像が流れるので、Flash Player を使って再生する方法、例えばニコ動にアップロードしても映像が流れる。

再生方法

まずは、kakorokuRecoder の配布コミュの掲示板(6561番目のレス)より、flvrepair Ver.0.03 を保存。起動して適宜先頭のブロック数を指定する。映像が送れるファイルほど削るブロック数を増やす。100削ればほとんどの動画は再生できるようになる。削るブロック数が多すぎるとそれだけファイル容量が小さくなる。変換後ファイル名は「上書き保存する」ではなく、「ファイル名[r0].flvの名前で保存する」にして、オリジナルのファイルがうまく再生できることを確認するまでは破棄しない。設定が終わったら、TS ファイルを flvrepair の起動画面に放り込めば TS ファイルと同じ場所に処理したファイルが保存される。

5c722919ea8c1c39b8f00644a7f103d083c787b6

保存された動画に映像が流れれば、それでおしまい。流れなければ保存された動画にもう一度 flvrepair で処理することで映像が流れる動画のできあがり。

新配信のTS が分割されている場合

getplayerstatus を見ると2017年8月24日からは100秒毎に分割されていたのが、2017年9月7日からは420秒毎に変更されているので、kakorokuRecorder には (,) で分割登録する。放送時間によっては途中でタイムアウトする可能性があるのでその都度やり直す。そして同日420秒毎の分割も直り、最初の32分くらいで2分割され、それ以降は分割されなくなった。

編集する場合はこの方法が最適:AviUtl で読み込めないニコ生TSを Avidemux で無劣化編集する

下に「この記事は有料です。記事を購読すると、続きをお読みいただけます。 」とありますが、この記事は全文を公開しています。為になった、著者を支援したい方は 100 ニコニコポイントで購読できます。詳しくは こちら