GitHub - LucasHJin/vit: Git for video editing.
Key Points
- 1Vit is a specialized version control system that applies Git principles to video editing, serializing DaVinci Resolve timelines into domain-specific JSON files for efficient tracking of edits and metadata.
- 2It enables seamless collaborative workflows by allowing different roles to work on separate timeline components, leveraging an AI-powered semantic merge to resolve complex cross-domain conflicts automatically.
- 3The system integrates directly into DaVinci Resolve with a GUI panel and utilizes AI for advanced features such as intelligent conflict resolution, post-merge validation, and descriptive commit message generation.
Vit is a novel version control system designed specifically for video editing timelines, primarily for DaVinci Resolve. It addresses the inherent challenges of collaborative video production by adapting Git-style workflows to media content, where traditional Git is ill-suited due to large binary files and complex timeline interdependencies. Instead of versioning raw media, Vit tracks timeline metadata as lightweight, human-readable JSON files, leveraging Git as its backend for core versioning operations.
The core methodology revolves around a domain-split JSON serialization of the DaVinci Resolve timeline. A custom serializer extracts various aspects of a Resolve timeline and converts them into distinct JSON files, each representing a specific domain of editorial work. These include:
cuts.json: Contains clip placements, in/out points, and transform data. Typically managed by an Editor.color.json: Stores color grading parameters per clip. Managed by a Colorist.audio.json: Encapsulates audio levels, panning, and effects. Managed by a Sound Designer.effects.json: Details video effects and transitions. Managed by an Editor or VFX artist.markers.json: Stores timeline markers and notes. Accessible by anyone.metadata.json: Holds general project settings like frame rate and resolution, less frequently changed.
This domain-split approach enables parallel collaboration among different specialists (e.g., editor, colorist, sound designer) by allowing them to work on distinct JSON files, minimizing direct merge conflicts at the Git level. Git tracks changes to these JSON files, enabling branching, committing, pushing, and pulling, similar to code development.
A key technical innovation is its AI-powered semantic merge resolution. While Git handles line-by-line conflicts within a single file, video editing timelines often present *cross-domain conflicts* (e.g., a clip deleted in cuts.json on one branch, but simultaneously color-graded in color.json on another). Vit addresses this using the Gemini API (specifically gemini-2.5-flash). When a merge operation () encounters such semantic conflicts, the AI analyzes the BASE, OURS, and THEIRS states across *all* relevant domain-split JSON files. It identifies interdependencies and proposes structured, per-domain merge decisions, complete with confidence levels. For ambiguous cases, it facilitates interactive clarification with the user. This process aims to resolve conflicts intelligently, preserving creative intent while maintaining timeline integrity.
Beyond semantic merge, Vit integrates other AI features:
- Interactive Conflict Clarification: For low-confidence AI decisions, the system prompts the user with options, then applies the chosen resolution to the JSON.
- Post-merge Validation: A rule-based validator performs checks for issues like orphaned references (e.g., a color grade without a corresponding clip), overlapping clips, audio/video sync mismatches, and speed/duration inconsistencies. These validation results feed back into the AI's prompting for more robust resolutions.
- Commit Message Suggestions: The AI can auto-generate descriptive commit messages based on the timeline diff, using video editing terminology.
- Log Summaries: Provides natural-language overviews of recent commits.
- Branch Comparison Analysis: Recommends merge strategies by analyzing differences between branches.
- Commit Classification: Automatically categorizes commits (e.g., "audio," "video," "color" changes) for better historical context.
The system is designed to degrade gracefully if the Gemini API key is not provided, with core version control functionality remaining, but advanced AI-driven features being unavailable.
Vit integrates deeply with DaVinci Resolve through a custom panel and script menu entries, allowing users to perform most daily version control operations (Pull, Save Version, Push, Switch Branch, Merge) directly within the Resolve environment. The underlying processes involve deserializing the JSON back into a Resolve timeline for display and editing.
In summary, Vit leverages Git for robust version control of abstracted timeline metadata, and employs a sophisticated AI-driven semantic merge engine to intelligently resolve complex, cross-domain conflicts inherent in collaborative video editing, thereby bridging the gap between traditional software development workflows and creative media production.