spotify-history
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.
- License 许可
- MIT
- 最近更新
- 2026-04-05
- Stars
- ★ 7
- Forks
- 1
01 前言 Front Matter
- 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.
02 资源文件 5
- 参考文档_meta.json466 B
- 参考文档README.md1.2 KB
- 脚本scripts/setup.sh2.0 KB
- 脚本scripts/spotify-api.py5.3 KB
- 脚本scripts/spotify-auth.py3.4 KB
03 SKILL.md 正文
Spotify History & Recommendations
Access Spotify listening history and get personalized recommendations.
Setup (One-Time)
Quick Setup (Recommended)
Run the setup wizard:
bash skills/spotify-history/scripts/setup.sh
This guides you through:
- Creating a Spotify Developer App
- Saving credentials securely
- Authorizing access
Manual Setup
-
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!
- App name:
- Save and copy Client ID and Client Secret
-
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.jsonOption B: Environment variables
# Add to ~/.zshrc or ~/.bashrc export SPOTIFY_CLIENT_ID="your_client_id" export SPOTIFY_CLIENT_SECRET="your_client_secret" -
Authenticate
With browser (local machine):
python3 scripts/spotify-auth.pyHeadless (no browser):
python3 scripts/spotify-auth.py --headlessFollow 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 weeksmedium_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.jsonexists or environment variables are set - Credential file is checked first, then env vars
- Run
bash skills/spotify-history/scripts/setup.shto create credentials
"Not authenticated. Run spotify-auth.py first."
- Tokens don't exist or are invalid
- Run:
python3 scripts/spotify-auth.py(or with--headlessif 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.jsonwith 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
--headlessflag: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 historyuser-top-read— top artists and tracksuser-read-playback-state— current playbackuser-read-currently-playing— currently playing track
04 同仓库更多 Skills
zyfai
Earn yield on any Ethereum wallet on Base, Arbitrum, and Plasma. Use when a user wants passive DeFi yield on their funds. Deploys a non-custodial subaccount (Safe) linked to their EOA, enables automated yield optimization, and lets them deposit/withdraw anytime.
zerion-api
暂无简介
zerion-api-skill
暂无简介
zerion-api-mcp
暂无简介
yahoo-finance-forex
Fetches real-time FOREX news and market data from Yahoo Finance for major currency pairs (EUR/USD, GBP/USD, USD/JPY, etc.). Analyzes sentiment and provides trading context.
yahoo-finance
This skill should be used when the user asks to "get stock prices", "check stock quotes", "look up earnings", "get financial data", "find trending stocks", or needs stock market data from Yahoo Finance.