CodeCraft

M3U8 Validator

Validate and inspect M3U8 / HLS playlists — fetch a URL or paste raw playlist text to check syntax, variants, segments and encryption.

How to Use

  1. Choose "Fetch by URL" to have this tool retrieve the playlist for you, or "Paste Playlist" if you already have the raw .m3u8 text.
  2. Click Validate to parse the playlist.
  3. Review the network check (HTTP status, Content-Type) if fetched by URL.
  4. Check the validation result for playlist type, errors and warnings.
  5. For master playlists, review each variant's bandwidth, resolution and codecs.

About This M3U8 Validator

This tool parses M3U8/HLS playlists against the core rules of RFC 8216, checking for the required #EXTM3U header, valid tag structure, and common issues like a missing #EXT-X-TARGETDURATION or absent #EXT-X-ENDLIST. When given a URL, it fetches the playlist through our server-side proxy (avoiding client-side CORS restrictions) and reports the real HTTP status and Content-Type header, so you can debug both the network layer and the playlist content in one place.

Use Cases

CI/CD Stream Health Checks

Validate that an encoder or CDN is producing a spec-compliant playlist before it reaches viewers.

Debugging Player Rejections

Find out why a strict native player refuses a stream by checking for missing required tags.

Inspecting Bitrate Ladders

Review all variant streams in a master playlist — bandwidth, resolution and codecs — at a glance.

Confirming DRM Status

Quickly check whether a playlist declares encryption before wiring it into a player that doesn't support DRM.

Common Pitfalls & Edge Cases

  • Missing #EXTM3U — the very first line of any valid playlist must be exactly #EXTM3U.
  • Missing #EXT-X-TARGETDURATION — required for every media playlist per RFC 8216.
  • No #EXT-X-ENDLIST — the playlist is being treated as a live stream even if it was meant to be VOD.
  • CORS error when fetching by URL — this tool fetches through a server-side proxy specifically to avoid that, but the origin content itself may still return an error page instead of a playlist.
  • Encrypted (#EXT-X-KEY) segments will parse fine here, but won't play in a browser without a DRM license server.

🔒 Data Privacy

When you fetch by URL, the request is made server-side through our proxy to avoid CORS restrictions — the playlist content is not stored. Pasting playlist text validates entirely in your browser with no network request at all.

Standards & References

Related Tools

Once your playlist validates, play it in the M3U8 Player or try the HLS Player.

Frequently Asked Questions

Comments (0)

Leave a comment

0/2000