
M3U8ダウンロードの本質:自分が何をしているかを理解する
ダウンロードツールについて話し始める前に、まずM3U8の本質を理解する必要があります。M3U8自体は単なる プレーンテキストのプレイリストインデックスファイル であり、動画データは一切含まれていません。実際の動画データは数十から数百の .ts (MPEG-TS) セグメントファイルに分割され、サーバー上に別々に保存されています。
したがって、「M3U8をダウンロードする」とは実際には以下のことを指しています:
- M3U8ファイルを 解析 し、すべての
.tsセグメントのリンクのリストを取得する - すべての
.tsセグメントをローカルデバイスに 一つずつダウンロード する - すべてのセグメントを 結合 し、完全な 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 はオンラインストリームの直接保存機能をサポートしています:
- VLCを開く → メディア (Media) → ネットワークストリームを開く (Open Network Stream)
- M3U8リンクを貼り付ける
- 再生ボタンの横にある下向き矢印をクリック → 変換 / 保存 (Convert / Save)
- 出力フォーマット(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で対応するヘッダーを追加してください。
トラブルシューティングの手順
ダウンロードがうまくいかないときは、以下の順番で原因を特定してください:
- M3U8 URLをブラウザで確認する — テキストが表示されれば有効、403/404ならURLが無効
- ブラウザのDevToolsでヘッダーを確認する — F12 → ネットワーク → M3U8リクエストを選択 → Request Headers を確認
- 暗号化を確認する — M3U8 テキスト内に
#EXT-X-KEYがあるか確認 - FFmpegで
-v debugを付けて実行する — 詳細なエラーログが出力される - 一つの
.tsセグメントをcurlでダウンロードしてみる — サーバー側の問題かツール側の問題かを切り分ける
# セグメント単体のテストダウンロード
curl -H "Referer: https://example.com/" \
-o test.ts \
"https://cdn.example.com/segment-001.ts"
合法的な使用に関する注意事項
M3U8ダウンロードツール自体は合法的な技術ツール(FFmpegは専門的な放送業界で広く使用されています)ですが、その合法性は使用目的によって決定されます:
- ✅ 自分がアップロードした動画のバックアップをダウンロードする
- ✅ ライセンスや許可の範囲内 で教育コンテンツをダウンロードする
- ✅ 技術研究 や開発のためのテスト
- ❌ 商業プラットフォームの著作権保護されたコンテンツをダウンロードする
- ❌ ダウンロード後に無断で配布、または商業利用する
関連ツール・記事
- 👉 当サイトのツールを使ってHLSリンクのダウンロードをテストする(ブラウザで動作、インストール不要)
- 👉 M3U8からMP4に変換する完全ガイド
- 👉 M3U8とは?フォーマットの完全な説明
- 👉 M3U8暗号化とDRMの解析
- 👉 ダウンロードが遅い?5つの高速化方法
- 👉 N_m3u8DL-RE 完全ガイド
今すぐM3U8リンクをテストしますか?
🚀 M3U8 オンラインプレーヤーを試す