|
|
||
|---|---|---|
| .cargo | ||
| .github | ||
| assets | ||
| src | ||
| .gitignore | ||
| build.rs | ||
| Cargo.lock | ||
| Cargo.toml | ||
| LICENSE | ||
| mp3lame.lib | ||
| README.md | ||
| rustfmt.toml | ||
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
- Works with free Spotify accounts
- Download 96, 160kbit/s audio with a free, 256 and 320 kbit/s audio with a premium account from Spotify, directly
- Multi-threaded
- Search for tracks
- 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 -
Build
cargo build --release
Warning
You need this private SSH key to clone a dependency of DownOnSpot in order to use it with a free Spotify account. Follow this answer by DopeGhoti on stackexchange.com to set up SSH with the private key. A sample
~/.ssh/configfile could look like this:Host github.com IdentityFile ~/.ssh/free_librespot_private_key
Note
If you do not want to use
free-librespot(i.e. if you are using a paid Spotify account), then remove the git dependency offree-librespot. For that, replacegit = "ssh://git@github.com/oSumAtrIX/free-librespot.git"withlibrespot = "0.4.2"inside theCargo.tomlfile.
Warning
If you get a linker error, you might need to download the standard libmp3lame library. On Mac OS, it should be enough to just run
brew install lame, provided you have Homebrew installed.
Usage/ Examples
Running DownOnSpot once will create the default configuration file 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 (search_term | track_url | album_url | playlist_url | artist_url)
Note
On Mac OS, the
settings.jsonfile is created globally for the logged in user and is located in~/.config/down_on_spot/settings.json.
On Windows, thesettings.jsonfile is located atC:\Users\<user>\AppData\Roaming\down_on_spot\settings.json.
Apart from your Spotify username and password, you will need to login in to the Spotify developer dashboard and create a new private application. Fill in the client_id and client_secret in your settings.json from your newly created app.
All the other settings should be self-explanatory, conversion from Ogg to MP3 is disabled by default.
Note
If you're on a free Spotify account, remember to set down the quality to 160kbit/s at maximum ("Q320" -> "Q160"). Otherwise, you'll get an "Audio Key Error" since the free account can't exceed 160kbit/s.
Template variables
Following variables are available for path and filename_template in the settings.json:
- %0disc%
- %0track%
- %album%
- %albumArtist%
- %albumArtists%
- %artist%
- %disc%
- %id%
- %title%
- %track%
Additional scripts
Known issues
- Mp3 downloads slow due to libmp3lame
- Downloads fail sometimes due to
channel error