Music Recommender
/install music-recommender
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=XXXXXhttps://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:
- Top artists — count occurrences, identify top 10-20
- Language mix — estimate Chinese/English/Japanese/Korean ratio from song titles
- Genre tags — infer from artists and song names (e.g. 气声唱法, 90s怀旧, indie folk, dream pop)
- Era — identify decade distribution
- 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:
-
Check if today's recommendation file exists:
~/.openclaw/workspace/music-history/YYYY-MM-DD.jsonIf it exists, reply with today's list and say "今天已经推荐过了". Do NOT generate a new one.
-
If not, load the full history to avoid repeats:
python3 {baseDir}/scripts/history.py showThis outputs all previously recommended songs across all days.
-
When generating recommendations, exclude any song that appears in the history.
-
After generating, save today's recommendations:
python3 {baseDir}/scripts/history.py savePipe 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(notartists) 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
- Make sure OpenClaw is installed (local or Docker)
- Run the install command in chat:
/install music-recommender - After installation, invoke the skill by name or use
/music-recommender - Provide required inputs per the skill's parameter spec and get structured output
What is Music Recommender?
Analyze NetEase Cloud Music (网易云音乐) playlist and recommend songs matching their taste. Use when user asks for music recommendations, wants a daily playlist,... It is an AI Agent Skill for Claude Code / OpenClaw, with 111 downloads so far.
How do I install Music Recommender?
Run "/install music-recommender" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.
Is Music Recommender free?
Yes, Music Recommender is completely free, licensed under MIT-0. You can download, install and use it at no cost.
Which platforms does Music Recommender support?
Music Recommender is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).
Who created Music Recommender?
It is built and maintained by geekfoxcharlie (@geekfoxcharlie); the current version is v1.0.0.