如果我在美国,我想播放Two Door Cinema Club的歌曲"Sun",我会使用ID544390857
。 我可以在(例如(systemMusicPlayer
中执行此操作,歌曲开始在 Apple Music 中播放。
如果我的朋友在英国并且想要播放同一首歌曲,将544390857
发送到 systemMusicPlayer 会导致歌曲无法识别(并且没有播放任何内容(。
该歌曲的 GB 店面等效 ID 为674900368
。
我有两个问题:
-
有没有一种简单的方法可以让我在Apple Music中播放来自另一个店面的ID(使用systemMusicPlayer(,或者我是否必须在新的第二个店面ID下重复搜索?
-
或者,有没有办法将一个歌曲 ID(即美国 ID(替换为替代(即 GB(?
感谢您提供的任何帮助!
您可以尝试使用 Apple Music API 来获取正确的信息:
(仅当您事先不知道歌曲名称时才需要第 1 步,您只知道 songId(
-
根据storeFrontCountryCode("US"(和songId(与"US"商店匹配(,您可以使用"Get song"API调用获取songName("Sun"(。
-
您需要检索用户当前店面。您可以使用requestStorefrontCountryCodeWithCompletionHandler来做到这一点(
你会得到类似"GB"的东西。
-
使用歌曲名称("太阳"(和用户storeFrontCountryCode("GB"(,我们执行"搜索目录资源"以获得正确的歌曲ID。
最终,为了防止出现歌曲名称重复的问题,您可以将艺术家姓名添加到"搜索目录资源"API 调用中。
可以使用歌曲的 isrc 属性来筛选对另一个区域中的歌曲 ID 的搜索。然后,从返回的列表中,您可以比较哪一个最匹配。(即一首歌曲可能出现在多个专辑中并具有不同的编辑(。
第一步是查询原始区域中歌曲的 isrc 属性。例如:
GET https://api.music.apple.com/v1/catalog/us/songs/544390857
然后,您将在属性字典中拥有 isrc 字符串,然后在 GB 店面中查询它:
GET https://api.music.apple.com/v1/catalog/gb/songs?filter[isrc]=XXXXXX
这种方法比按歌曲名称+艺术家姓名搜索要准确得多。
文档链接在这里:Apple Music API
我认为这是您正在寻找的API:
按 ID 获取等效目录歌曲