HLS and DASH Manifest Validator
Check the manifest metadata that describes an HLS or MPEG-DASH presentation. Supply up to twelve local playlists by their relative names or a static MPD. The checker expands segment times, compares available variants, and points to problematic tags without fetching media segments.
Key features
- Parse HLS master and media playlists with target duration, sequence, discontinuity, and end-list checks
- Resolve master-variant references against the supplied local bundle and flag missing or wrong playlist types
- Compare available HLS variant durations and discontinuity boundaries
- Expand static DASH SegmentTemplate timelines with timescale, start number, period, and repeat handling
- Flag explicit DASH timeline gaps, overlaps, invalid repeats, and variant duration drift
- Inspect a per-segment timeline and export a spreadsheet-safe CSV or JSON audit
How to use
- Upload M3U8 or MPD text files, or paste each manifest with a unique relative file name.
- For HLS, include the master and its media playlists under the names referenced by their URI lines.
- Run the audit and review file summaries and error or warning explanations.
- Inspect sequence numbers, start and duration values in the segment timeline.
- Export CSV or JSON and verify the actual media or playback separately.
Use cases
- Check whether a master playlist references media playlists missing from a local release package
- Find a target-duration mismatch or duplicate media-sequence tag in an HLS VOD playlist
- Compare two HLS renditions that end at different times or have different discontinuity boundaries
- Inspect a static DASH SegmentTimeline with an explicit time gap before publishing
Frequently asked questions
Does this tool play the stream or fetch every segment?
No. It parses only the manifest text you provide. It does not download segments, keys, or licenses, test codecs, validate bytes, or prove playback works.
What does a missing HLS reference mean?
A referenced relative playlist was not supplied in this local bundle. It may exist on your server; provide it under the referenced relative name to compare variants. Absolute or external URLs are reported without fetching them.
How are HLS durations compared?
For supplied media playlists the tool sums EXTINF values. If two master variants differ by more than half a second or have discontinuity boundaries more than half a second apart, it shows a warning. Different variants may still be intentionally structured differently.
Which DASH features are supported?
Static MPD periods with SegmentTemplate duration or SegmentTimeline, timescale, presentationTimeOffset, and startNumber are expanded. Dynamic/live MPDs, SegmentBase, SegmentList, remote BaseURL, DRM, byte-range media, and compressed or fetched segments are outside this audit.
Is a clean result proof that the stream is valid?
No. Clean means no issue was found in this documented metadata subset. Check the full specification, actual segment availability, decoding, encryption, and playback on target devices separately.
What are the input limits?
Up to 12 manifest files, 128 KiB per file, 512 KiB combined, and 2,000 expanded segments. Files are handled locally; oversized or duplicate-named inputs are rejected.
Privacy
Manifest contents remain in your browser and are processed locally. This tool makes no request for playlist, segment, key, or license URLs. CSV and JSON reports are created on your device.
Comments & questions