Your provider sent you a server address, a username and a password instead of a playlist link. Here is what Xtream Codes actually is, how it differs from M3U, and which one you should be using.

If you have set up IPTV before, you know the drill: paste a long link into your player, wait a moment, done.
Then a provider hands you three separate things instead of one link, and your app asks for something called an Xtream Codes API login.
Nothing has gone wrong - it is simply a different way of delivering the same channels.
This page explains what that login is, when it beats a plain playlist, and how to turn one into the other when your player refuses to cooperate.
An M3U is a file. Xtream Codes is a login. With M3U you get one link pointing at a text file that lists every channel, and with Xtream Codes you get a server address, a username and a password so your app can talk to the server directly.
Same channels, usually the same provider, completely different plumbing.
What Xtream Codes Actually Is
Xtream Codes started life as panel software, the control panel IPTV providers used to manage their servers, channels and customer accounts. The original company was shut down by European authorities in 2019.
The name survived anyway. Forks and clones of that panel kept using the same set of web addresses to talk to apps, and those addresses quietly became an unofficial standard.
So today it does not mean a company or a product you can buy. It means the API format, the agreed way an IPTV app asks a server "who am I, and what can I watch?"
That is why your app has a login screen labelled Xtream Codes API, or just XC. It is not asking you to install anything, it is asking which server to phone up.
What Your Provider Actually Gives You
An Xtream login is always the same three pieces.
- Server URL - something like
http://example-server.com:8080. The number after the colon is the port, and it matters more than anything else on this page. - Username - usually a random string rather than an email address.
- Password - same again, and usually just as random.
An M3U setup, by contrast, is one line: a single URL ending in .m3u, .m3u8, or a long get.php address.
If you want the full breakdown of what sits inside one of those files, we wrote a separate plain-English guide on what an M3U file is and how to open it.
M3U vs Xtream Codes: What Is Actually Different
The streams are identical. What changes is how your app fetches them, and how much it knows about your account.
| M3U playlist | Xtream Codes login | |
|---|---|---|
| What you enter | One URL | Server, username and password |
| How it loads | Downloads the whole list at once | Asks the server only for what you open |
| Big playlists | Can take a minute, can freeze weaker devices | Loads categories on demand, stays snappy |
| Movies and series | Usually just more "channels" in the list | Proper sections with posters, plots and seasons |
| TV guide (EPG) | Separate XMLTV link you add yourself | Comes down through the same login |
| Account info | None | Shows expiry date and how many devices you get |
| Works everywhere | Almost any player | Only apps that support the API |
| Easy to share or edit | Yes, it is a text file | No |
The pattern is simple. M3U is dumber but universal, Xtream is smarter but pickier about which app you use.
The Addresses Hiding Behind the Login
You never need to type these by hand, but seeing them makes the whole thing click. They also explain most of the error messages further down this page.
When you enter your three details, the app quietly builds addresses like these.
- The account check:
http://server:port/player_api.php?username=USER&password=PASS - The full playlist as M3U:
http://server:port/get.php?username=USER&password=PASS&type=m3u_plus&output=ts - A live channel:
http://server:port/live/USER/PASS/12345.ts - A movie:
http://server:port/movie/USER/PASS/12345.mp4 - The TV guide:
http://server:port/xmltv.php?username=USER&password=PASS
Look at the second one. That is the important bit.
Turning an Xtream Login Into an M3U
Because get.php exists, any working Xtream login can be turned into a plain M3U link.
That is genuinely useful when your player does not speak the API. VLC, most smart TV browsers, older set-top boxes, car head units, anything stubborn.
You can do it in your browser with our Xtream Codes to M3U converter. Paste in the server, username and password, pick ts or m3u8 as the output format, and you get a normal playlist file back.
The output format matters less than people think. Pick ts for VLC, Kodi and most TV boxes, or m3u8 for browsers and iPhones.
Going the other way does not work. An M3U is just a list of finished stream links, so there is no account sitting behind it to log into.
One exception. If your M3U link itself contains get.php?username= followed by a password, it came from an Xtream panel and your credentials are hiding in plain sight. The server is everything before /get.php, and the username and password are right there in the text.
Check it before you watch it. Once you have a converted playlist, drop it into the M3U Checker, which tests every stream and marks each one Online, Reachable, Timeout or Offline.
Export the working ones and you have a lean playlist with the dead weight stripped out. It runs entirely in your browser, so your playlist never leaves your device.
Your Password Travels Inside the Link
Look again at those addresses. Your username and password sit in plain text inside every single one of them.
That is simply how the format works and there is nothing to fix. It does have one consequence worth knowing about.
Anyone who gets hold of your playlist link, or a clear screenshot of your app, has your whole account rather than just a copy of the channel list. That is why providers cut people off for sharing.
Keep your playlist URL out of forums, chat groups and support threads, and blur the address bar in screenshots. Treat the link exactly like a password, because it contains one.
Which Should You Use?
Use Xtream Codes if your app supports it. It is faster on big lists, the movie and series sections are far nicer to browse, and the TV guide simply appears.
You also get to see when your account expires, instead of guessing why everything stopped working.
Two apps cover most people. TiviMate is the usual pick for Android TV, Google TV and Fire TV, because it handles Xtream logins natively and is built for a remote control rather than a touchscreen.
IPTV Smarters Pro is the one to grab for Android phones, tablets and boxes. Same Xtream login screen, laid out for a touchscreen instead of a remote.
Use M3U if you want it to just work anywhere. VLC, Kodi, browsers, old hardware, that TV in the spare room.
No app is going to refuse an M3U. It is also the only sensible format for free, public, legal playlists, which brings us to the awkward part.
About "Free Xtream Codes"
This is worth being blunt about, because a lot of pages are not.
Searches for free Xtream codes lead to lists of server addresses with usernames and passwords attached. Those are almost always someone else's paid account, scraped or resold.
This is exactly why those lists exist at all. The credentials sit in plain text in every link, so one careless paste is all it takes for an account to end up on a public list.
- They die fast. Providers spot shared logins within hours, sometimes minutes.
- They are not free in the legal sense. Using a stranger's subscription credentials is not the same thing as watching a channel a broadcaster puts online for everyone.
- The sites hosting them are risky. They are a common route for fake "player" downloads that turn out not to be players.
Free and legal IPTV works differently. Free-to-air and public channels are published as plain M3U links, openly, by projects that list streams the broadcaster already puts online at no charge.
No login, nothing to steal, nothing to expire. We keep a maintained roundup of those sources in our guide to free popular IPTV playlists and where to get fresh legal M3U links.
So the honest summary: Xtream Codes is a format used mostly by paid providers. If you are looking for free channels, M3U is where you will actually find them.
When the Xtream Login Will Not Work
Almost every Xtream error is one of five things, and the first accounts for most of them.
- "Login incorrect" or "Invalid credentials" - nine times out of ten the port is missing. Copy the address exactly as your provider sent it, colon and number included.
- Extra bits on the end - enter only the server and port. No trailing slash, no
/c, no/player_api.php, because the app adds those itself. - http versus https - if one fails, try the other. Some servers only answer on one of the two, and no error message will tell you which.
- "Max connections reached" - Xtream accounts allow a set number of devices at once. If your phone is still streaming in your pocket, that counts as one of them.
- Worked yesterday, dead today - open your app's account info screen, because Xtream logins show an expiry date. This is a real advantage over M3U, where an expired account just looks like a mysteriously dead playlist.
- Channels play but the TV guide is empty - some providers still serve the guide on a separate XMLTV link even when you log in with Xtream. Look for an
xmltv.phpaddress on your account page and add it in your app's EPG settings.
If the login itself is fine but individual channels fail, the problem is the streams rather than the format.
Convert the account to M3U, run it through the M3U Checker, and you will see in seconds whether it is one dead channel or the whole list.
Who Should Look Elsewhere
If your provider only ever sent you a single link ending in .m3u or .m3u8, there is no Xtream login to find and nothing on this page changes your setup.
The tell is simple: no port number, no separate username field. Read our M3U file explainer instead, and carry on as you were.
Quick questions
Is Xtream Codes an app I need to install?
No. It is a login format, and the app you already have either supports it or does not.
Is Xtream Codes better quality than M3U?
No. They carry identical streams from the same server, and only the browsing experience differs.
Can I use one Xtream login on two TVs?
Only if your provider allows more than one connection at a time. The account info screen in your app tells you the number.
Can I turn my M3U back into an Xtream login?
Only if the M3U link itself contains a username and password in the address. Otherwise there is no account behind it to recover.
Does VLC support Xtream Codes?
No. Convert the login to M3U with our Xtream Codes to M3U converter first, then open the playlist in VLC.
Why does my provider give me both?
Because the Xtream login is nicer on apps that support it, and the M3U link is the fallback for everything else. Use whichever your player accepts.
Free Popular IPTV Playlist: Where to Get Fres...
5/5Hey rei, That message is VLC's way of saying it went to the address and found nothing there. MRL ...
Read More →How to Use Helium Audio Converter: Convert An...
5/5@levi Yes, it works offline, it's a desktop software.
Read More →Meet Qwant: The Private, EU-Built Alternative...
4/5I didn't know it was EU, AND france. That doesn't sound like a good idea. Related to coding or ...
Read More →