Resources
6Install
npx skillscat add imoonkey/openweb/src-sites-spotify Install via the SkillsCat registry.
SKILL.md
Spotify
Overview
Music streaming platform. Content platform archetype.
Workflows
Search and explore artist
searchMusic(searchTerm)→ artists, tracks, albums with URIsgetArtist(uri)→ profile, stats, top tracks, related artistsgetArtistDiscography(uri)→ full album/single cataloggetAlbumTracks(uri)→ individual track listing
Track deep dive
searchMusic(searchTerm: "bohemian rhapsody")→ pick trackurigetTrack(uri)→ name, play count, album, artists, durationgetRecommendations(uri)→ similar tracks
Playlist exploration
searchMusic(searchTerm: "top hits")→ find playlist URI from resultsgetPlaylist(uri)→ playlist name, description, followers, track listgetTrack(uri)→ deep dive into any track from the playlist
User playlist discovery
getUserPlaylists(userId: "spotify")→ user's public playlists with follower countsgetPlaylist(uri)→ full playlist details and tracks
Library management (requires login)
searchMusic(searchTerm)→ pick track →uri(e.g.spotify:track:<trackId>) → extracttrackIdlikeTrack(trackId)→ save track to Liked SongsunlikeTrack(trackId)→ remove from Liked Songs
Playlist curation (requires login)
createPlaylist(name, description, public)→uri, extractplaylistIdsearchMusic(searchTerm)→ pick tracks →trackUrisaddToPlaylist(playlistId ← createPlaylist, trackUris ← searchMusic)→snapshot_idremoveFromPlaylist(playlistId, trackUris)→snapshot_id
Quick artist lookup
searchMusic(searchTerm: "radiohead")→ pick artisturigetArtist(uri: "spotify:artist:4Z8W4fKeB5YxbusRsdQVPb")→ name, followers, top tracks
Operations
| Operation | Intent | Key Input | Key Output | Notes |
|---|---|---|---|---|
| searchMusic | search across types | searchTerm | artists, tracks, albums with URIs | entry point |
| getArtist | artist profile + stats | uri ← searchMusic | name, followers, monthlyListeners, topTracks, albums | includes related artists |
| getArtistDiscography | full discography | uri ← searchMusic | albums, singles, compilations with dates | paginated |
| getAlbumTracks | album track list | uri ← getArtist/getArtistDiscography | track names, playcounts, durations | |
| getTrack | track details | uri ← searchMusic/getAlbumTracks | name, playcount, album, artists, duration, content rating | includes album art |
| getPlaylist | playlist details + tracks | uri ← searchMusic/getUserPlaylists | name, description, followers, owner, track list | paginated |
| getUserPlaylists | user's public playlists | userId | playlist names, URIs, follower counts, images | REST endpoint |
| getRecommendations | similar tracks | uri ← searchMusic/getTrack | recommended track names, URIs, artists, play counts | seed-based |
| likeTrack | save to Liked Songs | trackId ← searchMusic/getTrack | success | write, requires login |
| unlikeTrack | remove from Liked Songs | trackId ← likeTrack | success | write, reverse of likeTrack |
| addToPlaylist | add tracks to playlist | playlistId, trackUris ← searchMusic | snapshot_id | write, requires ownership |
| removeFromPlaylist | remove tracks from playlist | playlistId, trackUris ← addToPlaylist | snapshot_id | write, reverse of addToPlaylist |
| createPlaylist | create new playlist | name, description, public | uri, name, owner | write, requires login |
Quick Start
# Search for an artist
openweb spotify exec searchMusic '{"searchTerm":"radiohead","limit":5}'
# Get artist details (uri from search results)
openweb spotify exec getArtist '{"uri":"spotify:artist:4Z8W4fKeB5YxbusRsdQVPb"}'
# Get discography
openweb spotify exec getArtistDiscography '{"uri":"spotify:artist:4Z8W4fKeB5YxbusRsdQVPb","limit":10}'
# Get album tracks (uri from artist or discography)
openweb spotify exec getAlbumTracks '{"uri":"spotify:album:6dVIqQ8qmQ5GBnJ9shOYGE"}'
# Get track details
openweb spotify exec getTrack '{"uri":"spotify:track:4u7EnebtmKWzUH433cf5Qv"}'
# Get playlist details and tracks
openweb spotify exec getPlaylist '{"uri":"spotify:playlist:37i9dQZF1DXcBWIGoYBM5M","limit":10}'
# Get a user's public playlists
openweb spotify exec getUserPlaylists '{"userId":"spotify","limit":5}'
# Get recommendations based on a track
openweb spotify exec getRecommendations '{"uri":"spotify:track:4u7EnebtmKWzUH433cf5Qv","limit":5}'
# Like a track (requires login)
openweb spotify exec likeTrack '{"trackId":"4u7EnebtmKWzUH433cf5Qv"}'
# Unlike a track (requires login)
openweb spotify exec unlikeTrack '{"trackId":"4u7EnebtmKWzUH433cf5Qv"}'
# Create a playlist (requires login)
openweb spotify exec createPlaylist '{"name":"My Playlist","description":"A new playlist","public":false}'
# Add tracks to a playlist (requires login, playlist ownership)
openweb spotify exec addToPlaylist '{"playlistId":"37i9dQZF1DXcBWIGoYBM5M","trackUris":["spotify:track:4u7EnebtmKWzUH433cf5Qv"]}'
# Remove tracks from a playlist (requires login, playlist ownership)
openweb spotify exec removeFromPlaylist '{"playlistId":"37i9dQZF1DXcBWIGoYBM5M","trackUris":["spotify:track:4u7EnebtmKWzUH433cf5Qv"]}'