v0.1.0 Pre-release

The open-source video knowledge compiler.

Compile any video into deterministic, structured JSON and Markdown — giving your AI agents instant video understanding without burning tokens or wasting context window on heavy frame analysis.

View Source Code
compile.sh
$ vindex compile lecture.mp4
INFO: Extracting frames via PyAV...
INFO: Transcribing audio (faster-whisper)...
INFO: Detecting scenes & extracting OCR...
INFO: Generating VLM Captions (Qwen2-VL)...
Success! Wrote artifacts:
├── visual_memory.json
├── visual_memory.md
├── asr.json
└── ocr.json
$_

Built for AI Agents.
Designed for Engineers.

Local-First by Default

No network calls. No API keys. No data leaves your machine. Whisper, PaddleOCR, and Qwen run entirely locally.

Deterministic Output

Treat video understanding as a compilation step. The exact same video and config always produces byte-identical facts.

REST API for Agents

Built-in FastAPI server. Give your AI agents the ability to submit videos and poll for JSON results via standard HTTP calls.

CLI & Python SDK

Use the Typer-based CLI for quick extraction in bash scripts, or import the typed Python SDK into your custom RAG pipelines.

Plugin Architecture

Every extractor sits behind a shared interface. Swap Whisper for llama.cpp without forking or breaking the entire pipeline.

Versioned Schemas

JSON artifacts carry a strict schema version validated by Pydantic. Feed it directly into LLMs without fear of silent drift.

It's just Python.

Invoke the compiler from your code, get fully typed Pydantic models back. No complex async graph orchestration required.

main.py
from vindex import compile_video

# Compiles video and returns typed models
index = compile_video("lecture.mp4")

# Iterate through semantically grouped scenes
for scene in index.timeline.scenes:
    print(f"Scene: {scene.id}")
    print(f"Caption: {scene.caption}")
    
    # Access all OCR text within this scene
    for text in scene.ocr_events:
        print(f"Found text: {text.text}")