Получить видео
Получение видеозадачи через API платформы Video Generations.
Используйте ID задачи из ответа на создание для получения состояния, видео и метаданных; прекратите опрос после перехода задачи в succeeded или failed.
/v1/video/generations/{task_id}Используйте Task ID из ответа на создание для получения текущего состояния и результата видеозадачи. Прекратите опрос после перехода задачи в succeeded или failed.
Этот API использует путь и структуру состояний задач платформы Video Generations и не эквивалентен API OpenAI Videos для запроса по Video ID.
Аутентификация
bearerAuth Используйте Bearer your-api-key в Header Authorization.
Расположение: header
Параметры пути
Task ID, возвращённый при создании видеозадачи платформы.
1 <= lengthТело ответа
application/json
application/json
application/json
application/json
application/json
application/json
Опрос состояния задачи
Генерация видео асинхронна. После отправки задачи используйте следующие интервалы опроса, чтобы сбалансировать скорость получения результата и частоту запросов:
- После отправки задачи подождите 2–3 секунды.
- В первые 30 секунд выполняйте запрос каждые 5 секунд.
- От 30 секунд до 2 минут выполняйте запрос каждые 10 секунд.
- После 2 минут выполняйте запрос каждые 30 секунд.
- Задайте общий тайм-аут 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);