Capture and download HTTP Live Streams (HLS) straight from your browser.
Free • Open Source • MIT Licensed
- Automatic stream discovery Detects HLS playlists on the page the moment you open it. No DevTools sniffing required.
- Fine-grained quality control Pick any combination of video resolution (240p → 4K) and audio language/bit-rate before you download, so you never waste bandwidth on the wrong track.
- 100% local merge with
ffmpeg.wasm
A WebAssembly build of FFmpeg runs right inside your tab, muxing the chosen audio + video into a single MP4. * Nothing is uploaded, keeping your files private. - Works everywhere you browse
Verified on Firefox, Edge, Chrome, Brave, Arc, and other Chromium-based browsers, on Windows, macOS, and Linux.
Browser | Download / availability |
---|---|
Not supported because it only allows Manifest V3. I'm working on a solution. | |
Get it on Firefox Add-ons or use manual installation | |
Get it from Edge Add-ons | |
Use manual installation | |
Use manual installation | |
Use manual installation |
*For Brave/Arc/etc. download the ZIP from the latest release and follow the manual-install steps below.
Newer versions (≥ 4.1.2) ship only a ZIP archive.
Older versions can still be installed from the CRX (see the collapsible notes).
Manual install for versions < 4.1.2 (CRX)
- Grab
hls-downloader.crx
from the corresponding legacy release. - Open
chrome://extensions/
, enable Developer mode. - Drag and drop the CRX onto the extensions page.
- Confirm any prompts.
Currently not supported
- Download
extension-chrome.zip
from the latest release. - Extract the ZIP to a convenient folder.
- Open
brave://extensions/
and enable Developer mode. - Click Load unpacked and select the extracted folder (the one that contains
manifest.json
). - Enjoy 🎉
- Download
extension-chrome.zip
from the latest release. - Extract the ZIP to a convenient folder.
- Open Arc Menu → Extensions → Manage Extensions (or press Command+T or Ctrl+T and type Manage Extensions), then enable Developer mode.
- Click Load unpacked and select the extracted folder (the one that contains
manifest.json
). - Enjoy 🎉
- Download
extension-chrome.zip
from the latest release. - Extract the ZIP to a convenient folder.
- Open
opera://extensions/
and enable Developer mode. - Click Load unpacked and select the extracted folder (the one that contains
manifest.json
). - Enjoy 🎉
- Opem
about:debugging#/runtime/this-firefox
. - Click Load Temporary Add-on... and pick the XPI.
- Browse to a page that plays an HLS video and start playback.
- Click the HLS Downloader icon – detected playlists appear in the Sniffer tab.
- Choose Select next to a playlist.
- Pick your video & audio streams, then press Download.
- Grab a coffee ☕ –
ffmpeg.wasm
merges everything and your browser prompts you to save the MP4 when done.
git clone https://github.com/puemos/hls-downloader.git
cd hls-downloader
pnpm install
pnpm build # output → ./dist/
# - Bundled archives: `extension-chrome.zip`, `extension-firefox.zip`
# - Run tests & generate coverage badge:
pnpm test # unit tests
pnpm test:coverage # combined coverage + badge
pnpm dev # watches & rebuilds into dist/
pnpm storybook # preview popup & design-system components
src/
├─ assets/ # extension manifest & icons
├─ background/ # background scripts
├─ core/ # shared logic & Redux store
├─ design-system/ # UI component library
└─ popup/ # React popup UI
We ♥ PRs! See the contributing guide and automation guide.
git checkout -b feature/my-awesome-idea
# ...code...
git commit -am "feat: add awesome idea"
git push origin feature/my-awesome-idea
# open PR 🎉
TLDR: Be kind This project follows the Contributor Covenant.
MIT License – click to expand
The MIT License (MIT)
Copyright (c) 2025 Shy Alter
More: https://github.com/puemos/hls-downloader/blob/master/LICENSE
Made with ♥ by puemos