Playlist format
IPTV M3U playlist — what the URL actually is
An M3U playlist is a text file with one channel per line. Everything confusing about it comes from the URL that generates it — so this page opens the file up, then explains each part of the link and where it belongs.
What is actually inside the file
An M3U playlist is not a video and not an app. It is a text file — often a few
megabytes of it — where every channel is two lines: a description line beginning
#EXTINF, then the stream address. Open one in Notepad and it looks like
this:
#EXTM3U
#EXTINF:-1 tvg-id="bbcone.uk" tvg-logo="http://host:8080/logos/1.png" group-title="UK",BBC One
http://host:8080/live/USER/PASS/1234.ts
#EXTINF:-1 tvg-id="skysports.main" group-title="Sport",Sky Sports Main Event
http://host:8080/live/USER/PASS/1235.ts
The tvg-id is what links a channel to a guide entry, tvg-logo
is the artwork the player shows, and group-title is the category the
player builds its menu from. None of it is metadata you need to edit — but knowing it
exists explains two things people ask about constantly: why a channel can have a name
and no guide, and why renaming something in the player does not stick.
Reading your playlist URL
Providers do not host one file per customer. They generate the playlist from your account when you request it, which is why the URL is long and personal. It decomposes into five parts:
| Part | Example | What it does |
|---|---|---|
| Server | http://host.example.com:8080 | The machine that answers. The port is part of it. |
| Script | /get.php | The endpoint that builds a playlist. Not /player_api.php, which is the Xtream API. |
| Username | username=abc123 | Your account, in plain text. |
| Password | password=xyz789 | Also in plain text, also yours to protect. |
| Format | type=m3u_plus&output=ts | Which channels and which container. m3u_plus includes guide IDs and logos; m3u alone does not. |
The format parameter is the part people accidentally drop. type=m3u
returns the same channels without logos or guide IDs, so the list loads, looks plain,
and the EPG has nothing to match against. If your welcome email offers
m3u_plus, use that one.
M3U, M3U8, Xtream — three names, two things
| M3U / M3U8 playlist | Xtream Codes | |
|---|---|---|
| What you paste | One URL containing your credentials | Server URL, username, password |
| Where the guide comes from | A separate XMLTV URL | Supplied by the API |
| Refresh cost | Re-downloads the whole file | Fetches only what changed |
| Best on | Desktops, quick tests, simple TVs | Remotes, Fire Stick, phones |
| Typical failure | Truncated URL | One field with a trailing space |
M3U8 is the same format saved as UTF-8 — the right default for channel
names with accents. The extension is overloaded, though: an .m3u8 file is
also what an HLS stream manifest is called, and that is a list of video segments, not
a list of channels. When a playlist URL ends
output=m3u8, you are asking for HLS delivery, which buffers better on
weak Wi-Fi at the cost of a second or two of extra delay.
Where the URL goes
| Player | Menu path | Notes |
|---|---|---|
| TiviMate | Settings → Playlists → Add playlist → M3U playlist | Accepts the URL or a local file; guide URL asked for on the next screen |
| IPTV Smarters Pro | Login → M3U URL | Also has a local-file option for exported lists |
| VLC | Media → Open Network Stream | No channel grid or guide; good for proving the URL works |
| Kodi | PVR IPTV Simple Client → M3U Play List URL | Set the EPG path in the same panel or the guide stays blank |
| Smart TV (SS IPTV) | Settings → Content → Playlist URL | Typing a long URL with a TV remote is painful — use the app’s web upload |
| Apple TV (iPlayTV) | Add playlist → Remote URL | tvOS has no clipboard sharing; type carefully or use the iPhone app |
Test the URL before you touch the player
This one step settles whether the problem is the credentials or the app. Paste the full playlist URL into a desktop browser:
- A file downloads, or thousands of lines of text appear — the credentials are valid and the server is reachable. Any failure after this is local to the player or the device.
- A one-line error appears — the server answered and rejected the login. Copy the fields again from the email; do not keep editing the player.
- The page never loads — DNS, port or ISP blocking. Try the same URL on mobile data to tell the last one apart.
Do not test it in a shared browser window
A playlist URL is a password in URL form, and it will sit in the address bar history afterwards. Test in a private window, or paste it into a text editor and delete it when you are done.
Why a playlist that worked stops working
| Symptom | Cause | Fix |
|---|---|---|
| Channels vanish after a refresh | The account expired or was reset | Check the plan’s term, then sign in again with the current URL |
| “Invalid username” where it worked last week | The URL was copied from a rendered HTML email, so & replaced & | Retrieve the plain-text version, or rewrite the parameter separators |
| List loads, every stream fails | The old server address was retired | Replace the host in the URL; the credentials are unchanged |
| Works at home, not at the office | Network-level filtering of the port | Nothing to fix in the player — try another network |
| One device works, another is refused | Connection limit reached | Close the other device or add a connection to the plan |
If you have the choice, use Xtream
Both formats reach the same subscription, but the playlist carries its credentials inside the URL, which makes it one typo away from a support ticket on a television remote. The Xtream Codes login splits the same information into three short fields the player can validate one at a time — which is why every set-up guide here recommends it for a Stick or a TV, and keeps the playlist for desktops.
Questions about this
What is an M3U playlist in IPTV?
It is a plain text file listing stream addresses, one per line, each preceded by an #EXTINF line that gives the channel its name, logo and group. Your provider generates it on demand from your account, which is why the URL contains your username and password rather than pointing at a fixed file.
What is the difference between M3U and M3U8?
M3U8 is simply an M3U file saved as UTF-8, which is what you want for non-English channel names. The extension is also used for HLS manifests, which are a different thing entirely — a list of short video segments rather than a list of channels. In an IPTV playlist URL, output=ts delivers MPEG-TS streams and output=m3u8 delivers HLS, and the second is more tolerant of weak Wi-Fi.
Can I open the playlist URL in a browser?
Yes, and you should when something is wrong. A working URL downloads a .m3u file or displays thousands of lines of text. A URL with bad credentials returns a short error string instead. That one test separates a credentials problem from a player problem before you change any settings.
Why does my playlist show only some of the channels?
Usually the URL was truncated when it was copied — everything from the first ampersand onward is missing, so the server receives a valid username but no password, or a password but no format. Paste it into a text editor first and check it ends with the format parameter, not mid-word.
Do I need a separate EPG URL?
With an M3U login, usually yes: the playlist carries channels, not guide data. The welcome email includes an XMLTV address ending in .xml or .xml.gz. Paste it into the player’s EPG settings, or the channel list will load with an empty guide beside it.
Is it safe to share my playlist URL?
No. The URL is the account: anyone who has it can watch on your connection and eat into your allowance. Do not post it in forums, screenshots or public chats, and ask support to reset your credentials if it has been exposed.