Metadata-Version: 2.4
Name: otio-kit
Version: 0.0.2
Summary: Compile timeline briefs into files that import cleanly into DaVinci Resolve Free - no scripting bridge, no Studio required.
Author: Egnatia OC
License: AGPL-3.0-only
Project-URL: Homepage, https://github.com/Egnatia-OC/otio-kit
Keywords: opentimelineio,otio,davinci-resolve,timeline,video-editing
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: GNU Affero General Public License v3
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Multimedia :: Video :: Non-Linear Editor
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: opentimelineio<0.19,>=0.17
Requires-Dist: pyyaml>=6.0
Requires-Dist: jsonschema>=4.17
Dynamic: license-file

# otio-kit

Compile timeline briefs into files that import cleanly into **DaVinci Resolve
Free** — no scripting bridge, no Studio required.

> Not affiliated with or endorsed by Blackmagic Design. "DaVinci Resolve" is a
> trademark of Blackmagic Design Pty Ltd.

## Why

Resolve 21.1 moved Python scripting to Studio and Linux-Free has never decoded
H.264. What still works everywhere: **timeline files**. `otio-kit` compiles a
small YAML brief into OTIO that imports cleanly — verified first-party on Free
21.1 Linux, with the breakage list and safe-set published in
[`docs/fidelity-log.md`](docs/fidelity-log.md), [`docs/console-status.md`](docs/console-status.md), and
[`docs/spec-scope-v0.md`](docs/spec-scope-v0.md).

## Install

```
pip install otio-kit        # from PyPI (requires Python 3.10+)
```

Or from source:

```
git clone https://github.com/Egnatia-OC/otio-kit && cd otio-kit
uv venv --python 3.12 .venv && uv pip install --python .venv/bin/python -e .
```

## Use

```
otio-kit compile brief.yaml -o timeline.otio
otio-kit validate brief.yaml
```

Missing media fails loudly, listing every absent file in one pass. Never silent.

## Status

Alpha. The emitter covers the v0 safe-set only (see
[`docs/spec-scope-v0.md`](docs/spec-scope-v0.md)); open items and known
issues in [`KNOWN-ISSUES.md`](KNOWN-ISSUES.md). CI: ruff + pytest on Ubuntu
and Windows, Python 3.10/3.12.

The committed media under `tests/golden/media/` are empty stubs: the golden
suite proves emitter *determinism*, not import fidelity — import fidelity is
the Resolve import run documented in
[`docs/fidelity-log.md`](docs/fidelity-log.md). Regenerate the real specimen
media with `specimen/build_specimen.py` (see `specimen/BUILD.md`).

This project is not part of the OpenTimelineIO project (which it consumes).

## Licence

AGPL-3.0 — see `LICENSE`. Commercial dual licence: terms on request — open a
GitHub issue labelled `licensing`.
