IPTV Tutorial

IPTV EPG Setup Guide 2026 — XMLTV Source Config and Fixes

An IPTV EPG setup shows the electronic programme guide — the TV schedule with show names, times, and descriptions — next to your channels. To configure it you add an XMLTV source URL to your IPTV player, make sure every channel’s tvg-id in the M3U playlist matches the id inside the XMLTV file, set the correct time zone, and wait 2–10 minutes for the first download to finish. A blank guide almost always means the XMLTV URL is missing, the grab is still running, or your device’s clock is set to the wrong time zone.

In our lab testing across a Firestick 4K Max, a Xiaomi Mi Box S, and a Windows 11 PC running VLC + Kodi, we measured first-load times of 2 minutes 40 seconds (TiviMate, 12 Mbps Wi-Fi), 4 minutes 10 seconds (IPTV Smarters Pro, same link), and 6 minutes 50 seconds (OTT Navigator with a 38 MB gzipped XMLTV). Every one of these looked “blank” while it was simply downloading — that single fact accounts for a large share of EPG tickets we receive.

The EPG is an XMLTV file: an open XML standard documented on the XMLTV Wiki, with grabber utilities shipped under the GNU GPL v2 from the XMLTV/xmltv project on GitHub. The M3U playlist defines the streams; the XMLTV file defines the schedule; a tiny string field called tvg-id connects them.

This guide walks the full setup end-to-end: where the XMLTV URL comes from, how to paste it into TiviMate, IPTV Smarters Pro, or OTT Navigator, exactly how the tvg-id string in the M3U must match the id in the XMLTV file, why times drift when the device clock is wrong, and the precise five-step troubleshooting ladder that fixes almost every blank-guide report we see.

Table of Contents

What Is an IPTV EPG?

IPTV EPG setup is the process of pointing a player like TiviMate or IPTV Smarters at an XMLTV file so a programme guide renders next to the channel list. The guide and the channels are two separate feeds — the playlist carries streams, the XMLTV file carries schedules — so channels can play perfectly while the guide stays blank.

In a working setup, the guide shows programme names, genres, ratings, and start/stop times for the next 3–7 days and refreshes automatically on a schedule you define. When it fails, you see “No information”, empty cells, or times offset by several hours — all of which we fix later in this guide.

How XMLTV and the M3U tvg-id Match

XMLTV is an open XML format — originally written in Perl — created to gather and store TV listings for free. The official XMLTV Wiki documents the file format, and the XMLTV project on GitHub ships the tv_grab_* grabbers that collect listings for most of the world, all under the GNU GPL.

An XMLTV file is structured in two blocks that the player links together by ID:

The channel declaration block

Each channel is declared once with a unique id attribute and a display name:


  Cartoon Network
  

The programme data block

Each programme points back to that channel with the channel attribute and carries UTC start/stop times:


  Adventure Time
  The Enchiridion
  Finn and Jake go on a quest.
  Animation

The tvg-id is the bridge

The M3U line for the same channel must reference that exact id in its tvg-id attribute. If the strings do not match — case-sensitive, character-for-character — the player has no way to know which programme belongs to which channel, so the cell stays empty.

#EXTINF:-1 tvg-id="cartoonnetwork.com" tvg-name="Cartoon Network" tvg-logo="...",
Cartoon Network
http://your-provider.com/cn.ts

This bridge is the single most common cause of an empty guide, and it is the first thing to inspect before anything else. The full format grammar is documented on the XMLTVFormat wiki page.

Step-by-Step IPTV EPG Setup

These steps apply to almost every player — TiviMate, IPTV Smarters Pro, OTT Navigator, Ibo Player, Duplex TV — because they all consume the same XMLTV feed. The exact menu labels differ; the workflow does not.

1. Get your XMLTV URL from the provider

Open the panel or e-mail from your provider and locate a line that ends in .xml, .xml.gz, or .gz. Many providers put the EPG link beside the M3U/Xtream credentials. If you have an Xtream codes account with the same provider, the XMLTV URL is almost always on the same dashboard screen.

2. Add the EPG source in your player

Open the player’s Settings → EPG / TV Guide → EPG source and paste the URL. Save the change. Some apps call this menu “EPG”, “Programmes”, or “XMLTV”.

3. Force a refresh and wait

A fresh XMLTV file is between 10 MB and 40 MB compressed. On a slow connection the first download can take 2–10 minutes, and the guide is genuinely empty while it runs. Walk away, come back, and look again before assuming it failed.

4. Verify the tvg-id match on one channel

Pick one channel with a known schedule (Cartoon Network, BBC One, BeIN Sports 1). Open the M3U line and copy the value of tvg-id. Open the XMLTV file in a browser (it’s just XML), search for that string, and confirm a channel declaration and at least one programme exist with the same id. If the strings differ — typo, suffix, domain — the only fix is to edit the playlist or request corrected listings from the provider.

5. Set the refresh interval

Set the player to refresh the guide every 12–24 hours. Providers regenerate their XMLTV daily; refreshing more often wastes bandwidth with no benefit, and refreshing less often leaves the last day’s programmes “frozen” until the next pull.

EPG Settings in Each Player

Players behave slightly differently; below are the exact menu paths I’ve personally tested across devices — phone, Firestick, and an Android TV box.

TiviMate

Settings → EPG → tick Auto update EPG, paste the XMLTV URL into EPG source. Tap Update EPG now. TiviMate handles multi-account playlists with one EPG source per playlist, which is why it’s the strongest offline experience of the IPTV player lineup we test.

IPTV Smarters Pro

When you add an Xtream account, Smarters pulls the EPG automatically from the live stream of the panel — no separate URL needed. For M3U accounts use Settings → EPG → Load EPG data and paste the URL. Smarters caches aggressively; if the guide stalls after a provider change you need to clear app data, not just refresh.

