Authoring multivariant and media playlists
Author the HTTP Live Streaming (HLS) multivariant and media playlists that Apple Podcasts requires, with the tags and attributes each playlist uses.
Overview
An HLS presentation for Apple Podcasts consists of two playlist types: a multivariant playlist that lists the available variant streams and media renditions, and a media playlist for each variant stream or rendition that lists its individual segments. Author both playlist types using the tags described below. For general information about video-on-demand playlists, see Video on Demand playlist construction.
Declare multivariant playlist tags
The multivariant playlist describes all the available variant streams (different video bit rate tiers and formats) and media renditions (audio languages, subtitles, and others) for the presentation. A URI and descriptive tags specify each variant stream and media rendition. The URI tells the player where to download the media playlist for the variant stream or media rendition.
# | Tag Name | Description | Parameters | Required/Optional | Example |
|---|---|---|---|---|---|
1 |
| Identifies the file as an M3U playlist | None | Required (must be first line) |
|
2 |
| Indicates HLS protocol compatibility version | None | Minimum required version is 4. You may need a higher version depending on the features you use. |
|
3 |
| Defines a variant stream with its attributes |
| Apple Podcasts requires an audio-only variant stream along with video variant streams. For better performance, include multiple video renditions. 1080p (required) and 720p (required), but consider including 480p and 360p for network-constrained devices. |
|
4 |
| Defines audio grouping and alternative renditions (audio, subtitles, and others) |
| Required for audio-only grouping. Optional for providing alternate audio language renditions or subtitles. |
|
5 |
| Defines an iframe-only variant stream for trick play (fast forward, rapid rewind, scrubbing) |
| Required for seeking enhancement. Target capturing 2 frames per second but no more than 8 frames per second. |
|
Declare media playlist tags
The media playlist contains a list of media segments (video or audio chunks) for a specific variant stream or media rendition, along with a group of descriptive tags. Each media segment is specified by URI and optional byte range, telling the player exactly which files and byte ranges to download and play in sequence. A media playlist can contain advertising markers or HLS interstitials specified by media metadata tags.
# | Tag Name | Description | Parameters | Required/Optional | Example |
|---|---|---|---|---|---|
1 |
| Identifies the file as an M3U playlist | None | Required (must be first line) |
|
2 |
| Indicates HLS protocol compatibility version | Version number | Minimum required version is 7. You may need a higher version depending on the features you use. |
|
3 |
| Maximum segment duration in seconds | Duration in seconds | Required, range should be 4 to 10 seconds. 6 seconds is recommended. |
|
4 |
| Sequence number of first segment | Sequence number | Optional (default 0) |
|
5 |
| Indicates playlist type |
| Required for Apple Podcasts, use |
|
6 |
| Specifies segment duration and optional title | Duration in seconds, optional title | Required for each segment |
|
7 |
| Indicates the list of segments is complete | None | Required for VOD |
|
8 |
| Defines a base time for the next segment | A time in ISO 8601 format. Note that this is not a wall clock time. | Required if you use date ranges. Do not use the UNIX start time (Jan 1, 1970). |
|
9 |
| Media Metadata Tag. Defines a date range for metadata or for HLS interstitials. |
| See |
|