Blog Digitalgesellschaft Verwaltungsbetrieb Textarchiv Textarchiv Walter Kirk (✝) Impressum

 

Internetradio zeitgesteuert aufnehmen mit yt-dlp

 

 

Vorbemerkung

Manchmal möchte man einen Audio-Stream aufnehmen und in einer Datei speichern. Also nicht in mehreren Audio-Dateien geteilt. Oder eine solche Aufnahme gelingt nicht mit anderen Programmen wie StreamRipper, weil die Livestream URL keine brauchbaren Ergebnisse ergibt.

Hierfür bietet sich auch das Programm Youtube Download Program, Kurz: YT-DLP, an (Linux, MacOS, Windows). Darüber hinaus ist es zweckmäßig, dass die Start- und Endzeit eingestellt werden kann.

Für YT-DLP gibt es mehrere aktuell gehaltene GUI. Für zeitgesteuerte Aufnahmen wird hier nur der Weg über die Kommandozeile aufgezeigt.

Um Aufnahmen zeitlich zu steuern, können unter debian-basierten Linux-Distributionen das Programm yt-dlp und die Anweisung at (execute commands at a later time) in Kombination genutzt werden. Darüber hinaus ist für eine weitere Automatisierung die Einrichtung eines sog. Cronjob sinnvoll.

Installation

Beide Programme können aus den Repositories heraus installiert werden:

Hierdurch werden die Programme at und yt-dlp installiert.

Weiter Informationen hier.

Einstellungen

Aufgrund der Vielfalt der Anwendungsmöglichkeiten ist es grundsätzlich ratsam, eine GUI für yt-dlp zu nutzen. Da im Beispiel eine termingerechte Aufnahme von Internetradio erfolgen soll, ist hier nur der Weg über die Kommandozeile möglich.

Command-Line

Will man einen Livestream aufnehmen, ist yt-dlp beispielhaft so auszuführen:

Erklärung

--audio-format: Laut Angabe des Senders

URL = Angabe des Senders für den Livestream

--no-part = Speicherung in einer Datei

--audio-quality 0 = bestmögliche Audioqualität

-q = Keine Ausgabe der Abarbeitung am Bildschirm (quiet)

-P = Speicherort

-o = Dateiname

Die Ausgabe kann so aussehen:

Execute commands at a later time (at)

Syntax

Erläuterung

timeout = Dauer in Sekunden

at Zeit Tag = Datum/Zeit der Ausführung im Format 00:03 23-12-03

Mit ENTER wird die Aufnahme veranlasst. yt-dlp 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 eine Sendung um 00:03 Uhr im Umfang von 117 Minuten aufgezeichnet.

Anzeige der Aufgaben (Job-ID)

Im Beispiel ist die Job-ID 1

Löschen

Cron Job

Regelmäßig wiederkehrende Aufnahmen können automatisiert als Cronjob veranlasst werden. Zweckmäßigerweise wird die auszuführende Anweisung in einem Skript festgehalten.

Im vorliegenden Beispiel wird ein Livestream mit Hilfe von yt-dlp auf die eigene Festplatte gespeichert, und zwar Dauer 1 Std. 57 Min., jeden Sonntag, ab 00:03 Uhr.

Bash-Skript

Die Umsetzung des Komanndos für yt-dlp, ausgeführt zeit-gesteuert mit at, lässt sich mit dem folgenden Skript verwirklichen:

Quelle: Anonymus/Community (nicht bekannt)

Das Skript wird hier gespeichert als sender-aufnahme.sh.

Crontab

Die Ausführung wird veranlasst durch Eintragung in die Crontab

Danach ist die Ausführung im System anzumelden:

Inhalt der Contrab

Damit der Cronjob so ausgeführt wird wie er geplant ist, sind auch der PATH und die Angaben zur SHELL einzutragen. Die Crontab sollte deshalb so aussehen:

Diese Angaben gelten für Linux in der Distribution Ubuntu 23.10. Für das eigene System lassen sich die Angaben ermitteln und entsprechend anpassen:

Ausgabe

Im Beispiel wurde in beiden Fällen als Ausführung von yt-dlp über die Kommandozeile und als Cronjob jeweils eine Datei erstellt: 20231203-000301-sender-titel.mp3.

Hinweis

Über LAN erfolgt die Ausführung fehlerfrei. Bei WLAN-Verbindungen können Fehler bei einzelnen Sendern auftreten (Error time out).

Pro und Kontra

Die Nutzung von yt-dlp bedeutet:

Pro:

- stabile Aufnahme von Audiodateien über LAN

- die Aufnahme wird automatisch beendet

- das Programm ist für alle gängigen Betriebssysteme verfügbar

- vielfältige Hilfe durch die community.

Kontra:

- die Einstellungen sind vielfältig

- Verbindungsfehler über WLAN möglich.

Alternativen

Mit SoX, StreamRipper und Wget kann Internetradio ebenfalls in eine Datei aufgenommen werden. Hinweise hierzu enthalten die folgenden Blogbeiträge

Internetradio zeitgesteuert aufnehmen mit Sound eXchange

Internetradio zeitgesteuert aufnehmen mit StreamRipper

Internetradio zeitgesteuert aufnehmen mit Wget.

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.

Mit Streamtuner2 und Audacious kann die Auswahl und das Abspielen der Sender vereinfacht werden (Linux).

Zusammenfassung

Für welchen Zweck auch immer eine einzige Audio-Datei benötigt wird, mit wenigen Einstellungen lassen sich auch solche Dateien mit yt-dlp unter Linux zeitgerecht planen und erstellen. Das hilft vor allem dann, wenn andere Programme nicht zur Verfügung stehen.

Quelle

Man Page

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

yt-dlp: https://manpages.ubuntu.com/manpages/jammy/man1/yt-dlp.1.html

Prozesse beenden

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

 

Top

 

Wolfgang Kirk

 

Veröffentlicht: 2023-12-04 aktualisiert: 2024-02-05, 11:40 Uhr