Du bist hier:Start»Linux»Radio

Radio 2.0

Wir schreiben das Jahr 2017 und noch immer wird Radio über analogen UKW-Funk gesendet. Da PolitikerInnen das analoge UKW-Radio immer noch nicht beerdigt haben, bleibt nur das Internet als digitales Radio zu nutzen. Im folgenden Beitrag schreibe ich, wie Webradio und die Playlists der "traditionellen" Radiosender unter Linux benutzt werden können. Zunächst einmal eine Tabelle mit Internetstreams von Radiosendern aus Berlin mit Stand vom 27.12.2021. Update 27.12.2021 - der RBB hat neue URLs für die Livestreams vergeben (mit einem Verteiler dispatcher.rndfnk.com).

Berliner Radiosender im Netz

Radiosender Link / URL Bitrate (kbps) / Werbung
87,9 Star FM https://streams.starfm.de/berlin.mp3 192 / W
88,8 Radio Berlin https://dispatcher.rndfnk.com/rbb/rbb888/live/mp3/mid 128
89,6 Deutschlandradio Kultur https://st02.sslstream.dlf.de/dlf/02/128/mp3/stream.mp3 128
90,2 Radio Teddy https://streamtdy.ir-media-tec.com/live/mp3-128 128
91,0 Alex Radio https://alex-radio.rosebud-media.de:8443/alex-radio 192 / W
91,4 Berliner Rundfunk https://stream.berliner-rundfunk.de/brf/mp3-128 128 / W
92,4 RBB Kulturradio https://dispatcher.rndfnk.com/rbb/rbbkultur/live/mp3/high 192
93,1 Inforadio (RBB) https://dispatcher.rndfnk.com/rbb/inforadio/live/mp3/mid 128
93,6 Jam FM https://stream.jam.fm/jamfm-live/mp3-192 192 / W
93,9 Hitradio SKW http://edge.audio.3qsdn.com/senderkw-mp3 128
94,3 RS2 https://stream.rs2.de/rs2/mp3-192 192 / W
95,8 Radio Eins https://dispatcher.rndfnk.com/rbb/radioeins/live/mp3/mid 128
96,3 Cosmo https://dispatcher.rndfnk.com/wdr/cosmo/live/mp3/128/stream.mp3 128
97,7 Deutschlandfunk https://st01.sslstream.dlf.de/dlf/01/128/mp3/stream.mp3 128
98,2 Radio Paradiso https://streams.paradiso.de/Berlin/mp3-192/radiode/ 192 / W
98,8 Kiss FM https://stream.kissfm.de/kissfm/mp3-192 192 / W
99,7 RBB Antenne Brandenburg https://dispatcher.rndfnk.com/rbb/antennebrandenburg/live/mp3/mid 128
100,6 Flux FM https://streams.fluxfm.de/live/mp3-192/fluxfm.de_webplayer/ 192
101,3 Klassik Radio https://live.streams.klassikradio.de/klassikradio-deutschland/stream/mp3?aggregator=select 128 / W
102,6 Fritz https://dispatcher.rndfnk.com/rbb/fritz/live/mp3/mid 128
103,4 Energy https://scdn.nrjaudio.fm/adwz1/de/33001/mp3_128.mp3 128 / W
104,6 RTL https://stream.104.6rtl.com/rtl-live/mp3-192 192 / W
105,5 Spreeradio https://stream.spreeradio.de/spree-live/mp3-192 192 / W
106,0 Schlager Radio B2 https://radiob2-regional.cast.addradio.de/radiob2/regional/mp3/high/stream.mp3 128 / W
106,8 Jazzradio https://streaming.radio.co/s774887f7b/listen 192
107,5 BB Radio https://streambbr.ir-media-tec.com/live/mp3-192/radioplayer_web/play.mp3 192
Nice Mix https://ice.cr1.streamzilla.xlcdn.com:8000/sz=nice-broadcast-media-gmbh=nice-DJ-CHANNEL-128-mp3 256
You FM (Hessen) https://hlsyoufm.akamaized.net/hls/live/2016538/youfm/master.m3u8 128

