M3U Validator
Check any M3U or M3U8 playlist for errors — paste, upload, or drag and drop
Paste your M3U playlist above to start
Or to see a demo
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.
How to validate an M3U playlist
Paste or upload
Paste your M3U content directly into the text area, drag a .m3u or .m3u8 file onto the page, or use the Upload button.
Click Validate
The validator parses every line, checks EXTINF syntax, scans for duplicate URLs, and flags any issues found.
Review and fix
Issues are listed by severity — Errors, Warnings, and Info. Click through to see exactly which line and entry has the problem.
What the validator checks
#EXTM3U header
Verifies the mandatory first-line header is present and correctly formatted.
EXTINF syntax
Checks every #EXTINF tag for correct duration, comma separator, and valid attribute format.
Stream URLs
Detects empty URLs, URLs with whitespace, and flags HTTP (non-HTTPS) streams.
Duplicate channels
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 structure
Lists all group-title values and channel counts per group for a full playlist overview.