References

Requests

class mbzero.mbzrequest.MbzAddToCollection(user_agent: str, collection_mbid: str, entity_type: str, entities_mbid: List[str], client: str | None = None)

Class for adding entities to a user collection

send(credentials: MbzCredentials, opts: _OptsDict | None = None)

Format the request and send

Parameters:
  • credentials – Credentials to use for the request

  • opts – Special options to modify the request

class mbzero.mbzrequest.MbzRemoveFromCollection(user_agent: str, collection_mbid: str, entity_type: str, entities_mbid: List[str], client: str | None = None)

Class for removing entities from a user collection

send(credentials: MbzCredentials, opts: _OptsDict | None = None)

Format the request and send

Parameters:
  • credentials – Credentials to use for the request

  • opts – Special options to modify the request

class mbzero.mbzrequest.MbzRequest(user_agent: str, client: str | None = None)

Base class for requests

delete(request: str, credentials: MbzCredentials, headers: Dict[str, Any] | None = None, payload: Dict[str, Any] | None = None, opts: _OptsDict | None = None)

Send a DELETE request

Parameters:
  • request – The path from the API root URL to the ressource to request. This must include the leading ‘/’

  • credentials – Credentials to use for the request

  • headers – Additional request headers to add to the request

  • payload – Additional request parameters to add to the request

  • opts – Special options to modify the request

get(request: str, credentials: MbzCredentials | None = None, headers: Dict[str, Any] | None = None, payload: Dict[str, Any] | None = None, opts: _OptsDict | None = None)

Send a GET request

Parameters:
  • request – The path from the API root URL to the ressource to request. This must include the leading ‘/’

  • credentials – Credentials to use for the request. If not set, the request not be authenticated

  • headers – Additional request headers to add to the request

  • payload – Additional request parameters to add to the request

  • opts – Special options to modify the request

post(request: str, data: _Data, data_type: Literal['xml'], credentials: MbzCredentials, headers: Dict[str, Any] | None = None, payload: Dict[str, Any] | None = None, opts: _OptsDict | None = None)

Send a POST request

Parameters:
  • request – The path from the API root URL to the ressource to request. This must include the leading ‘/’

  • data – The content to submit

  • data_type – The content type (only “xml” is supported)

  • credentials – Credentials to use for the request

  • headers – Additional request headers to add to the request

  • payload – Additional request parameters to add to the request

  • opts – Special options to modify the request

put(request: str, credentials: MbzCredentials, headers: Dict[str, Any] | None = None, payload: Dict[str, Any] | None = None, opts: _OptsDict | None = None)

Send a PUT request

Parameters:
  • request – The path from the API root URL to the ressource to request. This must include the leading ‘/’

  • credentials – Credentials to use for the request

  • headers – Additional request headers to add to the request

  • payload – Additional request parameters to add to the request

  • opts – Special options to modify the request

set_url(url: str)

Change the API root URL

Parameters:

url – New API root URL

class mbzero.mbzrequest.MbzRequestBrowse(user_agent: str, entity_type: str, bw_entity_type: str, mbid: str, includes: List[str] = [])

Class for browse requests

send(credentials: MbzCredentials | None = None, opts: _OptsDict | None = None)

Format the request and send

Parameters:
  • credentials – Credentials to use for the request. If not set, the request not be authenticated

  • opts – Special options to modify the request

class mbzero.mbzrequest.MbzRequestLookup(user_agent: str, entity_type: str, mbid: str, includes: List[str] = [])

Class for lookup requests

send(credentials: MbzCredentials | None = None, opts: _OptsDict | None = None)

Format the request and send

Parameters:
  • credentials – Credentials to use for the request. If not set, the request not be authenticated

  • opts – Special options to modify the request

class mbzero.mbzrequest.MbzRequestSearch(user_agent: str, entity_type: str, query: str)

Class for search requests

send(credentials: MbzCredentials | None = None, opts: _OptsDict | None = None)

