Blog Digitalgesellschaft Verwaltungsbetrieb Textarchiv Textarchiv Walter Kirk (✝) Impressum

 

Internetradio zeitgesteuert aufnehmen mit StreamRipper

 

 

Vorbemerkung

Manchmal möchte man einen Audio-Stream aufnehmen und in einer Datei speichern. Also nicht in mehreren Audio-Dateien geteilt. Auch hierfür bietet sich das Programm StreamRipper an (Linux, MacOS, Windows). Darüber hinaus ist es zweckmäßig, dass die Start- und Endzeit eingestellt werden kann.

In Windows ist das Programm streamWriter für diese Aufgabe bestens geeignet. Aktuell gibt es keine Versionen für Linux und MacOS.

Für StreamRipper sind verschiedene GUI vorhanden (Linux), die jedoch teilweise nicht mehr weiter entwickelt werden oder die Funktion zur Erstellung einer Datei nicht vorsehen.

Deshalb ist hier der Weg über die Kommandozeile hilfreich. Für zeitgesteuerte Aufnahmen können unter debian-basierten Linux-Distributionen das Programm StreamRipper und die Anweisung at (execute commands at a later time) in Kombination genutzt werden.

Einschränkung

StreamRipper ist ein gutes und mächtiges Werkzeug. Allerdings ist das Programm in die Jahre gekommen (2009) und das Sende- und Nutzungsverhalten haben sich verändert. Einerseits senden mache Stationen keine Metadaten bzw. zusätzlich auch Werbedaten, andererseits ist das Aufnehmen so nicht mehr gewollt, weil Plattformen wie Spotify die örtlich wie zeitlich unabhängige Nutzung von Audio sicherstellen.

Weiterhin werden viele Sendungen auch als Podcast zur Verfügung gestellt. Dieses Angebot verfolgen in Deutschland hauptsächlich die öffentlich-rechtlichen Rundfunk- und Fernsehanstalten.

Soweit jedoch Sendungen nicht wiederholt, nicht als Podcast zur Verfügung gestellt werden oder die Ausstrahlung zeitlich ungünstig liegt, ist StreamRipper eine gute Wahl.

Wenn in einigen Fällen die Aufnahmen und die Erstellung der Tracks mit Metadaten (.cue) nicht gelingen, so liegt das nicht immer an den eigenen Einstellungen. Manche Livestream URL muss erst entschlüsselt werden, das heißt aus einer .m3u ermittelt werden. Wenn Sender keine Metadaten oder zusätzlich Werbedaten senden, so kann entweder die .cue nicht erstellt werden bzw. die Werbedaten werden mit in die .cue aufgenommen. Die richtige Darstellung von deutschen Umlauten und Sonderzeichen in den Metadaten hängt auch von der genutzten Linux-Distribution ab.

Die folgenden Beispiele verfolgen das Ziel, trotz der heutigen Einschränkungen abspielbare Audiodateien zu erhalten. Eine Gewähr für das Gelingen bieten sie jedoch nicht.

Installation

Die Programme at und StreamRipper können aus den Repositories heraus installiert werden:

Anpassung

Wenn die .cue nicht benötigt wird, sind diese Hinweise nicht notwendigerweise zu befolgen.

INI-Datei

Damit die Metadaten (Künstler, Titel) in der .cue korrekt dargestellt werden, ist die Datei streamripper.ini anzupassen. Dazu wird in einem Terminal folgendes Kommando ausgeführt:

nano /home/nutzername/.config/streamripper/streamripper.ini

Nutzername ist durch den eigenen Namen zu ersetzen

Die Angaben sind wie folgt zu ändern:

setze ungültig

# codeset_id3=UTF-16

setze gültig

codeset_id3=ISO-8859-1

Durch Angabe der ISO-Norm werden die Zeichen korrekt dargestellt. Aber leider nicht in allen Fällen.

Weitere Einstellungen

Unter Ubuntu ist der PC unter LOCALE zwar auf de_DE.UTF-8 eingestellt, jedoch waren weitere Einstellungen notwendig, um die Metadaten im Cuesheet richtig angezeigt zu bekommen.

Eine genaue Beschreibung der möglichen Vorgehensweise ist hier dargestellt:

https://askubuntu.com/questions/89976/how-do-i-change-the-default-locale-in-ubuntu-server

Diese Hinweise haben das Problem auch an einem Desktop-PC behoben, weil damit die Metadaten in der erstellten .cue bezogen auf die Künstler und Titel vollständig und korrekt enthalten sind.

