今回は、ニコニコ生放送で放送されている番組をリアルタイムに録画しダウンロードする方法をご紹介します。
録画した動画・番組には著作権があります。違法にアップロード・配信されている番組を著作者の許可なくダウンロードする行為は著作権法に抵触する恐れがあります。録画した動画には細心の注意を払って取り扱ってください。また、この記事に書かれている方法を実行して生じた損害等につきまして、一切の責任を負いかねますのでご承知ください。
はじめに
ニコニコ生放送の配信方式は、Flash時代はRTMP方式でしたが、HTML5・新サーバーに移行するにあたって「HLS配信」という新しい配信方式に変わりました。こちらは配信している動画を複数のtsファイルに分割し、これをまとめたm3u8というプレイリストファイルと鍵となるkeyファイルをプレイヤーに読み込ませることで再生するものとなっています。
ちなみにニコ生ではtsファイルが3~4秒単位で区切られており、これにより低遅延で放送主との双方向的なコミュニケーションが可能になるとされておりますが、やはりRTMP配信よりも遅延が発生してしまします。
もっと深く知りたい方はこちらの記事が参考になると思います。
用意するもの
Google Chrome(ブラウザ)
Google Chromeは最新版のものをこちらからダウンロード・インストールしておいてください。
FFmpeg(オープンソースの動画変換ソフト)
導入は少し複雑なので順番にやっていきましょう。
まずこちらのページにアクセスしてください。
Versionは上のもの(日付が書いてあるNightly Versionです)、Architectureはお使いのPCのbitを選び、LinkingはStaicを選びます。選んだら最後に「Download Build」をクリックするとダウンロードが開始されます。
任意の場所にダウンロードし、これを解凍しておいてください。
その中の、「bin」というフォルダの中に入ってください。
中に「ffmpeg.exe」があることを確認してください。
これで準備は完了です。
実際に録画してみる
ここから実際に録画してみます。まずはその生放送の放送ページのURLを準備しておいてください。
①開発者ツールを開いておく
まず、キーボードの「F12」キーを押して「開発者ツール」を開いてください。(右クリック→検証 や、 Ctrl+Shift+Iでも起動することはできます)
開いたら、「Network」というタブを開いてください。
②放送ページを開く
開発者ツールを開き、「Network」タブに移動したら生放送ページを開いてください。おそらくNetwrokタブの中身がずらずらずらと更新されていくと思います。
次に、「Filter」という入力フォームに「m3u8」と入力してEnterを押してください。
下にずらずら出て来るplaylist.m3u8~から始まるものが生放送の動画の「プレイリスト」です。これのうち、一番最新のものをクリックしてください。(おそらく数秒単位で更新されていくのである程度最新のものでOKです)
すると隣にそのプレイリストURLの情報が出てくるので、その中の「Request URL」という欄のURLを全てコピーしてください。
これをメモ帳かなにかに貼り付けておきましょう。
③コマンドを作る
先ほどのURLをダウンロードするためのコマンドを作ります。
ffmpeg -i “プレイリストURL” -c copy output.ts
こんな感じにメモ帳にメモしておいてください。
あとはこれを全部コピーしておきます。
④ffmpegを起動
ffmpegはコマンドラインツールなので、先にコマンドプロンプトを起動する必要があります。
先ほどのffmpeg.exeのあったbinフォルダのアドレスバーに「cmd」と打ち込み、コマンドプロンプトを起動してください。
コマンドプロンプトが開くので、タイトルバーを右クリック→編集→貼り付け でコマンドを貼り付けます。
貼り付けできたらEnterを押してください。動画の録画が開始されます。
このようにダウンロードが始まったら成功です。
放送ソースが中断されたら自動的に録画はストップします。また、途中で止めたいときは、Ctrl+C で中断することが出来ます。
注意事項
- 放送ページは開いたままにしておいてください。閉じると録画も途中で中断してしまいます。(ただし、コメントビューアをつなげておけば録画はできるみたいです)
- 配信の状況により配信がストップしたら録画もストップしてしまいます。中断してしまったら、もう一度同じコマンドを入力することで再開することができます。(ただしコマンドを入力した地点からです)
- 録画される画質は、生放送ページで見ている画質と同じです。最高画質にする場合は、放送ページ上で切り替えておく必要があります。
以上です。