Home
cd ../playbooks
Media ProductionAdvanced

Spotify Integration & Analytics

Automate Spotify music playback, playlist management, and audio analysis workflows

10 minutes
By communitySource
#spotify#music#playlist#audio#entertainment

Managing Spotify playlists, analyzing listening trends, and integrating music data into your workflows requires repetitive API calls and manual curation. This playbook automates Spotify playback control, playlist management, audio feature analysis, and listening analytics.

Who it's for: music curators automating playlist creation and management based on audio features, podcast producers integrating Spotify analytics into their production workflow, music data analysts studying listening patterns and audio feature trends, content creators building mood-based or activity-based playlist generators, developers integrating Spotify data into music recommendation or fitness applications

Example

"Create an automated workout playlist based on BPM and energy levels" → Spotify pipeline: Spotify API authentication and library scanning, audio feature analysis (tempo, energy, danceability) across saved tracks, automated playlist creation filtering by BPM range and energy threshold, track ordering for warm-up to peak intensity progression, and listening analytics dashboard showing playlist performance

CLAUDE.md Template

New here? 3-minute setup guide → | Already set up? Copy the template below.

# Spotify Automation

Automate Spotify music playback, playlist management, and discovery workflows.

## Core Capabilities

### Playback Control
```yaml
playback_commands:
  - play_track: "spotify:track:xxx"
  - pause
  - next_track
  - previous_track
  - set_volume: 75
  - set_shuffle: true
  - set_repeat: "context"  # track, context, off
  - seek_position: 30000  # milliseconds
  - transfer_playback:
      device_id: "device_xxx"
```

### Playlist Management
```yaml
playlist_operations:
  create:
    name: "{{playlist_name}}"
    description: "{{description}}"
    public: false
    collaborative: false
    
  add_tracks:
    playlist_id: "xxx"
    tracks:
      - "spotify:track:xxx"
      - "spotify:track:yyy"
    position: 0  # optional
    
  smart_playlist:
    name: "Workout Mix"
    criteria:
      energy: "> 0.8"
      tempo: "> 120"
      genres: ["electronic", "pop"]
    limit: 50
    refresh: weekly
```

### Music Discovery
```yaml
recommendations:
  seed_tracks: ["track_id_1", "track_id_2"]
  seed_artists: ["artist_id"]
  seed_genres: ["pop", "rock"]
  
  target_features:
    energy: 0.8
    danceability: 0.7
    valence: 0.6  # positiveness
    
  limit: 20
```

### Audio Analysis
```yaml
audio_features:
  - acousticness: 0.0-1.0
  - danceability: 0.0-1.0
  - energy: 0.0-1.0
  - instrumentalness: 0.0-1.0
  - liveness: 0.0-1.0
  - loudness: -60 to 0 dB
  - speechiness: 0.0-1.0
  - tempo: BPM
  - valence: 0.0-1.0 (mood)
  - key: 0-11 (C to B)
  - mode: 0 (minor) or 1 (major)
```

## Workflow Examples

### Daily Mix Generator
```yaml
workflow:
  trigger: daily at 6:00 AM
  steps:
    - get_recently_played: 50
    - analyze_mood: based_on_audio_features
    - get_recommendations: 
        based_on: recent_tracks
        mood: current_time_appropriate
    - create_playlist: "Today's Mix - {{date}}"
    - add_tracks: recommended
```

### Party Mode
```yaml
party_playlist:
  trigger: "party mode"
  actions:
    - get_top_tracks:
        time_range: medium_term
        limit: 20
    - get_recommendations:
        seed: top_tracks
        energy: "> 0.8"
        danceability: "> 0.7"
    - shuffle_and_play
    - set_crossfade: 5  # seconds
```

## API Examples

```javascript
// Search and Play
const results = await spotify.search("Bohemian Rhapsody", ["track"]);
await spotify.play({ uris: [results.tracks.items[0].uri] });

// Create Smart Playlist
const recs = await spotify.getRecommendations({
  seed_genres: ["chill"],
  target_energy: 0.4,
  limit: 30
});
const playlist = await spotify.createPlaylist("Chill Vibes", {
  description: "AI-curated relaxation",
  public: false
});
await spotify.addTracksToPlaylist(playlist.id, recs.tracks.map(t => t.uri));
```

## Best Practices

1. **Rate Limits**: Respect Spotify API limits
2. **Caching**: Cache frequently accessed data
3. **User Consent**: Request appropriate scopes
4. **Fallbacks**: Handle unavailable tracks gracefully
README.md

What This Does

Automate Spotify music playback, playlist management, and discovery workflows.


Quick Start

Step 1: Create a Project Folder

mkdir -p ~/Documents/SpotifyAutomation

Step 2: Download the Template

Click Download above, then:

mv ~/Downloads/CLAUDE.md ~/Documents/SpotifyAutomation/

Step 3: Start Working

cd ~/Documents/SpotifyAutomation
claude

Best Practices

  1. Rate Limits: Respect Spotify API limits
  2. Caching: Cache frequently accessed data
  3. User Consent: Request appropriate scopes
  4. Fallbacks: Handle unavailable tracks gracefully

$Related Playbooks