快速开始
从零到拿到一段视频,只需要三步。下面所有示例都可以直接复制运行,把 <API Key> 换成你自己的即可。
1. 获取 API Key
登录 用户控制台,在「API Key」区域创建一个 Key。Key 只在创建时完整显示一次,请及时保存。
2. 提交任务
向 POST /v1/contents/generations/tasks 提交一个任务。请求体里 content[] 描述输入内容,
model 指定使用哪个模型。
curl -X POST https://myapi.firstarpc.com/v1/contents/generations/tasks \
-H "Authorization: Bearer <API Key>" \
-H "Content-Type: application/json" \
-d '{
"model": "vipro-main",
"content": [
{ "type": "text", "text": "一只猫在海边奔跑,电影感,夕阳,4k" }
],
"ratio": "16:9",
"duration": 5,
"resolution": "720p"
}'
提交成功后立即返回任务号,此时任务已进入队列,积分在提交时扣除:
{
"id": "task_eGPN7DPXHZxymgJlf0TxYHbRZHDgdOCO",
"upstream_id": "cgt-20261010080537-ckd7m"
}
请保存 id,后续轮询、对账、排查都靠它。任务号在服务端保留 7 天。
3. 轮询结果
用任务号轮询 GET /v1/contents/generations/tasks/{task_id},直到 status 变为终态。
curl https://myapi.firstarpc.com/v1/contents/generations/tasks/task_eGPN7DPXHZxymgJlf0TxYHbRZHDgdOCO \
-H "Authorization: Bearer <API Key>"
生成中:
{
"id": "task_eGPN7DPXHZxymgJlf0TxYHbRZHDgdOCO",
"status": "running",
"created_at": 1791590737,
"updated_at": 1791590760
}
生成完成 —— 视频地址在 content.video_url:
{
"id": "task_eGPN7DPXHZxymgJlf0TxYHbRZHDgdOCO",
"upstream_id": "cgt-20261010080537-ckd7m",
"model": "doubao-seedance-2-0-fast-260128",
"status": "succeeded",
"created_at": 1791590737,
"updated_at": 1791591000,
"content": {
"video_url": "https://ark-acg-cn-beijing.tos-cn-beijing.volces.com/....mp4?X-Tos-Expires=86400&..."
},
"seed": 23751,
"resolution": "720p",
"ratio": "16:9",
"duration": 15,
"framespersecond": 24,
"generate_audio": true,
"output_format": "mp4",
"execution_expires_after": 172800,
"usage": { "completion_tokens": 324900, "total_tokens": 324900 }
}
视频地址是带签名的临时链接,请及时转存。
content.video_url 由存储服务签发,默认有效期 24 小时(见 URL 里的 X-Tos-Expires 参数)。
拿到后请立刻下载到你自己的存储,不要把这个 URL 长期存库或直接下发给终端用户。
完整示例
文生视频
只用一段文字描述画面。
curl -X POST https://myapi.firstarpc.com/v1/contents/generations/tasks \
-H "Authorization: Bearer <API Key>" \
-H "Content-Type: application/json" \
-d '{
"model": "vipro-main",
"content": [
{ "type": "text", "text": "雨夜的东京街头,霓虹灯倒映在积水里,镜头缓慢推进" }
],
"ratio": "16:9",
"duration": 5,
"resolution": "720p",
"seed": 12345,
"watermark": false
}'
图生视频
给一张起始图,让画面动起来。图片用 role: "reference_image" 标记。
curl -X POST https://myapi.firstarpc.com/v1/contents/generations/tasks \
-H "Authorization: Bearer <API Key>" \
-H "Content-Type: application/json" \
-d '{
"model": "vipro-main",
"content": [
{ "type": "text", "text": "镜头缓慢推近,人物转头看向窗外" },
{ "type": "image_url",
"image_url": { "url": "https://your-cdn.com/start-frame.jpg" },
"role": "reference_image" }
],
"duration": 5,
"resolution": "720p"
}'
多参考素材
两个模型都支持同时投喂多张图片、参考视频与参考音频,用 @图1、@音频1
这类名字在提示词里引用。带视频输入时请一并阅读
参考模式。
curl -X POST https://myapi.firstarpc.com/v1/contents/generations/tasks \
-H "Authorization: Bearer <API Key>" \
-H "Content-Type: application/json" \
-d '{
"model": "vipro-main",
"content": [
{ "type": "text", "text": "@图1 的人物走进 @图2 的场景,自然转头看向镜头" },
{ "type": "image_url",
"image_url": { "url": "https://your-cdn.com/person.jpg" },
"role": "reference_image" },
{ "type": "image_url",
"image_url": { "url": "https://your-cdn.com/scene.jpg" },
"role": "reference_image" }
],
"duration": 5,
"resolution": "720p"
}'
响应头
提交任务的响应里带有两个计费相关的头,可以直接读出本次消耗与余额:
| 响应头 | 含义 |
|---|---|
x-credits-consumed | 本次任务扣除的积分数 |
x-credits-remaining | 扣除后账户剩余积分 |
积分在提交时扣除。任务失败会自动退款,见 计费与错误码。
轮询建议
- 间隔 5 秒起,视频生成通常需要数十秒到数分钟,过于频繁没有收益。
- 设置总超时,建议 30 分钟;超时后停止轮询并按失败处理。
- 只在终态停止:succeeded 或 failed / expired / cancelled。
- 轮询是幂等的,重复查询不会重复扣费,也不会重复退款。