ubuntuusers.de

ubuntuusers.deWikiStreamripper

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 {en} 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)

Wiki/Vorlagen/Installbutton/button.png mit apturl

Paketliste zum Kopieren:

sudo apt-get install streamripper 

sudo aptitude install 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 ORDNER Ort, an dem die Aufnahme gespeichert wird
-l SEKUNDEN 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 .mp3-Dateien für die einzelnen Tracks. Nützlich in Verbindung mit -a oder -r
-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://proxy-ip:port
-o ... Sollen bereits vorhandene Titel ersetzt werden. Zur Auswahl stehen: never, always, larger und version.

Siehe auch: Streamripper-Readme {en}

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 empfangen werden. Möchte man einen anderen Rechner zum Mithören nutzen, ändert man die URL in http://IP-ADRESSE:8000.

Zeitgesteuerte Aufnahmen

Eine Aufnahme zu bestimmten Zeiten (einmalig oder regelmäßig) lässt sich auf verschiedene Arten umsetzen.

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 einem Befehl in der crontab des Benutzers. Hier ein Beispiel, um das Programm jeden Tag um Mitternacht zu starten:

0 0 * * * /usr/bin/streamripper URL -d /PFAD/ZUM/SPEICHERN -l DAUER_DER_AUFNAHME_IN_SEKUNDEN > /dev/null 2>&1

Experten-Info:

Cron-Jobs senden ihre Ausgabe 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.

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 der 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 (3600 Sekunden) lang den Stream von Deutschlandradio Kultur auf. Auch komplexere Zeitangaben sind mit Hilfe des Linux-User Artikels Cron, At - Punktlandung {de} möglich.

GNOME-Schedule

Alternativ bietet sich das grafische 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 über das Paket:

  • gnome-schedule (universe)

Wiki/Vorlagen/Installbutton/button.png mit apturl

Paketliste zum Kopieren:

sudo apt-get install gnome-schedule 

sudo aptitude install gnome-schedule 

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 und zusätzlich eine .cue-Datei an, 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 Streams, 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 von Streamripper zu entnehmen. Ein Beispiel:

streamripper http://somafm.com/bootliquor.pls --xs_offset=1200 --xs_padding=1000:1000 

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 13. Mai 2014 17:57 von aasche erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Multimedia, Audio, Radio, Internetradio