Skip to content

oSumAtrIX/DownOnSpot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

88 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

DownOnSpot

A Spotify downloader written in Rust

drawing

Build project GitHub license GitHub issues GitHub forks GitHub stars Stability: Experimental

πŸ†˜ 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 quality setting in the settings.json file to Q160 or lower. If you want to download 256 or 320kbit/s, you need to use a premium account.

βš’οΈ Building

  1. Clone the repository using git and change to the local repository directory:

    git clone https://github.com/oSumAtrIX/DownOnSpot.git
    cd DownOnSpot
  2. Install dependencies

    If you are on Linux, make sure you have the libasound2-dev package installed.
    Additionally, you need the libmp3lame library.
    On Mac OS, run brew install lame, provided you have Homebrew installed.

  3. 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/config file could look like this:

Host github.com
  IdentityFile ~/.ssh/free_librespot_private_key

If you do not want to use free-librespot (i.e. if you are using a paid Spotify account), replace git = "ssh://git@github.com/oSumAtrIX/free-librespot.git" with librespot = "0.4.2" inside the Cargo.toml file.

πŸ•ΉοΈ Usage

  1. Create a new application on the Spotify developer dashboard

  2. 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.
  3. Edit the settings.json file

    The settings.json file is located in the following directories:

    • Windows: C:\Users\<user>\AppData\Roaming\down_on_spot\settings.json
    • Unix: ~/.config/down_on_spot/settings.json

πŸŽ‰ 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 error when 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.

About

🎧 A Spotify music and playlist downloader working with free Spotify accounts written in Rust

Topics

Resources

License

Stars

Watchers

Forks

Languages