Manifest

The small index file a player reads first — the map of every quality rendition and segment that makes adaptive streaming possible.

Updated: May 2026 5 min read Streaming

In this article

After reading, you'll understand:

  • What a manifest is and what it contains
  • The difference between .m3u8 and .mpd
  • Master vs media playlists, and what each field means
  • How live and VoD manifests differ
  • Why the manifest is what enables quality switching

What is a manifest?

A manifest is a small index file that describes a streaming video: it lists every available quality rendition and the URLs of the short segments 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.

FormatProtocolTypeStructure
.m3u8HLSPlain textMaster playlist → per-rendition media playlists
.mpdDASHXMLSingle Media Presentation Description

Modern setups often generate both from the same segments to cover every device — HLS for Apple, DASH elsewhere and for DRM.

What's inside a manifest

An HLS stream uses two levels of manifest, and understanding the split explains how adaptive switching actually works.

The master playlist

Lists every rendition once, each with its bandwidth (the bitrate the player needs to sustain it), resolution and codecs. This is the menu the player chooses from — and it may also point to alternate audio tracks and subtitle tracks.

The media playlist

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

AspectVoD manifestLive manifest
Segment listComplete, fixedGrows as new segments are produced
End marker#EXT-X-ENDLIST presentAbsent — stream is ongoing
Player behaviourRead onceRe-fetches to find new segments

For a live stream, the player keeps re-reading the manifest to discover the latest segments; for VoD, one read is enough because the end marker tells it the video is complete.

How Kinescope handles this

Manifests are generated for you. When Kinescope transcodes an upload, it writes the HLS manifests (and DASH for DRM), keeps them in sync with the segments, and serves them from its own CDN. For live, the manifest is updated in real time as segments are produced. You embed a player; the manifest handling is invisible.

Read the Kinescope docs

Frequently asked questions

What is a manifest file in streaming?

A manifest is a small index file that lists every quality rendition of a video and the URLs of its segments, so the player knows what it can request and how to switch quality. It is the first file a player downloads when it starts an adaptive stream.

What is the difference between .m3u8 and .mpd?

They are the manifest formats for the two main protocols. .m3u8 is the HLS playlist (plain text); .mpd is the DASH Media Presentation Description (XML). Both describe the same thing — available renditions and their segments — for their respective protocols.

What is a master vs media playlist in HLS?

In HLS, the master playlist (.m3u8) lists the available quality renditions with their bandwidth, resolution and codecs, and points to a separate media playlist for each. Each media playlist lists that rendition's ordered segment URLs and durations. The player reads the master first, then fetches segments from whichever media playlist fits the connection.

What information does a manifest contain?

A master manifest lists each rendition's bandwidth, resolution and codec so the player can choose. A media (per-rendition) manifest lists the ordered segment URLs and each segment's duration, plus flags such as whether the stream is live or has ended. Manifests can also point to alternate audio tracks, subtitles and encryption keys.

How is a live manifest different from a VoD manifest?

A VoD manifest is static: it lists every segment once and ends with a marker (in HLS, #EXT-X-ENDLIST) telling the player the video is complete. A live manifest is updated continuously as new segments are produced and has no end marker, so the player re-fetches it to discover the latest segments as the stream continues.

Do I need to create manifests myself?

No, if you use a hosting platform. Kinescope generates the HLS (and DASH) manifests automatically when it transcodes your upload, keeps them in sync with the segments, and serves them from its CDN. You embed a player; the manifest handling happens behind the scenes.

Further reading

Denis Konnov

Written by

Denis Konnov Verified

CMO at Kinescope

Denis leads marketing and content at Kinescope, working closely with the platform's engineers. This glossary is reviewed and kept up to date by the team building Kinescope's streaming, encoding and CDN delivery infrastructure.