梳理 Apple 与 iTunes 生态中音乐相关的数据接口
lookup 就属于 iTunes Search API 的一部分。
一、iTunes Search API(公开、无需密钥)
- 基本文档:itunes.apple.com/search 与 /lookup
- 特色:覆盖 App、音乐、影视、播客、有声书等;音乐可查曲目、专辑、艺人、MV。
- 常用端点
- 搜索:https://itunes.apple.com/search?term={关键词}&entity=song&country=cn&limit=50
- 反查(你在用):https://itunes.apple.com/lookup?id={trackId}&country=cn
- 可选参数:term、country、media、entity(song/album/musicArtist/musicVideo)、limit、offset、lang、explicit 等
- 返回要点:trackViewUrl、collectionViewUrl、artistViewUrl、previewUrl、artworkUrl100、releaseDate、primaryGenreName 等
- 优缺点:易用、覆盖广;但字段相对传统,生态偏“iTunes 时代”,与 Apple Music 新特性关联有限。
二、Apple Music API(音乐目录与个性化,需开发者密钥)
- 概览:用于访问 Apple Music 目录(Catalog API)和用户资源(Library API)。前者查全球曲库元数据,后者需用户授权。
- 认证:必须用 Apple Developer 账号生成 JWT(开发者令牌);访问用户库时还需 Music User Token。
- 目录类常用端点(均需 storefront,如 cn、us)
- 专辑:GET https://api.music.apple.com/v1/catalog/{storefront}/albums/{ids}
- 歌曲:GET https://api.music.apple.com/v1/catalog/{storefront}/songs/{ids}
- 艺人:GET https://api.music.apple.com/v1/catalog/{storefront}/artists/{ids}
- 歌单:GET https://api.music.apple.com/v1/catalog/{storefront}/playlists/{ids}
- 搜索:GET https://api.music.apple.com/v1/catalog/{storefront}/search?term=...&types=songs,albums,artists&limit=25
- 关联资源:/albums/{id}/tracks、/artists/{id}/albums、/songs/{id}/artists 等
- 返回要点:标准化 attributes(name, genreNames, releaseDate, artwork, url, previews, isrc, upc, editorialNotes, relationships 等)。
- 适用场景:更现代、字段完备、与 Apple Music 页面一致;但需要服务端签发 JWT。
三、Apple Music Web Player/JS(前端播放与用户授权)
- MusicKit JS(前端 SDK):https://js-cdn.music.apple.com/musickit/v3/musickit.js
- 能力:前端调用 Apple Music API、获用户 token、嵌入播放(须用户 Apple Music 订阅)。
- 场景:做 Web 播放器、个人资料、收藏操作等。数据仍走 Apple Music API,非独立“匿名接口”。
四、RSS Feeds(排行榜等公开聚合)
- Apple 提供公开 RSS(无需密钥),常见于 Podcast/Books/Apps;音乐的官方“Top Charts”更推荐用 Apple Music API 的 charts 端点。
- Apple Music Charts(目录 API 的一部分,需要密钥):
- GET https://api.music.apple.com/v1/catalog/{storefront}/charts?types=songs,albums&genre=14&limit=20
- 返回不同类型榜单(流行、古典等),含 rank、name、url、artwork、previews。
五、公开页面的 JSON 嵌入(不稳定、非正式)
- 一些 music.apple.com 页面会懒加载 JSON,但属于前端私有接口,不保证稳定,不建议依赖。
如何选用
- 仅需“像你示例那样”快速查基本信息、跳转链接、预览:继续用 iTunes Search/Lookup(免费、免密钥)。
- 需要更严格的字段、ISRC/UPC、与 Apple Music 页面字段一致、Charts、相互关系、跨区域对照:用 Apple Music API。
- 需要网页内播放、登录后用户库/歌单:用 MusicKit JS + Apple Music API(需开发者令牌 + 用户 token)。
示例对照
- 用 Apple Music API 查同一曲目(假设 trackId=968861895,storefront=cn):
- 先用 Search 找 ISRC 或 Apple Music 的 songs id(与 iTunes trackId 可能不同)
- GET /v1/catalog/cn/songs/{apple-music-song-id}
- 用 Charts 取中国区古典歌曲榜前 20:
- GET /v1/catalog/cn/charts?types=songs&genre=5&limit=20
- 注:genre 代码要先查 genres 资源或用搜索确认。
速查链接
- iTunes Search API 文档(Apple 官方支持页仍可搜索“iTunes Search API”)
- Apple Music API 文档与参考:https://developer.apple.com/documentation/applemusicapi
- MusicKit JS 文档:https://developer.apple.com/documentation/musickitjs
如果你愿意,我可以:
- 给你一份 curl 版 Apple Music API 的调用示例(含如何生成 JWT 的步骤)。
- 写一个把 iTunes trackId 映射到 Apple Music songs id 的小脚本流程(先 lookup 拿 ISRC,再用 Apple Music search by isrc)。