← Back to Skills Marketplace
hith3sh

Spotify

by Jay · GitHub ↗ · v0.2.0 · MIT-0
cross-platform ✓ Security Clean
40
Downloads
0
Stars
0
Active Installs
1
Versions
Install in OpenClaw
/install spotify-audio
Description
Search and manage Spotify playlists, tracks, albums, artists, and playback state via the Spotify Web API. Use this skill when users want to search for music,...
README (SKILL.md)

Spotify

Search and manage Spotify content — playlists, tracks, albums, artists, playback, and library — from chat using the Spotify Web API.

This skill uses ClawLink for hosted connection flows and credentials so you do not need to configure Spotify API access yourself.

Setup in 3 Steps

Step 1: Install Step 2: Pair Account Step 3: Connect Spotify
Install Pair App-specific connection GIF coming soon
Run the install command in OpenClaw Sign in and approve the device Open the dashboard and connect Spotify

How It Works

┌─────────────────┐     ┌──────────────┐     ┌──────────────────┐
│   OpenClaw      │────▶│   ClawLink   │────▶│  Spotify Web     │
│   (User Chat)   │     │   (OAuth)    │     │      API         │
└─────────────────┘     └──────────────┘     └──────────────────┘
         │                       │                       │
         │  1. Install Plugin    │                       │
         │  2. Pair Device       │                       │
         │  3. Connect Spotify   │                       │
         │                       │  4. Secure Token      │
         │                       │  5. Proxy Requests   │
         │                       │                       │
         ▼                       ▼                       ▼
   ┌──────────┐           ┌──────────┐           ┌──────────┐
   │  SKILL   │           │ Dashboard│           │  Spotify │
   │  File    │           │ Auth     │           │  Account │
   └──────────┘           └──────────┘           └──────────┘

Install

Install the verified ClawLink plugin from ClawHub. After the user confirms, complete the full setup so ClawLink tools are visible in the next OpenClaw chat.

openclaw plugins install clawhub:clawlink-plugin
openclaw config set tools.alsoAllow '["clawlink-plugin"]' --strict-json
openclaw gateway restart

Then tell the user: "OpenClaw has been restarted. Send /new as a standalone message to start a fresh chat, then ask for Spotify again."

Quick Start

# Search for tracks
clawlink_call_tool --tool "spotify_search" --params '{"q": "never gonna give you up", "type": "track"}'

# Get current user's playlists
clawlink_call_tool --tool "spotify_get_current_user_playlists" --params '{}'

# Get track details
clawlink_call_tool --tool "spotify_get_track" --params '{"track_id": "TRACK_ID"}'

Authentication

All Spotify tool calls are authenticated automatically by ClawLink using the user's connected Spotify account OAuth token.

No API token is required in chat. ClawLink stores the OAuth token securely and injects it into every Spotify Web API request on the user's behalf.

Getting Connected

  1. Install the ClawLink plugin (see Install above).
  2. Pair the plugin with clawlink_begin_pairing if it is not configured yet.
  3. Open https://claw-link.dev/dashboard?add=spotify and connect Spotify.
  4. Call clawlink_list_integrations to verify the connection is active.

Connection Management

List Connections

clawlink_list_integrations

Response: Returns all connected integrations. Look for spotify in the list.

Verify Connection

clawlink_list_tools --integration spotify

Response: Returns the live tool catalog for Spotify.

Reconnect

If Spotify tools are missing or the connection shows an error:

  1. Direct the user to https://claw-link.dev/dashboard?add=spotify
  2. After they confirm, call clawlink_list_integrations to verify
  3. Then call clawlink_list_tools --integration spotify

Security & Permissions

  • Access is scoped to the Spotify account connected during OAuth setup and the scopes granted.
  • Write operations (create playlist, save track, remove from playlist, playback control) require explicit user confirmation.
  • Playback control tools may require an active Spotify Premium subscription depending on the operation.
  • Confirm destructive or bulk changes before executing.

Tool Reference

Search

Tool Description Mode
spotify_search Search for tracks, albums, artists, playlists, or shows Read
spotify_search_tracks Search specifically for tracks Read
spotify_search_artists Search specifically for artists Read
spotify_search_albums Search specifically for albums Read
spotify_search_playlists Search specifically for playlists Read

Tracks

Tool Description Mode
spotify_get_track Get details for a single track Read
spotify_get_tracks Get details for multiple tracks at once Read
spotify_get_audio_features Get audio features (tempo, key, danceability, etc.) Read
spotify_get_audio_analysis Get detailed audio analysis for a track Read
spotify_save_track Save a track to the user's library Write
spotify_remove_saved_track Remove a track from the user's library Write
spotify_check_saved_tracks Check which tracks are saved in the library Read

Albums

