HomeGuides › What Is EPG in IPTV? TV Guides and XMLTV Explained

What Is EPG in IPTV? TV Guides and XMLTV Explained

Updated 2026-06-13 · 7 min read

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.

TL;DR: EPG = the on-screen TV schedule inside your IPTV player. It is powered by an XMLTV data file that the player downloads and parses. Each channel is matched to its guide data using a tag called tvg-id. If that tag does not match exactly what the XMLTV file uses, the guide goes blank for that channel — a mismatch is the most common cause of a partial or missing EPG.

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.

Example

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.php URL.
  • 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.
Tip: If your EPG is blank across all channels simultaneously, the problem is almost always the XMLTV URL or the Xtream EPG endpoint — check that the address is still reachable and that your player's EPG refresh has run recently. If only a handful of channels are blank while the rest are fine, the cause is almost always a tvg-id mismatch on those specific channels.

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.

Frequently asked questions

Do I need a separate XMLTV URL if I use Xtream Codes?

Not always. Most Xtream Codes-compatible players can fetch EPG data directly through the Xtream API. Some players prefer a dedicated XMLTV URL; if so, your provider or middleware service usually supplies one alongside your login credentials.

Why does the EPG work for most channels but go blank on a few?

Near-universal guide coverage with a handful of blank channels almost always points to tvg-id mismatches on those specific channels. The EPG data exists in the feed; the player just cannot match it to the channel because the ID tags differ between the playlist and the XMLTV file.

How often is the XMLTV data updated?

That depends on the source. Provider feeds and community XMLTV files typically update every few hours to once a day. Your player caches the downloaded file and refreshes it on a schedule — check your player's EPG refresh setting if guide data feels stale or stuck.

Can I use more than one EPG source?

Yes, if your player supports multiple XMLTV sources, or if you use a middleware platform that aggregates several EPG feeds automatically. iptv.domains pools data from all connected providers and lets you supplement it with additional XMLTV feeds from the EPG sources card.

What is the difference between EPG and catch-up?

EPG shows the schedule — what is on now and what comes next. Catch-up is a feature that lets you watch content that already aired. Both rely on EPG data to know what was broadcast and when, but catch-up additionally requires your provider to store recordings on the server side.

Stop re-entering IPTV credentials on every device

iptv.domains gives you one permanent URL, automatic failover, and a full playlist & EPG editor. Free trial, no card required.

Start your free trial →

Related guides