Validate your M3U8 playlists against the HLS specification (RFC 8216). Detect errors, warnings, and best practice violations.
Paste your M3U8 content and click "Validate" to check compliance.
HTTP Live Streaming (HLS) uses M3U8 playlist files to describe media content for adaptive streaming. These playlists must conform to RFC 8216 to ensure compatibility across players, CDNs, and devices. Our validator parses your M3U8 content and checks it against the specification rules, reporting errors, warnings, and informational notes about your playlist structure. This helps you catch issues before deploying content to production, where manifest errors can cause playback failures affecting thousands of viewers.
HLS uses two types of playlists. A Master Playlist (also called a Multivariant Playlist) contains #EXT-X-STREAM-INF tags that reference multiple media playlists at different quality levels, enabling adaptive bitrate switching based on network conditions. Each variant stream entry specifies bandwidth, resolution, codecs, and other attributes that players use to select the appropriate quality level. A Media Playlist contains #EXTINF tags followed by segment URIs, describing the actual media segments that players download and play sequentially. The validator automatically detects which type you have provided and applies the appropriate validation rules for each type.
The validator checks the following rules based on RFC 8216: (1) The file must begin with #EXTM3U as the first line — this is the mandatory file identifier. (2) #EXT-X-VERSION must be present and contain a valid integer indicating the protocol version. (3) For media playlists, #EXT-X-TARGETDURATION must be present and must be an integer representing the maximum segment duration rounded up to the nearest integer. (4) No individual segment duration (specified in #EXTINF) may exceed the declared target duration value. (5) Segment URIs must be non-empty and properly formatted, appearing on the line immediately following their #EXTINF tag. (6) Tags that must appear only once (like #EXT-X-TARGETDURATION, #EXT-X-MEDIA-SEQUENCE) are checked for duplicates that would indicate a malformed playlist.
Results are categorized into three severity levels to help you prioritize fixes. Errors indicate violations that will cause playback failures on most players and must be fixed before deployment. These include missing required tags, invalid values, and structural problems that prevent proper parsing. Warnings indicate issues that may cause problems on some players or represent non-compliance with the specification but might still play on lenient implementations. Info messages provide observations about the playlist structure, such as detected playlist type, total segment count, cumulative duration, and protocol version — useful for understanding your manifest at a glance.
The entire validation process runs in your browser using JavaScript. The M3U8 content is parsed line by line, tags are extracted and validated against the specification rules, and results are generated without any network communication. This is particularly important for manifests that contain sensitive information such as encryption key URIs, internal CDN hostnames, or token-authenticated segment URLs that should never be exposed to third-party services. Your content remains completely private on your device throughout the validation process, making this tool safe to use with production manifests containing proprietary infrastructure details.
Quickly identify manifest errors causing playback failures on specific devices or players.
Validate manifests generated by your encoding pipeline before deploying to production CDN.
Understand HLS requirements by experimenting with manifests and seeing which rules pass or fail.
Include manifest validation in your QA workflow to catch issues before they reach end users.
Verify manifest integrity after migrating content between CDN providers or storage backends.