Playlist für Infotainment erstellen

  • Eine einfache m3u Playlist für das Infotainment System ist schnell erstellt.

    Eine einfache m3u Playlist fürs Infotainmaint System ist nichts anderes als eine Textdatei, die die Namen der abzuspielenden Dateien enthält.


    Wenn wir alle Titel in einem Ordner haben, gerne auch in Unterordnern in diesem Ordner, können wir in Linux und Apple Systemen ganz einfach so eine Datei erstellen.


    Im Beispiel heißt der Ordner "Skeeves Musik" und die Playlist wird "Skeeves Playlist.m3u" heißen.


    Die Kommandos sind umgebrochen, damit man sie leichter lesen kann, können aber genau so eingegeben werden.


    1. Sortierte Playlist

    Code
    find './Skeeves Musik' -type f -name \*.mp3 |
      cut -d. -f2- > 'Skeeves Playlist.m3u'

    2. Zufällige Reihenfolg

    Code
    find './Skeeves Musik' -type f -name \*.mp3 |
      while read mp3 ; do
        echo $RANDOM:$mp3 ;
      done |
      sort -n |
      cut -d. -f2- > 'Skeeves Playlist.m3u'

    3. Erklärung

    find './Skeeves Musik' -type f -name \*.mp3 sucht alle Dateien (-type f) mit Namen, die auf ".mp3" enden (-name \*.mp3) und gibt diese zeilenweise aus. Das kann dann so aussehen:

    Code
    ./Skeeves Musik/Yusuf _ Cat Stevens - Morning Has Broken.mp3
    ./Skeeves Musik/Alvin Stardust - I Feel Like Buddy Holly.mp3
    ./Skeeves Musik/Earth & Fire - Weekend.mp3

    Das Kommando cut -d. -f2- dient dazu, den Punkt am Anfang abzuschneiden. cut -d. splitet eine Zeile an Punkten (-d.) in "Felder" auf. Und fügt die gewünschten "Felder" wieder zusammen. Mit -f2- "wünscht" man sich die Felder ab Feld Nummer 2.


    Diese bereinigten Zeilen werden dann in die Playlist-Datei geschrieben.


    Die zufällige Reihenfolge wird erreicht, indem wir vor jede Zeile eine Zufallszahl setzen und anschließend nach diesen Zahlen sortieren.

Kommentare 2

  • Das Infotainment im ID kann übrigens mehr Formate als im Handbuch angegeben. So wird auch Ogg Vorbis unterstützt (*.ogg). Wer seine CD Sammlung verlustfrei im FLAC Format archiviert hat (*.flac), kann diese Dateien ebenfalls ohne umzuwandeln auf den USB Stick kopieren. Ditto mit Videos im MP4 (*.mp4) Format.

  • :) Nice to find some shell scripting in here.

    This also works in the Windows Subsystem for Linux.


    The random part might not work on the standard OS X shell, which does not support the special $RANDOM variable, or at least it did not when I last used it.


    So if your shell does not support $RANDOM, you can use

    Code
    find myMusicDir -type f -name \*.mp3 \
    | awk 'BEGIN{srand()} {print rand()"\t"$0}' \
    | sort -n \
    | cut -f2 \
    > myPlaylist.m3u

    which should work on any posix compliant system and with any shell that supports pipelining (e.g. csh, fish).


    Also, you can use many media formats, I just googled it, the id.* support the following audio formats:

    • AAC
    • ALAC
    • AVI
    • FLAC
    • MP3
    • MP4
    • WMA

    Use

    Code
    find myMusicDir -type f \
      \( -name \*.mp3 -or -name \*.flac -or … \) \
    | awk …

    at the start of the above command to include multiple file types.