88API88API
User GuideAI ApplicationsAPI ReferenceHelp & Support
Video

Google Video API

Quy chuẩn gọi Veo 3.1, Veo 3.1 Fast, Gemini Omni Flash và Gemini Omni 1.1.

Trang này mô tả cách gọi các model video Google veo-3.1, veo-3.1-fast, gemini-omni-flash và gemini-omni-flash-1.1. Giống các model video khác, chúng được tạo bằng POST /v1/videos và truy vấn bằng GET /v1/videos/{id}; xác thực, tải lên tư liệu, trạng thái truy vấn định kỳ, tải kết quả và xử lý lỗi xem Quy chuẩn gọi Video API đầy đủ. Trang này chỉ trình bày các trường và quy tắc riêng của model video Google.

Cập nhật ngày 2026-10-10. Yêu cầu mới tới model video Google đều dùng truy vấn định kỳ, không đặt callback_url.

Model

ModelĐịnh vịĐộ phân giảiThời lượngKhả năng chính
veo-3.1Bản ổn định, ưu tiên chất lượng720P / 1080P / 4K4, 6 hoặc 8 giây, mặc định 8 giâyVăn bản, khung hình đầu, khung hình đầu và cuối, 1–3 ảnh tham chiếu, kéo dài video, âm thanh gốc đồng bộ
veo-3.1-fastBản ổn định, ưu tiên tốc độ và chi phí720P / 1080P / 4K4, 6 hoặc 8 giây, mặc định 8 giâyGiống veo-3.1
gemini-omni-flashBản xem trướcCố định 720P3–10 giây, mặc định 3 giâyVăn bản, khung hình đầu, khung hình đầu và cuối, tối đa 10 ảnh tham chiếu (có thể kèm 1 video tham chiếu)
gemini-omni-flash-1.1Bản xem trước, tạo và chỉnh sửa720P / 1080P / 4K3–10 giây, mặc định 3 giâyVăn bản, khung hình đầu, khung hình đầu và cuối, tối đa 10 ảnh tham chiếu và 3 video tham chiếu, chỉnh sửa video, kéo dài video

Quy tắc chung

  • Tỷ lệ khung hình: ratio (hoặc aspect_ratio) chỉ nhận 16:9 và 9:16; mặc định 16:9.
  • Độ phân giải: resolution nhận 720p, 1080p hoặc 4k; mặc định 720p. Yêu cầu 360p sẽ được tạo và tính phí theo 720P.
  • size: một trường có thể đồng thời đặt độ phân giải và tỷ lệ khung hình, ví dụ 1280x720, 1080x1920, 3840x2160; cũng có thể chỉ ghi tỷ lệ 16:9 hoặc 9:16. Giá trị mâu thuẫn giữa size, ratio và resolution sẽ trả về 400.
  • Số lượng: mỗi yêu cầu tạo một video; n chỉ có thể là 1.
  • Ảnh: mỗi ảnh tối đa 20 MiB, có thể dùng:
    • URL HTTPS công khai (khuyến nghị);
    • Data URI, ví dụ data:image/png;base64,...;
    • Base64 PNG, JPEG hoặc WebP không có tiền tố;
    • tệp multipart/form-data, trường input_reference, image, images, first_frame hoặc last_frame.
  • Định dạng ảnh: Veo chỉ nhận JPEG và PNG; Gemini Omni nhận PNG, JPEG và WebP.
  • Video: chỉ nhận URL HTTPS công khai, định dạng MP4, MOV hoặc WebM, tối đa 64 MiB. Video cục bộ hãy tải lên trước theo Tải lên tư liệu cục bộ, rồi đặt url trả về vào video. Không nhận Data URI video, Base64 hay tệp video multipart.
  • Trường video tham chiếu: dùng video hoặc videos ở cấp gốc, không dùng metadata.referenceVideos. Không model video Google nào nhận âm thanh tham chiếu.
  • Kết quả: sau khi hoàn tất, video_url là địa chỉ MP4 trên assets.88api.ai. Có thể tải xuống trực tiếp hoặc dùng làm video cho yêu cầu kéo dài hay chỉnh sửa tiếp theo.

