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:
xxxxxxxxxxtest:~$ nano .bashrc
Ergänzung mit:
xxxxxxxxxxPATH="$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:
xxxxxxxxxxtest:~$ 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
xxxxxxxxxx01-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/bashmkdir -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# wavfor file in *.mp4; do fname=$(basename "$file" .mp4); ffmpeg -i "$file" -vn -c:a pcm_s32le -ar 48000 -f wav "$fname".wav; done &# flacfor file in *.mp4; do fname=$(basename "$file" .mp4); ffmpeg -i "$file" -strict experimental -vn -ar 48000 -f flac "$fname".flac; done &# aacfor 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/bashmv *.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:
xxxxxxxxxxtest:~$ 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:
xxxxxxxxxxtest:~$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-cfebe2010281Album=Sentimental JourneyAlbum Artist=Nils LandgrenAlbumartistsort=Landgren, NilsArtist=Nils LandgrenArtists=Nils LandgrenArtistsort=Landgren, NilsAsin=B00006ALV0Cover Art (Front)=[85710 bytes]Disc=1/1MUSICBRAINZ_ALBUMSTATUS=officialMUSICBRAINZ_ALBUMTYPE=albumMusicbrainz_Albumartistid=aed70c67-7e5a-42e6-9103-b8c2942e98a2Musicbrainz_Albumid=5e383128-fefb-4262-88ef-9734d06d377cMusicbrainz_Artistid=aed70c67-7e5a-42e6-9103-b8c2942e98a2Musicbrainz_Releasegroupid=02803e49-31f5-3040-8e3d-da36c1112319Originaldate=2002-09Originalyear=2002Releasecountry=DEScript=LatnTitle=Speak LowTrack=1/13Year=2002-09musicbrainz_releasetrackid=a5cdba70-de51-343e-a405-af723fdd794amusicbrainz_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:
xxxxxxxxxxtest:~/Musik/[Arbeitsverzeichnis]$ rm *.mp4
Im Internet gibt es eine Vielzahl von Bash-Skripten zur Erstellung von Wiedergabelisten. Eine einfache Möglichkeit ist auch:
xxxxxxxxxxtest:~/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
