fadecut

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

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

  1. Installation von Programmen

  2. Ein einzelnes Paket installieren

  3. Ein Terminal öffnen

  4. Einen Editor verwenden

Inhaltsverzeichnis
  1. Installation
  2. Verwendung
  3. Einstellungen
  4. Modifikationen
  5. Problembehebung
  6. Links

Wiki/Icons/terminal.png fadecut 🇬🇧 ist ein Shell-Skript, um mit Hilfe von Streamripper und anderen Kommandozeilenwerkzeugen Internetradio (Streams) aufzunehmen. Es sei allerdings angemerkt, dass sich der Einsatzzweck vorrangig auf MP3- (.m3u) und OGG-Streams beschränkt, da der zugrunde liegende Streamripper beispielsweise keine Windows Media-Streams speichern kann.

Besonders hervorzuheben sind die integrierten Fähigkeiten, einen Stream automatisch in einzelne Audiodateien zu zerlegen (inkl. Ein- bzw. Ausblenden am Liedanfang bzw. -ende) und mit den entsprechenden Metadaten zu vervollständigen. Letzteres ist aber nur möglich, wenn ein Stream diese Daten auch bereitstellt.

Eventuell in diesem Zusammenhang noch interessant: das Skript Bashtuner 🇩🇪 zum reinen Abspielen von Internetradios auf der Kommandozeile (siehe auch die entsprechende Diskussion im Forum). Wer für das Mitschneiden von Internetradio eine grafische Oberfläche bevorzugt, findet im Artikel Internetradio aufzeichnen eine Übersicht verfügbarer Programme.

Hinweis:

Um Missverständnissen vorzubeugen: die Anwendung dient zum Aufnehmen und nicht zum Hören des Streams oder der erzeugten Titel. Im Rahmen dieses Artikel getestet wurde die Version 0.1.1 aus Ubuntu 12.04. Da es sich noch um ein junges Projekt handelt, sollten auch die Abschnitte Modifikationen und Problembehebung beachtet werden.

Installation

Wiki/Icons/synaptic.png Das Programm kann direkt aus den Paketquellen installiert [1] werden:

Paketliste zum Kopieren:

sudo apt-get install fadecut 

Oder mit apturl die Pakete installieren. Link: apt://fadecut

Verwendung

Man öffnet ein Terminal-Fenster [3] oder eine Konsole und erstellt zuerst eine Profildatei für die gewünschte Radiostation:

fadecut -c meine_radiostation 

Dann bearbeitet man die folgenden Parameter mit dem Editor vi, der automatisch aufgerufen wird:

STREAM_URL="http://streamurl"
GENRE="Pop"
COMMENT="Kommentar"
ENCODING=mp3                   ## Format der Zieldateien, für Vorbis dementsprechend ogg
FADE_IN=1
FADE_OUT=4

Zum wichtigsten Punkt, der "STREAM_URL", sei auf die Beispiele im Artikel Internetradio/Stationen verwiesen. Profildateien werden im Ordner ~/.fadecut/profiles/ im Homeverzeichnis gespeichert und können mit -e (statt -c) bearbeitet werden. Wer vi nicht mag, kann auch einen anderen Editor [4] nutzen.

Anschließend kann dieser Radiosender mit folgendem Befehl aufgezeichnet und in einzelne Musikstücke zerlegt werden:

fadecut -p meine_radiostation -r 

Die Aufnahme wird mit Strg + C beendet. Ein bereits verarbeiteter Titel wird erkannt und nicht neu verarbeitet. Nicht erwünschte Titel können in einem separaten Ordner abgelegt werden. Diese werden dann ebenfalls nicht mehr weiter verarbeitet. Folgende Ordner werden verwendet (manche müssen manuell erstellt werden):

