gv45 gv45

HLS Manifest Validator - Check M3U8 Playlist Compliance

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.

How It Works

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.

Playlist Types

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.

Validation Rules

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.

Error Severity Levels

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.

Browser-Based Processing

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.

Use Cases

Debugging Playback Issues

Quickly identify manifest errors causing playback failures on specific devices or players.

Encoder Output Verification

Validate manifests generated by your encoding pipeline before deploying to production CDN.

Learning HLS Specification

Understand HLS requirements by experimenting with manifests and seeing which rules pass or fail.

QA & Compliance Testing

Include manifest validation in your QA workflow to catch issues before they reach end users.

CDN Migration Verification

Verify manifest integrity after migrating content between CDN providers or storage backends.

Frequently Asked Questions

An HLS manifest (M3U8 file) is a text-based playlist that tells video players how to stream content. It contains references to media segments, their durations, encryption information, and variant stream details. Master playlists reference multiple quality levels, while media playlists list individual segments.

This validator checks playlists against RFC 8216 (HTTP Live Streaming specification) published by Apple and the IETF. It validates required tags, proper tag ordering, segment duration compliance, and structural requirements defined in the specification.

The validator detects missing EXTM3U header, invalid or missing EXT-X-VERSION, missing EXT-X-TARGETDURATION, segments exceeding target duration, invalid URI references, improper tag ordering, missing EXT-X-ENDLIST for VOD content, and duplicate tags that should appear only once.

Yes. The validator automatically detects whether the input is a master playlist (containing EXT-X-STREAM-INF tags) or a media playlist (containing EXTINF segment entries) and applies the appropriate validation rules for each type.

No. All validation runs entirely in your browser using JavaScript. Your manifest content never leaves your device. This is especially important for manifests containing encryption key URIs or internal CDN paths that should remain private.

Related Tools & Articles