Einstellungen

StreamRipper (streamripper)

Syntax

streamripper url -d /Speicherort -a output -A -l Sekunden -r --xs_offset=5000

Erläuterung

url = Internetradio Livestream URL

-d = Verzeichnis, in dem die Audiodatei gespeichert und eine .cue angelegt wird.

-a = output, ersetzt durch Dateiname, z.B. 20230215-lesart.aac

-A = keine einzelnen Dateien anlegen

-l = Dauer der Aufnahme in Sekunden

-r = localhost:8000 zum Mithören der Aufnahme, z.B. in Firefox

Execute commands at a later time (at)

Syntax

echo streamripper url -d Speicherort -a output -A -l Sekunden -r | at Zeit Tag

Mit ENTER wird die Aufnahme veranlasst. StreamRipper wird mit den o.a. Einstellungen um die angegebene Zeit ausgeführt.

Die Zeitangabe veranlasst die Aufnahme am gleichen Tag. Wird hinter der Zeit auch das Datum im Format JJ-MM-TT angegeben, so lassen sich die Aufnahmen auch tageweise im Voraus planen.

Nach dem Start des PC werden die zukünftigen Jobs erledigt.

Aufnahme

Beispiel

Die Warnung hat in diesem Beispiel keine Bedeutung.

Mit dem o.a. Kommando wird die Sendung Lesart von DLF Kultur (.aac) am 15.02.2023 um 14:05 Uhr im Umfang von 55 Minuten aufgezeichnet.

Anzeige der Aufgaben (Job-ID)

Im Beispiel ist die Job-ID 1

Löschen

StreamRipper beenden

In diesem Beispiel kann StreamRipper mit CTRL-C nicht so einfach gestoppt werden. Um dennoch den laufenden Prozess zu beenden, ist in einem Terminal einzugeben:

Nummer für streamripper herausfinden (PID_Number) und dann eingeben:

Die Nummer 3090 ist den eigenen Verhältnissen anzupassen.

Ausgabe

Im Beispiel wurden zwei Dateien erstellt:

20230215-lesart.aac 20230215-lesart.cue

Die .cue-Datei hat folgenden Inhalt:

Pro und Kontra

Bei der Anwendung von StreamRipper gilt:

Pro

- die Anwendung ist einfach und übersichtlich möglich

- Tracks werden regelmäßig in einer .cue gespeichert

Kontra

- manche Sender senden keine Metadaten

- die richtige Ausgabe deutscher Umlaute und Sonderzeichen in der .cue muss eingestellt werden.

Weitere Möglichkeiten

Die Programme Gnome-Audio-Recorder oder Audio-Recorder können unter Linux hierfür grundsätzlich eingesetzt werden, sind jedoch nicht immer verfügbar, weil die Installation in den unterschiedlichen Distributionen unter Umständen nicht möglich ist.

Die Aufzeichnung mit dem Programm VLC ist ebenfalls möglich. Der Blogbeitrag Internetradion zeitgesteuert aufnehmen mit Sound eXchange schildert die Vorgehensweise mit dem Programm SoX und ergänzend mit VLC.

Für zeitgesteuerte Aufnahmen kann auch der Befehl chron genutzt werden.

Zusammenfassung

Für welchen Zweck auch immer eine einzige Audio-Datei benötigt wird, mit wenigen Einstellungen lassen sich solche Dateien mit StreamRipper unter Linux zeitgerecht planen und erstellen. Das hilft vor allem dann, wenn andere Programme nicht zur Verfügung stehen. Außerdem wird eine Inhaltsangabe (.cue) erstellt, die für eine nachträgliche Auswertung und Bearbeitung hilfreich sein kann.

Quelle

Man Page

at: https://manpages.ubuntu.com/manpages/trusty/man1/at.1posix.html

streamripper: https://manpages.ubuntu.com/manpages/jammy/man1/streamripper.1.html

Zeichendarstellung ISO-8859-1 (.cue)

https://sourceforge.net/p/streamripper/discussion/19083/thread/870b364b/

https://forum.ubuntuusers.de/topic/streamripper-sonderzeichen/#post-1105627

Prozesse beenden

https://askubuntu.com/questions/520107/how-to-kill-a-script-running-in-terminal-without-closing-terminal-ctrl-c-doe

Kommendo

https://forum.ubuntuusers.de/topic/streamripper-dateinamen/#post-2267194

 

 

Top

 

 

© Wolfgang Kirk

 

Stand: 2023-02-15, aktualisiert: 2023-02-27, 08:00 Uhr