M3U8 and M3U are the two playlist formats you will meet when setting up IPTV, and for everyday use they are closer than the different names suggest. The distinction matters when a player rejects a file, when you are editing a playlist by hand, or when you are choosing between a live stream URL and a saved list of channels.
Here is what each format is, how they relate, and which one you should actually use.

M3U and M3U8, explained
M3U
M3U is a plain-text playlist format. It began as a list of audio file paths for early media players and grew into the default container for IPTV channel lists. An M3U file is ordinary text: a header, then a series of entries, each usually preceded by a line of metadata.
#EXTM3U
#EXTINF:-1 tvg-id="news.usa" tvg-logo="logo.png",USA News
https://example.com/stream/1
M3U8
M3U8 is the same playlist structure written in UTF-8, which supports characters outside basic Latin. It is the extension most often attached to HTTP Live Streaming, where the playlist points at a live stream that is itself split into short segments rather than at a stored file.
The short answer
M3U8 is M3U encoded as UTF-8. The syntax is the same, the directives are the same, and a player that reads one normally reads the other. In practice, providers hand you whichever extension their system generates, and both work in mainstream IPTV players.
The difference shows up in three situations:
- Non-ASCII characters — channel names with accents or non-Latin scripts render correctly in M3U8 and can appear garbled in a file saved as a different encoding.
- Live HLS streams — an M3U8 may be a segment playlist that updates continuously, not a static list you can edit.
- Strict parsers — a small number of older or custom players expect one extension or encoding and reject the other.
What is inside the playlist
Both formats use the same directives, and recognising them lets you edit a playlist safely:
#EXTM3U— the required header declaring the file as a playlist.#EXTINF— the duration and attributes for the entry that follows: channel name, tvg-id for guide matching, logo URL, and group-title for sorting.- The URL line — the actual stream address, which is the only line the player absolutely needs.
#EXTGRP— an alternative way to assign a group to a channel.
If you understand these four, you can rename a channel, fix a missing guide match, or remove a dead entry without breaking anything. Our M3U playlist tutorial goes line by line through a working example.

When a player rejects your playlist
- Open the file in a text editor and confirm the first line is
#EXTM3U. - Check the encoding. Re-save as UTF-8 if the file contains accented channel names.
- Confirm the URL on each entry is reachable — paste one into a browser to see whether it responds.
- Try both extensions if your player filters by file type.
- Watch for invisible characters copied from a webpage, especially at the end of the URL.
Most rejections at this stage turn out to be a truncated URL or a stray space rather than a format mismatch. If the playlist loads but nothing plays, move to our IPTV login troubleshooting checks.
Which one should you use?
- Accept what your provider gives you. Renaming an extension rarely helps and can confuse a player that maps formats explicitly.
- Save your own backups as UTF-8. That keeps channel names intact on any device you restore to later.
- Keep the file as text. Compressing or embedding it in a document makes it awkward to paste into a player.
- Back up both the playlist and the EPG URL. A playlist without guide data restores only half a setup — see our M3U playlist guide for the structure to save.
New to the format entirely? Start with IPTV for beginners, which covers playlists in the wider context of getting a first setup working.
Frequently Asked Questions
Can a player open an M3U8 file where it expects M3U?
In almost all cases yes, because the syntax is identical and only the encoding differs. If it fails, re-save the file as UTF-8 with the .m3u extension and try again.
Is M3U8 only for live streams?
No. The extension is commonly used with HTTP Live Streaming, but it holds the same list structure and can just as easily point at stored files.
Why are my channel names showing strange characters?
The file is saved in an encoding other than UTF-8. Re-save it as UTF-8 and reload the playlist.
Should I edit the playlist myself?
Editing names, logos and groups is safe as long as you keep the #EXTM3U header and leave each URL on its own line. Back up the original first.
