TL;DR: An M3U playlist is a single text file (or link) that lists streams one after another. Xtream Codes is a login (server, username, password) that lets the player ask the server for live channels, movies, series and the TV guide in separate, structured pieces. If your provider gives you both, Xtream is usually the better choice: it loads faster, carries cleaner movie and series data, and brings its guide automatically. M3U is the universal fallback that every player understands. A get.php link with a username and password in it is an Xtream account exported as M3U, and you can turn it into an Xtream login yourself.
What an M3U playlist is
M3U started as a simple playlist format for music players. IPTV uses an extended version (often called M3U8 or “M3U Plus”) where each stream gets an info line and a URL:
#EXTM3U x-tvg-url="http://example-provider.com/epg.xml.gz"
#EXTINF:-1 tvg-id="channel1.example" tvg-logo="http://example-provider.com/logo1.png" group-title="Group A",Example Channel 1
http://example-provider.com/live/USER/PASS/1001.ts
#EXTINF:-1 tvg-id="" tvg-logo="http://example-provider.com/poster.jpg" group-title="Movies",Example Movie (2024)
http://example-provider.com/movie/USER/PASS/2001.mkv
The attributes that matter:
tvg-idlinks the channel to its entry in the TV guide.tvg-nameandtvg-logogive a display name and a logo.group-titleputs the entry into a category.- The header can name the guide with
x-tvg-urlorurl-tvg.
Everything is in one file. A player downloads it from top to bottom and has to work out for itself which lines are live channels, which are movies and which are episodes.
An M3U playlist can come from anywhere: an IPTV provider, a home media server, a TV tuner on your network, or a file you wrote yourself.
What Xtream Codes is
Xtream Codes began as server software for IPTV providers. The software itself is long gone, but its API became a de facto standard that many provider panels still offer. To the user it looks like a login:
- Server:
http://example-provider.com:8080 - Username:
YOUR_USER - Password:
YOUR_PASS
With these, the player calls the server’s player_api.php and asks for specific lists: live categories, live streams, movie categories, movies, series, and the details of a series (seasons and episodes). The guide comes from xmltv.php on the same server.
Because each request returns structured data, the player does not have to guess. A movie arrives as a movie, with fields such as year, rating and poster. A series arrives as a series, and its episodes are fetched when you open it.
What each one gives you
| M3U link | Xtream Codes login | |
|---|---|---|
| Live channels | Yes | Yes |
| Categories | From group-title | Separate lists for live, movies and series |
| Movies | Mixed in with everything else | Their own list, often with year and rating |
| Series | Usually one entry per episode | Series, then seasons, then episodes |
| TV guide | Only if the header has a guide URL, or you add one | xmltv.php from the same server |
| Guide matching | tvg-id per channel | epg_channel_id per channel |
| Download size | One large file, all at once | Several smaller requests |
| Works with any source | Yes | Only with Xtream-compatible servers |
EPG
With M3U, the guide depends on the playlist author. If the header has no guide URL, you must add one by hand. With Xtream, the guide URL is built from your login, so the player can find it automatically, as long as the provider has a guide enabled. Either way, matching depends on IDs; see IPTV EPG not showing? for the details.
Movies and series
This is where Xtream is clearly ahead. An M3U file for a large movie and series library is a long flat list, often with each episode as its own line. Players have to group episodes using titles and URL patterns, which works most of the time but not always. Xtream tells the player directly what is a series and what its seasons and episodes are.
Speed and size
A big M3U playlist has to be downloaded and read in full every time it refreshes. Xtream lets the player fetch lists separately and fetch series details only when you open a series. On devices with little storage, such as the Chromecast with Google TV, choosing only the categories you need helps with either format.
Security of your credentials
Neither format is secure by design, and it helps to know why.
- Both carry your login. A provider M3U link like
get.php?username=...&password=...contains your username and password in plain sight. Xtream stream URLs usually do too:/live/USER/PASS/1001.ts. - Many servers use plain HTTP. Without HTTPS, anyone who can watch your network traffic can read the login. Use HTTPS if your provider supports it.
- Anyone with the link can use your account. Do not post your link or a photo of the setup screen in forums or chats. If you have shared it, ask your provider to change the password.
- Typing on the TV is visible. On-screen keyboards show each character. A masked password field and phone-based entry reduce what is shown on the big screen.
How IPFlix handles this: the Xtream password field is masked with a show/hide button, and QR setup lets you type the playlist on your phone instead of the TV. The app’s analytics never include playlist URLs, credentials or what you watch. You can remove everything under Settings → Delete My Data, or through the web form at ipflixpro.com/delete-data.
How to identify and convert get.php links
Many providers hand out a link that looks like this:
http://example-provider.com:8080/get.php?username=YOUR_USER&password=YOUR_PASS&type=m3u_plus&output=ts
That is an Xtream account exported as an M3U playlist. You can read the Xtream login straight out of it:
- Server: everything before
/get.php, including the port:http://example-provider.com:8080 - Username: the value after
username=:YOUR_USER - Password: the value after
password=:YOUR_PASS
Enter those three in the player’s Xtream form and you get structured movies, series and the server’s guide.
It also works the other way. If you only have an Xtream login and need an M3U link for a player that only reads M3U, most servers accept:
http://SERVER:PORT/get.php?username=YOUR_USER&password=YOUR_PASS&type=m3u_plus&output=ts
type=m3u_plus asks for the extended format with logos and groups. output=ts or output=m3u8 chooses the stream format. Not every server supports every option, so if one does not work, try the other output value or ask the provider.
If the link has no username= and password= in it, for example a short link or a file on a web host, it is a plain M3U playlist and cannot be converted.
What IPFlix does with get.php links
When you paste a link that contains a username and password into IPFlix, it checks whether the same server also answers the Xtream API. If it does, IPFlix imports the playlist as an Xtream login so you get the structured movie and series data. If not, it imports the link as an M3U playlist.
Which should you use?
- Use Xtream when your provider offers it. You get separate movie and series libraries, episodes grouped by season, and the guide found automatically.
- Use M3U when Xtream is not available, when the playlist comes from something other than an IPTV provider (a home server or a network tuner), or when you want to edit the list yourself.
- If a movie library looks messy in M3U, switch to the Xtream login from the same account.
- If an Xtream login fails with “invalid details” on a new device, check for spaces, the
http://prefix and the port, and remember that many accounts allow only a limited number of devices at the same time.
IPFlix Pro Player accepts both: an M3U or M3U8 link, or an Xtream Codes login. It does not provide any content; it plays the playlist you already have. In IPFlix, movies and series get TMDB posters, backdrops, year and rating, and series show seasons and episodes.
To try it: Install IPFlix Pro Player from Google Play.
Setup guides by device
- Add an M3U playlist on Google TV Streamer
- onn 4K Pro IPTV setup with M3U or Xtream
- Add an M3U playlist on Chromecast with Google TV
- Leaving Fire TV? Move your IPTV playlist to Google TV
Also useful: IPTV subtitles not working on Android TV and TiviMate alternative for Google TV: an honest comparison.
FAQ
Is M3U8 different from M3U?
For IPTV playlists, M3U8 normally means the same format saved as UTF-8 text. The name M3U8 is also used for HLS stream manifests, which are a different thing: a single stream’s segment list rather than a channel list.
Is Xtream Codes still around?
The original Xtream Codes server software was shut down years ago. Its API lives on in other provider panels, and players still call it “Xtream Codes” or “Xtream API”.
Can I use the same account as M3U and Xtream at once?
It is the same account, so the provider’s device or connection limit applies to both. Using it in two players at the same time counts as two connections.
Why does my M3U playlist show every episode as a separate item?
Flat M3U files list each episode as its own line. Players try to group them, but the Xtream login from the same account gives proper series, seasons and episodes.
Which format loads faster?
Usually Xtream, because the player can fetch lists separately and load series details only when needed. A large M3U file has to be downloaded and read in full.
Is it safe to share my M3U link?
No. The link usually contains your username and password, and anyone with it can use your account.
Last checked: October 2026, IPFlix 1.9.2
Written by
IPFlix Team
Development Team
The team behind IPFlix Pro Player, a media player for Android TV and Google TV. We build and test it with real playlists of 180,000+ channels, on Chromecast with Google TV, onn and the Google TV emulator, and write these guides from what we see in the code and on those devices.
IPFlix Pro Player is a media player only. It does not provide or host any content. Users must provide their own playlists.
Get IPFlix Pro Player