Blog Digitalgesellschaft Verwaltungsbetrieb Textarchiv Textarchiv Walter Kirk (✝) Impressum
Internetradio zeitgesteuert aufnehmen mit StreamRipper
VorbemerkungEinschränkungInstallationAnpassungINI-DateiWeitere EinstellungenEinstellungenStreamRipper (streamripper)Execute commands at a later time (at)AufnahmeAusgabePro und KontraProKontraWeitere MöglichkeitenZusammenfassungQuelle
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.
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.
Die Programme at und StreamRipper können aus den Repositories heraus installiert werden:
xxxxxxxxxxtest@geraet:~$ sudo apt install streamripper at
Wenn die .cue nicht benötigt wird, sind diese Hinweise nicht notwendigerweise zu befolgen.
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.
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.
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
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.
Beispiel
xxxxxxxxxxtest@geraet:~$ echo streamripper https://st02.sslstream.dlf.de/dlf/02/high/aac/stream.aac?aggregator=web -d /media/test/0CB86B821BEB9963/geraet/ -a "\`date +%Y%m%d\`-lesart.aac" -A -l 3300 -q -r | at 14:05warning: commands will be executed using /bin/shjob 1 at Wed Feb 15 14:05:00 2023
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)
xxxxxxxxxxtest@geraet:~$ atq1 Wed Feb 15 10:05:00 2023 a test
Im Beispiel ist die Job-ID 1
Löschen
xxxxxxxxxxtest@geraet:~$ atrm 1
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:
xxxxxxxxxxtest@geraet:~$ ps -APID TTY TIME CMD1 ? 00:00:04 systemd3058 pts/0 00:00:00 bash3090 pts/0 00:00:00 streamripper3108 pts/1 00:00:00 bash3121 ? 00:00:00 update-notifier3148 ? 00:00:02 apt-check3157 pts/1 00:00:00 ps
Nummer für streamripper herausfinden (PID_Number) und dann eingeben:
xxxxxxxxxxtest@geraet:~$ kill -9 3090
Die Nummer 3090 ist den eigenen Verhältnissen anzupassen.
Im Beispiel wurden zwei Dateien erstellt:
20230215-lesart.aac 20230215-lesart.cue
Die .cue-Datei hat folgenden Inhalt:
xxxxxxxxxxFILE "20230215-lesart.aac" MP3\00 TRACK 01 AUDIOTITLE "Historiker Neitzel: "Holzamer ist kein Einzelfall", Sönke Neitzel & Historiker an der Uni Potsdam"PERFORMER ""INDEX 01 00:00:00TRACK 02 AUDIOTITLE "Ton : Comic im 21. Jahrhundert, Art Spiegelman"PERFORMER "O"INDEX 01 00:47:00TRACK 03 AUDIOTITLE "Pessimist, Julia Michaels"PERFORMER ""INDEX 01 01:17:00TRACK 04 AUDIOTITLE "Coover, Spiegelman & Meyer, Clemens Meyer"PERFORMER ""Street Cop": Tolles Trio"INDEX 01 04:47:00TRACK 05 AUDIOTITLE "Impstr, Zeck"PERFORMER ""INDEX 01 13:18:00TRACK 06 AUDIOTITLE "Art Spiegelmans Bedeutung für die Comicszene, Andreas Platthaus"PERFORMER ""INDEX 01 15:48:00TRACK 07 AUDIOTITLE "Czekam Na Znak, Ignacy"PERFORMER ""INDEX 01 23:19:00TRACK 08 AUDIOTITLE ""Verpuppt" von Ana Marwan, Wiebke Porombka"PERFORMER "Buchkritik"INDEX 01 26:48:00TRACK 09 AUDIOTITLE "Fremdes Haus, Frau Pauli"PERFORMER ""INDEX 01 33:20:00TRACK 10 AUDIOTITLE "Buchhandlung "proust. wörter.töne" , Essen, Beate Scherzer"PERFORMER "Buchhändlergespräch"INDEX 01 36:50:00TRACK 11 AUDIOTITLE "Young devotion, Sameday Records"PERFORMER ""INDEX 01 48:21:00TRACK 12 AUDIOTITLE "A House and a River, James Vincent McMorrow"PERFORMER ""INDEX 01 51:51:00
Bei der Anwendung von StreamRipper gilt:
- die Anwendung ist einfach und übersichtlich möglich
- Tracks werden regelmäßig in einer .cue gespeichert
- manche Sender senden keine Metadaten
- die richtige Ausgabe deutscher Umlaute und Sonderzeichen in der .cue muss eingestellt werden.
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.
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.
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
Kommendo
https://forum.ubuntuusers.de/topic/streamripper-dateinamen/#post-2267194
© Wolfgang Kirk

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