spotget is a command-line tool to download Spotify songs, albums, and playlists
to your local machine. Supports MP3, FLAC, M4A, Opus and more. Built-in rate
limit handling with exponential backoff and jitter. No server or Spotify API
key required. Configure via spotget config.
README
spotget
> CLI Spotify song & playlist downloader — no server, no API key, just music.
Install
winget install Xznder1984.spotget
Then install the required dependencies (one time):
pip install spotdl
winget install Gyan.FFmpeg
Usage
# Download a song
spotget https://open.spotify.com/track/xxx
# Download a playlist
spotget https://open.spotify.com/playlist/xxx
# Download an album
spotget https://open.spotify.com/album/xxx
# Search by name
spotget search "Bohemian Rhapsody Queen"
# Download as FLAC
spotget https://open.spotify.com/track/xxx -f flac
# Sync a playlist (skips already downloaded tracks)
spotget sync https://open.spotify.com/playlist/xxx
# Check your setup
spotget --check
Config
# Show current settings
spotget config --show
# Change output folder
spotget config --set output_dir "D:/Music"
# Change default format
spotget config --set audio_format flac
# Slow down between downloads (helps avoid rate limits)
spotget config --set sleep_interval_playlist 4.0
# Use a cookies file (export from your browser with a cookies.txt extension)
spotget config --set cookies_file "C:/Users/You/cookies.txt"
# Reset everything to defaults
spotget config --reset
Config is stored at ~/.spotget/config.json.
Options
Key
Default
Description
output_dir
~/Music/spotget
Where songs are saved
audio_format
mp3
mp3, flac, opus, m4a, wav, ogg
audio_quality
320k
Bitrate (mp3 only)
concurrent_downloads
2
Parallel downloads (keep low)
sleep_interval
1.5
Delay between single tracks (seconds)
sleep_interval_playlist
2.5
Delay between playlist tracks
lyrics
false
Embed lyrics
cookies_file
``
Path to cookies.txt
proxy
``
Proxy URL
use_youtube_music
true
Prefer YouTube Music as source
filename_template
{artists} - {title}
Output filename pattern
Rate Limiting
spotget handles rate limits automatically with exponential backoff + jitter. If you still get blocked:
Export your browser cookies to cookies.txt (use a browser extension like "Get cookies.txt LOCALLY")