Webradio auf dem Pi

Irgendwann in den 2000-ern habe ich mehrere Webradios erworben, die uns auch gute Dienste geleistet haben. Nach all den Jahren ist bei dem ersten der WLAN-Chip nicht mehr aktuell und ich komme damit nach einem Routeraustausch nicht mehr ins Netz. Bei dem zweiten hat der Server, von dem das Webradio die URLs bezog, den Dienst eingestellt. Das Webradio hat aber leider keinerlei Schnittstelle, um da Anpassungen vornehmen zu können.

Ich habe schon immer versucht, mal ein Webradio auf dem Pi zu realisieren und habe sie auch hier beschrieben, und sahe mich jetzt gezwungen daran Verbesserungen vorzunehmen. Dabei gab es folgende Vorgaben: Im wesentlichen will ich vier oder fünf Sender hören und dazwischen wechseln, deren URL mir bekannt ist. Eine Playliste mit tausenden von Sendern macht zwar die Konfiguration einfacher, aber benötige ich eigentlich nicht. Darüberhinaus will ich einen älteren Pi dafür einsetzen, also möglichst auf eine GUI verzichten und den Pi via einer lokalen Webseite steuern.

  1. So habe ich es zunächst mit vorgefertigten Images probiert. Da waren zunächst MusicBox und Volumio. Beide kann man headless bedienen, wie ich es hier beschrieben habe.
    Musicbox kommt mit einer 2GB-SSD aus. Es hat mir sehr gut gefallen. Es wird jedoch seit vielen Jahren nicht mehr gepflegt und hakt schon an manchen Stellen.
    Volumio benötigt schon eine 4GB-SSD. Es besticht mit seiner Konfiguration. Zunächst startet der Pi als Access-Point und man kann die Konfiguration über eine Webseite vornehmen. Nach einem Reboot läuft er dann als Client  im lokalen Netz. Einer meiner Lieblingssender wird jedoch von Volumio nicht unterstützt und bei Volumio ist es nicht vorgesehen, eigene URLs einzupflegen.
  2. Also musste eine eigene Lösung her. Ich fand ich eine Anleitung, die ich hier näher beschrieben habe, die als Betriebssystem ein Raspian-lite benötigt, also ohne GUI auskommt. Ich habe zunächst das Original umgesetzt und später modifiziert. Die Hintergrundgrafik der Webseite war sicherlich sehr fancy, schluckte jedoch Unmengen an Resourcen. Ein einfacher weißer Hintergrund reicht mir. Diese Lösung arbeitet mit mpd. Die Konfiguration fand ich schon recht kompliziert und hat viel Zeit gekostet.
  3. Jedoch wachsen auch die Bedürfnisse. Irgendwann wollte ich die Musik nicht mehr per Kabel an einen Verstärker schicken, sondern den Pi per Bluetooth mit einem kleinen Speaker verbinden. Aus irgendeinem Grund hatte ich jedoch große Probleme die Verbindung anständig auf der Kommandozeile einzurichten. Dagegen funktionierte die Konfiguration von Bluetooth bei einer Raspian-Version mit Desktop ohne große Probleme. Da ich den Pi headless betreibe, musste ich dazu eine VNC-Verbindung zwischen meinem Laptop und dem Pi herstellen. Somit erübrigte sich der Einsatz eines Webservers, um Sender zu wählen und zwischen Sendern zu wechseln. Ich habe die Startskripte für die einzelnen Sender auf den Desktop gelegt und konnte die Sender von dort aus starten. Diese Startskripte bestanden im wesentlichen aus einer Zeile (mplayer <URL des Streams>), die komplexe Konfiguration von mpd war damit auch hinfällig. Diese Konfiguration benötigt jedoch mehr Resourcen.

Im wesentlichen favorisiere ich und benutze ich jetzt die Lösung 2 mit einem Pi 3A. Bluetooth ist eine schöne Spielerei, bringt mir aber kaum zusätzlichen Nutzen. Dafür startet der Pi mit dieser Lösung schneller, als mit Lösung 3. Falls ich also mal einen Pi 3B oder höher übrig habe, kann es sein, dass ich beide Lösungen auf einem Pi realisiere. Das wäre dann die optimale Lösung.