Skip to content

A CLI downloader for khinsiders Game OST Archive with format chooser, batch processing and multithreading

License

Notifications You must be signed in to change notification settings

TheElevatedOne/ghost-dl

Repository files navigation

ghost-dl

GitHub License GitHub Downloads GitHub Issues or Pull Requests GitHub Actions Workflow Status

AUR Version AUR Version GitHub Release

ghost-dl-logo


Preview

ghost-dl.mp4

Usage

Binaries can be found in the Releases section

usage: ghost-dl [-h] [-o OUTPUT] [-t THREADS] [-d] [-q] [-v] INPUT

Positional:
  INPUT                 Song URL / Batch File

Help:
  -h, --help            Show a Help Message
  --version             Show Version

Optional:
  -o, --output OUTPUT   Output directory (Current if not set)
  -t, --threads THREADS
                        Number of download threads (default = 4; CPU Threads / 2)
  -d, --default         Select the highest quality files without manual input

Logging:
  -q, --quiet           Suppress Log Messages
  -v, --verbose         Show More Log Messages
  • INPUT - a downloads.khinsider url (ex. https://downloads.khinsider.com/game-soundtracks/album/minecraft) or a file with multiple urls in lines for batch processing
  • Output - a valid existing directory, will set to current directory if not set
  • Threads - uses multithreading to speed up loading and downloading, defaults to CPU Cores (eg. CPU Threads / 2)
  • Default - Without this flag, the script will prompt the user to enter the file type to download (eg. mp3, flac, ogg, etc.). If set, it will select the highest quality files.
  • Quiet - Supresses unneeded logging meassages
  • Verbose - Logs more messages

Exceptions and Errors

Most errors are being caught, other than errors from multiprocessing, as after trying multiple solutions to catch exceptions in multiple processes nothing worked.

If someone more knowledgeable than me knows how to fix this, either create an Enhancement Issue or Create a Pull Request.

Development Setup

Linux

Requirements: Python3, Venv

git clone https://github.com/TheElevatedOne/ghost-dl.git
cd ghost-dl/
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt

Building

Requirements: patchelf, ccache

# run nuitka-build.sh
./nuitka-build.sh

# or manually

mkdir build
nuitka --onefile --follow-imports --main=ghost_dl.py --output-dir=build --output-filename=ghost-dl

The Original name was supposed to be ost-dl but that is kinda lame, so I went with ghost-dl which still incorporates the information along with an identity.

About

A CLI downloader for khinsiders Game OST Archive with format chooser, batch processing and multithreading

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project