python 3 · no dependencies · single file

.cue tracklist

Convert CD Audio CUE sheet files to clean Markdown or plain text tracklists. One script, standard library only.

$ pipx install cue2list
$ cue2lst odelay.cue md --verbose
# disc: Beck / Odelay — 16 tracks found
 
Output written to: odelay.md
 
# odelay.md
# Beck: Odelay
1. Loser - Beck
2. Hotwax - Beck
3. Where It's At - Beck
# …and 13 more

Install

Two ways to get it — install as a command, or grab the single file.

recommended

Published on PyPI. Puts the cue2lst command on your $PATH.

$ pipx install cue2list
$ cue2lst album.cue md

Latest from source: pipx install git+https://codeberg.org/elkarrde/Cue2List.

Plain pip install cue2list works too if you don’t want isolation.

No install — one script, standard library only.

$ curl -O https://codeberg.org/elkarrde/Cue2List/raw/branch/master/cue2lst.py
$ python3 cue2lst.py album.cue md

Or drop it on your $PATH — it has a shebang and is executable.

The PyPI package is cue2list; the installed command and script are cue2lst — no second “i”.

Usage

Three arguments, all positional. Run it anywhere Python 3 is available.

cuefile

CUE sheet path

Path to the input .cue file. The output is written alongside it with a new extension.

output_format

Output format

Choose the output style for the tracklist.

md txt
--verbose

Verbose mode

Prints disc performer, title, track count, and each track to stdout before writing the file.

Input → output

The parser reads the CUE header and each AUDIO track in sequence.

beck.cue
PERFORMER "Beck"
TITLE "Odelay"
FILE "CDImage.wav" WAVE
  TRACK 01 AUDIO
    TITLE "Loser"
    INDEX 01 00:00:00
  TRACK 02 AUDIO
    TITLE "Hotwax"
    INDEX 01 14:36:46
beck.md
# Beck: Odelay
 
1. Loser - Beck
2. Hotwax - Beck

CUE format supported

Standard CD Audio CUE sheets. Only AUDIO track types are parsed.

Disc-level header

PERFORMER, TITLE, and FILE directives. A missing title or performer is tolerated if FILE is present.

Per-track fields

TITLE and INDEX are required per track. PERFORMER is optional — falls back to the disc-level value.

Index timestamps

Parsed in MM:SS:FF (frames) format. Track length is not output — the last track's end cannot be derived from a CUE file alone.

One command. Any CUE sheet.

Install from PyPI with pipx, then convert anything — Markdown or plain text.

$ pipx install cue2list
$ cue2lst album.cue md