discid API
Python binding of Libdiscid
Libdiscid is a library to calculate MusicBrainz Disc IDs. This module provides a Python-like API for that functionality.
The user is expected to create a Disc object
using read() or put() and extract the generated information.
Importing this module will open libdiscid at the same time
and will raise OSError when libdiscid is not found.
Constants
At the module level there are these constants available:
- discid.LIBDISCID_VERSION_STRING
The version string of the loaded libdiscid in the form
"libdiscid x.y.z". For versions older than 0.4.0 the string is"libdiscid < 0.4.0".
- discid.FEATURES
The features libdiscid supports for the platform as a list of strings. Some functions can raise
NotImplementedErrorwhen a feature is not available. Some features might not be implemented in this Python module, seeFEATURES_IMPLEMENTED.See the libdiscid feature matrix for a list of supported features per platform.
Functions
These functions are used to create a Disc object.
- discid.read(device=None, features=None)
Reads the TOC from the device given as string and returns a
Discobject.The device string can be either of
strorbytes. However, it should in no case contain non-ASCII characters. If no device is given, a default, also given byget_default_device()is used.You can optionally add a subset of the features in
FEATURESor the whole list to read more than just the TOC. In contrast to libdiscid,read()won’t read any of the additional features by default.- Parameters:
- Raises:
DiscError – raised when reading the device fails
NotImplementedError – raised when libdiscid does not support reading discs on the current platform
- Return type:
- discid.put(first, last, disc_sectors, track_offsets)
Creates a TOC based on the information given and returns a
Discobject.Depending on how you get the total sector count, you might have to subtract 11400 (2:32 min.) for discs with data tracks.
- Parameters:
- Raises:
TOCError – raised when illegal parameters are provided
See also
- Return type:
You can get the device that is used as a default with
Disc object
- class discid.Disc
The class of the object returned by
read()orput().- property pregap: int
Pregap of the first track in sectors.
This corresponds to the offset of the first track. A pregap of 150 sectors is typical for a CD and does not indicate any intentional gap before the first track.
Added in version 1.4.
- property mcn: str | None
This is the Media Catalogue Number (MCN/UPC/EAN)
It is set after the
"mcn"feature was requested on a read and supported by the platform orNone. If set, this is astrobject.
- property submission_url: str | None
Disc ID / TOC submission URL for MusicBrainz
With this URL you can submit the current TOC as a new MusicBrainz Disc ID. This is a
strobject.
- property toc_string: str | None
The TOC suitable as value of the
tocparameter when accessing the MusicBrainz Web Service.This is a
strobject and enables fuzzy searching when the actual Disc ID is not found.Note that this is the unencoded value, which still contains spaces.
See also
Added in version 1.1.
Track object
Exceptions
The discid module includes a custom exception to handle specific problems: