如何通过ISRC码在MusicBrainz获取曲目对应的专辑mbId?
如何通过ISRC获取曲目所属专辑的MusicBrainz ID?
我来帮你搞定这个问题~ 你遇到的情况其实是MusicBrainz API的默认行为导致的:ISRC接口返回的是**录音(Recording)层面的数据,而专辑属于发行(Release)**范畴——虽然录音和发行是关联的,但ISRC查询接口默认不会返回关联的发行信息,所以你才看不到专辑相关的元数据。
解决方法分两步走,很简单:
从ISRC响应中提取录音的mbId
你已经通过ISRC查询拿到了录音列表,比如第一个录音的ID是92e27a47-3546-4bc2-a9f7-b19e43d7a531,这个就是你要的录音唯一标识。用录音ID查询关联的发行(专辑)数据
MusicBrainz的录音API支持通过inc参数扩展返回内容,你需要指定inc=releases来获取该录音所属的所有发行(也就是专辑/单曲等)。请求格式如下:https://musicbrainz.org/ws/2/recording/92e27a47-3546-4bc2-a9f7-b19e43d7a531?fmt=json&inc=releases这个请求返回的JSON里,会有一个
releases数组,数组中的每个对象对应一个包含该录音的发行(专辑)。每个发行对象里的id字段就是你要的专辑mbId,同时你还能拿到专辑标题、发行日期、介质信息等额外数据。
小提示
如果一个录音被收录在多个发行里(比如不同地区版本的专辑、单曲发行),releases数组会包含所有相关条目。你可以通过release-group下的type字段来筛选,比如区分是“Album”还是“Single”类型的发行。
内容的提问来源于stack exchange,提问作者nick.tdr