Tool Description Mode
spotify_get_album Get album details with tracks Read
spotify_get_album_tracks Get tracks on an album Read
spotify_save_album Save an album to the user's library Write
spotify_remove_saved_album Remove an album from the user's library Write
spotify_check_saved_albums Check which albums are saved Read

Artists

Tool Description Mode
spotify_get_artist Get an artist's profile and follower count Read
spotify_get_artist_albums Get albums by an artist Read
spotify_get_artist_top_tracks Get an artist's top tracks Read
spotify_get_related_artists Get artists related to this one Read

Playlists

Tool Description Mode
spotify_get_current_user_playlists Get the current user's playlists Read
spotify_get_playlist Get a playlist's details and tracks Read
spotify_create_playlist Create a new playlist for the user Write
spotify_update_playlist Update a playlist's name, description, or visibility Write
spotify_delete_playlist Delete a playlist Write
spotify_add_tracks_to_playlist Add tracks to a playlist Write
spotify_remove_tracks_from_playlist Remove tracks from a playlist Write
spotify_reorder_playlist_tracks Reorder tracks within a playlist Write
spotify_get_playlist_cover_image Get the playlist's cover image Read
spotify_upload_playlist_cover_image Upload a custom cover image Write

User Profile

Tool Description Mode
spotify_get_current_user Get the current user's profile Read
spotify_get_user_profile Get another user's public profile Read
spotify_follow_user Follow a user Write
spotify_unfollow_user Unfollow a user Write
spotify_follow_playlist Follow a playlist Write
spotify_unfollow_playlist Unfollow a playlist Write

Playback

Tool Description Mode
spotify_get_playback_state Get the user's current playback state Read
spotify_start_playback Start or resume playback Write
spotify_pause_playback Pause playback Write
spotify_skip_to_next Skip to the next track Write
spotify_skip_to_previous Skip to the previous track Write
spotify_seek_to_position Seek to a position in the current track Write
spotify_set_repeat_mode Set the repeat mode (off, track, context) Write
spotify_set_volume Set the playback volume Write
spotify_shuffle Toggle shuffle on or off Write
spotify_transfer_playback Transfer playback to another device Write

Recently Played

Tool Description Mode
spotify_get_recently_played Get the user's recently played tracks Read
spotify_get_recently_played_episodes Get recently played episodes (podcasts) Read

Browse & Recommendations

Tool Description Mode
spotify_get_new_releases Get new album releases Read
spotify_get_featured_playlists Get featured Spotify playlists Read
spotify_get_recommendations Get track recommendations based on seeds Read
spotify_get_available_genre_seeds Get available genre seeds for recommendations Read
spotify_get_categories Get all Spotify categories Read
spotify_get_category_playlists Get playlists for a specific category Read

Code Examples

Search for a track

clawlink_call_tool --tool "spotify_search" \
  --params '{
    "q": "bohemian rhapsody queen",
    "type": "track",
    "limit": 5
  }'

Get a playlist's tracks

clawlink_call_tool --tool "spotify_get_playlist" \
  --params '{
    "playlist_id": "PLAYLIST_ID"
  }'

Create a new playlist

clawlink_call_tool --tool "spotify_create_playlist" \
  --params '{
    "name": "My OpenClaw Playlist",
    "description": "Created via OpenClaw AI assistant",
    "public": false
  }'

Add tracks to a playlist

clawlink_call_tool --tool "spotify_add_tracks_to_playlist" \
  --params '{
    "playlist_id": "PLAYLIST_ID",
    "uris": ["spotify:track:TRACK_ID_1", "spotify:track:TRACK_ID_2"]
  }'

Get audio features for a track

clawlink_call_tool --tool "spotify_get_audio_features" \
  --params '{
    "track_id": "TRACK_ID"
  }'

Get new releases

clawlink_call_tool --tool "spotify_get_new_releases" \
  --params '{
    "limit": 10,
    "country": "US"
  }'

Discovery Workflow

  1. Call clawlink_list_integrations to confirm Spotify is connected.
  2. Call clawlink_list_tools --integration spotify to see the live catalog.
  3. Treat the returned list as the source of truth. Do not guess or assume what tools exist.
  4. If the user describes a capability but the exact tool is unclear, call clawlink_search_tools with a short query and integration spotify.
  5. If no Spotify tools appear, direct the user to https://claw-link.dev/dashboard?add=spotify.

Execution Workflow

┌─────────────────────────────────────────────────────────────┐
│  READ OPERATIONS (Safe)                                     │
│  search → get → list → browse                              │
│                                                             │
│  Example: Search tracks → Get track details → Show info    │
└─────────────────────────────────────────────────────────────┘
                              │
                              ▼
