Check playlist bindings before moving media
A portable playlist needs explicit source identity, preserved occurrences and a complete copied reference closure.
A saved playlist does not carry its source files
One user wanted every song mentioned in a playlist collected into a folder; a later update changed the source to M3U and still wanted a convenient GUI. Another user had MP3 files in USB subfolders and asked whether moving the playlist and media would keep the references usable. Both tasks need a complete selected reference closure. A ZIP containing an unchanged absolute-path playlist can retain every byte while still pointing to the old location.
Identity belongs to an explicit binding
Two files named track.wav can belong to different albums or versions. A path’s basename does not establish which selected original is correct. T312 therefore allows exact bare-name matches and asks for explicit pairs for every other path. It records that declaration without claiming to have resolved an original filesystem path.
| Reference | Required decision | Unclaimed fact |
|---|---|---|
| track.wav | Exact selected basename | Media validity and playback support |
| C:\Music\track.wav | Explicit original literal → selected name | That old disk path exists or identifies the selection |
| file:///Music/track.wav | Explicit supported local URI binding | Any URI fetch or filesystem lookup |
| https://example.invalid/track.wav | Whole-batch refusal | Remote content availability |
Occurrences and physical copies serve different purposes
A repeated track is an ordered listening decision. Deduplicating its playlist rows would change the task. Copying its bytes repeatedly would waste space. The package keeps every occurrence, EXTINF and comment group while copying each selected referenced original only once. Different playlists can point to the same generated media path. Unused selections remain visible in the complete report and are not silently packed.
Separate the package from its audit trail
Generated paths use stable names such as media/0001.wav, while complete reports retain source names, original path literals, explicit bindings and SHA256. This makes the handoff auditable. It also means the report can reveal a source folder name that the rewritten playlist no longer contains; share the report only when that context is useful.
- JSON preserves exact values; CSV adds formula protection, so compare literal identity against JSON.
- Keep the entire extracted package together and test it in the intended player. A filename suffix is not a decoder or compatibility test.
- A capacity limit is a whole-batch boundary. The preview is bounded, but all accepted records remain in the downloads.
- Real Worker cancellation discards output; recovery uses the same originals rather than a partial archive.
References
- Original user task and M3U follow-up
Full question and author follow-up read on 2026-10-07; the later M3U and GUI request supports this local selected-file scope. Initial WPL remains outside scope.
- User question about moving USB playlists and media
Body read on 2026-10-07; subfolder reference portability is the actual task, while unlimited USB batches and all-player compatibility remain unclaimed.
Tools in this category
Expand a tool to see its steps, options and supported formats, then open its workspace.
Pack a portable local playlistBind local M3U references to selected originals, preserve repeated tracks and metadata, and download a complete relative-path ZIP with SHA256 reports.
Select UTF-8 extended M3U/M3U8 playlists and every referenced media original. Bare filenames match exactly. For a path or local file URI, provide an explicit pair linking that original literal to one selected filename. The complete package copies referenced originals once and preserves every playlist occurrence.
Steps
- Select the playlists and all referenced media originals in one local batch.
- Enter binding pairs such as [["C:\Music\track.wav","track.wav"]]; leave [] only for exact bare selected filenames.
- Create the package and review references, repeated tracks, source hashes and unused selections.
- Download ZIP and complete JSON/CSV. Extract the entire package together before testing it in the intended player.
Available options
- Explicit path bindings (JSON pairs)
- []
[[originalPath,selectedFilename],…]; paths remain inert. Every non-bare reference requires a pair, and every pair must be used. UTF-8 JSON ≤ 1 MiB.
Capabilities and limits
- 1–10 UTF-8 extended M3U/M3U8 files, each ≤ 1 MiB; 1–1,000 selected media originals, each ≤ 20 MiB; combined selected bytes ≤ 80 MiB. All limits apply together. Files ending in .m3u or .m3u8 are classified as playlists, regardless of MIME type.
- At most 10,000 ordered references, 200,000 physical playlist lines, 4,096 UTF-16 units per reference path or metadata line, and 512 UTF-16 units per selected basename. Up to 10,000 explicit binding pairs and 1 MiB of UTF-8 binding JSON. Duplicate exact selected basenames, duplicate or unused bindings, and missing targets reject the entire batch.
- Only #EXTM3U, #EXTINF and ordinary comments are supported. HLS, unknown #EXT directives, remote URLs, nested playlists and unbound non-bare paths are refused. A file URI may have no host or localhost; no query, fragment, credentials or remote authority is accepted. Nothing is fetched or executed.
- Complete JSON and formula-protected CSV together must fit 10 MiB. ZIP has a protective 96 MiB guard, dominated by the source and bounded rewrite limits; a legal 96 MiB package is not separately promised. The preview shows at most 200 rows and 2,000 UTF-16 units per cell; downloads retain every record. CSV formula-leading cells gain an apostrophe, while JSON retains exact original values.
- Media bytes are copied without decoding. A suffix is retained only as a generated package extension; it does not establish file authenticity, playback support, device compatibility or correct original path identity. Original disk files are never modified.