Skip to content

Latest commit

 

History

History

README.md

Language Reference

Overview

VEAC (Video Editing as Code) is a declarative, non-Turing-complete domain-specific language for video editing. It compiles .veac source files into FFmpeg commands.

Design Principles

  • Declarative: Describe what the video should be, not how to process it
  • Non-Turing-complete: Variables and references only — no loops, conditionals, or recursion
  • Agent-friendly: Clear syntax and helpful errors for AI-assisted editing
  • Single source format: .veac files are the canonical representation

File Structure

my-project/
├── main.veac
├── shared.veac        # Optional: included modules
└── assets/
    ├── intro.mp4
    ├── bgm.mp3
    └── logo.png

Language Elements

A .veac file consists of top-level declarations:

Declaration Purpose Reference
project Output configuration Project
asset Media file references Assets
let Variable bindings Variables & Includes
include Module imports Variables & Includes
timeline Video composition Timeline & Tracks

Track Items

Within timelines, different track types support different items:

Item Tracks Reference
clip video, audio Clips
transition video Transitions
text text Overlays
image overlay Overlays
pip overlay Overlays
subtitle overlay Overlays
gap video, audio Overlays
freeze video Overlays

Literal Types

See Literals for time, color, and number formats.