获取库播放列表艺术品 Apple Music API
Posted
技术标签:
【中文标题】获取库播放列表艺术品 Apple Music API【英文标题】:Obtaining a Library Playlists Artwork Apple Music API 【发布时间】:2020-07-02 11:31:00 【问题描述】:我目前正在尝试读取所有用户库播放列表。我需要的是以下内容:
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...
如您所见,尽管 API 文档将艺术作品指定为属性,但艺术作品属性并不存在 (https://developer.apple.com/documentation/applemusicapi/libraryplaylist/attributes
)
我尝试使用?include=artwork
,即使它是一个属性而不是关系,但它不起作用。有什么想法可以找回艺术品吗?如果我无法从苹果音乐 API 中获得它,还有其他方法可以获得艺术品吗?我已经坚持了一段时间,因此感谢您的帮助!
【问题讨论】:
【参考方案1】:我看了一点,我认为你弄错了。文档实际上说https://api.music.apple.com/v1/me/library/playlists
的响应没有artwork
属性,看看here
您可能会在第一次呼叫的响应中找到Artwork
,并在这个https://api.music.apple.com/v1/catalog/storefront/playlists/id
中使用它,这里是doc。
【讨论】:
响应没有,但对象被列为有一个 link 这意味着理论上我应该能够检索艺术品,我也不认为目录调用会起作用,因为播放列表是库播放列表,它们不公开。 不,该属性不是必需的,因此对于某些响应,它可能不存在。还有这个page,但我看不到你是如何检索播放列表中的歌曲的 那么我怎样才能获得图书馆播放列表的艺术作品? 看来你可以在我给你的最后一个链接中添加一个名为include
的查询参数,这是一个LibraryPlaylist.Relationships
,这会给你库中歌曲的结果,并且有机会艺术品就在里面。
我的 Apple Authentication SDK 出现了一些问题,您有没有机会检查一下并尝试一下?【参考方案2】:
目前我一直在努力在 API 中获取播放列表“全局 id”,我发现有一些目录值不公开。
当我尝试为每个播放列表获取全局 id 时,有些播放列表有,有些不存在。
如果"hascatalog" = true
,就能得到所有的Json字符串值。 Incase "hascatalog" = false
即使可用,也不会公开显示。
【讨论】:
【参考方案3】:根据文档here,您只能在请求单个 LibraryPlaylist 时获得返回的曲目。您将从文档here 中看到艺术品是 LibrarySong 对象的一部分。因此,您不能一次调用 100 个播放列表的所有作品,而这似乎是您正在尝试做的事情。
解决此问题的两种方法是获取播放列表列表,然后对于每个播放列表,使用参数 include=tracks 再次调用播放列表端点。然后,您将获得作为响应的一部分的曲目列表,其中将包括艺术品。
如果您尝试进行某种海量数据抓取,这可能会导致调用过多。您还可以解析对播放列表调用的每个响应并创建曲目 ID 地图。然后向库/歌曲发送请求,一次调用最多接受 300 个曲目 ID。
目录/播放列表的文档指出,艺术品是响应的必需属性,但库/播放列表并非如此。也许这就是让你绊倒的原因。
HTH。
【讨论】:
所以我检查了响应中的艺术品是曲目的艺术品而不是播放列表以上是关于获取库播放列表艺术品 Apple Music API的主要内容,如果未能解决你的问题,请参考以下文章
如何创建一个像 Apple Music 艺术家页面上那样的融合导航栏