If you're looking for a template project, check out this repo: https://github.com/puemos/browser-extension-template
Capture and download HTTP Live streams (HLS) from your browser
This extension is completely free and published under the MIT license.
Table of Contents
Google removed the extension from the Chrome Web Store following a claim:
Globo Comunicação e Participações SA informs that the denounced extension is practicing and/or supporting the practice of illegal activities related to Globo's Copyright Law. This extension allows full and high resolution downloads of Globo content from the Globoplay streaming platform. The disclosure and sale of clandestine services puts the safety of consumers at risk and contributes to organized crime.
- Clone the repo
- Ensure you have Node and pnpm installed
- Run
pnpm install
- Run
make build
(orsh ./scripts/build.sh
) and verify it completes without errors - Built files will be at
./dist/
- The zip archive will be in
./extension-archive.zip
Run make dev
to start watchers for all packages while you edit. The
compiled extension will appear in dist/
as you work.
Run make storybook
to launch Storybook for previewing popup and design-system components.
src/
├── assets # extension manifest and icons
├── background # background scripts
├── core # shared logic and Redux store
├── design-system # UI component library
└── popup # React popup UI
- Download the
hls-downloader.crx
file from the latest release (https://github.com/puemos/hls-downloader/releases) - Open
chrome://extensions/
- Enable
Developer mode
- Drop the
hls-downloader.crx
file into the page - Enjoy!
- Browse to a page that plays an HLS video and start playback.
- Click the HLS Downloader icon. Detected playlists will appear in the Sniffer tab.
- Choose Select next to the playlist you want to download.
- Pick the desired video and audio streams from the playlist view.
- Press Download. The extension fetches all segments and automatically
merges them into a single MP4 using the bundled
ffmpeg.wasm
. - When processing completes, your browser will prompt you to save the merged file.
ffmpeg
support is bundled with the extension so no external dependencies are
required.
Additional automation guidelines can be found in AGENTS.md.
TL;DR
- Fork it!
- Create your feature branch:
git checkout -b my-new-feature
- Commit your changes:
git commit -am 'Add some feature'
- Push to the branch:
git push origin my-new-feature
- Submit a pull request :D
The MIT License (MIT)
Copyright (c) 2024 Shy Alter
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.