M3U and M3U8 look almost identical: both are text playlists, and both start with #EXTM3U. The difference is partly about text encoding and partly about how the playlist is used. M3U8 is also the playlist format behind HLS, one of the most widely used ways of streaming video over the web. Here is what separates them and when it matters.
The short answer
| M3U | M3U8 | |
|---|---|---|
| Format | Plain-text playlist | Plain-text playlist |
| Text encoding | Historically system default or US-ASCII | UTF-8 |
| Typical IPTV use | A list of channels for a player | A list of channels or an HLS stream playlist |
| HLS streaming | No | Yes, HLS playlists use .m3u8 |
Encoding: why the “8” matters
The “8” in M3U8 refers to UTF-8, the text encoding that can represent characters from almost every language. RFC 8216, the specification for HTTP Live Streaming, states that playlists are UTF-8 text files. Earlier drafts of the specification also distinguished the extensions: files ending in .m3u8 (or served as application/vnd.apple.mpegurl) are UTF-8, while .m3u files were treated as US-ASCII.
In practice, many IPTV playlists named .m3u are UTF-8 anyway, and most modern players cope with both. Problems appear with channel names that contain accents or non-Latin scripts: if they show up as garbled symbols, the player is reading the file with the wrong encoding.
HLS: when M3U8 describes a stream, not a channel list
In HLS, the .m3u8 file is not a list of channels. It describes one stream broken into short segments:
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:6
#EXTINF:6.0,
segment_1001.ts
#EXTINF:6.0,
segment_1002.ts
The player downloads each segment in turn. For live TV, the playlist keeps updating with new segments.
Master playlists and adaptive quality
HLS often uses a master playlist that points to several versions of the same stream at different bitrates and resolutions. The player picks one based on your connection and switches up or down as conditions change. That is adaptive bitrate streaming, and it is why an HLS stream can drop briefly to lower quality instead of buffering. Our guide to what bitrate is explains why higher quality needs more bandwidth.
How this affects IPTV players
You may meet M3U8 in two places:
- Your channel list may be delivered as
.m3u8instead of.m3u. Players treat it the same way; it is still a list of#EXTINFentries. See what an M3U playlist is. - Individual channels may be HLS streams whose address ends in
.m3u8. Some players and providers let you choose between HLS (.m3u8) and MPEG-TS (.ts) delivery; see the stream-format section of IPTV player settings explained.
Can you rename .m3u to .m3u8?
Renaming does not change the content. If the file is already UTF-8, renaming it to .m3u8 can help a player that decides the encoding from the extension. If it is not UTF-8, re-save it as UTF-8 in a text editor first. Do not rename the stream addresses inside the playlist.
Which should you use?
- Use whatever your provider gives you; both work in nearly all current players.
- If channel names look garbled, request or save the playlist as UTF-8 / M3U8.
- If a channel will not play in one stream format, try the other if your player offers the choice.
Troubleshooting
| Symptom | Likely cause |
|---|---|
| Garbled characters in names | Encoding mismatch; use UTF-8 / M3U8 |
| Playlist rejected by a player | Player expects a specific extension; check its documentation |
A single .m3u8 link plays one channel only | It is an HLS stream playlist, not a channel list |
| Stream starts, then stalls | Network or source issue; see M3U playlist not loading |
Frequently asked questions
Which is better for IPTV, M3U or M3U8?
Neither is better in itself. Use the format your provider supplies; most players accept both. M3U8 avoids character problems when channel names contain non-English letters.
Can VLC open M3U8 files?
Yes. VLC opens both M3U and M3U8 playlists, from a file or a URL, and plays HLS streams.
Why does my M3U8 link only play one channel?
It is probably an HLS stream playlist for a single channel, which lists video segments rather than channels. A channel list contains many #EXTINF entries with channel names.
Summary
M3U and M3U8 share the same structure. M3U8 is UTF-8 encoded and is also the playlist format used by HLS streaming, where it lists video segments rather than channels. For IPTV, both extensions work in most players; encoding only matters when channel names contain non-English characters.
Sources and further reading
Menus, apps and settings change with software updates. If something looks different on your device, check the official help pages from your device maker or app developer.