Quantcast
Channel: Elmars Notizen » Programme
Viewing all articles
Browse latest Browse all 8

Cover aus MP3-Dateien extrahieren

$
0
0

Ich stellte fest, der Media-Player amarok 2.3.0 übernimmt keine Cover aus MP3-Dateien, falls diese im PNG-Format gespeichert sind (nur JPEG-Bilder wurden übernommen). Mit der Cover-Verwaltung von amarok lassen sich nachträglich auch „eigene“ PNG-Cover einfügen in die Datenbank. Der Dateiauswahl-Dialog der Cover-Verwaltung zeigt das Verzeichnis an, in dem die MP3-Datei gespeichert ist. Am schnellsten ist die Arbeit erledigt, falls alle Cover-Bilddateien im gleichen Verzeichnis wie deren MP3-Dateien existieren.

Da viele Verzeichnisse betroffen waren, wäre mir die Benutzung eines GUI-Programms, beispielsweise EasyTAG, zu zeitaufwändig. Deshalb schrieb ich ein Perl-Skript, das Sie hier herunterladen können. Voraussetzung ist, auf Ihrem Rechner sind Perl installiert und die vom Skript benötigten Perl-Module. Das Skript sucht in einer MP3-Datei in allen eingebetteten Bildern nach einem Cover und schreibt dieses ins gleiche Verzeichnis wie die MP3-Datei. Mit einem Bash-Skript gelingt dies schnell:

#!/bin/sh

IFS="
"

for filename in $(find musik -type f -iname '*\.mp3')
do
	dir=${filename%/*}
	jpgCover="${dir}/cover.jpg"
	pngCover="${dir}/cover.png"
	if ! [ -f $jpgCover ] && ! [ -f $pngCover ]
	then
		extract_id3v2_cover.pl $filename
	fi
done

Ich fügte dem Kontextemnü, Untermenü „Aktionen“, des KDE-Dateimanagers Dolphin dieses Skript hinzu, sodass ich per Mausklick (rechte Taste) auf eine MP3-Datei das Cover extrahieren lassen kann. Dafür erzeugte ich im Verzeichnis $HOME/.kde4/share/kde4/services/ServiceMenus/ die Textdatei extract_id3v2_cover.desktop folgenden Inhalts:

[Desktop Entry]
Type=Service
ServiceTypes=KonqPopupMenu/Plugin
MimeType=audio/mpeg;
Actions=extract_id3v2_cover
 
[Desktop Action extract_id3v2_cover]
Exec=/home/elmar/bin/extract_id3v2_cover.pl
Name[de]=Cover extrahieren
Name=Cover extrahieren
Icon=audio-ac3

Viewing all articles
Browse latest Browse all 8