Spotify Automation
Automate Spotify workflows including playlist management, music search, playback control, and user profile access via Composio
Best use case
Spotify Automation is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Automate Spotify workflows including playlist management, music search, playback control, and user profile access via Composio
Teams using Spotify Automation should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/spotify-automation/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How Spotify Automation Compares
| Feature / Agent | Spotify Automation | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Automate Spotify workflows including playlist management, music search, playback control, and user profile access via Composio
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# 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](https://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](https://composio.dev)*Related Skills
changelog-automation
Automate changelog generation from commits, PRs, and releases following Keep a Changelog format. Use when setting up release workflows, generating release notes, or standardizing commit conventions.
zylvie-automation
Automate Zylvie tasks via Rube MCP (Composio). Always search tools first for current schemas.
zoominfo-automation
Automate Zoominfo tasks via Rube MCP (Composio). Always search tools first for current schemas.
zoho-mail-automation
Automate Zoho Mail tasks via Rube MCP (Composio): email sending, folders, labels, and mailbox management. Always search tools first for current schemas.
zoho-invoice-automation
Automate Zoho Invoice tasks via Rube MCP (Composio): invoices, estimates, expenses, clients, and payment tracking. Always search tools first for current schemas.
zoho-inventory-automation
Automate Zoho Inventory tasks via Rube MCP (Composio): items, orders, warehouses, shipments, and stock management. Always search tools first for current schemas.
Zoho Desk Automation
Automate Zoho Desk tasks via Rube MCP (Composio): tickets, contacts, agents, departments, and help desk operations. Always search tools first for current schemas.
Zoho Books Automation
Automate Zoho Books tasks via Rube MCP (Composio): invoices, expenses, contacts, payments, and accounting. Always search tools first for current schemas.
zoho-bigin-automation
Automate Zoho Bigin tasks via Rube MCP (Composio): pipelines, contacts, companies, products, and small business CRM. Always search tools first for current schemas.
zoho-automation
Automate Zoho tasks via Rube MCP (Composio). Always search tools first for current schemas.
zerobounce-automation
Automate Zerobounce tasks via Rube MCP (Composio). Always search tools first for current schemas.
zeplin-automation
Automate Zeplin tasks via Rube MCP (Composio). Always search tools first for current schemas.