Aus Raspberry Pi Geek 12/2021

Webradio auf Python-Basis

© Paolo De Santis / 123RF.com

Volles Programm

Bernhard Bablok

In der letzten Ausgabe stellten wir die ansprechende Hardwaregrundlage für ein Webradio vor. Diesmal geht es um die passende Software dazu.

Die im Folgenden vorgestellte Software ist zwar für unser wohnzimmertaugliches Luxusgerät (Abbildung 1) mit dem touchfähigen Breitbildschirm von Waveshare gedacht (Details siehe letzte Folge), verrichtet aber auch unabhängig von dieser speziellen Hardware ihren Dienst. In Python implementiert läuft sie auf jedem Linux-System, vom Desktop bis zum Pi Zero. Mit ein paar kleineren Hacks dürfte der Betrieb unter Windows ebenfalls möglich sein; die einzige Voraussetzung dafür wäre eine funktionierende Audiokonfiguration für die Soundausgabe.

Abbildung 1: Webradio auf RasPi-Basis für die Wohnzimmeranlage.

Abbildung 1: Webradio auf RasPi-Basis für die Wohnzimmeranlage.

Bevor es aber mit der Installation und Konfiguration losgeht, klären wir noch ein paar technische Hintergründe rund um das Thema Webradio.

TIPP

Die erste Folge dieser Artikelserie finden Sie als PDF im Download-Bereich dieses Artikels.

Das längste MP3 der Welt

Webradio, manchmal auch Internet-Radio genannt, besteht aus dem Übertragen (Streaming) einer scheinbar unendlich langen MP3-Datei über das Internet. Statt sie abzuspeichern und anschließend wiederzugeben, nimmt der Abspieler den Datenstrom direkt entgegen und spielt die Audiodaten ab.

Als Player-Software kommt deshalb alles infrage, was URLs aufruft und die empfangenen Daten direkt abspielt, insbesondere ein Webbrowser. Da sich inzwischen jeder Radiosender im Internet präsentiert, gibt es dort deshalb oft auch prominent auf der Einstiegsseite einen Button für das Live-Abspielen des Programms (Abbildung 2).

Abbildung 2: Beinahe jeder Radiosender bietet heute die Möglichkeit, ihn via Webplayer zu hören.

Abbildung 2: Beinahe jeder Radiosender bietet heute die Möglichkeit, ihn via Webplayer zu hören.

Das einfachste Webradio besteht also aus einem Gerät mit einem Browser (etwa ein ausgedientes Smartphone) und einer Linksammlung zu den Lieblingssendern. Die Linksammlung müssen Sie noch nicht einmal selbst zusammenstellen und pflegen: Im Netz gibt es viele Portale [1], die das übernehmen [2] und auch auch Apps für iOS und Android anbieten. Da viele AV-Receiver Musik auch als Bluetooth-Stream empfangen, besteht eine fast vollständige Lösung im einfachsten Fall darin, dass das Smartphone den empfangenen Stream per Bluetooth an den Receiver weiterreicht.

Wunschlos glücklich?

Damit wäre das Projekt schon vor seinem Beginn beendet. Allerdings birgt die oben skizzierte Lösung einige Nachteile. Zum einen wollen die Portale auch Geld verdienen und beglücken den Anwender deshalb mit Werbung. Zum anderen übertragen viele Sender noch interessante Zusatzdaten zum Song und zum Interpreten, die ein reiner Musikspieler nicht wiedergibt (Abbildung 3). Drittens bieten die Portale meist nur sehr eingeschränkte Möglichkeiten zur Aufnahme von Sendungen.

Abbildung 3: Textinfos ergänzen die Radioübertragung.

Abbildung 3: Textinfos ergänzen die Radioübertragung.

Die Lösung besteht also im Prinzip in einer eigenen Linksammlung, die an Portal- und Senderwebseiten vorbei direkt die Musikquelle anzapft. Alles Weitere an Programmlogik dient nur zum bequemen Steuern und Navigieren sowie der ansprechenden Darstellung.

Mit etwas Recherche im Netz tauchen eine ganze Reihe von Webradios für den RasPi auf. Die umfassendste Sammlung hält der Enthusiast Bob Rathbone bereit [3]. Neben der eigentlichen Software stellt das Projekt unter anderem ein 340-seitiges Dokument bereit, das die Installation und Konfiguration verschiedenster Hard- und Software rund um den RasPi bis ins kleinste Detail darlegt. Auch wer noch nie einen solchen Mini-Rechner besaß, bastelt damit relativ problemlos ein Webradio, vorausgesetzt er trennt Wesentliches von Unwesentlichem – was gar nicht so leicht fällt.

Allerdings setzt Rathbone bei seiner Lösung auf schwierig zu installierende Software mit einer wenig ansprechenden Oberfläche. Deshalb fiel letztlich die Entscheidung, selbst eine Lösung zu gestalten.

Installation

Für einen ersten Test sollten Sie ein neues, sauber installiertes Raspberry Pi OS in der aktuellsten Version verwenden (zum Redaktionsschluss war das noch “Buster”). Ein Pi Zero mit der Lite-Version genügt für das Projekt vollkommen, es sei denn, Sie wünschen zusätzlich einen Bildschirm für den Browser wie im Wohnzimmerradio. Außerdem benötigen Sie die normale Desktop-Version des Betriebssystems und einen RasPi mindestens der zweiten, besser einer späteren Generation, denn eine grafische Oberfläche auf den früheren Versionen fühlt sich etwas zäh an.

Die Installationsbefehle zeigt Listing 1. Den ersten Aufruf benötigen Sie nur für Desktop-Systeme, denn das dort standardmäßig installierte Pulseaudio erlaubt keine Audioausgabe von einem Hintergrunddienst. Heißt der Standard-User auf Ihrem System nicht pi, müssen Sie dem Installationskommando noch den passenden Benutzer mitgeben (Zeile 4). Er sollte ein Mitglied der Audio-Gruppe sein und Sudo-Rechte besitzen. Nach der Installation aktivieren und starten Sie den Service (Zeilen 5 und 6). Danach greifen Sie auf die Websteuerung per Browser zu.

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 6 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
RASPBERRY PI GEEK KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Raspberry Pi Geek bei Google Play Readly Logo
Nach oben