verwendete Ordner
Ordnername Zweck
done für Titel, die man behalten möchte. Diese müssen manuell aus new hierhin kopiert werden.
dontlike enthält unerwünschte Titel. Die Größe kann 0 Byte sein, entscheidend ist der Dateiname.
error wenn während der Bearbeitung Fehler aufgetreten sind. So kann die problematische Datei später genauer untersucht werden.
incomplete für die laufende Aufnahme (und Lied-Fragmente einer unvollständigen Aufnahme)
new für fertig bearbeitete Titel
orig wenn bei der Aufnahme der Parameter -k verwendet wird, werden hier die Titel unbearbeitet abgelegt

Hinweis:

Die Ordner incomplete/ und new/ werden automatisch in dem Verzeichnis angelegt, aus dem fadecut gestartet wurde. Es ist daher empfehlenswert, einen eigenen Ordner wie z.B. ~/Radioaufnahmen anzulegen und das Programm in diesem Ordner zu starten.

Optionen
Parameter Zweck
-c Profil Radiosender-Profil erstellen
-e Profil Radiosender-Profil bearbeiten
-p Profil -r Radiosender-Profil aufnehmen (rippen)
-p Profil -r -k Aufnahme nicht nachbearbeiten

Beispiel-Protokoll

Nachfolgend beispielhaft die Ausgabe einer Aufnahme-Sitzung:

fadecut -p oem-radio -r 
22:14:16 Info:     Loading profile file(s):
22:14:16           /home/ubuntu/.fadecut/profiles/oem-radio
22:14:16 Success:  /usr/bin/streamripper started pid=11104
22:14:18 Stream:   Connecting...
22:14:30 Stream:   [skipping... ] Kether - Day 2
22:14:54 Stream:   [ripping... ] Kritical Audio - Springbreaks
22:19:56 Stream:   [ripping... ] I AWAKE - New Time Nomads (Bass Edit)
22:20:06 Info:     Processing:
22:20:06           Kritical Audio - Springbreaks.mp3
22:21:04 Success:  Ready for listening:
22:21:04           kritical_audio_-_springbreaks.mp3
22:21:04 Info:     showStats:
22:21:04           Output:1 Orig: Done: Dontlike: Error:
22:21:04           Double:0 Processed:2
22:25:42 Info:     Processing:
22:25:42           I AWAKE - New Time Nomads (Bass Edit).mp3
22:26:42 Success:  Ready for listening:
22:26:42           i_awake_-_new_time_nomads_(bass_edit).mp3
22:26:42 Info:     showStats:
22:26:42           Output:2 Orig: Done: Dontlike: Error:
22:26:42           Double:0 Processed:3
22:26:44 Stream:   [ripping... ] Kaya Project - ...So It Goes
...
22:49:29 Info:     showStats:
22:49:29           Output:5 Orig: Done: Dontlike: Error:
22:49:29           Double:0 Processed:6
22:49:29 Success:  Fadecut stopped!
22:49:29           Returnvalue=0

Konvertierung

fadecut kann auch bereits vorhandene Dateien nachbearbeiten. Problematisch ist aber das Ausgangsmaterial: Audiodateien mit verlustbehafteten Codecs sollten nicht mehr bearbeitet werden, da es sonst zum Generationsverlust kommt. Dies betrifft sowohl MP3 als auch OGG.

Einstellungen

Wiki/Icons/settings.png Speziell bei Kommandozeilenprogramm kann die wiederkehrende Eingabe mehrerer Parameter mühsam sein. Standardwerte kann man daher in der Datei ~/.fadecut/fadecutrc speichern (oder man nutzt die Verlaufsfunktion der Bash).

Weitere Informationen sind der Manpage von fadecut zu entnehmen.

Modifikationen

Fadecut bietet noch Spielraum für Optimierungen. Alle im weiteren Verlauf genannten Änderungen erfolgen durch das Bearbeiten der Datei /usr/bin/fadecut mit einem Editor [4] und Root-Rechten.

Relay-Server

Praktisch ist die Nutzung von Streamripper als Relay, um die laufende Sendung während der Aufnahme mit einem externen AudioPlayer hören zu können, ohne den Stream doppelt herunterladen zu müssen. Dazu muss die folgende Zeile um die Option -r ergänzt werden.

