L04DB4L4NC3R / spotify-downloader

Download songs, playlists & albums with the right amount of concurrency

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

spotify-downloader

Download songs, playlists and albums, or sync in to your favourite tunes

Core Features

  • Track download on a URL basis
  • Entire playlist download
  • Apply metadata on downloaded songs
  • Entire album download
  • Independently scale downloader and renderer
  • Configurable concurrency

UI Features

  • Web-UI for downloading
  • CLI

Run using docker compose

  • Edit the ./config/secret.env to expose relevent secrets to the containers

  • Change script permissions

chmod +x ./scripts/docker-setup.sh
  • Run
./scripts/docker-setup.sh

Run Locally

Installation instructions in wiki

Endpoints

Function Route
Check service health /ping/
Download Song /song/{id}/
Download Playlist /playlist/{id}/
Download Album /album/{id}/
View Song Metadata /meta/song/{id}/
View Playlist Metadata /meta/playlist/{id}/
View Album Metadata /meta/album/{id}/
Bulk View Resource Metadata /metas//{id}/ (where resource can be playlists, albums, shows)
Check Song Download Progress /status/song/{id}/
Check Bulk Song Download Progress /status/songs/ (array of {"song_ids": []string} in POST)
Check Playlist Download Progress /status/playlist/{id}/
Check Album Download Progress /status/album/{id}/

Note that the {id} mentioned here is the resource ID you get from spotify (from a track, album or playlist URL).

Disclaimer

Read the disclaimer before using this software.

Contibutions Welcome

Note that this repo is just the core backend of the service. UI contributions are needed. All contributions are welcome. Just fork and make a PR. If you are making a UI, create a new directory called src/ui.

About

Download songs, playlists & albums with the right amount of concurrency

License:MIT License


Languages

Language:Go 95.5%Language:Dockerfile 2.7%Language:Makefile 1.5%Language:Shell 0.3%