No description
Find a file
2024-09-04 17:22:38 +02:00
.cargo chore: Update dependencies and remove unused code 2024-07-14 23:53:40 +02:00
.github chore: Remove SSH authentication for free-librespot because it is now a public repo 2024-08-27 21:22:51 +02:00
assets chore: Remove SSH authentication for free-librespot because it is now a public repo 2024-08-27 21:22:51 +02:00
src feat: Improve UI by printing errors in a separate queue, on exit and small touch-ups (#101) 2024-09-04 17:22:38 +02:00
.gitignore feat: Add env_logger (#72) 2024-02-12 20:38:01 +01:00
build.rs Add initial files 2021-10-11 02:12:22 +02:00
Cargo.lock chore: Release v0.6.0 2024-08-27 00:05:17 +02:00
Cargo.toml chore: Release v0.6.0 2024-08-27 00:05:17 +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 chore: Remove SSH authentication for free-librespot because it is now a public repo 2024-08-27 21:22:51 +02:00
rustfmt.toml format code 2022-01-27 17:08:47 +01:00

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

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.