ChapterTool is a cross-platform Avalonia desktop chapter editor for importing, adjusting, combining, and exporting chapter lists from text, disc playlist, and media container sources.
- Import chapter data from text files, disc playlist formats, BDMV folders, and media containers.
- Edit chapter names and timestamps in a cross-platform Avalonia UI.
- Apply time adjustments with an expression editor that supports infix or Reverse Polish notation expressions, diagnostics, completion, and syntax highlighting.
- Calculate frame information from chapter times and frame rate settings.
- Combine supported multi-segment sources such as MPLS and IFO.
- Export chapters as
.txt,.xml,.qpf,.TimeCodes.txt,.TsMuxeR_Meta.txt,.cue,.json,.vtt, and Celltimes output. - Use the CLI to list supported formats, inspect selectable chapter groups, and convert chapter sources without launching the desktop UI.
- OGM-style text chapters:
.txt - Adobe Premiere Pro chapter marker lists:
.csv, and detected marker tables in.txt - Matroska chapter XML:
.xml - WebVTT chapter cues:
.vtt - Cue sheets and embedded cues:
.cue,.flac,.tak - Blu-ray playlists:
.mpls - Blu-ray
BDMVfolders througheac3to - DVD IFO files:
.ifo - HD-DVD playlists:
.xpl - Matroska containers through
mkvextract, with ffprobe fallback when the tool cannot be invoked:.mkv,.mka,.mks,.webm - MP4/QuickTime/media files through ffprobe:
.mp4,.m4a,.m4v,.mov,.qt,.3gp,.3g2,.asf,.wmv,.wma,.mp3,.aac,.ogg,.oga,.ogv,.opus,.wav,.nut,.aa,.aax,.ffmetadata,.ffmeta
- .NET 10 runtime for framework-dependent release builds.
- .NET 10 SDK for building from source.
ffprobefrom FFmpeg for media-container chapter import.mkvextractfrom MKVToolNix for primary Matroska chapter extraction.eac3tofor importing Blu-rayBDMVfolders.
External tool paths can be configured in the app settings. ChapterTool also searches common configured paths and platform tool locations where supported.
The Avalonia executable also exposes maintained CLI workflows. Run these from a published artifact or from the project with dotnet run --project src/ChapterTool.Avalonia --.
ChapterTool.Avalonia formats
ChapterTool.Avalonia inspect input.mpls
ChapterTool.Avalonia convert input.xml --format txt --output chapters.txt
ChapterTool.Avalonia convert input.xml --format vtt --stdout
ChapterTool.Avalonia load input.xmlformats lists the stable CLI import/export surface. inspect reports imported groups, selectable options, and diagnostics. convert supports file output, stdout output, explicit group/option selection, XML language, CUE source file name, and frame-rate override. GUI-only expression transforms are intentionally not applied by CLI conversion.
Restore, build, and test the current solution:
dotnet restore ChapterTool.Avalonia.slnx
dotnet build ChapterTool.Avalonia.slnx --no-restore
dotnet test ChapterTool.Avalonia.slnx --no-restoreThe CI workflow is .github/workflows/dotnet-ci.yml and runs on Linux with .NET 10, FFmpeg, and MKVToolNix.
Use the publish helpers for local artifacts:
./scripts/publish.sh -Runtime linux-x64
./scripts/publish.sh -Runtime osx-arm64
./scripts/publish.sh -Runtime win-x64 -SelfContainedscripts/publish.ps1 is available for Windows publishing only:
./scripts/publish.ps1 -Runtime win-x64
./scripts/publish.ps1 -Runtime win-x64 -SelfContained./scripts/publish.sh -Runtime linux-x64
./scripts/publish.sh -Runtime osx-arm64 -SelfContainedFramework-dependent artifacts are written under artifacts/publish/framework-dependent/<runtime>. Self-contained artifacts are written under artifacts/publish/self-contained/<runtime>.
The GitHub Actions publish job currently builds framework-dependent artifacts for win-x64, linux-x64, and osx-arm64.
src/ChapterTool.Core: chapter models, transformations, import contracts, and exporters.src/ChapterTool.Infrastructure: external tool discovery, process execution, settings, and infrastructure-backed importers.src/ChapterTool.Avalonia: desktop UI and runtime composition.tests/: Core, Infrastructure, and Avalonia test projects.openspec/specs/: current behavior specifications.openspec/changes/: active and archived OpenSpec changes.
- Chapters file time Editor
- BD Chapters MOD
- gMKVExtractGUI
- Chapter Grabber
- MKVToolNix
- libbluray
- BDedit
- Knuckleball
- BluRay
- IfoEdit
Distributed under the GPLv3+ license. See LICENSE for details.