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
Technical blueprint showing playlist records passing through normalization and validation checkpoints into matched music folders.
FIG. 01 Path resolution before library handoff

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.

M3U / M3U8

Paste paths, or .

ONE PER LINE

Paste relative paths, or .

Inspection report

Waiting for playlist paths.

No inspection yet

Load the faulty sample or add your own paths, then run the inspection.

The boundary check

Looks equal isn’t equal.

  1. 01

    Index the destination

    Build a local map of real library spellings without changing a byte.

  2. 02

    Compare every entry

    Check exact, canonical Unicode, and destination-aware case variants.

  3. 03

    Inspect date tags

    Spot year zero, malformed calendar dates, and implausible future values.

  4. 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