M3U Validator
Check any M3U or M3U8 playlist for errors — paste, upload, or drag and drop
This free M3U validator checks any M3U or M3U8 playlist for syntax errors, broken entries, missing metadata, and encoding issues — instantly, in your browser. Paste your playlist text, drop a file, or enter a URL. Nothing is uploaded to any server. Your stream URLs, IPTV credentials, and channel list stay completely private on your device.
The most common reason an M3U playlist fails to load is a malformed #EXTINF line — a missing comma, a wrong attribute format, or a blank line between the metadata and the stream URL. VLC is forgiving and will often play these anyway, but stricter apps like TiviMate, Kodi's PVR IPTV Simple Client, and IPTV Smarters Pro will silently drop malformed entries or refuse to load the playlist entirely. The validator catches all of these issues with exact line numbers so you know exactly what to fix.
Duplicate stream URLs are another common problem. When the same channel appears twice with different names, EPG matching breaks — the player has two tvg-id values competing for the same stream and programme guide data gets mismatched. The validator detects all duplicates and reports which line each appeared on, so you can remove them cleanly using the M3U Editor.
Issues are grouped by severity — Errors (will break loading), Warnings (may cause problems), and Info (quality improvements). Fix errors first, then warnings. A playlist that passes with zero errors will load correctly in every major IPTV player.
Paste your M3U playlist above to start
Or to see a demo
Need a playlist to validate?
Get a free trial M3U URL — paste it here and check for errors before loading it.
How to validate an M3U playlist
Add your playlist
Paste your M3U content directly into the text area, drag a .m3u or .m3u8 file onto the page, or use the Upload button.
Review the issues found
The validator parses every line, checks EXTINF syntax, scans for duplicate URLs, and flags any issues found.
Fix and re-validate
Issues are listed by severity — Errors, Warnings, and Info. Click through to see exactly which line and entry has the problem.
What the M3U Validator checks
Header validation
Verifies the mandatory #EXTM3U first-line header is present and correctly formatted.
EXTINF syntax
Checks every #EXTINF tag for correct duration, comma separator, and valid attribute format.
URL format
Detects empty URLs, URLs with whitespace, and flags HTTP (non-HTTPS) streams.
Duplicate detection
Identifies entries where two or more channels point to the same stream URL.
Metadata coverage
Reports what percentage of channels have logos, tvg-id, and tvg-name attributes.
Group analysis
Lists all group-title values and channel counts per group for a full playlist overview.
Frequently asked questions
What does the M3U Validator check?
It checks for: missing #EXTM3U header, malformed #EXTINF lines (missing comma, wrong syntax), empty stream URLs, whitespace in URLs, duplicate stream entries, and HTTP vs HTTPS usage.
Is my playlist uploaded to a server?
No. All processing happens in your browser using JavaScript. Your playlist content — including any stream URLs or credentials — never leaves your device.
Why is the validator showing 'Missing #EXTM3U header'?
The #EXTM3U tag must be the very first line of the file. If there are any blank lines, BOM characters, or spaces before it, some players will reject the playlist.
What does a duplicate URL warning mean?
Two or more entries in your playlist point to the same stream URL. This usually means the same channel was added twice. It won't break playback, but it wastes space and can confuse EPG matching.
The validator says my file has errors but it plays fine in VLC — why?
VLC is very lenient and will attempt to play playlists even with errors. However, stricter apps like TiviMate or Kali IPTV may reject the same playlist. Fixing the errors ensures compatibility everywhere.
What file size limit does the validator support?
There is no hard server-side limit since everything runs in your browser. In practice, files up to ~50 MB work smoothly in most modern browsers.