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 is required by every major TV platform and has a significant impact on viewer discovery.
Quick answers
What format do most FAST platforms use for EPG? XMLTV is the common interchange format for programme schedules.
How far ahead should I schedule for a healthy EPG? Build at least 7 days forward for major TV platform windows.
What metadata matters most for discovery? Clear titles, short descriptions, genre tags, episode numbers, and thumbnails.
Where do EPG titles come from? Usually from your content item metadata and schedule grid, not from the video filename alone.
Can bad EPG hurt ad targeting? Yes. Weak metadata reduces contextual targeting quality and can lower CPM potential.
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 means better targeting and 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.
EPG QA checklist before partner reviews
Run this pass before OEM or aggregator submissions:
- Spot-check the next 48 hours of titles against the live schedule
- Confirm no "Unknown Program" or filename leftovers
- Verify descriptions are present on primetime titles
- Confirm ratings and captions flags where required
- Open a few guide thumbnails in a browser to catch broken image URLs
- Compare one programme's start/stop times to wall-clock playout
If the guide lies, viewers bounce even when the stream is healthy. Pair this with the channel launch checklist.
How EPG quality shows up in analytics
Weak EPG rarely looks like a "guide bug" in dashboards. It shows up as:
- Low tune-in from browse surfaces
- Short sessions after guide-driven arrivals
- High bounce when titles do not match what airs
- Partner feedback about incomplete windows
Treat EPG as a growth surface, not a compliance chore. Analytics that help you see the effect: FAST channel analytics. Scheduling habits that keep windows full: channel scheduling for 24/7 playout.
Metadata workflow that scales
For libraries larger than a handful of titles:
- Standardize title / subtitle / description fields in your CMS
- Require genre tags before a title can be scheduled
- Store episode numbers in a machine-readable form
- Attach a default thumbnail template, then replace with episode art
- Review primetime metadata weekly, not only at launch
Small process beats heroic cleanup before every distribution pitch.
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.