LastFM to Spotify Playlists
/install lastfm-spotify-playlists
Execution Model
This skill runs directly via local Python scripts.
Valid entrypoints:
python run_pipeline.py ...python auth.py
Absolute rules
- Do NOT use ACP
- Do NOT request or require an agentId
- Do NOT propose manual workflows
- Do NOT suggest alternative scripts or paths
- Do NOT reference any
scripts/directory - Do NOT use
python -mmodule execution - Do NOT assume the package must be installed
All commands must be executed from the root of this skill folder.
Critical Behavior Rules
If the user asks for:
- creating a playlist
- adding songs to Spotify
- saving results to Spotify
You MUST execute:
--output-mode spotify --create-playlist
Primary entrypoints:
- `python run_pipeline.py ...`
- `python auth.py ...`
This skill is intentionally organized as plain scripts plus helper modules:
- `run_pipeline.py`
- `auth.py`
- `lastfm.py`
- `spotify.py`
- `pipeline.py`
- `common.py`
No package installation is required.
# Purpose
This skill:
- uses Last.fm as the discovery engine
- expands seeds through `track.getsimilar`
- ranks merged candidates
- optionally matches results on Spotify
- optionally creates Spotify playlists
# Requirements
## Python
A normal local Python interpreter must be available.
## Last.fm credentials
Supported sources:
- environment variables:
- `LASTFM_API_KEY`
- `LASTFM_SHARED_SECRET`
- `LASTFM_USERNAME`
- credentials file:
- `~/.openclaw/lastfm-credentials.json`
- explicit file path via command flag:
- `--creds \x3Cpath>`
Example file:
```json
{
"api_key": "YOUR_LASTFM_API_KEY",
"shared_secret": "YOUR_LASTFM_SHARED_SECRET",
"username": "YOUR_LASTFM_USERNAME"
}
Spotify credentials
Needed only for Spotify matching or playlist creation.
Supported sources:
- environment variables:
SPOTIFY_CLIENT_IDSPOTIFY_CLIENT_SECRETSPOTIFY_REDIRECT_URI
- credentials file:
~/.openclaw/spotify-credentials.json
- explicit file path via command flag:
--spotify-creds \x3Cpath>
Saved token location:
~/.openclaw/spotify-token.json- or explicit path via
--spotify-token \x3Cpath>
Command Selection
1. Recommend from recent Last.fm listening
Use when the request is based on a user's recent scrobbles.
python run_pipeline.py recent-tracks --user "\x3CLASTFM_USER>" --recent-count 10 --similar-per-seed 5 --final-limit 20 --output-mode lastfm-only
2. Recommend from a seed artist
Use when the request is based on one artist.
python run_pipeline.py artist-rule-c "\x3CARTIST_NAME>" --seed-count 5 --similar-per-seed 10 --final-limit 20 --output-mode lastfm-only
3. Recommend from top artists
Use when the request is based on a user's broader taste profile.
python run_pipeline.py top-artists-blend --user "\x3CLASTFM_USER>" --period 1month --artist-count 5 --seed-count-per-artist 3 --similar-per-seed 5 --final-limit 20 --output-mode lastfm-only
4. Match recommendations to Spotify
Use when the user wants playable Spotify results but not necessarily a playlist.
python run_pipeline.py recent-tracks --user "\x3CLASTFM_USER>" --recent-count 10 --final-limit 20 --output-mode spotify
5. Create Spotify playlist
Use when the user explicitly wants a playlist created.
python run_pipeline.py recent-tracks --user "\x3CLASTFM_USER>" --recent-count 10 --final-limit 20 --output-mode spotify --create-playlist --playlist-name "Last.fm Recommendations"
6. Run Spotify auth
Use when Spotify token setup is required.
python auth.py
Optional explicit paths:
python auth.py --spotify-creds "\x3CPATH_TO_SPOTIFY_CREDS_JSON>" --spotify-token "\x3CPATH_TO_SPOTIFY_TOKEN_JSON>"
Behavior Rules
- Prefer Last.fm for recommendation discovery
- Use Spotify only for:
- search
- playlist creation
- playlist population
- If the user only wants suggestions, use
--output-mode lastfm-only - If the user wants Spotify results, use
--output-mode spotify - If the user wants a playlist created, add
--create-playlist - Never invent missing credentials
- Never fall back to ACP or agent execution
Output Expectations
The scripts print JSON to stdout.
Return the JSON result directly or summarize it faithfully.
Typical fields include:
modeuserseed_artistseed_trackssuggestionsmatched_tracksunmatched_tracksplaylist
Error Handling
If the script exits with an error:
- surface stderr or the raised error message directly
- do not retry through ACP
- do not ask for an agentId
- do not claim the skill is unavailable because it is not a package
Common expected failures:
- missing Last.fm API key
- missing Last.fm username
- missing Spotify credentials
- missing Spotify token
- expired Spotify token without refresh token
Notes
This skill is intentionally script-based for reliability.
It should work as long as:
- the skill folder is present
- Python is present
- credentials are configured
- commands are executed from the skill folder root
It must not depend on package installation, editable installs, or import path manipulation.
- 确保已安装 OpenClaw(本地或 Docker 部署)
- 在对话框中输入安装命令:
/install lastfm-spotify-playlists - 安装完成后,直接呼叫该 Skill 的名称或使用
/lastfm-spotify-playlists触发 - 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
LastFM to Spotify Playlists 是什么?
Build music recommendations and create Spotify playlists using Last.fm similarity and listening history. 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 141 次。
如何安装 LastFM to Spotify Playlists?
在 OpenClaw 或 Claude Code 对话框中运行命令「/install lastfm-spotify-playlists」即可一键安装,无需额外配置。
LastFM to Spotify Playlists 是免费的吗?
是的,LastFM to Spotify Playlists 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。
LastFM to Spotify Playlists 支持哪些平台?
LastFM to Spotify Playlists 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。
谁开发了 LastFM to Spotify Playlists?
由 Stanislav Stankovic(@stanestane)开发并维护,当前版本 v1.5.0。