skills$openclaw/spotify-history
braydoncoyer8.2k

by braydoncoyer

spotify-history – OpenClaw Skill

spotify-history is an OpenClaw Skills integration for coding workflows. Access Spotify listening history, top artists/tracks, and get personalized recommendations via the Spotify Web API. Use when fetching a user's recent plays, analyzing music taste, or generating recommendations. Requires one-time OAuth setup.

8.2k stars1.7k forksSecurity L1
Updated Feb 7, 2026Created Feb 7, 2026coding

Skill Snapshot

namespotify-history
descriptionAccess Spotify listening history, top artists/tracks, and get personalized recommendations via the Spotify Web API. Use when fetching a user's recent plays, analyzing music taste, or generating recommendations. Requires one-time OAuth setup. OpenClaw Skills integration.
ownerbraydoncoyer
repositorybraydoncoyer/spotify-history
languageMarkdown
licenseMIT
topics
securityL1
installopenclaw add @braydoncoyer/spotify-history
last updatedFeb 7, 2026

Maintainer

braydoncoyer

braydoncoyer

Maintains spotify-history in the OpenClaw Skills directory.

View GitHub profile
File Explorer
7 files
.
scripts
setup.sh
2.0 KB
spotify-api.py
5.3 KB
spotify-auth.py
3.4 KB
_meta.json
466 B
README.md
1.2 KB
SKILL.md
4.6 KB
SKILL.md

name: spotify-history description: Access Spotify listening history, top artists/tracks, and get personalized recommendations via the Spotify Web API. Use when fetching a user's recent plays, analyzing music taste, or generating recommendations. Requires one-time OAuth setup.

Spotify History & Recommendations

Access Spotify listening history and get personalized recommendations.

Quick Setup (Recommended)

Run the setup wizard:

bash skills/spotify-history/scripts/setup.sh

This guides you through:

  1. Creating a Spotify Developer App
  2. Saving credentials securely
  3. Authorizing access

Manual Setup

  1. Create Spotify Developer App

    • Go to developer.spotify.com/dashboard
    • Click Create App
    • Fill in:
      • App name: Clawd (or any name)
      • App description: Personal assistant integration
      • Redirect URI: http://127.0.0.1:8888/callback ⚠️ Use exact URL!
    • Save and copy Client ID and Client Secret
  2. Store Credentials

    Option A: Credentials file (recommended)

    mkdir -p credentials
    cat > credentials/spotify.json <<EOF
    {
      "client_id": "your_client_id",
      "client_secret": "your_client_secret"
    }
    EOF
    chmod 600 credentials/spotify.json
    

    Option B: Environment variables

    # Add to ~/.zshrc or ~/.bashrc
    export SPOTIFY_CLIENT_ID="your_client_id"
    export SPOTIFY_CLIENT_SECRET="your_client_secret"
    
  3. Authenticate

    With browser (local machine):

    python3 scripts/spotify-auth.py
    

    Headless (no browser):

    python3 scripts/spotify-auth.py --headless
    

    Follow the prompts to authorize via URL and paste the callback.

Tokens are saved to ~/.config/spotify-clawd/token.json and auto-refresh when expired.

Usage

Command Line

# Recent listening history
python3 scripts/spotify-api.py recent

# Top artists (time_range: short_term, medium_term, long_term)
python3 scripts/spotify-api.py top-artists medium_term

# Top tracks
python3 scripts/spotify-api.py top-tracks medium_term

# Get recommendations based on your top artists
python3 scripts/spotify-api.py recommend

# Raw API call (any endpoint)
python3 scripts/spotify-api.py json /me
python3 scripts/spotify-api.py json /me/player/recently-played

Time Ranges

  • short_term — approximately last 4 weeks
  • medium_term — approximately last 6 months (default)
  • long_term — all time

Example Output

Top Artists (medium_term):
  1. Hans Zimmer [soundtrack, score]
  2. John Williams [soundtrack, score]
  3. Michael Giacchino [soundtrack, score]
  4. Max Richter [ambient, modern classical]
  5. Ludovico Einaudi [italian contemporary classical]

