| .github | ||
| .vscode | ||
| assets | ||
| src | ||
| .gitignore | ||
| build.rs | ||
| Cargo.lock | ||
| Cargo.toml | ||
| LICENSE | ||
| mp3lame.lib | ||
| README.md | ||
DownOnSpot
A Spotify downloader written in Rust
Disclaimer
DownOnSpot was not developed for piracy.
It is meant to be used in compliance with DMCA, Section 1201, for educational, private and fair use.
I am not responsible in any way for the usage of the source code.
Features
- Use free Spotify accounts (if using free-librespot fork)
- Download 96k, 160, 256kbit/s audio with a free and 320 kbit/s audio with a premium account from Spotify, directly
- Multi-threaded
- Download tracks, playlists, albums and artists
- Convert to mp3
- Metadata tagging
- Simple usage over CLI
Building
Clone the repository using git and change to the local repository directory:
git clone https://github.com/oSumAtrIX/DownOnSpot.git
cd DownOnSpot
To build this project and use the crate free-librespot, you will need use this private ssh key. This will allow the use of free Spotify accounts.
Follow this answer by DopeGhoti on stackexchange.com on how to set up and use the private key.
A sample ~/.ssh/config file could look like this:
Host github.com
User git
IdentityFile ~/.ssh/free_librespot_private_key
If you do not want to use the fork of librespot convert the git dependency to a regular dependency by removing git = "ssh://git@github.com/oSumAtrIX/free-librespot.git" inside Cargo.toml.
To build this project you will need Nightly Rust. You can install it by following rustup.rs instructions.
cargo build --release
If you get a linker error, you might need to download the standard libmp3lame library.
Usage/Examples
To use DownOnSpot you first need to run it once and edit the configuration file. The default configuration file will be created in the same directory as your shell.
$ down_on_spot.exe
Settings could not be loaded, because of the following error: IO: NotFound No such file or directory. (os error 2)...
..but default settings have been created successfully. Edit them and run the program again.
$ down_on_spot.exe
Usage:
down_on_spot.exe (track_url | album_url | playlist_url | artist_url)
Template variables
The following variables are available for path and filename_template in the settings.json:
- %0disc%
- %0track%
- %album%
- %albumArtist%
- %albumArtists%
- %artist%
- %disc%
- %id%
- %title%
- %track%
Known issues
- Sometimes downloads slow down
- Sometimes failing due to
channel error