M3U8 Validator

Check M3U8 playlist syntax, inspect HLS tag relationships, and identify structural issues with clear explanations and line-by-line findings.

Validate playlist text directly in your browser. Remote URL checks depend on the source server's accessibility and CORS configuration.

Validator

About playlist validation

What is an M3U8 validator?

An M3U8 validator reads a playlist and checks it against the grammar and tag rules of HTTP Live Streaming (HLS). It reports malformed lines, missing required values, and tags that contradict each other, so you can fix a playlist before a player, packager, or CDN trips over it.

What can this validator detect?

What can it not guarantee?

Passing this check does not prove that the server is reachable, that CORS allows browser access, that segments exist, that the stream plays in every browser, that codecs are supported, that authentication succeeds, or that the playlist meets every HLS specification requirement. Rules this tool does not evaluate are listed under "Not checked" after every run.

Master Playlist vs Media Playlist

A Master Playlist lists variant streams and renditions; a Media Playlist lists the segments of one stream.

#EXTM3U
#EXT-X-STREAM-INF:BANDWIDTH=1280000,RESOLUTION=1280x720,CODECS="avc1.4d401f,mp4a.40.2"
720p/index.m3u8
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:6
#EXTINF:6.000,
segment001.ts
#EXT-X-ENDLIST

These are illustrative snippets only.

Common M3U8 validation errors

How to fix playlist errors

  1. Fix errors in line order; one broken quote can cause several later findings.
  2. Select a finding to jump to its line in the source viewer.
  3. Compare the line with the suggested form, which is an illustration and not a verified correction.
  4. Correct the playlist at its source (packager or encoder settings), not only in the copy you pasted.
  5. Validate again, then test playback and network access separately.

FAQ

What is an M3U8 file?

A UTF-8 text playlist used by HLS. It lists either variant streams (Master Playlist) or media segments (Media Playlist).

What does an M3U8 validator check?

This one checks line syntax, attribute-list syntax, tag values, required attributes, and a set of relationships between tags, such as EXTINF followed by a URI. See "What can this validator detect?" above.

Does a valid playlist guarantee that the stream plays?

No. Playback also depends on segment availability, codecs, encryption keys, network access, CORS, and the player.

Why is my playlist valid but the video does not play?

The cause is usually outside the playlist text: missing or blocked segments, expired tokens, CORS headers, unsupported codecs, or key access. This tool does not test those.

Why can't the validator fetch my URL?

Browsers only let a page read another site's response if that site sends permissive CORS headers. Other causes are authentication, geo-restrictions, mixed content (an http URL from an https page), timeouts, or an unreachable host. The browser does not say which. Paste the playlist text instead.

What is the difference between a warning and an error?

An error is a problem under the rules this tool checks. A warning is suspicious or may cause interoperability trouble but is not definitely invalid. Information items are observations. "Not checked" items are rules the tool did not evaluate.

Can the validator check remote media segments?

No. It never downloads segments, sub-playlists, or keys. It checks only the syntax of the references in the playlist.

Does the tool modify my playlist?

No. Your text is never changed. Suggested fixes are shown beside the findings for you to apply yourself.

Does it decrypt encrypted HLS content?

No. It reads EXT-X-KEY attributes for syntax and does not request or use keys.

Is pasted playlist content uploaded to a server?

No. Pasted text is processed by JavaScript in your browser and is not sent anywhere. In URL mode your browser requests the URL you entered directly from that server. Copied reports redact query values from URLs, but review them before sharing.