DownOnSpot

0

Описание

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

Языки

  • Rust100%
README.md

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:

  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

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

  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

⚙️ 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.