If you have ever seen a grid in your IPTV player showing what is on now and what is coming up next on each channel, you have used an EPG — an Electronic Programme Guide. The EPG is the IPTV equivalent of the TV guide that came with a satellite or cable subscription, and it makes a real difference to how usable a service feels day to day. This guide explains what EPG is, what the XMLTV format is, how channels get matched to their guide data, and what to do when the guide goes missing.
What is an EPG?
An EPG (Electronic Programme Guide) is the interactive TV schedule displayed inside your IPTV player. It is the grid or list that tells you what is on each channel right now, what is coming up over the next few hours, and sometimes what aired recently. Without an EPG, every channel in your player appears as just a name and a stream — you have to start playing a channel to find out what is on. With a working EPG, you can browse the schedule, read programme descriptions, and plan what you want to watch before pressing play.
Providers supply EPG data separately from the video streams themselves. A player receives two things: the channel list (from the Xtream API or an M3U playlist) and EPG programme data (from an XMLTV feed or the Xtream API's guide endpoint). The player then matches channels to guide data and displays the combined result in the schedule grid.
What is XMLTV?
XMLTV is the standard data format used to distribute TV programme guides for IPTV. It is an XML file — a structured text document — that contains two things: a list of channels (each with a unique ID) and a list of programmes (each linked to a channel ID, with a start time, stop time, and title).
A single XMLTV file can describe dozens or thousands of channels and their schedules for several days ahead. Your player downloads this file from a URL supplied by your provider or middleware service, reads through every programme entry, and uses the data to populate the guide grid for each matching channel.
The format is deliberately simple and widely supported. Most IPTV players accept an XMLTV URL in their settings and refresh the file on a regular schedule — every few hours or once a day — so the guide stays current. XMLTV files can range from a few megabytes for a small service to several hundred megabytes for a large multi-provider platform covering many countries.
How tvg-id matching works
This is where EPG guides most often go wrong. Every channel in your playlist carries a metadata tag called tvg-id — a string like bbc.one.uk or Sky.Sports.Main.Event.UK. The XMLTV file identifies each channel it covers with a matching id attribute on its channel entry. When your player loads the EPG, it looks for a channel in the XMLTV file whose id matches the tvg-id in your playlist.
If the two match exactly, the programme data slots into the channel's guide row and you see a full schedule. If they differ — even by a small difference in capitalisation, punctuation, or spacing — the player finds no match and the channel appears in the guide with a blank row or just the channel name.
This mismatch is the single most common reason an EPG shows a blank for some channels while others work perfectly. A provider's playlist might tag a channel BBCOne.uk while the EPG source uses bbc.one.uk. One character in a different case, and the guide disappears for that channel.
Why the EPG guide goes missing
There are several distinct causes, and recognising which one applies tells you where to look:
- tvg-id mismatch — the channel ID in the playlist and the channel ID in the XMLTV file do not match. Affects specific channels, not all of them.
- Broken XMLTV URL — the EPG feed address is offline, has moved, or returns an error. All channels lose their guide at once.
- Stale or expired feed — EPG files are regenerated on a schedule, typically every few hours. If the feed has not updated recently, guide data may be missing for upcoming hours.
- Large file timeout — XMLTV files can be large. Slow connections or strict player timeouts can cause the file to fail mid-download, leaving the guide empty even though the URL is valid.
- Provider-specific EPG IDs — some providers use their own internal channel IDs in the XMLTV feed. If your player is pointed at an external community XMLTV source that uses different IDs for the same channels, nothing matches.
For a step-by-step troubleshooting checklist, see the IPTV EPG not working guide.
How to fix EPG matching
The cleanest fix is to correct the tvg-id for the affected channel so it matches what the XMLTV source actually uses. In a middleware platform like iptv.domains, the EPG editor gives you a per-channel view of your entire lineup: you can see at a glance which channels have a matched guide, search the EPG database for the right programme source by channel name, and manually pin a specific channel to the correct XMLTV entry. Once saved, that mapping is served through your personalised XMLTV URL to every device on your account.
The EPG editor also lets you fill gaps automatically — an auto-match function compares your channel names against the pool of available EPG sources and suggests the best match for each unmapped channel, which you can accept or override individually.
David's favourite channel has a blank guide despite the EPG being active
David's player shows a full schedule grid for most channels, but one shows a blank row in the guide. In the EPG editor he searches for the channel name and immediately sees the problem: his provider tagged the channel UK.BBC.One in the playlist while the EPG source uses bbc.one.uk. He manually pins that channel to the correct XMLTV entry. The guide populates on his player's next EPG refresh — no reinstalls, no credential changes, no support ticket needed.
Where XMLTV data comes from
XMLTV programme data is published by a variety of sources:
- IPTV providers themselves — most Xtream Codes-based providers expose an EPG endpoint automatically as part of the API, and many also publish a standalone
/xmltv.phpURL. - Community-maintained feeds — free, publicly available XMLTV files that cover many countries and broadcasters, maintained by volunteers. Coverage and accuracy vary by region.
- Middleware services — platforms like iptv.domains collect EPG data from all connected providers, run automatic channel matching across the whole pool, and serve each user a personalised XMLTV URL containing only the channels in their own playlist.
EPG and Xtream Codes
When you connect your player using Xtream Codes credentials, the player can fetch EPG data directly through the API — no separate XMLTV URL required. The Xtream API has a dedicated endpoint that returns programme data for all your channels, and most modern players use it automatically. This is one of the key advantages of Xtream Codes over a plain M3U link, where EPG always needs to be configured separately. See what is Xtream Codes for a full explanation of what the login format provides.