前言
在前端开发中,经常会遇到获取音乐数据需要调用 API 的问题。而 MusicBrainz 是一个开放的音乐数据库,提供了丰富的音乐信息查询服务。这里介绍使用 musicbrainz-api
npm 包,通过 API 查询音乐数据。
安装和导入
通过 npm 安装 musicbrainz-api
:
npm install musicbrainz-api
在代码中导入:
const MusicBrainzApi = require('musicbrainz-api');
查询音乐数据
musicbrainz-api
提供了多种查询方式,例如按照 artist,release,recording 等操作进行查询。
通过 artist 查询
-- -------------------- ---- ------- ----- ---------- - ------------ ----- ------ - - ---- ----------- ------ -- -- ----- ------------ - - ------- ----------- --------- -- ------------------------------- ------------- ----- ------- -- - -- ----- - ------------------- ------- - -------------------- ---展开代码
通过 release 查询
-- -------------------- ---- ------- ----- ------------ - --- ---------- ----- ------ - - ---- ------------- ------ -- -- ----- ------------ - - -------- ------------- --------- -- -------------------------------- ------------- ----- ------- -- - -- ----- - ------------------- ------- - -------------------- ---展开代码
通过 recording 查询
-- -------------------- ---- ------- ----- -------------- - --------- --------- ----- ------ - - ---- ---------- ------ -- -- ----- ------------ - - ---------- --------------- --------- -- ---------------------------------- ------------- ----- ------- -- - -- ----- - ------------------- ------- - -------------------- ---展开代码
结果解析
查询结果是一个 JSON 对象,其中包含了丰富的音乐信息。下面介绍一些常用字段的含义。
artist
-- -------------------- ---- ------- - --------- - ----- --------------------------------------- ------- -------- ------- ------------ ---------- ----- ----------------- -------- ---- ------ ------------ - -------- ---------- ------ ---- -- -------- ------ -------------------- --- ------- - - -------- --- ------- ------------ ----- - - - -展开代码
artist.id
: 此 artist 的 MBID (MusicBrainz Identifier)artist.name
: 此 artist 的名称artist.country
: 此 artist 所属国家artist.score
: 此 artist 搜索得分artist.tags
: 此 artist 的标签列表,包含name
字段(标签名称)和count
字段(此 artist 被打上该标签的次数)
release
-- -------------------- ---- ------- - ---------- - ----- --------------------------------------- -------- --- ---------- --------- ----------- ---------------- - ----- --------------------------------------- -------- --- ---------- ------- ------- -- ------- ------------- ---------- ----- ----------------- --- ---------- --------------- ------- --- ---------- ------- ------------ ------ ------ ---------------------- - ----------- ------ --------- ------ -- -------- ------ -------------------- --- ---------------- - - --------- - ----- --------------------------------------- ------- -------- ------- ------------ ------------ ------------ ----------------- -------- ---- ----- - - -- -------- - - --------- ----- ------------- -- -------------- --- --------------- - - -- --------- - - ------------ - ----- --------------------------------------- -------- --------- --------- ------ -- ----------- ---- --------- ---- --------- --------- ---------------- - - --------- - ----- --------------------------------------- ------- -------- ------- ------------ ------------ ------------ ----------------- -------- ---- ----- - - - - - - -展开代码
release.id
: 此 release 的 MBIDrelease.title
: 此 release 的名称release.release-group.title
: 此 release 所属 release-group 的名称release.date
: 此 release 的发行日期release.artist-credit
: 此 release 的 artist-credit 列表,包含所有参与制作此 release 的 artist 相关信息,例如 id、type、name 和 disambiguation 等等release.tracks
: 此 release 的 tracks 列表,包含所有 track 相关信息。每个 track 包含了 recording 相关信息(具体含义见下)
recording
-- -------------------- ---- ------- - ------------ - ----- --------------------------------------- -------- --------- --------- --------- --------- ---------------- - - --------- - ----- --------------------------------------- ------- -------- ------- ------------ ------------ ------------ ----------------- -------- ---- ----- - - -- ------- - - -------- --- ------- ------------ ----- - - - -展开代码
recording.id
: 此 recording 的 MBIDrecording.title
: 此 recording 的名称recording.length
: 此 recording 的时长,单位是毫秒recording.artist-credit
: 此 recording 的 artist-credit 列表,包含所有参与制作此 recording 的 artist 相关信息,例如 id、type、name 和 disambiguation 等等recording.tags
: 此 recording 的标签列表,包含name
字段(标签名称)和count
字段(此 recording 被打上该标签的次数)
示例代码
-- -------------------- ---- ------- ----- -------------- - --------------------------- -- ------ -- ----- ---------- - ------------ ----- ------ - - ---- ----------- ------ -- -- ----- ------------ - - ------- ----------- --------- -- ------------------------------- ------------- ----- ------- -- - -- ----- - ------------------- ------- - -------------------- --- -- ------- -- ----- ------------ - --- ---------- ----- ------ - - ---- ------------- ------ -- -- ----- ------------ - - -------- ------------- --------- -- -------------------------------- ------------- ----- ------- -- - -- ----- - ------------------- ------- - -------------------- --- -- --------- -- ----- -------------- - --------- --------- ----- ------ - - ---- ---------- ------ -- -- ----- ------------ - - ---------- --------------- --------- -- ---------------------------------- ------------- ----- ------- -- - -- ----- - ------------------- ------- - -------------------- ---展开代码
总结
本文介绍了使用 musicbrainz-api
npm 包查询音乐数据的方法,包括了多种查询方式和解析返回结果的常用字段。希望通过本文的学习,可以帮助读者更好地了解和应用音乐查询 API。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600673ddfb81d47349e53b6e