# Seedance 2.0 V2 视频 API

# Seedance 2.0 V2 视频 API

本文是 U9AI 当前公开的 Seedance 2.0 Mini / Fast V2 视频任务契约。它使用 U9AI API 密钥，不使用供应商密钥、浏览器 Cookie 或网站登录会话。V2 是异步协议：创建成功只代表任务已受理，必须继续查询任务并检查输出资源。

## 端点与鉴权

所有请求使用 HTTPS，并带上 `Authorization: Bearer $U9AI_API_KEY`。先用模型目录确认密钥本次可用；模型是否对该密钥开放仍以实际返回为准。

| 操作 | 方法与地址 |
| --- | --- |
| 查看可用模型 | `GET https://u9ai.ai/v1/models` |
| 创建 Mini 任务 | `POST https://u9ai.ai/api/v2/open/aigc/seedance2-0-mini-oversea` |
| 创建 Fast 任务 | `POST https://u9ai.ai/api/v2/open/aigc/seedance2-0-fast-oversea` |
| 查询一个任务 | `GET https://u9ai.ai/api/v2/open/aigc/{taskId}` |
| 批量查询任务 | `POST https://u9ai.ai/api/v2/open/aigc/batch` |
| 查询余额 / 请求记录 | `GET https://u9ai.ai/api/v2/open/balance` / `GET https://u9ai.ai/api/v2/open/records` |

不要把上游 V3 的 `/api/v3/...` 路径或 `generate_audio` 字段混入这里的 V2 请求。U9AI 当前 Seedance V2 的音轨字段是 camelCase：`generateAudio`。

## 创建任务

`content` 必须是数组，并至少包含一个 `type: "text"` 的提示词项。Mini 和 Fast 支持 `480p`、`720p`；时长为 4–15 秒。常用比例为 `16:9`、`9:16`、`1:1`、`4:3`、`3:4`、`21:9` 或 `adaptive`。

参考素材使用服务端可读取的完整 HTTPS URL，或完整 `data:image/...;base64,...` URI；不要传本地文件路径、私网 URL 或需要浏览器登录的链接。图片可使用 `first_frame`、`last_frame` 或 `reference_image` 角色。一个请求不要同时把同一张图当作首帧和尾帧；多图参考请在提示词中按“图片1”“图片2”说明用途。

```bash
curl --fail-with-body -sS "https://u9ai.ai/api/v2/open/aigc/seedance2-0-mini-oversea" \
  -H "Authorization: Bearer $U9AI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "content": [
      {"type":"text","text":"以图片1为参考，生成自然镜头运动的短视频。"},
      {"type":"image_url","image_url":{"url":"https://example.com/your-authorized-image.jpg"},"role":"reference_image"}
    ],
    "ratio":"9:16",
    "duration":5,
    "resolution":"720p",
    "generateAudio":true
  }'
```

将路径中的 `mini` 替换为 `fast` 即可创建 Fast 任务。仅在希望无声成片时设置 `generateAudio: false`；生成音轨不保证逐字旁白、字幕或特定配乐，成片必须验收。

创建响应应同时满足 HTTP 成功、无业务错误且含有非空 `data.taskId`。立即保存 `data.taskId`、U9AI 返回的 `X-Request-ID` 和时间；不要把 API 密钥写入日志。网络超时、5xx 或响应缺少任务 ID 时，标记为“提交结果未知”，停止自动重复创建，先通过请求记录或人工排查确认是否已产生任务与费用。

## 查询、下载与失败处理

```bash
curl --fail-with-body -sS \
  -H "Authorization: Bearer $U9AI_API_KEY" \
  "https://u9ai.ai/api/v2/open/aigc/YOUR_TASK_ID"
```

V2 任务状态常见为 `processing`、`success`、`failed`。`success` 时从 `data.result` 的 URL 数组取得成片；`failed` 时读取 `data.errorMsg`。请按账户限额处理 429 与 `Retry-After`，建议单并发并使用渐进轮询。下载 `data.result` 时不要向结果文件域名发送 API 密钥；校验 HTTP 状态、非空文件、可播放的视频流和音轨后再向终端用户展示。

这类创建会消耗余额。开始前设置单任务和总任务预算，完成后以 U9AI 请求记录和钱包流水为准。`GET /v1/models` 成功只说明认证和目录查询成功，不等于已完成视频生成。

## 移交排障信息

需要技术支持时，请提供时间（含时区）、模型、HTTP 状态、`X-Request-ID`、`CF-Ray`（如有）、业务错误码、taskId、最终状态与 `data.errorMsg`。不要提供 API 密钥、Authorization 请求头、Cookie、私有素材 URL、原始素材或付款信息。
