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?username=USERNAME&password=PASSWORD&type=m3u_plus&output=ts

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

Stream format

Get the login from a link or message

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.

PartExampleWhat it does
Schemehttp://http or https. Use what your source gave you; most panels use http.
Server and porthost.example:8080Where the panel runs. Without a port, http uses 80 and https uses 443.
Endpoint/get.phpReturns the playlist. xmltv.php returns the guide and player_api.php the account API.
Username and passwordusername=…&password=…Your login. Characters such as &, + or @ must be URL-encoded, which the builder does for you.
Playlist typetype=m3u_plusm3u_plus adds channel logos, groups and guide IDs to each entry. type=m3u gives names only.
Stream formatoutput=tsts 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 loginM3U playlist URL
What you enterServer, username and password in three fieldsOne long URL
How the app loads itAsks the API for categories and streams as neededDownloads the whole list in one file
Films and seriesUsually separate sections with posters and episodesMixed into the playlist as entries
Guide (EPG)Usually found automaticallyOften needs the XMLTV link added separately
Account detailsExpiry and connection limits available from the APINot included
Large listsLoads in parts, so it is usually fasterBig 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.

RequestWhat comes back
player_api.phpuser_info: status, exp_date (a Unix timestamp), is_trial, active_cons, max_connections. server_info: url, port, https_port, timezone.
&action=get_live_categoriesLive TV groups.
&action=get_live_streamsLive channels, with stream IDs and guide IDs.
&action=get_vod_streamsFilms.
&action=get_seriesSeries; 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=m3u instead of m3u_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.

More free tools