Agent Usage

When user asks about music:

  • "What have I been listening to?" → spotify-api.py recent
  • "Who are my top artists?" → spotify-api.py top-artists
  • "Recommend new music" → spotify-api.py recommend + add your own knowledge

For recommendations, combine API data with music knowledge to suggest similar artists not in their library.

Troubleshooting

"Spotify credentials not found!"

  • Make sure credentials/spotify.json exists or environment variables are set
  • Credential file is checked first, then env vars
  • Run bash skills/spotify-history/scripts/setup.sh to create credentials

"Not authenticated. Run spotify-auth.py first."

  • Tokens don't exist or are invalid
  • Run: python3 scripts/spotify-auth.py (or with --headless if no browser)

"HTTP Error 400: Bad Request" during token refresh

  • Credentials changed or are invalid
  • Re-run setup: bash skills/spotify-history/scripts/setup.sh
  • Or update credentials/spotify.json with correct Client ID/Secret

"HTTP Error 401: Unauthorized"

  • Token expired and auto-refresh failed
  • Delete token and re-authenticate:
    rm ~/.config/spotify-clawd/token.json
    python3 scripts/spotify-auth.py
    

Headless / No Browser

  • Use --headless flag: python3 scripts/spotify-auth.py --headless
  • Manually open the auth URL on any device
  • Copy the callback URL (starts with http://127.0.0.1:8888/callback?code=...)
  • Paste it back when prompted

Security Notes

  • Tokens stored with 0600 permissions (user-only read/write)
  • Client secret should be kept private
  • Redirect URI uses 127.0.0.1 (local only) for security

Required Scopes

  • user-read-recently-played — recent listening history
  • user-top-read — top artists and tracks
  • user-read-playback-state — current playback
  • user-read-currently-playing — currently playing track
README.md

Spotify History & Recommendations

Access your Spotify listening history, top artists/tracks, and get personalized recommendations via the Spotify Web API.

Quick Start

# Run setup wizard
bash skills/spotify-history/scripts/setup.sh

# Test it
python3 scripts/spotify-api.py recent
python3 scripts/spotify-api.py top-artists
python3 scripts/spotify-api.py recommend
  • Listening History: See what you've been playing recently
  • Top Artists/Tracks: Your most-played artists and tracks (4 weeks, 6 months, or all time)
  • Recommendations: Get personalized music recommendations based on your taste
  • Auto-Refresh: Tokens refresh automatically - set up once, works forever

Requirements

  • Python 3.6+
  • Spotify account (free or premium)
  • One-time setup: Spotify Developer App (free, takes 2 minutes)

Agent Integration

When you ask your agent about music:

  • "What have I been listening to?"
  • "Who are my top artists?"
  • "Recommend new music"

The agent will:

  1. Fetch your Spotify data
  2. Analyze your taste
  3. Combine API data with music knowledge for personalized recommendations

Documentation

See SKILL.md for full documentation, troubleshooting, and advanced usage.

License

MIT

Permissions & Security

Security level L1: Low-risk skills with minimal permissions. Review inputs and outputs before running in production.

- Tokens stored with 0600 permissions (user-only read/write) - Client secret should be kept private - Redirect URI uses `127.0.0.1` (local only) for security

Requirements

  • OpenClaw CLI installed and configured.
  • Language: Markdown
  • License: MIT
  • Topics:

FAQ

How do I install spotify-history?

Run openclaw add @braydoncoyer/spotify-history in your terminal. This installs spotify-history into your OpenClaw Skills catalog.

Does this skill run locally or in the cloud?

OpenClaw Skills execute locally by default. Review the SKILL.md and permissions before running any skill.

Where can I verify the source code?

The source repository is available at https://github.com/openclaw/skills/tree/main/skills/braydoncoyer/spotify-history. Review commits and README documentation before installing.