需要通过任务 ID 轮询调用 GET 接口,才能获取任务的 status 和 video_url;在创建任务完成后,先提取返回结果中的 32 位 id,再使用该 ID 请求 https://ark.cn-beijing.volces.com/api/v1/videos/{id}。当鉴权成功且 status 为 succeeded 时,即可拿到 24 小时内有效的 video_url。

如果你想在调用 Seedance 视频生成 API 之后,准确判断任务是否执行完成、是否报错,以及视频 URL 是否已经可用,就不能只靠手动刷新页面猜结果,而应通过程序主动查询,直接获取明确的 status 和 video_url。这一步是视频下载、文件转存、业务嵌入等后续操作的前提,缺失后整个流程都无法稳定推进。
获取任务ID
调用创建视频任务接口(POST /api/v1/videos)成功后,必须从响应体中提取 【id】 字段的值。这个任务 ID 是后续查询任务状态的唯一标识,不能用模型名称、提示词内容或时间戳替代。
需要注意的是,该 ID 由火山引擎服务端自动生成,长度固定为 32 位小写字母与数字组合,例如 6a2f8c1e9d4b3a7f0c8e2d1b5a9f4c6。如果返回结果中没有 id 字段,通常意味着任务创建未成功,此时不要继续发起状态查询。
构造查询请求
向 GET https://ark.cn-beijing.volces.com/api/v1/videos/{id} 发起 HTTP 请求,其中 {id} 需要替换为上一步实际获取到的任务 ID。
请求 Header 中必须携带 Authorization: Bearer YOUR_API_KEY,并且这里的 YOUR_API_KEY 必须与创建任务时使用的 API Key 完全一致。若密钥不匹配,接口会返回 401 错误,而且通常不会进一步说明具体是哪一个密钥无效。
Endpoint 中的 cn-beijing 属于固定且强制的区域标识,不能替换为 cn-shanghai、global 等其他地域,否则请求会被系统直接拒绝。
解析返回结果并判断状态
第一步:先检查 HTTP 状态码。200 代表接口连通且鉴权通过;404 表示任务 ID 不存在或任务已过期(任务信息通常仅保留 7 天);401/403 则说明 API Key 无效,或当前账号权限不足。
第二步:读取响应 JSON 中的 status 字段值,并按照以下逻辑进行处理:
• queued 或 running:表示视频生成任务尚未完成,需要等待后再次查询。建议至少间隔 3 秒再进行下一次轮询,若查询频率过高,可能触发接口限流(单 IP 每分钟最多 30 次)。
• succeeded:表示任务已成功完成,应立即读取 content.video_url。该视频下载链接的有效期只有 24 小时,【必须在获取后10分钟内发起下载请求】,否则可能因为 CDN 缓存刷新而导致链接失效。
• failed 或 expired:表示任务异常结束或已过期。此时应进一步读取 error.message 的具体内容,常见原因包括提示词含有违禁词、分辨率参数超出模型支持范围、参考图片格式损坏或资源不可用等。
• cancelled:通常只会在主动调用取消接口后出现,表示任务已被人工终止,因此不会生成任何视频结果。
