ubuntuusers.de

Du betrachtest eine alte Revision dieser Wikiseite.

Streamripper

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

Dieser Artikel ist größtenteils für alle Ubuntu-Versionen gültig.

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

Wiki/Icons/terminal.png Streamripper 🇬🇧 ist ein Werkzeug für die Kommandozeile, mit dem man MP3- oder OGG/Vorbis-Streams aufnehmen und direkt auf der Festplatte speichern kann. Die Lieder werden automatisch nach dem Interpreten benannt und einzeln abgespeichert, als Format dient das ursprünglich gesendete (faktisch entstehen also Dateien mit der Endung .mp3 oder .ogg). Viele grafische Programme zum Aufzeichnen von Internetradio benutzen Streamripper im Hintergrund, so dass man mit der Kommandozeile nicht zwangsläufig in Berührung kommen muss.

Für Sender, die proprietäre Formate wie Adobe Flash oder Windows Media zur Ausstrahlung nutzen, ist das Programm nicht geeignet.

Installation

Streamripper kann über das folgende Paket installiert [1] werden:

  • streamripper (universe)

Befehl zum Installieren der Pakete:

sudo apt-get install streamripper 

Oder mit apturl installieren, Link: apt://streamripper

Verwendung

Die generelle Syntax lautet [2]:

streamripper URL OPTIONEN 

Mit URL ist hier die Internet-Adresse eines Streams gemeint. Beispiel:

streamripper http://dradio-ogg.t-bn.de/dkultur_high.ogg 

Da der Stream direkt auf die Festplatte gespeichert wird, ist es normal, dass man nichts hört. Um den laufenden Stream auch hören zu können, muss man Streamripper als Relay-Server (siehe unten) einrichten. Beendet wird die Aufnahme mit der Tastenkombination Strg + C .

Optionen

Optionen
Parameter Zweck
-d <dir> Ort, an dem die Aufnahme gespeichert wird
-l <seconds> Dauer der Aufnahme in Sekunden
-q Nummeriert die einzelnen Dateien mit Präfix 001 bis 999
-a Speichert den Stream zusätzlich am Stück in einer Datei und erstellt ein Cuesheet (.cue) zur späteren Bearbeitung
-A Verhindert das Erstellen der .cue-Dateien, funktioniert nur mit -a
-1 (minus eins) Schreibt keine ID3V1 Tags
-r Öffnet ein Relay auf Port 8000, über den ein Stream während der Aufnahme empfangen werden kann
-p <proxy> Nutzung eines Proxys. Beispiel: -p http://proxyip:port
-o ... Sollen bereits vorhandene Titel ersetzt werden. Zur Auswahl stehen: never, always, larger und version.

Siehe auch: Streamripper-Readme 🇬🇧

Relay-Server

Wer einen Stream gleichzeitig aufnehmen und hören will, sollte die Relay-Funktion von Streamripper nutzen. Ansonsten kann es leicht passieren, dass man den Stream doppelt herunterlädt (einmal für die Aufnahme und einmal zur Wiedergabe). Diese Funktion wird mit der Option -r aktiviert. Zusätzlich kann eine frei wählbare Portnummer oberhalb von 1024 angegeben werden. Lässt man die Portnummer weg, wird automatisch der Port 8000 genutzt.

Nun kann man in vielen Audioplayern eine neue Stream-Quelle mit der URL http://localhost:8000 anlegen bzw. abspielen lassen. Diese Quelle kann aber nur während der Aufnahme und nur auf dem eigenen Rechner empfangen werden.

Zeitgesteuerte Aufnahmen

Record-Station

Eine einfache Möglichkeit, um Internetradio zeitgesteuert aufzunehmen, ist das Plugin "record-station" für den Audio-Player Rhythmbox. Weitere Informationen gibt es unter Record-Station.

Cron

Eine weitere Möglichkeit für Fans der Kommandozeile ist der Aufruf von Streamripper über Cron. Elegant geht das mit folgendem Befehl in der crontab des Benutzers. Hier ein Beispiel:

/usr/bin/streamripper [URL] [-d [Pfad wo die Dateien gespeichert werden sollen]] [-l [Dauer der Aufnahme in Sekunden]]> /dev/null 2>&1

Experten-Info:

Cron-Jobs senden ihren Output nach "mail". Da unter Ubuntu das Paket mailx standardmäßig nicht installiert ist, führt der Aufruf von Streamripper über cron nach ca. 5-6 Minuten zu einem Absturz. Abhilfe schafft das Installieren des fehlenden Pakets oder das Anfügen von "> /dev/null 2>&1" am Ende der Zeile im Skript.

Außerdem fehlen in obigen Beispiel noch die konkreten Zeitangaben, wann cron den Befehl ausführen soll.

At

Weniger elegant, aber einfach lässt sich die Startzeit im Terminal mit dem Befehl "at" festlegen. Nach Eingabe der Startzeit gibt at eine Warnung aus, worauf der eigentliche Befehl, in diesem Fall "streamripper" mit der gewünschten Stream-Adresse (URL) und Aufnahmelänge, eingegeben wird. Mit der Tastenkombination Strg + D wird die Befehlszeile abgeschlossen. Beispiel:

