pymp4
Python parser for MP4 boxes
Decision gist · record as of 2026-08-14
Yes, if you need to parse or build MP4 box structures at the binary level and can tolerate dormant maintenance. The package is lightweight, has no known vulnerabilities, and uses a permissive license. Install only if you are comfortable with no active bug fixes or feature development; for production use, verify that its scope matches your MP4 variant and box types.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Low friction installation with a single runtime dependency (construct).
- The package is dormant—last commit was 2023-11-30 and no release for over 1195 days—so expect no active maintenance or bug fixes.
License · maintenance · safety
Apache-2.0 (permissive) — Apache-2.0 is permissive, allowing commercial and private use with minimal restrictions; you must include a copy of the license and state significant changes.
last release 2023-05-07 (1195 days) · last repo commit 2023-11-30 · 94 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 931,562 downloads/mo, #4,701 on PyPI
Alternatives
Verify before relying
from pymp4.parser import Box
from io import BytesIO
# Parse MP4 box from binary data
ftyp = Box.parse(b'\x00\x00\x00\x18ftypiso5\x00\x00\x00\x01iso5avc1')
print(ftyp.type, ftyp.major_brand)
# Build MP4 box from dictionary
data = Box.build(dict(type=b"ftyp", major_brand="iso5", minor_version=1, compatible_brands=["iso5", "avc1"]))- Whether the package handles all MP4 box types or only a subset of the specification.
- Current compatibility with modern MP4 variants and encoding standards beyond what the classifiers indicate.
- Whether dormancy means the package is stable and complete or abandoned and at risk of bitrot.
What it is and what it does
pymp4 is a Python parser and builder for MP4 box structures, the fundamental building blocks of MP4 files. It wraps the construct library to provide a declarative interface for reading and writing MP4 metadata boxes—the hierarchical structures that describe video codecs, audio properties, timing, and other file-level attributes. You use it to inspect what's inside an MP4 file at the binary level or to programmatically construct valid MP4 box data.
The package is lightweight and has low install friction, depending only on construct. It targets developers who need to work with MP4 internals rather than high-level video playback or encoding. The codebase is in Beta status and has been dormant since late 2023, so it is stable for its current scope but receives no active maintenance.
Use it for
- Extract codec and format metadata from MP4 files without decoding video frames.
- Validate or repair MP4 box structures in automated media processing pipelines.
- Build custom MP4 headers or metadata boxes for streaming or archival workflows.
- Inspect ftyp (file type), moov (movie), and mdat (media data) box hierarchies for debugging.
- Integrate MP4 parsing into media analysis or transcoding tools that need binary-level access.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you need to parse or build MP4 box structures at the binary level and can tolerate dormant maintenance.
The package is lightweight, has no known vulnerabilities, and uses a permissive license. Install only if you are comfortable with no active bug fixes or feature development; for production use, verify that its scope matches your MP4 variant and box types.
Install
pymp4 on PyPI
Before you install
Low friction installation with a single runtime dependency (construct). The package is dormant—last commit was 2023-11-30 and no release for over 1195 days—so expect no active maintenance or bug fixes.
License in practice
Apache-2.0 is permissive, allowing commercial and private use with minimal restrictions; you must include a copy of the license and state significant changes.
Quickstart
from pymp4.parser import Box
from io import BytesIO
# Parse MP4 box from binary data
ftyp = Box.parse(b'\x00\x00\x00\x18ftypiso5\x00\x00\x00\x01iso5avc1')
print(ftyp.type, ftyp.major_brand)
# Build MP4 box from dictionary
data = Box.build(dict(type=b"ftyp", major_brand="iso5", minor_version=1, compatible_brands=["iso5", "avc1"]))
Verify before relying
- Whether the package handles all MP4 box types or only a subset of the specification.
- Current compatibility with modern MP4 variants and encoding standards beyond what the classifiers indicate.
- Whether dormancy means the package is stable and complete or abandoned and at risk of bitrot.
Package facts
| License | Apache-2.0 permissive |
| Python support | Supports the current Python release >=3.7,<4.0 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 1 packageconstruct |
| Maintenance | Dormant 1,195 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 931,562 / month, #4,701 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 4 - BetaEnvironment :: ConsoleIntended Audience :: DevelopersLicense :: OSI Approved :: Apache Software LicenseNatural Language :: EnglishOperating System :: OS IndependentProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.7Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9Topic :: Multimedia :: Sound/AudioTopic :: Multimedia :: VideoTopic :: Utilities |
Evidence: pymp4-1.4.0-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “mp4 box parser”
- pymp4Parses and builds MP4 box structures from binary data using the…
- tinytagReads metadata (artist, title, duration, bitrate, and more) from…
- sphinxcontrib-videoA Sphinx extension that embeds HTML5 videos (.mp4, .webm, .ogg) in…
Give your agent the search over MCP, or paste the wish link into any chat.
More Utilities packages
Converts domain names between Unicode and ASCII-compatible encoding (Punycode) according to IDNA 2008 and Unicode Technical Standard 46, with security validation and broader script coverage than the standard library.
Install it if you work with internationalized domain names, need to validate domains, or use HTTP clients that depend on it transitively.
Detects and normalizes text encoding from unknown or ambiguous sources, supporting all IANA character sets that Python's core library provides codecs for, with the ability to register custom codecs.
Setuptools is a Python build backend and package management tool that handles building, distributing, and installing Python packages, including support for C/C++ extension modules.
Pluggy provides a plugin system that lets you define hook specifications and register implementations to be called in sequence, enabling extensible Python applications without tight coupling.
Install it if you're building an extensible application or framework.
Pygments is a syntax highlighter that colorizes source code and text in over 500 languages and formats, outputting to HTML, LaTeX, RTF, SVG, images, or ANSI terminal sequences.
Install it if you need to display or transform source code.
Six provides utility functions to write Python code that runs on both Python 2.7 and Python 3.3+, smoothing over language differences between the two versions.
See also construct-classes · sphinxcontrib-video · moviepy · ffmpy · dissect.cstruct · construct-typing · ffmpeg · tinytag · python-xmp-toolkit · pydub