How XMLTV and M3U work together
An M3U entry describes a playable channel and may include a guide identifier such as tvg-id. An XMLTV file separately defines channels and program blocks. ChannelSurf joins those two datasets so the live guide can show what is on now and what comes next.
- M3U / M3U8
- Provides playable stream entries, channel names, groups, logos and optional guide identifiers.
- XMLTV
- Provides channel IDs, display names, program start and stop times, titles, descriptions and other schedule metadata.
Xtream profiles generally expose their own XMLTV endpoint, and Stalker portals can supply guide data through the portal. The optional XMLTV field is most useful for a standalone M3U profile.
Add an XMLTV URL to an M3U profile
- Obtain the original XMLTV URL from the same provider or a guide source you are authorized to use.
- While creating or editing a ChannelSurf profile, choose M3U URL.
- Enter the playable playlist in M3U Playlist URL.
- Enter the guide address in EPG / XMLTV URL (optional).
- Save and connect. ChannelSurf fetches and parses the guide away from the interface so a large XML file does not freeze navigation.
If you leave the optional field empty, ChannelSurf can use the first url-tvg address declared in the M3U header. A value entered directly on the profile takes precedence.
How channels match to listings
The cleanest match is an M3U tvg-id that exactly equals the corresponding XMLTV channel ID. ChannelSurf can also use XMLTV display-name information to improve matching when IDs are missing or inconsistent, but exact identifiers remain more reliable.
For example, a playlist might label a channel “News HD” while the guide calls it “News Network East.” Without a shared ID, name-based matching may not know they are the same station. That is a data mismatch rather than a playback failure.
Troubleshoot an empty or incorrect guide
No channels have listings
Verify that the XMLTV address returns XML rather than an account page, access-denied message or compressed download the source did not identify correctly. Check whether the URL expired and whether the provider expects the same credentials as the playlist.
Only some channels match
Compare the missing channel’s M3U tvg-id with channel IDs in the XMLTV source. A renamed, regional or HD variant may use a different identifier. Ask the guide source to correct the mapping rather than changing a private provider playlist through an unknown converter.
Programs appear at the wrong time
XMLTV timestamps should include their time-zone offset. Confirm the device clock and time zone are correct, then inspect whether the source itself provides an offset. A consistent one-hour shift around daylight-saving transitions usually points to source time-zone data.
The guide stops after a day or two
Many feeds publish only a rolling schedule. Refresh the provider data and verify the source is still updating. ChannelSurf cannot display future listings that the XMLTV file does not yet contain.
Live playback works while EPG loading fails
The playlist and guide are separate requests, so this is expected when only the XMLTV server is unavailable. Keep the working M3U profile, correct the guide URL, and refresh instead of recreating the whole account.
What makes a useful XMLTV feed
- Stable channel IDs that agree with the playlist’s
tvg-idvalues. - Explicit timestamp offsets and correctly handled daylight-saving changes.
- Regular updates with enough future schedule coverage for browsing and DVR scheduling.
- Clear program titles, descriptions, episode information and categories.
- A reliable HTTP or HTTPS endpoint that does not unexpectedly return an HTML login page.
ChannelSurf can clean and present guide data, but accuracy ultimately depends on the XMLTV source. For playlist setup itself, return to the M3U guide.