Bỏ qua

AI Video Generate

API AI Video Generate

Tạo video chạy bất đồng bộ:

  1. POST /v1/video/generate → nhận job_id, credit bị giữ chứ chưa trừ
  2. Chờ (thường 45 giây – 2 phút)
  3. GET /v1/video/jobs/{job_id} cho tới khi status là completed hoặc failed
  4. completed → lấy link ở result. failed → credit được hoàn tự động

Địa chỉ và xác thực

Mọi endpoint dùng chung một gốc:

https://revidapi.com/v1
Authorization: Bearer sk_...

Hoặc X-API-Key: sk_.... Lấy khoá ở revidapi.com/dashboard.


Bảng model

Danh sách sống, kèm giá từng cấu hình:

curl https://revidapi.com/v1/video/models \
  -H "Authorization: Bearer sk_..."
Model Ghi chú
veo3.1-lite Rẻ nhất, 720p/1080p/4k · 4–8 giây
veo3.1-fast Nhanh, 720p/1080p/4k · 4–8 giây
veo3.1-omni Đầy đủ nhất, thêm 10 giây và chế độ veo_mode
grok-i2v Ảnh → video, 480p trở lên
kling-2.5-turbo 720p/1080p · 5–10 giây
kling-2.6 Có bậc tiếng riêng
kling-3.0-video Nhiều cấu hình nhất

Chỉ dùng đúng model mà GET /v1/video/models trả về. Tên khác trả 404 model_not_found.


1) Tạo job video

  • Method: POST
  • URL: https://revidapi.com/v1/video/generate
  • Content-Type: application/json
Tên Kiểu Bắt buộc Mô tả
model string Có Lấy từ GET /v1/video/models
prompt string Có Mô tả video
duration string Không 4s, 5s, 8s, 10s — theo cấu hình model có
resolution string Không 720p, 1080p, 4k — theo cấu hình model có
aspect_ratio string Không 16:9, 9:16, 1:1
audio bool Không Chỉ có tác dụng ở model có bậc tiếng riêng
img_url string | mảng Không Ảnh đầu vào (image-to-video)
image_urls mảng | chuỗi ngăn phẩy Không Nhiều ảnh — dùng cho veo_mode
video_url string Không Video đầu vào (chỉnh sửa video)
veo_mode string Không frames hoặc ingredients, chỉ họ Veo

resolution và duration phải khớp một cấu hình có bán. Sai thì trả 400 kèm danh sách cấu hình có thật, không phải lỗi chung chung.

Tạo từ mô tả

curl -X POST https://revidapi.com/v1/video/generate \
  -H "Authorization: Bearer sk_..." \
  -H "Content-Type: application/json" \
  -d '{
    "model": "veo3.1-lite",
    "prompt": "Cận cảnh giọt cà phê rơi, ánh sáng điện ảnh",
    "duration": "4s",
    "resolution": "720p",
    "aspect_ratio": "16:9"
  }'

Tạo từ ảnh

curl -X POST https://revidapi.com/v1/video/generate \
  -H "Authorization: Bearer sk_..." \
  -H "Content-Type: application/json" \
  -d '{
    "model": "grok-i2v",
    "prompt": "nhân vật bước tới trước, máy quay tĩnh",
    "img_url": "https://example.com/start.jpg",
    "duration": "6s",
    "resolution": "480p"
  }'

Veo — nội suy khung đầu → khung cuối

import requests

r = requests.post(
    "https://revidapi.com/v1/video/generate",
    headers={"Authorization": "Bearer sk_..."},
    json={
        "model": "veo3.1-omni",
        "prompt": "chuyển cảnh mượt từ khung đầu sang khung cuối",
        "veo_mode": "frames",
        "image_urls": ["https://example.com/start.jpg",
                       "https://example.com/end.jpg"],
        "duration": "4s",
        "resolution": "720p",
        "aspect_ratio": "16:9",
    },
)
print(r.json())

Veo — ghép nhiều ảnh tham chiếu

json={
    "model": "veo3.1-omni",
    "prompt": "video theo phong cách các ảnh tham chiếu",
    "veo_mode": "ingredients",
    "image_urls": ["https://example.com/a.jpg",
                   "https://example.com/b.jpg",
                   "https://example.com/c.jpg"],
    "duration": "4s",
    "resolution": "720p",
}

Kết quả trả về

{
  "job_id": "job_vid_PFxvMD1e3fTKaCQo",
  "status": "pending",
  "cost": 13,
  "poll": "/v1/video/jobs/job_vid_PFxvMD1e3fTKaCQo"
}

cost là số credit sẽ trừ nếu video ra thành công.


2) Hỏi trạng thái job

  • Method: GET
  • URL: https://revidapi.com/v1/video/jobs/{job_id}
curl https://revidapi.com/v1/video/jobs/job_vid_PFxvMD1e3fTKaCQo \
  -H "Authorization: Bearer sk_..."

Đang chạy:

{ "id": "job_vid_...", "object": "video.job", "status": "running", "model": "veo3.1-lite" }

Xong:

{
  "id": "job_vid_...",
  "object": "video.job",
  "status": "completed",
  "model": "veo3.1-lite",
  "result": "https://cdn.revidapi.com/outputs/.../result.mp4"
}

Hỏng — credit đã hoàn, không phải trả tiền cho lượt lỗi:

{
  "id": "job_vid_...",
  "status": "failed",
  "error": { "message": "Generation failed. Please try again later.",
             "type": "upstream_error" }
}

Nhịp hỏi hợp lý: 10–15 giây một lần, tối đa 5 phút.


Mã lỗi

Mã Ý nghĩa Cách xử lý
400 Thiếu model/prompt, hoặc cấu hình không có Đọc message — nó liệt kê cấu hình có thật
401 Khoá sai hoặc thiếu Kiểm lại header Authorization
402 Không đủ credit Nạp ở revidapi.com/dashboard/usage
404 Không bán model đó Xem GET /v1/video/models
503 Dịch vụ video tạm nghỉ Thử lại sau