By Shamir
Xtream Codes to M3U: How the Conversion Actually Works (2026)
Search for "convert Xtream Codes to M3U" and you get a pile of websites offering to do it for you, usually asking for your username and password first.
You do not need any of them. There is nothing to convert. An Xtream login and an M3U playlist are two different doors into the same server, and turning one into the other is a URL pattern you can type yourself in about ten seconds.
Here is the pattern, why it works, and when you should actually use each door.
The Two Doors
When you get access to a source in Xtream form, you receive three things: a server address, a username, and a password.
That server speaks two protocols at once:
| Door | What the player sends | What comes back |
|---|---|---|
| Xtream API | Structured requests for categories, streams, guide data, on-demand items | JSON the player turns into a browsable library |
| M3U output | One request for a playlist | A generated text playlist of every entry your account can reach |
Same server, same account, same content. The M3U is not a separate thing the provider maintains — the server builds it on demand from the same database the API reads. That is why "conversion" is the wrong word. You are asking the same server to answer in a different format.
(If you are not sure which format you even have, start here.)
The URL Pattern
Given a server, username and password, the M3U output lives at:
http://SERVER:PORT/get.php?username=USER&password=PASS&type=m3u_plus&output=ts
Substitute your own values and that is your playlist URL. Nothing else is required.
The two parameters at the end are the ones worth understanding:
type=
m3u_plus— includes the extended metadata: display names, logos, group titles, guide IDs. This is the one you want.m3u— bare entries, no metadata. You get a flat list of nameless items. Almost never useful.
output=
ts— raw MPEG-TS streams. Broadest compatibility; works with essentially every player. (What a .ts stream actually is.)m3u8— HLS. Better behaved on flaky connections because it is segmented, and generally the friendlier option on mobile.hls— an alias for the same idea on some server builds.
If a playlist loads but nothing plays, swapping output=ts for output=m3u8 is the single highest-yield thing to try. Some servers only transcode for one of the two, and some devices strongly prefer HLS.
The Guide URL Too
The same trick works for the schedule data. The guide feed lives at:
http://SERVER:PORT/xmltv.php?username=USER&password=PASS
That returns XMLTV, which is what any player wants for a programme guide. Because the provider generates both from the same database, the guide IDs in this file already match the tvg-id values in the m3u_plus playlist — which is the hard part of guide setup, solved for free. (Why guide matching is usually the painful bit.)
Why You Should Not Use a Conversion Website
Look at that URL again. It contains your username and password in plain text.
Any website offering to "convert" for you is asking you to hand over working credentials to a stranger, in exchange for performing a string substitution you could have done in Notepad. There is no computation happening that justifies the trust.
Concretely, whoever runs that site can:
- Use your account themselves, which on a connection-limited source means you get kicked off.
- Sell or leak the credentials.
- Keep them long after you have forgotten the site existed.
The same reasoning applies to any "playlist checker" or "M3U tester" that wants credentials. Build the URL yourself. It is a copy-paste and a find-replace.
If you have already used one, change your password at the source if your provider lets you.
Which Door Should You Actually Use?
Having established that you can get an M3U from an Xtream login, here is the part most guides skip: you often should not.
Adding the source as Xtream, where your player supports it, is usually better:
| Xtream API | Generated M3U | |
|---|---|---|
| Live entries | Yes | Yes |
| On-demand movies and series | Yes, as a proper browsable library with metadata | Flattened into the list, or missing entirely |
| Series seasons and episodes | Structured | Not represented |
| Guide data | Fetched through the API automatically | Needs the separate XMLTV URL added by hand |
| Catch-up / timeshift | Exposed by the API where the provider supports it | Depends on per-entry attributes being present |
| Account info (expiry, connections) | Visible | Not available |
| Portability to any player | Narrower — the player must speak Xtream | Universal. Every player reads M3U. |
| Credentials in the URL | Held as fields | Embedded in the address itself |
The short version: use Xtream if your player supports it, and use the M3U output when it does not.
The common reason to want the M3U form is a player, a TV app or a device that only accepts a playlist URL. That is a completely legitimate need, and the URL pattern above is how you meet it. (Movies and series specifically depend on this choice.)
In Tuneline, both doors are first-class: add the source as Xtream with server, username and password, or paste an M3U URL. Same app, and you can keep both.
Going the Other Direction
People also search for converting an M3U link into an Xtream login. That one does not work, and it is worth saying why.
An M3U URL is output. An Xtream login is input. You can generate a playlist from credentials because the server offers that endpoint, but you cannot reconstruct a working API login from a list of stream addresses — the playlist simply does not contain the account structure.
The one exception is when the playlist you were given is itself a get.php URL. In that case the credentials are already sitting in the query string, and you can read your own server, username and password straight out of the address you were handed. That is not a conversion, it is just reading the URL. It also demonstrates, uncomfortably, how little protection there is around these links.
Troubleshooting
| Symptom | Likely cause |
|---|---|
| Playlist downloads but is empty or a single error line | Wrong username/password, or the account has expired. Load the URL in a browser and read the text. |
| Entries appear but nothing plays | Try output=m3u8 instead of output=ts. |
| Names are missing, everything is a number | You used type=m3u instead of type=m3u_plus. |
| Works on one device, "max connections" on the next | The account limits simultaneous connections. Each device counts. How connection limits work. |
| Playlist loads, guide is blank | You have not added the xmltv.php URL, or the two disagree on IDs. |
| Nothing at all, on any URL shape | Confirm the port. Xtream servers frequently run on a non-standard port, and omitting it silently fails. |
A worthwhile habit: paste the get.php URL into a browser first. You will see either a text playlist or a plain error message, and that tells you instantly whether the problem is the credentials or the player.
The Bottom Line
- Xtream and M3U are two doors into the same server. There is no conversion.
- The playlist is at
get.php?username=…&password=…&type=m3u_plus&output=ts. - The guide is at
xmltv.php?username=…&password=…. - Never hand credentials to a conversion website. You are paying trust for a find-replace.
- Prefer the Xtream door where your player supports it — you keep on-demand libraries, guide data and account info.
- The URL contains your password. Treat it as a secret and never post it.
Want a player that speaks both doors? Download Tuneline — add your source as Xtream or as an M3U URL, free, with no bundled content.
Share this article
Get Tuneline free
A clean, no-account media player for macOS, Windows, Linux, Android, TV, and iOS. Bring your own playlist.
Download freeRelated articles
- Ethernet vs Wi-Fi for 4K Streams: What Actually Matters (2026)
- Linux Video Playback in 2026: Wayland, VA-API and HDR
- Streamflation 2026: What Streaming Really Costs Now
- What Is a Stream URL, and How Do You Check Yours? (2026)
- What Is a .TS File, and Why Your Streams Are Made of Them
Read this article in another language
- EnglishXtream Codes to M3U: How the Conversion Actually Works (2026)
- FrançaisXtream Codes vers M3U : comment fonctionne réellement la conversion (2026)
- AfrikaansXtream Codes na M3U: Hoe die omskakeling werklik werk (2026)
- العربيةXtream Codes إلى M3U: كيف تتم عملية التحويل فعليًا (2026)
- বাংলাXtream Codes থেকে M3U: রূপান্তর আসলে যেভাবে কাজ করে (২০২৬)
- ČeštinaXtream Codes na M3U: Jak převod skutečně funguje (2026)
- DanskXtream Codes til M3U: Sådan fungerer konverteringen faktisk (2026)
- DeutschXtream Codes zu M3U: So funktioniert die Umwandlung wirklich (2026)
- ΕλληνικάXtream Codes σε M3U: Πώς λειτουργεί πραγματικά η μετατροπή (2026)
- EspañolXtream Codes a M3U: cómo funciona realmente la conversión (2026)
- Español (Latinoamérica)Xtream Codes a M3U: Cómo funciona realmente la conversión (2026)
- فارسیXtream Codes تا M3U: تبدیل واقعاً چگونه انجام میشود (۲۰۲۶)
- SuomiXtream Codes–M3U: Miten muunnos todella toimii (2026)
- हिन्दीXtream Codes से M3U: कन्वर्ज़न वास्तव में कैसे काम करता है (2026)
- MagyarXtream Codes–M3U: Hogyan működik valójában az átalakítás (2026)
- ItalianoDa Xtream Codes a M3U: come funziona davvero la conversione (2026)
- 한국어Xtream Codes에서 M3U로: 변환이 실제로 작동하는 방식 (2026)
- Bahasa MelayuXtream Codes kepada M3U: Cara Penukaran Sebenarnya Berfungsi (2026)
- NederlandsXtream Codes naar M3U: Zo werkt de conversie echt (2026)
- NorskXtream Codes til M3U: Slik fungerer konverteringen egentlig (2026)
- PolskiXtream Codes do M3U: Jak naprawdę działa konwersja (2026)
- PortuguêsXtream Codes para M3U: como a conversão realmente funciona (2026)
- RomânăXtream Codes la M3U: Cum funcționează de fapt conversia (2026)
- РусскийXtream Codes и M3U: как на самом деле работает преобразование (2026)
- СрпскиXtream Codes u M3U: Kako konverzija zapravo funkcioniše (2026)
- SvenskaXtream Codes till M3U: Så fungerar konverteringen egentligen (2026)
- TagalogXtream Codes hanggang M3U: Paano Talagang Gumagana ang Conversion (2026)
- TürkçeXtream Codes ile M3U: Dönüşüm Aslında Nasıl Çalışıyor (2026)
- Tiếng ViệtXtream Codes sang M3U: Cách chuyển đổi thực sự hoạt động (2026)
Tuneline is a media player application. It does not provide, host, or distribute any content. You bring your own playlist, exactly as you would with VLC.