STREAMRIPPER_OPTS="-o always -T -r"		# streamripper options

Nun kann während der Aufnahme in vielen Audioplayern über die Adresse http://localhost:8000 der Stream mitgehört werden. Diese Quelle kann aber nur auf dem eigenen Rechner empfangen werden (solange die Aufnahme läuft).

Bitrate wird reduziert

Das wahrscheinlich größte Problem ist derzeit (Version: fadecut 0.1.1-1) die Reduzierung der Bitrate von MP3-Dateien, auch wenn der Stream eine höhere Qualität bietet. Da fadecut den Encoder LAME ohne entsprechende Option aufruft, wird bei der Kodierung nur die Standard-Bitrate von 128 kbps benutzt. Idealerweise müsste zuerst die Bitrate des Streams ermittelt werden (Streamripper erkennt diese) und bei der anschließenden Kodierung berücksichtigt werden.

Als Workaround kann man die Funktion mp3Encoding ändern und den Aufruf von lame um die gewünschte Bitrate bzw. Qualitätsstufe ergänzen. Dies setzt natürlich voraus, dass die Bitrate des Streams vorher bekannt ist. Da aber nicht alle Streams mit der gleichen Bitrate gesendet werden, ist ein fester Wert in der Praxis eher hinderlich, wenn man verschiedene Internetradios aufzeichnen möchte (verursacht aber auch kein dramatisches Problem).

Diese Problematik betrifft prinzipiell auch die Speicherung als OGG-Datei. Abhilfe schafft eine manuelle Änderung der Funktion oggEncoding. Der entsprechende Parameter ist im Artikel Vorbis (Abschnitt „Enkodieren“) beschrieben.

Profil-Editor ändern

Der als Standard verwendete Editor vi reicht nach Meinung vieler Konsolen-Nutzer vollkommen aus. Möchte man dennoch einen anderen Editor einstellen, ersetzt man den Aufruf von vi durch das gewünschte Programm.

Problembehebung

Split-Point

Wenn einzelne Musikstücke nicht sauber getrennt werden oder noch unerwünschte Bestandteile wie Sprache oder Werbung enthalten, kann man versuchen, den "Split-Point" (die Stelle zwischen zwei Stücken, an der getrennt wird; im Regelfall "Stille") zu beeinflussen. Dazu dienen die Optionen TRIM_BEGIN=x und TRIM_END=y in der Profildatei. Dieser Split-Point ist aber vom jeweiligen Stream abhängig, da ein Sender diesen beeinflussen kann.

Metadaten

Obwohl Metadaten wie Interpret und Titel automatisch eingebettet werden, stellt die dabei verwendete Formatierung mit Unterstrichen nicht jeden zufrieden (das gleiche betrifft u.U. den Dateinamen). Bei einer Überarbeitung helfen externe (grafische) Tag-Editoren, die im Artikel Multimedia (Abschnitt „Verwaltung“) aufgelistet sind. Wer auch hier die Kommandozeile bevorzugt, hat die Wahl zwischen eyeD3 und id3v2 (siehe Überprüfung MP3-Sammlung (Abschnitt „ID3-Tags“)).

Zeitgesteuerte Aufnahme

Um eine Aufnahme zu einem späteren Zeitpunkt automatisch aufnehmen zu lassen, kann fadecut über Cron aufgerufen werden. Dazu ist folgender Eintrag in der crontab des Benutzers notwendig:

/usr/bin/fadecut -p meine_radiostation -r > /dev/null 2>&1

Achtung!

Cron-Jobs senden ihren Output nach "mail". Da unter Ubuntu das Paket mailx standardmäßig nicht installiert ist, führt der Aufruf von fadecut über cron nach wenigen Minuten zu einem Absturz. Abhilfe schafft die Installation 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. Informationen dazu finden sich im Artikel Cron.