Спецификации XSPF (xml playlist): как мне отформатировать ссылки на один или несколько сервисов musi c? - PullRequest
1 голос
/ 24 марта 2020

Я работаю над программным обеспечением musi c и хотел бы использовать спецификации XSPF , поскольку это стандарт, но есть кое-что, чего я не понимаю.
Или, может быть, это даже не существует, так как последнее обновление спецификаций ... 14 лет.

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

    <track>
        <location>http://example.com/song_1.mp3</location>
    </track>

Но что, если с моим кодом я не знаю URL исходного файла, но вместо этого я знаю ссылки на один или несколько сервисов musi c, которые могут передавать этот трек ( spotify / soundcloud / ...), в зависимости от того, что пользователь может воспроизводить?

Могу ли я, и как я могу объявить одну или несколько ссылок этого трека на сервисах musi c, в моем XSPF?

например, для той же дорожки:

https://geo.music.apple.com/be/album/_/1444279072?i=1444279073&mt=1&app=music&at=1000lHKX
https://open.spotify.com/track/6XBaTMiZa77Du2XEl1RNaa
https://www.deezer.com/track/66644816
https://music.amazon.com/albums/B082QWLFM7?trackAsin=B082QMC1C9&do=play
https://www.youtube.com/watch?v=PA3P1-aSvKQ

Может быть, это так же просто, как объявить несколько тегов местоположения ?

URI ресурса, который будет отображаться. Возможно, аудио-ресурс, но МОЖЕТ быть любым типом ресурса с хорошо известной длительностью, например, видео, документ SMIL или документ XSPF. Длительность ресурса, определенного в этом элементе, определяет продолжительность рендеринга. Элементы xspf: track МОГУТ содержать ноль или более элементов location, но пользовательский агент НЕ ДОЛЖЕН отображать более одного из названных ресурсов.

<track>
    <location>https://geo.music.apple.com/be/album/_/1444279072?i=1444279073&mt=1&app=music&at=1000lHKX</location>
    <location>https://open.spotify.com/track/6XBaTMiZa77Du2XEl1RNaa</location>
    <location>https://www.deezer.com/track/66644816</location>
    <location>https://music.amazon.com/albums/B082QWLFM7?trackAsin=B082QMC1C9&do=play</location>
    <location>https://www.youtube.com/watch?v=PA3P1-aSvKQ</location>
</track>

Или это должно быть сделано с помощью идентификатор тега ?

Канонический идентификатор для этого ресурса. Скорее всего, это имя ha sh или другое, не зависящее от местоположения, например, идентификатор MusicBrainz. ДОЛЖЕН быть юридическим URI. Элементы xspf: track МОГУТ содержать ноль или более элементов идентификатора.

Например, URI http://musicbrainz.org/track/7e1d6f5f-0ac3-4889-8b57-506a67b459fc.html является идентификатором для конкретной песни c, но разыменование этого идентификатора не приведет к копия песни.

Или с помощью тега link - это была моя первая идея, но я все меньше и меньше уверен, что она была разработана для этого?

Элемент link позволяет расширять XSPF без использования пространств имен XML. Элементы xspf: track МОГУТ содержать ноль или более элементов ссылки.

Документация не совсем очевидна.

Может кто-нибудь помочь?

Спасибо!

1 Ответ

1 голос
/ 24 марта 2020

Вы должны использовать элемент идентификатора (http://xspf.org/xspf-v1.html#rfc .section.4.1.1.2.14.1.1.1.2 ) для таких вещей, как ссылки Spotify.

Элемент info также может выполнять что вам нужно (http://xspf.org/xspf-v1.html#rfc .section.4.1.1.2.14.1.1.1.6 ), но у вас может быть только один на дорожку, поэтому вы не можете охватить более одного потокового сервиса.

Что касается многих лет, прошедших с момента последнего обновления spe c, возможно, пришло время поработать над ним. Благословенная JSON версия будет полезна.

Полезно обнаружить, что спец. c не четко передает эту информацию. В то время, когда мы писали, что spe c наиболее функционирующий Inte rnet musi c был MP3 на веб-сервере. Теперь потоковые сервисы делают свою работу. Мы могли бы исправить это с помощью обновления документации. Например, образцы списков воспроизведения на http://xspf.org/quickstart/ могут показать, как это сделать.

...