URIs resolve from each playlist
A relative URI is interpreted from the directory containing the playlist that uses it. The master and its child media playlist can therefore have different resolution bases.
The browser does not know the folder that existed on your computer; it follows only the hosted URL and text inside the playlist.
/show/master.m3u8 contains: 720p/index.m3u8
/show/720p/index.m3u8 contains: segment_000.ts
Final segment URL: /show/720p/segment_000.tsPreserve case and encoding
Object storage and Linux hosts normally distinguish uppercase and lowercase names. Spaces and non-ASCII characters can also introduce URL-encoding mistakes.
Generated simple filenames reduce that risk. Preserve them unless you update every matching URI deliberately.
Choose relative or absolute URLs carefully
Relative paths make a complete versioned package portable under a new base prefix. Absolute HTTPS URLs can deliberately point to another media origin but couple the playlist to that hostname.
Do not use local filesystem paths, backslashes, or file:// URLs in a public playlist.
- Use forward slashes
- Keep Master child directories
- Avoid ../ unless the hosting layout is intentional
- Test from the final public URL
Diagnose one URI at a time
Start at the primary playlist, copy the first referenced URI, resolve it against the current playlist URL, and request it directly. Repeat for the child playlist and a segment.
This short chain usually reveals whether the error comes from text inside the M3U8, an incomplete upload, a rewrite rule, or a case mismatch.
Ready to create your HLS package?
Return to the converter. Your source file stays inside your browser.
Open converter