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.
An Electronic Program Guide (EPG) is the TV schedule that viewers see when they browse the channel guide on Roku, Fire TV, or Apple TV. It tells the TV platform what's on your channel right now, what's coming up, and what's airing tomorrow.
For a FAST channel, a well-maintained EPG is not optional — it's required by every major TV platform and has a significant impact on viewer discovery.
Why EPG matters for FAST channels
Platform requirements. Roku, Fire TV, and Samsung TV Apps all require EPG data to list your channel in their guides. Without an EPG, your channel may not appear in the "What's On" section at all.
Viewer discovery. Viewers browse the TV guide the same way people used to browse a newspaper TV listings section. A channel with "Unknown Program" in every slot gets skipped. A channel with descriptive titles and episode descriptions gets explored.
Ad targeting. Your EPG metadata is used by ad servers to serve contextually relevant ads. Better metadata = better targeting = higher CPMs.
SEO on TV platforms. Platform search engines on Roku, Fire TV, and smart TVs search EPG data. A viewer searching for "cooking show" is more likely to find your channel if your EPG has proper genre tags and episode descriptions.
XMLTV format
XMLTV is the standard format for EPG data. It's an XML file that looks like this:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE tv SYSTEM "xmltv.dtd">
<tv generator-info-name="Vidiyo" source-info-name="vidiyo.com">
<channel id="your-channel-id">
<display-name lang="en">Your Channel Name</display-name>
</channel>
<programme start="20260522200000 +0000" stop="20260522210000 +0000" channel="your-channel-id">
<title lang="en">Episode Title</title>
<desc lang="en">A description of this episode.</desc>
<category lang="en">Cooking</category>
<episode-num system="onscreen">S01E03</episode-num>
<subtitles type="teletext"/>
<icon src="https://cdn.example.com/episode-thumbnail.jpg"/>
</programme>
<!-- more programmes -->
</tv>
The key fields:
start/stop: Times inYYYYMMDDHHmmss +ZZZZformat. Use UTC.title: The programme title. Should match the show name, not the episode title alone.desc: A short description. 100-300 characters is ideal.category: Genre tags. Multiple categories are allowed.episode-num: Season/episode numbering. Use theonscreensystem for display format orxmltv_nsfor machine-readable format.icon: A thumbnail image URL. Will appear in the TV guide alongside the title.
How EPG data is generated from your schedule
When you build a schedule in a FAST platform, the platform generates an XMLTV feed automatically from your programming grid. The schedule (what content plays when) becomes the source of truth for the EPG.
What the platform supplies from your schedule:
- Start/stop times
- Channel ID
- Title (from the content item's title field)
What you should supply in your content metadata:
- Description (per content item)
- Genre/category tags
- Season/episode number
- Thumbnail image
- Rating (TV-G, TV-14, etc.)
The quality of your EPG is directly tied to the quality of your content metadata. If you upload a video titled "ep3.mp4" with no description or tags, your EPG will show "ep3.mp4" with no description. That's not useful.
EPG window requirements
TV platforms request EPG data covering a specific time window. Common requirements:
- Current + 24 hours: Minimum for most platforms
- Current + 7 days: Standard for major platforms (Roku, Fire TV)
- Current + 14 days: Some platforms support up to 2 weeks ahead
This means your schedule needs to be built at least 7 days in advance to serve a complete EPG. An empty or incomplete EPG (showing gaps or unknown programs) is bad for viewer experience and platform listing.
Vidiyo's EPG endpoint serves up to 48 hours of data per request and paginates across your full schedule. TV platform integrations request EPG data periodically (typically every 30-60 minutes) to stay current.
XMLTV field recommendations for better discovery
Title formatting. Use the show title for <title>, not the episode title. Episode titles go in <sub-title>. Many TV guides display the show title prominently and the episode title as secondary info.
<title lang="en">The Taco Chronicles</title>
<sub-title lang="en">Season 2: Birria</sub-title>
Descriptions. Write for a viewer who has never seen your show. Avoid "In this episode..." as the opening — it assumes context. Instead: "[Show name] explores [topic] in [location], featuring [guest/subject]."
Genre tags. Use multiple categories. The TV platform will map these to its internal genre taxonomy. Common useful categories: Cooking, Travel, Sports, News, Documentary, Comedy, Drama, Music, Gaming.
Episode numbers. Always include episode numbers for serialized content. Use the xmltv_ns system for machine-readable format (0-indexed, formatted as S.E/Total):
<episode-num system="xmltv_ns">1.2.</episode-num> <!-- Season 2, Episode 3 -->
Thumbnails. Provide episode-specific thumbnails, not just a generic channel logo. A frame from the episode, a key art image, or a title card performs better in the guide. Minimum size: 300×200px. Recommended: 1280×720px.
Content ratings. Include the rating tag:
<rating system="MPAA">
<value>TV-14</value>
</rating>
Common EPG mistakes
Missing descriptions. Shows with no description get skipped in the guide. Even a one-sentence description is dramatically better than nothing.
Generic titles. Uploading content as "Episode 1", "Episode 2", etc. is useless in an EPG. Name your content.
Wrong timezone offset. XMLTV times should be UTC or explicitly include the offset. Using local time without an offset causes all schedule times to be wrong.
Not extending the schedule forward. If your FAST platform shows a 7-day schedule but you've only scheduled 2 days ahead, the EPG has gaps. Build your schedule at least 7 days forward.
Not refreshing stale thumbnails. If you change a thumbnail in your CMS after an EPG has been distributed, the cached thumbnail on TV platforms may take 24-48 hours to update.
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.