AGTCloud API Docs
Hướng dẫnAPI ReferenceTích hợp và tài nguyênCập nhật và hỗ trợ
Tạo videoPlatform Video Generations

Truy vấn video

Truy vấn tác vụ video qua API Platform Video Generations.

Dùng ID tác vụ do API tạo tác vụ trả về để truy vấn trạng thái, kết quả video và metadata; dừng polling khi tác vụ chuyển sang succeeded hoặc failed.

GET/v1/video/generations/{task_id}

Dùng Task ID do API tạo tác vụ trả về để truy vấn trạng thái và kết quả hiện tại của tác vụ video. Dừng polling khi tác vụ chuyển sang succeeded hoặc failed.

API này sử dụng đường dẫn và cấu trúc trạng thái của tác vụ Platform Video Generations, không tương đương với API truy vấn bằng Video ID của OpenAI Videos.

Xác thực

bearerAuth
Xác thựcBearer <token>

Sử dụng Bearer your-api-key trong Header Authorization.

Vị trí truyền: header

Tham số đường dẫn

task_id*string

Task ID được trả về khi tạo tác vụ video trên nền tảng.

Độ dài1 <= length

Nội dung phản hồi

application/json

application/json

application/json

application/json

application/json

application/json

Polling trạng thái tác vụ

Tạo video là quá trình bất đồng bộ. Sau khi gửi tác vụ, có thể truy vấn theo các khoảng thời gian sau để cân bằng thời gian nhận kết quả và tần suất yêu cầu:

  1. Sau khi gửi tác vụ, chờ 2–3 giây.
  2. Trong 30 giây đầu, truy vấn mỗi 5 giây.
  3. Từ 30 giây đến 2 phút, truy vấn mỗi 10 giây.
  4. Sau 2 phút, truy vấn mỗi 30 giây.
  5. Đặt tổng thời gian chờ là 5–10 phút; dừng ngay khi tác vụ chuyển sang succeeded hoặc failed.

Ví dụ polling bằng JavaScript

async function pollVideoStatus(taskId, maxAttempts = 30) {
  const apiOrigin = 'https://api.agtcloud.cn';
  const headers = {
    Authorization: 'Bearer your-api-key',
  };

  await new Promise((resolve) => setTimeout(resolve, 3000));

  for (let attempt = 0; attempt < maxAttempts; attempt += 1) {
    const response = await fetch(
      `${apiOrigin}/v1/video/generations/${encodeURIComponent(taskId)}`,
      { headers },
    );

    if (!response.ok) {
      throw new Error(`Truy vấn thất bại với HTTP ${response.status}`);
    }

    const result = await response.json();

    if (result.status === 'succeeded') {
      return result;
    }

    if (result.status === 'failed') {
      throw new Error(result.error?.message ?? 'Tạo video thất bại');
    }

    const delay = attempt < 6 ? 5000 : attempt < 12 ? 10000 : 30000;
    await new Promise((resolve) => setTimeout(resolve, delay));
  }

  throw new Error('Polling tác vụ video đã hết thời gian chờ');
}

pollVideoStatus('TASK_ID').then(console.log).catch(console.error);