Skip to main content
POST
Create a Seedance 2.0 video generation task
Используйте Playground справа: установите для Authorization значение Bearer sk-your-api-key (токену нужна группа SeeDance2, общая для версии 2.5 и семейства 2.0), заполните model / content и отправьте запрос. При успешной отправке возвращается id задачи; процессы опроса и скачивания описаны в приведённых ниже примерах кода.
Об ошибке Playground «ответ не получен»: это эндпоинт асинхронных задач, и при нажатии «Отправить» в браузере может появиться такое сообщение — междоменная проверка безопасности браузера заблокировала ответ, но задача была успешно отправлена (проверьте это через приведённый ниже эндпоинт запроса или в журналах консоли). Playground также может только создать задачу; он не поддерживает опрос состояния или скачивание видео. Чтобы выполнить полный процесс создания → опроса → скачивания, скопируйте и запустите приведённые ниже примеры кода (cURL / Python / Node.js).
Это эндпоинт создания задачи для Seedance 2.0. Для преобразования текста в видео, создания видео по первому и последнему кадру / первому кадру, а также преобразования мультимодальных референсов в видео используется один и тот же эндпоинт — режим выбирается с помощью массива content. Информацию о выборе модели, ценах, таблице разрешений и количества пикселей, а также ответы на часто задаваемые вопросы см. в разделе Обзор Seedance 2.0.
  • Префикс пути — /seedance/api/v3не удаляйте сегмент /api и не используйте /v1/videos
  • Для токена должна быть включена группа SeeDance2, иначе появится ошибка «для этой модели нет доступного канала»: 2.5 и семейство 2.0 используют SeeDance2, поэтому один токен предоставляет доступ ко всем четырём моделям (для mini / fast также доступны льготные SD2Mini / SD2Fast)
  • generate_audio по умолчанию имеет значение true (в выходном видео есть звук) — явно передайте false для видео без звука
  • Для Python requests требуется заголовок "Accept-Encoding": "identity" — без него может возникнуть ошибка декодирования gzip, усечённое тело, не являющееся JSON (например, теряется начальный {" и остаётся только id":"cgt-xxx"}), или периодические ошибки 400
  • Статус успешного выполнения — succeeded (а не completed); URL видео находится в content.video_url и истекает через 24 часа

Примеры кода

Справочник параметров

Ни Seedance 2.5, ни семейство 2.0 не поддерживают frames или camera_fixed — это параметры Seedance 1.x, которые будут проигнорированы или отклонены.Ограничения типов задач, уникальные для 2.5 (при нарушении возвращается InvalidParameter.TaskTypeConstraint во время отправки; тарификация не выполняется):

Режимы генерации (комбинации содержимого)

