VideoLane
Turn product workflows into publish-ready videos.
Open-source agentic video production engine for product demos, tutorials, and launch videos — turn scripts and product workflows into recorded, edited, captioned, and publish-ready video assets.
Why VideoLane
Agents should not only write scripts. They should help record, edit, package, and publish product videos.
VideoLane is a local-first tool that takes a script or production package and generates:
- A structured video plan with scenes
- Browser recording via Playwright (or dry-run/manual mode)
- Captions (SRT, VTT, JSON)
- Background audio
- Shorts cutdowns
- Thumbnail brief with text options
- YouTube metadata (title, description, tags, pinned comment)
- A packaged YouTube upload folder
How It Works
Script / production package
↓
VideoLane plan
↓
Browser recording / screen capture
↓
Captions + audio + render
↓
Shorts + thumbnail brief + metadata
↓
YouTube package
Install
npm install -g @talocode/videolane
Or run without installing:
npx @talocode/videolane@latest demo
Python:
pip install talocode-videolane
Quickstart
# Initialize a project
videolane init --template tera-tutorial --name my-video
# Generate plan from a script
videolane plan ./my-video/script.md --out ./my-video/plan.json
# Dry-run browser recording
videolane record --plan ./my-video/plan.json --dry-run
# Generate captions
videolane captions --script ./my-video/script.md --out ./my-video/captions.srt
# Generate background audio
videolane audio --duration 30 --style cinematic --out ./my-video/music.wav
# Generate YouTube metadata
videolane metadata --plan ./my-video/plan.json --title "My Video" --cta-url "https://example.com" --out-dir ./my-video/metadata
# Package for YouTube
videolane package-youtube --video ./my-video/final.mp4 --metadata-dir ./my-video/metadata --out ./my-video/youtube-package
# Run the full demo
videolane demo
Script-to-Recording Pipeline
VideoLane parses markdown scripts and production packages into structured video plans:
- Detects scenes/sections from headings
- Extracts prompts from code blocks
- Estimates duration from word count
- Generates browser action sequences
- Creates YouTube metadata drafts
videolane plan docs/video1-production-package.md --out plan.json
Browser Recording with Playwright
videolane record --plan plan.json --url https://example.com --headless
Requires Playwright:
npm install playwright
npx playwright install chromium
If Playwright is not available, VideoLane falls back to dry-run mode showing the actions that would be executed.
ffmpeg Rendering
videolane render --recording raw.mp4 --captions captions.srt --audio music.wav --out final.mp4
Features:
- H.264 + AAC encoding
- Caption burn-in
- Audio mixing
- Multiple aspect ratios (16:9, 9:16, 1:1)
Captions
videolane captions --script script.md --out captions.srt --format srt
Modes:
script: Split narration into timed captions (no API key needed)timed: Use scene timestamps from plantranscribe: Use OpenAI/Tera API (requires API key)
Background Audio
videolane audio --duration 60 --style ambient --out music.wav
Styles: ambient, cinematic, minimal, study, tech
Generated locally — no API keys needed.
Voiceover (TTS)
VideoLane generates voiceover narration from plan scenes using edge-tts.
# Generate voiceover from plan
videolane voiceover --plan plan.json --out voiceover.wav
# Render with auto voiceover (default)
videolane render --plan plan.json --out final.mp4
# Disable auto voiceover
videolane render --plan plan.json --out final.mp4 --no-voiceover
Voices: en-US-GuyNeural (default), en-US-ChristopherNeural, en-GB-RyanNeural, en-AU-WilliamNeural
Requires: pip install edge-tts
Shorts Generation
videolane shorts --video final.mp4 --plan plan.json --out-dir shorts/
Generates a shorts plan and exports clips using ffmpeg.
Thumbnail Brief
videolane thumbnail --plan plan.json --title "My Video" --style dark --out thumbnail.json
Generates:
- Thumbnail brief with text options, colors, layout
- SVG mockup
- Canva instructions
YouTube Metadata
videolane metadata --plan plan.json --title "My Video" --cta-url "https://example.com" --utm-campaign my_video --out-dir metadata/
Generates:
- Title options
- Description with UTM link
- Tags
- Pinned comment
- Chapters
- Upload checklist
YouTube Publishing Package
videolane package-youtube --video final.mp4 --metadata-dir metadata/ --out youtube-package/
Creates a folder with everything needed for manual YouTube upload.
YouTube Upload Safety
VideoLane can upload videos to YouTube, but upload actions are protected by explicit confirmation flags.
# Package only. No upload.
videolane youtube upload --video final.mp4
# Upload as unlisted.
videolane youtube upload --video final.mp4 --confirm-upload
# Public upload requires an extra confirmation.
videolane youtube upload --video final.mp4 --confirm-upload --privacy public --confirm-public
# Preview only.
videolane youtube upload --video final.mp4 --dry-run
Safety model:
| Command | What happens |
|---|---|
videolane youtube upload --video v.mp4 |
Package only — no upload |
videolane youtube upload --video v.mp4 --confirm-upload |
Upload as unlisted |
videolane youtube upload --video v.mp4 --confirm-upload --privacy public |
Blocked — needs --confirm-public |
videolane youtube upload --video v.mp4 --confirm-upload --privacy public --confirm-public |
Upload as public |
Setup:
- Enable YouTube Data API in Google Cloud Console
- Create OAuth 2.0 credentials (Desktop app type)
- Run OAuth flow to get refresh token
- Save as
youtube-credentials.jsonin project or~/.videolane/
Credentials are auto-discovered from:
--credentials <path>flag~/.videolane/youtube-credentials.json/workspace/.youtube-credentials.jsonYOUTUBE_CREDENTIALS_PATHenv var
Templates
videolane init --template product-demo --name demo
videolane init --template youtube-tutorial --name tutorial
videolane init --template launch-video --name launch
videolane init --template shorts-demo --name shorts
videolane init --template tera-tutorial --name tera
CLI Commands
| Command | Description |
|---|---|
videolane init |
Initialize a new project |
videolane plan |
Generate plan from script |
videolane record |
Record browser actions |
videolane capture |
Capture screen/browser |
videolane render |
Render video with ffmpeg |
videolane voiceover |
Generate TTS voiceover |
videolane captions |
Generate captions |
videolane audio |
Generate background audio |
videolane shorts |
Generate shorts cutdowns |
videolane thumbnail |
Generate thumbnail brief |
videolane metadata |
Generate YouTube metadata |
videolane package-youtube |
Package for YouTube |
videolane youtube upload |
Upload to YouTube (safe, requires confirmation) |
videolane demo |
Run deterministic demo |
videolane doctor |
Check dependencies |
videolane serve |
Start API server |
videolane mcp |
Start MCP server |
videolane config |
Manage configuration |
SDK
import { VideoLaneClient } from "@talocode/videolane";
const client = new VideoLaneClient();
const { project, plan } = await client.initProject({ name: "demo" });
const result = await client.plan({ path: "./script.md" });
const captions = await client.generateCaptions({ script: "./script.md", out: "./captions.srt" });
API
videolane serve --port 3110
# Health check
curl http://localhost:3110/health
# Generate plan
curl -X POST http://localhost:3110/v1/videolane/plan \
-H "Content-Type: application/json" \
-d '{"input": "./script.md"}'
MCP Tools
VideoLane provides MCP tools for AI agents:
videolane_plan— Generate video planvideolane_record_browser— Record browser actionsvideolane_render— Render videovideolane_generate_captions— Generate captionsvideolane_generate_audio— Generate background audiovideolane_generate_shorts— Generate shorts planvideolane_generate_thumbnail— Generate thumbnail briefvideolane_generate_metadata— Generate YouTube metadatavideolane_package_youtube— Package for YouTubevideolane_youtube_upload— Upload to YouTube (safe, requires confirmation)videolane_doctor— Check environmentvideolane_demo— Run demo
Python Package
pip install talocode-videolane
videolane-py demo
videolane-py plan --input script.md
videolane-py metadata --plan plan.json --title "My Video"
Integrations
- Playwright — Browser recording (optional)
- ffmpeg — Video rendering (optional)
- ScreenLane — Screen capture (optional)
- SkillLane — Skill export (optional)
- Tera — AI content generation (optional)
Storage
Local storage at ~/.videolane/:
~/.videolane/
config.json
projects/
<project-id>/
videolane.json
plan.json
recordings/
renders/
captions/
thumbnails/
metadata/
shorts/
Security / Privacy
- Local-first — no data leaves your machine by default
- No secrets required for core functionality
- No YouTube credentials stored unless explicitly configured
- Browser profiles kept local
- API keys only used when you provide them
Talocode Ecosystem
| Product | Purpose |
|---|---|
| ScreenLane | Screen capture and context |
| SkillLane | Skill workflow structure |
| VideoLane | Video production (this package) |
| ClipLoop | Product update promo content |
| Tera | AI assistant for students/builders |
| Codra | AI code editor |
| SearchLane | Search API |
| VectorLane | Vector search |
| XProLane | X Pro setup assistant |
Demo Video
Run the demo:
videolane demo
This generates a complete demo output with plan, captions, audio, metadata, and YouTube package.
Roadmap
- Full Playwright browser recording
- ffmpeg caption burn-in
- Background music generation
- Shorts auto-cut
- YouTube Data API upload
- ScreenLane integration
- Multi-language captions
- Transcript-based captions (Whisper)
- Thumbnail image generation
- Video templates library
Limitations
- v0.1 packages publish-ready assets; it does not fully replace human review
- YouTube auto-upload is not enabled by default
- Browser recording depends on Playwright and browser availability
- Rendering depends on ffmpeg
- Automatic login is not handled; use manual-login or browser profile
- Captions can be generated from scripts locally; transcription requires provider keys
- Thumbnail generation is brief-first; final thumbnail design may need Canva/editor review
- Background audio is generated locally and should be reviewed before publishing
- Complex editing still needs human review
Contributing
Contributions welcome. Open an issue or PR at github.com/talocode/videolane.
License
MIT Talocode