|
|
||
|---|---|---|
| .cargo | ||
| .github | ||
| assets | ||
| src | ||
| .gitignore | ||
| build.rs | ||
| Cargo.lock | ||
| Cargo.toml | ||
| LICENSE | ||
| mp3lame.lib | ||
| README.md | ||
| rustfmt.toml | ||
🆘 Help needed
Note
Currently, I am rewriting DownOnSpot.
If you want to help me accelerate this process, please feel free to contact me at osumatrix.me.
⭐ Features
- ✅ Actually downloads from Spotify, free and premium
- ✅ Chose between 96, 160, 256 and 320 kbit/s (free users can't exceed 160kbit/s)
- ✅ Download tracks, playlists, albums and artists
- ✅ Multi-threaded
- ✅ Search for tracks
- ✅ Download MP3 and original OGG files
- ✅ Metadata tagging
- ✅ Simple CLI interface
Note
Free Spotify users can not exceed 160kbit/s. Change the
qualitysetting in thesettings.jsonfile toQ160or lower. If you want to download 256 or 320kbit/s, you need to use a premium account.
⚒️ Building
-
Clone the repository using git and change to the local repository directory:
git clone https://github.com/oSumAtrIX/DownOnSpot.git cd DownOnSpot -
Install dependencies
If you are on Linux, make sure you have the
libasound2-devpackage installed.
Additionally, you need the libmp3lame library.
On Mac OS, runbrew install lame, provided you have Homebrew installed. -
Build
cargo build --release
Note
You need this private SSH key to clone a dependency of DownOnSpot 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_keyIf you do not want to use
free-librespot(i.e. if you are using a paid Spotify account), replacegit = "ssh://git@github.com/oSumAtrIX/free-librespot.git"withlibrespot = "0.4.2"inside theCargo.tomlfile.
🕹️ Usage
-
Create a new application on the Spotify developer dashboard
-
Run DownOnSpot
$ ./down_on_spot 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. -
Edit the
settings.jsonfileThe
settings.jsonfile is located in the following directories:- Windows:
C:\Users\<user>\AppData\Roaming\down_on_spot\settings.json - Unix:
~/.config/down_on_spot/settings.json
- Windows:
🎉 Now you can use DownOnSpot
$ ./down_on_spot
Usage:
down_on_spot.exe <search_term> | <track_url> | <album_url> | <playlist_url> | <artist_url>
⚙️ Template variables
You can use the following template variables for path and filename_template in the settings.json file:
- %0disc%
- %0track%
- %album%
- %albumArtist%
- %albumArtists%
- %artist%
- %disc%
- %id%
- %title%
- %track%
🧭 Additional scripts
🐞 Known issues
- Slow MP3 downloads due to libmp3lame
- Sporadic
channel errorwhen downloading tracks
💪 Contributors
🔑 License
DownOnSpot is licensed under the GPLv3 licence. Please see the licence file for more information. tl;dr you may copy, distribute and modify DownOnSpot as long as you track changes/dates in source files. Any modifications to DownOnSpot must also be made available under the GPL, along with build & install instructions.