Veo 3.1 / Veo 3.1 Fast

Tình huốngCách viết yêu cầuQuy tắc
Văn bản thành videoKhông có ảnh hay video4, 6 hoặc 8 giây
Khung hình đầu1 ảnh trong images (hoặc image, input_reference, metadata.firstFrame)4, 6 hoặc 8 giây
Khung hình đầu và cuối2 ảnh theo thứ tự trong images, hoặc metadata.firstFrame kèm metadata.lastFrame4, 6 hoặc 8 giây
Ảnh tham chiếu3 ảnh trong images; khi có 1–2 ảnh tham chiếu, thêm metadata.video_mode: "reference"Cố định 8 giây, tối đa 3 ảnh
Kéo dài videotask: "extend" kèm 1 video trong videoMỗi lần thêm 7 giây; không gửi thời lượng, tỷ lệ khung hình, độ phân giải hay size
  • metadata.video_mode có thể chọn rõ frames (khung hình đầu, hoặc khung hình đầu và cuối) hoặc reference (ảnh tham chiếu). task cũng có thể là text_to_video, image_to_video, reference_to_video hoặc extend; giá trị mâu thuẫn sẽ trả về 400.
  • generate_audio (hoặc metadata.generateAudio) mặc định là true, tạo âm thanh gốc đồng bộ; đặt false thì video không có track âm thanh. Việc tạo âm thanh không ảnh hưởng đến giá.
  • negative_prompt (tối đa 2000 ký tự) và seed (0–4294967295) có thể đặt ở cấp gốc, hoặc viết thành metadata.negativePrompt và metadata.seed.
  • Đầu vào khi kéo dài phải là MP4 dài 1–30 giây; tính phí theo số giây được thêm, tức thời lượng kết quả trừ thời lượng đầu vào.
  • Veo không hỗ trợ video tham chiếu, âm thanh tham chiếu, temperature và top_p.

Văn bản thành video 4K:

{
  "model": "veo-3.1",
  "prompt": "Siêu xe màu bạc trong thành phố đêm mưa, máy quay góc thấp bám theo, phản chiếu ánh đèn neon, chất điện ảnh",
  "duration": 8,
  "resolution": "4k",
  "ratio": "16:9",
  "generate_audio": true
}

Khung hình đầu và cuối (hai ảnh lần lượt là khung hình đầu và khung hình cuối):

{
  "model": "veo-3.1-fast",
  "prompt": "Chuyển mượt từ quảng trường vắng lúc sáng sớm sang cùng bố cục vào ban đêm khi đèn bật sáng",
  "duration": 6,
  "size": "1920x1080",
  "images": [
    "https://cdn.example.com/start.jpg",
    "https://cdn.example.com/end.jpg"
  ],
  "metadata": {
    "negativePrompt": "blur, distortion"
  }
}

Ảnh tham chiếu (cố định 8 giây):

{
  "model": "veo-3.1",
  "prompt": "Giữ khuôn mặt và trang phục của nhân vật trong ảnh tham chiếu, chậm rãi bước đi bên bờ biển",
  "duration": 8,
  "images": [
    "https://cdn.example.com/character-front.jpg",
    "https://cdn.example.com/character-side.jpg"
  ],
  "metadata": {
    "video_mode": "reference"
  }
}

Kéo dài video:

{
  "model": "veo-3.1",
  "prompt": "Tiếp nối cảnh quay hiện tại, nhân vật tiếp tục bước về phía trước",
  "task": "extend",
  "video": "https://assets.88api.ai/media/task-videos/2026/10/example.mp4"
}

Tải ảnh cục bộ lên làm khung hình đầu (metadata được gửi dưới dạng chuỗi JSON):

curl --request POST 'https://api.88api.ai/v1/videos' \
  --header 'Authorization: Bearer sk-xxxx' \
  --form 'model=veo-3.1-fast' \
  --form 'prompt=Máy quay tiến chậm, mây ở hậu cảnh trôi tự nhiên' \
  --form 'seconds=8' \
  --form 'size=1280x720' \
  --form 'metadata={"video_mode":"frames"}' \
  --form 'input_reference=@start.jpg;type=image/jpeg'

