OpenRouter Video
Access Veo, Kling, Hailuo, Seedance, Wan and more through OpenRouter
Generate videos through OpenRouter’s unified video gateway (Veo, Kling, Hailuo, Seedance, Wan, …).
Quick Start
from praisonaiagents import VideoAgent
agent = VideoAgent(llm="openrouter/google/veo-3.1")
video = agent.generate("A serene mountain landscape at sunset")
print(video.id)The openrouter/ prefix is required so the request routes to OpenRouter.
Setup
export OPENROUTER_API_KEY=your-keyOptionally override the dashboard attribution defaults (https://praison.ai and PraisonAI):
export OPENROUTER_REFERER=https://your-app.com
export OPENROUTER_APP_TITLE="Your App"Models
| Model | Description |
|---|---|
openrouter/google/veo-3.1 | Google Veo 3.1 |
openrouter/kling/kling-3.0-std | Kling 3.0 Standard |
openrouter/minimax/hailuo-3 | MiniMax Hailuo 3 |
openrouter/bytedance/seedance-2.0 | ByteDance Seedance 2.0 |
Discover all available model IDs via GET https://openrouter.ai/api/v1/videos/models.
Full Example
from praisonaiagents import VideoAgent
agent = VideoAgent(llm="openrouter/google/veo-3.1")
video = agent.generate(
"A serene mountain landscape at sunset, locked camera",
duration=6,
resolution="720p",
aspect_ratio="16:9",
generate_audio=False,
)
completed = agent.wait_for_completion(video.id)
if completed.status == "completed":
agent.download(video.id, "openrouter_veo.mp4")Parameters
OpenRouter body fields (duration, resolution, aspect_ratio, generate_audio, seed, …) pass straight through as kwargs to generate(). Valid fields depend on the underlying model — check OpenRouter’s docs for your chosen model.