Hier sind die Sender als Playlist zum Herunterladen.

Webradio in der Kommandozeile

Eine Seite mit Links zu Internetradios gibt es unter anderem im Wiki von Ubuntuusers oder in der Tabelle oben. Auch wenn es Programme mit grafischer Oberfläche fürs Internetradio gibt wie zum Beispiel Rhythmbox, benutze ich als Kommandozeilen-Freak lieber das Programm mplayer zum Aufnehmen und Abspielen von Webradio. In den folgenden Kommandozeilen bedeutet das Zeichen "#" eine Kommentarzeile. Zuerst muss der mplayer installiert werden. Bei Linux-Systemen mit dem Advanced Packaging Tool (apt) funktioniert die Installation folgendermaßen:

# install mplayer
sudo apt-get install mplayer

Webradio anhören

Nach der Installation von mplayer kann es mit dem Anhören losgehen. Hier ein Beispiel mit der Internetadresse von Radio Fritz in Berlin:

# set the URL of the internet radio
streamURL="https://dispatcher.rndfnk.com/rbb/fritz/live/mp3/mid"

# play the stream with a buffer (cache) and non verbose
mplayer -quiet -cache 100 "$streamURL"

Zum Beenden von mplayer einfach q für Quit oder Control + C drücken.

Webradio speichern

Zum Speichern des Internetradios auf Festplatte kennt mplayer den Parameter dumpstream. Mit der folgenden Kommandozeile speichert mplayer den Internetstream in einer Datei mit Datum und Uhrzeit:

mplayer -dumpstream "$streamURL" -dumpfile $(date +"internetStream_%F_%H-%M-%S.mp3")

Aufnahme abspielen

Zum Abspielen der Aufnahme kann ebenfalls mplayer benutzt werden:

# for faster access you can use an alias:
alias m='mplayer'
m internetStream_*

# or use a graphical program like:
rhythmbox internetStream_*

Musik aus einer Aufnahme herausschneiden

Um ein Musikstück aus einer Radioaufnahme herauszuschneiden, gibt es unter Linux natürlich auch freie Software. Das Programm dafür nennt sich mp3splt (split MP3). Eine ausführliche Anleitung gibt es auf Sourceforge.

# example to cut 50 seconds from a webradio stream starting at 10 seconds

mp3splt internetStream_*.mp3 0.10 1.00

# this means cut from 10 seconds to the 1 minute position

Werbung stummschalten

Einige Radiosender schalten vor dem Internetstream noch Werbung - meistens aber nicht länger als 30 Sekunden. Auch dafür gibt es in Linux eine Lösung - am Beispiel von Radio Energy:

# example of radio station "energy"
streamURL="https://scdn.nrjaudio.fm/adwz1/de/33001/mp3_128.mp3"

# create a first in first out queue (fifo) for mplayer
mkfifo /tmp/mplayer.fifo

# sleep 30 seconds in the background, then set the volume of mplayer to 100%
(sleep 30; echo "set_property volume 100" > /tmp/mplayer.fifo) &

# start mplayer mute and in slave mode
mplayer -volume 0 -slave -input file=/tmp/mplayer.fifo -quiet -cache 100 "$streamURL"

Alternativ könnte ein Internetstream mit vorgesetzter Werbung immer im Hintergrund mitlaufen und nur bei Benutzung die Stummschaltung aufgehoben werden. Allerdings wäre das Energieverschwendung (kleines Wortspiel).

Um die Berliner Radiosender nacheinander abzuspielen, ist die playlist-Option von mplayer hilfreich:

wget https://www.torsten-traenkner.de/linux/radio/radiostations_berlin.m3u
mplayer -quiet -cache 100 -playlist radiostations_berlin.m3u

Anschließend kann mit der Taste > zur nächsten Radiostation gesprungen werden.

Playlists der Radiosender herunterladen

