calliope.musicbrainz

Access data from Musicbrainz.

See also: cpe musicbrainz command.

This module wraps the musicbrainzngs library.

Authentication

Musicbrainz access requires that you set a User Agent string. A default is set by the MusicbrainzContext object which can be overridden using its config.

Caching

Caching of data is handled using the calliope.cache module.

Submodules

Attributes

PlaylistItem

Classes

MusicbrainzContext

Configuration for Musicbrainz APIs.

Functions

annotate(context, playlist, include_patterns[, ...])

Annotate each item in a playlist with metadata from Musicbrainz.

resolve_image(context, playlist[, max_size])

Resolve a cover image using the Cover Art API.

Package Contents

calliope.musicbrainz.PlaylistItem
class calliope.musicbrainz.MusicbrainzContext(app=None, version=None, contact=None)

Configuration for Musicbrainz APIs.

Parameters:
  • app (*) – App name

  • version (*) – API version

  • contact (*) – Contact URL

These are passed as the user agent to the musicbrainz API.

cache
calliope.musicbrainz.annotate(context, playlist, include_patterns, select_fun=None, update=False)

Annotate each item in a playlist with metadata from Musicbrainz.

The include_patterns parameter controls what subqueries are run, via the MusicBrainz include query parameter.

This parameter takes keys like areas or url-rels which cause more data to be fetched. MusicBrainz has different resource types, while in Calliope everything is a playlist item, so within Calliope we specify keys as typename.key. These are examples of different include key fullnames:

  • artist.areas

  • artist.url-rels

  • recording.url-rels

In include_patterns you can pass literal key names, and you can use * as a wildcard. For example, you can get all url-rels information with *.url-rels, and all info about an artist with artist.*.

For reference documentation of the include parameter, see: <https://musicbrainz.org/doc/MusicBrainz_API#Subqueries>.

Use calliope.includes.all_include_key_fullnames() to retrieve the full list of include keys.

Parameters:
calliope.musicbrainz.resolve_image(context, playlist, max_size=250)

Resolve a cover image using the Cover Art API.

See https://musicbrainz.org/doc/Cover_Art_Archive/API for more info.

Parameters: