M3U, M3U8 and W3U: what each one is and when to use which
4 min read
When you organize your videos, you’ll run into three very similar extensions: .m3u, .m3u8 and .w3u. The first two are almost the same thing; the third is another, more complete way of writing a list. Here’s what each one is, how they differ and which one suits you.
M3U: the classic list
M3U was born in the late nineties as a format for music playlists: a text file with one path or address per line. Over time, the “extended” version appeared, which starts with #EXTM3U and lets you put an #EXTINF line before each item with its duration and name. On top of that, players kept adding their own attributes, such as tvg-logo (the image), group-title (the group) or tvg-id (the channel in the TV guide).
Its strengths: almost any player understands it, you can write one by hand in a minute and it’s easy to read. Its limits: it isn’t a fixed standard, so each program supports some attributes and not others; it only has one level of groups; and there’s no room for long descriptions, external subtitles or lists inside lists.
M3U8: the same list, in UTF-8
An .m3u8 is an M3U saved with UTF-8 character encoding; hence the “8”. Today almost all M3U files are UTF-8, so for video lists the two extensions are used interchangeably. If your names include accented letters or characters from other alphabets, save in UTF-8, whatever you call the file.
Watch out: .m3u8 is also HLS
The same extension is used by HLS, the streaming system behind many websites and broadcasts. An HLS .m3u8 isn’t a list of videos to choose from, but the manifest of a single video split into chunks. You can tell them apart by what’s inside: the HLS one is full of tags starting with #EXT-X-, such as #EXT-X-STREAM-INF or #EXT-X-TARGETDURATION. We explain it in HLS and DASH: how adaptive streaming works.
Whatplay looks at the content, not just the extension: if you try to play an address that’s actually a list, it tells you “This address is a channel list, not a channel”, so you can add it in Lists.
W3U: a list in JSON
W3U is Whatplay’s list format, written in JSON, a structured text format with braces and brackets. It’s what the app uses to save and share the lists you make in Favorites. A small example:
{ "name": "Vídeos de casa", "author": "Marta", "groups": [ { "name": "Viajes", "image": "https://example.com/img/viajes.jpg", "stations": [ { "name": "Lisboa", "url": "https://example.com/videos/lisboa.mp4", "subtitle": "https://example.com/videos/lisboa.srt" } ] } ]}
What it adds compared with an M3U:
- Groups within groups (
groupsinside a group), to sort by year, season or topic. - Image and description (
imageandinfo) for the list, each group and each video. - External subtitles with
subtitle: the address of an .srt, .vtt or .ass file. - Alternate addresses with
url1,url2…: if the main one fails, they’re tried in order. - Linked lists: a group with its own
urlis downloaded when you open it, so a large collection can be split across several files. - A TV guide for the list with
epgand, on each item, itsepgId, the equivalent oftvg-id. - Restricted content with
"parental": trueon the list, a group or a video, which asks for the parental controls PIN.
If it’s large, you can compress it with gzip and save it as .w3uz; Whatplay decompresses it on its own. And it’s forgiving: if the JSON is missing a comma or has an extra brace, it tries to fix it before rejecting the list.
Which one should I use?
- You want it to work in any player: M3U in UTF-8. It’s the most compatible, and for a simple collection with covers and groups it’s more than enough.
- You’re writing it by hand and it’s short: M3U. It’s easier to make a mistake in JSON than in a line of text.
- You have a lot of material and want to organize it in levels, with descriptions, external subtitles or backup addresses: W3U.
- You don’t want to write anything: create the list in Favorites with “New list”. Whatplay saves it as W3U and you can share it by link, file or QR code.
Whatplay opens both equally well, so there’s no need to convert what you already have. The help sums it up in M3U or W3U?, and the M3U format, step by step, is in how to make your own M3U list.
Other extensions you’ll see
In “Add list”, Whatplay shows the formats it accepts: M3U, M3U8, W3U, W3UZ, WISE and PKW. WISE is another JSON list, very similar to W3U, and PKW is a package with several lists inside. If you accidentally paste the address of an XMLTV guide instead of a list, the app tells you it’s a guide and where to import it.
Tips for any format
- Always save in UTF-8 and as plain text.
- Use full addresses, with
https://whenever you can. - Keep names short and clear: on the TV they’re read from across the room.
- Before sharing a list, check that there are no usernames or passwords inside the addresses. Whatplay warns you when you share if it detects account details.