AGTCloud API Docs
РуководстваСправочник APIИнтеграции и ресурсыОбновления и помощь
Генерация видеоПлатформа Video Generations

Получить видео

Получение видеозадачи через API платформы Video Generations.

Используйте ID задачи из ответа на создание для получения состояния, видео и метаданных; прекратите опрос после перехода задачи в succeeded или failed.

GET/v1/video/generations/{task_id}

Используйте Task ID из ответа на создание для получения текущего состояния и результата видеозадачи. Прекратите опрос после перехода задачи в succeeded или failed.

Этот API использует путь и структуру состояний задач платформы Video Generations и не эквивалентен API OpenAI Videos для запроса по Video ID.

АутентификацияBearer <token>

Используйте Bearer your-api-key в Header Authorization.

Расположение: header

Параметры пути

task_id*string

Task ID, возвращённый при создании видеозадачи платформы.

Длина1 <= length

Тело ответа

application/json

application/json

application/json

application/json

application/json

application/json

Опрос состояния задачи

Генерация видео асинхронна. После отправки задачи используйте следующие интервалы опроса, чтобы сбалансировать скорость получения результата и частоту запросов:

  1. После отправки задачи подождите 2–3 секунды.
  2. В первые 30 секунд выполняйте запрос каждые 5 секунд.
  3. От 30 секунд до 2 минут выполняйте запрос каждые 10 секунд.
  4. После 2 минут выполняйте запрос каждые 30 секунд.
  5. Задайте общий тайм-аут 5–10 минут; немедленно прекратите опрос после перехода в succeeded или failed.

Пример опроса на 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(`Запрос завершился ошибкой HTTP ${response.status}`);
    }

    const result = await response.json();

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

    if (result.status === 'failed') {
      throw new Error(result.error?.message ?? 'Генерация видео завершилась ошибкой');
    }

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

  throw new Error('Истёк тайм-аут опроса видеозадачи');
}

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