rot documentation

Build energetic, platform-ready vertical videos for Instagram Reels, YouTube Shorts, and TikTok. rot combines backgrounds, dialogue, local TTS, synced captions, speaker portraits, overlays, transitions, and effects into a deterministic FFmpeg render.

Start here

  • Getting started: install prerequisites and render a first video.
  • Guides: compose clips, add captions and voices, discover moments, and publish.
  • Recipes: copyable narration, ranking, and highlight-finding projects.
  • Reference: CLI commands and the media output contract.

Repository map

  • Getting started: installation and the public workflow.
  • Recipes: copyable projects for narration, rankings, and clip discovery.
  • Architecture: rendering boundaries and extension interfaces.
  • Development: local setup and validation before a change.

Source map

Area Location Responsibility
Public API src/rot/__init__.py Stable imports exposed to application code.
Project definition src/rot/project.py, src/rot/models.py Fluent builder and validated public configuration.
Dialogue and captions src/rot/script.py, src/rot/captions.py .rot parsing, timing, ASS, and SRT generation.
Timeline and rendering src/rot/render.py, src/rot/ffmpeg.py Media preparation and safe FFmpeg graph compilation.
Media utilities src/rot/probe.py, src/rot/clips.py FFmpeg capability checks, probing, and clip discovery.
Optional integrations src/rot/integrations/ Lazy integrations for TTS, alignment, OpenRouter, and YouTube.
Publishing src/rot/publish.py Official API preflight, resumable upload, polling, and batch results.
Command line src/rot/cli.py rot command implementation.
Tests tests/ Unit coverage plus synthetic FFmpeg integration tests.

Keep user-facing examples, architecture decisions, and guides in docs/; keep generated output outside the repository. The package ships py.typed, so public type information is available to downstream type checkers.