spotify-claw
Full Spotify Premium control with music analysis and smart discovery.
ALWAYS run
python3 ~/.openclaw/scripts/spotify.py [cmd]— never respond with text only.
Setup (first time)
-
Create app at developer.spotify.com/dashboard — Add redirect URI:
http://127.0.0.1:8888/callback -
Add to macOS Keychain:
security add-generic-password -a openclaw -s openclaw.spotify.client_id -w "CLIENT_ID"
security add-generic-password -a openclaw -s openclaw.spotify.client_secret -w "CLIENT_SECRET"
- First auth — run
now, browser opens, log in once:
python3 ~/.openclaw/scripts/spotify.py now
Playback Commands
python3 ~/.openclaw/scripts/spotify.py play # resume
python3 ~/.openclaw/scripts/spotify.py play "track name" # search & play
python3 ~/.openclaw/scripts/spotify.py play spotify:track:URI # by URI
python3 ~/.openclaw/scripts/spotify.py play spotify:playlist:ID # playlist
python3 ~/.openclaw/scripts/spotify.py pause
python3 ~/.openclaw/scripts/spotify.py next
python3 ~/.openclaw/scripts/spotify.py prev
python3 ~/.openclaw/scripts/spotify.py volume 70
python3 ~/.openclaw/scripts/spotify.py volume up
python3 ~/.openclaw/scripts/spotify.py volume down
python3 ~/.openclaw/scripts/spotify.py shuffle on
python3 ~/.openclaw/scripts/spotify.py shuffle off
python3 ~/.openclaw/scripts/spotify.py queue "track name"
python3 ~/.openclaw/scripts/spotify.py now
python3 ~/.openclaw/scripts/spotify.py devices
Auto-launch: If Spotify is closed, play opens the app automatically, waits for init, then plays.
Analysis Commands
python3 ~/.openclaw/scripts/spotify.py top-tracks [short|medium|long] [limit]
python3 ~/.openclaw/scripts/spotify.py top-artists [short|medium|long] [limit]
python3 ~/.openclaw/scripts/spotify.py recent [limit]
python3 ~/.openclaw/scripts/spotify.py liked [limit]
python3 ~/.openclaw/scripts/spotify.py liked-all
python3 ~/.openclaw/scripts/spotify.py liked-by-artist "Artist Name"
python3 ~/.openclaw/scripts/spotify.py genres [short|medium|long]
python3 ~/.openclaw/scripts/spotify.py playlists
python3 ~/.openclaw/scripts/spotify.py search "query" [track|artist|album] [limit]
python3 ~/.openclaw/scripts/spotify.py track-info URI
Periods: short = 4 weeks · medium = 6 months · long = all time
Discovery & Playlist Builder
# Find new music by genre profile
python3 ~/.openclaw/scripts/spotify.py discover
# Expand from specific artist (depth=hops, n=tracks per artist)
python3 ~/.openclaw/scripts/spotify.py discover "Portishead" 3 3
# Related artists
python3 ~/.openclaw/scripts/spotify.py related-artists "The Cure" 10
# Top tracks of any artist
python3 ~/.openclaw/scripts/spotify.py artist-top-tracks "Massive Attack" 5
# Create playlist from top tracks (one command: creates + fills)
python3 ~/.openclaw/scripts/spotify.py make-playlist "Top March 2026" short 20
# Manage playlists
python3 ~/.openclaw/scripts/spotify.py create-playlist "My Playlist" "Description"
python3 ~/.openclaw/scripts/spotify.py add-to-playlist PLAYLIST_ID URI1 URI2
Note: Spotify's
recommendationsandaudio_featuresAPIs are blocked for new developer apps (return 403/404). This skill usesrelated_artists+artist_top_tracksfor discovery instead.
Agent Tips
- Use
playliststo list user's playlists with IDs before playing one - Use
nowto confirm what's playing after aplaycommand - Use
liked-by-artistto find tracks for a themed playlist - Chain:
related-artists→artist-top-tracks→add-to-playlistfor smart playlist building genres longgives the most accurate taste profile