Skip to main content

# pymkv [![PyPI Version](https://img.shields.io/pypi/v/pymkv.svg)](https://pypi.python.org/pypi/pymkv) [![License](https://img.shields.io/github/license/sheldonkwoodward/pymkv.svg)](https://github.com/sheldonkwoodward/pymkv/LICENSE.txt) [![Code Quality](https://api.codacy.com/project/badge/Grade/e1fe077d95f74a5886c557024777c26c)](https://api.codacy.com/project/badge/Grade/e1fe077d95f74a5886c557024777c26c)

pymkv is a Python wrapper for mkvmerge and other tools in the MKVToolNix suite. It provides support for muxing, splitting, linking, chapters, tags, and attachments through the use of mkvmerge.

## About pymkv pymkv is a Python 3 library for manipulating MKV files with mkvmerge. Constructing mkvmerge commands manually can quickly become confusing and complex. To remedy this, I decided to write this library to make mkvmerge more scriptable and easier to use. Please open new issues for any bugs you find, support is greatly appreciated!

## Installation mkvmerge must be installed on your computer, it is needed to process files when creating MKV objects. It is also recommended to add it to your $PATH variable but a different path can be manually specified. mkvmerge can be found and downloaded from [here](https://mkvtoolnix.download/downloads.html) or from most package managers.

To install pymkv from PyPI, use the following command:

$ pip install pymkv

You can also clone the repo and run the following command in the project root to install the source code as editable:

$ pip install -e .

## Documentation The documentation for pymkv can be found [here](https://pymkv.shel.dev) or in the project’s docstrings.

## Roadmap pymkv was a project started a few years ago when I was first learning Python. There were a number of things that I did that could use improvement. The planned changes and future features are outlined below. Keep an eye on the [Github Projects page](https://github.com/sheldonkwoodward/pymkv/projects) for the current roadmap status.

### ~~Documentation~~ The current documentation for pymkv is lacking. Instead of manually managing a GitHub Wiki, Sphinx will be setup to automatically generate documentation from docstrings. The docstrings will also need to be updated and improved to ensure this documentation is complete.

### Tests After completing documentation for the existing features, unit tests need to be written to “lock in” the existing functionality. Generating mkvmerge commands can be complex and it is easy to subtly modify an existing feature when adding a new one. Unit tests will ensure that features remain the same and help prevent bugs in the future.

### Cleanup The existing code base could use some tidying, better commenting, debugging, and a general styling overhaul. Setting up [pre-commit](https://pre-commit.com/) and the [Black code formatter](https://github.com/psf/black) will help keep the code base more readable and maintainable.

### Features Once these first three steps are complete, pymkv will be ready to start adding new features. The goal is for pymkv to implement the functionality of mkvmerge and other MKVToolNix tools as closely as possible. New features and bugs will be added to the [GitHub issues page](https://github.com/sheldonkwoodward/pymkv/issues). As pymkv progresses through the previous steps, this roadmap will be expanded to outline new features.

Release files for pymkv 1.0.8

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

Source distribution (sdist)

Source distribution for pymkv 1.0.8
File Size Uploaded
pymkv-1.0.8.tar.gz 20.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pymkv 1.0.8
File Interpreter ABI Platform
pymkv-1.0.8-py3-none-any.whl Python 3 none any Details

Total release size: 37.8 kB

Release files / pymkv-1.0.8.tar.gz

Download URL pymkv-1.0.8.tar.gz
Size 20.6 kB
Tags Source
SHA-256 checksum
How to use checksums
194abf99a8f43eef89103c09529af6e73f9c143fe0b54fa7634d49943408442b
BLAKE2b-256 checksum
How to use checksums
77a14aaa520cc82c55c5e59184026fe88840966b403155539dff6d3fe9ad3445
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/50.3.0 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.8.6

Release files / pymkv-1.0.8-py3-none-any.whl

Download URL pymkv-1.0.8-py3-none-any.whl
Size 17.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9e0a5259e6b756057a1650968560262843441cdca19e21655a9f2d458d23b634
BLAKE2b-256 checksum
How to use checksums
9e3c14eabc8dd3cb15ba7babe672b747f8ff86dc00b812ab9edaa8e79b798dd5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/50.3.0 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.8.6

Release history Release notifications | RSS feed

This release

1.0.8 This release

2 release files

1.0.7

2 release files

1.0.6

2 release files

1.0.5

2 release files

1.0.4

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

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