← 返回 Skills 市场
geekfoxcharlie

Music Recommender

作者 geekfoxcharlie · GitHub ↗ · v1.0.0 · MIT-0
cross-platform ✓ 安全检测通过
111
总下载
0
收藏
0
当前安装
1
版本数
在 OpenClaw 中安装
/install music-recommender
功能描述
Analyze NetEase Cloud Music (网易云音乐) playlist and recommend songs matching their taste. Use when user asks for music recommendations, wants a daily playlist,...
使用说明 (SKILL.md)

Music Recommender

Analyze a user's NetEase Cloud Music playlist, profile their taste, and recommend songs with clickable Bilibili links (free, no membership required).

Workflow

Step 1 — Parse Playlist

Extract playlist ID from user's link. Supported formats:

  • https://music.163.com/playlist?id=XXXXX
  • https://music.163.com/#/playlist?id=XXXXX

Run the fetch script:

python3 {baseDir}/scripts/fetch_playlist.py \x3Cplaylist_id> > /tmp/playlist_\x3Cid>.json

Output: JSON array of {name, artists, album} objects.

Step 2 — Analyze Taste

Read the JSON output. Profile the user's taste:

  1. Top artists — count occurrences, identify top 10-20
  2. Language mix — estimate Chinese/English/Japanese/Korean ratio from song titles
  3. Genre tags — infer from artists and song names (e.g. 气声唱法, 90s怀旧, indie folk, dream pop)
  4. Era — identify decade distribution
  5. Mood — upbeat/melancholic/dreamy/energetic based on song names and artists

Summarize the taste profile in 3-5 bullet points.

Step 3 — Recommend

Based on the taste profile, recommend 10 songs that:

  • Match the user's preferences (similar artists, genres, mood)
  • Are NOT already in their playlist
  • Are diverse — mix of Chinese and foreign, different sub-genres
  • Include both well-known and lesser-known picks

For each recommended song, search Bilibili for a playable link:

python3 {baseDir}/scripts/search_bilibili.py "\x3Cartist> \x3Csong> 官方MV"

Output: BV_ID|TITLE|URL

Step 4 — Format Output

Present the recommendations as a plain text list (NOT HTML/markdown links) for Telegram compatibility:

🎵 Vulpis 今日推荐歌单

**华语女声:**
1. 陈粒 — 奇妙能力歌
https://www.bilibili.com/video/BVxxxxx

2. ...

**欧美梦幻:**
6. ...

Rules for Telegram formatting:

  • Use bold for section headers, NOT markdown links [text](url)
  • Put URL on its own line after the song name
  • Group by genre/language (华语/欧美/日语 etc.)
  • Keep descriptions short (5-10 words)

Step 5 — Record & De-duplicate

IMPORTANT: Only recommend ONCE per day. Before recommending:

  1. Check if today's recommendation file exists:

    ~/.openclaw/workspace/music-history/YYYY-MM-DD.json
    

    If it exists, reply with today's list and say "今天已经推荐过了". Do NOT generate a new one.

  2. If not, load the full history to avoid repeats:

    python3 {baseDir}/scripts/history.py show
    

    This outputs all previously recommended songs across all days.

  3. When generating recommendations, exclude any song that appears in the history.

  4. After generating, save today's recommendations:

    python3 {baseDir}/scripts/history.py save
    

    Pipe in JSON array: [{"name":"...","artists":"...","bvid":"...","url":"..."}]

History Storage

~/.openclaw/workspace/music-history/
├── 2026-03-29.json
├── 2026-03-30.json
└── ...

Each file: JSON array of recommended songs for that day.

Step 6 — (Optional) Extra Save

If user wants to save elsewhere, offer to:

  • Write to Notion (Content Calendar or a Music DB)
  • Generate an HTML page in the workspace
  • Create a text file in the workspace

Notes

  • NetEase API endpoint: https://music.163.com/api/v6/playlist/detail?id=\x3CID>&n=1000
  • Required headers: User-Agent: Mozilla/5.0, Referer: https://music.163.com/, Cookie: os=pc;
  • Artist field is ar (not artists) in NetEase API response
  • Bilibili search API: https://api.bilibili.com/x/web-interface/search/all/v2?keyword=\x3Cquery>
  • Required headers for Bilibili: User-Agent: Mozilla/5.0, Referer: https://www.bilibili.com/
  • Default recommendation count: 10 songs
  • Always use Bilibili links (free, no membership) instead of NetEase links
安全使用建议
This skill appears to do what it says: it fetches a NetEase playlist, analyzes it, searches Bilibili for playable links, and saves daily recommendations locally. Before installing, be aware it will: (1) make outbound requests to music.163.com and api.bilibili.com, (2) create/read/write files at ~/.openclaw/workspace/music-history (clear-text JSON), and (3) has an unimplemented mention of Notion saving (no credentials or code provided). If you are comfortable with those network calls and local files, the skill is coherent. If you want to limit data exposure, run it in an environment with controlled network access or inspect/modify the scripts (they are plain Python) to change the history path or disable saving.
能力评估
Purpose & Capability
Name/description match the included scripts: fetch_playlist.py queries NetEase, analyze_taste.py profiles tracks, search_bilibili.py finds Bilibili links, and history.py manages local daily history. No unrelated credentials, binaries, or external services are required.
Instruction Scope
SKILL.md instructs the agent to run the provided scripts, query NetEase and Bilibili APIs, and read/write history files under ~/.openclaw/workspace/music-history. That is within the skill's scope. Minor scope mismatch: SKILL.md mentions offering to write to Notion (and other external saves) but there is no Notion integration code or required env vars in the package—this is an unimplemented optional feature and should not be assumed available.
Install Mechanism
Instruction-only skill with bundled scripts; no installer, downloads, or archive extraction. Scripts run directly with the system Python interpreter. No high-risk install behavior detected.
Credentials
The skill requests no environment variables or credentials. It performs unauthenticated HTTP GETs to public NetEase and Bilibili endpoints (using a static Cookie header fragment for NetEase). This is proportional to its stated functionality. Note: network access will expose playlist metadata and search queries to those external services.
Persistence & Privilege
The skill writes and reads JSON files under ~/.openclaw/workspace/music-history to enforce daily recommendations and de-duplication. This is expected for the feature but means recommendation history is stored unencrypted in the user's home directory. always is false and the skill does not modify other skills or system-wide settings.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install music-recommender
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /music-recommender 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v1.0.0
Initial release: NetEase Cloud Music playlist analysis + personalized recommendations with free Bilibili links. Daily limit, never repeat.
元数据
Slug music-recommender
版本 1.0.0
许可证 MIT-0
累计安装 0
当前安装数 0
历史版本数 1
常见问题

Music Recommender 是什么?

Analyze NetEase Cloud Music (网易云音乐) playlist and recommend songs matching their taste. Use when user asks for music recommendations, wants a daily playlist,... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 111 次。

如何安装 Music Recommender?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install music-recommender」即可一键安装,无需额外配置。

Music Recommender 是免费的吗?

是的,Music Recommender 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。

Music Recommender 支持哪些平台?

Music Recommender 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 Music Recommender?

由 geekfoxcharlie(@geekfoxcharlie)开发并维护,当前版本 v1.0.0。

💬 留言讨论