Skip to content
▶Vidiyo
FeedWatchTV guideFor creatorsPricingSupport
DevelopersAbout
Watch nowWatch
  1. Learn
  2. Technical
  3. EPG Generation for FAST Channels
Technical

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.

By David NaffisMay 22, 20269 min read
Editorial photo for: EPG Generation for FAST Channels

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.

Detail view for article: EPG Generation for FAST Channels

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:

Supporting editorial photo for: EPG Generation for FAST Channels

<?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 in YYYYMMDDHHmmss +ZZZZ format. 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 the onscreen system for display format or xmltv_ns for 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

  • HLS manifests explained
  • Channel scheduling for 24/7 playout
  • How to start a FAST channel
Written by
David Naffis

Founder, Vidiyo

Founder of Vidiyo. Writes about FAST channels, free live TV, and creator distribution.

More from David →
SharePost on XLinkedIn
← Newer guideDRM for FAST Channels — Do You Actually Need It?Older guide →FAST Channel Analytics — What to Measure and What It Means

Ready to launch your TV channel?

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

Start creating, freeSee how it works →

More in Technical

HLS vs DASH: Which Streaming Protocol Should You Use?

HLS vs DASH: both stream video in small chunks over HTTP. Compare device support, latency, and DRM, and see why FAST platforms ship HLS first in practice.

6 min read →
What Is an EPG? Electronic Program Guides, Explained

What is an EPG? An electronic program guide lists what airs on each channel and when. Learn how EPG data flows via XMLTV and why it drives discoverability.

6 min read →
What Is SCTE-35? Ad Break Signaling in Streams, Explained

What is SCTE-35? SCTE-35 is the standard for signaling ad breaks inside a video stream. Learn how splice markers work and how SSAI uses them to insert ads.

6 min read →

In this article

  • Why EPG matters for FAST channels
  • XMLTV format
  • How EPG data is generated from your schedule
  • EPG window requirements
  • XMLTV field recommendations for better discovery
  • Common EPG mistakes
  • What's next
← More technical← All guides
▶Vidiyo

Your own TV channel. Free, on every screen.

Product

  • Watch
  • Feed
  • TV guide
  • For creators
  • Pricing
  • Apps
  • Support

Resources

  • Learn
  • Signal
  • Tools
  • Compare
  • About
  • RSS feed

Developers

  • Overview
  • REST API
  • MCP server

Legal

  • Terms
  • Privacy
  • Cookies
  • DMCA
  • Creator agreement
  • Trust & Safety
Get the app
  • iPhone & iPad
  • Android
  • Roku
  • Fire TV
  • Apple TV
© 2026 Vidiyo. Made for creators, everywhere.