Skip to main content

Prerequisites

Before you begin, make sure you have:
  • Installed HLS Downloader on your browser (see Installation)
  • A webpage with an HLS video stream to download
If you don’t have an HLS stream handy, many video platforms use HLS for streaming. Look for sites that deliver adaptive streaming video.

Download your first stream

1

Browse to a page with HLS video

Navigate to any webpage that plays an HLS video and start playback. The video must begin playing for HLS Downloader to detect the stream.The extension automatically monitors network requests for .m3u8 playlists in the background.
2

Open HLS Downloader

Click the HLS Downloader icon in your browser toolbar. Detected playlists appear in the Sniffer tab.
The extension icon updates when a new playlist is detected on the current tab.
You’ll see a list of captured playlists with metadata like:
  • Page title
  • Playlist URL
  • Timestamp
3

Select a playlist

Click Select next to the playlist you want to download.HLS Downloader will fetch the master manifest and parse all available video and audio tracks. This may take a few seconds depending on the playlist size.
4

Choose quality and audio

Once parsing completes, you’ll see:
  • Video tracks: Listed by resolution (4K, 1080p, 720p, etc.) with bitrate and FPS
  • Audio tracks: Listed by language and bitrate (if available)
Select your preferred options:
  1. Choose a video quality from the dropdown
  2. Optionally choose a separate audio track (if multiple tracks are available)
  3. If subtitles or closed captions are available, select a subtitle track
Higher quality streams will take longer to download and produce larger files. The UI shows technical details like bitrate, resolution, and FPS to help you choose.
5

Start the download

Click the Download button to begin.The download process includes:
  1. Fragment fetching: Downloads all video and audio segments
  2. Decryption: If the stream is encrypted (AES-128), segments are decrypted locally
  3. Muxing: FFmpeg.wasm merges audio and video into a single MP4 file
You can monitor progress in the Downloads tab.
6

Save your video

When processing completes, your browser will prompt you to save the MP4 file (unless you’ve disabled the save dialog in Settings).Choose a location and filename, then click Save.Grab a coffee ☕ while ffmpeg.wasm works its magic!

Alternative: Direct URL entry

If you already have the .m3u8 playlist URL, you can skip automatic detection:
1

Open the Direct tab

Click the HLS Downloader icon and switch to the Direct tab
2

Paste the playlist URL

Enter or paste the full .m3u8 URL into the input field and press Enter
3

Proceed with selection

Follow steps 3-6 from the main workflow above to select quality and download

Understanding the UI tabs

HLS Downloader has several tabs to help you manage streams:

Sniffer

Lists all automatically detected HLS playlists on the current page with metadata and selection options

Direct

Manually enter a playlist URL to create a download without automatic sniffing

Downloads

Monitor active and finished jobs with progress bars, cancel/retry controls, and save options

Settings

Adjust download concurrency, retry attempts, and save dialog preferences

Troubleshooting common issues

If the Sniffer tab is empty:
  • Make sure the video is actually playing on the page
  • Check if the site uses HLS streaming (not all video sites do)
  • Try refreshing the page and playing the video again
  • Some sites may use DRM or non-standard streaming protocols
If your download fails:
  • Check your internet connection
  • Try increasing Fetch attempts in the Settings tab
  • Reduce Concurrency if you’re on a slow connection
  • Some encrypted streams may not be supported
Some HLS streams separate video and audio:
  • Make sure you selected both a video track and an audio track before downloading
  • If no audio tracks appear, the stream may be video-only
FFmpeg.wasm runs in your browser and uses significant memory:
  • Close other tabs to free up RAM
  • For very large videos (4K, long duration), your browser may run out of memory
  • Consider downloading smaller quality variants for very long streams

Advanced settings

Customize download behavior in the Settings tab:
  • Concurrency: Number of parallel fragment downloads (higher = faster, but more network load)
  • Fetch attempts: Number of retries for failed fragment downloads (higher = more resilient)
  • Show save dialog: Whether to prompt for save location or use default downloads folder
Setting concurrency too high may trigger rate limiting on some servers. Start with the default value and adjust if needed.

Next steps

Usage guide

Explore all features and advanced workflows

Features reference

Deep dive into automatic detection, parsing, and muxing

Build docs developers (and LLMs) love