M3U8ダウンロードの流れ

M3U8ダウンロードの本質:自分が何をしているかを理解する

ダウンロードツールについて話し始める前に、まずM3U8の本質を理解する必要があります。M3U8自体は単なる プレーンテキストのプレイリストインデックスファイル であり、動画データは一切含まれていません。実際の動画データは数十から数百の .ts (MPEG-TS) セグメントファイルに分割され、サーバー上に別々に保存されています。

したがって、「M3U8をダウンロードする」とは実際には以下のことを指しています:

  1. M3U8ファイルを 解析 し、すべての .ts セグメントのリンクのリストを取得する
  2. すべての .ts セグメントをローカルデバイスに 一つずつダウンロード する
  3. すべてのセグメントを 結合 し、完全な MP4 または MKV 動画として出力する

ダウンロード前の確認事項

ダウンロードを始める前に、以下の点を事前に確認しておくとトラブルを防げます:

  • M3U8のURLが有効か? — ブラウザでURLを直接開き、テキスト形式のプレイリストが表示されるか確認する
  • 暗号化されているか? — M3U8の中に #EXT-X-KEY タグがあればAES-128暗号化、DRM保護がかかっている可能性がある
  • 認証が必要か? — Token付きURL、Referer検証、Cookie認証の有無を確認する
  • 必要なディスク容量 — 1時間の720p動画は約1.5〜3GB、1080pなら3〜6GBが目安

一般的なM3U8ダウンロード方法の比較

方法その1:FFmpeg コマンドライン(最も安定しており、最も推奨される)

FFmpeg はM3U8を処理するための最も強力で信頼性の高いツールです。コマンドを1行入力するだけで済みます:

ffmpeg -i "https://example.com/stream.m3u8" -c copy output.mp4

メリット: - マスタープレイリスト (Master Playlist) からの画質の自動選択に対応している - 処理速度が速く、CPU使用率が低い(-c copy により再エンコードされないため) - クロスプラットフォーム対応(Windows / macOS / Linux) - AES-128暗号化ストリームの自動復号に対応している

FFmpeg のインストール方法

OS インストール方法
Windows 公式サイト から ZIP をダウンロードし、ffmpeg.exe へのパスを PATH 環境変数に追加する
macOS brew install ffmpeg(Homebrew 経由)
Linux sudo apt install ffmpeg(Ubuntu/Debian)または sudo dnf install ffmpeg(Fedora)

認証付きストリームの処理

多くのストリームはReferer・User-Agent・Cookie などの HTTP ヘッダー検証を行っています。FFmpeg ではこれらを個別に指定できます:

# Referer 検証を突破する
ffmpeg -headers "Referer: https://example.com/" \
       -i "https://stream.m3u8" \
       -c copy output.mp4
# User-Agent + Cookie も含む場合
ffmpeg -headers "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64)\r\nCookie: session=abc123\r\nReferer: https://example.com/" \
       -i "https://stream.m3u8" \
       -c copy output.mp4

ポイント: 複数のヘッダーを指定する場合、\r\n で区切ります。ブラウザのDevTools(F12 → ネットワークタブ)でM3U8リクエストのヘッダーを確認するのが最も確実です。

ダウンロード中にエラーが発生した場合

エラー内容 原因 解決策
403 Forbidden Referer/Token 検証失敗 正しい HTTP ヘッダーを追加する
404 Not Found URLが期限切れまたは不正 新しいURLを取得する
Server returned 5XX サーバー側の問題 時間をおいて再試行する
Connection timed out ネットワーク不安定 -reconnect 1 -reconnect_streamed 1 を追加する
セグメント一部欠損 ネットワーク切断 -reconnect_delay_max 30 でリトライ間隔を設定する

不安定なネットワーク環境でダウンロードする場合、自動リトライオプションを追加するのが推奨されます:

ffmpeg -reconnect 1 -reconnect_streamed 1 -reconnect_delay_max 30 \
       -i "https://stream.m3u8" \
       -c copy output.mp4

方法その2:VLCプレーヤー(操作画面あり、非技術者に適している)

VLC はオンラインストリームの直接保存機能をサポートしています:

  1. VLCを開く → メディア (Media) → ネットワークストリームを開く (Open Network Stream)
  2. M3U8リンクを貼り付ける
  3. 再生ボタンの横にある下向き矢印をクリック → 変換 / 保存 (Convert / Save)
  4. 出力フォーマット(MP4など)と保存先パスを選択する

デメリット: 速度がFFmpegより遅く、Referer / Cookie などの認証ヘッダーを指定できません。また、リアルタイム速度でしかダウンロードできないため、2時間の動画には2時間かかります。

