[[Vorlage(Getestet, general)]] {{{#!vorlage Wissen [:Pakete_installieren:Pakete installieren] [:Terminal: Ein Terminal öffnen] }}} [[Inhaltsverzeichnis(1)]] [[Bild(Wiki/Icons/terminal.png, 48, align=left)]] [sourceforge2:streamripper: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 [:Internetradio_aufzeichnen: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 [wikipedia:Windows_Media:Windows Media] zur Ausstrahlung nutzen, ist das Programm nicht geeignet. = Installation = [[Bild(Wiki/Icons/synaptic.png, 48, align=right)]] Streamripper kann über das folgende Paket installiert [1] werden: {{{#!vorlage Paketinstallation streamripper, universe }}} = Verwendung = Die generelle Syntax lautet [2]: {{{#!vorlage Befehl streamripper URL [OPTIONEN] }}} Mit URL ist hier die Internet-Adresse eines Streams gemeint. Beispiel: {{{#!vorlage Befehl 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 Relay-Server] (siehe unten) einrichten. Beendet wird die Aufnahme mit der Tastenkombination [[Vorlage(Tasten, strg+c)]]. == Optionen == {{{#!vorlage Tabelle 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 `0000_` bis `9999_` +++ `-a` Speichert den Stream zusätzlich am Stück in einer Datei und erstellt ein [wikipedia: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`. +++ `-s` Erstellt kein Unterverzeichnis für jeden Stream (Standard ist ein Ordner mit dem Namen des Streams) }}} Siehe auch: [http://streamripper.git.sourceforge.net/git/gitweb.cgi?p=streamripper/streamripper;a=blob_plain;f=README 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 [:Rhythmbox#Record-Station: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 [:Cron#Eine-Crontab-fuer-einen-Benutzer-einrichten: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 }}} {{{#!vorlage Experten [:Cron:]-Jobs senden ihre Ausgabe nach "mail". Da unter Ubuntu das Paket [packages: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 [[Vorlage(Tasten, Strg+D)]] wird die Befehlszeile abgeschlossen. Beispiel: {{{#!vorlage Befehl 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 [http://www.linux-user.de/ausgabe/2006/02/094-zubefehl/ 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. == 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 das Programm zusätzlich eine Schnittpunkt-Datei anlegen. Mit dem Programm [:mp3splt:mp3splt-gtk] kann man diese öffnen und muss nur noch Feineinstellungen betreiben, um die Dateien exakt in einzelne Titel zu schneiden. Ein Beispielskript: {{{#!code bash #!/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 [:man:Manpage] von Streamripper zu entnehmen. Ein Beispiel: {{{#!vorlage Befehl 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. = Links = * [sourceforge2:streamripper:Projektseite] {en} * [:Internetradio_aufzeichnen:] {Übersicht} Übersichtsartikel # tag: Multimedia, Audio, Radio, Internetradio