Три режима работы с изображениями взаимоисключающие. Для изображений поддерживаются общедоступные URL, Base64 (data:image/png;base64,...) и ID ресурсов (asset://...). Входные данные, содержащие лица реальных людей, отклоняются. Пример кода для сквозной работы со ссылками на ресурсы (загрузка → asset:// → генерация → скачивание) см. в руководстве по ссылкам на ресурсы. Встраивание больших медиафайлов замедляет создание задачи. Время загрузки полезных данных Base64 или получения больших изображений по URL полностью приходится на фазу отправки, из-за чего вызов create-task может занимать около секунды, десятки секунд или завершаться по тайм-ауту чтения на стороне клиента. Если запрос содержит изображения или видео, сначала загрузите медиафайлы и укажите их как ID ресурса asset://: см. процесс с предварительной загрузкой ресурсов. Ограничения на референсные материалы зависят от режима генерации: 2.5 принимает 30 изображений + 10 видео + 10 аудиоклипов, и аудио может быть единственным референсным материалом; семейство 2.0 принимает 9 изображений + 3 видео + 3 аудиоклипа, причём аудио необходимо отправлять как минимум с одним изображением или видео. Редактирование и расширение определяются намерением промптаomni_reference_task_type лишь переносит проверку на более ранний этап. Ссылайтесь на ресурсы в промпте по позициям (@video1, @image1) в том порядке, в котором они были переданы; для редактирования нужен такой глагол, как add / remove / change / replace, а для расширения — extend / continue. Если тип задачи, определённый моделью по промпту, противоречит указанному вами типу, задача асинхронно завершается с ошибкой InvalidParameter.TaskTypeMismatch.

Формат ответа

Создание возвращает только идентификатор задачи (не видео):
Получив id, опрашивайте GET /seedance/api/v3/contents/generations/tasks/{id} для получения статуса задачи.

Рекомендуемая периодичность опроса

Измеренная сквозная задержка (включая ожидание в очереди). Семейство 2.0 при 720p: около 90–140 с для 5-секундного клипа, 170 с для 15 секунд. 2.5: около 150 с при 720p/5 с, 330 с при 720p/30 с, 150 с при 1080p/5 с. Более высокое разрешение и большая длительность требуют больше времени, а очередь в пиковые часы дополнительно увеличивает задержку. В примерах кода ниже используется фиксированный интервал в 20 секунд — этого достаточно при предсказуемом числе запросов. Успешная задача выглядит так (реальный пример из наших тестов):
  • URL видео находится в content.video_url, а не на верхнем уровне; это подписанная ссылка, срок действия которой истекает через 24 часа — скачайте файл сразу
  • Машина состояний: queued → running → succeeded / failed / expired; успешное состояние — succeeded
  • Скачивайте по ссылке обычным GET — не отправляйте заголовок Authorization на подписанный URL
usage.completion_tokens — это количество token, учитываемое при тарификации; оно соответствует tokens ≈ duration × width × height × 24 / 1024 (с точностью до 0,1% в наших тестах). При использовании duration: -1 или ratio: adaptive фактическая длительность и соотношение указываются в полях ответа duration / ratio.

Авторизации

Authorization
string
header
обязательно

API key from the APIYI console (SeeDance25 group for 2.5, SeeDance2 group for the 2.0 family)

Тело

application/json
model
enum<string>
обязательно

Model ID (plain ID, no ep- prefix). 2.5 supports 1080p, 4-30 s, and up to 30 images + 10 videos + 10 audio clips as references; 2.0 standard supports 1080p; fast and mini cap at 720p, with mini at about half the standard price. No model supports 4k

Доступные опции:
doubao-seedance-2-5-260628,
doubao-seedance-2-0-260128,
doubao-seedance-2-0-fast-260128,
doubao-seedance-2-0-mini-260615
Пример:

"doubao-seedance-2-5-260628"

content
object[]
обязательно

Input array. Text-to-video: a single text item. Image-to-video: add image_url items (role: first_frame / last_frame). Multi-modal reference-to-video: image_url items (role: reference_image) plus optional video_url / audio_url. Reference limits: 2.5 allows 30 images + 10 videos + 10 audio clips and audio may stand alone; the 2.0 family allows 9 images + 3 videos + 3 audio clips and needs at least 1 image or 1 video. The three image modes are mutually exclusive

resolution
enum<string>
по умолчанию:720p

Resolution tier (defines pixel area — every ratio in a tier costs the same). 1080p is available on 2.5 and 2.0 standard only; fast and mini cap at 720p. No model supports 4k

Доступные опции:
480p,
720p,
1080p
ratio
enum<string>
по умолчанию:adaptive

Aspect ratio. adaptive auto-fits the input (recommended for image-to-video to avoid cropping); the actual ratio is returned in the task's ratio field

Доступные опции:
16:9,
4:3,
1:1,
3:4,
9:16,
21:9,
adaptive
duration
integer
по умолчанию:5

Video length in whole seconds: 4-30 on 2.5, 4-15 on the 2.0 family; or -1 to let the model choose (billed by actual output). Cost scales linearly with duration. Note the default is -1 on 2.5 and 5 on the 2.0 family

Пример:

5

generate_audio
boolean
по умолчанию:true

Generate synchronized audio (voice, SFX, background music; mono). Note it DEFAULTS TO TRUE — pass false explicitly for silent video

watermark
boolean
по умолчанию:false

Add an AI-generated watermark in the bottom-right corner

seed
integer
по умолчанию:-1

Random seed, [-1, 2^32-1]. The same seed produces similar (not identical) results; -1 means random

return_last_frame
boolean
по умолчанию:false

Return the last frame as a watermark-free png (same dimensions as the video) — chain it as the first frame of the next task to produce continuous multi-clip videos

execution_expires_after
integer
по умолчанию:172800

Task expiry threshold in seconds; tasks exceeding it are marked expired. Range [3600, 259200]

output_format
enum<string>
по умолчанию:mp4

Output container, supported on doubao-seedance-2-5-260628 only. mov is a QuickTime container (H.264 + yuv444p + PCM) with better colour fidelity for post-production, but some players cannot open it

Доступные опции:
mp4,
mov
omni_reference_task_type
enum<string>
по умолчанию:auto

Task type for omni-reference generation, supported on doubao-seedance-2-5-260628 only. Declaring edit or extend validates constraints up front: video editing requires ratio=adaptive and duration=-1, video extension requires ratio=adaptive; violations return InvalidParameter.TaskTypeConstraint at submission

Доступные опции:
auto,
edit,
extend

Ответ

Task created. Returns the task ID for polling

Creation response. Poll GET /seedance/api/v3/contents/generations/tasks/{id}; on success the video URL is at content.video_url (expires in ~24 h) and billed tokens at usage.completion_tokens

id
string

Video generation task ID (kept for 7 days)

Пример:

"cgt-20260606160057-6bbjd"