No description
Find a file
2021-10-17 11:04:40 +02:00
.github Update readme instructions and update workflow 2021-10-17 09:00:16 +02:00
.vscode Add initial files 2021-10-11 02:12:22 +02:00
assets Add initial files 2021-10-11 02:12:22 +02:00
src Use OS dependant async entry points 2021-10-17 09:24:45 +02:00
.gitignore Add Cargo.lock back to version control 2021-10-13 17:31:37 +02:00
build.rs Add initial files 2021-10-11 02:12:22 +02:00
Cargo.lock Rename configuration back to settings 2021-10-17 09:12:39 +02:00
Cargo.toml Update readme instructions and update workflow 2021-10-17 09:00:16 +02:00
LICENSE Add initial files 2021-10-11 02:12:22 +02:00
mp3lame.lib Add initial files 2021-10-11 02:12:22 +02:00
README.md Further refactoring 2021-10-17 11:04:40 +02:00

DownOnSpot

A Spotify downloader written in Rust

drawing

Build project

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 (if using free-librespot fork)
  • Download 96, 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

A private ssh key is needed to use free Spotify accounts. Follow this answer by DopeGhoti on stackexchange.com on how to set up ssh with the required 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 free-librespot, then remove the git dependency to free-librespot. Delete git = "ssh://git@github.com/oSumAtrIX/free-librespot.git" inside Cargo.toml.

Nightly Rust is required to build this project. 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

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 (track_url | album_url | playlist_url | artist_url)

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%

Known issues

  • Downloads often slow
  • Downloads fail sometimes due to channel error

Authors

License

GPL3