Back to articles

What is EPG in IPTV? How the TV guide works

Thiago MonteiroBy Thiago MonteiroPublished on July 29, 20267 min read
What is EPG in IPTV? How the TV guide works

You open a playlist, choose a channel, and see a grid showing what is on now, what comes next, and the schedule for the rest of the day. That layer of information is the EPG — the electronic programme guide that turns a list of live channels into an experience closer to traditional television.

When the EPG works, it can feel like part of the channel itself. Behind the scenes, however, the video and the schedule travel separately. That distinction explains why a channel may play normally while its guide is empty, out of time, or attached to the wrong programming.

What does EPG mean?

EPG stands for Electronic Programme Guide. It collects scheduling and editorial information for linear channels: what is playing now, when each programme began, when it ends, and what will be shown next.

The most important detail is that the EPG does not contain the video. It behaves like a timetable synchronised with the channels. The stream URL delivers the picture and sound; the EPG source delivers schedule data. The player brings the two together in its interface.

What information can appear in the guide

The amount of detail depends on what the source provides and what the player can read. An EPG may include:

  • channel name and logo;
  • the current programme and upcoming titles;
  • start and end times;
  • a synopsis and category, such as sport, news, or film;
  • season, episode number, and episode title;
  • ratings, cast, artwork, and other supporting details.

Not every guide contains all of these fields. Some sources provide only a title and time, while others include a full description. A player cannot show a synopsis or image that was never present in the schedule source.

How EPG data reaches an IPTV player

To build the guide, a player needs to connect two sets of data. One is the playlist or API containing the channels and their playback addresses. The other is the guide, containing channel identities and programmes assigned to specific times.

  • The M3U playlist or API tells the player which channels exist and how to play them.
  • The EPG source describes the schedule for each channel.
  • The player refreshes both sets of information.
  • It then matches every playlist channel with its counterpart in the guide.
  • Finally, it adjusts the times for the device and renders the schedule on screen.

That matching step is essential. Successfully downloading a guide is not enough: the player must also know which EPG record belongs to each channel in the playlist.

What is XMLTV?

XMLTV is a widely used format for distributing television listings. As its name suggests, it organises the information as XML, a structured text document that can be loaded from a local file or downloaded from a URL.

Inside the document, channel elements hold identifiers, display names, and sometimes logos. Programme elements point to one of those channels and include fields such as start time, end time, title, description, category, and episode. Times can also include an offset from UTC so that an app can display them in the correct local time zone.

What about Xtream Codes access?

With an API compatible with Xtream Codes, the server may provide EPG data through its own endpoints, without requiring the user to enter a separate XMLTV URL. The packaging is different, but the principle is the same: the server supplies schedule data identified by channel, and the player turns it into a guide.

The role of tvg-id

In M3U playlists, the tvg-id attribute commonly acts as the bridge between a channel and XMLTV. The playlist channel receives an identifier, and the guide uses the same value for its corresponding entry. When the values match, the relationship is usually straightforward.

  • In the M3U playlist: a channel may include tvg-id=“example.channel”.
  • In XMLTV: the channel element uses id=“example.channel”.
  • In programme entries: each item points back to channel=“example.channel”.

Some players also try to match by name when an identifier is missing. That approach is less reliable: “Example Channel”, “Example Channel HD”, and “Example Channel London” may be treated as different stations. A stable identifier avoids depending on those variations.

Why the EPG is empty or shows the wrong listings

The source does not provide a guide

A playlist can play channels without including any schedule data. A provider may also supply an EPG for only part of its catalogue. In either case, the player has no source from which to retrieve the missing listings.

The identifiers do not match

If the playlist tvg-id differs from the id used by the guide, a player can download every programme and still be unable to assign them to the right channel. Channels may also be renamed or replaced while the schedule file continues to use the old entry.

The guide is out of date

Schedules change and need regular updates. An unavailable URL, an interrupted refresh, or an old file can leave the guide stuck on yesterday. Live events may also shift at short notice before the source has time to publish a correction.

The time zone was interpreted incorrectly

If a source declares the wrong time zone — or omits information the receiving system expected — the entire guide may appear early or late by the same amount. When every programme is offset by exactly one, two, or three hours, check the device date, clock, and time zone before looking for a different cause.

The player is still using cached data

To avoid downloading a large schedule every time it opens, a player may keep guide data locally for a while. If a refresh fails, the app can continue to display the last valid copy. Refreshing the playlist or guide and reopening the app helps distinguish stale cache from a problem at the source.

How to troubleshoot EPG problems step by step

  • Confirm that the channel plays. If the video also fails, the problem is not limited to the EPG.
  • Check other channels. One empty channel suggests a mapping issue; a completely empty guide points to the source or the refresh process.
  • Refresh the playlist and guide in the player when those options are available.
  • Make sure the device date, clock, and time zone are correct.
  • Compare the displayed time with the real offset. A fixed time difference usually suggests a time-zone issue; incorrect titles suggest a bad channel match.
  • If you manage your own authorised playlist, compare the channel tvg-id with the corresponding XMLTV id.
  • When reporting the problem to the provider, include the channel, time, device, and whether playback is also affected.

This sequence helps avoid two unnecessary changes: replacing the player when the provider supplies no EPG, or replacing the source when the device simply had the wrong time zone.

Who is responsible for each part

  • Source or provider: supplies channels, identifiers, and accurate, up-to-date schedule data.
  • Player: reads supported formats, refreshes the data, matches channels, and displays the guide.
  • Device: supplies the date, clock, and time zone used for display.
  • User: configures only authorised access and avoids sharing guide URLs or credentials.

EPG is not the same as film and series metadata

An EPG follows the timeline of live channels. Films and on-demand series use a different kind of catalogue, with artwork, synopsis, cast, seasons, and episodes attached to a title rather than a time slot. A player may enrich that catalogue with databases such as TMDB, but doing so does not automatically fill the live-channel schedule.

A practical summary

  • EPG is the timetable for live channels; it is not the video stream.
  • XMLTV is one of the formats used to distribute schedule data.
  • A tvg-id helps connect a playlist channel to the correct guide entry.
  • An empty guide may mean a missing source, mismatched identifier, or failed refresh.
  • Listings shifted by the same number of hours usually point to the clock or time zone.
  • The player organises and displays the data, but it cannot invent information the provider never sent.

Already have an authorised M3U playlist or Xtream Codes access? Nebula Player organises your channels, films, and series on iPhone and iPad, with profiles, favourites, and continue watching.

Discover Nebula Player
Thiago Monteiro

Thiago Monteiro

Creator of Nebula Player

iOS developer and creator of Nebula Player. Writes about how media players, authorized playlists, and streaming technologies work in practice.

Articles by Thiago Monteiro

Related articles

A more organized way to watch your IPTV.

Download for iOS