Pre-import inspection / M3U + M3U8
Make every track
findable.
Catch path, Unicode, and date corruption before a music server silently drops part of your set.
- Mode
- Read-only
- Network
- None
- Output
- Text + JSON

01 Resolve relative paths
02 Compare NFC / NFD
03 Flag invalid dates
Browser specimen / no upload
Test the path resolver
This worksheet checks path spelling locally. The downloadable CLI also reads date tags from resolved audio files.
Inspection report
Waiting for playlist paths.
Load the faulty sample or add your own paths, then run the inspection.
The boundary check
Looks equal isn’t equal.
- 01
Index the destination
Build a local map of real library spellings without changing a byte.
- 02
Compare every entry
Check exact, canonical Unicode, and destination-aware case variants.
- 03
Inspect date tags
Spot year zero, malformed calendar dates, and implausible future values.
- 04
Handoff with proof
Use precise text diagnostics, versioned JSON, or an optional corrected copy.
Recorded run / 5 seconds
See the fault lines.
The silent recording loads a known-faulty playlist, runs the local worksheet, and reveals Unicode, case, and missing-file findings. The live worksheet above follows the same steps.
Single local binary / v0.1.0
Inspect before import.
No account. No telemetry. No metadata service. Build the Rust binary, point it at your playlist and library root, and keep the report with the transfer.
$ cargo install --path crates/playlist-path-linter
$ playlist-path-linter lint set.m3u8 --root /music
$ playlist-path-linter lint set.m3u8 --root /music --fix set.fixed.m3u8 --json