Playlist für Kodi erstellen

Hallo,
ich möchte für meinen Medienserver (ich hoffe, die Bezeichnung stimmt) Kodi, der auf einem Raspberry läuft Wiedergabenlisten erstellen. Kodi erwartet folgendes Format:
#EXTCPlayListM3U::M3U
#EXTINF:0,01. Carlos Di Sarli - Patotero Sentimental (Mario Pomar)
/home/osmc/Music/40 Grandes Exitos CD1/01 - Patotero Sentimental (Mario Pomar).mp3
#EXTINF:0,02. Carlos Di Sarli - Re Fa Si
/home/osmc/Music/40 Grandes Exitos CD1/02 - Re Fa Si.mp3
#EXTINF:0,03. Carlos Di Sarli - El Recodo
/home/osmc/Music/40 Grandes Exitos CD1/03 - El Recodo.mp3

Die Kopfzeile "#EXTCPlayListM3U::M3U" kann ich zur Not händisch für jede Liste 1x eingeben, die Formatierung für die danach folgenden Titel bekomme ich aber bislang mit mp3tag nicht hin. Kann ich für den Playlist-Export diese Formatierung in den Erweiterten Informationen für die Playlisten definieren, und wenn ja, wie??
Vielen Dank vorab für hilfreiche Tips.

Bitte prüfe Deine Einstellungen in
Datei -> Optionen -> Playlist
im speziellen
image

Für die Zeile #EXTINF kannst Du die Option "Erweiterte Informationen schreiben" aktivieren.
Im Eingabefeld unter "Erweiterte Informationen schreiben" könntest Du sowas verwenden:
image
oder

Warum Dein KODI-EXTINF-Format eine Null vor dem Komma schreibt statt die Track-Länge in ganzen Sekunden, weiss ich leider nicht. Mit obiger Angabe sieht die Ausgabe aus Mp3tag so aus:

#EXTM3U
#EXTINF:302,0,01. LoFi Travel - Bass Hill
G:\Musik\L\LoFi Travel\Inevitability\2020\01 - Bass Hill.mp3
#EXTINF:256,0,02. LoFi Travel & Anton Vozdvizhensky - Vanish
G:\Musik\L\LoFi Travel\Inevitability\2020\02 - Vanish.mp3

oder

#EXTM3U
#EXTINF:302,01. LoFi Travel - Bass Hill
G:\Musik\L\LoFi Travel\Inevitability\2020\01 - Bass Hill.mp3
#EXTINF:256,02. LoFi Travel & Anton Vozdvizhensky - Vanish
G:\Musik\L\LoFi Travel\Inevitability\2020\02 - Vanish.mp3

Du musst nun prüfen, welche Variante KODI wirklich akzeptiert:
a) die mit der Länge in Sekunden
oder
b) die mit einer fixen Null

Wie soll ein Windows Programm den Pfad in einer Linux Umgebung erraten?

@ LyricsLover
vielen Dank, mit diesem Hinweis bin ich vorangekommen :slightly_smiling_face:

@ ohrenkino
klar, diese Windows-Einschränkungen sind mir bekannt :wink:, mit einem Texteditor und suchen/ersetzen ging es aber sehr schnell, "G:\" in "/home/osmc/Music/" und "\" in "/" zu ändern.

Und welche Variante funktioniert nun tatsächlich korrekt für KODI?

Ich habe in den Optionen - wie von Dir empfohlen - für die erweiterten Informationen
$num(%track%,2). %artist% - "%title%
eingetragen, anschließend die so generierte Liste mit notepad++ geöffnet und die beiden "suchen/ersetzen"-Routinen durchgeführt. ... und schon konnte die Kodi-App die Playlist öffnen und abspielen.

Danke für Deine Bestätigung.

Dann kommt KODI also mit dem offiziellen Format für .m3u-Playlisten und der Zeile #EXTINF zurecht, z.B.
#EXTINF:302,
wobei 302 für 302 Sekunden Länge* des nachfolgenden Tracks gelten und dann die zweistellige Tracknummer gefolgt von einem Punkt und einem Leerschlag, dem ARTIST einem Leerschlag Bindestrich Leerschlag und dem TITLE.

* Diese Längenangabe wird beim erstellen der Playliste automatisch von Mp3tag nach #EXTINF: gesetzt, muss also nicht selber manuell angegeben werden.

Meiner Ansicht nach ist der Bearbeitungsschritt mit einem externen Texteditor überflüssig, wenn die Wiedergabeliste in MP3tag nicht mit der eingebauten Funktion für Wiedergabelisten sondern mit einem Export-script erzeugt wird.
In dem kann per $replace() im Windows Pfad genau die sonst mit dem externen Editor notwendige Ersetzung schon bei der Generierung durchgeführt werden.

