Make a video from a script with VideoGen. In minutes.
VideoGen turns a written script — even a few sentences — into a finished, narrated video, complete with matching footage, an AI voiceover, and captions. This guide covers the whole path: writing a script that works, generating the draft in the studio, adding voice and captions, editing and exporting, and generating video programmatically with the API in Python or TypeScript.
Direct link (no referral): videogen.io
What VideoGen actually does
Traditional video production means recording, sourcing footage, lining up audio, and dragging clips around a timeline for hours. VideoGen compresses that into a repeatable AI workflow: you provide a script or idea, and it handles scripting, media sourcing, voiceover, and a first edit — taking you from idea to video in a few clicks. You then refine the draft in a full browser-based editor.
Two ways to use it: the studio (no code, point and click) for one-off videos and creative work, and the API for generating media programmatically inside your own product or pipeline. This guide covers both — start in the studio.
Step 1 — What you need
- 1.A VideoGen account. You can create your first video for free — sign up, no software to install, it all runs in the browser.
- 2.A script or a clear idea.A topic sentence works; a tight script works better. You'll get the best results by writing the narration yourself.
- 3.For the API route: an API key (from the VideoGen developer dashboard) and Python or Node.js installed.
Step 2 — Write a script the AI can work with
Output quality is mostly script quality. Before you generate anything:
- Write like you talk. Short, spoken-sounding sentences make natural narration. Long, formal ones sound stilted when voiced.
- One idea per scene. Break the script into small beats so each line maps to a clean, matching visual.
- Use concrete nouns."A robot arm sorting colored blocks" sources better footage than "technology." Picture the shot, then describe it.
- Front-load the hook. The first line decides whether anyone watches the rest — open with the payoff, not a throat-clear.
Step 3 — Generate the draft in the studio (no code)
- Sign in to VideoGen and start a new project.
- Paste your script or idea and let the AI workflow build a draft — it scripts, sources matching media, and assembles a first cut automatically.
- Review the timeline. You now have a scene-by-scene rough cut instead of a blank screen.
- Swap any clip that doesn't fit, and retime scenes that feel rushed.
That's the heavy lifting done. From here it's polish.
Direct link (no referral): videogen.io
Step 4 — Add voice, captions, and translation
VideoGen includes 200+ AI voices across 50+ languages, or you can record your own. Pick a voice that matches the mood of your script, generate the narration, and add captions in a click. Need another language? One-click translation and localization let the same video reach a wider audience — useful for tutorials, marketing, and educational content.
Step 5 — Edit and export
Use the editor to finish: trim clips, adjust pacing, drop in captions or an AI avatar presenter, and tweak wording until it feels like yours. When it's ready, export the video or share a view link. Because the whole thing is a repeatable workflow, your next video — episode two, a remix, a localized version — starts from the setup you already built rather than from scratch.
Step 6 — Generate video via the API (Python or TypeScript)
Once the studio feels routine, the API lets you generate media from code — images, video clips, voiceovers (text-to-speech), sound effects, and avatar clips. Grab an API key from the VideoGen developer dashboard, store it as VIDEOGEN_API_KEY in your environment (never hardcode it), install the SDK (npm install @videogen/sdk or the Python package), and kick off a job:
// example.mts
import { VideoGenClient, pollExecutedTool } from "@videogen/sdk";
const client = new VideoGenClient({ token: process.env.VIDEOGEN_API_KEY! });
// Kick off a generation job (runs asynchronously)
const { toolExecutionId } = await client.tools.generateVideoClip({
prompt: "A sunset over a calm ocean, cinematic lighting",
});
// Wait for the result, then read the file(s)
const result = await pollExecutedTool(client, toolExecutionId);
console.log(result);# example.py
import os
from videogen import VideoGenClient, poll_executed_tool
client = VideoGenClient(token=os.environ["VIDEOGEN_API_KEY"])
# Kick off a generation job (runs asynchronously)
execution = client.tools.generate_video_clip(
prompt="A sunset over a calm ocean, cinematic lighting",
)
# Wait for the result, then read the file(s)
result = poll_executed_tool(client, execution.tool_execution_id)
print(result)Generation runs asynchronously: you start a job, receive a tool-execution ID, then poll (or register a webhook) until the file is ready. The result contains a file you can download or hydrate into a signed URL. The base URL is https://api.videogen.io.
What to make with it
- Short-form social content — turn a blog post or a thread into a captioned video for TikTok, Reels, or Shorts.
- Explainers and tutorials — narrated walkthroughs you can re-export in multiple languages.
- Marketing and product demos — script-driven videos that are cheap to update when the product changes.
- Programmatic video at scale — wire the API into your app to generate clips, voiceovers, or avatars on demand.
Troubleshooting
The footage doesn't match what I meant
Almost always a script-language problem. Use concrete, visual nouns instead of abstractions, and split dense sentences so each scene carries one clear idea. Then swap any remaining off clips manually in the editor.
The narration sounds robotic or rushed
Try a different voice, and shorten long sentences — natural narration comes from conversational, spoken-style writing. If a single line is off, edit the text and regenerate just that line.
The video feels generic
AI gives you a strong draft, not a finished film. The difference is in the edit: tighten the open, cut dead scenes, and rewrite weak lines. The script and the edit are where your voice comes through.
API job never returns a result
Generation is asynchronous — you must poll the tool-execution ID or use a webhook rather than expecting an immediate response. Also confirm VIDEOGEN_API_KEY is set and valid in your environment.
Disclose AI-generated video
If you publish AI-generated video, say so. A simple "made with AI" note builds trust rather than costing it, and it keeps you on the right side of platform rules and disclosure norms. Only use footage, voices, and likenesses you have the rights to.
Write two sentences. Get a video.
The fastest way to understand VideoGen is to make one short video. Sign up, paste an idea, and follow the steps above.
Direct link (no referral): videogen.io
Transparency: Emerge Tech may earn a commission if you subscribe through our partner link, at no extra cost to you. API details are from the official VideoGen API documentation.