Every IPTV service eventually hands you, or asks you for, a long and slightly alarming web address that looks something like http://line.example.com:8080/get.php?username=…&password=…&type=m3u_plus. That is your M3U playlist URL, and it is one of the most searched and least explained things in IPTV.
This guide takes the link apart piece by piece: what an M3U playlist is, what get.php and each parameter do, when to use M3U instead of an Xtream Codes login, how to build the link from your username and password, and how to fix a playlist that refuses to load.
Quick takeaways
- An M3U link is your server, username and password packed into one address that returns your channel list.
- The usual format is
http://server:port/get.php?username=USER&password=PASS&type=m3u_plus&output=ts. - Prefer Xtream Codes login when the app supports it; use M3U for apps that only take a playlist link.
- Most loading failures are link typos: the port,
httpvshttps, or a special character in the password. - A get.php link contains a real password. Never share yours, and never trust “free” ones.
What an M3U playlist actually is
M3U is a very old, very simple file format: a plain text list of media addresses, one after another. Music players used it long before IPTV existed. An IPTV playlist is the same thing on a large scale — a text file that starts with #EXTM3U and then lists every channel like this:
#EXTM3U
#EXTINF:-1 tvg-id="channel.id" tvg-name="Sports HD" tvg-logo="http://.../logo.png" group-title="Sports",Sports HD
http://server:port/USER/PASS/12345.ts
The #EXTINF line describes the channel — its guide ID, name, logo and group — and the line underneath is the address of the stream itself. Your app reads tens of thousands of these pairs and turns them into categories and a channel list.
You almost never handle the file directly. What you handle is the playlist URL: the address that tells the server to build that file for your account and send it to your app.
The get.php link, piece by piece
http://line.example.com:8080/get.php?username=USER&password=PASS&type=m3u_plus&output=ts
| Part | What it does |
|---|---|
http:// |
The scheme. Most IPTV servers use plain http; use https only if your provider gave it to you that way. |
line.example.com |
The server address — the same one you type into the “server URL” field of an Xtream Codes login. |
:8080 |
The port. Keep it exactly as your provider sent it — a missing port is one of the most common reasons a link fails. |
/get.php |
The script on the server that builds your playlist. |
username=USER |
Your IPTV username, exactly as sent — case-sensitive. |
password=PASS |
Your IPTV password, also case-sensitive. |
type=m3u_plus |
The playlist flavour. m3u_plus includes logos, groups and guide IDs; plain m3u is just names and addresses. |
output=ts |
The stream format inside the playlist: ts (MPEG-TS) or m3u8 (HLS). If streams stutter in one app, try the other. |
Its companion is the guide link, built the same way: http://server:port/xmltv.php?username=USER&password=PASS. That one returns the TV guide rather than the channels — more on that in what is EPG in IPTV.

Illustration
M3U link or Xtream Codes login?
The same three details — server, username, password — can be entered two ways. Which one to use depends on the app:
| Xtream Codes login | M3U playlist link | |
|---|---|---|
| What you enter | Server URL, username, password | One long link |
| Live TV, films, series | Separate sections | Often one long mixed list |
| TV guide | Loads automatically | May need the EPG URL added |
| Speed on big catalogues | Faster | Slower; large file to download |
| Best for | IPTV Smarters Pro, TiviMate, IBO Player | VLC, Kodi IPTV Simple Client, some Smart TV apps |
Our advice is simple: use Xtream Codes wherever the app offers it, and keep the M3U link for the apps that accept nothing else. Which app to use on which device is covered in our IPPLAYTV app guide.
How to build your M3U link from your login
- Take the server URL exactly as sent, including
http://and the port — for examplehttp://line.example.com:8080. - Add
/get.php?username=and your username. - Add
&password=and your password. - Finish with
&type=m3u_plus&output=ts. - Paste the whole thing into the app’s “M3U URL” or “playlist URL” field, with no spaces.
Or skip the typing: the IPPLAYTV setup page has a converter that builds the link from your three details in one click. If you are not sure which value is which, our guide to IPTV username and password explains each one.
M3U playlist not loading? The fixes

