Ich kann jetzt beliebige Playlisten mit meiner Musiksammlung in der Nextcloud abgleichen und daraus richtige Playlisten per Subsonic erstellen lassen. Ganz nebenbei war das eine Zeitreise in die Geschichte der Kieler Club-Kultur – aber dazu später mehr. Content Warning: Vibe Coding
Die Vorgeschichte
Ich gehöre zu den Leute, die noch eine ansehnliche CD-Sammlung pflegen. Ich hatte mal einen Spotify-Account. Aber ich habe da so wahllos Sachen gehört – nur weil es ging. Und Sachen nicht gehört, die hatte und mochte, die es aber bei Spotify nicht gab.
Ich habe den Account wieder gelöscht und bin bei meiner über Jahrzehnte kuratierten Sammlung geblieben. Natürlich habe ich mir ein Backup angelegt, das mir jetzt als MP3-Sammlung in der Nextcloud überall zur Verfügung steht.
Die Musik-App der Nextcloud stellt diese Sammlung per Ampache- und Subsonic-API bereit, so dass ich mit entsprechenden Playern von jedem Gerät aus Musik streamen kann. Auf dem Handy ist das Power Ampache 2 – auf den Rechner ist das Supersonic.
Cool ist dann, dass auch die Playlists in der Nextcloud verwaltet werden und auf allen Geräten zur Verfügung stehen – wie bei so einem kommerziellen Streaming-Service. Da macht es plötzlich wieder Spaß, Playlisten zusammen zu stellen.
Aber: Damit kratze ich immer nur an der Oberfläche meiner Sammlung. Man stolpert ja nicht über MP3s wie man über CDs oder Platten in der Sammlung stolpert. Außerdem gehören 12 Jahrgänge Rolling Stone Magazin Heft-CDs zu meiner Sammlung. Irre viele Einzeltracks, die ich gar nicht alle kenne. Entsprechend würden die nie in Playlisten von mir landen.
Kommerzielle Musik-Streamer haben ihre Vorschlags-Funktionen. Leider haben meine Player alle so etwas nicht. Der Linux-Musikplayer Guayadeque hatte das mal. Der hat die LastFM-API dafür angezapft. Aber der Player wird nicht mehr weiterentwickelt und ich weiß gar nicht, ob der Subsonic oder Ampache konnte.
Also habe ich mir überlegt, dass es cool wäre, wenn ich beliebige Playlisten mit meiner Sammlung abgleichen und daraus richtige Playlisten erstellen könnte. Ich bräuchte ein Skript, dass eine Text-Datei mit den Tracks nimmt, über die Subsonic-API abfragt, ob ein Song vorhanden ist und wenn ja, zu einer Playlist hinzufügt. Und wie macht man das heutzutage? Per Vibe-Coding!
Google Gemini FTW!
Ich kann ein wenig für den Hausgebrauch programmieren aber für eine komplett manuelle Entwicklung des Skripts hätte ich ewig gebraucht. Ich kann aber überblicken, ob das Skript, das mir Google Gemini auswirft versucht meine Festplatte zu löschen oder ob es wirklich nur die Subsonic-API bedient.
Meine bisherigen Erfahrungen mit diesem Ansatz waren nicht von Erfolg gekrönt. Aber einen Versuch war es wert. Und tatsächlich funktionierte schon der erste Ansatz grundsätzlich. Ich weiß nicht mehr jeden weiteren Schritt. Aber mir ist dann in der Ausgabe aufgefallen, dass Songs nicht gefunden wurden, die ich definitiv in der Nextcloud habe. Das habe ich Gemini „erklärt“ und dann hat mir das System eine neue Version ausgespuckt. Manchmal gab es Fehler. Dann habe ich die per copy&paste eingefügt und wieder eine neue Version bekommen.
Am Ende ist dabei jetzt ein Skript herausgekommen, das man aufrufen kann:
./import.sh -pl NAMEDERPLAYLIST -txt songliste.txt
Was macht das Skript?
Die Songliste muss streng im Format „Artist – Songtitel“ sein – ein Eintrag pro Zeile.
Das Skript nimmt dann einen Eintrag nach dem anderen und
- sucht nach dem Songtitel
- sucht nach dem Songtitel ohne Sonderzeichen wie Apostrophen
- Sucht nach dem Künstler mit dem ersten längeren Wort aus dem Songtitel und schaut in der Trackliste, ob Treffer dabei sind
Dabei müssen die Texte nicht 100 % übereinstimmen. Das Skript sucht auch nach ungefähren Übereinstimmungen bei Songtitel und Band. Das war ein wenig Auspendel-Arbeit, um möglichst viele Tracks zu finden und gleichzeitig keine False-Positives in der Playlist zu haben.
Wer es selbst ausprobieren möchte, findet das Skript bei Codeberg.
Playlisten aufbereiten
Ich habe mir im Internet Playlisten von DJs gesucht, die zu meinem Musikgeschmack passen (dazu gleich mehr). Die habe ich kopiert und Gemini „aufgefordert“ die Listen aufzuräumen, alle Künstler und Songtitel zu bereinigen und streng nach Artist – Songtitel ohne Aufzählungszeichen auszugeben.
Dabei sind dann Listen herausgekommen, mit denen das Skript etwas anfangen kann.
Eine Kieler Zeitreise
King Kong Club Button
Als Quelle für meine Playlisten habe ich mich bei DJs meines Vertrauens bedient. Ich habe mich mal ehrenamtlich um die Technik beim Kieler Online-Magazin kiel4kiel.de um die Technik gekümmert. Und ich habe mich erinnert, dass dort die DJs von den King-King-Club- und Hörsturz-Partys ihre Playlists des Abends im Forum gepostet haben. Und dieses Forum ist teilweise von der WayBackMachine archiviert worden:
- Hörsturz @vinyl
- KING KONG CLUB – Kiels neue Indie-Party!
Daneben gab es noch das „Listening In“ im Luna Club. Deren Website ist sogar noch online – samt aller Playlisten von 2004 bis 2011!
Diese Playlisten habe ich mir herauskopiert, aufräumen lassen und dann importiert und ich hatte erstaunlich viele von den Sachen in der Nextcloud, so dass ich jetzt in musikalischen Erinnerungen schwelgen kann.
Apropos: Das Stöbern in den alten kiel4kiel.de-Diskussionen war auch grandios! Ich konnte so richtig schön nachverfolgen, wie im Hörsturz-Thread der erste King Kong Club angekündigt wurde. Wie dann er der eigene Thread gestartet wurde. Wie nach und nach mehr Leute in die Diskussion eingestiegen sind.
Man konnte sich 10 Titel wünschen, von denen dann garantiert einer gespielt wurde. Bis immer mehr Leute Wünsche abgeben haben und die DJs erst einschränken mussten, dass nur eingeloggte User Listen einreichen, dann sollte es nur noch maximal 30 Wünsche geben – dann 25.
Und was haben die Leute in den Diskussionen abgenerdet über Musik. Wann wo, welches neue Album kommt. Wo welche Band spielt.
Und der King Kong Club war musikalisch ganz vorne dabei: In einer Zeit als man Musik nur auf CDs bekommen hat und die aus den USA zum Teil arschteuer waren, haben DJ Franky und DJ Bennet die schrägsten Sachen gehabt. Und wie sie es geschafft haben, das erste Arctic-Monkeys-Album zu spielen, Monate bevor überhaupt die erste offizielle Single erschienen ist, bleibt mir ein Rätsel.
Im King Kong Club wurde die neue Oasis-Single (Layla) schon als Promo-Release gespielt. Das konnte noch niemand anderes überhaupt haben!
Die DJs hatten es echt drauf, einen kleinen Hype um ihre Partys zu erzeugen – nicht nur mit den Forums-Diskussionen zwischen den Partys und den Wünschen und dass man sich in der Playlist des Abend wiederfinden konnte. Es gab auch zu jeder Party neue „Buttons“. Und tatsächlich habe ich noch eine King-Kong-Club- und einen Hörsturz-Button in meinem Button-Glas gefunden!
Hörsturz-Button
Bei den Usernamen ist mir das Herz aufgegangen – mit ganz vielen konnte ich noch etwas anfangen und manche treffe ich manchmal noch irgendwo in Kiel.
Spotify-Playlisten exportieren
Eine noch weitere Zeitreise hatte ich davor schon gemacht: Mein 30-jähriges Abitreffen! Eine der Organisatorinnen hatte mich gefragt, ob ich nicht eine Playlist erstellen könnte – Sachen, die wir 1996 auf einer Party gehört haben könnten.
Also musste ich mir doch mal wieder eine Spotify-Account anlegen… Herausgekommen ist dabei diese bunte Liste mit ein bisschen „vun all wat“ – nur kein Eurotrash.
Natürlich gibt es im Internet einen Dienst, mit dem man eine Spotify-Playlist in CSV exportieren kann. Diese Playlist habe ich mir dann wieder von Gemini aufräumen lassen und auch importiert. Wenig überraschend war das die einzige Playlist, von der ich fast alles selbst hatte.
So. Ich habe jetzt Urlaub und höre Musik aus einer besseren Zeit.
Links