/CueParser

Simple cue file parser written in python

Primary LanguagePythonMIT LicenseMIT

PyPI version shields.io

CueParser

Simple cue file parser and generator written in python. Parser outputs cue file content in plain text. Generator can create cue file from timed tracklist.

Installation

$ pip install CueParser

Usage

usage: cueparser.py [-h] [-H HEADER] [-t TRACK] file
positional arguments:
  file                  path to cue file

optional arguments:
  -h, --help            show this help message and exit
  -H HEADER, --header HEADER
                        header output template
  -t TRACK, --track TRACK
                        track output template
usage: cuegen.py [-h] [-p PERFORMER] [-t TITLE] [-a AUDIO_FILE] [-e AUDIO_FILE_EXT] [-f FILE]
options:
  -h, --help            show this help message and exit
  -p PERFORMER, --performer PERFORMER
                        PERFORMER
  -t TITLE, --title TITLE
                        TITLE
  -a AUDIO_FILE, --audio_file AUDIO_FILE
                        FILE
  -e AUDIO_FILE_EXT, --audio_file_ext AUDIO_FILE_EXT
                        FILE EXTENSION
  -f FILE, --file FILE  path to tracklist file

Example

$ cueparser.py file.cue

will output content with such template:

  • for header: %performer% - %title%\n%file%\n%tracks% (also can be %format%, %rem%, %songwriter%)
  • for tracks: %performer% - %title% (also can be %cuetime%, %offset%, %index%, %songwriter%)

$ cuegen.py -f file.txt

will create cue file from tracklist looks like:

[00:00] Artist 1 - Title 1
[03:00] Artist 2 - Title 2
etc...

or it can generate cuesheet from audacity labels file:

0.000000    1.000000    Artist 1 - Label 1
2.500000    4.200000    Artist 2 - Label 2
6.800000    8.000000    Artist 3 - Label 3

Library example

cuesheet = CueSheet()
cuesheet.setOutputFormat(args.header, args.track)
with open(cuefile, "r") as f:
    cuesheet.setData(f.read())

cuesheet.parse()
print(cuesheet.output())