Skip to main content

mkv-chapter-helper - Add/update chapters in an MKV file with the ability to mix timecodes and chapter names from multiple sources

Installation

pip:

pip install mkv-chapter-helper

pipx:

pipx install mkv-chapter-helper

uv:

uv tool install mkv-chapter-helper

Description

mkv-chapter-helper allows you to choose different sources for correct timecodes and correct names for chapters to embed in an MKV file.

Supported inputs:

If you have a need for other chapter sources, they may be converted by chapterEditor.

Use Cases

You have ripped your own movie to MKV, so the timecodes are correct, but you did not want to manually write out all chapter names

  • There exists a pre-named chapters list on https://chapterdb.plex.tv/ but the timecodes do not line up
  • Download the TXT from ChapterDB and specify --names-from-ogm

Alternatively:

  • You have an MKV with no chapters, but can find them provided in a MediaInfo dump on a torrent tracker.
  • You can use --timecodes-from-mediainfo-paste and --names-from-mediainfo-paste and paste the values in the console interactively.

External Dependencies

  • mkvmerge
  • mkvpropedit

Path can be retrieved via one of the following:

  1. Supplied by --mkvextract-path and/or --mkvpropedit-path
  2. Found in PATH
  3. Defined in the environment variables MKVEXTRACT_PATH and/or MKVPROPEDIT_PATH

Options

usage: mkv-chapter-helper [-h] (-tS | -tM FILE | -tX FILE | -tC FILE | -tO FILE | -tI FILE | -tP) (-nS | -nM FILE | -nX FILE | -nC FILE | -nO FILE | -nI FILE | -nP) [--mkvpropedit-path PATH] [--mkvextract-path PATH] input

Add/modify chapters in an MKV file

positional arguments:
  input                 MKV file to be modified

options:
  -h, --help            show this help message and exit

Timecode source (one is required):
  -tS, --timecodes-from-source
                        Use timecodes from the input MKV file
  -tM, --timecodes-from-mkv FILE
                        Use timecodes from a different MKV file
  -tX, --timecodes-from-matroska-xml FILE
                        Use timecodes from a Matroska XML file
  -tC, --timecodes-from-cg-xml FILE
                        Use timecodes from a ChapterGrabber XML file
  -tO, --timecodes-from-ogm FILE
                        Use timecodes from an OGM chapter TXT file
  -tI, --timecodes-from-mediainfo-file FILE
                        Use timecodes from a MediaInfo TXT report file
  -tP, --timecodes-from-mediainfo-paste
                        Use timecodes from pasted MediaInfo menu content

Chapter name source (one is required):
  -nS, --names-from-source
                        Use chapter names from the input MKV file
  -nM, --names-from-mkv FILE
                        Use chapter names from a different MKV file
  -nX, --names-from-matroska-xml FILE
                        Use chapter names from a Matroska XML file
  -nC, --names-from-cg-xml FILE
                        Use chapter names from a ChapterGrabber XML file
  -nO, --names-from-ogm FILE
                        Use chapter names from an OGM chapter TXT file
  -nI, --names-from-mediainfo-file FILE
                        Use chapter names from a MediaInfo TXT report file
  -nP, --names-from-mediainfo-paste
                        Use chapter names from pasted MediaInfo menu content

Tool paths (optional):
  --mkvpropedit-path PATH
                        Path to the mkvpropedit executable
  --mkvextract-path PATH
                        Path to the mkvextract executable

Metadata

Release files for mkv-chapter-helper 1.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mkv-chapter-helper 1.0.1
File Size Uploaded Provenance Actions
mkv_chapter_helper-1.0.1.tar.gz 754.5 kB Without provenance Details for mkv_chapter_helper-1.0.1.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for mkv-chapter-helper 1.0.1
File Interpreter ABI Platform Actions
mkv_chapter_helper-1.0.1-py3-none-any.whl Python 3 none any Details for mkv_chapter_helper-1.0.1-py3-none-any.whl

Total release size: 763.2 kB

Release files / mkv_chapter_helper-1.0.1.tar.gz

Download URL mkv_chapter_helper-1.0.1.tar.gz
Size 754.5 kB
Tags Source
SHA-256 checksum
How to use checksums
4cf3be48402e43a45ece83a6ffa2b3a689c509ae840ffd96957d98b10aa89c0f
BLAKE2b-256 checksum
How to use checksums
af793270787aee70e3e08094a4695f4ba13f2f82a2cbcacf0dfe7ac53dd98c60
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.7.13

Release files / mkv_chapter_helper-1.0.1-py3-none-any.whl

Download URL mkv_chapter_helper-1.0.1-py3-none-any.whl
Size 8.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b495ffc2e073915ccc974b8035e59f066788f040260bda9dccfecc02b60d09fd
BLAKE2b-256 checksum
How to use checksums
756f798844b2ee9b02c2ca6794072691d0ac750605ebd5b1882e4d0daee0b3f0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.7.13

Security for mkv-chapter-helper 1.0.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page