快速开始
你将使用一个 API 令牌(形如 sk-...)通过 HTTP 调用视频生成模型。生成是异步任务:提交后返回 task_id,再通过轮询查询状态,成功后获取视频地址或从代理接口下载。
服务地址(Base URL)
你的服务方会提供一个域名(例如 https://hsq.cyds.site)。后续示例默认使用:
https://hsq.cyds.site
如果示例里出现 localhost,通常是服务端“服务器地址”尚未配置为公网域名。
鉴权
所有 API 请求都需要在请求头中带上令牌:
Authorization: Bearer sk-your_token
令牌泄露等同于余额泄露。请妥善保管,不要上传到 GitHub 或公开日志。
视频生成(Task API)
推荐使用任务接口(更稳定、适配多供应商)。主要有 3 个端点:
POST /v1/video/generations:提交生成任务(text2video / image2video / edit 统一入口)GET /v1/video/generations/{task_id}:查询任务状态GET /v1/videos/{task_id}/content:下载视频代理(可选)
1)提交任务
最小请求只需要 model 与 prompt。更多参数通过 metadata 传递(不同模型可用参数不同)。
curl "${BASE_URL}/v1/video/generations" \
-H "Authorization: Bearer sk-your_token" \
-H "Content-Type: application/json" \
-d '{
"model": "doubao-seedance-2-0-260128",
"prompt": "一个宇航员在月球上行走,电影质感",
"seconds": "5",
"metadata": {
"resolution": "720p",
"ratio": "16:9",
"watermark": false
}
}'
说明:seconds 可以传字符串,服务端会自动兼容。你也可以把可选参数放入 metadata。
2)轮询任务状态
提交后会返回一个 task_id(形如 task_xxx)。使用它轮询:
curl "${BASE_URL}/v1/video/generations/task_xxxxxx" \
-H "Authorization: Bearer sk-your_token"
当任务完成后,响应里通常会包含:
status:queued/running/succeeded/failedurl:成功时的视频地址usage.total_tokens:成功时用于计费的 token 总量
3)下载视频(可选)
如果你希望始终从你的服务域名下载视频(不直接暴露上游地址),可以使用代理下载:
curl -L "${BASE_URL}/v1/videos/task_xxxxxx/content" \
-H "Authorization: Bearer sk-your_token" \
-o out.mp4
计费规则(预扣费 + 多退少补)
视频生成属于异步任务。提交任务时系统会先进行一次预扣费;任务完成后会根据 usage.total_tokens 进行最终结算,多退少补;任务失败则自动退款。
计费流程
- 提交任务:系统先预扣一笔额度,用于防止长任务在余额不足时无法结算。
- 任务成功:返回
usage.total_tokens后,系统按实际消耗重新计算应扣额度,与预扣差额进行补扣或退还。 - 任务失败:系统会将预扣额度退还到你的余额。
不同类型的任务(例如是否携带参考视频)会影响最终结算的计费系数,但这些规则由系统自动处理,调用方无需自行计算价格。
客户端如何传“参考视频输入”
在提交任务时,将参考视频放入 metadata.content,并包含 video_url 条目即可被识别为“含视频输入”:
curl "${BASE_URL}/v1/video/generations" \
-H "Authorization: Bearer sk-your_token" \
-H "Content-Type: application/json" \
-d '{
"model": "doubao-seedance-2-0-260128",
"prompt": "把这个视频改成赛博朋克风格",
"metadata": {
"content": [
{ "type": "video_url", "video_url": { "url": "https://example.com/input.mp4" } }
]
}
}'
如果没有 metadata.content 或其中没有 video_url,将被识别为不含参考视频输入的任务类型。最终扣费以任务完成时的 usage.total_tokens 结算为准。
OpenAI 兼容视频接口(可选)
如果你的客户端已经按 OpenAI Video API 路径实现,也可以使用:
POST /v1/videos:创建视频任务GET /v1/videos/{task_id}:查询视频任务
curl "${BASE_URL}/v1/videos" \
-H "Authorization: Bearer sk-your_token" \
-H "Content-Type: application/json" \
-d '{
"model": "doubao-seedance-2-0-260128",
"prompt": "一个宇航员在月球上行走,电影质感"
}'
常见错误
401 未授权
- 未携带
Authorization: Bearer ... - 令牌被禁用或删除
- 令牌无调用权限
额度不足
- 余额不足,联系管理员线下充值后后台加额
排障建议
- 确认 Base URL 正确且为公网域名。
- 确认令牌“状态为启用”,并允许调用对应模型。
- 提交任务后先用
GET /v1/video/generations/{task_id}查状态,成功后再取视频。