# DownOnSpot
A Spotify downloader written in Rust
[](https://github.com/oSumAtrIX/DownOnSpot/actions/workflows/build.yml)
[](https://github.com/oSumAtrIX/DownOnSpot/blob/main/LICENSE)
[](https://github.com/oSumAtrIX/DownOnSpot/issues)
[](https://github.com/oSumAtrIX/DownOnSpot/network)
[](https://github.com/oSumAtrIX/DownOnSpot/stargazers)
[](https://masterminds.github.io/stability/experimental.html)
## đ Help needed
> [!NOTE]
Currently, I am [rewriting DownOnSpot](https://github.com/oSumAtrIX/DownOnSpot/pull/68).
If you want to help me accelerate this process, please feel free to contact me at [osumatrix.me](https://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:
```bash
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](https://www.rarewares.org/mp3-lame-libraries.php#libmp3lame) library.
On Mac OS, run `brew install lame`, provided you have [Homebrew](https://brew.sh/) installed.
3. Build
```bash
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](https://developer.spotify.com/dashboard/applications) on the Spotify developer dashboard
2. Run DownOnSpot
```bash
$ ./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\