M3U or Xtream Codes: which one should you use?
An M3U playlist is a file of channel names and stream URLs. Xtream Codes is an API your provider runs, so the app can ask it for categories, series and guide data. If your provider offers both, use Xtream.
M3U and Xtream Codes are two ways to load the same subscription into an IPTV player. An M3U playlist is a file: channel names and stream URLs, nothing more. Xtream Codes is an API your provider runs, so the app can ask it for categories, series and guide data. If your provider offers both, use Xtream.
Here is what each one actually gives the app, and why it changes what you see on screen.
What an M3U playlist is
An M3U playlist is a text file. Each entry is a channel name and a URL. Extended playlists add attributes on the #EXTINF line: tvg-id for guide matching, group-title for grouping, and catch-up tags such as catchup-source and catchup-days.
The app downloads that file and reads it. Whatever the provider wrote in is what you get. Guide data is not in it, so you add an XMLTV URL separately and we match the playlist tvg-id to the XMLTV channel id.
What Xtream Codes adds
With Xtream you enter a server URL, a username and a password. The app then calls the panel’s player API and gets back a structured catalogue instead of a flat list: live categories, movies with metadata, and series broken into seasons and episodes.
The account is readable too. The panel reports expiry, how many simultaneous connections you are allowed, and which stream formats it will actually serve.
| M3U | Xtream Codes | |
|---|---|---|
| What you enter | One playlist URL | Server URL, username, password |
| Channel list | Flat, as written in the file | Categories from the panel |
| Movies and series | Whatever is in the file | Series with seasons and episodes |
| Guide data | Separate XMLTV URL | Same credentials |
| Catch-up | Tags on the playlist line | Timeshift endpoint |
| Account detail | None | Expiry, connections, formats |
Why Xtream panels disagree with each other
Xtream is a convention, not a standard, and panels differ. The same field arrives as a string on one server and a number on another. Dates are Unix second strings in one place and date-like strings in another. Guide titles and descriptions often come back Base64-encoded. Some panels return an object keyed "0" and "1" where an array belongs, or send an empty season list while the episodes sit keyed underneath it.
We normalise all of that into one fixed shape before the interface ever sees it. A panel quirk becomes a failing test for us rather than an empty screen for you.
Which to choose
- Your provider gives you both. Use Xtream. Better organised, real series navigation, guide data on the same credentials.
- Your provider gives you only an M3U URL. Use it, and ask them for the XMLTV URL as well.
- Either way, add the guide URL. Without guide data the grid has nothing to show.
Both formats work in the free tier, along with live playback and the full guide. Multiple playlists, catch-up, scheduled recordings and offline downloads require Boost.
Frequently asked questions
- What is the difference between M3U and Xtream Codes?
- An M3U playlist is a static file. It lists channel names and stream URLs, and the player reads it top to bottom. Xtream Codes is an HTTP API the provider runs, so the player can request categories, movies, series and guide data as structured responses instead of one flat list.
- Is Xtream Codes better than M3U?
- For most people, yes. You get categories from the panel, series split into seasons and episodes, and guide data on the same credentials. An M3U playlist gives you exactly what the provider wrote into the file and nothing more.
- Do I still need a separate EPG URL with Xtream Codes?
- Usually not. Xtream panels publish guide data at xmltv.php using the same username and password, so the app can fetch it without a second URL. With a plain M3U playlist you do need to add the XMLTV URL yourself, otherwise the guide stays empty.
- Can I add both an M3U and an Xtream playlist?
- Yes. Jetpack IPTV supports both formats and you can keep more than one playlist in the app at the same time. Adding a single playlist is free. Multiple playlists require Boost.