Veo Video Generation
Google Veo is a high-performance video generation model from Google DeepMind. It produces high-quality, high-resolution videos from text descriptions or reference images, with smooth motion and rich detail.
Try it Online
Quick Start
Send a video generation request with cURL:
bash
curl -X POST https://open.dieyuyun.com/v1/video/generations \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "veo-3",
"prompt": "A golden retriever running on the beach at sunset, cinematic quality",
"size": "1280x720",
"duration": 5
}'Endpoint
| Property | Value |
|---|---|
| Method | POST |
| Path | /v1/video/generations |
| Base URL | https://open.dieyuyun.com |
| Protocol | OpenAI-compatible |
Authentication
All requests must include your API key in the header:
http
Authorization: Bearer YOUR_API_KEYRequest Fields
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
| model | string | Yes | — | Model identifier, e.g. veo-3 |
| prompt | string | Yes | — | Video description; include scene, action, and style details |
| size | string | No | 1280x720 | Video resolution: 1280x720, 720x1280, or 1920x1080 |
| duration | integer | No | 5 | Video duration in seconds: 5 or 8 |
| image | string | No | — | Reference image URL for image-to-video mode |
Request Examples
bash
curl -X POST https://open.dieyuyun.com/v1/video/generations \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "veo-3",
"prompt": "City nightscape with neon lights and traffic, aerial view",
"size": "1920x1080",
"duration": 8
}'python
import requests
response = requests.post(
"https://open.dieyuyun.com/v1/video/generations",
headers={
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json"
},
json={
"model": "veo-3",
"prompt": "City nightscape with neon lights and traffic, aerial view",
"size": "1920x1080",
"duration": 8
}
)
task = response.json()
task_id = task["task_id"]
print(f"Task created: {task_id}")javascript
const response = await fetch('https://open.dieyuyun.com/v1/video/generations', {
method: 'POST',
headers: {
Authorization: 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json',
},
body: JSON.stringify({
model: 'veo-3',
prompt: 'City nightscape with neon lights and traffic, aerial view',
size: '1920x1080',
duration: 8,
}),
})
const task = await response.json()
console.log('Task created:', task.task_id)Response Format
Video generation is asynchronous. Submit a task to receive a task ID, then poll for results.
Task Creation Response
json
{
"task_id": "task_abc123",
"status": "queued",
"progress": 0,
"created_at": "2025-01-15T10:30:00Z"
}Polling Task Status
bash
curl https://open.dieyuyun.com/v1/video/generations/task_abc123 \
-H "Authorization: Bearer YOUR_API_KEY"Completed Task Response
json
{
"task_id": "task_abc123",
"status": "completed",
"progress": 100,
"metadata": {
"url": "https://cdn.dieyuyun.com/videos/task_abc123.mp4",
"duration": 8,
"size": "1920x1080"
},
"completed_at": "2025-01-15T10:32:00Z"
}Polling Example
python
import time
import requests
# Submit task
resp = requests.post(
"https://open.dieyuyun.com/v1/video/generations",
headers={"Authorization": "Bearer YOUR_API_KEY", "Content-Type": "application/json"},
json={"model": "veo-3", "prompt": "A cat playing the piano", "duration": 5}
)
task_id = resp.json()["task_id"]
# Poll for result
while True:
status = requests.get(
f"https://open.dieyuyun.com/v1/video/generations/{task_id}",
headers={"Authorization": "Bearer YOUR_API_KEY"}
).json()
if status["status"] == "completed":
print(f"Video URL: {status['metadata']['url']}")
break
elif status["status"] == "failed":
print("Generation failed")
break
time.sleep(5)Best Practices
- Be specific in prompts: Clearly describe the scene, subject, action, lighting, and camera movement, e.g., "Aerial shot of a golden wheat field swaying gently in the breeze, warm sunset lighting"
- Choose duration wisely: Shorter durations (5s) generate faster and cost less — ideal for testing. Use 8s once you've confirmed the results
- Image-to-video: Providing a high-quality reference image significantly improves consistency and visual quality
- Async polling: Video generation typically takes 1–5 minutes. Poll every 5 seconds for status updates
Rate Limits
| Limit | Value |
|---|---|
| Requests/min | 5 RPM |
| Daily requests | 100/day |
| Concurrent tasks | 2 |
Need higher limits? Submit a ticket in the Console.