Illustration
1. Check the port and the scheme
A missing :8080 (or whatever port you were given), or https where the server expects http, is the most common reason a playlist never loads. Compare the start of your link with the server URL your provider sent, character by character.
2. Encode special characters in the password
Characters such as &, #, ?, + or a space have a special meaning inside a web address. If your password contains one, the link breaks at that point. Replace it with its encoded form — & becomes %26, # becomes %23, + becomes %2B, a space becomes %20 — or ask your provider for a password without symbols.
3. Remove hidden spaces and line breaks
Copying a link out of a chat message often adds a space at the end or splits it over two lines. Paste it into a notes app first, check it is one unbroken line, then copy it again.
4. Test the link in a browser
Paste the link into a browser on a computer. If it downloads a file (or shows a long list starting with #EXTM3U), the link and the line are fine and the problem is the app. If you get an error page or an empty response, the link or the account is the problem.
5. Check the line is active
An expired or not-yet-activated line returns nothing, however perfect the link is. The Xtream login in Smarters shows the expiry date; otherwise ask your provider to confirm the status.
6. Try a smaller playlist
An m3u_plus playlist that includes every film and series can be enormous, and some Smart TV apps and older boxes give up halfway through. Ask your provider for a live-TV-only playlist, or switch the app to an Xtream Codes login, which loads the catalogue in sections instead of one giant file.
7. Do not refresh it every five minutes
Some servers limit how often the same account can download its playlist, and an app set to reload the full list constantly can trip that limit. Set playlist updates to once a day; channels rarely change faster than that.

Illustration
About “free” M3U and get.php links
Search for get.php?username= and you will find pages of “free IPTV M3U links”. Think about what you now know about that link: it contains a real username and password. A working free get.php link is almost always somebody’s paid account, leaked or shared without permission. It stops working as soon as the owner or the provider notices, usually within days, and the sites that publish these lists are a well-known route for malware and fake “player” downloads.
The legitimate way to try IPTV for free is a trial from a provider that will still answer your messages afterwards. Ours lasts 24 hours, needs no card, and we send the Xtream details and the M3U link together — see the IPPLAYTV free trial guide.
Keep your own link private
The flip side: your own M3U link is as sensitive as your password. Anyone who has it can stream on your line, use up your screens and get the account flagged for unusual activity. Do not post it in forums or support groups, blur it in screenshots, and if you think it has leaked, ask your provider to change the password — the old link stops working immediately.
Frequently asked questions
It is a web address that returns your full channel list as an M3U playlist file. On most IPTV services it looks like http://server:port/get.php?username=USER&password=PASS&type=m3u_plus&output=ts. The app downloads that file and reads every channel, its logo, its group and its stream address from it.
get.php is the script on an Xtream-based IPTV server that builds your playlist. The username and password after it are your account details, and the server uses them to return the channels your line is allowed to watch.
type=m3u returns a basic list of channel names and stream addresses. type=m3u_plus adds extra tags such as channel logos, groups and guide IDs, which most modern apps use to show categories and match the TV guide. Use m3u_plus unless an app specifically asks for plain m3u.
Use Xtream Codes whenever the app supports it. It separates live TV, films and series, loads the TV guide automatically and is usually faster. Use the M3U link for apps that only accept a playlist address, such as VLC, Kodi’s IPTV Simple Client and some Smart TV apps.
Most often a mistake in the link: a wrong or missing port, https instead of http, a special character in the password that needs encoding, or a space copied into the link. If the link is correct, the line may be expired, or the playlist may be too large for the device — try a live-TV-only playlist.
No. A working get.php link contains a real username and password, so a “free” one is almost always someone else’s paid line, shared without permission. They stop working within days and the sites that list them are a common source of malware.
Put your three details into the pattern http://server:port/get.php?username=USER&password=PASS&type=m3u_plus&output=ts. The IPPLAYTV installation page has a converter that builds the link for you from your username, password and server URL.
No. Anyone with the link can stream on your line, use up your screens and get it blocked for unusual activity. Treat it exactly like your password: never post it in a forum, a screenshot or a group chat.
Keep reading
Where the three credentials come from and how to fix them.
The xmltv.php guide link and how to fix the TV guide.
12 fixes for logins, black screens and buffering.
Xtream Codes login on every device.
Build your M3U link from your login in one click.
The right player for Firestick, Smart TV, Android and iOS.
Related reading
Cut through the threads — the traits every service Redditors actually keep, and the red flags…
The honest five-year cost comparison, where cable still wins, and how to switch without cancelling anything…