Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/oSumAtrIX/DownOnSpot
đ§ A Spotify music and playlist downloader working with free Spotify accounts written in Rust
https://github.com/oSumAtrIX/DownOnSpot
1337 downloader free media mp3 music rust spotify
Last synced: 13 days ago
JSON representation
đ§ A Spotify music and playlist downloader working with free Spotify accounts written in Rust
- Host: GitHub
- URL: https://github.com/oSumAtrIX/DownOnSpot
- Owner: oSumAtrIX
- License: gpl-3.0
- Created: 2021-10-08T00:44:20.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-04-30T16:33:22.000Z (about 2 months ago)
- Last Synced: 2024-05-02T05:00:25.696Z (about 2 months ago)
- Topics: 1337, downloader, free, media, mp3, music, rust, spotify
- Language: Rust
- Homepage: https://osumatrix.me
- Size: 335 KB
- Stars: 516
- Watchers: 12
- Forks: 43
- Open Issues: 23
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Lists
- awesome-stars - oSumAtrIX/DownOnSpot - đ§ A Spotify music and playlist downloader working with free Spotify accounts written in Rust (Rust)
- awesome-stars - oSumAtrIX/DownOnSpot - đ§ A Spotify music and playlist downloader working with free Spotify accounts written in Rust (Rust)
- awesome-stars - oSumAtrIX/DownOnSpot - đ§ A Spotify music and playlist downloader working with free Spotify accounts written in Rust (Rust)
- awesome-stars - oSumAtrIX/DownOnSpot - đ§ A Spotify music and playlist downloader working with free Spotify accounts written in Rust (Rust)
README
# DownOnSpot
A Spotify downloader written in Rust
[![Build project](https://github.com/oSumAtrIX/DownOnSpot/actions/workflows/build.yml/badge.svg)](https://github.com/oSumAtrIX/DownOnSpot/actions/workflows/build.yml)
[![GitHub license](https://img.shields.io/github/license/oSumAtrIX/DownOnSpot)](https://github.com/oSumAtrIX/DownOnSpot/blob/main/LICENSE)
[![GitHub issues](https://img.shields.io/github/issues/oSumAtrIX/DownOnSpot)](https://github.com/oSumAtrIX/DownOnSpot/issues)
[![GitHub forks](https://img.shields.io/github/forks/oSumAtrIX/DownOnSpot)](https://github.com/oSumAtrIX/DownOnSpot/network)
[![GitHub stars](https://img.shields.io/github/stars/oSumAtrIX/DownOnSpot)](https://github.com/oSumAtrIX/DownOnSpot/stargazers)
[![Stability: Experimental](https://masterminds.github.io/stability/experimental.svg)](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]
> You need [this private SSH key](assets/free_librespot_private_key) to clone a dependency of DownOnSpot to use it with a free Spotify account.
> Follow [this answer by DopeGhoti on stackexchange.com](https://unix.stackexchange.com/a/494485) to set up SSH with the private key.
> A sample `~/.ssh/config` file could look like this:
>
> ```text
> 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](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\\AppData\Roaming\down_on_spot\settings.json`
- Unix: `~/.config/down_on_spot/settings.json`đ Now you can use DownOnSpot
```bash
$ ./down_on_spot
Usage:
down_on_spot.exe | | | |
```### âī¸ 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
- [Userscript to download titles from YouTube](https://gist.github.com/oSumAtrIX/6abf46e2ea25d32f4e6608c3c3cf837e)
## đ 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](LICENSE) for more information.
[tl;dr](https://www.tldrlegal.com/license/gnu-general-public-license-v3-gpl-3) 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.