Guide
What is EPG in IPTV, and what is XMLTV?
Updated
At a glance
EPG (electronic programme guide) is the schedule your IPTV player shows: what is on now, next and later on each channel. XMLTV is the file format most IPTV guides use. The player downloads the XMLTV file and matches its channels to your playlist, usually by tvg-id.
What does an EPG do?
It tells the player what is on. With IPTV the stream itself usually carries no schedule; the player only knows a channel’s name and stream address. The EPG is a separate set of data that fills in the rest: the title of each programme, when it starts and ends, and often a short description.
A guide makes several things possible:
- Now and next in the channel list, so you see what is on before you tap.
- A timeline grid of channels and hours, like a printed TV guide.
- Catch-up lists, because the player needs to know which programmes ran in the past to offer them for replay.
- Start over, which needs the start time of the current programme.
- A programme bar in the player that shows how far into the programme you are.
The guide is also what makes a long channel list usable. With hundreds of channels, a name alone doesn’t tell you where the match, the film or the news is on right now. A schedule does.
Without an EPG your channels still play. You just see names and logos, without any schedule.
What is the XMLTV format?
An open XML format for TV listings. A guide file has two kinds of entries: channels, each with an id, and programmes, each pointing to a channel id with a start time, an end time and a title. Players read it to fill now and next and the guide grid. Simplified, it looks like this:
<channel id="channel.one"><display-name>Channel One</display-name></channel><programme start="20261102200000 +0100" stop="20261102210000 +0100" channel="channel.one"><title>Evening News</title></programme>
The parts that matter:
- channel id is the key. Every programme points to a channel by this id.
- start and stop are timestamps in the form year, month, day, hour, minute, second, followed by a time zone offset such as
+0100. A timestamp without an offset counts as UTC. - title and optional desc are the text you see in the guide.
Guide files for many channels and several days get large, so providers often compress them with gzip. Those links end in .xml.gz. A good player handles both.
Where does my IPTV guide come from?
From your provider, the same place as your channels. It reaches the player in one of three ways: as a separate XMLTV link you enter, as a guide address named in the playlist’s first line, or through an Xtream login, which brings its own guide with no extra link.
- A separate EPG link. Your provider gives you an XMLTV address next to the playlist link, for example
https://example.com/guide.xml.gz. You enter it in the player. - Named in the playlist. The first line of an M3U file can carry the guide address, as
#EXTM3U url-tvg="https://example.com/guide.xml"or withx-tvg-url. The player picks it up without you typing anything. - From an Xtream login. Xtream Codes servers provide their guide through the same login as the channels, so no extra link is needed.
There are also independent guide services. Whether you may use one depends on its own terms, and it only helps if its channel ids match the ones in your playlist. In most cases the guide your provider supplies fits best, because it was made for the same list.
How are guide channels matched to my playlist?
By id first, then by name. The guide and the playlist are separate files, so the player has to work out which guide channel belongs to which stream. A matching tvg-id is reliable; a name match is a fallback that can go wrong. This is where most guide problems start.
By tvg-id. The reliable way. Each channel in the M3U has a tvg-id attribute that is identical to a channel id in the XMLTV file. If your provider made both files, these usually line up.
By name. The fallback. When a channel has no tvg-id, the player compares names. That is harder than it sounds: the playlist may say “UK: Channel One HD” while the guide says “Channel One”. A careful player strips country prefixes, quality tags like HD, FHD or 4K, accents and punctuation before comparing.
Name matching has a trap: the same channel name can exist in several countries with different schedules. If a playlist has both “ES: Sports Channel” and “DE: Sports Channel” and neither has a tvg-id, a name match could show one country’s schedule on the other’s channel. Showing no guide is better than showing the wrong one.
Why is my IPTV guide showing the wrong times?
Usually because the guide file carries the wrong time zone offset, uses a fixed offset that ignores daylight saving time, or comes from a server that writes local time as UTC. Less often, the channel is matched to another channel’s schedule. These are the usual causes, and how to tell them apart:
- Wrong offset in the file. The guide says
+0000but the times are really local time, or the other way round. Every programme is then off by the same number of hours. This has to be fixed by whoever makes the guide. - Daylight saving time. A guide generated with a fixed offset can drift by an hour when the clocks change.
- Server clock written as UTC. Some Xtream servers report their local wall-clock time as if it were UTC. A player that knows the server’s time zone can correct this.
- The same guide imported twice. Some servers hold a second copy of the schedule shifted by whole hours, so programmes appear twice.
- The wrong channel matched. If the schedule looks plausible but doesn’t fit what is on screen, the channel may be matched to a different channel’s guide, often through a name match.
To find out which cause applies, compare a few channels. If every channel is off by the same amount, the offset in the file is wrong. If the shift appeared on the day the clocks changed, it is daylight saving time. If only one channel shows a schedule that doesn’t fit, it is matched to the wrong guide channel, and adding the correct tvg-id to the playlist fixes it. Your provider can usually correct the first two, since they generate the guide.
An empty guide has simpler causes: the EPG link doesn’t open, it belongs to a different provider than the playlist, or the channel’s tvg-id doesn’t exist in the guide. EPG not working? walks through every fix.
The guide in iptvolt
A guide you can trust starts with your source. iptvolt shows the guide data it provides and ships none of its own. On iPhone, iPad and Android it:
- Reads XMLTV guides in plain XML or gzip and converts each timestamp with its offset to your device’s time.
- Merges up to four guide links per source, in priority order: your own EPG link, then the playlist header guide, or for Xtream the server’s own guide. Later guides only fill gaps.
- Matches by tvg-id first, then by cleaned-up name, and leaves a channel without a guide when the name is ambiguous across countries.
- Reads the Xtream server’s time zone to correct servers that write local time as UTC, and keeps one schedule when a server holds its guide twice.
- Keeps a window from three hours back to about a day ahead, plus past days for catch-up channels.
Now and next on every channel is free. The full timeline grid is part of Pro; free users see a preview of it. More on the EPG TV guide page, and on how the guide feeds replays on the catch-up page.
Questions
What does EPG stand for in IPTV?
EPG stands for electronic programme guide. In an IPTV player it is the schedule that shows what is on now, next and later on each channel, loaded from guide data your provider supplies.
What is an XMLTV file?
XMLTV is an open XML format for TV listings. The file lists channels with an id and programmes with a start time, stop time, title and optional description. IPTV players use it as their guide source.
Why is my IPTV guide showing the wrong times?
Usually the guide file carries the wrong time zone offset, or a server writes local time as if it were UTC. If every programme is off by the same number of hours, the guide itself needs fixing at the source.
Why do some channels have no guide?
The player couldn’t match them. Matching works by tvg-id first, then by channel name. If the tvg-id doesn’t exist in the guide and the name doesn’t match, the channel shows no programmes.
Do I need an EPG link for an Xtream Codes login?
No. An Xtream server provides its own guide through the login. A separate EPG link is mainly needed for M3U playlists that don’t name a guide in their first line.
Try it in iptvolt
A player for your own sources. It provides no channels or content.
- Set it up once, synced on iPhone, iPad and Android.
- No ads, ever. The free version is complete.
- One purchase covers up to 5 of your devices.