По возможностям

Видео

Видео всегда генерируется как задача: отправьте запрос, затем проверяйте статус или дождитесь обратного вызова. Чем длиннее и чётче ролик, тем он дороже.

#1. Выберите модель

doubao-seedance-2.0-mini$0.02288 / запросЛимиты и статус

Доступных моделей для этой задачи: 13. При переключении код ниже меняется.

#2. Скопируйте запрос

Замените YOUR_API_KEY своим ключом и выполните запрос. Показаны параметры, которые принимает эта модель.

POSThttps://www.aisplice.store/v1/videosBearer API keyАсинхронная задача

ПараметрыПоказаны только параметры, опубликованные для этой модели.

# Requires curl and jq
API_KEY="${API_KEY:-YOUR_API_KEY}"

# 1. Submit once
SUBMITTED=$(curl --fail-with-body -sS https://www.aisplice.store/v1/videos \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: model-docs-$(date +%s)-$$" \\
  -d '{
  "model": "Seedance 2.0 Mini",
  "prompt": "A cinematic scene with careful composition",
  "duration": 5,
  "resolution": "720p",
  "size": "16:9",
  "metadata": {
    "generate_audio": true
  }
}')
TASK_ID=$(printf '%s' "$SUBMITTED" | jq -r '.task_id // .id // empty')
if [ -z "$TASK_ID" ]; then
  printf '%s\n' "$SUBMITTED" >&2
  exit 1
fi
echo "task_id=$TASK_ID"

# 2. Poll until terminal
while true; do
  STATUS_JSON=$(curl --fail-with-body -sS \
    "https://www.aisplice.store/v1/videos/$TASK_ID" \
    -H "Authorization: Bearer $API_KEY")
  STATUS=$(printf '%s' "$STATUS_JSON" | jq -r '.status // empty' | tr '[:upper:]' '[:lower:]')
  echo "status=$STATUS"
  case "$STATUS" in
    completed|succeeded|success) break ;;
    failed|failure|cancelled|canceled)
      printf '%s\n' "$STATUS_JSON" | jq .
      exit 1
      ;;
  esac
  sleep 5
done

# 3. Fetch the final result
curl --fail-with-body -sS \
  "https://www.aisplice.store/v1/videos/$TASK_ID/content" \
  -H "Authorization: Bearer $API_KEY" | jq .

Этой модели нужны публичные URL медиафайлов. Сначала загрузите локальный файл, затем укажите public_url в запросе к модели. Избегайте больших тел в Base64.

Руководство по загрузке

Все параметры

Все поля, которые принимает эта модель, и допустимые значения.

model
stringобязательно

Точный идентификатор модели для этого запроса.

doubao-seedance-2.0-mini
prompt
stringобязательно

Video prompt, up to 4000 characters; 500 or fewer recommended.

duration
integerнеобязательно

Output seconds from 4 to 15.

resolution
stringнеобязательно

Запрошенное разрешение результата.

480p720p
size
stringнеобязательно

Aspect ratio between 0.5 and 2.5.

16:99:161:14:33:421:9adaptive
images
string[]необязательно

Up to 9 public reference-image URLs, or exactly one first-frame image when image_tail is set.

metadata.video_urls
string[]необязательно

Публичные HTTP(S)-URL исходных видео. Максимум элементов: 3.

Жизненный цикл ответа

Статусы задачи, конечные состояния и примеры ответов с результатом.

Отправка
{
  "id": "task_xxx",
  "task_id": "task_xxx",
  "object": "video",
  "model": "Seedance 2.0 Mini",
  "status": "queued"
}

Ожидание

queued · submitted · in_progress · processing

Успех

completed · succeeded · success

Ошибка

failed · failure · cancelled · canceled

Все поля: /v1/videos в справочнике API →

#3. Получите результат

Запрос на отправку сразу возвращает task_id. Проверяйте задачу каждые несколько секунд, пока status не станет completed, или передайте webhook_url — и мы сообщим вам, когда всё будет готово.

GET https://www.aisplice.store/v1/videos/{task_id}

GET https://www.aisplice.store/v1/videos/{task_id}/content

