npm 包 musicbrainz-api 使用教程

阅读时长 10 分钟读完

前言

在前端开发中,经常会遇到获取音乐数据需要调用 API 的问题。而 MusicBrainz 是一个开放的音乐数据库,提供了丰富的音乐信息查询服务。这里介绍使用 musicbrainz-api npm 包,通过 API 查询音乐数据。

安装和导入

通过 npm 安装 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 的 MBID
  • release.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 的 MBID
  • recording.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

纠错
反馈

纠错反馈