npm 包 musicbrainz-api 使用教程

前言

在前端开发中,经常会遇到获取音乐数据需要调用 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


猜你喜欢

  • npm 包 dlink-client 使用教程

    简介 在前端开发中,使用第三方库来提高开发效率和代码质量是一种常见的做法。其中,npm 是一个非常流行的包管理工具,它允许开发者轻松地安装、更新和管理项目所需的依赖包。

    4 年前
  • npm 包 @lndgalante/r-orgchart 使用教程

    简介 @lndgalante/r-orgchart 是一个基于 React 的用于绘制组织树图的 npm 包。在前端开发中,我们通常需要绘制组织架构图以便更好的展示公司或者组织的结构、职位、人员等信息...

    4 年前
  • npm 包 @devmedoo/cerebro-basic-apps 使用教程

    在前端开发中,我们经常使用到各种 npm 包,这些包可以极大地提高我们的开发效率。本文介绍的就是一个非常实用的 npm 包:@devmedoo/cerebro-basic-apps,它可以帮助我们开发...

    4 年前
  • npm 包 json-csv-transformer 使用教程

    作为前端工程师,我们常常需要处理各种数据格式,其中 Json 和 Csv 是比较常用的两种格式。有时候我们需要将一个 Json 数据转化成 Csv 格式,或者反向操作。

    4 年前
  • npm包ng-number-formatter2使用教程

    引言 随着前端技术的飞速发展,越来越多的开发者倾向于使用现有的技术来提高开发效率。npm作为目前最流行的前端包管理工具之一,为前端开发者提供了许多方便快捷的工具和库。

    4 年前
  • npm 包 cordova-plugin-screenshot-mod 使用教程

    前言 在移动端开发中,经常需要进行截屏操作。cordova-plugin-screenshot-mod 是 Cordova 的一个插件,可以方便地实现截屏并获取截屏图片。

    4 年前
  • npm 包 probot-webhook-to-sns 使用教程

    简介 probot-webhook-to-sns 是一个 npm 包,它将 GitHub Webhook 转换成 Amazon SNS 消息,以便进一步处理和分发。

    4 年前
  • color-fromat-convert

    一个执行颜色格式转换[之间转换的工具 ColorConverter 颜色格式转换工具 Example rgb和16进制位颜色转换 ----------------------...

    4 年前
  • npm 包 usefeathers 使用教程

    前言 如果你是一个前端开发者,你可能会对使用 npm 包来管理项目依赖非常熟悉。npm 是一个非常流行的包管理器,它允许你轻松地安装、更新和删除库和工具。在这篇文章中,我们将介绍另外一个非常有用的 n...

    4 年前
  • npm 包 @tim-soft/react-dat-gui 使用教程

    在前端开发中,我们常常需要创建有交互性的用户界面,而 GUI(Graphical User Interface, 图形用户界面) 正是实现这一功能的关键所在。@tim-soft/react-dat-g...

    4 年前
  • npm 包 @raisiqueira/ng-toast-cdk 使用教程

    前言 在前端页面展示提示信息是非常常见的,为了避免重复造轮子,前端开发者们开发了很多优秀的第三方组件库。 @raisiqueira/ng-toast-cdk 是一个简单易用的 Angular Toas...

    4 年前
  • npm 包 @konfirm/isoflag 使用教程

    简介 随着 Web 开发的日益普及,前端技术愈发重要。npm 作为全球最大的软件包管理器,已成为前端界的宝藏。@konfirm/isoflag 是一个 npm 包,它能够帮助我们在一个地方定义和检索全...

    4 年前
  • npm 包 color-format-convert 使用教程

    作为前端开发者,我们经常需要涉及到调整颜色格式的需要。这可能包括将 RGB 格式转换为 HSL 或 HEX 格式,反之亦然。此时 npm 包 color-format-convert 就能够派上用场了...

    4 年前
  • npm包 promise-to-async 使用教程

    前言 JavaScript 中 async/await 已经成为了解决异步问题的标配,但是在遗留应用或者是需要进行大量数据处理的情况下,callback 和 Promise 仍然是比较常见的。

    4 年前
  • npm 包 create-cha 使用教程

    简介 create-cha 是一个用于快速创建基于 Nuxt.js 的中后台管理系统的 npm 包。它提供了一套预定义的开箱即用的管理系统,包括登录、基础表格、表单、表格编辑、错误页面以及布局等等。

    4 年前
  • npm 包 react-native-network-speed 使用教程

    简介 开发 React Native 应用的过程中,我们通常需要处理网络请求及相应的速率。npm 包 react-native-network-speed 则是一个能够统计网络请求速率的工具。

    4 年前
  • npm 包 ts-axios-rj 使用教程

    1. 什么是 ts-axios-rj? ts-axios-rj 是一个基于 TypeScript 开发的 axios 封装库,它提供了更加简洁明了的 API,让我们可以更方便地使用 axios 进行 ...

    4 年前
  • npm 包 jfa-pwa-toolkit 使用教程

    前言 jfa-pwa-toolkit 是一个基于 Progressive Web App (PWA) 的开发工具包,它能够帮助前端开发人员快速构建出高质量的 PWA 应用程序。

    4 年前
  • npm 包 @wangcch/format-currency 使用教程

    简介 无论在什么应用场景中,货币的格式化方式都很重要,如何格式化货币的显示方式已经成为了现代化计算机应用的标配。而 @wangcch/format-currency 是一个由王钦程开发的 npm 包,...

    4 年前
  • npm包ioScordova-push-plugin使用教程

    随着移动端应用的日益普及,推送消息功能也成为了现代应用的一个重要组成部分。对于移动端应用开发者来说,如何集成一个良好的推送服务是解决这个问题的关键。 在这篇文章中,我们将会介绍一种非常流行的移动端推送...

    4 年前

相关推荐

    暂无文章