Длительность и разрешение определяют ценовой уровень. Выполняющуюся задачу можно отменить — см. справочник API.

Оплата только при успехе

За неудачную или отменённую задачу средства возвращаются автоматически. Итоговая стоимость каждой задачи видна в журнале запросов.

Значения статуса и опрос →Обратный вызов вместо проверок →

#Если что-то пошло не так

  • 400 с названием поля: эта модель не принимает такой параметр; используйте значения, указанные на шаге 2.
  • Референсное изображение или видео отклонено: нужен публичный URL, который модель может скачать.
  • Модель отклонила содержимое: переформулируйте промпт; отклонённые запросы не оплачиваются.
  • 402: баланса не хватает на этот запрос; пополните его в разделе «Кошелёк» и повторите.
  • 429: снизьте частоту и повторите через Retry-After секунд.
  • 503 model_not_found: имя модели неверное или модель недоступна; выберите модель на шаге 1.

Найти другую ошибку →

#Первый и последний кадры, референсные изображения и видео

Модели, которые их принимают, показывают соответствующие поля на шаге 2: первый кадр, последний кадр, референсные изображения или референсное видео. Передавайте публичные URL; локальные файлы сначала загрузите.

Как загрузить локальный файл →

Встраивание в ваш продуктКакие параметры показать пользователям сразу, а какие оставить на потом.
Какие настройки показать пользователям в первую очередьНачните с промпта и одной настройки, влияющей на цену; остальное добавляйте, когда базовый сценарий заработает.+

Творческий замысел

Поля вроде prompt должны быть в интерфейсе: пользователь сразу понимает, на что они влияют.

Множитель стоимости

Поля вроде duration, resolution, size и count стоит добавлять, только когда ценообразование уже можно понятно объяснить.

Переключатель режима

Поля вроде image, mask или ID для продолжения меняют сам сценарий работы и должны появляться только в отдельных режимах.

Служебные параметры

Поля вроде webhook_secret нужны интеграторам, а не обычным пользователям, поэтому не выносите их в стандартный интерфейс.

  • prompt
    Когда показывать
    Всегда. Задаёт сцену или направление движения.
    Рекомендуемое значение по умолчанию
    Обязательно в интерфейсе.
    Почему это важно
    Без него пользователи не смогут управлять замыслом ролика.
  • image / images
    Когда показывать
    Показывайте только в продуктах на основе референсов или генерации видео по изображению.
    Рекомендуемое значение по умолчанию
    Скрывайте в сценариях только с промптом.
    Почему это важно
    Меняет режим создания, поэтому это должно быть осознанное продуктовое решение.
  • duration
    Когда показывать
    Показывайте, когда базовый асинхронный сценарий стабилен, а цены видны пользователю.
    Рекомендуемое значение по умолчанию
    Начните с минимальной поддерживаемой длительности.
    Почему это важно
    Один из самых сильных множителей стоимости и задержки при генерации видео.
  • resolution
    Когда показывать
    Показывайте, когда клиенты явно сравнивают результат в 720p, 1080p или 4K.
    Рекомендуемое значение по умолчанию
    Выберите на сервере одно рекомендуемое разрешение.
    Почему это важно
    Чем выше разрешение, тем выше стоимость, время в очереди и риск ошибки.
  • webhook_url / webhook_secret
    Когда показывать
    Показывайте только интеграторам бэкенда, а не обычным пользователям.
    Рекомендуемое значение по умолчанию
    В продуктах с интерфейсом лучше использовать опрос.
    Почему это важно
    Они нужны для системной интеграции, а не для творчества пользователей, поэтому им не место в пользовательском интерфейсе.
recommended-rollout.txt
Phase 1
- prompt
- one size or one duration default
- submit -> poll -> content

Phase 2
- one quality or resolution selector
- clear pricing hint

Phase 3
- advanced controls such as reference media, continuation, webhook, or vendor-specific tuning

Один источник истины для результатов

Когда задача завершится, стройте приложение вокруг URL платформы, который возвращает /content. Так детали вышестоящего провайдера остаются скрытыми, а воспроизведение старых результатов — стабильным.

Проблема не решена?

Пришлите нам ID запроса или текст ошибки, и мы разберёмся.