$filename(M:\MP3\%artist%\%artist% - Favourite Tracks.m3u)#EXTM3U
$loop(%track%)$loop(1)#EXTINF:%_length_seconds%,$num(%track%,2). %artist% - %title%
$replace(%_folderpath%,G:\,/home/osmc/Music/,\,/)%_filename_ext%
$loopend()$loopend()

Das sieht ja beeindruckend aus :slightly_smiling_face:
Da ich mich mit den Feinheiten der Skripte aber gar nicht auskenne, verstehe ich nur Bahnhof :hushed: und habe keine Ahnung, was ich mit dem tollen Vierzeiler anfangen soll....

Das ist ein Export-Script das du in einen neuen Export Strg-E einfügen kannst. Den Beispieltext überschreibst du komplett mit dem Code aus dem Vorschlag.

Mehr Infos u.a. in der Dokumentation:

Ich finde diesen alternativen Vorschlag zur Erzeugung einer Playlist via Export von @ohrenkino auch sehr clever, aus mehreren Gründen.

  1. Kann man damit jeden beliebigen "Header" (erste Zeile) erzeugen. Egal ob nur #EXTINF: oder #EXTCPlayListM3U::M3U oder wie auch immer diese erste Zeile in der Playlist für die Ziel-Anwendungen heissen muss.

  2. Muss eine Umwandlung stattfinden - z.B. von Windows-Pfadangaben mit führendem Laufwerksbuchstaben und Backslashes \ in Unix-Pfade ohne Laufwerksbuchstaben und mit Slashes / - kann man das mit einem einzigen $replace-Befehl erledigen:
    image
    Hier wird z.B. der Laufwerksbuchstabe G:\ mit /home/osmc/Music/ ersetzt, was sich sehr einfach an die eigenen Struktur anpassen lässt. Alle vorkommenden Backslashes \ werden mit einem Slash /ersetzt. Damit wird schon an der Quelle die fix-fertig benutzbare Playlist erzeugt. Es ist keine weitere manuelle, externe Bearbeitung mehr nötig.

  3. Man kann dieses Export-Script einfach kopieren und mehrere Varianten bereithalten. z.B. eine Variante mit Pfad-Umwandlung, eine Variante ohne Umwandlung der Pfade. Mehrere verschiedene Laufwerke lassen sich übrigens einfach durch Ergänzung des gleichen $replace() hinzufügen, z.B. mit H:\,/home/irgendwo/sonst, J:\,/noch wo anders/ da der $replace-Befehl bis zu rund 30 suchen-ersetzen-Pärchen aufnimmt.

Vielleicht hilft diese Kurzanleitung weiter?

ExportScript4KODI

Prima, vielen Dank!
So habe ich es zurechtbekommen.

Was mir aber noch unschön aufgefallen ist: die so generierte Playlist wird nicht so sortiert, wie sie in mp3tag angezeigt wird, sondern hat jetzt folgende Sortierung:
Album1 Titel1, Album2 Titel1, Album3 Titel1, Album1 Titel2, Album2 Titel2, Album2 Titel3, etc
Wenn ich über die Funktion "Playlist" gehe, ist die Sortierung wie angezeigt, erst Album 1 Titel 1-n, dann Album 2 Titel 1-n etc. Vermutlich muß der $loop-Befehl noch angepasst werden, wenn nicht gar 2 verschachtelte loops erforderlich sind.

setze statt $loop(%track%) $loop(1)

Meiner Meinung nach kann dann allerdings 1 $loop(1)..$loopend() weg.

Das habe ich eben mit folgender Änderung versucht:

$filename(O:\Playlist1.m3u)#EXTM3U
$loop(%track%)#EXTINF:%_length_seconds%,$num(%track%,2). %artist% - %title%
$replace(%_folderpath%,O:\,/home/osmc/Music/,\,/)%_filename_ext%
$loopend()

Das Ergebnis sah aber genauso aus, wie in der vorigen Version

Ich glaube @ohrenkino schlägt vor:

$filename(O:\Playlist1.m3u)#EXTM3U
$loop(1)#EXTINF:%_length_seconds%,$num(%track%,2). %artist% - %title%
$replace(%_folderpath%,O:\,/home/osmc/Music/,\,/)%_filename_ext%
$loopend()

Ja, ich glaube, das war's. Zumindest sieht mein erster Export jetzt richtig sortiert aus.

Eigentlich sollte es damit die in Mp3tag eingestellte Sortierung übernehmen (bzw. nicht mehr eigenständig nach den angegebenen Kriterien sortieren).

Wo ist denn hier $loop(%track%) ersetzt durch $loop(1)?

... aber die Lösung ist ja wohl schon gefunden