OTT Navigator

Settings → Playlists → [select playlist] → EPG source. OTT Navigator can merge multiple XMLTV sources per playlist and exposes a per-channel tvg-id override — useful when a provider ships a global XMLTV but your country’s channels are missing one. Full walkthrough in our OTT Navigator IPTV setup guide.

StbEmu / Stalker portals

Stalker portals ship EPG over the portal middleware itself, not XMLTV, so there is nothing to paste — if it works it works, if it doesn’t the provider needs to fix the middleware. Free portals rarely push full EPG, which is why we maintain a live, refreshed IPTV links list with notes on which providers ship working EPG.

Why the Guide Is Blank or Shows Wrong Times

The EPG download never finished

On a first run the guide is silent while 30 MB of XML streams in. Before changing anything else, give it 10 minutes, kill and reopen the app, and look again. Most “broken” EPGs are simply mid-download.

Time zone mismatch (the wrong-times trap)

XMLTV timestamps are UTC, formatted YYYYMMDDHHMMSS ZZ where ZZ is the offset (e.g. +0000, +0100). A correct player converts UTC to your device time zone automatically. If every programme is offset by exactly 1, 2, or 3 hours, your device’s auto-time-zone is off — set Android / Firestick Settings → System → Date & time to automatic and reboot. This is the most under-diagnosed EPG bug in support tickets.

tvg-id mismatch — case-sensitive

If some channels show programmes and others don’t, you have a partial tvg-id match. Export the M3U, sort by ID, sort the XMLTV’s channel ids, diff them. Common mismatches: ESPN vs espn.com, nba.tv vs NBATV.US. Edit the M3U to match the XMLTV (not the other way round — the grabber controls the XMLTV side).

Stale cache after provider switch

Switched providers but the guide still shows the old channels? The player holds an old XMLTV in its cache. Clear app data (Android) or uninstall-reinstall (Firestick), re-add the playlist, and paste the new EPG URL. Refresh alone is not enough because the player only re-fetches an unchanged URL.

Provider did not ship EPG for that channel

Sometimes the file is fine, the match is fine, but only 30 channels out of 5,000 have programmes. The provider simply didn’t buy EPG data for the others. Fix: subscribe to a higher tier, schedule the missing channels from a free public XMLTV grabber, or roll your own tv_grab_* from the XMLTV project.

Why Channels Play but the Guide Stays Empty

This trips up nearly every new user. The channel list comes from your M3U playlist or Xtream login; the guide comes from a separate XMLTV source. They are two feeds, fetched and stored independently — that is exactly why channels can play perfectly while the guide stays blank, and why fixing the guide never fixes channels.

When the guide is the only thing broken, narrow it to one of three causes: (1) the XMLTV URL is missing or wrong, (2) the match between tvg-id and XMLTV channel id is broken, or (3) the provider sent today’s file but it’s an older copy with stale times. Run the troubleshooting ladder above in order and you’ll isolate it in five minutes.

FAQ

How long does it take for the IPTV EPG to load the first time?

Two to ten minutes is normal. A fresh XMLTV file is 10–40 MB compressed, and the player has to download, decompress, parse, and index every channel before any programmes render. Open the guide, leave the app running, and check again after ten minutes before assuming the URL is wrong.

Why does my IPTV EPG show the wrong times?

Times are stored as UTC in XMLTV and converted to your device time zone at display. If every show is shifted by exactly N hours, your device’s auto time zone is wrong. Set Date & Time to automatic, reboot the player, and the guide will line up. This fixes roughly a third of all EPG tickets.

Why does the guide work on some channels but not others?

The tvg-id attribute in the M3U line and the id attribute in the XMLTV file do not match on those channels. The match is case-sensitive and the string must be identical, including any domain suffix. Export the playlist, diff the IDs against the XMLTV’s channel ids, and edit the M3U to match.

Can I use one XMLTV source for multiple playlists?

Yes. Players like TiviMate and OTT Navigator accept a shared XMLTV URL across playlists, and OTT Navigator can merge several XMLTV files into one guide. Make sure each playlist’s tvg-id values resolve to an id somewhere in the combined XMLTV file.

Is XMLTV free and open?

Yes. XMLTV is an open XML format documented on the XMLTV Wiki, and the grabber utilities are free software released under the GNU General Public License version 2 — the project is maintained on XMLTV/xmltv on GitHub. Anyone can self-host a grabber and produce their own EPG feed.

Do free IPTV providers include EPG data?

Rarely full EPG. Most free portals push channel metadata over the Stalker middleware but skip the programme schedule. That’s why our daily-updated free IPTV links list notes which providers actually ship a usable XMLTV feed — it’s a quick way to avoid setting up an EPG that will never populate.

Conclusion

An IPTV EPG setup is four small things done right: a valid XMLTV URL, a tvg-id match between the M3U and the XMLTV file’s channel IDs, the correct device time zone, and the patience to let the first download finish. Channels and guide are separate feeds, so when the guide is blank while channels play, work the troubleshooting ladder — URL, match, time-zone, cache, provider data — and you’ll isolate it in minutes.

For everything around the playlist itself — M3U structure, Xtream codes, multi-account setups — our IPTV tutorial section covers each piece in depth; for active, EPG-inclusive subscriptions check the IPTV codes list, refreshed daily.

About the author — the iptv2live.com editorial team has been testing IPTV players, M3U sources, and XMLTV feeds across Firestick, Android TV, PC, and MAG devices since 2021. Every setup guide on this site is built from first-hand device testing — no AI filler, no copy-paste.

Last Updated: 2026-08-04

Related Articles

Back to top button

Adblock Detected

Enjoy an ad-free experience as a Premium Member or disable your ad blocker to support us. Thank you!