Skip to main content

Split FLAC files into individual tracks based on CUE sheets

Project description

flac-cue-split

Split single-file FLAC albums into individual tracks using CUE sheets.

Perfect for Plex users: Plex and other media servers don't support CUE sheets, so albums ripped as a single FLAC file won't display individual tracks. This tool splits them into separate files with proper metadata so Plex can index each track correctly.

Features

  • Recursively searches directories for FLAC + CUE pairs
  • Automatic CUE file encoding detection (UTF-8, Latin-1, Shift-JIS, etc.)
  • Skips albums that are already split
  • Safe dry-run by default - see what would happen before committing
  • Prompts before deleting source files
  • Preserves CUE files after splitting

Requirements

  • Python 3.12+
  • ffmpeg installed and in PATH
    • Ubuntu/Debian: sudo apt install ffmpeg
    • macOS: brew install ffmpeg
    • Windows: Download from ffmpeg.org and add to PATH

Installation

# Using uv (recommended)
uv tool install flac-cue-split

# Using pipx
pipx install flac-cue-split

# Using pip
pip install flac-cue-split

Usage

# Dry run - see what would be split
flac-cue-split /path/to/music

# Actually split the files
flac-cue-split /path/to/music --execute

# Split and delete original FLAC files (prompts for each)
flac-cue-split /path/to/music --execute --delete

# Split and delete without prompts
flac-cue-split /path/to/music --execute --delete --yes

# Delete sources for already-split albums
flac-cue-split /path/to/music --delete --yes

Example Output

Found 2 album(s) in Music/

 1. The Elder Scrolls V: Skyrim - Atmospheres
    Jeremy Soule | 2 tracks | 42m 54s
    _Game OST/_Elder Scrolls/Jeremy Soule - Skyrim - Atmospheres/
    2 tracks extracted
    Delete original FLAC? [Y/n]

 2. Dark Side of the Moon
    Pink Floyd | 10 tracks | 42m 59s
    Pink Floyd/1973 - Dark Side of the Moon/
    10 tracks extracted
    Delete original FLAC? [Y/n]

Done

Output Format

Tracks are saved as {nn}. {track_name}.flac where the number is zero-padded based on total track count (e.g., 01. for <100 tracks, 001. for 100-999, etc).

Options

Option Description
--execute Actually perform the split (default is dry-run)
--delete Delete original FLAC files after splitting (prompts for confirmation)
--output, -o Output directory for split files (default: same as source)
--verbose, -v Show detailed track listings
--yes, -y Auto-confirm prompts (use with --delete)

Safety

  • Dry-run by default: Nothing is modified unless you pass --execute
  • Deletion prompts: --delete asks for confirmation unless --yes is specified
  • Error protection: Source files are kept if any extraction errors occur
  • Permanent deletion: --delete permanently removes files (not moved to trash)

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

flac_cue_split-0.1.2.tar.gz (8.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

flac_cue_split-0.1.2-py3-none-any.whl (9.1 kB view details)

Uploaded Python 3

File details

Details for the file flac_cue_split-0.1.2.tar.gz.

File metadata

  • Download URL: flac_cue_split-0.1.2.tar.gz
  • Upload date:
  • Size: 8.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.7

File hashes

Hashes for flac_cue_split-0.1.2.tar.gz
Algorithm Hash digest
SHA256 4b22e18b73ea117c0d4a57f2e8ad48797956658e8e5373590a98f2414c501d43
MD5 c9dabbd0858aa8e8ee9db6715b81f3cc
BLAKE2b-256 0ccc79f921d6c9de536591e8a8cc1bcecf9e154ea5e8afafa80a390467886b1b

See more details on using hashes here.

File details

Details for the file flac_cue_split-0.1.2-py3-none-any.whl.

File metadata

File hashes

Hashes for flac_cue_split-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 728bb6587053c0a318f8a8884b7d1afea475383c7843a9a6de919ba062483374
MD5 dcca574d20e9186a0981b96add0f5b4e
BLAKE2b-256 22c681c2c2c8f69f0d527d916e773629e6b0b4a4a73f588fec7e425e5655e355

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page