Um die Playlist von einem Radiosender herunterzuladen sind keine Programmierkenntnisse erforderlich. Allerdings werden Kenntnisse über reguläre Ausdrücke (regular expressions) benötigt. Zunächst lädt das Programm wget die Playlist vom Webserver in eine temporäre Datei. Das Verzeichnis /dev/shm/ befindet sich im Arbeitsspeicher von Linux-Systemen und belastet somit die Festplatte nicht. Anschließend wird die Datei mit dem stream editor sed bearbeitet und mit grep gefiltert. Beginnen wir mit einem einfachen Beispiel von Jazzradio Berlin. Der folgende Block kann in einem Terminal mit Bash-Shell ausgeführt werden.

Playlist von Jazzradio Berlin herunterladen

Das folgende Shell-Skript lädt die Playlist mit den aktuell gespielten Titeln von Jazzradio.net herunter:

cat > downloadJazzradioPlaylist.sh <<EOF
#!/bin/bash

# download the playlist
wget -T 15 -q https://jazzradio.net/playlist -O /dev/shm/jazzradio.html

# check if download was success
if [ \$? -ne 0 ];then
  echo "Playlist download failed."
  exit 1
fi

# check if the string 'previous' exists
grep -q -i "zuvor << previous" /dev/shm/jazzradio.html
if [ \$? -ne 0 ];then
  echo "Playlist does not contain the string 'previous'."
  exit 2
fi

# filter the web result
grep -m 1 -A 3 "zuvor << previous" /dev/shm/jazzradio.html | tail -n 3 | tr -d '\n'; echo
EOF

chmod 755 downloadJazzradioPlaylist.sh

# start download
./downloadJazzradioPlaylist.sh

Mit wget wird zunächst die Webseite https://jazzradio.net/playlist heruntergeladen. Die Option -q bedeutet quiet - also ohne Ausschriften von wget. Die Option -T ist der Timeout zum Warten auf eine Antwort des Webservers. In diesem Fall wird 15 Sekunden auf die Antwort gewartet. Die heruntergeladene Webseite wird in der Datei /dev/shm/jazzradio.html gespeichert. Mit der folgenden if-Abfrage -ne 0 wird der Rückgabewert von wget überprüft. Ist der Rückgabewert nicht 0 (ne bedeutet not equal), dann kommt die Ausschrift, dass die Playlist nicht heruntergeladen werden konnte. Nach erfolgreichem Herunterladen wird mit grep auf die Zeichenkette "playing last" in der Datei gefiltert, wobei die Groß- und Kleinschreibung ignoriert wird. Ist die Zeichenkette vorhanden, dann ersetzt sed die Tags mit den spitzen Klammern (<>) durch "newlines" - also Zeilenumbrüche. Anschließend werden leere Zeilen und die Zeichenkette "playing last" weggefiltert. Wenn alles erfolgreich lief, sollten nur die Uhrzeiten und die Lieder der Playlist übrig bleiben.

Für weitere Fragen gilt wie üblich unter Linux RTFM - read the fine manual - also die schöne Anleitung lesen. Über die Kommandozeile lassen sich die Anleitungen mit folgenden Befehlen anzeigen:
man wget
man grep
man sed
Die Anleitung von sed enthält allerdings keine Anleitung zu regulären Ausdrücken. Einige Beispiele zu regulären Ausdrücken in sed mit Erklärung gibt es hier: http://sed.sourceforge.net/sed1line_de.html. Meistens benutze ich nur die Option s von sed. Sie steht für substitute - also das Ersetzen von Zeichenketten durch andere Zeichen.

Falls noch etwas unklar sein sollte, dann kannst du die Kommentar-Funktion benutzen.

Kommentar schreiben

Ihre Daten werden verschlüsselt übertragen. Der Kommentar wird gelesen und eventuell veröffentlicht.
Wenn der Inhalt des Kommentars oder Teile des Kommentars nicht veröffentlicht werden, dann werden die gespeicherten Daten nach maximal 4 Wochen gelöscht. Um zukünftigen Missbrauch der Kommentarfunktion zu verhindern, werden die zum Kommentar gehörenden IP Adressen maximal 4 Wochen gespeichert.