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
NotImplementedError
when 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
Disc
object.That string can be either of:
str
,unicode
orbytes
. 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
FEATURES
or 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
DiscError
exception is raised when the reading fails, andNotImplementedError
when 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
Disc
object.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
TOCError
exception 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
unicode
orstr
object.
-
toc_string
¶ The TOC suitable as value of the toc parameter when accessing the MusicBrainz Web Service.
This is a
unicode
orstr
object 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
New in version 1.1.
-
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:
-
exception
discid.
DiscError
¶ Bases:
exceptions.IOError
read()
will raise this exception when an error occured.
-
exception
discid.
TOCError
¶ Bases:
exceptions.Exception
put()
will raise this exception when illegal paramaters are provided.