HLS Downloader

Uses network

Download an HLS stream from its .m3u8 URL and save it as a single .ts or .mp4 file. Choose a quality from a master playlist and fetch segments in parallel. Segments are fetched directly by your browser and joined locally, so it only works with unencrypted streams whose server allows cross-origin (CORS) requests.

About this tool

What is the HLS Downloader?

HLS (HTTP Live Streaming) delivers video as a playlist file (.m3u8) that points to many short segment files. This tool reads the playlist, downloads every segment in your browser and joins them into one video file you can save. No conversion is done: MPEG-TS segments become a .ts file and fragmented MP4 segments become an .mp4 file.

How to use

  1. Paste the playlist address into m3u8 URL and click Load (or press Enter).
  2. If it is a master playlist, choose a Quality. Each option shows the resolution, bitrate and codecs when the playlist provides them.
  3. Check the summary line (number of segments, duration and output format), choose how many segments to fetch at once in Parallel (1, 2, 4, 6 or 8), and click Download. Cancel stops it.
  4. When all segments are done, click Save. MP4 results can be previewed in the page first.

Output format

Stream typeOutput
MPEG-TS segments (.ts)One .ts file (plays in VLC, mpv and similar players)
Fragmented MP4 segments (with EXT-X-MAP)One .mp4 file, with the init segment placed first

Features

  • Master and media playlists, with quality selection
  • Parallel segment download with automatic retries (3 attempts per segment)
  • Byte-range segments (EXT-X-BYTERANGE) are supported
  • Progress bar with segment count and downloaded size
  • The URL and the Parallel setting are remembered in this browser

Limitations

  • CORS: the browser can only read streams whose server allows access from other sites. If loading fails with a CORS message, this tool cannot download that stream.
  • No encrypted streams: AES-128, SAMPLE-AES and DRM-protected streams are detected and cannot be downloaded.
  • Live streams: only the segments listed when the playlist was loaded are downloaded.
  • Separate audio or subtitle renditions (EXT-X-MEDIA) are not merged.
  • The whole video is kept in memory until you save it, so very long or high-bitrate streams need plenty of RAM.

Only download content you have the right to save, and follow the terms of the service you are using.

FAQ

Does the video go through ToolPocket's servers?

No. Your browser requests the playlist and segments directly from the streaming server and joins them locally.

Why can't I play the .ts file in my browser?

Most browsers do not play MPEG-TS files directly. Open the saved file in a player such as VLC, or remux it to MP4 with a tool like ffmpeg.

Why do I get "Could not fetch" for a URL that plays fine elsewhere?

The server probably does not send CORS headers allowing other sites, or the URL requires cookies or tokens that only the original player has.