HLS Manifests Explained for FAST Channel Operators
What HLS (HTTP Live Streaming) is, how manifests work, what adaptive bitrate means for your viewers, and what FAST channel operators need to know about their HLS stream without getting a computer science degree.

HLS (HTTP Live Streaming) is the video delivery protocol that powers virtually every FAST channel. Your viewers receive HLS streams. Your SSAI system delivers ads via HLS. Your EPG is linked to your HLS output.

You don't need to understand every technical detail of HLS to run a FAST channel. Your platform handles the implementation. Still, the basics help you debug problems, ask better questions, and make informed decisions about content quality settings.
Validate a live feed with the HLS manifest validator. Preview playback in the HLS stream player.
Quick answers
What is an HLS manifest?
A playlist file (usually .m3u8) that tells the player which media segments to fetch and in what order.
Do FAST operators hand-write manifests? No on managed platforms. Playout generates master and media playlists continuously.
Why does source quality matter? ABR can only go as high as your source. A 480p master cannot become a true 1080p ladder.
How do ads appear in HLS? SSAI rewrites the playlist around SCTE-35 cue markers so the player sees one continuous stream.
Which tools should I use to inspect a stream? HLS manifest validator for structure checks and HLS stream player for playback.
What HLS is
HLS is a protocol developed by Apple that breaks a video stream into small chunks (segments) and serves them over HTTP. Instead of sending one continuous video file, HLS sends a playlist file (the manifest) that tells the player where to get each segment, in order.
A basic HLS stream looks like this:
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:6
#EXT-X-MEDIA-SEQUENCE:1847
#EXTINF:6.0,
https://cdn.example.com/channel/segments/1847.ts
#EXTINF:6.0,
https://cdn.example.com/channel/segments/1848.ts
#EXTINF:6.0,
https://cdn.example.com/channel/segments/1849.ts
Each #EXTINF tag is a 6-second segment. The player fetches them in sequence and stitches them together into a seamless video.
For a live/linear channel, this manifest is updated every few seconds. The player keeps polling for new segments. This is how your FAST channel delivers real-time content to viewers.
The master manifest vs. media playlists
An HLS stream typically has two levels of manifests:

