M3U8 プレイリストファイルのダウンロード方法:ステップバイステップガイド
M3U8 プレイリストで再生される動画を保存しようとしたことがあれば、そのイライラをご存知でしょう:明らかな「ダウンロード」ボタンはなく、本当に欲しいファイルは 1 つの整った動画ではなく、数十(または数百)の小さな動画チャンクを指すプレイリストなのです。
目次
M3U8 プレイリストファイルとは?
M3U8 プレイリストファイルはプレーンテキストのインデックスです。動画自体を保持する代わりに、ストリームを構成するメディアセグメント(通常 .ts または .m4s ファイル)を再生順にリストします。動画という本の目次のようなものです。
「M3U8 ファイルをダウンロードする」と言うとき、実際には 2 つの意味があります:
- .m3u8 テキストファイル自体を保存する(簡単ですが、単独では無意味)。
- プレイリストが記述する実際の動画を保存する——すべてのセグメントファイルを取得して MP4 のような再生可能なファイルに結合すること。
M3U8 URL の見つけ方
何かをダウンロードする前に、プレイリスト URL が必要です。ほぼすべてのウェブサイトから取得する最速の方法は次のとおりです:
- 1動画を再生しているページを開きます。
- 2F12(または右クリック → 検証)を押して開発者ツールを開きます。
- 3ネットワークタブに移動してページを再読み込みします。
- 4フィルターボックスに m3u8 と入力します。
- 5.m3u8 で終わるリクエストを探し、右クリックして「コピー → URL をコピー」を選びます。
Tip: ヒント:複数の .m3u8 が表示された場合、セグメントが最も多いもの(多くの場合「メディアプレイリスト」)が通常は目的のものです。「マスタープレイリスト」は品質バリアントをリストし、メディアプレイリストを指します。
M3U8 ファイルのダウンロードの仕組み
内部では、M3U8 ストリームのダウンロードは 3 ステップのプロセスです:
- 1プレイリストを読み取ってすべてのセグメント URL を見つける。
- 2各セグメントファイル(.ts または .m4s チャンク)をダウンロードする。
- 3セグメントを 1 つの連続した動画ファイル(通常 MP4)に結合する。
Tip: 一部のストリームは暗号化されており(AES-128)、デコードにキーが必要です。その他は署名付きまたはすぐに期限切れになるため、ダウンロードが 1 分前に成功して次は失敗することがあります。
TS セグメントのダウンロード方法
プレイリスト URL を取得したら、次のステップはすべてのセグメントファイルを取得することです。スクリプトで手動で行うか、ツールに任せることができます。注意すべきポイント:
- セグメントは多くの場合順番に名前が付けられており(segment-001.ts、segment-002.ts …)、一括ダウンロードが簡単です。
- 一部のサーバーは元のページと同じ cookies、Referer、User-Agent を要求し、そうでないとリクエストを拒否します。
- セグメントが欠落しているかエラーを返す場合、最終動画のその箇所に乱れが生じることがあります。
TS セグメントを MP4 に結合する方法
個々の TS セグメントは、それ自体では便利な動画ファイルではありません。実際に視聴・共有できるものを得るには、単一の MP4 に結合します。一般的な考え方:
- プレイリスト順にセグメントを連結する。
- 結合したストリームを MP4 コンテナに再パッケージする。
- 元のコーデックを保持して、結合中に品質を失わないようにする。
Tip: 良い結合ツールは、既存の H.264/H.265 動画と AAC 音声を保持し、単純に MP4 に包みます——再エンコードなし、品質損失なし。
ダウンロード時の CORS エラーの修正
CORS(Cross-Origin Resource Sharing)は、遭遇する最も一般的な壁です。動画サーバーはブラウザに「このウェブサイトだけが私のファイルを読み込める」と伝えるため、別のオリジンからの直接ダウンロードはブロックされます。
- 自身のサーバーまたは Cloudflare Worker を通じてリクエストをプロキシするダウンローダーを使う。
- 元のページの Referer と User-Agent ヘッダーをリクエストに付ける。
- オリジンがクロスサイトアクセスを厳格にブロックする場合は、別のストリームやソースを試す。
Tip: これこそが、内蔵の「スピードブースト」プロキシを持つツールが存在する理由です——CORS が適用されないサーバー側でセグメントを取得し、結合したファイルを返します。
方法 1:ブラウザ拡張機能を使う
一時的なダウンロードには、視聴中のページで M3U8 ストリームを検出するブラウザ拡張機能が最も簡単です。
- HLS/M3U8 ストリームをキャプチャする拡張機能をインストールする。
- 動画ページを開いて拡張機能にプレイリストを検出させる。
- ダウンロードをクリックして出力形式(多くの場合 MP4)を選ぶ。
Tip: 拡張機能は便利ですが制限があります:ページがリクエストを許可していることに依存し、暗号化や保護されたストリームを処理できない場合があります。
方法 2:手動ダウンロード(FFmpeg / curl)
ターミナルに慣れているなら、コマンドラインツールが最も多くの制御を提供します。FFmpeg は M3U8 プレイリストを直接読み取り、結合されたファイルを出力できます:
ffmpeg -i "https://example.com/path/playlist.m3u8" -c copy output.mp4
Tip: URL を自分のプレイリストに置き換えます。ソースが Referer または User-Agent を要求する場合は -headers でヘッダーを追加します。セグメントだけを取得する場合は、curl で各 .ts ファイルをループで取得できます。
方法 3:オンライン M3U8 ダウンローダーを使う
最も使いやすい選択肢は、取得・結合・変換をすべてブラウザ内で行うオンライン M3U8 ダウンローダーです。インストール不要。
- M3U8 URL をダウンローダーに貼り付ける。
- 必要に応じてプロキシを有効にして CORS とホットリンク保護を回避する。
- 出力形式として MP4 を選び、ダウンロードを開始する。
- 結合した動画をデバイスに保存する。
Tip: 当サイトの無料 M3U8 ダウンローダーはこのように動作します:URL を貼り付け、必要ならスピードブーストを切り替え、結果を MP4 としてダウンロードします。
安全にダウンロードするためのベストプラクティス
いくつかの習慣で、ダウンロードを確実かつ適切に保てます:
- 自分が所有する、または保存権限のあるコンテンツのみをダウンロードする。
- 品質損失を避けるため元のコーデック(コピーモード)を保持する。
- ソースがクロスサイトリクエストをブロックする場合はプロキシまたは正しいヘッダーを使う。
- 迅速に行動する——多くの署名付きまたは一時 URL は数分で期限切れになります。
- ソースセグメントを削除する前に、結合したファイルが再生できることを確認する。
M3U8 ダウンロードのよくある問題
ダウンロードが失敗するとき、ほぼ常に次のいずれかです:
- CORS ブロック — プロキシまたは正しい Referer/User-Agent を使う。
- 有効期限切れまたは署名付き URL — 新しいプレイリスト URL を取得する。
- 暗号化セグメント — 復号キーが必要です。
- 認証が必要 — cookies またはトークンを提供する。
- セグメント欠落 — ソースが一部のチャンクを削除した;別のストリームを試す。