┌─────────────────────────────────────────────────────────────┐
│  WRITE OPERATIONS (Require Confirmation)                    │
│  describe → preview → confirm → call                        │
│                                                             │
│  Example: Preview playlist creation → User approves → Create│
└─────────────────────────────────────────────────────────────┘
  1. For unfamiliar tools, ambiguous requests, or any write action, call clawlink_describe_tool first.
  2. Use the returned guidance, schema, whenToUse, askBefore, safeDefaults, examples, and followups to shape the call.
  3. Prefer read, search, and get operations before writes when that reduces ambiguity.
  4. For writes or anything marked as requiring confirmation, call clawlink_preview_tool first.
  5. Execute with clawlink_call_tool. Pass confirmation only after the preview matches the user's intent.
  6. If the tool call fails, report the real error. Do not invent results or restate the failure as a missing capability unless the live catalog supports that conclusion.

Notes

  • Playback control tools (play, pause, skip, volume) require Spotify Premium on the account that created the token.
  • Track and playlist IDs must be the Spotify URI format (e.g., spotify:track:3AhXNa5py1) or just the alphanumeric ID.
  • Search results are limited by Spotify's API — use limit parameter to control result count.
  • The user's country code affects available content (some tracks may be region-locked).
  • Playlist modification operations may be rate-limited by Spotify.
  • Saved tracks and albums are per-user library — they require an active user context.

Error Handling

Status / Error Meaning
Tool not found The tool name does not exist in the current catalog. Verify with clawlink_list_tools --integration spotify.
Missing connection Spotify is not connected. Direct the user to https://claw-link.dev/dashboard?add=spotify.
NO_ACTIVE_DEVICE No active Spotify device found to control playback. Open Spotify on a device first.
PREMIUM_REQUIRED Playback control requires Spotify Premium.
INVALID_TRACK_ID The track ID does not match any track in Spotify's catalog.
INVALID_PLAYLIST_ID The playlist ID does not exist or is not accessible.
NOT_FOUND The requested resource (track, album, artist) was not found.
RATE_LIMITED Too many requests — wait and retry.
Write rejected User did not confirm a write action. Always confirm before executing writes.

Troubleshooting: Tools Not Visible

  1. Check that the ClawLink plugin is installed:
    openclaw plugins list
    
  2. If the plugin is installed but tools are missing, tell the user to send /new as a standalone message to reload the catalog.
  3. If a fresh chat does not help, run:
    openclaw config set tools.alsoAllow '["clawlink-plugin"]' --strict-json
    openclaw gateway restart
    
  4. After restart, tell the user to send /new again and retry.

Troubleshooting: Playback Control Fails

  1. Confirm the Spotify account has Premium — free accounts cannot control playback programmatically.
  2. Ensure there is an active device with Spotify open — playback requires an active session.
  3. Check that the correct device ID is being used if spotify_transfer_playback is needed first.

Resources


Powered by ClawLink — an integration hub for OpenClaw

ClawLink Logo

Usage Guidance
Install this only if you trust ClawLink to broker Spotify OAuth for your account. Review the Spotify scopes during connection, and treat playlist/library/follow/playback changes as account-affecting actions that should be previewed and explicitly confirmed.
Capability Tags
requires-oauth-tokenrequires-sensitive-credentials
Capability Assessment
Purpose & Capability
The skill enables Spotify search, playlist, library, follow, and playback workflows through the Spotify Web API; those read and write capabilities match the stated purpose.
Instruction Scope
Runtime instructions require checking the live ClawLink tool catalog, describing unfamiliar or write-capable tools, previewing writes, and confirming before execution.
Install Mechanism
Installation asks the user to install the ClawLink plugin, allow it in OpenClaw config, and restart the gateway; this is disclosed and aligned with making hosted integration tools available.
Credentials
The skill depends on Spotify OAuth through ClawLink, which is sensitive but proportionate for managing a connected Spotify account; no local API token is requested in chat.
Persistence & Privilege
The plugin install and OpenClaw tool allowance are persistent local configuration changes, but the artifact itself is only a SKILL.md file with no executable scripts or hidden persistence.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install spotify-audio
  3. After installation, invoke the skill by name or use /spotify-audio
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v0.2.0
Full rewrite to new standard
Metadata
Slug spotify-audio
Version 0.2.0
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 1
Frequently Asked Questions

What is Spotify?

Search and manage Spotify playlists, tracks, albums, artists, and playback state via the Spotify Web API. Use this skill when users want to search for music,... It is an AI Agent Skill for Claude Code / OpenClaw, with 40 downloads so far.

How do I install Spotify?

Run "/install spotify-audio" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is Spotify free?

Yes, Spotify is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does Spotify support?

Spotify is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created Spotify?

It is built and maintained by Jay (@hith3sh); the current version is v0.2.0.

💬 Comments