快速开始

从零到拿到一段视频,只需要三步。下面所有示例都可以直接复制运行,把 <API Key> 换成你自己的即可。

1. 获取 API Key

登录 用户控制台,在「API Key」区域创建一个 Key。Key 只在创建时完整显示一次,请及时保存。

2. 提交任务

向 POST /v1/contents/generations/tasks 提交一个任务。请求体里 content[] 描述输入内容, model 指定使用哪个模型。

bash
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"
  }'

提交成功后立即返回任务号,此时任务已进入队列,积分在提交时扣除:

json · 200 OK
{
  "id": "task_eGPN7DPXHZxymgJlf0TxYHbRZHDgdOCO",
  "upstream_id": "cgt-20261010080537-ckd7m"
}

请保存 id,后续轮询、对账、排查都靠它。任务号在服务端保留 7 天。

3. 轮询结果

用任务号轮询 GET /v1/contents/generations/tasks/{task_id},直到 status 变为终态。

bash
curl https://myapi.firstarpc.com/v1/contents/generations/tasks/task_eGPN7DPXHZxymgJlf0TxYHbRZHDgdOCO \
  -H "Authorization: Bearer <API Key>"

生成中:

json · 生成中
{
  "id": "task_eGPN7DPXHZxymgJlf0TxYHbRZHDgdOCO",
  "status": "running",
  "created_at": 1791590737,
  "updated_at": 1791590760
}

生成完成 —— 视频地址在 content.video_url:

json · 已完成
{
  "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 长期存库或直接下发给终端用户。

完整示例

文生视频

只用一段文字描述画面。

bash
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" 标记。

bash
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 这类名字在提示词里引用。带视频输入时请一并阅读 参考模式。

bash
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扣除后账户剩余积分

积分在提交时扣除。任务失败会自动退款,见 计费与错误码。

轮询建议