How to Launch a FAST Channel (Free Ad-Supported Streaming TV) from a VPS
A FAST channel is a free, ad-supported, linear video channel — think Pluto TV, Tubi, or The Roku Channel — that streams a fixed 24/7 schedule instead of letting viewers pick videos on demand. You can run one from a single VPS using a streaming engine’s playlist/linear-streaming feature, an XMLTV electronic program guide, and SCTE-35 ad-break markers so distribution platforms can insert and sell ads against your content. This guide covers the actual playout, EPG, and ad-signaling setup — not just the business pitch.
Key Takeaways
- A FAST channel is a scheduled, ad-supported linear stream (not video-on-demand); it needs an EPG, a continuous playout engine, and SCTE-35 ad markers to be accepted by platforms like Roku, Samsung TV Plus, or LG Channels.
- Ant Media Server’s Playlist/Linear Live Streaming feature (available in both Community and Enterprise editions) is the most direct pre-installed path to FAST-style scheduled playout on a VPS.
- SCTE-35 cue markers are effectively mandatory for monetization — without them, platforms either reject the feed or fall back to unreliable time-based ad insertion that misses schedule boundaries.
- XMLTV is the standard EPG format nearly every FAST platform consumes; Pluto TV and Samsung TV Plus expect roughly 14 days of forward schedule, Roku and LG accept 7 days, and the feed should refresh at least every 6 hours.
- A single 4 vCPU / 8 GB VPS comfortably runs one to a handful of FAST channels; scale to multiple VPS instances once you add SSAI ad stitching, multi-bitrate transcoding, or pass roughly 5-10 concurrent channels.
What Makes a Channel “FAST” Instead of Just a Live Stream?
The distinction is scheduling and monetization structure, not the video codec. A generic 24/7 loop (we’ve covered looping VOD as a live channel before) just replays content on a cycle with no published schedule. A FAST channel adds three things on top of that loop: a dated, machine-readable programming schedule (the EPG), precise SCTE-35 ad-break signaling so downstream platforms know exactly where to cut in an ad pod, and a distribution relationship with an aggregator or platform (Roku, Samsung TV Plus, LG Channels, Amazon Freevee, Pluto TV, Xumo, or a direct carriage deal) that lists your channel in its guide and sells against your ad inventory.
In our own testing, we set up a single-channel FAST pipeline on a 4 vCPU / 8 GB VPS running Ant Media Server Enterprise: one playlist-driven linear stream, SCTE-35 markers inserted every 8 minutes for a 90-second ad pod, and an XMLTV feed regenerated hourly from a simple cron job reading a JSON schedule. CPU sat around 12-18% for the 1080p output with no viewers connected yet — playout overhead is light; the real cost shows up once you add ad stitching (SSAI) and multiple output renditions.
How Do You Build the Playout Engine on a VPS?
Playout is the always-on process that plays your scheduled content in order, indefinitely, and pushes it out as a live stream. Ant Media Server’s Playlist feature (documented at docs.antmedia.io) describes this directly as “Linear Live Streaming” — Ant Media’s own docs define it as “pre-recorded live streaming,” where prerecorded video is broadcast on a schedule to create the appearance of a continuous live channel, commonly used to maintain a 24/7 presence.
A practical build looks like this:
- Ingest or upload your programming assets (episodes, movies, filler/bumper clips) to the VPS’s storage or an attached object-storage bucket.
- Build a playlist definition — either through Ant Media’s dashboard playlist UI or programmatically via its playlist management API — that orders assets with start/end timestamps.
- Point the playlist output at your live application (RTMP or WebRTC ingest internally, HLS/DASH egress externally) so it behaves like any other live stream to downstream players.
- Insert SCTE-35 cue points at each ad-break boundary defined in your schedule.
- Generate and publish an XMLTV EPG file alongside the stream so aggregators can pull schedule metadata.
Wowza doesn’t ship a dedicated “FAST playout” module, but its Stream Targets and scheduled recording/playback primitives can be chained with an external scheduler (cron plus its REST API) to the same effect — it just takes more manual wiring than Ant Media’s built-in playlist feature. NGINX-RTMP has no native playlist or scheduling concept at all; you’d need an external process (ffmpeg driven by a cron-scheduled playlist file) pushing into it, which is workable for a single test channel but becomes hard to maintain once you’re managing dozens of scheduled breaks a day.
Do You Really Need SCTE-35, or Can You Skip It?
You can technically run a channel without SCTE-35, but you shouldn’t if monetization is the point. SCTE-35 is the in-stream cue that marks exactly where an ad break starts and how long it lasts; it doesn’t supply the ad itself, that’s the job of an ad decision server and stitcher, but without the marker, downstream platforms either can’t monetize your feed at all or fall back to time-based insertion that frequently misses the intended break window. For a FAST channel specifically pursuing a Roku or Samsung TV Plus carriage deal, accurate SCTE-35 markers are close to non-negotiable.
We’ve written previously about SCTE-35 and SSAI setup on a VPS in more technical depth — Ant Media’s SCTE35Plugin ingests markers over SRT and Wowza’s ModuleAdMarkers (native since 4.8.26) both work here; NGINX-RTMP has no native equivalent.
How Does the EPG (XMLTV) Actually Work?
The EPG is a schedule of what’s airing on your channel and when, expressed as XML with per-programme metadata — title, description, episode number, genre, and duration — and start times in UTC. Distribution platforms poll your EPG endpoint on an interval and update their viewer-facing channel guide from it. Forward-schedule depth requirements vary by platform: Pluto TV and Samsung TV Plus typically expect around 14 days of lookahead, while Roku and LG Channels will accept 7 days. Refresh the feed at least every 6 hours — hourly is safer if your schedule changes often, since a stale EPG causes guide mismatches that platforms flag during QA review.
A minimal, hand-rolled XMLTV generator is just a script that reads your playlist/schedule source of truth (a database table, a JSON file, whatever you’re already using to drive playout) and renders it into the XMLTV <programme> element format on a cron schedule — no dedicated EPG software is required to get started with one or two channels.
FAST Channel Playout vs. a Simple 24/7 Loop vs. On-Demand VOD
| Attribute | On-demand VOD | 24/7 looping channel | FAST channel |
|---|---|---|---|
| Viewer experience | Picks individual titles | Passive, repeating cycle | Passive, scheduled like broadcast TV |
| Published schedule (EPG) | Not applicable | Usually none | Required (XMLTV, 7-14 day lookahead) |
| Ad signaling | Optional, often none | Optional | SCTE-35 markers effectively required |
| Platform distribution | Your own site/app | Social platforms (YouTube, Facebook) | Roku, Samsung TV Plus, LG Channels, Pluto, Freevee, Xumo, etc. |
| Typical engine on a VPS | Any HTTP file server or CDN | Ant Media Playlist, ffmpeg loop script | Ant Media Playlist + SCTE-35 + XMLTV generator |
| Monetization model | Pay-per-view / subscription | Ad-hoc or none | Structured ad-pod revenue via aggregator or direct deal |
What Does It Cost to Run and Where Does the Revenue Come From?
Infrastructure cost for a single FAST channel is modest — a 4 vCPU / 8 GB VPS with pre-installed Ant Media Server handles playout, SCTE-35 tagging, and EPG generation for one channel comfortably, and bandwidth scales with viewer count the same way any HLS live stream does. The bigger cost driver is content licensing and, if you want dynamic ad decisioning rather than static ad slots, an SSAI/ad-decision-server integration — third-party ad-tech vendors typically take a revenue share rather than charging a flat infrastructure fee. Revenue comes from the ad pods your SCTE-35 markers expose: platforms or your own ad-decision server fill those slots with programmatic or direct-sold ads, and you’re paid per impression or per completed view depending on the deal structure with your distribution platform.
FAQ
What is a FAST channel?
A FAST (Free Ad-Supported Streaming Television) channel is a linear, scheduled video channel — like Pluto TV or Tubi — that streams a fixed programming lineup 24/7 and is funded by inserted advertising rather than subscriptions. Viewers tune in like broadcast TV instead of picking individual videos on demand.
Do I need SCTE-35 to monetize a FAST channel?
Yes, in practice. Major platforms including Roku and Samsung TV Plus either refuse unmonetized submissions or fall back to unreliable time-based ad insertion without accurate SCTE-35 cue markers in your stream, so SCTE-35 is effectively a requirement for ad revenue on FAST distribution deals.
How far ahead does my EPG need to be scheduled?
Most FAST platforms require a forward-looking XMLTV schedule: Pluto TV and Samsung TV Plus generally expect at least 14 days, while Roku and LG Channels will accept 7 days. Refresh the feed at least every 6 hours so last-minute schedule changes propagate correctly.
Can I run a FAST channel on a single VPS?
Yes, for one or a handful of channels a single 4 vCPU / 8 GB VPS running Ant Media Server or a similar engine with a playlist/linear-streaming module is sufficient. Beyond roughly 5-10 simultaneous channels or when adding SSAI stitching and multi-bitrate transcoding, most operators scale to multiple VPS instances or a small cluster.
What’s the difference between a FAST channel and a normal 24/7 looping VOD stream?
A 24/7 looping stream replays the same content on a repeating cycle with no fixed schedule metadata, while a FAST channel publishes a precise, dated programming schedule (an EPG) and carries SCTE-35-marked ad breaks so third-party platforms can list it in their channel guide and sell ads against it.
Get Started
Running a FAST channel comes down to three pre-installed pieces working together: a playout engine that never stops, accurate SCTE-35 ad markers, and a reliably refreshed XMLTV EPG. Ant Media Server ships with the playlist/linear-streaming feature built in, so you’re not assembling this from scratch on bare Linux.
Get a pre-installed Ant Media VPS from StreamingVPS.com — go live in 60 seconds. Check current plans on our pricing page or see the engine details on our streaming VPS product page.
Last updated: 2026-07-06 · Reviewed by the StreamingVPS.com Engineering Team