Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

407 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OpenScript

Python License PyPI Remotion FFmpeg

Turn any script into a narrated video — AI voice, subtitles, B-roll, music, done.

OpenScript output


What it does

Input Output
Markdown script MP4 video (1080p/4K)
Sections → scenes AI narration (Kokoro/Edge/OpenAI TTS)
Code blocks → syntax highlights Auto-generated subtitles (SRT/VTT)
Image refs → B-roll Background music (Suno/UDIO)
Metadata → chapters YouTube-ready chapters + description

Quick start

# Install
pipx install openscript

# Or with uv
uv tool install openscript

# First video in 60 seconds
openscript init my-video
# Edit my-video/script.md
openscript render my-video
# → my-video/output/final.mp4

Example script

---
title: "Rust Async in 3 Minutes"
voice: "af_heart"
music: "ambient-tech"
---

# Intro

Rust async isn't magic. It's a state machine.

## The Future Trait

```rust
trait Future {
    type Output;
    fn poll(self: Pin<&mut Self>, cx: &mut Context) -> Poll<Self::Output>;
}

[B-roll: rust-logo.png]

The Executor

Executors drive futures to completion. tokio::spawn polls until Ready.

[B-roll: tokio-diagram.png]


Architecture

┌─────────────┐     ┌─────────────┐     ┌─────────────┐     ┌─────────────┐
│   Script    │────▶│   Parser    │────▶│  Composer   │────▶│  Renderer   │
│  (Markdown) │     │  (AST +     │     │  (Remotion  │     │  (FFmpeg/   │
│             │     │   metadata) │     │   + TTS)    │     │   Remotion) │
└─────────────┘     └─────────────┘     └─────────────┘     └─────────────┘
                           │                   │                   │
                           ▼                   ▼                   ▼
                    Frontmatter           Scene graph         Video + audio
                    validation            composition         synchronization

Features

Category Details
TTS Kokoro (local), Edge TTS, OpenAI, ElevenLabs
Subtitles Word-level timing, style presets, multi-language
B-roll Auto-fetch from Pexels/Unsplash, local images, code animations
Music Suno, UDIO, local files, ducking under narration
Code Syntax highlighting (syntect), line-by-line reveal, terminal recording
Export MP4 (H.264/HEVC), WebM, ProRes, vertical/horizontal

Commands

Command Description
openscript init <name> Scaffold new project
openscript render <name> Full render pipeline
openscript preview <name> Fast preview (no B-roll/music)
openscript voice <name> Generate narration only
openscript subtitle <name> Generate SRT/VTT only

Visual proof

Script → Video Subtitle styling Code animation
Script to video Subtitles Code animation
B-roll integration Music ducking Chapter markers
B-roll Music Chapters

Requirements

  • Python 3.11+
  • FFmpeg 6+
  • Node.js 20+ (for Remotion)
  • 4 GB RAM minimum

License

MIT — see LICENSE.

About

AI-directed video editing pipeline — multi-track timeline, TTS, FFmpeg + Remotion rendering, 41 MCP tools, Rust workspace

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages