Was ich bastle — Stand Juli 2026

Meine Musik-Daten-Pipeline

12 Jahre Apple Music Playlists, verdichtet zu einem Geschmacksprofil für Claude

Ausgangspunkt

Seit September 2013 lege ich jeden Monat eine Playlist in Apple Music an, inzwischen sind es 154. Jede davon ist ein Monat meines Lebens in Musik. Die Daten dazu lagen lange verstreut: Play Counts aus meiner Spotify-Zeit, Hörhistorie aus der Tidal-Zeit, und Apple Music selbst kennt nur grobe Genres wie „Rock" oder „Pop". Auswerten ließ sich so nichts.

Erste Ausbaustufe: Anreicherung

Eine Python-Pipeline hat die Quellen zusammengeführt:

Apple Music (Export) → Spotify (Play Counts) → Last.fm (Genre-Tags) → Master-CSV

  • Ein AppleScript exportiert die Playlists (YYMM-Format) als CSV
  • Die Spotify Extended History (GDPR-Export) lieferte echte Play Counts
  • Die Last.fm-API ersetzt die generischen Genres: pick_best_genre() macht aus „indie rock, british" ein „Indie Rock"

Diese historische Anreicherung ist abgeschlossen. Spotify und Tidal sind eingearbeitet, seither ist Apple Music die einzige laufende Quelle. Die Master-CSV führt 23 Spalten pro Eintrag, von Play- und Skip-Counts über BPM bis zu den Last.fm-Tags.

Umbau im Juli 2026

Beim Update auf den Stand 30.06.2026 (Playlists 2601–2606) habe ich das Projekt gemeinsam mit Claude aufgeräumt. Dabei kamen ein paar Altlasten ans Licht:

  • Ein Bug überschrieb den Apple-Music-Play-Count neuer Tracks mit den alten Spotify-Zahlen
  • Ein CSV-Escaping-Fehler ließ pandas 18 statt 17 Spalten erkennen
  • Die CSV hat eine Zeile pro Playlist-Mitgliedschaft — „R U Mine?" stand 14-mal drin und verzerrte jede Statistik, bis auf eindeutige Tracks reduziert wurde

Der Merge nimmt seitdem nur neue Tracks auf, ein redundantes Tag-Fetcher-Skript ist raus.

Vom CSV zum Empfehlungs-Bot

Der Zweck der Daten war immer, einen Bot zu füttern, der mir Musik empfiehlt. Die naive Variante, eine CSV mit über 13.000 Zeilen in den Chat zu kippen, taugt dafür nicht. Stattdessen destilliert ein Skript die Datenbank in ein kompaktes taste_profile.md von 10,6 KB: Top-Genres und -Artists nach Plays gewichtet, aktuelle Neuzugänge als Signal für die Richtung, dazu vergessene Favoriten und Skip-Daten für die Kuratierung.

Dieses Profil liegt als Wissensdatei in meinem Claude-Projekt „Viva MTV", zusammen mit passenden Projekt-Anweisungen. Dort frage ich nach neuen Entdeckungen oder lasse mir Kandidaten für die nächste Monats-Playlist vorschlagen. Nach jedem Monatsupdate wird das Profil neu gebaut und ausgetauscht.

Tech Stack

  • Python 3pandas, requests, rapidfuzz
  • AppleScriptApple Music Playlist Export
  • Last.fm APItrack.getTopTags, artist.getTopTags
  • Claude-Projekttaste_profile.md + Projekt-Anweisungen
  • Spotify GDPR Exporthistorische Play Counts (abgeschlossen)

Zahlen

13.650+
Zeilen Master-CSV
5.062
eindeutige Tracks
154
Playlists
10,6 KB
Geschmacksprofil

Top Genres

GenreTracks
Indie Rock1.926
Alternative Rock833
Punk Rock605
Indie Pop568
Post-Punk561

Top Artists (Spotify Plays)

ArtistPlays
The Cure5.985
Alligatoah4.215
Arctic Monkeys2.993
Lorde2.890
Die Ärzte2.713

Original-Präsentation ansehen