{"model":"seedance-2.0","prompt":"阳光斜射在青砖墙面上形成45度角阴影","seconds":8,"metadata":{"resolution":"1080p","ratio":"16:9"},"watermark":false,"generate_audio":true,"camera_fixed":false}

在调用Seedance视频生成API时,你需要使用标准 JSON 格式准确构造请求体。字段名称拼写、嵌套层级或数据类型只要稍有偏差,就可能返回 422 错误,甚至出现静默失败,因此不能简单依赖复制粘贴模板。
基础结构必须包含的字段
所有 API 请求都必须包含 model、prompt、seconds 这三个顶层字段,缺少任意一个都会导致请求无效。其中,model 的值必须严格匹配最新官方文档中的 Model ID,例如 seedance-2.0,绝不能写成 seedance2.0 或 Seedance-2.0。prompt 字段也不能为空,既不能是空字符串,也不能只填写空格,否则系统会直接拒绝任务。
seconds 必须是数字类型,而不是字符串,允许的取值范围为 4~15;一旦超出范围,就会触发 422 参数校验失败。
【model字段必须全部小写且保留连字符,写成SEEDANCE-2.0或seedance20都会直接导致404错误】
metadata对象的写法要点
resolution 和 ratio 必须放在 metadata 对象内部,不能错误地平级写在根节点下。这两个字段都属于字符串类型,但可填写的值有严格限制:resolution 只能是"480p"、"720p"、"1080p"、"4k"其中之一;ratio 只能填写"21:9"、"16:9"、"4:3"、"1:1"、"3:4"、"9:16"之一。
watermark、generate_audio、camera_fixed 等布尔类型字段,必须使用 true 或 false,不能写成"true"、"false"或 1/0,否则会导致 JSON 解析失败或接口报错。
seed 字段属于可选参数,但如果填写,必须为整数;如果传入小数或负数,可能会被系统截断,也可能直接报错。
多模态混合输入的JSON结构
方法一:文本+图片组合(图生视频首帧)
在 content 数组中按顺序放入 text 和 image 类型对象,image 的 url 必须为公网可直接访问的 HTTPS 地址,同时图片格式需为 JPG/PNG,文件大小不能超过 8MB。
方法二:纯文本驱动(文生视频)
content 数组中只保留一个 type 为 text 的对象,text 字段中的描述建议覆盖画面主体、场景环境、镜头运动、光影氛围等维度,尽量避免“美丽”“震撼”这类抽象词,推荐改用“阳光斜射在青砖墙面上形成45度角阴影”这种更容易被模型准确渲染的提示词。
方法三:带音频参考的视频生成
在 content 数组末尾追加一个 type 为 audio 的对象,url 字段填写 MP3/WA V 格式的音频公网链接,音频时长建议控制在 5~12 秒之间,时间过长可能引发超时问题。
异步任务的完整请求链路
首先,向 /v1/video/generations 接口发送 POST 请求,并确保同时携带 Authorization 请求头和正确的 JSON 请求体。接着,从接口响应中提取 task_id 字段的值。然后,使用这个 task_id 拼接对应的 GET 查询地址,并对 /task_xxx 路径进行轮询查询。之后,检查返回结果中的 data.status 是否为 SUCCESS。最后,获取 data.result_url 并下载生成的视频文件。
需要特别注意的是:查询接口返回的 result_url 仅在 24 小时内有效,链接过期后将无法再次播放或下载。
