
Ich möchte Wiedergabelisten mit lokal gespeicherten Mediendateien erstellen und diese Wiedergabelisten zwischen meinen Geräten (Desktop/Laptop/Telefon) synchronisieren. Allerdings gibt es dabei einen großen Knackpunkt: Aufgrund einiger Änderungen an der Art und Weise, wie ich meine Medienbibliothek im Laufe der Jahre gespeichert habe, sind die Dateipfade nicht unbedingt auf allen meinen Geräten gleich. Gängige Dateiformate (z. B. .fpl
, .m3u
, .pls
, .wpl
), die auf den genauen Pfad der Datei angewiesen sind, sind daher ungeeignet.
In fast allen Fällen ist der Speicherort, an dem die Medien gespeichert sind, von Gerät zu Gerät unterschiedlich. Einige Mediaplayer sind intelligent genug, um dies zu umgehen und einfach nach dem Suffix der Datei zu suchen. Wenn ich beispielsweise „ D:\Music\Example Artist\Example Song.mp3
in der Wiedergabeliste“ habe, erkennt ein Musikplayer es möglicherweise $SOME_ANDROID_IDENTIFIER/AndroidMusic/Example Artist/Example Song.mp3
als passenden Eintrag. Das Ändern des Stammverzeichnisses der Bibliothek ist mit einem Texteditor auch relativ einfach, wenn der Musikplayer nicht intelligent genug ist.
Allerdings ist diese Strategie normalerweise nicht robust genug, um komplexere Unterschiede im Pfad zu überstehen. Wenn die Wiedergabeliste stattdessen D:\Music\Example Artist\Example Song.flac
oder enthält D:\Music\Example Artist\Example Artist feat. Someone Else - 1-01 Example Song (2021).mp3
, wird das Suchen und Ersetzen viel komplexer, bis zu dem Punkt, an dem es für eine große Bibliothek unhaltbar wird.
Meine ideale Lösung für dieses Problem wäre ein Dateiformat, das auf Metadaten basiert. Anstatt den genauen Pfad der Datei anzugeben, könnte es stattdessen etwas wie das folgende JSON enthalten:
{
songs: [
{
artist: "Example Artist",
title: "Example Song"
}
]
}
Da ich die Stabilität der grundlegenden Metadaten zwischen Neukodierungen, Umbenennungen und Kopien garantieren kann, sollte dies jedem Mediaplayer ermöglichen, die bereitgestellten Metadaten zu finden, vorausgesetzt, dass er alle Mediendateien auf meinem Gerät indizieren kann.
Die Frage:Gibt es ein Dateiformat, das dem oben beschriebenen ähnelt? Wenn nicht, gibt es eine Lösung zum Erstellen von Wiedergabelisten, ohne auf genaue Pfade oder Suchen-und-Ersetzen-Funktionen angewiesen zu sein? (In meinem speziellen Fall geht es mir um die Interoperabilität zwischen foobar2000 unter Windows und Poweramp unter Android, aber Lösungen, die diese Apps nicht verwenden, sind ebenfalls willkommen.)
Antwort1
Das beste vorhandene Dateiformat hierfür scheint dasXML-Format für gemeinsam nutzbare Wiedergabelisten, kurz XSPF. Leider scheint es nicht weithin unterstützt zu werden. Es scheint, dass es hauptsächlich in der IPTV-Community verwendet wird, aber bei Audioplayern wenig Anklang findet.
Da ist einPlugin für foobar2000das fügt Unterstützung hinzu, aber ich kann nichts wirklich Sinnvolles für Poweramp oder andere Musikplayer auf Android finden. Einige Dienste, wie Soundiiz, scheinen die Fähigkeit zu haben,nach XSPF exportierenvon Streaming-Diensten.
Antwort2
.m3u und wahrscheinlich auch andere Playlists erfordernNEINWeg,nur der Dateiname,wenn sich die .m3u- und die Dateien im selben Ordner befinden.
Das scheint jedoch nicht zu funktionieren fürrelativPfad zu Unterordnern oder zu einem übergeordneten Ordner. [Vielleicht ist dies anwendungs- oder dateisystemabhängig; ich habe versucht, unter Windows/NTSF „Punkt“, „Punkt-Punkt“, Schrägstriche und umgekehrte Schrägstriche zu verwenden, aber ohne Erfolg.]