Краткий ответ
Согласно текущей общедоступной документации API Seedance 2.0, API предоставляет создание задач и запросы статуса задач, но не предоставляет эндпоинт для отмены или удаления задач. После успешного создания задачи API возвращаетtask_id. Тайм-аут на стороне клиента, сетевой сбой, закрытие веб-страницы или остановка опроса не должны считаться подтверждением отмены задачи. Запросите исходную задачу, прежде чем решать, следует ли повторить попытку, чтобы не создавать дублирующиеся задачи.
Публичные эндпоинты и статусы задач
В настоящее время Seedance 2.0 использует эндпоинты асинхронных задач:
Обычно задача проходит следующий жизненный цикл:
queued: Задача создана и ожидает в очереди.running: Задача обрабатывается.succeeded: Генерация видео успешно завершена.failed: Обработка задачи завершилась с ошибкой.expired: Задача превысила допустимое время выполнения и истекла.
Что делать после отправки задачи?
Шаг 1. Сохраните идентификатор задачи и сведения о запросе
Сразу сохраните возвращённыйtask_id после успешного выполнения запроса на создание.
Также следует сохранить:
- Название модели;
- Промпт или краткое описание промпта;
- Важные параметры, такие как длительность, разрешение и соотношение сторон;
- Время отправки;
- Идентификатор запроса;
- Идентификатор операции в вашей системе.
Шаг 2. Запросите исходную задачу
Для задач Seedance 2.0 обычно требуется несколько минут. В текущей документации API рекомендуется:- Подождать около 20–30 секунд после отправки перед первым запросом;
- После этого отправлять запрос каждые 10–20 секунд;
- Не отправлять запрос повторно сразу только потому, что видео ещё недоступно.
YOUR_TASK_ID: Идентификатор задачи, возвращённый эндпоинтом создания задачи;YOUR_API_KEY: API-ключ, созданный в консоли APIYI.
Шаг 3. Обработайте каждый статус задачи
Обрабатывайте возвращённый статус следующим образом:queued: Задача всё ещё ожидает выполнения; продолжайте ожидание и отправку запросов.running: Задача всё ещё выполняется; продолжайте ожидание и отправку запросов.succeeded: Немедленно скачайте видео по адресуcontent.video_url.failed: Проверьте сведенияerrorв ответе.expired: Просмотрите сведения о задаче и журналы вызовов, чтобы определить причину её истечения.
queued или running ошибками и не создавайте другую задачу только потому, что текущая задача ещё не завершена.
Шаг 4. Подтвердите статус задачи после тайм-аута клиента
Не повторяйте запрос немедленно, если клиент не получил полный ответ. Проверьте следующее по порядку:- Проверьте, содержит ли ответ клиента
task_id. - Проверьте, есть ли запись о задаче в журналах вызовов консоли.
- Если существует
task_id, сначала запросите исходную задачу. - Если
task_idпока не отображается, не делайте вывод об отсутствии созданной задачи только на основании сетевой ошибки. - Если вы не можете подтвердить, была ли создана задача, попросите службу поддержки проверить это до повторной отправки запроса.
Как предотвратить дублирующие отправки?
Ниже приведены инженерные практики на стороне интеграции, а не обязательные правила платформы:- Создавайте уникальный бизнес-ID для каждого запроса.
- Сохраняйте соответствие между бизнес-ID и
task_idSeedance. - Временно отключайте кнопку отправки после отправки запроса пользователем.
- После тайм-аута клиента или завершения процесса возобновляйте работу, запрашивая исходную задачу.
- Сохраняйте промпт, модель, длительность, соотношение сторон и сведения о референсных материалах.
- Выполняйте новую отправку только после подтверждения того, что исходная задача не существует или явно завершилась с ошибкой.
- Различайте статусы выполнения и конечные статусы. Не считайте
queuedилиrunningошибками.
Как сверить тарификацию после повторных отправок?
В текущей документации по Seedance 2.0 процесс тарификации описан следующим образом:InvalidParameter HTTP 400, не тарифицируется.
Однако следующие обстоятельства сами по себе не позволяют определить, было ли выполнено списание:
- Тайм-аут клиента;
- Разрыв сетевого соединения;
failed;expired;- Клиент не получил полный ответ;
- Клиент отображает ошибку запроса, хотя сервер мог создать задачу.
- Все связанные значения Seedance
task_id; - Соответствующие идентификаторы запросов;
- Время отправки;
- Названия моделей;
- Важные параметры запросов;
- Журналы вызовов в консоли;
- Снимки экрана с записями о тарификации или списаниях.
Не делайте вывод о том, что за задачу было или не было выполнено списание, основываясь только на
failed, expired или тайм-ауте клиента.Часто задаваемые вопросы
Останавливает ли прекращение опроса автоматически задачу Seedance?
Это нельзя считать гарантированным. Прекращение опроса означает лишь, что клиент больше не запрашивает статус задачи. В текущей общедоступной документации API не предусмотрен эндпоинт отмены, поэтому прекращение опроса не означает, что задача на стороне сервера была отменена. Сохраните исходныйtask_id и запросите его снова позже.
Можно ли повторить запрос сразу после истечения времени ожидания?
Мы не рекомендуем немедленно повторять запрос. Сначала проверьте:- Содержит ли ответ
task_id; - Есть ли запись о задаче в журналах вызовов консоли;
- Текущий статус исходной задачи;
- Существует ли уже соответствующая запись тарификации.
Означает ли статус «ошибка» или «истёк срок», что списание не произошло?
Нельзя определить результат тарификации только по статусу задачи. Seedance 2.0 использует предварительное списание при отправке с последующей тарификацией после завершения. Проверьте журналы вызовов и записи тарификации. Если записи выглядят некорректно, передайте в службу поддержки идентификатор задачи и идентификатор запроса для проверки.Взимается ли плата за HTTP 400, вызванный недопустимыми параметрами?
В текущей документации указано, что запрос, отклонённый из-за недопустимых параметров без создания задачи, не тарифицируется. Примеры:- Недопустимые форматы параметров;
- Неподдерживаемое разрешение;
- Недопустимое соотношение сторон;
- Неподдерживаемая длительность видео;
- Несовместимое сочетание модели и параметров.
Как долго можно хранить URL сгенерированного видео?
В текущей документации указано, чтоcontent.video_url в успешном ответе представляет собой временный подписанный URL, действительный примерно 24 часа.
Скачайте и сохраните видео сразу после перехода задачи в статус succeeded. Не рассматривайте этот URL как постоянный.
В текущей документации также указано, что сам идентификатор задачи хранится 7 дней. Тем не менее вам следует сохранять собственную запись о задаче для отслеживания бизнес-операций.
Связанная документация
- API генерации видео Seedance 2.0
- Обзор генерации видео Seedance 2.0
- Как устранить неполадки, связанные с ошибками модели?
Свяжитесь с поддержкой
Обратитесь в службу поддержки за помощью, если:- Задача остаётся в состоянии
queuedилиrunningнеобычно долго; - Вы не можете подтвердить, была ли создана задача после истечения времени ожидания клиента;
- После повторной отправки было создано несколько задач;
- Статус задачи и запись о тарификации не совпадают;
- Для успешно выполненной задачи не возвращается видео или его нельзя скачать.
- Идентификатор Seedance
task_id; - Идентификатор запроса;
- Время отправки;
- Название модели;
- Важные параметры запроса;
- Журналы вызовов консоли;
- Связанные записи о тарификации.