By Shamir
What Is an M3U File and How Does It Work?
You keep seeing the term — "add your M3U," "paste your M3U URL," "M3U playlist." It sounds technical, maybe even a little intimidating. It isn't. An M3U is just a plain text file that lists where your streams or media files live. That's the whole secret. Open one in any text editor and the mystery evaporates.
This guide demystifies the format line by line, so the next time someone says "add your M3U," you know exactly what's going on.
The honest framing: Tuneline is a media player for content you provide. An M3U is simply your list of your sources — a table of contents, not the content itself.
An M3U Is a Table of Contents
The most useful way to think about an M3U: it's a table of contents for media. It doesn't contain any video. It contains a list of pointers — names plus the locations (URLs or file paths) where each item actually lives. The player reads the list and fetches each item when you press play.
That's why an M3U file is tiny (a few kilobytes) even when it "contains" thousands of items — it's all text, no video. And it's why an M3U can break: if a pointer goes stale (a URL expires), the list is fine but that one entry won't play.
The Simplest Possible M3U
At its barest, an M3U is just a list of locations, one per line:
http://example.com/stream1.m3u8
http://example.com/stream2.m3u8
/Users/me/Videos/holiday.mp4
A player reads that top to bottom and gives you three items to play. No names, no grouping — just locations. This is the original 1990s playlist format, and it still works.
The Real-World M3U: Extended Format
The version you'll actually meet starts with #EXTM3U and gives each entry a name and metadata. This is extended M3U, and it looks like this:
#EXTM3U
#EXTINF:-1 tvg-id="news.us" tvg-logo="http://logos/news.png" group-title="News",Example News
http://example.com/news.m3u8
#EXTINF:-1 group-title="Movies",Example Movie Channel
http://example.com/movies.m3u8
Let's decode it line by line — it's simpler than it looks:
| Part | Meaning |
|---|---|
#EXTM3U | The header. Says "this is an extended M3U." Always the first line. |
#EXTINF:-1 | "Here comes an entry." The -1 means a live stream (unknown duration). |
tvg-id="..." | An ID used to match this entry to a program guide (EPG). |
tvg-logo="..." | A URL to the entry's logo/icon. |
group-title="..." | The category — this is what builds your sidebar groups. |
,Example News | Everything after the comma is the display name. |
| The next line | The actual URL or path to play. |
So each item is really two lines: one #EXTINF describing it, and one line saying where it lives. Repeat that pattern and you have a full library.

M3U vs M3U8 — What's the Difference?
This trips everyone up, and it's two different things sharing similar names:
.m3u/.m3u8as a playlist file — the table of contents we've been discussing. The.m3u8version is just an M3U saved as UTF-8 (so it handles non-English names and symbols correctly). For playlists, prefer.m3u8— it avoids garbled characters..m3u8as a live stream — confusingly, HLS live streams also use the.m3u8extension, because an HLS stream is technically a tiny playlist of video segments. So a single…/stream.m3u8URL is usually one live stream, while a big…/playlist.m3u8you add as a source is a list of many.
How to tell them apart in practice: a list you add as a source has many #EXTINF entries; a single HLS stream is one continuously-updating segment list the player just plays. If you're pasting one URL to watch one thing, it's the stream kind — see network streams.
URL vs File: Two Ways to Have an M3U
You'll encounter M3Us in two forms, and both work the same once added:
- A remote URL (
http://provider.com/get.php?…or…/playlist.m3u8). The list lives on a server; the player fetches the latest version each time. Most subscriptions hand you a URL like this. - A local file (
playlist.m3uon your disk or cloud drive). The list lives with you. Great for a hand-curated, backed-up set you control and edit yourself.
To add either: open Add source, paste the URL or pick the file, and the player parses every #EXTINF into a browsable library. (Step-by-step.)
Can I Edit an M3U Myself?
Yes — and it's empowering. Because it's plain text, any text editor edits an M3U. Common tweaks:
- Rename an entry — change the text after the comma on the
#EXTINFline. - Re-group entries — edit
group-title="…"to organize your categories the way you want. - Remove dead items — delete the
#EXTINFline and its URL line together (both, or you'll orphan one). - Merge two lists — paste the entries from one file under the
#EXTM3Uheader of another.
Save it as .m3u8 (UTF-8) and re-add it. Just remember: editing the list never fixes a dead source — if the underlying URL is gone, tidying the text won't bring it back.
M3U vs the Other Formats
M3U is one of three ways your content can arrive. The short version:
- M3U — a flat list of streams (what this post covers). Simple, portable, editable.
- Xtream Codes — a server login (URL + username + password) that the player turns into an organized library with categories and VOD/series.
- Stalker Portal — a portal-based format used by some devices.
Full comparison: M3U vs Xtream Codes vs Stalker Portal.
FAQ
What is an M3U file in simple terms?
A plain text file that lists where your streams or media files live — names plus locations. It's a table of contents; it contains no actual video.
What's the difference between M3U and M3U8?
As a playlist, .m3u8 is just an M3U saved in UTF-8 (better for non-English names) — prefer it. Confusingly, HLS live streams also use .m3u8; a single such URL is one stream, while a big one you add as a source is a list of many.
Can I open and edit an M3U file?
Yes — any text editor works. You can rename entries, change group-title to re-group, and delete dead items (remove both the #EXTINF line and its URL line).
Where do I get an M3U?
From your own source or subscription — usually as a URL to paste, sometimes as a file to open. The player parses it into a browsable library.
Bottom Line
- An M3U is a plain-text table of contents — names and locations, no video inside.
- The real-world format starts with
#EXTM3U, and each item is an#EXTINFline (name, group, logo, tvg-id) plus a URL/path line. .m3u8means UTF-8 for playlists — but the same extension also marks HLS streams, so context matters.- It's just text, so you can edit it yourself — though that never revives a dead source.
Got an M3U to add? Download Tuneline — paste the URL or open the file and you're browsing in seconds. Free and ad-free.
— Shamir