方法その3:ブラウザベースのツール(インストール不要、一部制限あり)

当サイトが提供している HLS ダウンロードツール は、FFmpeg.wasm および JavaScript エコシステムを使用し、いかなるソフトウェアもインストールすることなく、解析、ダウンロード、結合のすべてをブラウザ内で直接完了させます。

適用条件: - 動画サーバーがCORSクロスドメインリクエストを許可していること(公開テストストリームは通常許可しています) - 動画の長さがあまり長すぎないこと(ブラウザのメモリを使用するため、720p 30分以内が目安) - Referer や Cookie による検証が必要ないこと

方法その4:N_m3u8DL-RE(高速・高機能 CLI ツール)

N_m3u8DL-RE は並列ダウンロードに対応したオープンソースの M3U8 専用ダウンローダーです。FFmpeg よりもダウンロード速度が速く、AES-128 の自動処理もサポートしています。

# 基本的なダウンロード
N_m3u8DL-RE "https://stream.m3u8" --save-dir ./output

# 認証ヘッダー付き + 32並列ダウンロード
N_m3u8DL-RE "https://stream.m3u8" \
    --header "Referer: https://example.com/" \
    --header "Cookie: session=abc123" \
    --thread-count 32 \
    --save-dir ./output

詳しくは 👉 N_m3u8DL-RE 完全ガイド

ダウンロード速度の目安とディスク容量

動画の品質とネットワーク速度によって、ダウンロード時間とファイルサイズは大きく変わります:

画質 ビットレート目安 1時間のファイルサイズ 100Mbps回線での所要時間
360p 0.5〜1 Mbps 約 225〜450 MB 約 20〜40 秒
480p 1〜2 Mbps 約 450〜900 MB 約 40〜80 秒
720p 2〜4 Mbps 約 0.9〜1.8 GB 約 1〜3 分
1080p 4〜8 Mbps 約 1.8〜3.6 GB 約 3〜5 分
4K 15〜25 Mbps 約 6.7〜11 GB 約 10〜15 分

ヒント: 実際のダウンロード速度はサーバー側の帯域制限やCDNの地理的距離にも依存します。

なぜ多くの商用プラットフォームからはダウンロードできないのか?

以下の技術的手段によって、M3U8ダウンロードツールは無効化されます:

保護メカニズム 説明 結果
CORS制限 サーバーがクロスオリジンのリクエスト (Fetch) を許可しない ブラウザベースのツールは100%失敗する
AES-128暗号化 各TSセグメントが暗号化されており、動的なキーが必要になる キーURLにアクセスできなければ再生不可
DRM(Widevineなど) ハードウェアレベルの著作権保護 スキルやツールを使っても基本的には処理できない
Token / 時限URL 動画リンクに時間制限がある 少し時間が経ってからダウンロードしようとすると 403 エラーで失敗する
IPバインディング 動画リンクが特定のIPに紐づけられている ネットワーク環境やプロキシを変更すると無効になる

重要: AES-128 暗号化の場合、FFmpeg は鍵URLに自動的にアクセスして復号を行います。ただし、鍵URLにも認証が必要な場合は、-headers で対応するヘッダーを追加してください。

トラブルシューティングの手順

ダウンロードがうまくいかないときは、以下の順番で原因を特定してください:

  1. M3U8 URLをブラウザで確認する — テキストが表示されれば有効、403/404ならURLが無効
  2. ブラウザのDevToolsでヘッダーを確認する — F12 → ネットワーク → M3U8リクエストを選択 → Request Headers を確認
  3. 暗号化を確認する — M3U8 テキスト内に #EXT-X-KEY があるか確認
  4. FFmpegで -v debug を付けて実行する — 詳細なエラーログが出力される
  5. 一つの .ts セグメントを curl でダウンロードしてみる — サーバー側の問題かツール側の問題かを切り分ける
# セグメント単体のテストダウンロード
curl -H "Referer: https://example.com/" \
     -o test.ts \
     "https://cdn.example.com/segment-001.ts"

合法的な使用に関する注意事項

M3U8ダウンロードツール自体は合法的な技術ツール(FFmpegは専門的な放送業界で広く使用されています)ですが、その合法性は使用目的によって決定されます:

  • 自分がアップロードした動画のバックアップをダウンロードする
  • ライセンスや許可の範囲内 で教育コンテンツをダウンロードする
  • 技術研究 や開発のためのテスト
  • ❌ 商業プラットフォームの著作権保護されたコンテンツをダウンロードする
  • ❌ ダウンロード後に無断で配布、または商業利用する

関連ツール・記事

今すぐM3U8リンクをテストしますか?

🚀 M3U8 オンラインプレーヤーを試す