Tạo video AI

POSThttps://sangtao.ai/api/v2/videos/generate

Tài liệu cho Tạo video AI.

Tạo video AI từ mô tả text hoặc ảnh. Hỗ trợ text-to-video và image-to-video. Trả về jobId để poll kết quả.

Nội dung request

FieldTypeDescription
model*stringModel slug từ GET /api/v2/models?category=Video
prompt*stringMô tả video cần tạo
imageIdstringJob ID ảnh nguồn cho image-to-video (từ job tạo ảnh đã hoàn thành)
imageIdsstring[]Nhiều job ID ảnh nguồn (cho model hỗ trợ nhiều ảnh đầu vào)
durationintThời lượng video tính bằng giây. Phụ thuộc model (thường 5 hoặc 10s)
resolutionstringĐộ phân giải: "720p", "1080p". Mặc định tùy model
aspectRatiostring"16:9" | "9:16" | "1:1". Mặc định: "16:9"
modestringChế độ tạo video (tùy model). Ví dụ: "standard", "pro"
modeImagestringChế độ xử lý ảnh cho image-to-video. Tùy chọn theo model
Tip: Dùng GET /api/v2/models?category=Video để xem danh sách model và options.

cURL

bash
curl -X POST https://sangtao.ai/api/v2/videos/generate \
  -H "X-Api-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "veo-3.1-fast",
    "prompt": "A drone shot flying over rice terraces in Sapa, golden hour lighting",
    "aspectRatio": "16:9",
    "duration": 5
  }'

Ví dụ Text-to-Video

Tạo video chỉ từ mô tả text:

json
{
  "model": "veo-3.1-fast",
  "prompt": "A drone shot flying over rice terraces in Sapa, golden hour lighting",
  "aspectRatio": "16:9",
  "duration": 5
}

Ví dụ Image-to-Video

Tạo animation từ ảnh. Tạo ảnh trước, rồi dùng jobId của nó làm imageId:

json
{
  "model": "veo-3.1-fast",
  "prompt": "Camera slowly zooms in, gentle wind blowing",
  "imageId": "img-abc123",
  "duration": 5
}

Phản hồi

json
{
  "success": true,
  "data": {
    "jobId": "vid-xyz789"
  }
}

Theo dõi tiến độ

Poll GET /api/v2/jobs/{jobId} mỗi 5 giây. Tạo video thường mất 30s-3 phút.

json
// GET /api/v2/jobs/{jobId}
{
  "success": true,
  "data": {
    "status": "complete",
    "resultUrl": "https://cdn.sangtao.ai/videos/result.mp4",
    "thumbnailUrl": "https://cdn.sangtao.ai/videos/thumb.jpg"
  }
}

Luồng Credit

Giai đoạnMô tả
KhóaCredit được ước tính và khóa khi bạn gửi job
Tính toánSau khi xử lý, chi phí thực tế được tính dựa trên số scene và voice sử dụng
Quyết toánKhi hoàn thành, credit thừa được tự động hoàn trả
Note: Giá trị lockedCreditCost trong response là ước tính cao. Chi phí thực tế thường thấp hơn.

Mã lỗi

MãKhi nào
400Input không hợp lệ (story quá ngắn/dài, model/voice không tồn tại...)
401Chưa xác thực — thiếu hoặc sai API key / token
402Không đủ credit hoặc voice cao cấp cần nạp tiền
429Đã có 4 job đang chạy cùng lúc
503Hệ thống đang xử lý nhiều yêu cầu cùng lúc. Vui lòng thử lại sau 30 giây