EPG stands for Electronic Program Guide: the listing of what's on each channel, now and next. It's the strip across the bottom of cable boxes ("19:30 The Simpsons / 20:00 Family Guy"), and it's the thing that makes a channel list feel like television rather than a wall of unlabelled streams.
In IPTV, the EPG isn't part of the channel list. It's a separate file. That single fact explains roughly 90% of the confusion newcomers run into.
What's in an EPG file
EPG data ships as XMLTV — an XML format used by basically every IPTV player. A short slice looks like this:
<channel id="bbc1.uk">
<display-name>BBC One HD</display-name>
</channel>
<programme start="20260512183000 +0000" stop="20260512190000 +0000" channel="bbc1.uk">
<title>BBC News at Six</title>
<desc>The day's national and international news.</desc>
</programme>
Two kinds of entries: channels (just an ID and a name) and programmes (an ID, a start/stop time, a title, a description, sometimes a category and an episode number). A real EPG file has tens of thousands of these — a week or two of listings for every channel a provider carries.
How the EPG attaches to the channel list
Each <programme> has a channel="bbc1.uk" attribute. Each #EXTINF line in the M3U has tvg-id="bbc1.uk". The player matches them by string equality. If the IDs match, you see listings. If they don't, the channel plays fine but you see "no information".
This is the single most common bug in IPTV setups. The M3U says tvg-id="bbc.one.hd"; the EPG says <channel id="bbc1.uk">; the player can't tell that those refer to the same channel.

When the IDs match, every channel row shows what's playing right now.
Where the EPG actually comes from
Most IPTV providers ship two things: an M3U URL for the channels, and a second URL for the XMLTV. For Xtream Codes providers the XMLTV is almost always at:
http://<server>/xmltv.php?username=<u>&password=<p>
For non-Xtream providers it might be anywhere — they'll email it to you or tell you to fetch a static file. The format is the same either way.
Some IPTV players also include community EPG sources — free, public XMLTV files maintained by volunteers for thousands of channels. iptv-org's EPG project is the best-known. These exist because provider-supplied EPGs are notoriously unreliable, and a well-maintained community guide is often more accurate than the one you're paying for.
Why your EPG might be empty
In rough order of frequency:
- You didn't add an EPG source. Common. Importing the M3U doesn't automatically pull the guide; you have to add the XMLTV URL separately.
- The
tvg-idandchannel iddon't match. The channels play fine, the guide is loaded, but the player can't tell which programme belongs to which channel. Open the EPG file in a browser and check what IDs it actually uses. - The time zone is off by hours. Programmes are listed correctly but appear at the wrong time, so the "now playing" entry never seems current. The XMLTV
startattribute has timezone information; some providers strip or corrupt it. See our guide on fixing EPG time zones. - The XMLTV file is too large to parse. Some Xtream providers ship 200 MB XMLTV files containing months of guide data. Some players will time out. The EPG validator on this site tells you whether the file parses cleanly.
- The XMLTV URL returns HTML. Same failure mode as the M3U equivalent — your provider needs a session cookie, or has rate-limited your IP. Try a different network.
There's a longer step-by-step diagnostic in the Android TV EPG troubleshooting guide.
What a good EPG gives you
Three concrete benefits that justify setting it up:
- Now / next overlay. Pressing up on a remote while a channel is playing shows you what's on now and what's on next. This is the single most-used feature in any TV interface.
- Search across the schedule. "What time is the football on?" becomes a one-second answer instead of channel-flipping for ten.
- Reminders and scheduled viewing. Many players (Klipa included) let you set reminders against EPG entries.
If you only watch a handful of channels and you already know their schedule, the EPG is nice to have. If you flip through a 200-channel provider list with no idea what's on each one, the EPG is what makes IPTV usable.
What an EPG isn't
It's not a recording schedule (though some PVR players use it as one). It's not part of the channel list. It's not signed or authenticated — anyone can supply EPG data for any channel, which is why community EPG projects exist.
It's just a list of "this channel will show this programme at this time". The hard part is matching the IDs.