Master manifest (also called "multi-variant playlist"): Lists the available quality levels (bitrate variants) for a stream. Looks like this:
#EXTM3U
#EXT-X-STREAM-INF:BANDWIDTH=800000,RESOLUTION=854x480
480p/index.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=2800000,RESOLUTION=1280x720
720p/index.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=5000000,RESOLUTION=1920x1080
1080p/index.m3u8
Media playlist: The per-quality segment list shown above.
The player requests the master manifest first, picks the appropriate quality based on network conditions, then requests the media playlist for that quality.
For FAST channels, your platform generates and maintains both. You don't hand-craft these files.
Adaptive bitrate streaming (ABR)
Adaptive bitrate (ABR) is the system that automatically adjusts video quality based on the viewer's internet connection speed. When a viewer on a slow connection watches your channel:
- The player requests the master manifest
- It starts with a lower bitrate (e.g., 480p at 800 Kbps)
- As the network improves, it switches up to 720p or 1080p
- If the network degrades, it switches back down
The viewer never has to manually select quality. The player switches seamlessly in the background.
Why this matters for you: Your source content quality sets the ceiling for your ABR ladder. If you upload a 480p source file, your channel can never deliver 1080p regardless of the viewer's connection speed. Always upload the highest quality source file you have.
Typical FAST ABR ladder:
| Variant | Resolution | Bitrate |
|---|---|---|
| Low | 426×240 | 400 Kbps |
| Medium | 854×480 | 800 Kbps |
| High | 1280×720 | 2500 Kbps |
| HD | 1920×1080 | 5000 Kbps |
Your platform transcodes your source content to all variants automatically.
Segment duration
Most FAST platforms use 2-6 second segments. Shorter segments:
- Lower latency (the viewer is closer to "live")
- More frequent HTTP requests (more overhead)
- Better for ad insertion (shorter segments = more precise ad break alignment)
Longer segments:
- Lower HTTP overhead
- Higher latency
- Simpler for VOD playout
For live FAST channels, 2-4 second segments are standard. For VOD content scheduled in a linear channel, 6-10 second segments are common.
How SSAI modifies the HLS manifest
When SSAI is active on your channel, the SSAI system sits between the player and your origin HLS manifest. It:
- Receives the player's manifest request
- Fetches the original content manifest from your playout engine
- Detects upcoming SCTE-35 ad break cues
- Fetches ad segments from your ad server (VAST response)
- Replaces the SCTE-35-marked content segments with ad segments
- Returns a modified manifest to the player
The player sees one seamless stream. It doesn't know whether it's watching content or an ad. This is why SSAI produces no buffering at ad breaks (unlike client-side ad insertion, where the player pauses and fetches a separate ad stream).
SSAI basics: what is SSAI. Break design: designing ad breaks for FAST channels.
SCTE-35 in HLS manifests
SCTE-35 cue markers in an HLS manifest look like this:
#EXT-X-CUE-OUT:30.0
#EXTINF:2.0,
segment_ad_break_start.ts
#EXT-X-CUE-IN
#EXTINF:6.0,
segment_content_resumes.ts
#EXT-X-CUE-OUT:30.0: Signal that an ad break starts here, lasting 30 seconds#EXT-X-CUE-IN: Signal that the ad break ends, content resumes
Your FAST playout engine inserts these markers based on your configured ad break schedule. The SSAI system watches for them and triggers ad decisioning.
Checking your HLS stream
You can inspect your HLS manifest directly. Your channel's HLS URL ends in .m3u8. You can open it in a browser or use a tool like HLS.js demo to play it.
Prefer first-party tools when you are debugging a Vidiyo-related or partner feed:
- Structure and tag sanity: HLS manifest validator
- Visual playback check: HLS stream player
To check the manifest text, use curl:
curl "https://your-channel-hls-url.m3u8"
Common things to verify:
- All referenced segment URLs are accessible (return 200, not 404)
- Segment duration is consistent
- SCTE-35 markers appear at expected ad break times
- Audio and video tracks are present at all bitrate variants
Operator debugging checklist
When viewers report buffering or black screens, work this order:
- Open the master playlist. Confirm variants exist and URLs resolve.
- Open one media playlist. Confirm
#EXTINFdurations and media sequence advance over time. - Fetch two segment URLs. 404s mean packaging or CDN path issues.
- Watch through an ad break. If content plays but ads fail, check SSAI and VAST, not source video.
- Compare devices. A failure only on one TV app can be player-specific, not origin-wide.
Document the failing .m3u8 URL, timestamp, and device. That package speeds support conversations.
What operators don't need to manage
If you're on a managed FAST platform like Vidiyo, you don't need to:
- Generate HLS manifests
- Manage CDN distribution
- Handle segment storage
- Configure bitrate ladders
- Write SCTE-35 markers
The platform handles all of this. Your job is to upload quality source content, build your schedule, and configure monetization.
How HLS connects to EPG and scheduling
HLS is the delivery pipe. EPG is the guide. Scheduling is the plan that feeds both.
When a title starts in your grid, playout switches the media that segments encode, and EPG lists that title for the same window. If the schedule and EPG disagree, viewers trust neither. Keep metadata clean so the guide matches the stream. EPG detail: EPG generation for FAST channels. Scheduling detail: channel scheduling for 24/7 playout.
Operator takeaway
Treat this page as a working checklist, not a one-time read. Revisit it when you change schedule density, ad load, distribution targets, or source quality. Small weekly improvements compound faster than a single big relaunch. If you need a free place to run the channel while you learn, start creating on Vidiyo.
What's next
Ready to launch your TV channel?
Vidiyo handles streaming, ads in the stream, the TV guide, and apps on every screen so you can focus on programming.