What this validator checks
A FAST channel is invisible without a valid EPG. Platforms like Pluto, Samsung TV Plus, LG Channels, and Roku's live tab ingest the XMLTV feed you publish and use it to build the on-screen guide. These are the checks the validator runs against your feed:
| Check | Severity | Why it matters |
|---|---|---|
Well-formed XML, rooted in <tv> | Error | A malformed feed is rejected outright at ingest |
<channel> has id + <display-name> | Error | The guide needs a name to render the row |
Channel <icon> present | Warning | Guides show a generic placeholder without one |
<programme> has channel, start, stop | Error | Required to place the airing in the grid |
| Explicit UTC offset on every timestamp | Error | A missing offset shifts every airing to the wrong slot |
stop is after start | Error | Zero or negative durations break the guide |
<programme> has a non-empty <title> | Error | Untitled blocks look broken to viewers |
<length> matches the start/stop span | Warning | A stated runtime that disagrees with the times is misleading |
Channel ids are unique | Error | Duplicate ids collide in the guide |
<rating> carries a <value>, icons have src | Warning | Empty metadata renders blank in the guide |
| No gaps between consecutive programmes | Error | Even a one-minute gap can de-list the channel |
| No overlapping programmes | Warning | Ambiguous "what's on now" for the platform |
| Programme channel IDs are declared | Error | Orphan programmes are silently dropped |
| Forward depth of at least 7 days | Warning | Platforms stop ingesting thin feeds |
XMLTV timestamp format
Every start and stop must use YYYYMMDDHHMMSS followed by a timezone offset - for example 20260418000000 +0000. The offset is the single most-missed field, and omitting it is the most common reason a guide shows every programme at the wrong time.
Frequently Asked Questions
Does my EPG data get uploaded?
No. The validator parses your XMLTV feed entirely in your browser using the built-in DOMParser. Nothing is sent to a server, so you can safely test unreleased schedules.
Can I validate an EPG by URL?
Yes - paste the feed URL and click Fetch & validate. The request is made from your browser, so a feed that blocks cross-origin requests (no Access-Control-Allow-Origin header) can't be read this way; download and paste those instead.
What XMLTV timestamp format is required?
YYYYMMDDHHMMSS followed by an explicit timezone offset, e.g. 20260418000000 +0000. The offset is mandatory - a timestamp without it shifts every airing to the wrong slot in the guide.
How much forward schedule do I need?
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, so the validator warns when forward depth drops under a week.
Why does a one-minute gap matter?
Every second of a 24-hour FAST channel must be covered by a programme entry. Even a one-minute gap can cause a platform to drop the channel from the guide, so the validator flags any gap between consecutive programmes on the same channel.