Format the request and send

Parameters:
  • credentials – Credentials to use for the request. If not set, the request not be authenticated

  • opts – Special options to modify the request

class mbzero.mbzrequest.MbzSubmission(user_agent: str, entity_type: str, data: _Data, data_type: Literal['xml'], client: str | None = None)

Class for submissions

send(credentials: MbzCredentials, opts: _OptsDict | None = None)

Format the submission and send

Parameters:
  • credentials – Credentials to use for the request

  • opts – Special options to modify the request

Authentication

class mbzero.mbzauth.MbzCredentials(oauth2_url: str | None = None)

Class for Musicbrainz authentication.

auth() Tuple[str | None, str | None]

Get username/password

auth_set(name: str | None, passwd: str | None)

Username/password authentication

has_auth() bool

Returns true if name/passwd credentials have been set

has_oauth2() bool

Returns true if OAuth2 has been set

oauth2_confirm(response_code: str, client_secret: str, url: str | None = None)

Confirm the authorization with the response code.

Parameters:
  • response_code – the response code given by the authentication URL

  • client_secret – client application secret

  • url – optional token endpoint (defaults to musicbrainz)

Returns:

the access token

oauth2_init(client_id: str, url: str | None = None, redirect_uri: str = 'urn:ietf:wg:oauth:2.0:oob', scope: List[str] = []) str

Initialize the creation of tokens

Parameters:
  • client_id – client application ID

  • url – optional authentification endpoint(defaults to musicbrainz)

  • redirect_uri – optional redirect URI (defaults to the redirect URI defined in the Musicbrainz documentation)

  • scope – optional Musicbrainz scope

Returns:

an authorization URL to visit

oauth2_new(token: str | None, refresh_token: str | None = None, client_id: str | None = None, client_secret: str | None = None, redirect_uri: str = 'urn:ietf:wg:oauth:2.0:oob', scope: List[str] = [])

Create a session with existing tokens

Parameters:
  • token – access token to use for authentication

  • refresh_token – refresh token to use for refreshing

  • client_id – optional client application ID

  • client_secret – optional client application secret

  • redirect_uri – optional redirect URI (defaults to the redirect URI defined in the Musicbrainz documentation)

  • scope – optional Musicbrainz scope

oauth2_refresh(refresh_token=None, url: str | None = None)

Refresh an access token.

Parameters:
  • refresh_token – optional refresh token used to refresh the access token

  • url – optional token endpoint (defaults to musicbrainz)

Returns:

the new access token

oauth2_revoke(token=None, url: str | None = None)

Revoke a token pair

Parameters:
  • token – optional token used to refresh the access token. If not provided, the current session’s access_token is revoked.

  • url – optional revocation endpoint (defaults to musicbrainz)

oauth2_set_url(url)

Change the default OAuth2 endpoint

Cover Art Archive

class mbzero.caarequest.CaaRequest(user_agent, entity_type, mbid, item_request=None)
head(request, opts=None)

Send a request

Param:

request: the request to send to the server

Parameters:

url – Optional API endpoint (defaults is musicbrainz.org API)

send(head=False, opts=None)

Format the request and send

Parameters:
  • head – use a HEAD request instead of GET

  • opts – Optional dictionary of parameters. Valid option is url, extra_headers, extra_payload

Errors

exception mbzero.mbzerror.MbzBadRequestError

Error raised when the request does not have valid and sufficient authentication for accessing the resource

exception mbzero.mbzerror.MbzError

Base class for all exceptions related to MusicBrainz.

exception mbzero.mbzerror.MbzNotFoundError

Error raised when an entity is not found

exception mbzero.mbzerror.MbzOauth2Error

OAuth2 failure

exception mbzero.mbzerror.MbzUnauthorizedError

Error raised when the request does not have valid and sufficient authentication for accessing the resource

exception mbzero.mbzerror.MbzWebServiceError

Error related to MusicBrainz API requests.