Gemini Omni Flash / Gemini Omni 1.1

Khi không truyền task, loại tác vụ được xác định theo tư liệu gửi lên:

Tư liệu gửi lênTác vụ
Không có ảnh hay videoVăn bản thành video
Một ảnhTạo video từ khung hình đầu
first_frame, hoặc first_frame kèm last_frame (cũng có thể dùng metadata.firstFrame và metadata.lastFrame)Tạo video từ khung hình đầu, hoặc từ khung hình đầu và cuối
Từ 2 ảnh trở lên, ảnh kèm video, hoặc nhiều videoTạo video theo tham chiếu
Một videoChỉnh sửa video (chỉ gemini-omni-flash-1.1)
  • Cũng có thể chỉ định rõ task là text_to_video, image_to_video, reference_to_video, edit hoặc extend.
  • Khác với Veo, hai ảnh đặt trong images được coi là ảnh tham chiếu; muốn dùng khung hình đầu và cuối, hãy dùng first_frame và last_frame.
  • Các trường khung hình đầu và cuối không thể dùng chung với ảnh tham chiếu thông thường.
  • gemini-omni-flash chỉ xuất 720P, không hỗ trợ chỉnh sửa và kéo dài video; video tham chiếu của nó phải gửi kèm ảnh tham chiếu.
  • gemini-omni-flash-1.1 nhận tối đa 10 ảnh tham chiếu và 3 video tham chiếu.
  • Chỉnh sửa video (1.1): đặt 1 video trong video và mô tả thay đổi mong muốn trong prompt. Không gửi ratio, aspect_ratio hay size: tỷ lệ khung hình của video gốc được giữ nguyên. Có thể chỉ định resolution.
  • Kéo dài video (1.1):
    • Gửi task: "extend" kèm 1 video; không gửi duration, ratio hay size.
    • Mỗi lần kéo dài thêm khoảng 10 giây; resolution nhận 720p (mặc định) hoặc 1080p, không hỗ trợ 4K.
    • Đầu vào phải là MP4 dài 1–30 giây. Với video dài hơn, hãy cắt phần cuối trước (khuyến nghị 10 giây), rồi kéo dài đoạn đó.
    • Tính phí theo số giây được thêm, tức thời lượng kết quả trừ thời lượng đầu vào. Có thể gửi input_duration (thời lượng video đầu vào, đơn vị giây); nếu lệch hơn 0,1 giây so với thời lượng đo được, yêu cầu sẽ bị từ chối.
  • Kết quả kéo dài là một MP4 hoàn chỉnh, phần đầu vào do model tạo lại: trông gần giống bản gốc nhưng không phải bản sao từng khung hình. Khi dựng, hãy giữ nguyên toàn bộ bản gốc và chỉ nối thêm phần kết quả nằm sau thời lượng đầu vào.
  • temperature (0–2) và top_p (0–1) là tùy chọn. Gemini Omni không có tùy chọn tạo âm thanh.

Tạo video từ khung hình đầu (Flash):

{
  "model": "gemini-omni-flash",
  "prompt": "Máy quay tiến chậm, hơi nóng bốc lên từ những chiếc bánh",
  "duration": 5,
  "ratio": "9:16",
  "image": "https://cdn.example.com/start.jpg"
}

Ảnh tham chiếu kèm video tham chiếu (1.1, 4K):

{
  "model": "gemini-omni-flash-1.1",
  "prompt": "Giữ nhịp máy quay của video tham chiếu, thay chủ thể bằng sản phẩm trong ảnh",
  "duration": 8,
  "resolution": "4k",
  "images": ["https://cdn.example.com/product.jpg"],
  "video": "https://cdn.example.com/reference.mp4"
}

Kéo dài video (1.1):

{
  "model": "gemini-omni-flash-1.1",
  "prompt": "Tiếp nối cảnh hiện tại, gợn sóng lan tỏa tự nhiên trên mặt nước",
  "task": "extend",
  "resolution": "1080p",
  "video": "https://assets.88api.ai/media/task-videos/2026/10/example.mp4"
}