Giter VIP home page Giter VIP logo

downonspot's Introduction

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://[email protected]/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.

downonspot's People

Contributors

osumatrix avatar thatpix3l avatar 45ninjas avatar docmarty84 avatar breuerfelix avatar giacy86 avatar sraka1 avatar ckcr4lyf avatar calvin-li-developer avatar grufkork avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.