{"id":13988799,"url":"https://github.com/sheldonkwoodward/pymkv","last_synced_at":"2025-06-17T06:36:24.843Z","repository":{"id":28546366,"uuid":"118408992","full_name":"sheldonkwoodward/pymkv","owner":"sheldonkwoodward","description":"A Python wrapper for mkvmerge. It provides support for muxing, splitting, linking, chapters, tags, and attachments through the use of mkvmerge.","archived":false,"fork":false,"pushed_at":"2024-05-13T07:22:25.000Z","size":130,"stargazers_count":75,"open_issues_count":15,"forks_count":27,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-13T05:13:55.196Z","etag":null,"topics":["mkvmerge","mkvtoolnix","muxer"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sheldonkwoodward.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-01-22T05:06:14.000Z","updated_at":"2025-03-19T06:18:45.000Z","dependencies_parsed_at":"2024-06-19T17:12:49.583Z","dependency_job_id":"aa22886b-0eb8-4820-adf2-cf9debb281cc","html_url":"https://github.com/sheldonkwoodward/pymkv","commit_stats":{"total_commits":98,"total_committers":5,"mean_commits":19.6,"dds":"0.061224489795918324","last_synced_commit":"3018d10b6d48d7788e9f8a26aa366c3e05960e89"},"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/sheldonkwoodward/pymkv","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sheldonkwoodward%2Fpymkv","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sheldonkwoodward%2Fpymkv/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sheldonkwoodward%2Fpymkv/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sheldonkwoodward%2Fpymkv/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sheldonkwoodward","download_url":"https://codeload.github.com/sheldonkwoodward/pymkv/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sheldonkwoodward%2Fpymkv/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260308238,"owners_count":22989807,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["mkvmerge","mkvtoolnix","muxer"],"created_at":"2024-08-09T13:01:21.999Z","updated_at":"2025-06-17T06:36:24.817Z","avatar_url":"https://github.com/sheldonkwoodward.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"# pymkv\n[![PyPI Version](https://img.shields.io/pypi/v/pymkv.svg)](https://pypi.python.org/pypi/pymkv)\n[![License](https://img.shields.io/github/license/sheldonkwoodward/pymkv.svg)](https://github.com/sheldonkwoodward/pymkv/LICENSE.txt)\n[![Code Quality](https://api.codacy.com/project/badge/Grade/e1fe077d95f74a5886c557024777c26c)](https://api.codacy.com/project/badge/Grade/e1fe077d95f74a5886c557024777c26c)\n\npymkv is a Python wrapper for mkvmerge and other tools in the MKVToolNix suite. It provides support for muxing,\nsplitting, linking, chapters, tags, and attachments through the use of mkvmerge.\n\n## About pymkv\npymkv is a Python 3 library for manipulating MKV files with mkvmerge. Constructing mkvmerge commands manually can\nquickly become confusing and complex. To remedy this, I decided to write this library to make mkvmerge more\nscriptable and easier to use. Please open new issues for any bugs you find, support is greatly appreciated!\n\n## Installation\nmkvmerge must be installed on your computer, it is needed to process files when creating MKV objects. It is also\nrecommended to add it to your $PATH variable but a different path can be manually specified. mkvmerge can be found\nand downloaded from [here](https://mkvtoolnix.download/downloads.html) or from most package managers.\n\nTo install pymkv from PyPI, use the following command:\n\n    $ pip install pymkv\n\nYou can also clone the repo and run the following command in the project root to install the source code as editable:\n\n    $ pip install -e .\n\n## Documentation\nThe documentation for pymkv can be found [here](https://pymkv.shel.dev) or in the project's docstrings.\n\n## Roadmap\npymkv was a project started a few years ago when I was first learning Python. There were a number of things that I\ndid that could use improvement. The planned changes and future features are outlined below. Keep an eye on the [Github\nProjects page](https://github.com/sheldonkwoodward/pymkv/projects) for the current roadmap status.\n\n### ~~Documentation~~\nThe current documentation for pymkv is lacking. Instead of manually managing a GitHub Wiki, Sphinx will be setup to\nautomatically generate documentation from docstrings. The docstrings will also need to be updated and improved to\nensure this documentation is complete.\n\n### Tests\nAfter completing documentation for the existing features, unit tests need to be written to \"lock in\" the existing\nfunctionality. Generating mkvmerge commands can be complex and it is easy to subtly modify an existing feature when\nadding a new one. Unit tests will ensure that features remain the same and help prevent bugs in the future.\n\n### Cleanup\nThe existing code base could use some tidying, better commenting, debugging, and a general styling overhaul. Setting up\n[pre-commit](https://pre-commit.com/) and the [Black code formatter](https://github.com/psf/black) will help keep the\ncode base more readable and maintainable.\n\n### Features\nOnce these first three steps are complete, pymkv will be ready to start adding new features. The goal is for pymkv to\nimplement the functionality of mkvmerge and other MKVToolNix tools as closely as possible. New features and bugs will\nbe added to the [GitHub issues page](https://github.com/sheldonkwoodward/pymkv/issues). As pymkv progresses through\nthe previous steps, this roadmap will be expanded to outline new features.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsheldonkwoodward%2Fpymkv","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsheldonkwoodward%2Fpymkv","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsheldonkwoodward%2Fpymkv/lists"}