Skip to main content

MusicBrainz API client which aims for fully typed results

Works with
This package works with Bun
It is unknown whether this package works with Cloudflare Workers
This package works with Node.js
This package works with Deno
This package works with Browsers
JSR Score
100%
Published
2 weeks ago (0.3.0)

MusicBrainz

MusicBrainz API client which aims for fully typed results.

Example

import { MusicBrainzClient } from "@kellnerd/musicbrainz";

const client = new MusicBrainzClient();

// Lookup a group artist by MBID and include its artist relationships.
// Type of the result is affected by the specified include parameters.
const group = await client.lookup(
  "artist",
  "83d91898-7763-47d7-b03b-b92132375c47",
  { inc: ["artist-rels"] },
);

// Find the members of the group from its relationships.
// Property `relations` only exists because a relationship include was specified.
const members = group.relations
  // Filter by type name (for illustration, ideally you should use "type-id").
  .filter((rel) => rel.type === "member of band")
  // Extract the target artist. The `artist` property is guaranteed to exist
  // and not optional because "artist-rels" is the only relationship include.
  .map((rel) => rel.artist);

console.log(members);
Built and signed on
GitHub Actions
View transparency log

Add Package

deno add @kellnerd/musicbrainz

Import symbol

import * as mod from "@kellnerd/musicbrainz";

Add Package

npx jsr add @kellnerd/musicbrainz

Import symbol

import * as mod from "@kellnerd/musicbrainz";

Add Package

yarn dlx jsr add @kellnerd/musicbrainz

Import symbol

import * as mod from "@kellnerd/musicbrainz";

Add Package

pnpm dlx jsr add @kellnerd/musicbrainz

Import symbol

import * as mod from "@kellnerd/musicbrainz";

Add Package

bunx jsr add @kellnerd/musicbrainz

Import symbol

import * as mod from "@kellnerd/musicbrainz";