视频生成 API
使用 TeamoRouter API Key 调用视频接口。所有路径都带 /v1 前缀,任务接口统一为 /v1/videos。认证头为 Authorization: Bearer $TEAMO_API_KEY。
接口列表
| 方法 | 完整路径 | 用途 |
|---|---|---|
| GET | /v1/models?type=video |
视频模型及支持的参数 |
| POST | /v1/videos |
创建视频任务 |
| GET | /v1/videos |
列出自己的视频任务 |
| GET | /v1/videos/{video_id} |
查询任务状态 |
| GET | /v1/videos/{video_id}/content |
下载已完成的 MP4 |
| DELETE | /v1/videos/{video_id} |
删除已结束的任务及媒体 |
OpenAPI 文件。创建、查询、分页、下载和删除采用 OpenAI Videos 的接口形态;模型使用 TeamoRouter 目录中的 ID。暂不支持 Files API 的 file_id、remix、edit、extend、thumbnail 和 spritesheet。
模型列表
目录来自当前服务。参数保留 API 原始大小写,最新约束以 GET /v1/models?type=video 为准,账户可用性以接口响应为准。
左右滚动表格查看完整参数;— 表示目录未提供该选项。
| 模型 / API ID | 类型 | 时长 | 分辨率 | 画幅 | 目录状态 |
|---|
最新状态和参数以 GET /v1/models?type=video 为准。model_spec.offline: true 表示模型当前不可用。时长、分辨率和画幅必须符合 model_spec.constraints。
创建视频
支持 JSON 和 multipart/form-data。model、prompt 必填。seconds 是秒数字符串,默认 "4";size 为 宽x高,省略时使用该模型目录的首个分辨率和画幅组合。每个模型支持的值不同。
curl https://api.teamorouter.com/v1/videos \
-H "Authorization: Bearer $TEAMO_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: my-video-request-001" \
-d '{"model":"seedance-2-0-mini-text-to-video-basic","prompt":"一只小狗在草地上奔跑","seconds":"4","size":"854x480"}'
也可以使用 duration(如 "4s")、resolution、aspect_ratio、audio 等模型专用扩展参数。不要提交相互冲突的 seconds / duration 或 size / 分辨率、画幅组合。
图生视频可传 input_reference: {"image_url":"https://..."} 或 base64 data URL;multipart 可上传 input_reference 文件(PNG、JPEG、WebP)。参考图模型会将其作为参考图输入。首尾帧和多参考素材可使用模型支持的 image_url、end_image_url、reference_image_urls、reference_video_urls 等扩展字段。
提交时建议设置 Idempotency-Key。结果不明确时,必须用原 Key 和完全相同的参数重试,避免重复生成。返回的 id 是后续操作的 video_id。
{
"id": "video_id",
"object": "video",
"model": "seedance-2-0-mini-text-to-video-basic",
"status": "queued",
"progress": 0,
"created_at": 1793019600,
"completed_at": null,
"expires_at": 1793624400,
"seconds": "4",
"size": "854x480",
"error": null,
"remixed_from_video_id": null
}
查询和下载
每 5–10 秒查询 GET /v1/videos/{video_id}。响应始终为 JSON,状态为 queued、in_progress、completed 或 failed;时间戳使用 Unix 秒。失败原因在 error.code 和 error.message 中。
完成后单独下载,不要将查询响应保存为视频:
curl "https://api.teamorouter.com/v1/videos/VIDEO_ID/content" \
-H "Authorization: Bearer $TEAMO_API_KEY" --output video.mp4
variant 仅支持 video。未完成返回 409;媒体过期、已删除或不属于当前账户返回 404。媒体保留 7 天,以 expires_at 为准。
OpenAI Python SDK
import os, time
from openai import OpenAI
client = OpenAI(api_key=os.environ["TEAMO_API_KEY"], base_url="https://api.teamorouter.com/v1")
video = client.videos.create(
model="seedance-2-0-mini-text-to-video-basic",
prompt="A small dog running on grass",
seconds="4",
size="854x480",
extra_headers={"Idempotency-Key": "my-video-request-001"},
)
while video.status in ("queued", "in_progress"):
time.sleep(5)
video = client.videos.retrieve(video.id)
if video.status == "failed":
raise RuntimeError(video.error)
client.videos.download_content(video.id).write_to_file("video.mp4")
列表和删除
GET /v1/videos?limit=20&order=desc 返回 object: "list"、data、first_id、last_id 和 has_more。limit 范围为 1–100;order 支持 asc / desc。有下一页时,将 last_id 作为 after 请求下一页。
DELETE /v1/videos/{video_id} 仅允许删除已完成或失败的任务,返回 {"id":"video_id","object":"video.deleted","deleted":true}。删除后无法再次查询或下载,不会取消正在生成的任务。
工作台扩展
网站使用 /v1/videos/catalog、/v1/videos/models、/v1/videos/quote、/v1/videos/{video_id}/request 与 /v1/videos/conversations。它们是 TeamoRouter 扩展,不属于 OpenAI 的标准任务接口。