ClawKit Logo
ClawKitReliability Toolkit
Back to Registry
Official Verified

apple-music-dj

Ultimate personalization engine for Apple Music. Analyzes listening history, Apple Music Replay stats, library data, and taste patterns to create intelligent playlists directly in the user's Apple Music library via the MusicKit API. Supports deep cuts discovery, mood/activity playlists, trend scouting, constellation discovery ("surprise me"), playlist refresh/evolution, automated weekly curation via cron, taste DNA cards, compatibility scoring, listening insights, catalog gap analysis, album deep dives, artist rabbit holes, daily song drops, concert prep, and personalized new release radar. Use this skill whenever the user mentions Apple Music, playlists, music recommendations, listening habits, music taste, "what should I listen to", discovering new music, mood playlists, workout playlists, deep cuts, hidden gems, trending music, "surprise me", refreshing a playlist, or anything related to curating their music experience. Also trigger on: "DJ", "mix", "playlist for", "music for", "songs like", "similar to", "what's hot", "new releases for me", "taste DNA", "taste card", "compatibility", "how compatible", "year in review", "listening stats", "what have I missed", "album deep dive", "rabbit hole", "concert prep", "seeing [artist] live", "daily song", "what should I listen to right now", or OpenClaw in the context of music.

skill-install โ€” Terminal

Install via CLI (Recommended)

clawhub install openclaw/skills/skills/and3rn3t/apple-music-dj
Or

Apple Music DJ ๐ŸŽง

An intelligent Apple Music personalization engine for OpenClaw. Reads your listening history, Replay stats, ratings, and library to build a deep taste profile โ€” then generates playlists using five strategies, surfaces insights about your listening, and writes everything directly to your Apple Music library. Also includes shareable Taste DNA Cards, compatibility scoring, catalog gap analysis, album deep dives, artist rabbit holes, daily song drops, concert prep playlists, and personalized new release radar.

Architecture

User Request
     โ”‚
     โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  Taste       โ”‚โ—„โ”€โ”€โ”‚  Apple Music API (read)                      โ”‚
โ”‚  Profiler    โ”‚    โ”‚  ยท recently played    ยท library songs/artistsโ”‚
โ”‚  (cached)    โ”‚    โ”‚  ยท heavy rotation     ยท ratings (loved/hated)โ”‚
โ”‚              โ”‚    โ”‚  ยท recommendations    ยท Replay summaries     โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
       โ”‚
       โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  Strategy    โ”‚โ”€โ”€โ”€โ–ถโ”‚  Apple Music API (catalog)                   โ”‚
โ”‚  Engine      โ”‚    โ”‚  ยท search ยท charts ยท artist albums/top songs โ”‚
โ”‚              โ”‚    โ”‚  ยท genres ยท new releases                     โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
       โ”‚
       โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  Playlist    โ”‚โ”€โ”€โ”€โ–ถโ”‚  Apple Music API (write)                     โ”‚
โ”‚  Builder     โ”‚    โ”‚  ยท POST /me/library/playlists                โ”‚
โ”‚              โ”‚    โ”‚  ยท POST /me/library/playlists/{id}/tracks     โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

Prerequisites

Two environment variables must be set. If the user doesn't have them, walk them through references/auth-setup.md before doing anything else.

VariablePurpose
APPLE_MUSIC_DEV_TOKENJWT signed with MusicKit private key (Apple Developer portal)
APPLE_MUSIC_USER_TOKENPer-user authorization token (obtained via MusicKit JS authorize())

Verify with: scripts/apple_music_api.sh verify

Taste Profiling

Before generating any playlist, build (or load from cache) a taste profile.

Run: python3 scripts/taste_profiler.py [--cache ~/.apple-music-dj/taste_profile.json] [--max-age 0] [--storefront us]

Use --max-age 0 to force a refresh, bypassing any cached profile.

The profiler pulls from all available data sources:

Metadata

Author@and3rn3t
Stars2387
Views0
Updated2026-03-09
View Author Profile
AI Skill Finder

Not sure this is the right skill?

Describe what you want to build โ€” we'll match you to the best skill from 16,000+ options.

Find the right skill
Add to Configuration

Paste this into your clawhub.json to enable this plugin.

{
  "plugins": {
    "official-and3rn3t-apple-music-dj": {
      "enabled": true,
      "auto_update": true
    }
  }
}

Tags

#music#apple-music#playlists#personalization#musickit#discovery
Safety NoteClawKit audits metadata but not runtime behavior. Use with caution.

Related Skills