提交视频任务

异步文生 / 图生视频, 支持 Seedance 全系

POST /v1/videos/generations

Auth: {'type': 'bearer', 'prefix': 'sk-', 'description': 'API Key, 使用 `Authorization: Bearer sk-xxx` 鉴权'}

## Seedance 视频生成 字节 Seedance 全系 (BytePlus ModelArk) 异步视频生成. **提交立即返回 task_id**, 终态由 GET 查询接口拿. ### 主要特性 - **BytePlus 原生协议透传**: body 字段跟 BytePlus 官方文档 1:1 对应 (`content` / `ratio` / `duration` / `generate_audio` / `seed` 等), 0 协议转换, 0 字段魔改 - **视频时长**: 统一支持 **4-15 秒** 范围 (各模型实际上限不同, 超出时上游会返 400) - **音频生成**: Seedance 2.0 / 2.0 Fast / 1.5 Pro 支持 `generate_audio: true` - **图生视频 / 视频续写**: 通过 `content[]` 数组传 `image_url` / `video_url` block (Seedance 2.0 V2V) - **Draft 预览**: Seedance 1.5 Pro 支持 `draft_task` 续推 ### 官方文档 请参考 [BytePlus 官方文档](https://docs.byteplus.com/en/docs/ModelArk/2291680) 字段语义 / 模型差异 / 错误码 全部跟官方一致. ### 调用流程 1. POST `/v1/videos/generations` → 立即返 `task_id` + `status=processing` 2. GET `/v1/videos/generations/{task_id}` 轮询 → 拿到 `succeeded` + `content[].video_url` 3. 终态 succeeded / failed — 平台 5 表自动记账 (扣费 / 退款链路完整闭环) 详细字段说明 + 5 个模型矩阵 + V2V / A2V / Draft 用法见: [Seedance 视频生成 (详细)](#seedance-video-detailed)

Request body

modelstringrequiredSeedance 模型 ID. 全部 5 个变体: - dreamina-seedance-2-0-260128 (顶级, 支持 V2V/A2V) - dreamina-seedance-2-0-fast-260128 (快速) - seedance-1-5-pro-251215 (Draft 预览) - seedance-1-0-pro-250528 (旗舰平衡) - seedance-1-0-pro-fast-251015 (经济快速) - dreamina-seedance-2-0-mini-260615 (轻量经济, 支持 V2V)
contentarrayBytePlus 原生输入数组 (推荐主用法). 5 种 type: - text: { type:"text", text:"..." } 文本提示词 - image_url: { type:"image_url", image_url:{ url, role:"first_frame"|"last_frame"|"reference_image" } } 图生视频 - video_url: { type:"video_url", video_url:{ url, role:"reference_video" } } 视频续写 (Seedance 2.0) - audio_url: { type:"audio_url", audio_url:{ url } } 音频生视频 (Seedance 2.0 A2V) - draft_task: { type:"draft_task", draft_task:{ task_id } } Draft 续推 (Seedance 1.5 Pro) 如果不传, endpoint 会从.
resolutionstring分辨率
ratiostringBytePlus 原生宽高比
durationinteger视频时长 (秒). 统一范围 4-15s, 各模型实际上限不同 (超出时上游返 400). 具体见 [BytePlus 官方文档](https://docs.byteplus.com/en/docs/ModelArk/2291680)
generate_audioboolean生成同步音频 (BytePlus 原生字段). 仅 Seedance 2.0 / 2.0 Fast / 1.5 Pro 支持
seedinteger随机种子 (0~2^32-1), 固定后同 prompt 可复现相似视频
waitbooleantrue=阻塞模式 (最长 60s 同步等结果), false=异步立即返回 task_id (推荐)

Responses

Example

curl -X POST https://api.router.ai/v1/videos/generations \
  -H "Authorization: Bearer $YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "dreamina-seedance-2-0-260128",
    "content": [{ "type": "text", "text": "一只猫在海边奔跑" }],
    "ratio": "16:9",
    "duration": 5
  }' 

