Skip to content

puemos/hls-downloader

HLS Downloader

Capture and download HTTP Live Streams (HLS) straight from your browser.
FreeΒ β€’Β OpenΒ SourceΒ β€’Β MIT Licensed

Test Coverage

Extension promo tile

Popup screenshot


✨ Features

  • 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.

πŸ“¦ Get It

Browser Download / availability
Google Chrome logoΒ Β Google Chrome Not supported because it only allows Manifest V3. I'm working on a solution.
Firefox logoΒ Β Firefox Get it on Firefox Add-ons or use manual installation
Microsoft Edge logoΒ Β Microsoft Edge Get it from Edge Add-ons
Brave logoΒ Β Brave Use manual installation
Arc logoΒ Β Arc Use manual installation
Opera logoΒ Β Opera Use manual installation

*For Brave/Arc/etc. download the ZIP from the latest release and follow the manual-install steps below.


πŸ› οΈ Installation

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)
  1. Grab hls-downloader.crx from the corresponding legacy release.
  2. Open chrome://extensions/, enable Developer mode.
  3. Drag and drop the CRX onto the extensions page.
  4. Confirm any prompts.

Google Chrome logo Chrome

Currently not supported

Brave logo Brave

  1. Download extension-chrome.zip from the latest release.
  2. Extract the ZIP to a convenient folder.
  3. Open brave://extensions/ and enable Developer mode.
  4. Click Load unpacked and select the extracted folder (the one that contains manifest.json).
  5. Enjoy πŸŽ‰

Arc logo Arc

  1. Download extension-chrome.zip from the latest release.
  2. Extract the ZIP to a convenient folder.
  3. Open Arc Menu β†’ Extensions β†’ Manage Extensions (or press Command+T or Ctrl+T and type Manage Extensions), then enable Developer mode.
  4. Click Load unpacked and select the extracted folder (the one that contains manifest.json).
  5. Enjoy πŸŽ‰

Opera logo Opera

  1. Download extension-chrome.zip from the latest release.
  2. Extract the ZIP to a convenient folder.
  3. Open opera://extensions/ and enable Developer mode.
  4. Click Load unpacked and select the extracted folder (the one that contains manifest.json).
  5. Enjoy πŸŽ‰

Firefox logo Firefox

  1. Opem about:debugging#/runtime/this-firefox.
  2. Click Load Temporary Add-on... and pick the XPI.

🎬 Usage

  1. Browse to a page that plays an HLS video and start playback.
  2. Click the HLS Downloader icon – detected playlists appear in the Sniffer tab.
  3. Choose Select next to a playlist.
  4. Pick your video & audio streams, then press Download.
  5. Grab a coffee β˜• – ffmpeg.wasm merges everything and your browser prompts you to save the MP4 when done.

πŸ§‘β€πŸ’» Development

Clone & Build

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

Live Development

pnpm dev        # watches & rebuilds into dist/
pnpm storybook  # preview popup & design-system components

Project Structure

src/
β”œβ”€ assets/          # extension manifest & icons
β”œβ”€ background/      # background scripts
β”œβ”€ core/            # shared logic & Redux store
β”œβ”€ design-system/   # UI component library
└─ popup/           # React popup UI

🀝 Contributing

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 πŸŽ‰

πŸ“œ Code of Conduct

TLDR: Be kind This project follows the Contributor Covenant.


πŸ“ License

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

Sponsor this project

Packages

No packages published

Contributors 9