Spotify Automation

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

11 stars

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

$curl -o ~/.claude/skills/spotify-automation/SKILL.md --create-dirs "https://raw.githubusercontent.com/EricGrill/agents-skills-plugins/main/plugins/awesome-claude-skills/composio-skills/spotify-automation/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/spotify-automation/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How Spotify Automation Compares

Feature / AgentSpotify AutomationStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/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

11
from EricGrill/agents-skills-plugins

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

11
from EricGrill/agents-skills-plugins

Automate Zylvie tasks via Rube MCP (Composio). Always search tools first for current schemas.

zoominfo-automation

11
from EricGrill/agents-skills-plugins

Automate Zoominfo tasks via Rube MCP (Composio). Always search tools first for current schemas.

zoho-mail-automation

11
from EricGrill/agents-skills-plugins

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

11
from EricGrill/agents-skills-plugins

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

11
from EricGrill/agents-skills-plugins

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

11
from EricGrill/agents-skills-plugins

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

11
from EricGrill/agents-skills-plugins

Automate Zoho Books tasks via Rube MCP (Composio): invoices, expenses, contacts, payments, and accounting. Always search tools first for current schemas.

zoho-bigin-automation

11
from EricGrill/agents-skills-plugins

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

11
from EricGrill/agents-skills-plugins

Automate Zoho tasks via Rube MCP (Composio). Always search tools first for current schemas.

zerobounce-automation

11
from EricGrill/agents-skills-plugins

Automate Zerobounce tasks via Rube MCP (Composio). Always search tools first for current schemas.

zeplin-automation

11
from EricGrill/agents-skills-plugins

Automate Zeplin tasks via Rube MCP (Composio). Always search tools first for current schemas.