fadecut
Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:
Ubuntu 20.04 Focal Fossa
Du möchtest den Artikel für eine weitere Ubuntu-Version testen? Mitarbeit im Wiki ist immer willkommen! Dazu sind die Hinweise zum Testen von Artikeln zu beachten.
Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:
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¶
Das Programm kann direkt aus den Paketquellen installiert [1] werden:
fadecut (universe)
Befehl zum Installieren der Pakete:
sudo apt-get install fadecut
Oder mit apturl 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¶
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.
Links¶
Projektseite 🇬🇧
Streamripper FAQ 🇬🇧 - unterstützte Stream-Formate
Audiodateien umwandeln Übersichtsseite
Internetradio aufzeichnen Übersichtsartikel