
HLS (M3U8) to MP4
Stitch an HLS stream into one MP4: drop its .m3u8 playlist (a master playlist naming another playlist is fine too) and every .ts or .m4s segment it lists in one batch. Every packet is copied straight across with no decode and no re-encode. A segment the playlist names but you did not include is a clear refusal, not a silently short video.
HLS (M3U8) to MP4 gathers a dropped playlist and every segment it lists, joining them into one continuous MP4 file. Nothing gets decoded or rebuilt; each packet moves across exactly as stored. A segment the playlist names that you forgot to include stops the run, naming what is missing, rather than shipping a shorter video.
Questions
What files do I need to drop?
The .m3u8 playlist and every .ts or .m4s segment it lists, all in one batch. For a master playlist, include the media playlist it points to as well.
Does it decode the video?
No. Every packet is copied straight from the segments into a new MP4 with no decode and no re-encode, so quality matches the source exactly.
What happens if I am missing a segment?
The tool refuses and names the missing path, rather than silently stitching together a shorter video than the playlist describes.
Does it handle a master playlist?
Yes. A playlist declaring stream variants is detected and used as the root, so dropping a master playlist plus its media playlist and segments resolves correctly.
Does this run outside the browser?
Yes. Because nothing is decoded, it runs in Node, on the command line and through MCP as well as on the web page.