Seit Jahren störe ich mich bei der Kombination aus Alexa und Spotify an etwas sehr simplem:
Echo, spiele das aktuelle Album von XYZ
Klappt nicht. Alexa kann das nicht, der Spotify-Skill kann das nicht, obwohl alle Infos vorhanden sind. Nun, mit dem Wechsel auf lokale Musik, ist das noch problematischer: Alexa kann keine lokale Musik.
Also testen wir etwas anderes: Lokale Musik per KI auswerten und steuern.
Testumgebung#
Meine Testumgebung besteht aus:
- Ein kostenloser last.fm-Account, seit Jahren gefüttert mit allem, was ich an Musik höre
- Eine lokale Musikbibliothek, z.B. bei QOBUZ gekaufte FLAC-Dateien
- Ein lokaler Music Player, der per Parameter gestartet werden kann und Dateien, Ordner und M3U-Playlisten akzeptiert. Bei mir, unter macOS, IINA ↗.
- Claude Code (es funktioniert aber vermutlich auch alles andere, auch lokale Modelle, Mistral etc.)
- Ein last.fm-MCP ↗
- Der KI erlauben, Web-Recherchen durchzuführen
- Bluetooth-Lautsprecher (Echo Dot, angeschlossen an “großen” Lautsprechern)
Rumspielen#
Erste Tests interagieren mit last.fm:
Was habe ich heute gehört?

Damit Claude Recherchen in last.fm mit der lokalen Bibliothek abgleichen kann, muss Claude diese einlesen. Dies kann Claude entweder per Dateisystem machen oder in meinem Fall, per beets, welches meine Bibliothek verwaltet. Claude erzeugt sich mittels beets eine TSV-Datei als Cache.
Suche beliebte Metal-Bands der 90er und prüfe, welche Songs ich davon habe

Erlaubt man Claude Zugriff auf Web-Recherchen, so kann Claude etwas weiter gehen:
Suche alle kommenden Veröffentlichungen von Interpreten, die ich in den letzten drei Monaten häufig gehört habe

welche Bands, die ich gerne höre, treten in den kommenden sechs monaten in berlin oder hamburg auf?

Wirklich interessant wird es aber, wenn man Claude sagt, dass er M3U-Playlisten für die lokale Musik erstellen und abspielen soll:
Spiele Death Metal
Claude ermittelt Death Metal-Intepreten, gleicht diese mit der lokalen Bibliothek ab, erstellt eine Playlist und übergibt diese an IINA zum Abspielen.

Anstelle immer alle Songs eines Albums zu spielen soll Claude die gefundenen Songs zusätzlich abgleichen mit bereits existierenden manuell erstellten Playlisten. Ich habe für häufig gespielte Künstler:innen eigene Playlists, die nur die Songs enthalten, die ich mag. Diese soll Claude als Filter verwenden, außer ich fordere Claude auf, das komplette Album zu spielen:
Spiele das vorletzte Album von Taylor Swift

Spiele Musik ähnlich zu Linkin Park
Hierbei holt sich Claude die ähnlichen Künstler von last.fm ab, gleicht die Fundstücke mit der lokalen Bibliothek ab und spielt die Playlist mittels IINA ab.

Auch allgemeine Fragen funktionieren natürlich:
Was sind meine Favoriten?

Was höre ich häufig zum Einschlafen?

Fazit#
Die Kombination aus den verschiedenen Komponenten wertet die lokale Bibliothek deutlich auf. Es ist nun möglich, nicht nur auf der Grundlage von Claudes allgemeinem Wissen und Web-Recherchen die lokale Bibliothek auszuwerten, Claude kann auch Playlists erstellen und diese abspielen lassen. Durch last.fm erhält Claude zusätzliches Wissen über die Vergangenheit und Vorlieben, kann umfangreiche Auswertungen erstellen, Empfehlungen geben. Auch das initiale Problem, “Spiele das aktuelle Album”, funktioniert.
Es sind viele Erweiterungen denkbar: Erstellung von Top-Listen pro Monat oder Jahr, auch in Verbindung von Grafik-Generatoren (somit ein eigener Recap), sowie Automatismen für Empfehlungen von Interpreten, neuen Alben oder kommenden Konzerten.