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:
xxxxxxxxxx
test@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
xxxxxxxxxx
test@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:05
warning: commands will be executed using /bin/sh
job 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)
xxxxxxxxxx
test@geraet:~$ atq
1 Wed Feb 15 10:05:00 2023 a test
Im Beispiel ist die Job-ID 1
Löschen
xxxxxxxxxx
test@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:
xxxxxxxxxx
test@geraet:~$ ps -A
PID TTY TIME CMD
1 ? 00:00:04 systemd
3058 pts/0 00:00:00 bash
3090 pts/0 00:00:00 streamripper
3108 pts/1 00:00:00 bash
3121 ? 00:00:00 update-notifier
3148 ? 00:00:02 apt-check
3157 pts/1 00:00:00 ps
Nummer für streamripper herausfinden (PID_Number) und dann eingeben:
xxxxxxxxxx
test@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:
xxxxxxxxxx
FILE "20230215-lesart.aac" MP3
\00 TRACK 01 AUDIO
TITLE "Historiker Neitzel: "Holzamer ist kein Einzelfall", Sönke Neitzel & Historiker an der Uni Potsdam"
PERFORMER ""
INDEX 01 00:00:00
TRACK 02 AUDIO
TITLE "Ton : Comic im 21. Jahrhundert, Art Spiegelman"
PERFORMER "O"
INDEX 01 00:47:00
TRACK 03 AUDIO
TITLE "Pessimist, Julia Michaels"
PERFORMER ""
INDEX 01 01:17:00
TRACK 04 AUDIO
TITLE "Coover, Spiegelman & Meyer, Clemens Meyer"
PERFORMER ""Street Cop": Tolles Trio"
INDEX 01 04:47:00
TRACK 05 AUDIO
TITLE "Impstr, Zeck"
PERFORMER ""
INDEX 01 13:18:00
TRACK 06 AUDIO
TITLE "Art Spiegelmans Bedeutung für die Comicszene, Andreas Platthaus"
PERFORMER ""
INDEX 01 15:48:00
TRACK 07 AUDIO
TITLE "Czekam Na Znak, Ignacy"
PERFORMER ""
INDEX 01 23:19:00
TRACK 08 AUDIO
TITLE ""Verpuppt" von Ana Marwan, Wiebke Porombka"
PERFORMER "Buchkritik"
INDEX 01 26:48:00
TRACK 09 AUDIO
TITLE "Fremdes Haus, Frau Pauli"
PERFORMER ""
INDEX 01 33:20:00
TRACK 10 AUDIO
TITLE "Buchhandlung "proust. wörter.töne" , Essen, Beate Scherzer"
PERFORMER "Buchhändlergespräch"
INDEX 01 36:50:00
TRACK 11 AUDIO
TITLE "Young devotion, Sameday Records"
PERFORMER ""
INDEX 01 48:21:00
TRACK 12 AUDIO
TITLE "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