Примеры генерации

Готовые JSON-запросы для четырёх моделей и разных настроек видео.

Сохраните одно из тел ниже в request.json. Задайте BASE_URL и API_KEY по инструкции Подключение. Каждый POST может создать платную задачу; сохраните полученный ID и следуйте разделу Результаты для статуса и скачивания.

Текст в видео

json
{
  "model": "seedance-2.5",
  "generate_audio": false,
  "prompt": "A paper boat glides across a quiet lake at sunrise, one continuous shot.",
  "seconds": "5",
  "size": "1280x720"
}

Создание один раз

bash
curl --fail --silent --show-error --max-time 120 \
  "$BASE_URL/v1/videos" \
  -H "Authorization: Bearer $API_KEY" \
  -H 'Content-Type: application/json' --data-binary @request.json \
  -o created.json
jq -r '.id' created.json

Если создание завершилось таймаутом до получения ID, проверьте кабинет или обратитесь в поддержку перед другим POST. Для восстановления и продолжения используйте Интеграцию.

Официальные SDK: видео из текста

Эти минимальные примеры создают задачу через методы Videos в официальных Python и Node.js SDK. Задайте BASE_URL как HTTPS origin без /v1 и API_KEY по инструкции Подключение. SDK сам добавляет /videos к настроенному пути /v1. Каждый запуск может создать платную задачу; сохраните id перед продолжением.

Python (openai):

python
import json
import os
from openai import OpenAI

client = OpenAI(
    base_url=os.environ["BASE_URL"].rstrip("/") + "/v1",
    api_key=os.environ["API_KEY"],
    max_retries=0,
)
video = client.videos.create(
    model="seedance-2.0",
    prompt="A red toy car moves slowly across a white table",
    seconds="4",
    size="1280x720",
)
with open("seedance-task.json", "w", encoding="utf8") as file:
    json.dump({"id": video.id}, file)
print(video.id)

Node.js (openai):

javascript
import OpenAI from "openai";
import { writeFile } from "node:fs/promises";

const client = new OpenAI({
  baseURL: process.env.BASE_URL.replace(/\/+$/, "") + "/v1",
  apiKey: process.env.API_KEY,
  maxRetries: 0,
});
const video = await client.videos.create({
  model: "seedance-2.0",
  prompt: "A red toy car moves slowly across a white table",
  seconds: "4",
  size: "1280x720",
});
await writeFile("seedance-task.json", JSON.stringify({ id: video.id }));
console.log(video.id);

max_retries=0 и maxRetries: 0 отключают штатные повторы POST создания в SDK. Если ответ потерян и исход неизвестен, проверьте кабинет или обратитесь в поддержку до нового POST. Примеры ограничены текстовым созданием. Наличие метода SDK не означает поддержку всей его текущей схемы: для поля input_reference здесь поддерживается только скалярный HTTPS URL. Объектная и файловая формы input_reference из текущих SDK, а также массивы, повторяющиеся поля и вложенные multipart-структуры для этого поля не поддерживаются. Это ограничение не относится к описанным в Референсах JSON-расширениям: image_urls, video_urls и audio_urls принимают массивы URL, а image_with_roles — массив объектов ролей.

Создание с вебхуком

Добавьте адрес своего публичного HTTPS-обработчика в тот же request.json:

json
{
  "model": "seedance-2.5",
  "resolution": "720p",
  "generate_audio": false,
  "callback_url": "CALLBACK_URL",
  "prompt": "A paper boat glides across a quiet lake.",
  "seconds": "5"
}

Запрос создания по-прежнему возвращает ID. Итог приходит отдельным POST на callback_url; формат уведомления и порядок обработки описаны отдельно.

Сценарии JSON

Видео с последним кадром результата в JPEG:

json
{
  "model": "seedance-2.0",
  "resolution": "720p",
  "generate_audio": false,
  "return_last_frame": true,
  "prompt": "A ceramic cup rotates slowly on a table, stable lighting.",
  "seconds": "5",
  "aspect_ratio": "1:1"
}

После завершения используйте content.last_frame_url из ответа задачи. Флаг можно добавить и в запрос с callback_url.

Портрет со звуком:

json
{
  "model": "seedance-2.5",
  "generate_audio": true,
  "prompt": "A cyclist crosses a rainy street at dusk. Gentle tire sounds; one continuous shot.",
  "seconds": "10",
  "size": "720x1280"
}

Квадрат 1080p:

json
{
  "model": "seedance-2.0",
  "resolution": "1080p",
  "prompt": "A ceramic cup rotates slowly on a table, stable lighting.",
  "seconds": "12",
  "aspect_ratio": "1:1"
}

Автоматическая длительность только у 2.5:

json
{
  "model": "seedance-2.5",
  "resolution": "720p",
  "prompt": "A small kite rises above a beach.",
  "seconds": "-1"
}

Mini и Fast требуют текст. Если добавлен аудиореференс, им также нужно изображение или видео. Роли медиа, смешанные референсы, edit, extend и черновик описаны в Референсах. Доступность режимов зависит от подключения и ключа.