In short
- Xtream Codes is an API: the app talks to the provider's server and gets structured channels, guide, movies and series. When you have the choice, take it.
- M3U is a file: a list of streams, nothing else. It works everywhere, but the guide comes from elsewhere and series are flat.
- Both give the same streams. What changes is everything around them: the guide, the detail pages, the seasons, how fresh the catalog is.
On this page
When you receive an IPTV subscription, the provider gives you a way to access it. Sometimes it is a long .m3u URL, sometimes three fields to fill in, address, username, password, sometimes both. They are two doors to the same content, but they do not open onto the same experience. This guide explains what each contains, and what it changes once inside the app.
What an M3U playlist is
An M3U is a text file. Each channel takes two lines: a description line, with the name, logo, group and sometimes a guide identifier, then the stream URL. That is all. A 5,000-channel file is a few megabytes, and the app downloads the whole thing at every refresh.
#EXTINF:-1 tvg-id="bbcone.uk" tvg-logo="https://…/bbc1.png" group-title="UK",BBC One
http://server:8080/live/username/password/123.ts
This format has one merit: it is universal. Every video player of the last twenty years can read it. And one limit: it contains streams only. No program guide, no movie details, no season structure. Anything that is not a stream has to come from elsewhere, or be guessed from the name.
What Xtream Codes is
Xtream Codes is not a file, it is an API: a way for the app to ask the provider's server questions. "What are the categories?" "Which channels are in this one?" "What is on this channel tonight?" "Which episodes are in season 2 of this series?" Each answer is structured, and the app only asks for what it needs, when it needs it.
You enter three details: the server address, a username, a password. The app handles the rest. The name comes from server software that set this format years ago; many providers now use compatible software, and the name stuck to designate the API.
What it changes in the app
| M3U | Xtream Codes | |
|---|---|---|
| Live channels | Yes | Yes |
| Program guide | Not in IPTV Guard (needs an XMLTV feed on the side) | Served by the server, channel by channel |
| Movies | A flat list, grouped by name | Categories, detail pages, runtime, year |
| Series | Loose episodes, seasons guessed | Structured seasons and episodes |
| Subscription info | None | Expiry, number of connections, status |
| Refresh | The whole file, every time | On demand, per category |
| Provider address change | Whole new URL | Only the server address changes |
The guide. This is the difference you will see first. With Xtream Codes, the guide comes from the same server as the channels, and it is aligned with them. With an M3U, the guide would have to come from a separate XMLTV feed, which not every provider gives and which must use the same channel identifiers as the playlist; IPTV Guard does not read those feeds today, so an M3U plays its channels without a guide. The empty guide guide covers the rest.
Series. With Xtream Codes, a series is a series: seasons, numbered episodes, a "next episode" that makes sense. With an M3U, each episode is an entry like any other, and the app has to rebuild the structure by reading names, "S02E05" and its variants. It often works, not always.
The subscription. Xtream Codes reports the expiry date and the number of connections allowed. That is what lets a checker tell you where you stand, and an app warn you before the end. An M3U says nothing.
Which one to enter
If your provider gives both, enter Xtream Codes. The streams are identical, and you gain everything else. Keep the M3U URL as a backup, or for a device whose player does not know Xtream.
If you only have an M3U URL, look at it closely. Many look like this:
http://server:8080/get.php?username=abc&password=xyz&type=m3u_plus&output=ts
This shape is the signature of an Xtream Codes server generating an M3U on demand. The three details are in there: the server address (http://server:8080), the username (abc), the password (xyz). You can enter them directly as an Xtream access, and get the guide and series the M3U URL was not giving you. The checker does this reading on its own: paste the M3U URL, and if there is an Xtream server behind it, it shows the expiry and the number of connections as for an Xtream access.
If your M3U does not have this shape, it is a real file, hosted somewhere, with no Xtream server behind it. In that case the M3U is your only option, and you watch the channels without a guide.
What does not change
The video. In both cases, a channel's stream is the same file, served by the same server, at the same bitrate. Neither the access format nor the app makes a stream smoother than what the provider sends. If it stutters, the issue is elsewhere.
What a good player does with each
With Xtream Codes, it should load the guide in the background without blocking navigation, cache what it already asked for, and complete detail pages with a movie database for posters and synopses when the provider gives none.
With an M3U, it should recognize series episodes behind the names, group movies by category, and handle a multi-megabyte file without freezing the interface. And when a provider blocks the Xtream API but lets the M3U through, it should notice and take the other path without asking you to understand why. That is what IPTV Guard does: the format you have should not decide what you see.
In IPTV Guard
IPTV Guard accepts both, and does the most with each. With Xtream Codes, the app gets guide, detail pages and seasons from the server, and fills in with TMDB for posters and synopses. With an M3U, it rebuilds movies and series from the names. And if a provider blocks the Xtream API while letting the M3U through, the app switches to that path on its own so the playlist still loads.
Frequently asked questions
My provider gives me both. Which one do I enter?
Xtream Codes. You keep the same channels and gain the guide, series seasons and a catalog that updates on its own. The M3U stays useful as a backup, or for a player that only knows that format.
I only have an M3U URL. Am I missing something?
Look at the URL: if it contains get.php?username=…&password=…, your provider actually runs an Xtream Codes server. The server address, username and password are in the URL. You can enter it as Xtream.
M3U or M3U8, same thing?
For a playlist, yes: m3u8 just means the file is UTF-8 encoded. The format is the same. A single .m3u8 link, however, is often an HLS stream, not a playlist: it is one channel, not a list.
Is one of the two smoother?
No. The video goes through the same streams in both cases. Smoothness depends on the provider, the network and the player, not on the access format.
Is Xtream Codes a provider?
No, it is the name of server software that became a de facto standard. Many providers use it or compatible software. The name refers to the access format, not a company.
