Free tool · runs in your browser
Xtream Codes to M3U Converter and URL Builder
To convert Xtream Codes to M3U, put your server, username and password into this address:
http://SERVER:PORT/get.php?
The guide (EPG) is at xmltv.php and the account API at player_api.php, on the same server with the same login.
The builder below writes the links for you, and also works the other way: paste an M3U link or your source's message to get the Xtream login back.
Build URLs from an Xtream login
- M3U playlist
- XMLTV guide (EPG)
- Player API
Get the login from a link or message
- Server
- Port
- Username
- Password
Private by design. Everything above is processed on your device and nothing is saved. The tool never sends what you type, and the page's security policy blocks every connection except anonymous usage statistics.
What an Xtream Codes M3U URL is made of
Every part of the address has a job. Knowing them makes it easy to spot why a link does not load.
| Part | Example | What it does |
|---|---|---|
| Scheme | http:// | http or https. Use what your source gave you; most panels use http. |
| Server and port | host.example:8080 | Where the panel runs. Without a port, http uses 80 and https uses 443. |
| Endpoint | /get.php | Returns the playlist. xmltv.php returns the guide and player_api.php the account API. |
| Username and password | username=…&password=… | Your login. Characters such as &, + or @ must be URL-encoded, which the builder does for you. |
| Playlist type | type=m3u_plus | m3u_plus adds channel logos, groups and guide IDs to each entry. type=m3u gives names only. |
| Stream format | output=ts | ts for MPEG transport streams, m3u8 for HLS. Some panels use output=hls instead. |
Xtream Codes or M3U: which should you use?
Both give a player the same channels. The difference is how the player gets them.
| Xtream Codes login | M3U playlist URL | |
|---|---|---|
| What you enter | Server, username and password in three fields | One long URL |
| How the app loads it | Asks the API for categories and streams as needed | Downloads the whole list in one file |
| Films and series | Usually separate sections with posters and episodes | Mixed into the playlist as entries |
| Guide (EPG) | Usually found automatically | Often needs the XMLTV link added separately |
| Account details | Expiry and connection limits available from the API | Not included |
| Large lists | Loads in parts, so it is usually faster | Big files can be slow to load on TV devices |
If your IPTV player supports Xtream Codes, the login is usually the better choice. Use the M3U link for apps and devices that only accept a playlist URL, or when you want to edit the playlist.
What the Xtream Codes API (player_api.php) returns
player_api.php is the address Xtream Codes players talk to. Opened with only the username and password, it usually answers with two blocks of account information. Adding an action parameter asks for content instead.
| Request | What comes back |
|---|---|
player_api.php | user_info: status, exp_date (a Unix timestamp), is_trial, active_cons, max_connections. server_info: url, port, https_port, timezone. |
&action=get_live_categories | Live TV groups. |
&action=get_live_streams | Live channels, with stream IDs and guide IDs. |
&action=get_vod_streams | Films. |
&action=get_series | Series; get_series_info&series_id=… lists the episodes. |
&action=get_short_epg&stream_id=… | The next few programmes on one channel. |
Field names and available actions vary between panels. Treat the response as a guide, not a contract.
Why is my Xtream or M3U link not working?
- Error 401, 403 or an empty page
- The username or password is wrong, the account has expired, or the server refuses your app. Check the login against the original message, then ask your source.
- Error 404
- The server address is wrong or is missing a path the panel needs. Copy the server again, including everything before
/get.php. - The playlist downloads but has no channels
- Try
type=m3uinstead ofm3u_plus, or the other stream format. Some panels limit which formats an account may use. - The password has special characters
- Characters such as
&,+,#or spaces break a hand-written link. The builder encodes them; if you edit the link by hand, use the encoded form.
Frequently asked questions
What is Xtream Codes?
Xtream Codes was panel software for running IPTV services. The original product was discontinued in 2019, but its API format lives on: many panels and players still use the same get.php, xmltv.php and player_api.php addresses, and "Xtream Codes login" now means that server, username and password combination.
Is Xtream Codes legal?
The login format is just a way of connecting a player to a server; it is neither legal nor illegal in itself. What matters is the source: use one that has the rights to the channels it offers.
What is my Xtream Codes server URL?
It is the part of your M3U link before /get.php, for example http://host.example:8080. Paste the full link into the builder's second box to have it separated for you.
How do I get the EPG URL from an Xtream Codes login?
Use xmltv.php on the same server with the same username and password: http://SERVER:PORT/xmltv.php?username=USERNAME&password=PASSWORD. The builder shows it as the XMLTV guide link.
How can I check when my Xtream account expires?
Open the Player API link in a browser. The exp_date field in user_info is a Unix timestamp of the expiry date, and max_connections shows how many devices may watch at once. Not every panel fills these in.
Does this tool give me an IPTV login or playlist?
No. It only rewrites details you already have. Opus Media Player does not provide channels, playlists, logins or subscriptions.