iTunes Music Store Link Maker——如何在我的应用程序中进行搜索?

Posted

技术标签:

【中文标题】iTunes Music Store Link Maker——如何在我的应用程序中进行搜索?【英文标题】:iTunes Music Store Link Maker — how to search from within my app? 【发布时间】:2010-04-14 17:45:21 【问题描述】:

我正在编写一个音乐参考应用程序,并且对于每张专辑(从 last.fm 中提取)都希望链接到 ITMS(如果专辑在商店中)。

iTunes 链接生成器网络工具 http://apple.com/itunes/linkmaker/ 非常适合获取已知专辑的链接,但我需要在我的应用程序中以编程方式访问它。

这个NSLog blogpost 是 2003 年的 referenced more recently in another question here 似乎提供了我迄今为止遇到的唯一解决方案,建议提交查询到:

phobos.apple.com/WebObjects/MZSearch.woa/wa/advancedSearchResults?

在它前面加上“itms://”,该链接将在 iTunes 中有效,在它前面加上“http://”,该链接将在 Camino 中有效(Safari 有时会返回格式错误的 XML 错误)。

重要的标签如下:

songTerm - 歌曲名称 artistTerm - 艺术家姓名 albumTerm - 专辑名称 composerTerm - 作曲家名称 术语 - 所有字段

建议使用 http:// 而不是 itms:// 服务器将返回结果的 XML 文档,而不是打开 iTunes,但无论哪种方式,我都会直接发送到 iTunes。

是否可以取回结果列表?

【问题讨论】:

【参考方案1】:

我正在使用 LinkMaker 获取有关我正在播放的歌曲的 iTunes 详细信息。 为此,我发现 LinkMaker 能够一次返回 json 数据和 1 个结果。

我正在使用这个 url 来执行我的查询:

http://ax.phobos.apple.com.edgesuite.net/WebObjects/MZStoreServices.woa/wa/itmsSearch?lang=1&output=json&country=%@&term=%@&media=%@&limit=1"

以下是您需要提供的参数:

> country : store country term : could
> contains artist name, song name, album
> media : music

例如,如果您想了解“U2”的一首名为“One”的歌曲的详细信息,这里是正确的 URL:

http://ax.phobos.apple.com.edgesuite.net/WebObjects/MZStoreServices.woa/wa/itmsSearch?lang=1&output=json&country=US&term=U2%20one&media=music&limit=1

然后你会收到这样的json数据:


 "resultCount":1,
 "results": [
"wrapperType":"track", "mediaType":"song", "artistName":"U2", "itemParentName":"Achtung Baby", "itemParentCensoredName":"Achtung Baby", "itemCensoredName":"One", "itemName":"One", "artistLinkUrl":"http://itunes.apple.com/us/artist/u2/id78500?uo=4", "artworkUrl60":"http://a1.phobos.apple.com/us/r1000/009/Features/32/9a/60/dj.mfynlttx.60x60-50.jpg", "artworkUrl100":"http://a1.phobos.apple.com/us/r1000/009/Features/32/9a/60/dj.mfynlttx.100x100-75.jpg", "country":"USA", "currency":"USD", "discCount":1, "discNumber":1, "itemExplicitness":"notExplicit", "itemLinkUrl":"http://itunes.apple.com/us/album/one/id368713?i=368617&uo=4", "itemPrice":"1.29000", "itemParentExplicitness":"notExplicit", "itemParentLinkUrl":"http://itunes.apple.com/us/album/one/id368713?i=368617&uo=4", "itemParentPrice":"9.99000", "previewUrl":"http://a1.phobos.apple.com/us/r1000/019/Music/b6/8c/c5/mzm.epegonxg.aac.p.m4a", "primaryGenreName":"Rock", "trackCount":12, "trackNumber":3, "trackTime":276042]

然后您需要解码这些 JSON 数据。

NSDictionary *jsonResultsParsed = [jsonResults JSONValue];

最后得到你想要的:

NSDictionary *songDetailsDict = [[jsonResultsParsed objectForKey:@"results"] objectAtIndex:0];

如果您想确定用户所在的国家/地区,您需要使用其语言环境来确定其国家/地区,这是我正在使用的代码:

- (NSString *)getUserCountry

    NSLocale *locale = [NSLocale currentLocale];
    return [locale objectForKey: NSLocaleCountryCode];

希望这会有所帮助。

蒂埃里

编辑:终于有一个文档可用了:

http://www.apple.com/itunes/affiliates/resources/documentation/itunes-store-web-service-search-api.html

【讨论】:

感谢这个用法示例。出于好奇,您是始终在您的应用中使用美国商店还是根据用户切换?【参考方案2】:

iTunes Store Web Service Search API (pdf) 的这份文档虽然陈旧且不完整,但似乎是实现这一目标的方法。

尽管如此,与联属网络营销计划的所有其他部分一样,设置它是一种痛苦的经历。

【讨论】:

以上是关于iTunes Music Store Link Maker——如何在我的应用程序中进行搜索?的主要内容,如果未能解决你的问题,请参考以下文章

App Store 赠送 iTunes Affiliate 链接?

使用 C# 和 Xamarin 按下 F8(播放)按钮后阻止 iTunes / Music.app 启动

如何删除iTunes / Music Library中的重复歌曲?

iTunes,iTunes Store和App Store区别

Macsome iTunes Converter for Mac如何将 Apple Music 转换为 Mac 的 MP3/AAC/WAV/FLAC/AIFF?

iTunes -- iTunes 需要多长时间来更新 Store 上新发布的应用程序版本