A youtube audio downloader based on yt-dlp with automated id tag compilation using data from MusicBrainz databases.
Caution
The program at the moment SHOULD work without problems but it is still far to be perfect.
- yt-dlp
- libmusicbrainz (only for manual compilation)
- libcoverart (only for manual compilation)
To "install" Trax you can compiling it using CMake, downloading an already compiled version from this GitHub page or using the install.sh script (only Linux for now).
To install Trax using CMake just execute the following commands while in the program directory:
mkdir build
cd build/
cmake ..
make
Doing so all the CMake generated file will be created in the build folder.
After cloning the repo, you can install Trax by using the following command:
sudo ./install.sh
This will still compile the code using CMake but it will also add the program
to the /usr/local/bin directory.
This is the easiest way to "install" Trax. Just download one of the releases. If you want to use trax globally you can use the simple_install.sh provided with each release. The script will simply move the executable in the /usr/local/bin folder.
The basic way to use Trax is to use the following syntax:
trax [ALBUM] [ARTIST] [URL]
This let the user to download an entire playlist and each downloaded video will be converted to mp3 files. Then the mp3 tags will be automatically filled with information retrieved using the specified album and artist.
If no info is retrieved from the MusicBrainz database, only the files download and the mp3 convertion will be performed.
The user can add flags to modify the program behaviour. Each flag should be added after the URL field, with exception for "-h" flag.
trax [ALBUM] [ARTIST] [URL] [OPTIONS]
| Flag | Description |
|---|---|
| -h, --help | output trax manual |
| -d | enable debug mode to see the yt-dlp output stream |
| -s | use single song mode when the inserted url doesn't refer to a playlist |
| -x, --no-meta | avoid metadata download and file manipulation; just download audio |
| -k, --keep-image | keep the cover art image |
| -m, --only-meta | skip the download and search only the metadata |
| -i, --iteration | -i [VALUE] specify which result to get from the metadata query (default is 0, the first one) |
| -y | -y [YEAR] specify album release year |
The code also contains the C++ spinner header created by jkuri
- Linux
- Windows 11 [TODO]
- MacOs [TODO]
- Add support for Windows
- Add support for MacOS
