OpenTimelineIO
Editorial interchange format and API
Decision gist · record as of 2026-08-14
Yes, if you work with video editing pipelines or need to interchange timeline metadata across tools. The package is actively maintained, has no runtime dependencies, and is available as prebuilt wheels for modern Python versions. The permissive Apache 2.0 license poses no restrictions. Install friction is moderate but manageable; the main consideration is whether your use case requires writing custom adapters for proprietary formats.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python >3.9.0; prebuilt wheels are available for 3.9–3.13 but older versions will require compilation.
- Medium install friction due to compiled wheels; however, prebuilt binaries are available for Python 3.9–3.13 across macOS (ARM64), Linux (x86_64, aarch64), and Windows.
- The package is actively maintained with a recent commit on 2026-08-07 and no runtime dependencies to manage.
License · maintenance · safety
Apache 2.0 License (permissive) — Licensed under Apache 2.0 (permissive), allowing commercial and private use with minimal restrictions; you must include a copy of the license and state significant changes, but there are no copyleft obligations.
last release 2025-11-09 (278 days) · last repo commit 2026-08-07 · 1,954 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 142,279 downloads/mo, #11,215 on PyPI
Alternatives
Verify before relying
pip install opentimelineio
import opentimelineio as otio
timeline = otio.schema.Timeline(name="My Edit")
print(timeline)- Whether the package includes built-in adapters for specific video editing tools or requires separate plugin installation.
- Performance characteristics when working with large or deeply nested timeline structures.
- Whether the opentime library (mentioned as dependency-less) is bundled or distributed separately.
What it is and what it does
OpenTimelineIO is a standardized format and Python library for representing editorial timeline metadata—the sequence, duration, and timing of cuts in a video edit—along with references to external media files. It is not a media container; instead, it focuses on the structural and timing information that describes how clips are arranged. The package includes both a file format specification and a plugin architecture for building adapters that convert between OTIO and proprietary formats used by video editing tools, allowing pipelines to exchange timeline data across different applications.
The library is designed for post-production workflows where editorial decisions need to be shared, versioned, or transformed across multiple tools. It provides a Python API for programmatically reading, creating, and modifying timelines, plus a dependency-less time library (opentime) for handling frame-accurate timing calculations. The package is actively maintained, supports Python 3.9–3.13, and is available as prebuilt wheels for all major platforms.
Use it for
- Convert editorial timelines between proprietary video editing formats (e.g., Premiere, Final Cut Pro) by writing adapters.
- Programmatically generate or modify video edit sequences in post-production pipelines without manual editing.
- Store and version control editorial decisions as structured metadata separate from media files.
- Build tools that analyze or report on edit structure, timing, and clip relationships.
- Integrate timeline data into asset management or VFX tracking systems.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you work with video editing pipelines or need to interchange timeline metadata across tools.
The package is actively maintained, has no runtime dependencies, and is available as prebuilt wheels for modern Python versions. The permissive Apache 2.0 license poses no restrictions. Install friction is moderate but manageable; the main consideration is whether your use case requires writing custom adapters for proprietary formats.
Install
opentimelineio on PyPI
Before you install
Medium install friction due to compiled wheels; however, prebuilt binaries are available for Python 3.9–3.13 across macOS (ARM64), Linux (x86_64, aarch64), and Windows. The package is actively maintained with a recent commit on 2026-08-07 and no runtime dependencies to manage.
Requires Python >3.9.0; prebuilt wheels are available for 3.9–3.13 but older versions will require compilation.
License in practice
Licensed under Apache 2.0 (permissive), allowing commercial and private use with minimal restrictions; you must include a copy of the license and state significant changes, but there are no copyleft obligations.
Quickstart
pip install opentimelineio
import opentimelineio as otio
timeline = otio.schema.Timeline(name="My Edit")
print(timeline)
Verify before relying
- Whether the package includes built-in adapters for specific video editing tools or requires separate plugin installation.
- Performance characteristics when working with large or deeply nested timeline structures.
- Whether the opentime library (mentioned as dependency-less) is bundled or distributed separately.
Package facts
| License | Apache 2.0 License permissive |
| Python support | Supports the current Python release >3.9.0 |
| Install friction | Medium. Platform-specific wheel |
| Runtime dependencies | None |
| Maintenance | Actively maintained 278 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 142,279 / month, #11,215 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 4 - BetaLicense :: OSI Approved :: Apache Software LicenseNatural Language :: EnglishOperating System :: OS IndependentProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.9Topic :: Multimedia :: GraphicsTopic :: Multimedia :: VideoTopic :: Multimedia :: Video :: DisplayTopic :: Multimedia :: Video :: Non-Linear EditorTopic :: Software Development :: Libraries :: Python Modules |
Evidence: opentimelineio-0.18.1-cp310-cp310-macosx_11_0_arm64.whl; opentimelineio-0.18.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl; opentimelineio-0.18.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl; opentimelineio-0.18.1-cp310-cp310-win_amd64.whl; opentimelineio-0.18.1-cp311-cp311-macosx_11_0_arm64.whl; opentimelineio-0.18.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl; opentimelineio-0.18.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl; opentimelineio-0.18.1-cp311-cp311-win_amd64.whl; opentimelineio-0.18.1-cp312-cp312-macosx_11_0_arm64.whl; opentimelineio-0.18.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl; opentimelineio-0.18.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl; opentimelineio-0.18.1-cp312-cp312-win_amd64.whl; opentimelineio-0.18.1-cp313-cp313-macosx_11_0_arm64.whl; opentimelineio-0.18.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl; opentimelineio-0.18.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl; opentimelineio-0.18.1-cp313-cp313-win_amd64.whl; opentimelineio-0.18.1-cp39-cp39-macosx_11_0_arm64.whl; opentimelineio-0.18.1-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.whl; opentimelineio-0.18.1-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl; opentimelineio-0.18.1-cp39-cp39-win_amd64.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 › “editorial timeline format”
- OpenTimelineIOOpenTimelineIO provides an interchange format and Python API for…
- icalParse, create, and iterate over iCalendar (RFC 5545) files with…
- wagtailWagtail is a Django-based content management system providing a web…
Give your agent the search over MCP, or paste the wish link into any chat.
More Python Modules 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.
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.
PyYAML parses and emits YAML 1.1 data format, enabling serialization and deserialization of configuration files and Python objects to and from human-readable YAML text.
Pydantic validates Python data structures against type hints, coercing and checking input at runtime to ensure it matches a declared schema.
Provides reusable metadata objects for use with PEP-593 `typing.Annotated` to express common constraints like bounds, collection sizes, and predicates on types.
Install it if you use or build libraries that need to express type constraints in a standardized, inspectable way—or if you want to annotate your own types with…
Provides runtime tools to inspect and introspect Python type annotations, enabling programmatic examination of type hints at execution time.
See also OpenImageIO · interchange · moviepy · openhands-aci · scenedetect · editor · mediafile · pydub · pysubs2 · django-markdownx