Nützliches aus der Konsole / Useful stuff from the terminal – Part 1 – m3u playlist script (multi-language)

Hier stelle ich in unregelmäßigen Abständen nützliche Skripte und kleine Befehlsschnipselchen vor, die mir mal irgendwann zugeflattert sind und die ich nicht mehr missen möchte.

This series is about to introduce some useful scripts or code snippets that I found once and that I never want to miss anymore.

Wer ein großes Musikarchiv sein eigen nennt und viele Unterordner (bspw jeweils ein Album) in dieser Sammlung hat, der hat eventuell irgendwann den Wunsch nach Playlisten im m3u Format, die jeden einzelnen Ordner zusammenfassen.  Dafür habe ich in diesem Beitrag auf Ubuntuusers.de vor langer Zeit eine Lösung gefunden, die ich seitdem benutze. Für jeden Ordner wird eine m3u-Playlist angelegt und im selben Ordner gespeichert. Das ganze wird aus einem Startverzeichnis angeleiert und arbeitet sich rekursiv durch alles durch.

Sicherlich noch anpass- und erweiterbar, aber mir reicht es.

Who owns a big music archive and has many sub-folders (e.g. one album per folder) in this collection, may have the wish to easily create playlists in the m3u format for each folder. Therefore I  found a nice script in this post on Ubuntuusers.de long ago, that I use from time to time. For each folder, a m3u playlist is created and stored in the same folder. The whole thing is started from a directory and recursively works its way through all sub folders.

Certainly still  improvable, but good enough for me.

Achtung: Bitte darauf achten, dass manche Zeilen von der Blogsoftware umgebrochen werden. Die müssen natürlich in einer Zeile stehen, damit das Skript funktioniert.

Attention: Please take care about the lines which are broken by my blog software. In order to get the script working you have to write them in a single line.

#!/bin/bash</span>
<pre>
INPUTDIR="$1"

cd "$INPUTDIR"

INPUTDIR="$PWD"

cd "$OLDPWD"

filedir=""

OLDIFS="$IFS"

IFS=$'\n'

for filepath in $(find $INPUTDIR -type f -name '*.mp3' -print | sort); do

IFS="$OLDIFS"

oldfiledir="$filedir"

filedir="$(dirname "$filepath")"

filename="$(basename "$filepath")"

if [ "$oldfiledir" = "$filedir" ]; then

echo $filename >> "$filedir/$(echo $filedir | awk -F/ '{ print $(NF-1) " - " $NF }').m3u"

else

rm -f "$filedir/$(echo $filedir | awk -F/ '{ print $(NF-1) " - " $NF }').m3u"

echo $filename > "$filedir/$(echo $filedir | awk -F/ '{ print $(NF-1) " - " $NF }').m3u"

fi

done

exit

Schreibe einen Kommentar

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s

%d Bloggern gefällt das: