Manifest
The small index file a player reads first — the map of every quality rendition and segment that makes adaptive streaming possible.
A manifest is a tiny text file — .m3u8 for HLS or .mpd for DASH — that lists every quality rendition and video segment, telling the player exactly what it can download and in what order.
What is a manifest?
A manifest is a small index file that describes a streaming video: it lists every available quality renditionAdaptive Bitrate (ABR)Automatically adjusts video quality in real time to match each viewer’s connection speed — smooth playback from 480p to 4K with no buffering.Open definition → and the URLs of the short segmentsHLS (HTTP Live Streaming)Apple’s adaptive streaming protocol. Uses .m3u8 manifests and segmented delivery; supported on every browser, device and smart TV.Open definition → that make up each one. When a player starts an adaptive stream, the manifest is the very first thing it downloads — it is the map the player uses to decide what to request.
Think of it as a table of contents for the video. The actual footage lives in dozens or hundreds of small segment files; the manifest is the lightweight text file that tells the player they exist, what quality each one is, and the order to play them in. It's typically a few kilobytes — tiny next to the video itself — but nothing plays without it.
Because the manifest lays out all the alternatives up front, the player can switch to a higher or lower rendition at any segment boundary, based on the bandwidth it measures. No manifest, no map — and no way to adapt quality mid-stream.
Manifest formats
Each streaming protocol has its own manifest format, but they describe the same thing.
| Format | Protocol | Type | Structure |
|---|---|---|---|
.m3u8 | HLSHLS (HTTP Live Streaming)Apple’s adaptive streaming protocol. Uses .m3u8 manifests and segmented delivery; supported on every browser, device and smart TV.Open definition → | Plain text | Master playlist → per-rendition media playlists |
.mpd | DASHDASHDynamic Adaptive Streaming over HTTP — an open ISO standard using .mpd manifests, common for DRM-protected premium content.Open definition → | XML | Single Media Presentation Description |
Modern setups often generate both from the same segments to cover every device — HLS for Apple, DASH elsewhere and for DRMDRMEncryption of the video file plus a licence server that issues a per-session key — so a downloaded copy stays unplayable.Open definition →.
What's inside a manifest
An HLS stream uses two levels of manifest, and understanding the split explains how adaptive switching actually works.
Lists every rendition once, each with its bandwidth (the bitrateBitrateThe amount of data used per second of video. Higher bitrate means more detail and a larger file; the core lever behind streaming quality.Open definition → the player needs to sustain it), resolutionResolutionThe pixel dimensions of a video frame — 480p, 720p, 1080p, 2160p (4K). Determines how sharp the picture looks on a given screen.Open definition → and codecsCodecThe algorithm that compresses and decompresses video — H.264, H.265 (HEVC) and AV1 are the most common in modern streaming.Open definition →. This is the menu the player chooses from — and it may also point to alternate audio tracks and subtitle tracks.
One per rendition. It lists that rendition's segments in order, each with its exact duration, plus the target segment length and — for encrypted streams — a pointer to the decryption key. This is the map the player follows once it has picked a quality.
So the flow is: fetch master → pick a rendition that fits current bandwidth → fetch that rendition's media playlist → download its segments → and, whenever bandwidth changes, jump to a different rendition's media playlist at the next segment. All of it driven by numbers the manifest exposes.
Live vs VoD manifests
| Aspect | VoD manifest | Live manifest |
|---|---|---|
| Segment list | Complete, fixed | Grows as new segments are produced |
| End marker | #EXT-X-ENDLIST present | Absent — stream is ongoing |
| Player behaviour | Read once | Re-fetches to find new segments |
For a live streamLive streamReal-time video delivered as it is captured, transcoded and segmented on the fly — webinars, events, broadcasts.Open definition →, the player keeps re-reading the manifest to discover the latest segments; for VoDVoD (Video on Demand)Pre-recorded video a viewer can start any time — the opposite of live. Transcoded once, then served from the CDN on request.Open definition →, one read is enough because the end marker tells it the video is complete.
Further reading
- Apple — HTTP Live Streaming — the HLS playlist specification.
- M3U / M3U8 — Wikipedia — background on the playlist format.
