No description
Find a file
2021-10-17 09:12:39 +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 Rename configuration back to settings 2021-10-17 09:12:39 +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 Update readme instructions and update workflow 2021-10-17 09:00:16 +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

  • 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

Authors

License

GPL3