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 old versions 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.
Functions
These functions are used to create a Disc object.
- discid.read(device=None, features=[])
Reads the TOC from the device given as string and returns a
Discobject.That 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.A
DiscErrorexception is raised when the reading fails, andNotImplementedErrorwhen libdiscid doesn’t support reading discs on the current platform.
- discid.put(first, last, disc_sectors, track_offsets)
Creates a TOC based on the information given and returns a
Discobject.Takes the first track and last audio track as
int. disc_sectors is the end of the last audio track, normally the total sector count of the disc. track_offsets is a list of all audio track offsets.Depending on how you get the total sector count, you might have to substract 11400 (2:32 min.) for discs with data tracks.
A
TOCErrorexception is raised when illegal parameters are provided.See also
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().- submission_url
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.
- toc_string
The TOC suitable as value of the toc parameter 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.
- cddb_query_string
A CDDB query string suitable for querying CDDB servers.
This is a
strobject and enables generating queries to CDDB servers.See also
Added in version 1.3.
- first_track_num
Number of the first track
- last_track_num
Number of the last audio track
- sectors
Total length in sectors
- seconds
Total length in seconds
Track object
Exceptions
The discid module includes a custom exception to handle specific problems: