disc-cuer
go-disc-cuer is a Go library and CLI tool that generates CUE files from audio CDs, with metadata enrichment from GnuDB and MusicBrainz. It uses libdiscid for disc ID calculation.
go-mpd-discplayer uses go-disc-cuer as a library for automatic CUE generation during CD playback. The CLI can also be used standalone to generate or fix CUE files manually.
Features
Section titled “Features”- Disc ID calculation — uses
libdiscidto compute MusicBrainz and GnuDB compatible disc IDs. - Metadata integration — fetches track and album metadata from GnuDB or MusicBrainz.
- Fix incorrect CUE files — force a specific MusicBrainz release to correct or regenerate CUE files.
- Caching — generated CUE files are cached locally to avoid repeated lookups.
Installation
Section titled “Installation”The library is bundled into the mpd-discplayer binary — no separate installation needed for CD playback. The CLI is not included in the deb package. To use it standalone:
git clone https://github.com/b0bbywan/go-disc-cuer.gitcd go-disc-cuerInstall dependencies:
# Debiansudo apt install libdiscid0 libdiscid-dev
# Fedorasudo dnf install libdiscid libdiscid-develBuild:
go build -o disc-cuer .# Generate CUE for the current discdisc-cuer
# Force a specific MusicBrainz releasedisc-cuer --musicbrainz <release_id> --overwrite
# Custom disc ID + MusicBrainz releasedisc-cuer --disc-id <disc_id> --musicbrainz <release_id> --overwrite
# Specify a different drivedisc-cuer --device /dev/sr1| Flag | Description |
|---|---|
--overwrite | Regenerate the CUE file even if it already exists |
--musicbrainz <id> | Use a specific MusicBrainz release ID for metadata |
--disc-id <id> | Provide a custom disc ID (requires --musicbrainz) |
--device <path> | Disc drive device to read from (overrides config) |
Configuration
Section titled “Configuration”Configuration file locations (in order of precedence):
- Command-line flags (highest priority)
- Environment variables prefixed with
DISC_CUER_ ~/.config/disc-cuer/config.yaml(user-specific)/etc/disc-cuer/config.yaml(system-wide)
gnuHelloEmail: "your-email@example.com" # required for GnuDB lookupsgnuDbUrl: "https://gnudb.gnudb.org" # defaultcacheLocation: "~/.cache/disc-cuer" # CUE file cachedevice: "/dev/sr0" # default driveWhen used inside go-mpd-discplayer, all disc-cuer settings are shared from the mpd-discplayer config.