A FAST channel without a valid EPG is invisible. Platforms like Pluto, Samsung TV Plus, LG Channels, and Roku's live tab pull program schedules from the XMLTV feed you provide. Get this wrong and your channel does not appear in the guide. Here is the practical setup.
What an EPG actually is
An Electronic Program Guide is a schedule of what is airing on your channel, when, with metadata like title, description, episode number, genre, rating, and length. Platforms use it to populate the channel guide UI and to power 'What's on next' surfaces.
XMLTV is the de facto format. It is an XML schema that lists
Minimum required XMLTV fields
with a and an URL. for every airing. - Inside each
: , , , , optional , , .
All times must be UTC with explicit timezone offset. The most common mistake: posting times in local time without offset, which causes every airing to show at the wrong time in the guide.
Schedule depth and refresh cadence
Platforms expect 7–14 days of forward schedule at all times. Pluto and Samsung require 14 days; Roku and LG accept 7. Below 7 days the platform may stop ingesting your feed.
Refresh the feed at least every 6 hours, ideally hourly. If you change the schedule (a programming swap or a live cut-in), the next refresh must reflect it.
Handling gaps and filler
Every second of your 24-hour broadcast must be covered by a
Filler programme entries should still have real titles and descriptions; 'Filler' or 'Promo' as a title looks unprofessional in the guide.
Stream alignment with EPG
Your live HLS or DASH manifest must align with the EPG schedule within a 5-second tolerance. If your EPG says 'Show A airs at 14:00 UTC' but the manifest is showing minute 23 of Show A at that timestamp, the channel guide is misleading and downstream recommendations break.
Use SCTE-35 markers in the stream at programme boundaries so platforms can verify alignment automatically.
Validation tools
Before delivering your XMLTV feed to a platform, validate it. Tools like the xmltv-validator npm package, Samsung TV Plus's pre-ingest validator, and Pluto's content portal will flag missing fields, time errors, and gaps.
Set up automated validation in your scheduling pipeline so a broken feed is caught before it ships, not after the platform de-lists you.
Common rejection reasons
- Times in local timezone without offset.
- Gaps between programmes.
- Forward schedule depth below 7 days.
- Missing rating field on adult content.
entries that do not match the live stream within tolerance. - Inconsistent channel ID across feed and platform contract.
The bottom line
EPGs are mechanical but unforgiving - and they are the single most common reason FAST channels disappear from platform guides. OTT Engine auto-generates a compliant XMLTV feed from your scheduling pipeline, validates it on every refresh, and aligns SCTE-35 markers with programme boundaries. Book a demo to see your channel scheduled end to end.
Frequently Asked Questions
What is XMLTV?
An open XML schema for describing TV programme schedules. It is the de facto standard for delivering EPG data to FAST platforms.
How many days of forward schedule do I need?
Most platforms expect 7–14 days. Pluto and Samsung require 14; Roku and LG accept 7.
How often should I refresh my EPG feed?
At least every 6 hours, ideally hourly. Platforms cache aggressively but expect timely updates when your schedule changes.
Can I have gaps in my schedule?
No. Every second of your 24-hour broadcast must be covered by a programme entry. Use branded filler to fill gaps between scheduled content.
What is SCTE-35 and why does it matter for EPG?
SCTE-35 markers in your live stream signal programme boundaries and ad breaks. Platforms use them to verify your live stream aligns with the published EPG schedule.