AutoVideo-Agent
Turn a Markdown script into a reproducible video pipeline — storyboard, scene assets, timeline, QA, and MP4.
Built for Codex, Claude Code, Gemini CLI and other coding-agent workflows. v0.1 is local-first and deterministic: it creates inspectable placeholder scene assets and an FFmpeg video without an API key or cloud account.
Markdown Script -> Storyboard -> Scene Manifest -> Media -> Timeline -> FFmpeg -> QA -> MP4
The default v0.1-compatible command does not claim AI video generation. v0.2 provider mode adds ComfyUI API media, while MiniMax and other hosted providers remain planned.
Demo
The demo uses examples/demo-script.md: three scenes and seven seconds.
INPUT PIPELINE OUTPUT
examples/demo-script.md -> autovideo run -> video.mp4
parse + manifest + assets manifest.json
silent WAV + FFmpeg report.json
Run it:
autovideo run examples/demo-script.md
The build is written to build/demo-script/. Open video.mp4 when FFmpeg is available. Always inspect manifest.json and report.json; without FFmpeg the command reports status: degraded and keeps the inspectable assets.
Quick Start
Install the package from PyPI:
python -m pip install autovideo-agent
To run the repository demo, clone the repository for its example script:
git clone https://github.com/wangxin6x/AutoVideo-Agent.git
cd AutoVideo-Agent
autovideo run examples/demo-script.md
The wheel contains the autovideo CLI and runtime package. examples/ is a repository fixture, so use your own Markdown script after installing from PyPI or clone the repository to run this demo.
FFmpeg is optional. With it, the output is an H.264 MP4 with a silent AAC track. Without it, scene cards, manifest, WAV timeline, and QA report are still produced.
Features
| Status | Capability | Evidence |
|---|---|---|
| ✅ Available now | Markdown storyboard parser | src/autovideo/parser.py |
| ✅ Available now | Scene manifest | manifest.json |
| ✅ Available now | Deterministic offline assets | PPM scene cards |
| ✅ Available now | Silent WAV timeline | audio-silence.wav |
| ✅ Available now | FFmpeg MP4 rendering | src/autovideo/render.py |
| ✅ Available now | Graceful degradation | report.json status |
| ✅ Available now | CLI | autovideo run <script.md> |
| ✅ Available now | QA report | report.json |
| ✅ Available now | Codex Skill / AGENTS integration | AGENTS.md and skills/auto-video/SKILL.md |
| 🧪 Experimental | ComfyUI API media provider | Implemented; API workflow submit, poll, retry, resume, and download; awaiting live validation |
| ✅ Available now | Mock and command TTS providers | Silent fallback or any local TTS CLI |
| ✅ Available now | Scene-level SRT subtitles | Timed from actual TTS audio duration |
| 🚧 Planned | MiniMax | #1 |
| 🚧 Planned | Hosted TTS integrations | OpenAI, Volcengine, and ElevenLabs |
| 🚧 Planned | Word-level subtitle alignment | #4 |
| 🚧 Planned | Real media adapters | #5 |
Architecture
flowchart LR
Script[Markdown Script] --> Parser[Script Parser]
Parser --> Storyboard[Storyboard]
Storyboard --> Manifest[Scene Manifest]
Storyboard --> Providers[Provider Interface]
Providers --> Media[Media assets]
Media --> Timeline[Timeline]
Timeline --> Renderer[Renderer]
Renderer --> QA[QA report]
QA --> MP4[MP4 output]
VideoProvider[ComfyUI Media Provider - Experimental] -. media .-> Providers
TTSProvider[Mock / Command TTS] -. audio .-> Providers
AssetProvider[Asset Provider - Planned] -. slot .-> Providers
The current renderer creates deterministic placeholder cards and a silent audio track. Provider slots are documented extension points, not shipped integrations.
ComfyUI validation status
The ComfyUI API behavior is covered by mocked integration tests, but v0.2.0-beta.1 has not yet been validated against a live ComfyUI workflow. The provider is implemented and experimental; live image/video validation is tracked in Issue #12. Do not treat it as production-ready.
Use with Codex
Read AGENTS.md for repository rules, tests, security constraints, and the development loop. Then point Codex at skills/auto-video/SKILL.md for the local storyboard workflow:
Turn examples/demo-script.md into a video and run QA. Use skills/auto-video/SKILL.md.
The real command is:
autovideo run examples/demo-script.md
QA means checking the command result plus report.json and manifest.json; there is no separate AI quality grader. This is a repository workflow, not an endorsement by Codex or any model vendor.
Roadmap
- v0.1 ✅ — Local parser, deterministic cards, silent timeline, FFmpeg MP4, degradation report, tests, and agent onboarding.
- v0.2 (this development branch) — Provider contracts, ComfyUI media, Mock/Command TTS, scene-level SRT, normalized timeline, mixed renderer, and deterministic QA. MiniMax and hosted TTS remain planned.
- v0.3 — media adapters #5, cross-platform FFmpeg #6, CI render coverage #9, more formats #10.
Community
Contributions to docs, examples, portability, and provider boundaries are welcome. Read AGENTS.md, add tests for core behavior, run python -m pytest, and review git diff --check before opening a pull request.
Development
python -m pip install -e ".[test]"
python -m pytest
The runtime has no third-party dependencies. Never commit API keys, tokens, passwords, cookies, or machine-specific paths.
中文文档
License
MIT. See LICENSE.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file autovideo_agent-0.2.0.tar.gz.
File metadata
- Download URL: autovideo_agent-0.2.0.tar.gz
- Upload date:
- Size: 26.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
327177e5a1533df4ffb7a0a06ced9df02e279a22f8c4cbf04335d2790654b696
|
|
| MD5 |
43293bda9caec3033b02d807e2b48c0a
|
|
| BLAKE2b-256 |
74fb9cb12625edd470b977c6b640190a89eb0efe9bc5f4605d25201080115ee9
|
Provenance
The following attestation bundles were made for autovideo_agent-0.2.0.tar.gz:
Publisher:
release.yml on wangxin6x/AutoVideo-Agent
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
autovideo_agent-0.2.0.tar.gz -
Subject digest:
327177e5a1533df4ffb7a0a06ced9df02e279a22f8c4cbf04335d2790654b696 - Sigstore transparency entry: 2500384286
- Sigstore integration time:
-
Permalink:
wangxin6x/AutoVideo-Agent@34591a17f64d1f1ec51542eebad52e6b9a1b07d7 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/wangxin6x
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@34591a17f64d1f1ec51542eebad52e6b9a1b07d7 -
Trigger Event:
release
-
Statement type:
File details
Details for the file autovideo_agent-0.2.0-py3-none-any.whl.
File metadata
- Download URL: autovideo_agent-0.2.0-py3-none-any.whl
- Upload date:
- Size: 24.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
95ebd149cd858fd70c3b7ccdc63f56b90ea0a241a7a95154120c0bef833096e9
|
|
| MD5 |
6063fc73ac75dec1d07c244e87bd2b2c
|
|
| BLAKE2b-256 |
8b889db6b2df74d0c16225492e404289197a732d4f74857b5c2ccfac4c0ec025
|
Provenance
The following attestation bundles were made for autovideo_agent-0.2.0-py3-none-any.whl:
Publisher:
release.yml on wangxin6x/AutoVideo-Agent
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
autovideo_agent-0.2.0-py3-none-any.whl -
Subject digest:
95ebd149cd858fd70c3b7ccdc63f56b90ea0a241a7a95154120c0bef833096e9 - Sigstore transparency entry: 2500384294
- Sigstore integration time:
-
Permalink:
wangxin6x/AutoVideo-Agent@34591a17f64d1f1ec51542eebad52e6b9a1b07d7 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/wangxin6x
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@34591a17f64d1f1ec51542eebad52e6b9a1b07d7 -
Trigger Event:
release
-
Statement type: