Files
pocketpaw/docs/integrations/spotify.mdx
Prakash 57b807c117 docs(seo): optimize titles, descriptions, headings, and cross-links
Comprehensive SEO optimization across 80 documentation pages:

Title optimization (all pages):
- Replaced generic titles like "Architecture", "Discord", "Slack"
  with search-intent titles like "PocketPaw Architecture: Event-Driven
  Message Bus", "Discord Bot Setup: Add PocketPaw to Your Server"
- All titles now 50-70 characters with qualifying keywords

Meta descriptions:
- Expanded 7 short descriptions (under 145 chars) to 150-160 chars
- Roadmap description expanded from 76 to 196 chars
- Troubleshooting, Codex CLI, OpenCode, WebMCP all expanded

H1 heading fixes:
- Ensured single H1 per page matching the frontmatter title
- All H1 headings updated to match new optimized titles

Internal cross-links:
- Added Related CardGroup sections to 60+ individual pages
- Each links to 2-3 related pages within and across sections
- Channels link to channel guides, backends link to Ollama guide, etc.

Em dash cleanup:
- Replaced em dashes with colons, periods, or double hyphens
  across multiple files in tools/, channels/, integrations/

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 17:41:36 +05:30

107 lines
2.9 KiB
Plaintext

---
title: "Spotify Integration: Music Control via AI"
description: "Control Spotify from PocketPaw: search tracks and artists, see what's currently playing, control playback (play, pause, skip), and manage playlists. Requires Spotify OAuth credentials."
section: Integrations
ogType: article
keywords: ["spotify integration", "music control", "spotify api", "playback control", "playlist management"]
tags: ["integrations", "spotify", "media"]
---
# Spotify Integration: Music Control via AI
PocketPaw integrates with Spotify for music search, playback control, and playlist management.
## Setup
<Steps>
<Step title="Create Spotify app">
Go to [developer.spotify.com/dashboard](https://developer.spotify.com/dashboard) and create a new app.
</Step>
<Step title="Set redirect URI">
Add `http://localhost:8888/callback` as a redirect URI.
</Step>
<Step title="Configure">
```bash
export POCKETPAW_SPOTIFY_CLIENT_ID="your-client-id"
export POCKETPAW_SPOTIFY_CLIENT_SECRET="your-secret"
```
</Step>
<Step title="Authorize">
The first time you use a Spotify tool, PocketPaw will open a browser for authorization.
</Step>
</Steps>
## Tools
### spotify_search
Search for tracks, albums, or artists:
```
User: Find songs by Radiohead
Agent: [uses spotify_search] → Top results:
1. "Creep" - Radiohead (Pablo Honey)
2. "Karma Police" - Radiohead (OK Computer)
3. "No Surprises" - Radiohead (OK Computer)
```
### spotify_now_playing
Get the currently playing track:
```
User: What's playing right now?
Agent: [uses spotify_now_playing] → Now playing: "Bohemian Rhapsody" by Queen (3:24/5:55)
```
### spotify_playback
Control playback (play, pause, skip, volume):
```
User: Skip to the next track
Agent: [uses spotify_playback] → Skipped to next track
User: Set volume to 50%
Agent: [uses spotify_playback] → Volume set to 50%
```
### spotify_playlist
Manage playlists:
```
User: Add the current song to my favorites playlist
Agent: [uses spotify_playlist] → Added "Bohemian Rhapsody" to "Favorites"
```
## Policy Group
All Spotify tools belong to `group:spotify`.
## Required Scopes
- `user-read-playback-state`
- `user-modify-playback-state`
- `user-read-currently-playing`
- `playlist-modify-public`
- `playlist-modify-private`
<Callout type="info">
Spotify requires an active Spotify Premium account for playback control.
</Callout>
## Related
<CardGroup>
<Card title="Reddit Integration" icon="lucide:message-circle" href="/integrations/reddit">
Search posts, read threads, and browse trending content on Reddit.
</Card>
<Card title="OAuth Framework" icon="lucide:key" href="/integrations/oauth">
How PocketPaw handles Spotify OAuth tokens and refresh flows.
</Card>
<Card title="Integrations Overview" icon="lucide:plug" href="/integrations">
Browse all available integrations and learn how they connect.
</Card>
</CardGroup>