Playlisten für MP3/OGG Player anlegen

Kamikaze

Warrior of Sunlight
Teammitglied
Vorne Weg, ich habe das ganze erst einmal hier gepostet, weil ich nicht weiß, ob ich einen Extra Artikel im Wiki anlegen soll, oder das an den AWK Artikel anhängen soll. Da ist eure Meinung gefragt. Jetzt zum HowTo:


Die folgenden Skripte verwende ich um Playlisten für meinen OGG Player anzulegen:

m3uCreate
Code:
#!/usr/bin/awk -f
BEGIN {
	printf("#EXTM3U\r\n");
	printf("") | "m3uAppend"
}

{
	print $0 | "m3uAppend"
}

END {
	close("m3uAppend");
}

m3uAppend
Code:
#!/usr/bin/awk -f
{
	filename = $0;
	mediainfo = "mediainfo -f \"" filename "\"";
	audio = 0;
	duration = -1;
	artist = "";
	title = "";
	while ((mediainfo | getline) > 0) {
		if ($0 == "Audio") {
			audio = 1;
		} else if ($0 ~ "^Duration[[:space:]]*: [0-9]+$") {
			sub(".*: ", "");
			duration = $0 / 1000;
		} else if ($0 ~ "^Performer[[:space:]]*:") {
			sub(".*: ", "");
			artist = $0;
		} else if ($0 ~ "^Title[[:space:]]*:") {
			sub(".*: ", "");
			title = $0;
		}
	}
	close(mediainfo);

	if (audio) {
		gsub("/", "\\", filename);
		printf("#EXTINF:%d,%s - %s\r\n%s\r\n", duration, artist, title, filename);
	}
}

Die Skripte habe ich in meinem ~/bin/ Ordner angelegt. Sie benötigen das Programm mediainfo.

Die Skripte nehmen Dateinamen per Pipe an und geben eine m3u Datei aus.

Ein Beispiel:
> find -s "Kamikaze/StarCraft II - 2010 - Wings of Liberty OST/" -name \*.ogg | m3uCreate > Soundtracks.m3u8

Die Playliste kann noch erweitert werden:
> find -s "Kamikaze/Various - 1996 - Descent II O.S.T./" -name \*.ogg | m3uAppend >> Soundtracks.m3u8

Die 8 am Ende der Dateiendung bedeutet, dass die Dateiname Unicode-kodiert sind. Das ist dem Skript egal, sondern hängt von der Locale ab unter der die Dateien angelegt sind. Mit der Endung .m3u sollten die Dateinamen als ASCII interpretiert werden. Das knallt natürlich, wenn man irgend eine ISO-Kodierung verwendet. Das M3U-Format unterstützt nur ASCII und UTF-8 Kodierung.

Wie die Player das handhaben steht natürlich auf einem anderen Blatt. In der Regel klappt alles, wenn die Kodierung der Dateinamen und die Kodierung in der Playliste gleich sind.

Weiterführende Verweise usw. kommen dann in den Wiki-Artikel.
 
Zuletzt bearbeitet:
Zurück
Oben