Short answer: an EPG URL is the web address of the XMLTV guide file your player app downloads, and for most provider accounts it's the playlist address with get.php swapped for xmltv.php and the same username and password. The catch is that a working URL doesn't guarantee a working guide: the IDs inside it must match your playlist, and adding several EPG URLs to fill gaps often creates duplicate or conflicting listings.
At a glance
EPG URLs at a glance
| Typical form | server:port/xmltv.php?username=...&password=... |
| Where to find it | Provider's welcome email, account page, or playlist header |
| File types | .xml or compressed .xml.gz |
| Several URLs? | Supported by many apps; use sparingly |
| Contains | Often your login, so keep it private |
Where to find your EPG URL
Before searching the web for guide addresses, check the places your provider has most likely already put one.
The welcome email or account page. Most providers list the playlist URL and the EPG URL together. Look for words like EPG, XMLTV or guide.
The playlist's first line. Many playlists name their guide in the header, like this: #EXTM3U url-tvg="http://tv.example.com:8080/xmltv.php?username=...&password=...". Some use x-tvg-url instead. Apps that read this load the guide automatically.
Built from the playlist URL. On the common provider server software, the guide lives on the same server and port as the playlist, with the same login: replace get.php and everything after the login details with xmltv.php?username=...&password=....
Automatic with Xtream logins. If you log in with server, username and password rather than a playlist URL, most apps fetch the guide themselves. You won't need to enter an EPG URL at all. See our Xtream Codes explainer.
What EPG URLs look like
| Form | Example | Notes |
|---|---|---|
| Provider (dynamic) | http://tv.example.com:8080/xmltv.php?username=jsmith&password=abc123 | Generated for your account; matches your playlist IDs |
| Static file | https://example.com/guide.xml | Same file for everyone |
| Compressed file | https://example.com/guide.xml.gz | Much smaller download; most apps read it directly |
| Local network | http://192.168.1.20/epg.xml | From your own media server or tuner software |
A provider's dynamic guide is almost always the best match for its own playlist, because the same system produces both. A static guide from elsewhere may use different channel IDs, so expect to match some channels by hand if you use one.
Adding the URL in common apps
TiviMate. Settings, then EPG, then Add EPG source, and paste the URL. You can add several and set an update interval. Our TiviMate setup guide covers the details.
IPTV Smarters and similar apps. When adding an M3U playlist, there's often a field for the EPG URL; otherwise look under Settings, then EPG. Xtream logins fetch it automatically.
Kodi (PVR IPTV Simple Client). In the add-on's settings, open the EPG section, choose Remote path, and paste the URL. Restart Kodi's PVR if the guide doesn't appear.
Enigma2. The EPG Import plugin reads XMLTV sources defined in small source files, which some converter plugins create automatically. Our Enigma2 IPTV guide explains how.
Plex, Jellyfin and Channels DVR. These accept an XMLTV URL alongside a tuner or M3U source when setting up live TV.
After adding the URL, give the app a few minutes to download and process the file before judging whether it worked.
Using more than one EPG URL
Some apps let you add several guide sources, which is useful when your provider's guide misses a few channels. It comes with trade-offs.
Priority matters. Where two sources list the same channel, the app picks one, usually the first in the list or the most recently added. Put your provider's guide first.
Duplicates slow things down. Every extra source adds download and processing time, and the benefits shrink quickly after the first.
Map the stragglers by hand. For a handful of missing channels, manually assigning a guide channel in the app is often cleaner than adding a whole new source.
Watch time zones. A guide built for another region may list the right programmes an hour or more out. Set a time shift for that source only, if the app allows.
Update intervals and file size
Once a day is enough. Guides normally cover several days ahead and change little between refreshes. Refreshing every hour slows the device and can get you rate-limited by the server.
Prefer .xml.gz. A compressed guide can be a fraction of the size of the plain file. If your provider offers both, choose the compressed one.
Trim the days. If the app lets you choose how many days to keep, three is plenty for most viewing and much lighter on cheap sticks.
Expect a delay after changes. When you change the EPG URL, some apps keep showing old data until the next scheduled refresh; trigger a manual update.
Testing an EPG URL
If the guide won't load, test the address directly.
Open it in a browser on a computer. A working URL downloads or displays an XML file starting with <?xml and containing <tv>, <channel> and <programme> entries.
Check the channel IDs. Search the file for a channel you watch and compare its id with the tvg-id in your playlist. If they differ, the URL works but won't fill that row.
Check dates. If the programme dates are in the past, the provider's guide isn't being updated.
| What you see | Meaning |
|---|---|
| XML with channels and programmes | URL works; any problem is matching or the app |
| Empty <tv> element | Login works but no guide data for your account |
| 401, 403 or login error | Credentials wrong or subscription expired |
| 404 | Wrong path; recheck the URL |
| Download never finishes | File very large or server slow; try the .gz version |
For the full troubleshooting routine, see our guide to an EPG that won't load, and our IPTV EPG explainer for how the XMLTV format works.
A guide for your own tuner or server
If you watch free over-the-air channels through your own network tuner or media server, you don't need a provider's guide at all, but you may still need an EPG URL.
Broadcast guide data. Channels received from an aerial carry basic now-and-next information, and some tuner apps show several days from it. Coverage and detail vary by broadcaster.
Schedules Direct in media servers. Jellyfin, MythTV, Kodi's Tvheadend setups and similar software can log in to Schedules Direct directly, or through a small tool that produces an XMLTV file. That file then becomes your EPG URL on the local network, for example on a home server's address.
Serving it to other apps. Once a server produces an XMLTV file, other player apps in the house can use the same address. A home server that refreshes the guide overnight means every device gets up-to-date listings without each one downloading from the internet.
Matching IDs yourself. Your own playlist's tvg-id values need to match the IDs in the guide file. Many server tools do this automatically; otherwise, copy the IDs from the guide into your playlist once, and they'll stay matched.
This route suits people who have already cut the cord for licensed free-to-air TV and want a guide as good as a cable box. Our guide to local channels without cable covers the tuner side.
Keep it private, and use legitimate sources
A provider's EPG URL usually contains your username and password, just like the playlist URL. Don't post it in forums or screenshots, and don't paste it into websites that promise to check or merge guides.
Guide data itself is normally the least controversial part of IPTV: listings for broadcast channels are widely published. For North American over-the-air channels, Schedules Direct sells listings for personal use with open-source software for US$35 a year. Lists of "free EPG URLs" shared online are often tied to unlicensed services and can disappear without notice.
Quick answers
What is an EPG URL? The web address of the XMLTV guide file your player downloads to fill its programme guide.
How do I find my EPG URL? Check your provider's welcome email or account page, or the url-tvg attribute in the first line of your playlist. On many provider systems it's the playlist URL with get.php replaced by xmltv.php.
Do I need an EPG URL with an Xtream login? Usually not. Most apps fetch the guide automatically when you log in with server, username and password.
Can I add more than one EPG URL? In many apps, yes. Put your provider's guide first, and add others only to fill specific gaps.
Why does my EPG URL work but the guide stays empty? The channel IDs in the guide don't match the tvg-id values in your playlist, or the app hasn't finished processing the file.
What's the difference between .xml and .xml.gz? The .gz version is compressed. It downloads much faster, and most player apps read it directly.
How often should the guide update? Once a day is enough for most people.
Provider URL formats, app menus and listings services change over time. Checked September 2026.