Back to skills
extension
Category: AI Agent CapabilitiesNo API key required

Spotify Automation

Automate Spotify workflows including playlist management, music search, playback control, and user profile access via Composio

personAuthor: jakexiaohubgithub

Spotify Automation

Automate Spotify operations -- manage playlists, search the music catalog, control playback, browse albums and tracks, and access user profiles -- all orchestrated through the Composio MCP integration.

Toolkit docs: composio.dev/toolkits/spotify


Setup

  1. Connect your Spotify account through the Composio MCP server at https://rube.app/mcp
  2. The agent will prompt you with an authentication link if no active connection exists
  3. Once connected, all SPOTIFY_* tools become available for execution
  4. Note: Some features (playback control) require a Spotify Premium subscription

Core Workflows

1. Get Current User Profile

Retrieve comprehensive profile information for the authenticated Spotify user.

Tool: SPOTIFY_GET_CURRENT_USER_S_PROFILE

No parameters required.
Returns: display name, email, country, subscription level (premium/free),
explicit content settings, profile images, follower count, and Spotify URIs.
Required scopes: user-read-private, user-read-email.

2. Search the Spotify Catalog

Find albums, artists, playlists, tracks, shows, episodes, or audiobooks by keyword.

Tool: SPOTIFY_SEARCH_FOR_ITEM

| Parameter | Type | Required | Description | |-----------|------|----------|-------------| | q | string | Yes | Search query keywords | | type | array | Yes | Item types: album, artist, playlist, track, show, episode, audiobook | | limit | integer | No | Results to return (default: 20) | | offset | integer | No | Offset for pagination (default: 0) | | market | string | No | ISO 3166-1 alpha-2 country code | | include_external | string | No | Set to audio to include external content |

Note: Audiobooks are only available in US, UK, Canada, Ireland, New Zealand, and Australia.


3. Manage Playlists

Browse, create, modify, and populate playlists.

Get a user's playlists:

Tool: SPOTIFY_GET_USER_S_PLAYLISTS

| Parameter | Type | Required | Description | |-----------|------|----------|-------------| | user_id | string | Yes | Spotify user ID | | limit | integer | No | Max playlists, 1-50 (default: 20) | | offset | integer | No | Pagination offset, 0-100000 (default: 0) |

Get current user's playlists:

Tool: SPOTIFY_GET_CURRENT_USER_S_PLAYLISTS

| Parameter | Type | Required | Description | |-----------|------|----------|-------------| | limit | integer | No | Max playlists, 1-50 (default: 20) | | offset | integer | No | Pagination offset, 0-100000 (default: 0) |

Get playlist details:

Tool: SPOTIFY_GET_PLAYLIST

| Parameter | Type | Required | Description | |-----------|------|----------|-------------| | playlist_id | string | Yes | Spotify playlist ID (e.g., 3cEYpjA9oz9GiPac4AsH4n) | | fields | string | No | Comma-separated field filter to reduce response size | | market | string | No | ISO country code for market-specific content | | additional_types | string | No | track,episode to include podcast episodes |

Update playlist details:

Tool: SPOTIFY_CHANGE_PLAYLIST_DETAILS

| Parameter | Type | Required | Description | |-----------|------|----------|-------------| | playlist_id | string | Yes | Playlist ID (must be owned by current user) | | name | string | No | New playlist name | | description | string | No | New playlist description | | public | boolean | No | Public/private toggle | | collaborative | boolean | No | Collaborative mode (only on non-public playlists) |


4. Browse Playlist Items & Add Tracks

View tracks in a playlist and add new items.

Tool: SPOTIFY_GET_PLAYLIST_ITEMS

| Parameter | Type | Required | Description | |-----------|------|----------|-------------| | playlist_id | string | Yes | Spotify playlist ID | | limit | integer | No | Items per page, 1-50 (default: 20) | | offset | integer | No | Pagination offset (default: 0) | | fields | string | No | Field filter (e.g., items(track(name,id))) | | market | string | No | ISO country code | | additional_types | string | No | track,episode for podcast episodes |

Tool: SPOTIFY_ADD_ITEMS_TO_PLAYLIST

Add tracks or episodes to a playlist using Spotify URIs.


5. Get Track & Album Details

Retrieve catalog information for individual tracks and albums.

Tool: SPOTIFY_GET_TRACK -- Get details for a single track by Spotify ID.

Tool: SPOTIFY_GET_ALBUM -- Get comprehensive album data including track listing, artist info, cover art, and popularity.


6. Control Playback

Start, resume, or change playback on the user's active device.

Tool: SPOTIFY_START_RESUME_PLAYBACK

| Parameter | Type | Required | Description | |-----------|------|----------|-------------| | context_uri | string | No | Spotify URI of album, artist, or playlist (cannot combine with uris) | | uris | array | No | List of track URIs to play (cannot combine with context_uri) | | offset | object | No | Starting position: {position: 5} or {uri: 'spotify:track:...'} | | position_ms | integer | No | Start position in milliseconds | | device_id | string | No | Target device ID (defaults to active device) |

Requirements: Spotify Premium subscription and at least one active device.


Known Pitfalls

| Pitfall | Details | |---------|---------| | Premium required for playback | SPOTIFY_START_RESUME_PLAYBACK returns 403 if the user does not have Spotify Premium | | Active device required | Playback control returns 404 if no Spotify device (mobile, desktop, web, speaker) is active | | context_uri vs uris are exclusive | Cannot use both context_uri and uris in the same playback call | | Collaborative playlists | collaborative can only be set to true on non-public playlists (public must be false) | | Playlist ownership | SPOTIFY_CHANGE_PLAYLIST_DETAILS only works on playlists owned by the authenticated user | | Audiobook market restrictions | Audiobooks via search are only available in US, UK, Canada, Ireland, New Zealand, and Australia | | Max 11000 playlists | Users are limited to approximately 11,000 playlists via SPOTIFY_CREATE_PLAYLIST |


Quick Reference

| Tool Slug | Purpose | |-----------|---------| | SPOTIFY_GET_CURRENT_USER_S_PROFILE | Get authenticated user's profile | | SPOTIFY_SEARCH_FOR_ITEM | Search catalog for tracks, albums, artists, etc. | | SPOTIFY_GET_USER_S_PLAYLISTS | Get playlists for any user | | SPOTIFY_GET_CURRENT_USER_S_PLAYLISTS | Get current user's playlists | | SPOTIFY_GET_PLAYLIST | Get detailed playlist info | | SPOTIFY_GET_PLAYLIST_ITEMS | List tracks/episodes in a playlist | | SPOTIFY_CHANGE_PLAYLIST_DETAILS | Update playlist name, description, visibility | | SPOTIFY_CREATE_PLAYLIST | Create a new playlist | | SPOTIFY_ADD_ITEMS_TO_PLAYLIST | Add tracks/episodes to a playlist | | SPOTIFY_GET_TRACK | Get track details by ID | | SPOTIFY_GET_ALBUM | Get album details by ID | | SPOTIFY_START_RESUME_PLAYBACK | Start or resume playback on a device |


Powered by Composio