libdiscid package¶
libdiscid module¶
Python bindings for libdiscid
libdiscid is a library to calculate MusicBrainz Disc IDs. This module provides Python-bindings for libdiscid.
>>> disc = libdiscid.read()
>>> disc.id is not None
True
-
libdiscid.DEFAULT_DEVICE= '/dev/sr0'¶ The default device to use for
DiscId.read()on this platform.Deprecated since version 0.2.0: Please use
default_device()instead.
-
exception
libdiscid.DiscError¶ libdiscid.read()andlibdiscid.put()will raise this exception when an error occurred.
-
class
libdiscid.DiscId(cdiscid)¶ Disc information
Class holding all the information obtained from a disc.
-
property
device¶ The device the data was read from.
If it is
None,libdiscid.put()was called to create the instance.
-
property
first_track¶ Number of the first audio track.
-
property
last_track¶ Number of the last audio track.
-
property
leadout_track¶ Leadout track.
-
property
mcn¶ Media Catalogue Number of the disc.
- Raises
NotImplementedError – reading MCN is not supported on this platform
-
property
pregap¶ Pregap of the first track (in sectors).
-
property
sectors¶ Total sector count.
-
property
submission_url¶ Disc ID / TOC Submission URL for MusicBrainz
With this url you can submit the current TOC as a new MusicBrainz Disc ID.
-
property
toc¶ String representing the CD’s Table of Contents (TOC).
- Raises
ValueError – extracting TOC string from the submission URL failed
-
property
track_isrcs¶ Tuple of ISRCs of all tracks.
The first element of the list corresponds to the ISRC of the
first_trackand so on.- Raises
NotImplementedError – reading ISRCs is not supported on this platform
-
property
track_lengths¶ Tuple of all track lengths (in sectors).
The first element corresponds to the length of the track denoted by
first_trackand so on.
-
property
track_offsets¶ Tuple of all track offsets (in sectors).
The first element corresponds to the offset of the track denoted by
first_trackand so on.
-
property
webservice_url¶ The web service URL for info about the CD
With this url you can retrieve information about the CD in XML from the MusicBrainz web service.
-
property
-
libdiscid.FEATURES= ['read', 'mcn', 'isrc']¶ List of all available features supported by libdiscid on this platform.
-
libdiscid.FEATURES_MAPPING= {1: 'read', 2: 'mcn', 4: 'isrc'}¶ Mapping between the constants representing a feature and their string representation.
-
libdiscid.FEATURE_ISRC= 4¶ Read International Standard Recording Codes of all the tracks.
-
libdiscid.FEATURE_MCN= 2¶ Read the Media Catalogue Number of the disc.
-
libdiscid.FEATURE_READ= 1¶ Read the TOC of the disc to get the disc ID. This feature is always enabled.
-
libdiscid.default_device()¶ The default device on this platform.
The default device can change during the run-time of the program. This can happen with removable devices for example.
- Return type
unicode
-
libdiscid.put(first, last, sectors, offsets)¶ Creates a TOC based on the given offsets.
Takes the first and last audio track, as well as the number of sectors and a list of offsets as in
track_offsets.- Parameters
first (integer) – number of the first audio track
last (integer) – number of the last audio track
sectors (integer) – total number of sectors on the disc
offsets (list or tuple of integers) – offsets of each track
- Raises
libdiscid.DiscError – operation failed for some reason
MemoryError – failed to allocated memory to store the offsets or the internal DiscId object
- Return type
DiscIdobject
-
libdiscid.read(device=None, features=None)¶ Reads the TOC from the device given as string.
If device is
None,default_device()is used to determine the device. features can be any combination ofFEATURE_MCNandFEATURE_ISRCandFEATURE_READ. Note that prior to libdiscid version 0.5.0 features has no effect and thatFEATURE_READis always assumed, even if not given.- Parameters
device (unicode or None) – device to read from
features (integer or None) – selected features, possible values are
FEATURE_READFEATURE_MCN,FEATURE_ISRCand any of these values combined with bitwise or.
- Raises
libdiscid.DiscError – reading the disc failed
NotImplementedError – reading discs is not supported
MemoryError – failed to allocate the internal DiscId object
- Return type
DiscIdobject
-
libdiscid.sectors_to_seconds(sectors)¶ Convert sectors to seconds rounded to the nearest second.
- Parameters
sectors (integer) – number of sectors
- Return type
integer
Classes¶
-
class
libdiscid.DiscId(cdiscid)¶ Bases:
objectDisc information
Class holding all the information obtained from a disc.
-
property
device¶ The device the data was read from.
If it is
None,libdiscid.put()was called to create the instance.
-
property
first_track¶ Number of the first audio track.
-
property
last_track¶ Number of the last audio track.
-
property
leadout_track¶ Leadout track.
-
property
mcn¶ Media Catalogue Number of the disc.
- Raises
NotImplementedError – reading MCN is not supported on this platform
-
property
pregap¶ Pregap of the first track (in sectors).
-
property
sectors¶ Total sector count.
-
property
submission_url¶ Disc ID / TOC Submission URL for MusicBrainz
With this url you can submit the current TOC as a new MusicBrainz Disc ID.
-
property
toc¶ String representing the CD’s Table of Contents (TOC).
- Raises
ValueError – extracting TOC string from the submission URL failed
-
property
track_isrcs¶ Tuple of ISRCs of all tracks.
The first element of the list corresponds to the ISRC of the
first_trackand so on.- Raises
NotImplementedError – reading ISRCs is not supported on this platform
-
property
track_lengths¶ Tuple of all track lengths (in sectors).
The first element corresponds to the length of the track denoted by
first_trackand so on.
-
property
track_offsets¶ Tuple of all track offsets (in sectors).
The first element corresponds to the offset of the track denoted by
first_trackand so on.
-
property
webservice_url¶ The web service URL for info about the CD
With this url you can retrieve information about the CD in XML from the MusicBrainz web service.
-
property
Exceptions¶
-
exception
libdiscid.DiscError¶ Bases:
OSErrorlibdiscid.read()andlibdiscid.put()will raise this exception when an error occurred.