Skip to main content

简短回答

根据当前公开的 Seedance 2.0 API 文档,接口提供了“创建任务”和“查询任务状态”能力,但没有提供任务取消或删除接口。 创建任务成功后,接口会返回一个 task_id。客户端超时、网络中断、关闭网页或停止轮询,都不能作为“任务已经取消”的依据。遇到这类情况,应先查询原任务状态,再决定是否重试,避免重复创建任务。

当前公开接口和任务状态

Seedance 2.0 当前使用异步任务接口: 任务状态通常按以下流程变化:
  • queued:任务已创建,正在排队。
  • running:任务正在处理。
  • succeeded:视频生成成功。
  • failed:任务处理失败。
  • expired:任务超过有效执行时间,进入过期状态。
生成成功后,视频地址位于:
该地址是临时签名链接,当前文档说明有效期约为 24 小时。任务成功后应及时下载并保存视频。
当前公开 API 文档未提供任务取消接口。停止本地脚本或停止轮询,只会停止客户端继续查询,不能证明服务端任务已经被撤回。

任务提交后应该怎么处理?

第一步:保存 task_id 和请求信息

创建请求成功后,应立即保存返回的 task_id 同时建议记录以下信息:
  • 模型名称;
  • 提示词或提示词摘要;
  • 视频时长、分辨率、比例等主要参数;
  • 提交时间;
  • request ID;
  • 业务系统中的业务 ID。
这些信息可以用于后续查询任务、定位问题和核对账单。

第二步:查询原任务状态

Seedance 2.0 是分钟级异步任务。当前 API 文档建议:
  • 提交后等待约 20–30 秒,再进行第一次查询;
  • 后续每隔 10–20 秒查询一次;
  • 不要因为短时间内没有返回视频就立即重新提交。
查询任务示例:
请将以下占位符替换为实际值:
  • YOUR_TASK_ID:创建任务接口返回的任务 ID;
  • YOUR_API_KEY:API易控制台创建的 API Key。

第三步:根据任务状态处理

查询到不同状态后,可以按照以下方式处理:
  • 如果状态是 queued,说明任务仍在排队,继续等待并查询。
  • 如果状态是 running,说明任务正在生成,继续等待并查询。
  • 如果状态是 succeeded,从 content.video_url 获取视频并立即下载。
  • 如果状态是 failed,查看响应中的 error 信息。
  • 如果状态是 expired,查看任务详情和调用日志,确认任务过期原因。
不要把 queuedrunning 当成失败,也不要因为任务尚未完成就重复创建任务。

第四步:客户端超时后先确认任务状态

如果客户端没有收到完整响应,先不要直接重试。 建议按照以下顺序排查:
  1. 检查客户端响应中是否已经返回 task_id
  2. 检查控制台调用日志中是否已经记录任务。
  3. 如果已经有 task_id,优先查询原任务。
  4. 如果暂时没有找到 task_id,不要仅凭网络错误判断任务一定没有创建。
  5. 如果无法确认任务是否创建,再联系客服核查后重试。
这是因为客户端超时只说明客户端没有在预期时间内收到响应,不足以单独证明服务端没有创建任务。

如何避免重复提交?

以下内容属于接入侧的工程实践,不是平台强制规则:
  • 为每次业务请求生成唯一的业务 ID。
  • 保存业务 ID 与 Seedance task_id 的对应关系。
  • 用户点击提交后,暂时禁用重复提交按钮。
  • 客户端超时或进程退出后,优先恢复查询原任务。
  • 保存提示词、模型、时长、比例和参考素材等请求信息。
  • 只有在确认原任务不存在或已经明确失败后,再考虑是否重新提交。
  • 轮询程序应区分处理中状态和终态,不要把 queuedrunning 当成失败。
对于 Agent、脚本或后台服务,建议将任务创建和任务查询拆开处理:
这样即使本地程序退出,也可以在恢复后继续查询原任务,而不是重新创建任务。

重复提交后如何核对扣费?

Seedance 2.0 当前文档说明,计费采用:
因此,余额变化和日志记录可能不是一次性完成的。概览文档还说明,一条视频任务可能对应预扣费和后续结算等多条日志记录,最终应以调用日志为准。 另外,因参数错误被拒、且没有创建成功任务的请求,例如 InvalidParameter 类型的 HTTP 400 请求,当前文档说明不计费。 但以下情况不能仅凭一个状态直接判断是否扣费:
  • 客户端 timeout;
  • 网络断开;
  • failed
  • expired
  • 客户端没有收到完整响应;
  • 客户端显示请求失败,但服务端可能已经创建任务。
如果已经重复创建了多个任务,请先停止继续提交,并整理以下信息:
  • 所有相关的 Seedance task_id
  • 对应的 request ID;
  • 提交时间;
  • 模型名称;
  • 主要请求参数;
  • 控制台调用日志;
  • 账单或扣费记录截图。
然后联系客服进行人工核查。是否产生费用、是否存在重复扣费,以及后续是否可以进行费用处理,应以实际任务记录、调用日志、账单记录和平台核查结果为准。
不建议直接根据 failedexpired 或客户端 timeout 判断“一定扣费”或“一定不扣费”。

常见问题

我停止轮询后,Seedance 任务会自动停止吗?

不能这样判断。 停止轮询只表示客户端不再继续查询任务状态。当前公开 API 文档没有提供取消接口,因此客户端停止轮询不等于已经取消服务端任务。 请保存原来的 task_id,稍后继续查询。

请求超时后可以直接重试吗?

不建议直接重试。 应先检查:
  • 响应中是否包含 task_id
  • 控制台调用日志中是否已经有任务记录;
  • 原任务当前是什么状态;
  • 是否已经产生对应的计费记录。
如果原任务已经创建,应先查询原任务,避免同一业务请求生成多个视频任务。

任务显示 failed 或 expired,一定不会扣费吗?

不能仅凭任务状态判断费用结果。 Seedance 2.0 使用提交预扣、完成后结算的计费方式。请同时查看调用日志和账单记录。如果发现费用记录异常,请提供任务 ID 和 request ID 联系客服核查。

参数错误导致 HTTP 400 会扣费吗?

当前文档说明,因参数错误被拒、且未创建任务的请求不计费。 例如:
  • 参数格式错误;
  • 不支持的分辨率;
  • 非法的宽高比;
  • 不支持的视频时长;
  • 模型与参数组合不匹配。
但不要把所有 HTTP 400 都简单归类为同一种情况,最终仍应以具体错误信息、任务记录和调用日志为准。

成功后生成的视频地址可以保存多久?

当前文档说明,成功响应中的 content.video_url 是临时签名地址,有效期约为 24 小时。 建议在任务变成 succeeded 后立即下载并转存,不要把该地址当作永久链接。 当前文档还说明,任务 ID 本身保存期限为 7 天。为了方便业务追踪,仍建议在自己的系统中保存任务记录。

相关文档

联系我们

如果遇到以下情况,可以联系客服协助核查:
  • 任务长时间停留在 queuedrunning
  • 客户端超时后无法确认任务是否创建;
  • 重复提交后出现多个任务;
  • 任务状态与扣费记录不一致;
  • 成功任务无法获取或下载视频。
联系客服时,请尽量提供:
  • Seedance task_id
  • request ID;
  • 提交时间;
  • 模型名称;
  • 主要请求参数;
  • 控制台调用日志;
  • 相关账单记录。
客服入口:企业微信客服