Blog Digitalgesellschaft Verwaltungsbetrieb Textarchiv Textarchiv Walter Kirk (✝) Impressum
Audiobearbeitung weitgehend automatisieren1 Vorbemerkung2 Skript-Verzeichnis3. Download3.1 Hinweis3.2 YT-DLP3.3 Media Downloader4 Bearbeitung4.1 Muster-Verzeichnis erstellen4.2 Umbenennen4.3 Transkodierung4.4 Verschieben4.5 Metadaten4.6 Videodateien löschen4.7 WiedergabelistenCheckliste Audio-Datein automatisiert bearbeitenLiteraturZusammenfassung
Wer will nicht den Aufwand bei der Bearbeitung von Audio- und Videodateien soweit wie möglich gering halten. In den gängigen Betriebssystemen gibt es dafür einige Hilfsmittel, jedoch ist nicht jede Aufgabe wirklich reduziert.
Dateinamen nach dem eigenen Schema ändern lässt sich nicht immer mit den vorhandenen Tools bewerkstelligen.
Viele Wege führen bekanntlich zum Ziel. Manchmal ist doch die Eingabe im Terminal notwendig. In solchen Fällen können Bash-Skripte den Arbeitsaufwand soweit wie möglich überschaubar halten.
Im Blogbeitrag wird aufgezeigt, wie man
- Bash-Skripte einsetzen kann
- die Plattform YouTube besser nutzen kann, um Ressourcen zu schonen.
Damit eine einfache Ausführung von Bash-Skripten möglich wird, ist die Anlage eines gemeinsamen Verzeichnis bin im Arbeitsverzeichnis sinnvoll. Alle .sh sollten dort abgespeichert werden und es ist notwendig die Datei .bashrc wie folgt zu ergänzen:
xxxxxxxxxx
test:~$ nano .bashrc
Ergänzung mit:
xxxxxxxxxx
PATH="$HOME/bin:$PATH"
In diesem Fall wird die PATH-Erweiterung für den jeweiligen Nutzer des Rechners eingerichtet.
Die Plattform YouTube hat sich gerade auch für die (Wieder-)Veröffentlichung von Audio- und Videomaterial aufgrund der weltweiten Reichweite etabliert. Ein Download wird von Google Inc. als dessen Eigentümer nicht gern gesehen oder unterstützt. Auf der anderen Seite ist das Streamen nicht gerade Ressourcen schonend und umweltfreundlich (CO2). Da bietet sich manchmal die Möglichkeit an, das gewünschte Material herunter zu laden.
Hier wird die Möglichkeit angesprochen, nicht de Frage letztlich beantwortet, ob das Herunterladen zum eigenen Anhören und Ansehen nach deutschem Urheberrecht legal ist oder nicht. Dafür bleibt jede(r) Anwender:In selbst verantwortlich. Im Zweifel ist anwaltlicher Rat einzuholen bzw. das Herunterladen zu unterlassen.
Mit yt-dlp lassen sich Videos einfacher von YouTube herunter laden. Dieses Tool ist in den meisten Linux-Distributionen enthalten und kann nach installiert werden:
xxxxxxxxxx
test:~$ sudo apt install yt-dlp
Als Einstellungen wird folgende Option eingefügt, um 1. ein konformes Format für Dateinamen ohne Sonderzeichen zu erhalten, 2. die Youtube-ID in den Dateinamen zu entfernen und 3. die Metadaten einzubinden:
xxxxxxxxxx
--restrict-filenames -o "%(playlist_index)s-%(title)s.%(ext)s" --embedd-metadata
Ergänzende Hinweise siehe unter https://wiki.ubuntuusers.de/yt-dlp/
Das Programm Media Downloader hilft als GUI dabei, mit yt-dlp einzelne Videos als Bündel oder in Gesamtheit als Playlisten herunter zu laden.
Im Menü Downloader Wiedergabeliste ist im Beispiel unter Download-Optionen eingetragen:
xxxxxxxxxx
--restrict-filenames -f bestvideo[ext=mp4][vcodec^=avc]+bestaudio[ext=m4a]/bestvideo[ext=mp4]+bestaudio[ext=m4a]/bestvideo+bestaudio/best[ext=mp4]/best -o "%(playlist_index)s-%(title)s.%(ext)s"
Diese Einstellungen lassen sich auch als Voreinstellungen speichern (Konfigurieren).
Die Ausgabe zeigt beispielhaft: Track-Nr.-Titel.Ext
xxxxxxxxxx
01-polygon.aac
Die Tracks sind in der Reihenfolge des Albums sortiert.
Will man darüber hinaus auch, dass die Metadaten eingebettet werden, erfolgt dies mit der Option --embed-metadata.
xxxxxxxxxx
--restrict-filenames -f bestvideo[ext=mp4][vcodec^=avc]+bestaudio[ext=m4a]/bestvideo[ext=mp4]+bestaudio[ext=m4a]/bestvideo+bestaudio/best[ext=mp4]/best -o "%(playlist_index)s-%(title)s.%(ext)s" --embed-metadata
Die Einbettung funktioniert im Test für .flac, wobei eine Korrektur ggf. notwendig ist, für .aac generell nicht.
Mit EasyTag / Picard lassen sich Korrekturen und die Einbettung von Bildern vornehmen, wenn dies von den Ausgabeformaten her möglich ist.
Wenn immer die gleiche Verzeichnisstruktur eingerichtet werden soll, kann dies durch Ausführung eines Skriptes im Arbeitsverzeichnis ($Home/Musik) oder an einem anderen Ort vereinfacht erfolgen:
x#!/bin/bash
mkdir -p /home/nutzername/Musik/neue-musik-{01..09}/{aac,flac,wav,sonstiges}
Das Ergebnis sieht im Beispiel so aus:
[drwxr-xr-x] . ├── [drwxrwxr-x] neue-musik-01 │ ├── [drwxrwxr-x] aac │ ├── [drwxrwxr-x] flac │ ├── [drwxrwxr-x] sonstiges │ └── [drwxrwxr-x] wav ├── [drwxrwxr-x] neue-musik-02 │ ├── [drwxrwxr-x] aac │ ├── [drwxrwxr-x] flac │ ├── [drwxrwxr-x] sonstiges │ └── [drwxrwxr-x] wav
usw. bis 09
Die von der Plattform herunter geladenen Dateien liegen beispielsweise im Format .mp4 vor.
Die folgenden Bemerkungen können übergangen werden, wenn die .mp4 mit den in Abschn. 3.3 angeführten Optionen durch den Media Downloader herunter geladen werden.
Die Dateinamen enthalten neben dem Titel noch zusätzliche Angaben und sind eventuell auch nicht in der Reihenfolge sortiert, die zum Taggen, z.B.mit EasyTag, erforderlich ist. Deshalb ist jetzt soweit erforderlich zu erledigen:
- Nummerierung entsprechend der Liedfolge des Albums, etc.
- Entfernen kryptischer Zeichen, Sonderzeichen und soweit gewünscht Klein- oder Großschreibung.
Die Plattform Discogs hilft bei der Ermittlung von Album- und Labeldaten.
Diese Schritte zuerst vorzunehmen bedeutet nach der Erstellung der weiteren Ausgabeformate, das alle Dateien einheitlich bezeichnet vorhanden sind.
Die Audiospur aus der .mp4 zu extrahieren gelingt für die verschiedenen Ausgabeformate mit Hilfe von speziellen Programmen wie z.B. Klangumwandler (Linux) oder auf der Ebene der Kommandozeile durch Eingabe der entsprechenden Parameter. Damit man nicht für jedes einzelne gewünschte Format einzelne Codierungsschritte vornehmen muss, kann dieser Vorgang mit einem Bash-Skript vereinfacht ausgeführt werden:
xxxxxxxxxx
#!/bin/sh
# wav
for file in *.mp4; do fname=$(basename "$file" .mp4); ffmpeg -i "$file" -vn -c:a pcm_s32le -ar 48000 -f wav "$fname".wav; done &
# flac
for file in *.mp4; do fname=$(basename "$file" .mp4); ffmpeg -i "$file" -strict experimental -vn -ar 48000 -f flac "$fname".flac; done &
# aac
for file in *.mp4; do fname=$(basename "$file" .mp4); ffmpeg -i "$file" -vn -acodec libfdk_aac -b:a 512k -ar 48000 -f adts "$fname".aac; done
Im Beispiel-Skript, bezeichnet als audio-transcode.sh, werden .aac, .flac und .wav aus den Quelldateien extrahiert.
Zur besseren Übersicht, werden die Audiodateien in entsprechende Verzeichnisse verschoben. Auch hier kann der Vorgang mit Ausführung eines Skriptes audio-transcode.sh im Arbeitsverzeichnis vereinfacht werden:
xxxxxxxxxx
#!/bin/bash
mv *.aac ./aac & mv *.wav ./wav & mv *.flac ./flac
Der Abruf der Daten von Datenbanken wie gnudb.org oder freedb.musicbrainz ist für Alben eine einfache Möglichkeit, die Dateinamen ggf. zu korrigieren und / oder die Metadaten zu ergänzen.
Beide Programme lassen sich bei debian-basierten Linux-Distributionen aus den Paketquellen nach installieren:
xxxxxxxxxx
test:~$ sudo apt install easytag picard python3-mutagen
Nicht alle Metadaten-Editoren können für das .aac-Format die Ergänzungen anzeigen und vornehmen. Ob für diese Dateien die Daten vorhanden sind, kann mit dem Programm python3-mutagen überprüft werden. Voraussetzung ist eine vorhandene Installation von Python3:
xxxxxxxxxx
test:~$test:~/Musik/[Arbeitsverzeichnis]$ mutagen-inspect *.aac >titel.txt
Das Ergebnis beinhaltet die vorhandenen Metadaten in der Datei titel.txt. Das Ergebnis kann so aussehen, wie im folgenden Beispiel für ein Lied:
xxxxxxxxxx
-- 01-speak-low.aac
- Unknown format with APEv2 tag. (application/octet-stream)
Acoustid_Id=53d55958-cc7e-470f-8d5f-cfebe2010281
Album=Sentimental Journey
Album Artist=Nils Landgren
Albumartistsort=Landgren, Nils
Artist=Nils Landgren
Artists=Nils Landgren
Artistsort=Landgren, Nils
Asin=B00006ALV0
Cover Art (Front)=[85710 bytes]
Disc=1/1
MUSICBRAINZ_ALBUMSTATUS=official
MUSICBRAINZ_ALBUMTYPE=album
Musicbrainz_Albumartistid=aed70c67-7e5a-42e6-9103-b8c2942e98a2
Musicbrainz_Albumid=5e383128-fefb-4262-88ef-9734d06d377c
Musicbrainz_Artistid=aed70c67-7e5a-42e6-9103-b8c2942e98a2
Musicbrainz_Releasegroupid=02803e49-31f5-3040-8e3d-da36c1112319
Originaldate=2002-09
Originalyear=2002
Releasecountry=DE
Script=Latn
Title=Speak Low
Track=1/13
Year=2002-09
musicbrainz_releasetrackid=a5cdba70-de51-343e-a405-af723fdd794a
musicbrainz_trackid=ba6583c3-d3d7-4bf0-83af-dff979909b0f
Die titel.txt enthält somit alle wichtigen Metadaten der abgefragten Lieder.
Mit EasyTag lassen sich die Metadaten prüfen und ggf. berichtigen.
Tipp
Löschen aller Angaben im Feld Kommentar bereinigt Darstellungsfehler.
Die nicht mehr benötigten .mp4 können nach der erfolgreich durchgeführten Erstellung der Audiodateien gelöscht werden:
xxxxxxxxxx
test:~/Musik/[Arbeitsverzeichnis]$ rm *.mp4
Im Internet gibt es eine Vielzahl von Bash-Skripten zur Erstellung von Wiedergabelisten. Eine einfache Möglichkeit ist auch:
xxxxxxxxxx
test:~/Musik/[Arbeitsverzeichnis]$ ls *.aac > name-der-playlist.m3u
Beschreibung siehe Playlist per Terminal erstellen
Darüber hinaus bieten einige Abspielprogramme die Möglichkeit, Wiedergabelisten für angegebene Verzeichnisse zu erstellen.
1. Skript-Verzeichnis anlegen bin
2. Programme installieren: Media Downloader, EasyTag, Picard, FFmpeg, python3-mutagen, yt-dlp
3. Bash-Skripte erstellen für
- Verzeichnis erstellen
- Audio transcodieren
- Dateien verschieben
4. Videodateien umbenennen (Nummerierung gemäß Liedfolge, Sonderzeichen entfernen, Klein-/Großschreibung)
5. Audiospur aus Videodateien extrahieren
6. Audiodateien mit Metadaten ergänzen
7. Wiedergabeliste erstellen
Hinweis:
4-6 nur ausführen, wenn die Videodateien nicht bereits sortiert und konform benannt sowie mit Metadaten versehen sind.
Kirk, Wolfgang: Audio aus Videodatei extrahieren, Blogbeitrag, URL.: https://wolfgangkirk.de/tipps-audio-extrahieren.html
Kirk, Wolfgang: Audio und Video mit FFmpeg bearbeiten, Blogbeitrag, URL.: https://wolfgangkirk.de/tipps-audio-und-video-mit-ffmpeg-bearbeiten.html
yt-dlp, ubuntuuser.de, URL.: https://wiki.ubuntuusers.de/yt-dlp/
Audiodateien (und auch Videodateien) zu bearbeiten, um ein nach den eigenen Vorstellungen erfolgreiches Ergebnis zu bekommen, ist durchaus in Einzelschritte aufgeteilt zeit- und arbeitsaufwendig. Die Möglichkeiten des eingesetzten Betriebssystems und der installierten Zusatzprogramme zu nutzen, ist eine wesentliche Voraussetzung, den damit verbundenen bürokratischen Aufwand am Desktop soweit wie möglich zu reduzieren.
Bash-Skripte lassen die Einzelschritte grundsätzlich zusammen fassen und insgesamt einfacher erledigen.
Wolfgang Kirk
Veröffentlicht: 2023-12-31 aktualisiert: 2024-02-05, 11:30 Uhr