Das eigene Radio
In den letzten Wochen häufen sich auf Hacker News und ähnlichen Plattformen die Posts, in denen Leute erzählen, wie sie sich zurück besinnen auf die Zeit, ohne Spotify. Damals als wir alle noch CDs kauften, selber rippten und sicherlich keine 100GB großen MP3-Sammlungen auf LAN-Parties von Freunden überspielten.
Da alles, was mir mehr Arbeit macht, irgendwie mit mit resoniert, fand ich das natürlich interessant. Auf meiner NAS befindet sich ja sogar noch meine Musiksammlung aus alten Tagen, die ich sogar mal durch iTunes Match (wer erinnert sich noch?) legitimiert und qualitativ hochgestuft habe.
Nun wäre es aber ja langweilig, einfach die MP3s zu nehmen, sie in Jellyfin zu packen und mir einen Player zu suchen, der das als Quelle benutzen kann.
Inspiriert von einem anderen Artikel im Internet, der mit einem Raspberry PI und FM-Transmitter eine eigene Radiostation mit seiner Musik baute, dachte ich mir, sowas will ich auch. Natürlich ohne Raspberry PI und FM-Transmitter, aber einfach ein Stream, der die ganze Zeit läuft, wo ich mich kurz von überall reinschalten kann, das wäre super. Kein Überlegen, was ich eigentlich hören will oder Playlists erstellen.
In der ersten Version baute ich, mit Hilfe von Claude Code, erstmal eine Python-App, die ein Verzeichnis mit Musik indiziert, zufällig Lieder auswählt und sie an eine Icecast-Instanz schickt, zu der ich mich dann verbinden kann. Das funktionierte schonmal ziemlich gut. Im ersten Schritt fand ich erstmal nur meine die ärzte-Ordner, ich habe jetzt also drei Tage lang erstmal nur alte Live-Alben gehört und freue mich jetzt schon über diese Entscheidung.

Ich bin gespannt, was ich in den nächsten Monaten alles noch an Musik wiederentdecken werde, die ich bei Spotify nicht mehr hatte. Bei den ärzten z.B. habe ich ja sehr viele von den 2012er Konzerten, wo man die USB-Sticks am Ende kaufen konnte und das ist natürlich alles ganz exzellenter Content.

Um alles noch etwas Radio-mäßiger zu machen, baute ich noch eine Art Timetable ein, in dem man verschiedene Blöcke definieren kann, die zu bestimmten Zeiten gespielt werden, jetzt bekomme ich jede Stunde die aktuelle Zeit angesagt und ein paar mal am Tag einen Wetterbericht, was natürlich Quatsch ist, aber die Sache auch etwas auflockert. Für die Text-to-Speech-Synthese nutze ich Piper mit der Thorsten-Voice. Ich finde dafür, dass das alles ziemlich performant lokal läuft, sind die Ergebnisse echt nicht schlecht.

Für das absolute Radiofeeling brauche ich nun natürlich noch ein paar sinnlose Ansagen, die alle 2-5 Lieder kommen. Dafür habe ich einen Prompt geschrieben, an den ich noch die letzten und nächsten Lieder dran hänge. Die OpenAI-API liefert dann oft eine halbwegs witzige radiomäßige Ansage, die mir wieder per Thorsten-Voice eingespielt wird. Nach stundenlangen Ärzte-Sessions merkt man auch, wie das LLM langsam verzweifelt.

Natürlich werden alle Sachen, die einen API-Request an OpenAI schicken nur ausgeführt, wenn ich auch wirklich zum Icecast-Server verbunden bin, sonst wäre das ja Quatsch. Klappt aber echt gut!
Gestern habe ich nun versucht, mehr Musik hinzuzufügen und musste feststellen, dass ich vor ein paar Jahren wohl einen Fehler begangen habe. Ich kopierte meinen Musik-Ordner von der NAS auf die Plex-SSD, damit ich den Kram in Plex parat habe. Leider scheint der Kopiervorgang da nicht komplett durchgelaufen zu sein, was ich aber nicht merkte. Ich entfernte also alles von der NAS, da die Daten ja im nächsten Backup von der Plex-SSD automatisch zurückkommen würden und ich nichts doppelt haben wollte.
Damit habe ich natürlich 90% meiner Musiksammlung vernichtet, quasi alles, bis auf den die ärzte-Ordner. Zum Glück benutze ich das Synology HyperBackup und konnte bis in den Januar 2023 zurückspringen und einfach den gesamten Order wieder herstellen, nice! Das erste mal, dass ich ein Backup wirklich brauchte und es auch funktionierte.
Ich habe nun also langsam angefangen, ein paar weitere Interpreten in mein Radio aufzunehmen. Im nächsten Schritt werde ich also mal mit Claude besprechen, wie wir einen vernünftigen Algorithmus finden, der für genug Abwechslung sorgt und nicht nur stundenlang weiterhin die ärzte spielt, nur weil es ein Großteil der Dateien ist. Außerdem fänd ich es auch gut, wenn es zumindest genremäßig Cluster gibt, damit er nicht ganz wild von Reinhard Mey zu Scooter, zu PUR, zu X JAPAN und Casper springt. Schauen wir mal, wie gut das klappt.
(Da ich vor weit über zehn Jahren aufhörte, meine Sammlung zu pflegen, fehlt da auch einfach quasi alles an Musik, was ich aktuell höre, das wird auch noch ein teures Erlebnis, das auf einen aktuellen Stand zu hieven. Vielleicht muss ich mal auf ein paar Flohmärkten CDs kaufen)