Vidiyo
Technical

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 — but understanding the basics helps you debug problems, ask better questions, and make informed decisions about your content quality settings.


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:

  1. The player requests the master manifest
  2. It starts with a lower bitrate (e.g., 480p at 800 Kbps)
  3. As the network improves, it switches up to 720p or 1080p
  4. 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:

VariantResolutionBitrate
Low426×240400 Kbps
Medium854×480800 Kbps
High1280×7202500 Kbps
HD1920×10805000 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:

  1. Receives the player's manifest request
  2. Fetches the original content manifest from your playout engine
  3. Detects upcoming SCTE-35 ad break cues
  4. Fetches ad segments from your ad server (VAST response)
  5. Replaces the SCTE-35-marked content segments with ad segments
  6. 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).


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.

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

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.


What's next

Ready to launch your TV channel?

Vidiyo handles the infrastructure (HLS playout, SSAI, EPG, and cross-platform distribution) so you can focus on programming.

Start free. No credit card.

More in Technical

DRM for FAST Channels — Do You Actually Need It?

When FAST channels need DRM, what DRM systems exist for HLS streams (Widevine, FairPlay, PlayReady), what the tradeoffs are, and why most independent FAST operators don't need it at launch.

8 min read →
EPG Generation for FAST Channels

How Electronic Program Guides (EPGs) work for FAST channels — the XMLTV format, what data TV platforms require, how EPGs are generated from your schedule, and how to improve your EPG metadata for better discovery.

9 min read →
What Is SSAI? Server-Side Ad Insertion Explained

A plain-English explanation of Server-Side Ad Insertion (SSAI) for FAST channel operators — how it works, why it matters for TV distribution, the difference between SSAI and client-side ad insertion, and what you need to set it up.

10 min read →