なまけもの

備忘録

HLS(m3u8+ts)から動画をダウンロードする

simple.hatenablog.jp

最終更新日 : 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のインストールされた環境

simple.hatenablog.jp

手順

m3u8ファイルをダウンロードする

  1. Google Chrome動画ゲッターをインストールする。
  2. 保存したい動画を再生する。
  3. "動画ゲッター"のアイコンに数字が表示されているはずなので、ファイルをダウンロードする。

動画ファイルをダウンロードする

  1. コマンドプロンプトを起動する。
  2. コマンドを実行する。
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でのやり方は以下の通り。

  1. 動画ページを開く。
  2. F12キーを押す。
  3. "Network"タブを開く。
  4. Filterにm3u8を入力する。
  5. m3u8ファイルを選択し、アドレスをコピーする。
  6. 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ヒッツ"を追加

関連記事

simple.hatenablog.jp

simple.hatenablog.jp


以上。