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¶
Package Contents¶
Classes¶
Represents a single item in a Calliope playlist. |
|
Configuration for Musicbrainz APIs. |
Functions¶
|
Annotate each item in a playlist with metadata from Musicbrainz. |
|
Resolve a cover image using the Cover Art API. |
- class calliope.musicbrainz.PlaylistItem(data=None)¶
Bases:
dict
Represents a single item in a Calliope playlist.
Initialize self. See help(type(self)) for accurate signature.
- id()¶
- __hash__()¶
Return hash(self).
- __str__()¶
Return str(self).
- add_warning(namespace, message)¶
- class calliope.musicbrainz.MusicbrainzContext(config)¶
Configuration for Musicbrainz APIs.
Keys used from
config
dict:musicbrainz.app
: App namemusicbrainz.version
: API versionmusicbrainz.contact
: Contact URL
If unset, the defaults reference Calliope and API version 1.
- Parameters
config (dict) –
- 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 astypename.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 allurl-rels
information with*.url-rels
, and all info about an artist withartist.*
.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
context (context.MusicbrainzContext) –
playlist (calliope.playlist.Playlist) –
include_patterns ([str]) –
- 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
context (context.MusicbrainzContext) –
playlist (calliope.playlist.Playlist) –
max_size (int) –