Skip to content

cssnr/hls-downloader-client

Repository files navigation

GitHub Downloads GitHub Release Workflow Build Workflow Lint Quality Gate Status

HLS Video Downloader Client

HLS Video Downloader Native Messaging Client for Windows, Linux and macOS.

Note

On macOS you need to Ctrl+Click or Right-Click the .pkg and then choose Open to install.

This is the client for this Web Extension: https://github.com/cssnr/hls-video-downloader

Browsers

Tested and working in the following browsers:

  • Firefox
  • Waterfox
  • Edge
  • Chrome
  • Chromium
  • Brave
  • Opera
  • Vivaldi
  • Ghost

Installing

Download and run the installer for your operating system from the latest release.

Running From Source

This can be run directly from the client.py source file. To do this, all the configuration must be in place and Python installed. You can either run the installer first or manually configure the app (see More Info).

Then, place the client.bat (Windows) or the client.sh (Linux/macOS) into the installation directory and update it to point to your source client.py file. Note: You may need to place an ffmpeg executable in the src directory on some operating systems.

ffmpeg = shutil.which("ffmpeg")
if not ffmpeg:
    ffmpeg = os.path.join(os.getcwd(), "ffmpeg")

Lastly, update the installed manifest file for your browser to point to the client.bat or client.sh.

This information is only here for advanced users. Different operating systems and browsers have different requirements. For this purpose, I created an Installers for each OS. For more details, see the More Info section below.

Building

This guide is for reference only. The release builds are built with GitHub Actions. See build.yaml for more details.

Windows

Note

The Windows installer uses Inno Setup which must be manually installed.

Note: FFmpeg must be placed in dist/ffmpeg.exe

Build the App:

python -m pip install -r requirements.txt
pyinstaller --noconfirm client.spec
python manifest.py

Create the Installer:

iscc.exe client.iss

Linux

Note: FFmpeg must be placed in dist/ffmpeg

#python -m pip install -r requirements.txt
python manifest.py
bash build-linux.sh

MacOS

Note

The macOS installer uses Packages which must be manually installed.

Note: FFmpeg must be placed in dist/ffmpeg

Build the App:

python -m pip install -r requirements.txt
pyinstaller --noconfirm client.spec
python manifest.py

Create the Package:

bash build-mac.sh

More Info

Windows requires corresponding registry entries for the manifest files (see location links below).

Windows and macOS requires packaging the app with pyinstaller to bundle python.

Manifest files must be renamed to org.cssnr.hls.downloader.json on Linux and macOS.

Manifest key path must be set to the absolute path to the client location.

Manifest files must be placed in specific directories:

The client location must be writable by the user and a writable log.txt must be present in that location due to the current logging configuration in the client.py.

The client.py must be executable by the user with Python installed and working.