Получение библиотеки плейлистов Artwork Apple Musi c API - PullRequest
6 голосов
/ 21 марта 2020

Я сейчас пытаюсь прочитать все плейлисты библиотеки пользователей. Что мне нужно, это следующее: Id, имя, описание, песни и произведения искусства. Конечная точка "https://api.music.apple.com/v1/me/library/playlists?limit=100" возвращает следующий ответ:

{
  "data": [
    {
      "id": "p.oOzAa4gIlaQaBVx",
      "type": "library-playlists",
      "href": "\/v1\/me\/library\/playlists\/p.oOzAa4gIlaQaBVx",
      "attributes": {
        "name": "Drake",
        "description": {
          "standard": "???"
        },
        "hasCatalog": true,
        "canEdit": true,
        "playParams": {
          "id": "p.oOzAa4gIlaQaBVx",
          "kind": "playlist",
          "isLibrary": true,
          "globalId": "pl.u-Zmblx9rU02m2DXJ"
        },
        "dateAdded": "2017-10-30T21:39:45Z"
      }
    },
etc...

Как вы можете видеть, атрибут Artwork не существует, несмотря на то, что в документации API указано artwork в качестве атрибута (https://developer.apple.com/documentation/applemusicapi/libraryplaylist/attributes). Я попытался использовать ?include=artwork хотя это атрибут, а не отношения, но это не сработало. Любые идеи, как я могу получить произведение искусства? Если я не могу получить его из API Apple Musi c, есть ли другой способ получить произведение искусства? Я застрял на этом некоторое время, поэтому любая помощь приветствуется!

Ответы [ 3 ]

0 голосов
/ 26 марта 2020

В настоящее время я работаю над извлечением «глобального идентификатора» плейлиста в API, обнаружил, что некоторые значения каталога недоступны в publi c.

Когда я пытался получить глобальный идентификатор для каждого списка воспроизведения, который есть у некоторых, а других не существует.
Если "hascatalog" = true, сможет получить все строковые значения Json. Incase "hascatalog" = false, даже если он доступен, не будет отображаться в publi c.

0 голосов
/ 31 марта 2020

согласно документации здесь вы можете получить треки, возвращенные только тогда, когда вы запрашиваете отдельный LibraryPlaylist. Из документации здесь вы увидите, что изображение является частью объекта LibrarySong. Таким образом, вы не можете одним вызовом получить все обложки для 100 списков воспроизведения за раз, что, по-видимому, вы пытаетесь сделать.

Двумя способами можно было бы получить список списков и Для каждого списка воспроизведения снова вызовите конечную точку списка воспроизведения, используя параметр include = дорожки. Затем вы получите список треков как часть ответа, который будет включать в себя иллюстрацию.

Это может привести к слишком большому количеству вызовов, если вы пытаетесь выполнить какую-то массовую очистку данных. Вы также можете проанализировать каждый ответ на ваш звонок в плейлисты и создать карту идентификаторов треков. Затем отправьте запрос в библиотеку / песни, который принимает до 300 идентификаторов треков за один звонок.

В документации для каталога / плейлистов говорится, что обложка является обязательным атрибутом ответа, но это не относится к библиотеке / плейлистам. Возможно, именно это вас и сбило с толку.

HTH.

0 голосов
/ 25 марта 2020

Я немного посмотрел и думаю, что вы ошибаетесь. Do c фактически говорит, что ответ https://api.music.apple.com/v1/me/library/playlists не имеет атрибута artwork, посмотрите здесь

Вы, вероятно, можете найти Artwork с ответ на ваш первый звонок и использование его в этом https://api.music.apple.com/v1/catalog/{storefront}/playlists/{id}, здесь do c.

...