EPG Validator

Find out why your IPTV TV guide is empty. Check an XMLTV EPG link or file, including .gz, to see whether it's valid, how many channels and programmes it holds, and which dates it covers.

An EPG validator checks the file behind your IPTV app's TV guide. The guide comes from a separate link, usually in the XMLTV format, and when it's broken, out of date or mismatched, the guide grid stays empty even though the channels play. This validator tells you:

  • Whether the file is a real XMLTV guide: valid XML with a <tv> root, not an error page.
  • How much it contains: every <channel> and <programme>, counted across the whole file.
  • Whether it's current: the first and last dates in the guide, with a warning if the listings have already run out.
  • Which channel IDs it uses: examples you can compare with the tvg-id values in your playlist.
Example XMLTV EPG file with the <tv> root, a <channel> entry with id and display name, and a <programme> entry with start, stop and channel attributes highlighted
The structure of a valid XMLTV EPG file: <tv>, <channel> and <programme>.

How to check your EPG

  1. Find your EPG link. Providers usually send it with your login, labelled "EPG", "XMLTV" or "guide URL". In most apps it's under Settings, then EPG or TV guide.
  2. Paste the link and press Check link, or upload a .xml or .xml.gz file.
  3. Wait a few seconds. Full guides are often 20–100 MB unpacked, so large ones take up to fifteen seconds.
  4. Check the dates first: most empty guides are simply out of date.

Why your TV guide is empty

When channels play but the guide is blank, work through these three causes in order.

1. The guide link doesn't work. The link has expired, changed, or returns an error page. The validator shows this as "no response" or "this link returns a web page". Ask your provider for the current EPG link, then paste it into your app again.

2. The guide is out of date. Every programme in the file has already finished, so there's nothing to show for today. If the validator says the guide ended in the past, the provider's guide isn't updating. If the dates are current but your app still looks empty, force an EPG refresh in the app's settings.

3. The channel IDs don't match. Your app matches each channel in your playlist to the guide using the playlist's tvg-id and the EPG's <channel id>. They must be identical, including upper and lower case. One wrong character leaves that channel blank while the others work.

Diagram showing the playlist tvg-id bbc1.uk must exactly match the EPG channel id bbc1.uk for the TV guide to show programmes
An empty TV guide usually means the playlist tvg-id and the EPG channel id don't match.

To compare the two, check your playlist with the M3U validator, which reports how many entries have a guide ID, then compare a few of them with the channel IDs listed here. Many apps, includingTiviMate and OTT Navigator, also let you assign a guide channel by hand when IDs don't match.

Understanding the results

EPG validator results explained: valid XMLTV, gzipped file, guide out of date, no programmes, no <tv> root and no response
What each EPG validator result means for your TV guide.
ResultMeaning
ChannelsHow many <channel> entries the guide defines. It doesn't need to match your playlist exactly, but channels missing here will have no listings.
ProgrammesEvery scheduled show in the file. A few thousand per day is normal for a large guide.
Guide starts / endsThe earliest and latest times in the file. If "ends" is in the past, the guide is stale.
Days remainingHow many days of listings are left from now.
CompressedWhether the file was gzip-compressed. Both forms are fine.
Unmatched programmesFor uploaded files, programmes pointing at a channel id the file never defines. Players ignore these.

EPG and Xtream Codes logins

If you log in with an Xtream Codes username and password, most apps fetch the guide automatically from the same server, at /xmltv.php, so there's no separate link to enter. If your guide is empty on an Xtream login, first confirm the account is active with the Xtream Codes Checker, then check the xmltv.php link here.

Privacy and limits

Links are fetched once by our server, counted and discarded. We never store the link or the guide, and only counts, dates and a few example channel names are returned. Addresses on private or local networks are blocked. Downloads stop at 60 MB unpacked or fifteen seconds; the result says if a count is a minimum because of that. The malformed-XML and unmatched-programme checks need the whole file, so they run on uploaded files only.

Frequently asked questions

What is an EPG?

EPG stands for electronic programme guide: the TV guide grid in your IPTV app showing what's on now and next. IPTV apps load it from a separate file, almost always in the XMLTV format, which lists channels and then every programme with its start and stop time.

What is XMLTV?

XMLTV is the standard file format for TV listings. It's an XML file with a <tv> root element containing <channel> entries (an id and display name) and <programme> entries (start and stop times, the channel id and a title). Guides are often gzip-compressed and end in .xml.gz.

Why is my IPTV TV guide empty?

The three usual causes are: the guide link is wrong or has expired, the guide data is out of date so every programme has already finished, or the channel IDs in your playlist (tvg-id) don't match the channel ids in the EPG. This validator checks the first two directly; for the third, compare the IDs it lists with the tvg-id values in your playlist.

Can I check an .xml.gz EPG file?

Yes. Compressed guides are detected automatically, whether you paste a link or upload the file, and unpacked before checking. Most IPTV apps also accept the .gz link directly, so you don't need to unpack it yourself.

How far ahead should an EPG go?

Most providers supply between two and seven days of listings. If the guide ends today or has already ended, your app will show empty slots until the file is refreshed. Apps refresh on a schedule you can usually set in their EPG settings.

Is my EPG link stored?

No. A link is fetched once by our server to count its contents and is never saved or logged. Uploaded files are read in your browser and never leave your device.

Why are some times in the guide an hour out?

XMLTV times include a timezone offset such as +0000 or +0100. If the guide uses UTC and your app doesn't apply the offset, programmes appear an hour early or late during British Summer Time. Most apps have an EPG time-shift setting to correct it.

Does a valid EPG mean every channel will have listings?

No. A valid file can still be missing some channels, or use different IDs from your playlist. The validator confirms the file itself is sound; matching still depends on your playlist's tvg-id values.

Related tools

Last updated

Need setup help? Visit Support