Spooty is a self-hosted Spotify downloader. It allows download track/playlist/album from the Spotify url. It can also subscribe to a playlist or author page and download new songs upon release. Spooty basically downloads nothing from Spotify, it only gets information from spotify and then finds relevant and downloadeds music on Youtube. The project is based on NestJS and Angular.
Important
Please do not use this tool for piracy! Download only music you own rights! Use this tool only on your responsibility.

Recommended and the easiest way how to start to use of Spooty is using docker.
To fully use Spooty, you need to create an application in the Spotify Developer Dashboard:
Client ID and Client Secrethttp://localhost:3000/api/callback (or the corresponding URL of your instance)These credentials will be used by Spooty to access the Spotify API.
Just run docker command or use docker compose configuration. For detailed configuration, see available environment variables.
docker run -d -p 3000:3000 \
-v /path/to/downloads:/spooty/backend/downloads \
-e SPOTIFY_CLIENT_ID=your_client_id \
-e SPOTIFY_CLIENT_SECRET=your_client_secret \
raiper34/spooty:latest
services:
spooty:
image: raiper34/spooty:latest
container_name: spooty
restart: unless-stopped
ports:
- "3000:3000"
volumes:
- /path/to/downloads:/spooty/backend/downloads
environment:
- SPOTIFY_CLIENT_ID=your_client_id
- SPOTIFY_CLIENT_SECRET=your_client_secret
# Configure other environment variables if needed
Spooty can be also build from source files on your own.
nvm node version manager to install proper version of node)nvm install and use that node version nvm usenpm install.env.default as .env in src/backend folder and modify desired environment properties (see environment variables).env file:
SPOTIFY_CLIENT_ID=your_client_id
SPOTIFY_CLIENT_SECRET=your_client_secret
npm run build
dist foldernpm run startSome behaviour and settings of Spooty can be configured using environment variables and .env file.
| Name | Default | Description |
|---|---|---|
| DB_PATH | ./config/db.sqlite (relative to backend) | Path where Spooty database will be stored |
| FE_PATH | ../frontend/browser (relative to backend) | Path to frontend part of application |
| DOWNLOADS_PATH | ./downloads (relative to backend) | Path where downaloded files will be stored |
| FORMAT | mp3 | Format of downloaded files (currently fully supported only mp3 but you can try whatever you want from ffmpeg) |
| PORT | 3000 | Port of Spooty server |
| REDIS_PORT | 6379 | Port of Redis server |
| REDIS_HOST | localhost | Host of Redis server |
| RUN_REDIS | false | Whenever Redis server should be started from backend (recommended for Docker environment) |
| SPOTIFY_CLIENT_ID | your_client_id | Client ID of your Spotify application (required) |
| SPOTIFY_CLIENT_SECRET | your_client_secret | Client Secret of your Spotify application (required) |
Content type
Image
Digest
sha256:78749d7e9…
Size
187.1 MB
Last updated
about 1 year ago
docker pull dudule100/spooty