An empty TV guide is the single most common IPTV problem after playback itself, and it is almost never one bug. It is six different failures that all end with the same blank screen. Worked through in this order, you will normally know which one you have within a couple of minutes.
Start here: did it load, or did it match?
These are two separate steps and they fail for completely different reasons. First the app downloads and parses an XMLTV file — that is loading. Then it has to decide which of your playlist channels each guide entry belongs to — that is matching. A guide can load perfectly and still show nothing.
In OneTV Connect, open Settings → TV Guide (EPG). The source shows a last update time and a programme count. That tells you which half of the pipeline you are debugging:
- No update time, or zero programmes — a loading problem. Go to sections 1 and 2.
- Thousands of programmes but an empty guide — a matching problem. Jump straight to section 3.
Most people who have been fighting an empty guide for an hour are in the second case and keep re-entering the URL, which cannot help.
1. The URL does not return XML
An XMLTV URL has to answer with the XML document itself. Three things commonly go wrong:
- The link points at a web page, not a file. If you copied it from a browser
address bar on a site that lists guides, you may have a download page. Open the URL in a
browser: you should see raw XML starting with
<tv>, or a file download — not a styled page with buttons. - The URL redirects to a login. Sources that require an account often answer
with an HTML sign-in page and HTTP 200, so nothing looks like an error. The parser then
finds no
<programme>element and reports zero. - It is http:// on a host that has moved to https://. Try the https form first; a stale http endpoint often answers a redirect the guide fetcher cannot follow.
In the app, paste the address in Settings → TV Guide (XMLTV) → XMLTV URL (epg.xml), then use Force Reload EPG (clear cache) rather than a plain reload. A plain reload can be answered with a cached "not modified" response, which is exactly what you do not want while testing a URL you just changed.
2. The file is too big, or compressed in a way you did not expect
National XMLTV files are large. A full week for a hundred channels is routinely tens of
megabytes uncompressed, which is why almost every source ships a gzipped variant — the URL ends
in .xml.gz instead of .xml. Prefer the gzipped one: it downloads
several times faster and is far less likely to time out on a TV device's network stack.
If a source offers per-country or per-package files, take the narrow one. A guide containing twelve thousand channels when your playlist has three hundred costs download time, parse time and memory on every refresh, and buys you nothing. This matters more on a TV box than on a phone: set-top hardware has far less memory headroom, and an oversized guide is a classic cause of an app that reloads itself while the guide is downloading.
3. It loaded, but nothing matched your channels
This is the big one. Your playlist and your guide are two independent documents written by two different people, and they have to agree on an identifier for each channel.
In the M3U, each channel carries a tvg-id attribute. In the XMLTV file, each
channel is declared with an id attribute. A programme is attached to a channel by
that identifier. If your playlist says tvg-id="TF1" and the guide declares
id="TF1.fr", they will never meet, no matter how good either file is.
OneTV Connect tries several strategies before giving up: the exact identifier first, then a
normalised name comparison that ignores case, accents and the usual HD,
FHD and 4K suffixes. That resolves the majority of channels
automatically. For the rest, long-press a channel and choose Map to EPG to pick the
right guide entry yourself. Manual mappings sync across your devices through iCloud, so you do
this once, not once per device.
If you want to understand what the matcher is doing and why it misses certain channels, the mechanics are worth ten minutes: see how tvg-id and tvg-name matching really works.
4. The guide is there, but stops a few hours out
A guide that shows tonight and then nothing usually means the source only publishes a short window — some publish 24 or 48 hours, not a week. That is a property of the source, not a setting you can turn up.
It can also mean the source publishes several days but the file was truncated on download, typically on a flaky connection. If a manual reload on a good network suddenly produces three more days, that was it.
The practical fix in both cases is to add a second source. Sources stack rather than replace each other, so a deeper one fills in behind a better-matched but shallower one.
5. Everything is shifted by a whole number of hours
If the programmes are right but start an hour early or an hour late, and the offset is the same everywhere, that is a time zone bug in the source rather than anything on your device.
XMLTV timestamps look like 20260804203000 +0200: fourteen digits of local time,
then the offset from UTC. A correct file lets any client convert to the viewer's zone. Two
things break it — a source that omits the offset entirely (the client has to guess), and a
source that writes local time but always states +0000, which is silently wrong for
most of the year in Europe.
You cannot repair that from the client side without breaking the sources that are correct. The fix is to use a different source for the affected channels. If the shift changed by exactly one hour on the last Sunday in March or October, you have found a source that does not handle daylight saving.
6. The guide loads, but shows yesterday's programmes
Two different causes look identical here. Either the refresh is not running, or it is running and the source itself has not been updated.
Check the last update time in Settings → TV Guide (EPG). If it is days old, the automatic refresh is not completing — usually because the device never stayed awake and connected long enough. If the update time is recent but the content is stale, the source is publishing an old file and no amount of reloading will change that.
When you genuinely need to start from a clean slate, Clear EPG Data in the storage settings removes the stored guide entirely, so the next load cannot reuse anything cached. Reach for it after changing sources, not as a routine habit — a full reload of a national guide is a heavy download.
Frequently asked questions
Why is my IPTV guide empty even though the EPG says it loaded?
The file downloaded and parsed, but none of its channel IDs matched the channels in your playlist. The guide is not missing — it is attached to channel identifiers your playlist never uses. Check the tvg-id values in your M3U against the id attributes in the XMLTV file.
How often should an EPG source refresh?
Every 12 to 24 hours is enough for a guide that covers several days. Refreshing more often mostly re-downloads the same file, and on a provider that limits connections it competes with playback. Force a manual reload when you know the schedule just changed, for example before a sports weekend.
My guide shows the wrong times, off by exactly one or two hours.
That is a time zone problem, not a loading problem. XMLTV timestamps carry their own UTC offset, and some sources publish local time with a wrong or missing offset. If everything is shifted by a whole number of hours, the source is at fault — try another one for those channels.
Can I use several EPG sources at the same time?
Yes, and it is usually the right answer. Sources stack rather than replace each other: the first source that has a programme for a given channel and time wins, and the others fill the gaps. A national source plus a sport-specific one covers most setups.
Still empty after all six? The odds are overwhelmingly that it is section 3, and that the answer is a manual mapping on the handful of channels that matter to you. If you would rather start from a source known to match cleanly, see where to find an XMLTV source for your country, or compare the built-in option in Xtream EPG vs XMLTV. The catch-up and timeshift features depend on a correct guide too, so fixing this pays twice.