Skip to main content

pyvedit

Python bindings for vedit — semantic version control for video timelines (OpenTimelineIO).

The PyPI package is pyvedit. The Python module is vedit.

pip install pyvedit
import vedit

repo = vedit.Repo.init("./project")

# Agent generates a timeline as an OTIO dict.
timeline = my_agent.generate(prompt="opening montage, fast cuts")
h0 = repo.commit(timeline, message="agent v0")

# Branch off and try a different approach.
repo.create_branch("alt", at="HEAD")
repo.switch_branch("alt")
alt_timeline = my_agent.generate(prompt="opening montage, slower")
h1 = repo.commit(alt_timeline, message="agent v0 — slower")

# What did the agent change between the two?
for change in repo.diff_refs("main", "alt"):
    print(change.op, change.to_dict())
# trimmed {'clip': {'name': 'shot_03', ...}, 'before': {...}, 'after': {...}}
# added {'clip': {'name': 'reaction_take_2', ...}, ...}

# Or diff two timelines directly without a repo.
changes = vedit.diff(timeline_a, timeline_b)

What it does

vedit is the snapshot, branch, diff, and merge layer for OTIO timelines. Built for AI video tools that need version control without reinventing it from scratch, and for editors who want a real edit history beyond their NLE's undo stack.

The semantic diff understands timeline operations, not byte differences:

  • Trimmed "drone_shot_04" by 1.80s (in)
  • Moved "interview_take_2" before "b_roll_03"
  • Added crossfade between "title_card" and "drone_shot_04" (12 frames)

Three-way merge produces structured conflicts (track-granular in v0.6.0; clip-granular in v0.6.1). Backed by a content-addressed object store and a commit graph; same shape as git.

API surface

# Repo lifecycle
vedit.Repo.init(path)         # create new repo
vedit.Repo.open(path)         # open at exact path
vedit.Repo.discover()         # walk up to find .vedit/

# Commit / read
repo.commit(timeline_dict, message="...", author_name=None, author_email=None)
repo.read_timeline(ref)       # returns OTIO dict
repo.read_commit(ref)         # returns commit dict
repo.resolve(ref)             # full hash from any ref

# Branches
repo.create_branch(name, at="HEAD")
repo.switch_branch(name)
repo.delete_branch(name)
repo.list_branches()          # [(name, hash), ...]
repo.current_branch()         # str or None

# History
repo.log()                    # [(hash, commit_dict), ...] from HEAD
repo.log("alt")               # from a specific ref

# Diff
repo.diff_refs("main", "alt")   # returns list of Change objects
vedit.diff(before_dict, after_dict)  # standalone, no repo

# Errors
vedit.VeditError              # all errors from the core

Links

The full README, roadmap, prior art, and architecture notes live in the GitHub repo.

Metadata

Release files for pyvedit 0.0.1

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

Source distribution (sdist)

Source distribution for pyvedit 0.0.1
File Size Uploaded
pyvedit-0.0.1.tar.gz 62.9 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for pyvedit 0.0.1
File
pyvedit-0.0.1-cp39-abi3-win_amd64.whl CPython 3.9 abi3 Windows x86-64 Details
pyvedit-0.0.1-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.9 abi3 Linux glibc 2.17+ x86-64 Details
pyvedit-0.0.1-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.9 abi3 Linux glibc 2.17+ ARM64 Details
pyvedit-0.0.1-cp39-abi3-macosx_11_0_arm64.whl CPython 3.9 abi3 macOS 11.0+ ARM64 Details

Total release size: 1.9 MB

Release files / pyvedit-0.0.1.tar.gz

Download URL pyvedit-0.0.1.tar.gz
Size 62.9 kB
Tags Source
SHA-256 checksum
How to use checksums
ac50c2b6f7912c1d339f8ac94771ec549802003c7db7fbf4ac38e1da6dfc114e
BLAKE2b-256 checksum
How to use checksums
64449e0e058e709a997709eb457e3a7d843f3a9acf542ea7f9cfae4d61e7bc19
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.13.1

Release files / pyvedit-0.0.1-cp39-abi3-win_amd64.whl

Download URL pyvedit-0.0.1-cp39-abi3-win_amd64.whl
Size 420.3 kB
Tags CPython 3.9 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
9e76d138ea992c833d423b4320b4c105c9b75f152be1bbb7c8cc32ef96e47b95
BLAKE2b-256 checksum
How to use checksums
0cd82d7d7821a185528936aa3ab82ded4dea086f0356534659221a6453a716f3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.13.1

Release files / pyvedit-0.0.1-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL pyvedit-0.0.1-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 506.6 kB
Tags CPython 3.9 Linux glibc 2.17+ x86-64 abi3
SHA-256 checksum
How to use checksums
a2c7dab42e3ee47e0700a2c095958325b7bee9e0aa74f831ec001b851556ff95
BLAKE2b-256 checksum
How to use checksums
99d2c332772fac63c676c1e1b680b2a6d07b5ebc65a2586cb1f182f8bc6dbec4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.13.1

Release files / pyvedit-0.0.1-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL pyvedit-0.0.1-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 482.3 kB
Tags CPython 3.9 Linux glibc 2.17+ ARM64 abi3
SHA-256 checksum
How to use checksums
ad328a5a999f7a5bab43d8eee79e5c455623a4f79af09b6b64a88f5597d6a423
BLAKE2b-256 checksum
How to use checksums
fde7f3b99b60c1b24d694b0d09a374137b447d04b5d18ce1f35178c2be249db4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.13.1

Release files / pyvedit-0.0.1-cp39-abi3-macosx_11_0_arm64.whl

Download URL pyvedit-0.0.1-cp39-abi3-macosx_11_0_arm64.whl
Size 459.6 kB
Tags CPython 3.9 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
df49e36a84e418b221c2875f42a2be766514cb92a296183097279be8f8cfe491
BLAKE2b-256 checksum
How to use checksums
2846fa685ed76cdf684710f6e284d08f77637fa4ce78bac66fc051027349a76a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.13.1

Release history Release notifications | RSS feed

This release

0.0.1 This release

5 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