最終更新日 : 2019/06/27
概要
HLS形式(m3u8+ts)を使用している動画サイトから動画をダウンロードする。
注意:著作権を遵守すること。
動作を確認済みのサイト
Avgle- 2018/05/12現在、ダウンロードできなくなっている。
- 2018/05/17現在のダウンロード方法はこちら。
- TVer
- 複数のm3u8ファイルが検出されたら、master.m3u8をDLする。
- Line Live
- ネットもテレ東
- 複数のm3u8ファイルが検出されたら、master.m3u8をDLする。
- dヒッツ
- 動画サイトでは無いが、"上記の方法でダウンロードできない場合"でDL可能。
目次
スポンサードリンク
用語
# | 概要 |
---|---|
m3u8ファイル | 動画のインデックスファイル。この情報を元にプレイヤーが動画を読み込み再生している。 |
準備
- ffmpegのインストールされた環境
手順
m3u8ファイルをダウンロードする
- Google Chromeに動画ゲッターをインストールする。
- 保存したい動画を再生する。
- "動画ゲッター"のアイコンに数字が表示されているはずなので、ファイルをダウンロードする。
動画ファイルをダウンロードする
- コマンドプロンプトを起動する。
- コマンドを実行する。
ffmpeg -protocol_whitelist file,http,https,tcp,tls,crypto -i <m3u8ファイル名> -movflags faststart -c copy <動画ファイル名>
成功すると以下が出力される。
[mp4 @ 0000(以下略) ] Starting second pass: moving the moov atom to the beginning of the file frame= <数値> fps=<数値> q=<数値> Lsize= <数値>kB time=hh:mm:ss bitrate= <数値>kbits/s speed=<数値>x video:<数値>kB audio:<数値>kB subtitle:<数値>kB other streams:<数値>kB global headers:<数値>kB muxing overhead: <数値>%
コマンドの解説
なんとなくのイメージ。より詳しくは各自調べて。
-protocol_whitelist file,http,https,tcp,tls,crypto
ffmpegで扱う暗号化方式を指定する。
-i <m3u8ファイル名>
指定したファイルを読み込む。
-movflags faststart
動画ファイルのメタデータを末尾から先頭に移動させる。再生できるプレイヤーが増える。
-c copy <動画ファイル名>
音声ファイルと動画ファイルを<動画ファイル名>にコピーする。
上記の方法でダウンロードできない場合
動画ゲッターでダウンロードしたm3u8ファイルではダウンロードできない場合もある。(TVerのFODなど)
この場合、動画ページ上でブラウザの開発ツールを開き、そこに表示されるm3u8ファイルへのアドレスを指定すれダウンロードできる。
Chromeでのやり方は以下の通り。
- 動画ページを開く。
- F12キーを押す。
- "Network"タブを開く。
- Filterにm3u8を入力する。
- m3u8ファイルを選択し、アドレスをコピーする。
- ffmpegで5のアドレスを指定し、ダウンロードする。
おまけ
m3u8ファイルをD&Dすると保存してくれるバッチファイル
@echo off rem ffmpeg.exe が保存されているフォルダのパス set FFDIR=C:\ffmpeg rem 動画の保存フォルダ set OUTDIR=C:\Download for %%f in (%*) do ( "%FFDIR%\ffmpeg" -protocol_whitelist file,http,https,tcp,tls,crypto -i %%f -movflags faststart -c copy "%OUTDIR%\%%~nf.mp4" )
更新履歴
日付 | 更新内容 |
---|---|
2018/05/12 | AvgleからDLできなくなっているため打消し |
2019/05/24 | "上記の方法でダウンロードできない場合"を追記 |
2019/06/27 | "動作を確認済みのサイト"に"dヒッツ"を追加 |
関連記事
以上。