at 20:10
warning: commands will be executed using /bin/sh
at> streamripper http://dradio-ogg.t-bn.de/dkultur_high.ogg -l 3600
at> Strg+D
{{{
{{{
job 1 at Tue Dec  1 20:10:00 2009 

Um 20:10 Uhr wird "streamripper" gestartet und zeichnet 1 Stunde lang den Stream von Deutschlandradio Kultur auf. Auch komplexere Zeitangaben sind mit Hilfe des Linux-User Artikels Cron, At - Punktlandung 🇩🇪 möglich.

Gnome-Schedule

Alternativ bietet sich das Programm GNOME Schedule an, mit dem sich Systembefehle – und damit auch Streamripper – zeitgesteuert starten lassen. Auch wiederkehrende Ereignisse nach Kriterien wie z.B Tag, Woche oder Monat sind möglich. Die Installation erfolgt übr das Paket:

  • gnome-schedule (universe)

Befehl zum Installieren der Pakete:

sudo apt-get install gnome-schedule 

Oder mit apturl installieren, Link: apt://gnome-schedule

Ein Problem ist, dass als Resultat der Aufnahme eine Datei mit dem Namen -.mp3 entsteht. Dies kann man mit einem Skript verhindern, das die Aufnahme nach ihrem Ende mit dem aktuellen Zeitstempel als Dateinamen kennzeichnet:

1
2
3
4
5
6
7
8
#!/bin/bash
# Skript zum Speichern eines Radio mp3-Streams
# Wichtig! Ausfuehrbarmachen nicht vergessen! (chmod u+x skriptname)
DATUM=`date +%Y-%m-%d_%RUhr`
streamripper Streamadresse -D ~/radiorips -l 3300 &&
mv ~/radiorips/incomplete/*mp3 ~/radiorips/$DATUM.mp3 &&
rmdir ~/radiorips/incomplete/ &&
sudo shutdown -h +1

In diesem Beispiel wird die Aufnahme im Verzeichnis ~/radiorips/incomplete aufgezeichnet. Nach Abschluss der Aufnahme wird die Datei umbenannt in Zeitstempel.mp3 und im Verzeichnis ~/radiorips/ abgelegt. Anschließend wird der Ordner ~/radiorips/incomplete gelöscht und der Rechner heruntergefahren. Soll der Rechner nicht heruntergefahren werden, muss die letzte Zeile "sudo shutdown -h +1" auskommentiert (das Zeichen # an den Anfang der Zeile setzen) oder gelöscht sowie die &&-Operatoren in der vorherigen Zeile gelöscht werden.

Stream mit Schnitt-Datei aufzeichnen

Da Streamripper einzelne Musikdateien nicht immer an der richtigen Stelle trennt, kann es sinnvoll sein, hier selbst Hand anzulegen. Dazu zeichnet man den Radiosender als einen Titel auf und lässt Streamripper zusätzlich eine Schnittpunkt-Datei anlegen. Mit dem Programm mp3splt-gtk kann man diese öffnen und muss nur noch Feineinstellungen betreiben, um die Dateien exakt in einzelne Titel zu schneiden.

Dazu ein Beispielskript:

1
2
#!/bin/bash
streamripper http://www.foo.com/radio.php -a /home/BENUTZERNAME/$(date +%x_%X).mp3 -L /home/BENUTZERNAME/$(date +%x_%X) --xs2

Dieses Skript legt beim Ausführen im Ordner /home/BENUTZERNAME/ die eigentliche .mp3- oder .ogg-Datei des Radiosenders an und zusätzlich eine .cue-Datei, die die Schnittpunkte in Textform beinhaltet. Der Dateien werden durch "$(date +%x_%X)" nach dem aktuellen Datum und der Uhrzeit benannt, damit man bei mehreren Aufnahmen keine (vorhandenen) Dateien überschreibt oder vertauschen kann.

Problembehebung

Titel werden nicht sauber getrennt

Bei manchen Sendern kann es passieren, dass Streamripper die einzelnen Titel nicht korrekt trennt und sich so Teile des vorhergehenden oder nachfolgenden Titels am Anfang bzw. Ende der aufgezeichneten Datei wiederfinden. Streamripper verwendet grundsätzlich die Angaben innerhalb des Stream, wann ein Liedwechsel erfolgt. Manchmal werden diese Angaben durch den Sender absichtlich falsch gesetzt, um die Aufnahme zu erschweren. Abhilfe schafft nur Experimentieren mit eigenen Werten, die als Optionen bei Programmstart übergeben werden müssen. Details sind der Manpage zu entnehmen.

Daneben gibt es auch Streams, die bewusst keine Metadaten (Künstler und Titel) senden. Dann hat Streamripper natürlich Probleme, Dateien beim Speichern korrekt zu benennen.

Diese Revision wurde am 11. Mai 2013 12:32 von aasche erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Multimedia, Audio, Radio, Internetradio