Python bindings for libdiscid

pip install python-libdiscid==2.0.3


libdiscid Python bindings

python-libdiscid implements Python >= 3.6 bindings for libdiscid using Cython.


  • libdiscid
  • Cython (>= 0.15, optional)
  • pkgconfig (optional)

Note that the tarballs come with pre-built C source for the Cython module. So Cython is only required if one builds python-libdiscid from the git repository or if one wants to change anything in the Cython module.

If pkgconfig is installed, uses libdiscid's pkg-config information to set include directories, libraries to link, etc.

Quick installation guide

python-libdiscid is available in some distributions:

  • Debian/Ubuntu: apt-get install python3-libdiscid (Python 3)
  • Fedora: dnf install python3-libdiscid (Python 3)

python-libdiscid can be installed via pip:

$ pip install python-libdiscid

or by running:

$ python3 install

If you just want to try it locally, run:

$ python3 build_ext -i

and hack right away. You can also run:

$ python3 build

but please make sure that build/lib.* is in sys.path before the source folder.

A note for Windows users

There are eggs available from PyPI that don't require the extension module to be built. If these are used, it is still required to drop a working discid.dll in C:\WINDOWS\system32 (or wherever it can be found).


from libdiscid import read

disc = read("/dev/cdrom")
print("id: {}".format(


python-libdiscid is released under the MIT license. Check LICENSE for details.