Как создать плейлисты локальных медиафайлов, не полагаясь на пути?

Как создать плейлисты локальных медиафайлов, не полагаясь на пути?

Я хотел бы создать плейлисты локально сохраненных медиафайлов и синхронизировать эти плейлисты между моими устройствами (настольный компьютер/ноутбук/телефон). Однако есть одна важная точка трения: из-за некоторых изменений в том, как я хранил свою медиатеку на протяжении многих лет, пути к файлам не обязательно одинаковы на всех моих устройствах. Распространенные форматы файлов (например .fpl, .m3u, .pls, , .wpl), которые полагаются на точный путь к файлу, поэтому не подходят.

Почти во всех случаях местоположение, в котором находится корневой файл мультимедиа, будет отличаться на разных устройствах. Некоторые медиаплееры достаточно умны, чтобы обойти это, и просто сопоставляют суффикс файла. Например, если у меня есть D:\Music\Example Artist\Example Song.mp3в плейлисте, музыкальный проигрыватель может распознать $SOME_ANDROID_IDENTIFIER/AndroidMusic/Example Artist/Example Song.mp3как соответствующую запись. Изменить корень библиотеки также довольно просто с помощью текстового редактора, если музыкальный проигрыватель недостаточно умен.

Однако эта стратегия обычно недостаточно надежна, чтобы выжить в более сложных различиях в пути. Если вместо этого плейлист содержит D:\Music\Example Artist\Example Song.flacили D:\Music\Example Artist\Example Artist feat. Someone Else - 1-01 Example Song (2021).mp3, поиск и замена становятся намного сложнее, вплоть до того, что становятся несостоятельными для большой библиотеки.

Моим идеальным решением этой проблемы был бы формат файла, основанный на метаданных. Вместо того, чтобы содержать точный путь к файлу, он мог бы содержать что-то вроде следующего JSON:

{
  songs: [
    {
      artist: "Example Artist",
      title: "Example Song"
    }
  ]
}

Поскольку я могу гарантировать стабильность основных метаданных между перекодировками, переименованиями и копированием, это должно позволить любому медиаплееру сопоставлять предоставленные метаданные, предполагая, что он может индексировать все медиафайлы на моем устройстве.


Вопрос:Существует ли формат файла в духе того, что я описал выше? Если нет, есть ли решение для создания плейлистов без использования точных путей или поиска и замены? (В моем конкретном случае меня интересует совместимость между foobar2000 на Windows и Poweramp на Android, но решения, не использующие эти приложения, также приветствуются.)

решение1

Похоже, что лучшим существующим форматом файла, который это делает, являетсяФормат плейлиста XML, которым можно поделиться, сокращенно XSPF. К сожалению, похоже, что он не пользуется широкой поддержкой. Похоже, что он в основном используется в сообществе IPTV, но не получил широкого распространения в аудиоплеерах.

Eстьплагин для foobar2000что добавляет поддержку, но я не могу найти ничего действительно значимого для Poweramp или других музыкальных плееров на Android. Некоторые сервисы, такие как Soundiiz, похоже, имеют возможностьэкспорт в XSPFиз потоковых сервисов.

решение2

.m3u и, возможно, другие плейлисты требуютнетпуть,только имя файла,если файлы .m3u и находятся в одной папке.

Тем не менее, это, похоже, не работает дляродственникпуть к подпапкам, ни к родительской папке. [Возможно, это зависит от приложения или файловой системы; я пробовал использовать «точку», «точку-точку», прямой и обратный слеши, но безрезультатно под Windows/NTSF.]

Связанный контент