The short version: four stages, in order
An empty program guide comes from exactly one of four stages: 1) the guide file itself is unhealthy, 2) it was never attached correctly, 3) its identifiers don't match your playlist, or 4) the player isn't refreshing it. Diagnose in that order and you will find the fault in minutes. Start anywhere else and you will rearrange settings for an evening.
Step 1. Is the guide file itself healthy?
Paste the XMLTV/EPG URL into the EPG test before touching any player setting. A healthy guide returns HTTP 200, looks like XML (not HTML), and reports a non-zero channel count. Each failure is a different verdict:
- Non-200 status: access or hosting problem at the source. Fix the URL or the access first. No player displays a guide it cannot download.
- HTML instead of XML: wrong link (webpage pasted where the file URL belongs) or an expired share rendering a login page. Fetch the direct file URL.
- Valid XML, zero channels: an empty guide. Correctly formatted, containing nothing. Re-export from the source or pick a different one.
- Healthy on all three: the file is fine and the fault lies downstream. Continue to step 2.
XTREAM3U test note: the EPG test also samples programme counts, so an ancient guide with channels but no current programmes shows up as suspicious rather than healthy. Guide freshness matters as much as guide existence.
Step 2. Is it attached correctly?
More EPG failures live in the attach step than anywhere else. Verify mechanically:
- Right field, right URL. The XMLTV link belongs in the player's EPG/XMLTV field. Never in the playlist field, and never vice versa. Mixed-up fields stall some importers entirely, which then looks like a playlist failure. When an import hangs, retry with the playlist alone to isolate.
- Character-exact URL. Re-copy from the source rather than retyping. Trailing spaces and truncated query strings are invisible and fatal.
- One guide at a time during diagnosis. Multiple stacked guides with overlapping identifiers produce confusing partial results. Get one healthy guide working, then layer others deliberately.
Step 3. Do the identifiers align?
Documented mechanism: players join guide data to channels through identifiers: the playlist entry's tvg-id matched against channel records in the XMLTV file. Community tooling is built on exactly this key: the iptv-org EPG project structures its scrapers around per-site channel records carrying an xmltv_id. Everything about EPG success or failure flows from whether those two sides agree.
- “No information” on every channel with a healthy guide means systematic misalignment. Wrong guide for this list, or identifiers from different naming schemes. Fix the pairing, not the download.
- “No information” on some channels means partial coverage: the guide simply lacks those identifiers. Normal for niche, regional, and event channels. Fill the gap with a second guide source rather than remapping IDs by hand.
- Entries with no
tvg-idat all can never match automatically. The M3U viewer shows which entries lack IDs. If the channels you care about are ID-less, no guide file will ever cover them without list edits. - Drift over time breaks previously working joins: channels get renamed, IDs rotate, lists and guides update on different schedules. Re-sync both files from the same period instead of editing identifiers one by one.
The fastest differential test: check a major news channel. News identifiers are the most consistently maintained, so guide data on news proves the join mechanism works and localizes remaining gaps to specific lists (see the news hub rationale).
Step 4. Is the player refreshing it?
- Force a manual guide refresh and wait for completion. Large guides take minutes, and navigating away mid-refresh leaves partial data that looks like failure.
- Check the player's guide time window and day-range settings. A guide limited to one day looks broken when you browse next week.
- On persistent staleness, remove the EPG URL and re-add it rather than refreshing. Cached bad parses survive refresh buttons in several apps.
- On storage-constrained sticks, confirm free space. Full disks silently truncate guide databases, so cap EPG days to fit the device.
The timezone trap: right data, wrong hours
A special misalignment deserves its own section because it looks like success: guide data appears for every channel, but shifted by whole hours. The join worked; the offset is wrong. Multi-timezone playlists (notably US files) trigger this most, but any feed/guide pair from different offset assumptions can show it. Fix it in the guide's timezone or offset setting. Never by re-importing the playlist. Confirm with a live news channel's now/next against real time; when that aligns, everything aligns.
Xtream logins: a shorter version of the same story
Xtream panels serve guide data through the API (short window) plus an optional companion XMLTV file (long window). The four stages still apply, compressed: panel-provided data covers step 1 automatically, so most Xtream EPG complaints are step 3 (thin provider data for your channels) solved by attaching the companion XMLTV, or step 4 (stale cache). The full login-side tree is in What is Xtream Codes.
Common mistakes
- Judging the guide before it finishes its first full refresh. Patience first, diagnosis second.
- Stacking three overlapping guides during troubleshooting and then debugging the interference instead of the original fault.
- Blaming the player for identifier mismatches that no setting can bridge. Fix the pairing.
- Keeping a dead guide URL configured “just in case,” where its failures mask the working replacement. Remove what doesn't verify.
FAQ
Why do some channels have guide data but not others? Partial identifier coverage. The normal state, not an error. Add a second guide source for the gaps or accept them.
How often should the guide refresh? Daily for volatile lineups, less for stable ones. Each refresh re-downloads the file; aggressive hourly loops trigger rate limits that mimic outages.
Compressed (.gz) guides: supported? Depends on the player. If the app rejects a compressed guide, decompress to plain XMLTV or pick an uncompressed source rather than fighting the importer.
Can I build my own guide mappings? Yes, by aligning identifiers between your list and XMLTV sources, but weigh the maintenance: hand mappings rot with every source update. Prefer better-matched sources over manual joins.
My guide was fine yesterday. What changed overnight? Usually one of three things: the source regenerated the guide with rotated identifiers, your player auto-refreshed onto a truncated download after a network blip, or a clock change exposed a latent offset bug. Re-run the EPG test first. A healthy result points at matching or refresh state, not the file.
Do I even need EPG? No, channels play without it. But a working guide transforms navigation on large lists from scrolling to browsing, and its absence is often the first symptom of identifier drift that will matter elsewhere. Treat guide health as an early-warning system for list health.
Sources and further reading
- iptv-org/epg repository: community XMLTV tooling documenting xmltv_id-based channel matching and scheduled generation. Verified October 2026.
- XTREAM3U EPG test: the health check this guide's first step runs on.
- How to use an M3U playlist: the setup flow whose step 4 this guide debugs.
Methodology note: join mechanics described here reflect documented XMLTV identifier matching and XTREAM3U tool behavior. Guide-specific availability claims always require a timestamped check.
