Install
openclaw skills install @wgzesg/spotify-downloadDownload MP3s from Spotify playlists by fetching metadata, searching YouTube for tracks, and converting audio using ffmpeg with optional Spotify API credenti...
openclaw skills install @wgzesg/spotify-downloadUse this skill when the user wants to download MP3 files from a Spotify playlist.
brew install ffmpegsudo apt install ffmpegchoco install ffmpeg or download from https://ffmpeg.orgOption 1: uvx (no install needed)
uvx spotify-download "https://open.spotify.com/playlist/..."
Option 2: pip install
pip install spotify-download
spotify-download "https://open.spotify.com/playlist/..."
Option 3: pipx
pipx install spotify-download
spotify-download "https://open.spotify.com/playlist/..."
Option 4: Local development
git clone https://github.com/zesong/spotify-download.git
cd spotify-download
pip install -e .
spotify-download "https://open.spotify.com/playlist/..."
Public playlists: No credentials needed - the tool uses Spotify's embed page to fetch metadata.
Private playlists or more accurate metadata: Get credentials:
Then use either:
spotify-download "https://..." --client-id "XXX" --client-secret "YYY"
Or set environment variables:
export SPOTIFY_CLIENT_ID="your-client-id"
export SPOTIFY_CLIENT_SECRET="your-client-secret"
spotify-download "https://..."
uvx spotify-download "https://open.spotify.com/playlist/5TFrk1Wdap4jufziW7SyIh"
| Flag | Description | Default |
|---|---|---|
-o, --output | Output directory | downloads |
-w, --workers | Concurrent downloads | 4 |
-d, --delay | Search delay (seconds) | 1.0 |
--json-output | Save playlist JSON path | <output>/playlist.json |
--skip-export | Skip export, use existing JSON | - |
# Download to custom directory
uvx spotify-download "https://open.spotify.com/playlist/..." -o ~/Music/my-playlist
# Faster downloads
uvx spotify-download "https://open.spotify.com/playlist/..." -w 8
# Save playlist JSON for later
uvx spotify-download "https://open.spotify.com/playlist/..." --json-output my-playlist.json
# Re-download from saved JSON (skip export)
uvx spotify-download --skip-export --json-output my-playlist.json -o ~/Music
# With credentials for private playlist
uvx spotify-download "https://open.spotify.com/playlist/..." --client-id XXX --client-secret YYY
Files saved to <output>/music/ as {Artist} - {Track Name}.mp3:
downloads/
├── playlist.json # Playlist metadata
└── music/
├── Eason Chan - 任我行.mp3
├── Mayday - 突然好想你.mp3
└── ...
Install ffmpeg:
brew install ffmpegsudo apt install ffmpegSpotify's embed page structure may have changed. Use API credentials:
spotify-download "https://..." --client-id "your-id" --client-secret "your-secret"
YouTube search may not find the right match. Re-run the command - it skips already-downloaded tracks.
The tool: