Guides

EPG Not Loading: Check XMLTV Mapping and Times

When the EPG is not loading, a working channel can still leave you guessing about what is on. The guide may be completely empty, stop at yesterday, or show a familiar programme at the wrong time. Start with one affected channel and write down exactly what you see. That gives you a useful comparison after each change.

This guide covers general XMLTV diagnosis using a compatible player and your own programme source that you are entitled to use. Import menus and supported setup methods vary between apps, so follow your player's documentation for the actual controls. A playlist with working streams does not establish that matching, current listings are available. See the M3U playlist guide for background on your channel list.

1. Identify one of four practical cases

Check two or three channels from the same playlist, preferably in different groups. Compare this evening with tomorrow. A small sample helps you choose a useful next step before changing settings across the whole list.

What you seeWhat to check first
No listings anywhereThe source, retrieval result and covered dates.
Only some channels are emptyCoverage and mapping for those channels.
Listings finish yesterdaySource freshness and the last refresh result.
Titles look right but times are shiftedDevice time, provider information and time settings.

If the picture also stutters, record that separately and use the IPTV buffering guide to investigate playback. An empty guide alone tells you little about stream quality. Choose the case that best matches your observations and keep the same test channel throughout the following checks.

2. Check the source and current listings

Privately compare the configured EPG address with the current address supplied by your provider. Check the full URL, including its parameters, for copying mistakes. It may contain a password or personal token. Do not post it in a forum or submit it to a public URL tester. Screenshots can expose it too.

Use your player's documented refresh method once, recording the time and visible result. Distinguish a failed download from an import that completed without useful listings. A downloaded file may be old or contain nothing for the channel and date you want. Repeated refreshes cannot create programmes missing from the source.

If you can inspect your own local copy, look for the affected channel and a specific programme expected today. Otherwise, ask the provider which dates the source currently covers. Before removing an existing source, make sure you can restore its configuration.

3. Check XMLTV channel mapping carefully

XMLTV links programme.channel to channel.id; start records the beginning, including any supplied timezone.

<?xml version="1.0" encoding="UTF-8"?>
<tv>
  <channel id="demo.news">
    <display-name>Demo News</display-name>
  </channel>
  <programme start="20261013180000 +0000" channel="demo.news">
    <title>Demo bulletin</title>
  </programme>
</tv>

This invented example is a demonstration only. It is not a usable EPG source and provides no real schedule for your channels.

Compare the affected playlist channel's identifier with the intended entry in your EPG source. Apps commonly use a matching tvg-id for this, but automatic matching is not universal. Follow the app's documented mapping method, including manual selection where offered. Identifiers used for an exact match must agree exactly. Similar display names or additions such as HD can help you recognise a channel, but do not prove that its mapping is correct.

Change one channel first and check the result. The M3U validator can support a separate playlist check; that does not confirm the EPG contents or the player's mapping.

4. Compare wrong programme times methodically

Choose a known programme and note its displayed start, the expected time supplied by the provider, and your device's clock and timezone. Check existing time corrections in the app too. Compare a second channel when possible: a shared shift and a single incorrect entry are different observations.

Do not automatically apply a plus one hour offset. It can conceal the original problem and shift other channels. Change one setting, refresh through the documented method, then compare the same programme again. Record the previous value and result so you can reverse the change. If the difference varies, note whether it affects particular dates or channels.

5. Prepare a useful report without secrets

If the problem remains, report the player and version, device, date with timezone, affected channels and last refresh result. Explain whether all listings are empty, one channel is missing, coverage is stale or times are shifted. Include your comparison programme and the single change you tried.

Remove complete URLs, account names, passwords and tokens from text and screenshots. Ask the provider about missing source listings, or send a reproducible import issue to the app's support team. Describe what you observed without presenting an untested cause as certain.

Technical source: XMLTV project's XMLTV DTD. Guide updated: 13 October 2026.

Frequently asked questions

Why does a channel play while its EPG stays empty?
Check programme listings separately from playback. Missing current data, a failed retrieval and an unsuitable channel mapping need different checks. Start with one channel and today’s date.
Does every player automatically map channels using tvg-id?
No. Matching tvg-id values are commonly used, but mapping depends on the player. Follow its documented method and check one channel after your change.
Should I add one hour when programme times are wrong?
Compare your device clock, provider information and existing time corrections first. Change one value and check the same programme again. A blanket offset can shift other channels.
Can I publish my full EPG URL for testing?
Keep it private because it may contain credentials or tokens. Use your app’s documented refresh method and share only cleaned observations in a problem report.