Pack complete local playlist references
Create a relative-path playlist package from explicitly selected originals, preserving ordered repeats and complete source evidence.
Select the task inputs together
The original user wanted the tracks referenced by a playlist collected into one folder. Their later update used M3U and still asked for a GUI. T312 handles that selected local reference task with a complete package: UTF-8 extended M3U/M3U8 plus all media originals. It does not read WPL, search your disk or fetch a URL.
Files ending in .m3u or .m3u8 are playlists; every other selected file is an opaque media original. Select each referenced original yourself. Exact duplicate selected basenames reject the batch because one reference could otherwise identify multiple originals.
| Input | Meaning | Complete output |
|---|---|---|
| M3U/M3U8 | Ordered references, EXTINF and ordinary comments | Rewritten playlist-1.m3u8, playlist-2.m3u8, … |
| Selected media | Actual original bytes chosen by you | Referenced originals copied once under media/0001.extension |
| Explicit binding JSON | Original literal → exact selected filename | Full binding, source SHA256 and unused-file JSON/CSV |
Bind paths explicitly
A bare line track.wav can match a selected track.wav exactly. C:\Music\track.wav, ./Album/track.wav and file:///Music/track.wav require a binding pair even when their last filename matches. A basename cannot prove that an old path refers to the chosen original.
Enter a JSON array of pairs, for example [["C:\\Music\\track.wav","track.wav"]]. For a local file URI, bind its exact original literal, including percent encoding. Parsing a URI only checks the supported syntax and its basename; it never navigates or resolves the URI. Duplicate bindings, missing selected targets and bindings not used by the selected playlists all fail the batch.
- Use [] only when all references are exact bare selected filenames.
- No host or localhost is allowed for file URIs; query, fragment, credentials and remote authorities are refused.
- A remote URL, nested playlist, HLS or unknown #EXT directive is outside this profile.
Keep repeated occurrences and metadata
In the checked example, first.m3u8 references 曲一.wav twice and second.m3u8 references 曲二.wav once. The two playlist outputs keep all three occurrences; media/0001.wav is copied once and referenced twice. The # retained comment, original EXTINF title and duration text stay in their original occurrence groups. unused.wav appears in the complete report but is not copied.
| Playlist | Original literal | Delivered reference |
|---|---|---|
| first.m3u8, occurrence 1 | C:\Music\曲一.wav | media/0001.wav |
| first.m3u8, occurrence 2 | C:\Music\曲一.wav | media/0001.wav |
| second.m3u8, occurrence 1 | file:///Music/%E6%9B%B2%E4%BA%8C.wav | media/0002.wav |
Apply the budgets together
Select 1–10 playlists of at most 1 MiB each and 1–1,000 media originals of at most 20 MiB each. All selected bytes together must fit 80 MiB. The published workload also limits physical lines and reference records; empty lines count toward the physical-line ceiling.
| Dimension | Limit |
|---|---|
| Ordered references / physical playlist lines | 10,000 / 200,000 |
| Path or metadata line / selected basename | 4,096 / 512 UTF-16 units |
| Explicit pairs / raw binding text | 10,000 / 1 MiB UTF-8 |
| Complete JSON and CSV together | 10 MiB |
| ZIP protective allocation guard | 96 MiB; source and rewrite limits dominate it |
Use complete downloads and recover cleanly
Download the ZIP and full JSON/CSV. JSON includes every original playlist hash, every ordered reference, comments, EXTINF, explicit binding, copied original hash and unused selected original. CSV protects formula-leading cells with an apostrophe; the exact source literals remain in JSON. The table previews 200 rows and 2,000 UTF-16 units per cell.
Extract the whole ZIP together so the generated relative paths remain valid. The tool does not decode media or guarantee your device supports the suffix or codec. Reports retain original path literals, so choose which files to share deliberately. A failed or cancelled batch publishes no partial success archive; fix the named cause and rerun the same supported originals.
- The native capacity proof copies all 1,000 selected small WAV originals and independently checks every ZIP entry byte and CRC.
- The 80 MiB and exact 10 MiB report vectors are actual source data; first excesses reject the whole batch.
- Actual unfinished Worker hash progress can be cancelled, then the same originals can be recovered without an artificial delay. Native proof does not replace the final browser checks.
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.