M3U8 / HLS
Appleが発明し、Apple製デバイスならどれでも再生できるのに、どれも保存はできない。
.m3u8ファイルは動画ではなくプレイリストです——数千個の小さなセグメントを順番に取得するよう指示する、わずか数キロバイトのテキストです。この設計のおかげでHLSはApple製デバイス上で完璧に再生でき、「このファイルを保存」がテキスト文書になるのも同じ理由です。ダウンロードするとは、すべてのセグメントを取得し、もともと存在しなかった1本のファイルを組み立て直すことです。
2026年7月30日
助けを借りずに開けられた
HLSはApple自身の仕様であり、Safari、AVPlayer、AirPlayなどあらゆる場所で第一級のサポートを受けています。システムのどこにも存在しないのは、ライブストリームをディスク上のファイルへ変える仕組みです。再生することと保持することは、まったく別の問題です。
事実
| 正式名称 | HTTP Live Streaming。プレイリスト自体はUTF-8のM3U |
|---|---|
| 種類 | ストリーミングプロトコル。テキストのプレイリストとして配信される |
| 拡張子 | .m3u8(プレイリスト)、.tsや.m4s(その指す先のセグメント) |
| 公開 | 2009年、Apple。2017年にRFC 8216として標準化 |
| 一般的なセグメント長 | 各2〜10秒——1時間の動画で数百から数千ファイルになる |
| マスターとメディアの2種類 | マスターは画質レベルの一覧で、それぞれが実際のセグメントを持つメディアプレイリストを指す |
| セグメント内の映像 | H.264またはHEVC、時にAV1 |
| ライブ配信 | プレイリストは数秒ごとに再取得され、放送が続く限り伸び続ける |
本そのものではなく目次
.m3u8をテキストエディタで開くと、数十行しかありません——ヘッダー、いくつかのパラメーター、そして長いアドレスの一覧です。それがファイルのすべてです。動画は別の場所にあり、数秒単位のセグメントに切り分けられ、サーバー上に数千個の別々の小さなファイルとして置かれています。
プレーヤーはこの一覧を読み、最初の数セグメントを取得して再生を始め、自分より先へ先へと取得を続けます。接続が遅くなると、マスタープレイリストに載っている画質の低いバリアント——別のビットレートの別のセグメント群——へ切り替え、それをセグメントの切れ目で行うため、途切れではなく画質の変化として見えます。この適応的な切り替えこそ、この形式が広まった理由です。
これは人々を驚かせる事実も説明します。手元に置けるファイルは1つも存在しないのです。今見ている映画は、どこにも1つのオブジェクトとしては存在していません。それは千の断片と、一連の指示にすぎません。
保存するとテキストファイルになる理由
それがまさに保存したものだからです。ブラウザは指定したアドレスにリクエストを送り、4キロバイトほどのプレイリストを受け取り、それをディスクに書き込みました。実際に視聴していたものはすべて、保存操作がまったく関知しない千件もの別々のリクエストを通じて届いていたのです。
HLSを正しくダウンロードするとは、プレーヤーがやっていることをディスク上でも行うことです——プレイリストを読み、画質バリアントを選び、すべてのセグメントを順番に取得し、それらを1つのコンテナに縫い合わせます。この最後の工程が再多重化と呼ばれるもので、映像・音声は再エンコードされず、シークできるよう適切なインデックスを持つ1本のMP4へ書き直されるだけです。
これを見た目より難しくしている要因が2つあります。セグメントのアドレスは相対パスであることが多く、セッションごとに変わるため、1時間前に取得した一覧はすでに無効かもしれません。そしてストリームはしばしば、プレイリスト内で参照される鍵——別途配信され、再生中に更新される——によって暗号化されています。
端末にファイルとして残す方法
対象は、自分に保持する権利があるストリームに限ります——自分の録画、自分のIPTV契約、配信元がダウンロードを提供しているものなど。以下はその仕組みの説明であって、どこにでも使ってよいという許可ではありません。
- ダウンロードエンジンにセグメント処理を任せる
千個のファイルを取得して再多重化するのは、まさにFoxDLのダウンローダーがHLSソースに対して行っている作業です。プレイリストをたどり、セグメントを並列に取得し、通常のファイルのようにシークできる1本のMP4を書き出します。手元に残るのは断片の詰まったフォルダーではなく、1本のファイルです。
- 直接のファイルがあればそちらを使う
多くのサイトはHLSと、プレーンなプログレッシブMP4の両方を提供しています。MP4なら1回のリクエスト、1本のファイルで済み、組み立て直す必要もありません——選べるならいつでもこちらが有利です。
- 保持できないものもあると理解する
FairPlayやWidevineといったDRMで保護されたストリームは端から端まで暗号化されており、設計上ダウンロードできません。どんなツールもそれを変えられませんし、変えられると謳うツールは何かについて嘘をついています。
HLSのダウンロードでよくある失敗
再多重化せずにセグメントを単純に連結すると、再生はできてもインデックスのないファイルができます。最初からは再生できても、どこにも飛べません。再多重化がそれを直すインデックスを書き込みます。
ライブのプレイリストには終わりがなく、ずっと伸び続けます。それをダウンロードすることは録画することと同じで、ファイルが終わるのではなく、自分で止めたときに止まります。
プレイリストのアドレスはたいてい署名付きで、期限があります。今朝保存した.m3u8が、午後にはもう何も指していないことがよくあります。
このフォーマットに関する質問
これらの事実はどこから来たのか
- RFC 8216 — HTTP Live Streaming IETF
- HTTP Live Streaming Apple Developer