https://github.com/cssnr/hls-video-downloader
HLS Video Download Web Extension
https://github.com/cssnr/hls-video-downloader
browser-extension chrome-extension firefox-addon firefox-extension hls video-downloader
Last synced: about 1 year ago
JSON representation
HLS Video Download Web Extension
- Host: GitHub
- URL: https://github.com/cssnr/hls-video-downloader
- Owner: cssnr
- License: gpl-3.0
- Created: 2024-06-03T03:38:50.000Z (about 2 years ago)
- Default Branch: master
- Last Pushed: 2024-09-20T22:40:47.000Z (over 1 year ago)
- Last Synced: 2025-03-28T07:02:38.654Z (about 1 year ago)
- Topics: browser-extension, chrome-extension, firefox-addon, firefox-extension, hls, video-downloader
- Language: JavaScript
- Homepage: https://github.com/cssnr/hls-downloader-client
- Size: 398 KB
- Stars: 5
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[](https://chromewebstore.google.com/detail/hls-video-downloader/mpmiiaolodhanoalpjncddpmnkbjicbo)
[](https://addons.mozilla.org/addon/hls-video-downloader)
[](https://chromewebstore.google.com/detail/hls-video-downloader/mpmiiaolodhanoalpjncddpmnkbjicbo)
[](https://addons.mozilla.org/addon/hls-video-downloader)
[](https://github.com/cssnr/hls-video-downloader/releases/latest)
[](https://github.com/cssnr/hls-video-downloader/actions/workflows/build.yaml)
[](https://github.com/cssnr/hls-video-downloader/actions/workflows/test.yaml)
[](https://sonarcloud.io/summary/new_code?id=cssnr_hls-video-downloader)
[](https://github.com/cssnr/hls-video-downloader/graphs/commit-activity)
[](https://github.com/cssnr/hls-video-downloader)
[](https://cssnr.github.io/)
[](https://discord.gg/wXy6m2X8wY)
# HLS Video Downloader
Modern Chrome Web Extension and Firefox Browser Addon to Download HLS Videos using Native FFmpeg.
This Web Extension is a Work in Progress, may contain bugs or not work as expected.
* [Install](#Install)
* [Features](#Features)
- [Upcoming Features](#Upcoming-Features)
- [Known Issues](#Known-Issues)
* [Configuration](#Configuration)
* [Support](#Support)
* [Development](#Development)
- [Building](#Building)
* [Contributing](#Contributing)
## Install
* [Google Chrome Web Store](https://chromewebstore.google.com/detail/hls-video-downloader/mpmiiaolodhanoalpjncddpmnkbjicbo)
* [Mozilla Firefox Add-ons](https://addons.mozilla.org/addon/hls-video-downloader)
[](https://chromewebstore.google.com/detail/hls-video-downloader/mpmiiaolodhanoalpjncddpmnkbjicbo)
[](https://addons.mozilla.org/addon/hls-video-downloader)
[](https://chromewebstore.google.com/detail/hls-video-downloader/mpmiiaolodhanoalpjncddpmnkbjicbo)
[](https://chromewebstore.google.com/detail/hls-video-downloader/mpmiiaolodhanoalpjncddpmnkbjicbo)
[](https://chromewebstore.google.com/detail/hls-video-downloader/mpmiiaolodhanoalpjncddpmnkbjicbo)
[](https://chromewebstore.google.com/detail/hls-video-downloader/mpmiiaolodhanoalpjncddpmnkbjicbo)
[](https://chromewebstore.google.com/detail/hls-video-downloader/mpmiiaolodhanoalpjncddpmnkbjicbo)
All **Chromium** Based Browsers can install the extension from the
[Chrome Web Store](https://chromewebstore.google.com/detail/hls-video-downloader/mpmiiaolodhanoalpjncddpmnkbjicbo).
> [!WARNING]
> This web extension requires a client app to use native FFmpeg.
> Source: https://github.com/cssnr/hls-downloader-client
>
> - Windows: [install-win.exe](https://github.com/cssnr/hls-downloader-client/releases/latest/download/install-win.exe)
> - Linux: [install-linux.deb](https://github.com/cssnr/hls-downloader-client/releases/latest/download/install-linux.deb)
> - macOS: [install-macos.pkg](https://github.com/cssnr/hls-downloader-client/releases/latest/download/install-macos.pkg)
## Features
- Download `*.m3u8` videos using a native [ffmpeg application](https://github.com/cssnr/hls-downloader-client).
- Shows the total number of streams found on the toolbar icon.
- Sends a notification when complete you can click on to open the download folder.
### Upcoming Features
- Playlist parsing to display correct qualities and combine audio/video.
> [!TIP]
> **Don't see your feature here?**
> Request one on the [Feature Request Discussion](https://github.com/cssnr/hls-video-downloader/discussions/categories/feature-requests).
### Known Issues
- Streams with separate video and audio will show up as 2 downloads.
- Stream quality display is not yet accurate.
- Error handling and messages needs improving.
> [!TIP]
> **Don't see your issue here?**
> Open one on the [Issues](https://github.com/cssnr/hls-video-downloader/issues).
## Configuration
You can pin the Addon by clicking the `Puzzle Piece`, find the Web Extension icon, then;
**Chrome,** click the `Pin` icon.
**Firefox,** click the `Settings Wheel` and `Pin to Toolbar`.
To open the options, click on the icon (from above) then click `Open Options`.
## Support
For help using the web extension, utilize any these resources:
- Q&A Discussion: https://github.com/cssnr/hls-video-downloader/discussions/categories/q-a
- Request a Feature: https://github.com/cssnr/hls-video-downloader/discussions/categories/feature-requests
If you are experiencing an issue/bug or getting unexpected results, use:
- Report an Issue: https://github.com/cssnr/hls-video-downloader/issues
- Chat with us on Discord: https://discord.gg/wXy6m2X8wY
- Provide General Feedback: https://cssnr.github.io/feedback
Logs can be found inspecting the page (Ctrl+Shift+I), clicking on the Console, and;
Firefox: toggling Debug logs, Chrome: toggling Verbose from levels dropdown.
To support this project, see the [Contributing](#Contributing) section at the bottom.
# Development
**Quick Start**
First, clone (or download) this repository and change into the directory.
Second, install the dependencies:
```shell
npm install
```
Finally, to run Chrome or Firefox with web-ext, run one of the following:
```shell
npm run chrome
npm run firefox
```
Additionally, to Load Unpacked/Temporary Add-on make a `manifest.json` and run from the [src](src) folder, run one of the following:
```shell
npm run manifest:chrome
npm run manifest:firefox
```
Chrome: [https://developer.chrome.com/docs/extensions/get-started/tutorial/hello-world#load-unpacked](https://developer.chrome.com/docs/extensions/get-started/tutorial/hello-world#load-unpacked)
Firefox: [https://extensionworkshop.com/documentation/develop/temporary-installation-in-firefox/](https://extensionworkshop.com/documentation/develop/temporary-installation-in-firefox/)
For more information on web-ext, [read this documentation](https://extensionworkshop.com/documentation/develop/web-ext-command-reference/).
To pass additional arguments to an `npm run` command, use `--`.
Example: `npm run chrome -- --chromium-binary=...`
## Building
Install the requirements and copy libraries into the `src/dist` directory by running `npm install`.
See [gulpfile.js](gulpfile.js) for more information on `postinstall`.
```shell
npm install
```
To create a `.zip` archive of the [src](src) directory for the desired browser run one of the following:
```shell
npm run build
npm run build:chrome
npm run build:firefox
```
For more information on building, see the scripts section in the [package.json](package.json) file.
### Chrome Setup
1. Build or Download a [Release](https://github.com/cssnr/hls-video-downloader/releases).
1. Unzip the archive, place the folder where it must remain and note its location for later.
1. Open Chrome, click the `3 dots` in the top right, click `Extensions`, click `Manage Extensions`.
1. In the top right, click `Developer Mode` then on the top left click `Load unpacked`.
1. Navigate to the folder you extracted in step #3 then click `Select Folder`.
### Firefox Setup
1. Build or Download a [Release](https://github.com/cssnr/hls-video-downloader/releases).
1. Unzip the archive, place the folder where it must remain and note its location for later.
1. Go to `about:debugging#/runtime/this-firefox` and click `Load Temporary Add-on...`
1. Navigate to the folder you extracted earlier, select `manifest.json` then click `Select File`.
1. Optional: Open `about:config` search for `extensions.webextensions.keepStorageOnUninstall` and set to `true`.
If you need to test a restart, you must pack the addon. This only works in ESR, Development, or Nightly.
You may also use an Unbranded Build: [https://wiki.mozilla.org/Add-ons/Extension_Signing#Unbranded_Builds](https://wiki.mozilla.org/Add-ons/Extension_Signing#Unbranded_Builds)
1. Run `npm run build:firefox` then use `web-ext-artifacts/{name}-firefox-{version}.zip`.
1. Open `about:config` search for `xpinstall.signatures.required` and set to `false`.
1. Open `about:addons` and drag the zip file to the page or choose Install from File from the Settings wheel.
# Contributing
Currently, the best way to contribute to this project is to give a 5-star rating on
[Google](https://chromewebstore.google.com/detail/hls-video-downloader/mpmiiaolodhanoalpjncddpmnkbjicbo) or
[Mozilla](https://addons.mozilla.org/addon/hls-video-downloader) and to star this project on GitHub.
Other Web Extensions I have created and published:
- [Link Extractor](https://github.com/cssnr/link-extractor)
- [Open Links in New Tab](https://github.com/cssnr/open-links-in-new-tab)
- [HLS Video Downloader](https://github.com/cssnr/hls-video-downloader)
- [SMWC Web Extension](https://github.com/cssnr/smwc-web-extension)
- [PlayDrift Extension](https://github.com/cssnr/playdrift-extension)
- [ASN Plus](https://github.com/cssnr/asn-plus)
- [Aviation Tools](https://github.com/cssnr/aviation-tools)
- [Text Formatter](https://github.com/cssnr/text-formatter)
For a full list of current projects visit: [https://cssnr.github.io/](https://cssnr.github.io/)