Split ripped Blu-ray concert & music discs into chapter-named song files, preserving your choice of audio track without re-encoding.
A lightweight Windows utility that safely extracts and splits Blu-ray concert and music tracks without quality loss.

If DiscTrackSplitter saves you time organizing your concerts, a coffee is always appreciated ☕
- Is This For You?
- Why This Exists
- Key Features
- How It Works
- Getting Started
- Installing the External Tools
- Building a Standalone .exe
- Recovering from an Interrupted Run
- Project Layout
- Notes & Known Limitations
- Reporting Issues
- Support This Project
- License
You've ripped a Blu-ray Audio disc — a concert film, a live album, or one of the growing number of immersive-audio reissue Blu-rays — and you want it in your Plex / Jellyfin / Kodi library as individual, correctly-named song files instead of one giant feature-length file. If that's you, this tool exists for exactly that job, and nothing else.
It is not a ripping tool, a re-encoder, or a general-purpose media converter — see Notes & Known Limitations for what it deliberately doesn't do.
Sibling Project: This is a sibling project to AtmosTrackSplitter. While that tool only ever extracts the Dolby Atmos track, DiscTrackSplitter lists every audio track a playlist actually has — Atmos, TrueHD, DTS-HD Master Audio, LPCM, in whatever channel layouts (2.0 / 5.1 / 7.1) and sample rates the disc offers — and lets you pick.
Concert Blu-rays and hi-res reissue discs are usually one giant file with chapter markers per song, and often carry two or more versions of the mix — a stereo LPCM master alongside a 5.1 DTS-HD MA mix, for example.
Most existing tools either:
- Flatten or transcode the audio (losing the format you actually wanted), or
- Give you the whole disc as one file with no easy way to split it or pick a track, or
- Require you to hand-build complex
mkvmerge/ffmpegcommands per chapter.
DiscTrackSplitter automates the whole process: point it at the ripped disc folder, pick which audio track you want to keep, name the tracks (typed, pasted, imported, or looked up via text/barcode), and get one clean, bit-exact file per song.
| Feature | Description | |
|---|---|---|
| 🔍 | Auto-detects Playlist | Scans every .mpls playlist, scores candidates (Atmos presence or best available lossless track, chapter count, duration), and displays its reasoning. |
| 🎚️ | Audio Track Picker | Displays codec, channels, sample rate, bitrate, and bit depth. Pre-selects Dolby Atmos or best lossless mix automatically. |
| 🏷️ | Barcode & Text Lookup | Query MusicBrainz directly using the disc's UPC/EAN barcode or release title, with per-track match confidence shown so you can review before committing. |
| 📝 | 4 Track Naming Methods | Paste plain lists, import files (.txt, .nfo, .cue, .json), pull embedded disc chapter names, or search MusicBrainz via text or barcode. |
| 📂 | Sidecar Tracklist Detection | Automatically flags matching tracklists already sitting in your disc rip folder. |
| ⏸️ | Resumable Jobs | Progress is checkpointed to a manifest so mid-job crashes or cancels won't lose your progress. |
| 📋 | Per-Job Logging | Every run writes an extraction.log accessible with a single click. |
| ✂️ | Zero Re-encoding | Stream-copies video and chosen audio only — bit-exact audio quality with TV video playback retained. |
| 🪟 | Standalone Executable | Can be built as a clean, windowed .exe with no attached console. |
- Point the app at a folder containing a ripped disc (must have standard, unmodified
BDMV/PLAYLIST/*.mplsstructure). - Inspects every playlist via
mkvmerge -J(JSON output, chosen for stability across MKVToolNix versions), scoring candidates for the main feature and showing its reasoning. - Lists all audio tracks, pre-selecting Atmos or the best available lossless stream. Choose a different track anytime!
- Name chapters using paste, import, embedded names, or MusicBrainz lookup (via album name or barcode scanner/UPC entry).
- Extracts video + chosen audio via
mkvmerge(stream-copy, no transcoding) and splits into individual chapter files usingffmpeg.
⬇️ Download the latest release
- Download
DiscTrackSplitter.exe. - Run it — no Python installation is required.
- Install the required external tools listed below if they are not on your system
PATH.
Install the required Python packages:
pip install -r requirements.txtThen run the app:
python main.pyDiscTrackSplitter doesn't bundle mkvmerge, mkvextract, ffmpeg, or ffprobe — it shells out to them. Either of these works:
- Put them on your system
PATH. Standard installs of MKVToolNix and ffmpeg do this automatically on Windows. - Point the app at them directly. If a tool isn't found on launch, the app shows a row for it with Download and Browse... buttons — Browse lets you pick the
.exeby hand without touching your systemPATH. Picking one half of an MKVToolNix install (e.g.mkvmerge.exe) also auto-fills the other (mkvextract.exe) if it's sitting alongside it.
Paths you set this way are remembered in %USERPROFILE%\.disc_track_splitter\settings.json, so this is a one-time setup.
From a source checkout with requirements.txt installed:
build_exe.batThis runs PyInstaller (python -m PyInstaller --onefile --windowed) and produces dist\DiscTrackSplitter.exe — a single windowed executable with no attached console, using disc_track_splitter.ico as its icon.
Note that this bundles the Python app itself only — mkvmerge, mkvextract, ffmpeg, and ffprobe are not included and still need to be installed separately (see above), same as with the pre-compiled release.
Every job writes a manifest.json into its work folder as it progresses (audio extracted, which chapters have been split so far). If the app crashes, is closed, or a job is cancelled mid-run, that manifest is left in place rather than cleaned up.
Point the app at the same source/output pair again and it will detect the existing manifest and offer to resume — skipping the already-extracted audio and already-split chapters instead of starting over. This also covers retrying just the chapters that failed on a previous attempt.
If you only need to re-split an already-extracted audio file (skipping the GUI and disc scan entirely), split_now.py does that directly from the command line:
python split_now.py EXTRACTED_MKV OUTPUT_FOLDER --names-file tracks.txtPass --list-only instead of --names-file to just see the chapters in a file without splitting anything yet.
| File | Purpose |
|---|---|
main.py |
GUI entry point — the CustomTkinter application itself. |
extractor.py |
Core logic: disc scanning, playlist scoring, track extraction, chapter splitting, MusicBrainz lookups. No GUI dependencies — usable standalone. |
settings.py |
Small JSON-backed store for tool paths and last-used folders. |
split_now.py |
CLI tool for splitting an already-extracted audio file without going through the GUI. |
requirements.txt |
Python dependencies. |
DiscTrackSplitter.spec / build_exe.bat |
PyInstaller build configuration and build script for the standalone .exe. |
disc_track_splitter.ico |
Application icon, used by both the app window and the built .exe. |
- Not a ripping tool. DiscTrackSplitter works on an already-ripped, unencrypted disc folder with a standard
BDMV/PLAYLIST/*.mplsstructure. It doesn't handle disc decryption, and a flattened single-file rip won't work — theBDMV/PLAYLISTfolder needs to be intact. - No re-encoding. Video and the chosen audio track are stream-copied, never transcoded. If you want a different codec or a lossy format, that's a separate step outside this tool's scope.
- Every other audio track is dropped. Only the one audio track you pick is kept in the output files; if you want more than one mix per song, that means running the job again with a different track selected.
- Windows-focused distribution. The pre-built
.exeis Windows-only. Running from source depends only on CustomTkinter, mkvmerge, and ffmpeg, which do exist on macOS/Linux, but that path isn't officially tested or supported.
Found a bug or have a feature request? Open an issue on GitHub. The app can take you there directly from its Help menu.
If something failed mid-extraction, attach the run's extraction.log (opens with one click from the app once a job has run) — it makes tracking down the problem much faster.
DiscTrackSplitter is free and open source. If it saves you time, consider buying the author a coffee.
Released under the MIT License.