## 错误处理 | HTTP 状态码 | 错误类型 | 描述 | |---|---|---| | 400 | `InvalidParameter` | 参数错误 | | 400 | `InvalidParameter.MissingRequired` | 必填字段未提供 (e.g. prompt / model / content[]) | | 400 | `InvalidParameter.NotInEnum` | 枚举值非法 (resolution / aspect_ratio / role 等) | | 400 | `InvalidParameter.UnsupportedImageFormat` | 图片格式不支持 | | 400 | `InvalidParameter.UnsupportedVideoFormat` | 视频格式不支持 | | 400 | `InvalidParameter.UnsupportedAudioFormat` | 音频格式不支持 | | 400 | `InvalidParameter.ImageSizeTooLarge` | 图片体积超上游单文件限制 | | 400 | `InvalidParameter.VideoSizeTooLarge` | 输入视频体积超限 | | 400 | `InvalidParameter.VideoDurationTooLong` | 输入视频时长超上限 | | 400 | `InvalidParameter.PromptTooLong` | prompt 字符数超模型上限 | | 400 | `InvalidParameter.UrlNotAccessible` | 上游下载客户提供的 image_url/video_url 失败 | | 400 | `InvalidParameter.UrlInvalid` | URL 格式非法 (非 http(s) / 字符错) | | 400 | `InvalidParameter.AspectRatioMismatch` | aspect_ratio 与输入图比例不一致 | | 400 | `InvalidParameter.ResolutionNotSupported` | 该模型不支持指定 resolution | | 400 | `InvalidParameter.DurationOutOfRange` | duration 超模型支持范围 | | 400 | `InvalidParameter.ContentEmpty` | prompt / content[] 全空 | | 400 | `InvalidParameter.UnsupportedRole` | content[].role 非法 | | 400 | `InvalidParameter.DataInspectionFailed` | 输入数据规格检查失败 (跟内容审核不同维度) | | 400 | `DataInspectionFailed` | 同上无前缀变体 | | 400 | `InputImageSensitiveContentDetected` | 输入图片包含敏感内容 (主类) | | 400 | `InputTextSensitiveContentDetected` | prompt 包含敏感内容 (主类, 子分类同 Image) | | 400 | `InputVideoSensitiveContentDetected` | 输入视频包含敏感内容 | | 400 | `InputAudioSensitiveContentDetected` | 输入音频包含敏感内容 | | 400 | `invalid_request_error` | 平台参数校验失败 (模型类型不匹配 / 必填字段缺失等) | | 401 | `unauthorized` | 无效或缺失. 检查 Bearer sk-xxx header | | 402 | `insufficient_balance` | 余额不足, 充值后重试 | | 403 | `permission_denied` | 模型未授权 / Token 被禁 / Token 过期 | | 404 | `model_not_found` | 模型名拼错或已下架 | | 404 | `ResourceNotFound` | 任务 ID 不存在或已过 BytePlus 7-8 天保留期被清理 | | 409 | `idempotency_conflict` | 同请求短时间重复提交, 等几秒重试或修改参数 | | 429 | `rate_limit_exceeded` | RPM/TPM 限流, 看 `Retry-After` header 退避 | | 429 | `RateLimitExceeded` | 上游限流 | | 429 | `Throttling` | 上游限流, 同 RateLimitExceeded | | 429 | `ConcurrencyExceeded` | 单时刻并发超 max_concurrent, 减少并发 | | 500 | `internal_error` | 平台服务端错 | | 500 | `InternalError` / `InternalServerError` | 上游内部错, 同上重试策略 | | 502 | `service_unavailable` | 上游通道全不可用 | | 502 | `BadGateway` | 上游网关错 | | 503 | `ServiceUnavailable` | 上游服务暂不可达 | | 504 | `RequestTimeout` / `ModelTimeoutException` | 上游推理超时 |

API reference