开发者

文档

对话模型兼容 OpenAI Chat Completions;视频生成兼容 Volcengine Ark / Doubao Seedance。SDK 一行换 base_url 即可接入。

Base URL
https://www.aiapigo.com/api/v3
Auth
Authorization: Bearer sk-ai-***
协议
Volcengine Ark / Doubao Seedance 2.0
SDK 即插即用

官方 volcenginesdkarkruntime Python SDK 只需把 Ark(base_url=...) 指向https://www.aiapigo.com/api/v3, api_key 改成你的 sk-ai-***, 请求 / 响应字段按 Volcengine Ark 兼容格式返回;视频下载地址按任务加密配置返回上游明文 TOS URL 或平台签名代理 URL。

参考图真人 / 隐私校验

遇到 input_image_privacy_information 时先走素材认证

如果外部参考图包含清晰真人主体、真人肖像或可能涉及隐私信息,直接传 URL 创建视频任务可能被拦截。请先在素材管理中完成真人 H5 认证, 再把认证后的素材入库,视频生成时使用 asset://asset_id

  1. 1. 用平台 APIKey 签发素材 AK/SK,调用 CreateVisualValidateSession
  2. 2. 用户完成 H5 认证,调用 GetVisualValidateResult 获取 GroupId
  3. 3. 调用 CreateAsset 入库,等 Status=Active 后用于生成
# pip install volcengine-python-sdk[ark]
from volcenginesdkarkruntime import Ark
import time

client = Ark(
    api_key="sk-ai-***",
    base_url="https://www.aiapigo.com/api/v3",  # ← 唯一改动
)

# 1) 提交生成任务
create_result = client.content_generation.tasks.create(
    model="doubao-seedance-2.0",
    content=[
        {"type": "text", "text": "a cat surfing on a wave at sunset"},
        # 可选: 参考图 / 参考视频 / 参考音频
        # {"type": "image_url", "image_url": {"url": "https://.../ref.jpg"}, "role": "reference_image"},
    ],
    generate_audio=True,
    resolution="1080p",
    ratio="16:9",
    duration=5,
    watermark=False,
)
task_id = create_result.id
print(f"任务 ID: {task_id}")

# 2) 轮询任务状态
while True:
    r = client.content_generation.tasks.get(task_id=task_id)
    if r.status == "succeeded":
        print("视频 URL:", r.content.video_url)
        break
    elif r.status == "failed":
        print("失败:", r.error)
        break
    print(f"当前状态: {r.status},30 秒后再试…")
    time.sleep(30)

支持的端点

  • POST/api/v3/contents/generations/tasks创建视频生成任务,立即返回 task ID(异步生成)
  • GET/api/v3/contents/generations/tasks/{id}查询单个任务(含 status / content.video_url / usage 等)
  • GET/api/v3/contents/generations/tasks查询任务列表(page_num / page_size + filter.* 过滤)
  • DELETE/api/v3/contents/generations/tasks/{id}删除 / 取消任务

接口详情(请求参数与响应)

视频生成接口是异步任务协议:POST 创建任务,GET 轮询状态,成功后从content.video_url下载 mp4。查询和列表响应会尽量按官方字段透出,同时保留本平台任务 ID。

POST

创建视频生成任务 /api/v3/contents/generations/tasks

提交异步生成任务,立即返回本平台任务 ID。后续用该 ID 查询状态或取消任务。

参数类型必填说明
modelString模型 ID,例如 doubao-seedance-2.0
contentArray<Object>提示词与参考素材数组,至少包含一项 type=text。素材库素材推荐使用 asset://asset_id 作为 image_url.url / video_url.url
resolutionString480p / 720p / 1080p
durationInteger视频时长,单位秒。
ratioString宽高比,如 16:9 / 9:16 / 1:1
generate_audioBoolean是否生成音频。
callback_urlString任务状态回调地址。AIAPIGo 会转发为本平台任务 ID 的响应。
enableVideoEncryptBooleanAIAPIGo 扩展参数。默认 false:要求上游生成明文视频,查询结果默认直接给上游明文 TOS URL,不使用 AIAPIGo 代理域名。传 true 时保留加密 TOS 文件,查询结果默认给 AIAPIGo 代理下载 URL。
请求示例
{
  "model": "doubao-seedance-2.0",
  "content": [
    { "type": "text", "text": "城市夜景中一辆未来感跑车驶过雨夜街道" }
  ],
  "resolution": "1080p",
  "duration": 8,
  "ratio": "16:9",
  "generate_audio": true,
  "callback_url": "https://client.example/callback"
}
成功响应示例
{
  "id": "vt-016569a13c00646194323164"
}
  • · 创建响应只代表任务已提交,不代表视频已经生成完成。
  • · 请求体大小上限按火山官方兼容到 64MB;实际可用的分辨率仍受上游限制,目前最高为 1080p。
  • · enableVideoEncrypt 不传时默认关闭上游视频文件加密。任务成功后普通查询(不带 video_url_mode / include_decryption)返回的 content.video_url 是上游明文 TOS URL,不带 AIAPIGo 域名;该 URL 通常约 24 小时过期。
  • · 如传 enableVideoEncrypt:true,任务成功后默认返回 AIAPIGo 签名代理下载 URL;也可配合 video_url_mode=upstreaminclude_decryption=1 获取上游加密地址或解密材料。
  • · 如果直接传外部参考图时返回 input_image_privacy_information,通常表示参考图含清晰真人主体或隐私风险;这类素材请先走「素材管理 · AIGC」的真人 H5 认证与 CreateAsset 入库流程,再用 asset://asset_id 作为参考图。
  • · 如果参考素材来自素材管理接口,建议在素材 Status=Active 后传 asset://asset_id,例如 "image_url":{"url":"asset://asset-xxxx"}GetAsset 返回的 URL 是上游临时 TOS URL,可能过期或受上游安全策略影响,不作为视频生成的推荐输入。
GET

查询单个任务 /api/v3/contents/generations/tasks/{id}

查询任务状态、生成结果、真实分辨率/时长/比例、token 用量等字段。任务状态由平台后台同步并缓存;任务未结束时请继续轮询,建议按响应头 `X-AIAPIGO-Poll-After` 或 5-10 秒间隔查询。

参数类型必填说明
idPath String创建任务返回的 vt-... 任务 ID。
video_url_modeQuery String默认不传时:加密任务返回 AIAPIGo 代理下载 URL,明文任务返回上游明文 TOS URL。加密任务传 upstream 时可返回原始上游加密 TOS URL。
include_decryptionQuery Boolean1 / true 时,在任务成功后额外返回 content.video_decryption,供客户自行解密上游加密 TOS 文件。
成功响应示例
{
  "id": "vt-016569a13c00646194323164",
  "model": "doubao-seedance-2.0",
  "status": "succeeded",
  "content": {
    "video_url": "https://tos-cn-beijing.volces.com/path/to/plain-video.mp4?X-Tos-Expires=86400..."
  },
  "usage": {
    "prompt_tokens": 1290,
    "completion_tokens": 35840,
    "total_tokens": 37130
  },
  "resolution": "1080p",
  "ratio": "16:9",
  "duration": 8,
  "seed": 12345,
  "service_tier": "default",
  "generate_audio": true,
  "created_at": 1780000000,
  "updated_at": 1780000300
}
  • · 查询接口默认读取 AIAPIGo 本地任务状态,不会把每一次客户轮询都直接转发到上游;平台后台会按上游限流要求刷新任务状态并在成功时完成计费。
  • · 非终态任务响应会带 X-AIAPIGO-Poll-After,客户端可按该秒数或 5-10 秒间隔轮询;更高频轮询通常不会让任务更快完成。
  • · content.video_url 的默认值按任务模式决定:默认明文任务返回上游明文 TOS URL,不走 AIAPIGo 代理;加密任务返回 AIAPIGo 签名下载地址,平台解密后给 mp4。
  • · AIAPIGo 签名代理 URL 有效期 24 小时;上游 TOS URL 通常也约 24 小时过期。过期后重新 GET 该任务可获得新的 URL。
  • · 如传 ?video_url_mode=upstreamcontent.video_urlcontent.upstream_video_url 会返回原始上游 TOS URL。该 URL 约 24 小时过期,可能不是可直接播放 mp4,仅用于排查或特殊客户转存;有问题请去掉该参数使用默认代理 URL。
  • · 加密任务如传 ?include_decryption=1,成功后会额外返回 content.video_decryption。客户可下载 upstream_video_url 得到加密文件,Base64 解码 data_key_b64 作为 AES-256-GCM key,取加密文件前 12 字节作为 nonce,其余内容作为 ciphertext+tag 解密。
  • · 明文任务没有 content.video_decryption;默认 content.video_url 已经是上游原始明文 TOS URL,通常约 24 小时过期。
  • · data_key_b64 是单视频 DEK,只能解密当前视频,不能生成视频;平台不会返回上游 API key / AK / SK / RSA 私钥。
GET

查询任务列表 /api/v3/contents/generations/tasks

分页查询当前 API Key 所属用户的视频任务,可按状态、任务 ID、模型过滤。

参数类型必填说明
page_numQuery Integer页码,从 1 开始,默认 1
page_sizeQuery Integer每页数量,默认 20,最大 500
filter.statusQuery String按状态过滤:pending / queued / running / succeeded / failed / cancelled / expired
filter.task_idsQuery String[]按任务 ID 过滤;可重复传入多个 filter.task_ids
filter.modelQuery String按模型 ID 过滤。
filter.service_tierQuery String按服务等级过滤。
video_url_modeQuery String可选值 upstream。加密任务默认返回 AIAPIGo 代理下载 URL;传 upstream 时返回原始上游 TOS URL。明文任务默认已返回上游 URL。
成功响应示例
{
  "total": 1,
  "items": [
    {
      "id": "vt-016569a13c00646194323164",
      "model": "doubao-seedance-2.0",
      "status": "succeeded",
      "content": {
        "video_url": "https://tos-cn-beijing.volces.com/path/to/plain-video.mp4?X-Tos-Expires=86400..."
      },
      "resolution": "1080p",
      "ratio": "16:9",
      "duration": 8,
      "created_at": 1780000000,
      "updated_at": 1780000300
    }
  ]
}
DELETE

取消任务 /api/v3/contents/generations/tasks/{id}

对未完成任务发起取消。取消是 best-effort;如果上游已完成,查询结果可能仍为 succeeded。

参数类型必填说明
idPath String创建任务返回的 vt-... 任务 ID。
成功响应示例
{
  "id": "vt-016569a13c00646194323164",
  "status": "cancelled"
}
  • · cancelled / failed 不扣费;succeeded 会按 usage 计费。
POST

创建任务 · 请求体(Request Body)

字段顺序与 Volcengine Ark 官方一致。content数组的子元素结构见下方"content 子元素详解"。

参数类型必填默认值说明
modelString模型 ID。推荐使用 doubao-seedance-2.0;为兼容旧火山接入,doubao-seedance-2 开头的历史模型名会自动归一到 doubao-seedance-2.0
contentArray<Object>多模态内容数组,按顺序排列。每个元素是一个 type 标识的对象:text(文本提示词,必填一项)、image_url(参考图)、video_url(参考视频)、audio_url(参考音频)。素材管理接口创建出的素材建议在视频生成里传 asset://asset_id,不要直接使用 GetAsset 返回的临时 TOS URL。
durationInteger5视频时长,单位秒。Seedance 2.0 支持 4-15 的整数秒;-1 表示智能时长。不传则上游默认 5 秒。
resolutionString"720p"输出分辨率,支持 "480p" / "720p" / "1080p"。Seedance 2.0 Fast / Mini 不支持 1080p。
ratioString"adaptive"生成视频的宽高比,支持 "16:9" / "9:16" / "1:1" / "4:3" / "3:4" / "21:9" / "adaptive"
generate_audioBooleantrue是否同时生成配音。true 让模型自动配音;false 仅产出无声视频。
watermarkBooleanfalse是否给生成视频加上"方舟"品牌水印。设为 true 时右下角会带水印;商用场景通常 false
seedInteger随机种子。固定 seed 可提升相同提示词下结果的可复现性,但不保证完全一致。
service_tierString服务等级,按上游可用值透传。
execution_expires_afterInteger任务执行超时时间,单位秒;按上游可用值透传。
priorityInteger任务优先级;按上游可用值透传。
draftBoolean是否创建草稿任务;按上游能力透传。
toolsArray<Object>工具参数;按 Volcengine Ark Content Generation schema 透传。
callback_urlString任务状态回调地址。AIAPIGo 会接管上游回调并转发为本平台任务 ID 的响应,方便客户继续按本接口处理。

content 子元素详解

content 数组按顺序保留语义。至少需包含一项 type=text。其它三种类型可选,多张参考图 / 视频 / 音频组合使用以控制生成结果。

type = "text"文本提示词。content 必须至少包含一项 type=text。
字段类型 / 取值说明
type"text"固定值
textString提示词内容,详细描述画面、动作、镜头运用。支持极长文本。
type = "image_url"参考图。可选;最多 2 张。
字段类型 / 取值说明
type"image_url"固定值
image_url.urlString公网可访问的图片 URL(jpg/png/webp)。
roleString取值:"reference_image"(参考图)/ "first_frame"(首帧)/ "last_frame"(尾帧)等。
type = "video_url"参考视频。可选;用于视频编辑 / 视频续写场景。
字段类型 / 取值说明
type"video_url"固定值
video_url.urlString公网可访问的视频 URL(mp4)。
roleString取值通常为 "reference_video"
type = "audio_url"参考音频。可选;用于把指定音乐 / 人声作为背景音。
字段类型 / 取值说明
type"audio_url"固定值
audio_url.urlString公网可访问的音频 URL(mp3/wav)。
roleString取值通常为 "reference_audio"

创建任务 · 响应体

{
  "id": "vt-016569a13c00646194323164"
}
字段类型说明
idString任务 ID。用于后续 GET / DELETE 调用。
GET

查询任务 · 响应体(Query Task Response)

{
  "id": "vt-016569a13c00646194323164",
  "model": "doubao-seedance-2.0",
  "status": "succeeded",
  "content": {
    "video_url": "https://tos-cn-beijing.volces.com/path/to/plain-video.mp4?X-Tos-Expires=86400..."
  },
  "usage": {
    "prompt_tokens": 1290,
    "completion_tokens": 35840,
    "total_tokens": 37130
  },
  "resolution": "1080p",
  "ratio": "16:9",
  "duration": 8,
  "seed": 12345,
  "service_tier": "default",
  "generate_audio": true,
  "created_at": 1748945523,
  "updated_at": 1748945910
}
字段类型说明
idString任务 ID。
modelString实际承载本次生成的模型 ID(可能是创建时填的 endpoint id 解析后的具体 model id)。
statusString任务状态。详见状态机表。
safety_identifierString安全标识;上游返回时透出。
contentObject生成结果。通常在 status = succeeded 时出现。
content.video_urlString默认明文任务直接返回上游明文 TOS URL;加密任务返回 AIAPIGo 签名下载 URL,由平台代理解密后下载 mp4。
content.upstream_video_urlStringvideo_url_mode=upstream 时返回。原始上游 TOS URL,约 24h 过期,可能不是可直接播放的 mp4,仅用于排查或特殊客户转存。
content.video_decryptionObjectAIAPIGo 扩展字段:仅加密任务在查询单个任务时传 include_decryption=1 且任务已成功时返回。用于客户自行下载上游加密 TOS 文件并解密。
content.video_decryption.upstream_video_urlString上游加密 TOS URL。通常约 24 小时过期;过期后需要重新查询任务获取新的上游 URL 和解密材料。
content.video_decryption.encrypted_data_key_headerString上游 TOS 响应头名,固定为 x-tos-meta-enc-dek
content.video_decryption.encrypted_data_keyStringTOS 响应头中的加密 DEK 原文,便于客户侧排查;不包含上游 API key / AK / SK。
content.video_decryption.data_key_b64String本视频专用 AES-256-GCM 明文 DEK 的 Base64。只可解密当前视频,不能用于生成视频。
content.video_decryption.algorithmString加密方案标识,当前为 RSA_OAEP_4096_AES_256
content.video_decryption.key_wrapStringDEK 包装算法,当前为 RSA-OAEP-SHA256
content.video_decryption.content_cipherString视频文件内容加密算法,当前为 AES-256-GCM
content.video_decryption.nonce_sourceStringnonce 来源:加密文件前 12 字节。
content.video_decryption.ciphertext_layoutString密文布局:nonce || ciphertext || tag
content.video_decryption.expires_in / expires_atInteger上游 TOS URL 的有效期秒数和到期 Unix 时间戳;上游 URL 未携带对应签名参数时可能为空。
content.video_url_expires_inIntegerAIAPIGo 扩展字段:默认代理下载 URL 的剩余有效秒数,固定为 86400。upstream 模式不返回该字段。
content.video_url_expires_atIntegerAIAPIGo 扩展字段:默认代理下载 URL 到期 Unix 时间戳(秒)。upstream 模式不返回该字段。
content.last_frame_urlString上游返回的最后一帧 URL;存在时透出。
content.file_urlString上游返回的文件 URL;存在时透出。
errorObject失败原因。仅在 status = failed 时出现;平台会尽量补充 suggestionretryableupstream_codeupstream_request_id,方便客户端判断是否可重试。
failure_reasonObject列表接口里的失败原因字段;与 error 保持一致,包含可读提示和诊断字段。
usageObjecttoken 用量。仅在 status = succeeded 时出现,用于结算。
usage.prompt_tokensInteger输入侧消耗的 token 数(提示词 + 参考素材编码)。
usage.completion_tokensInteger输出侧消耗的 token 数(生成的视频 token)。
usage.total_tokensInteger本次任务总 token 数 = prompt + completion。
subdivisionlevelString分镜 / 拆分等级;上游返回时透出。
fileformatString输出文件格式;上游返回时透出。
framesInteger输出帧数;上游返回时透出。
framespersecondInteger帧率;上游返回时透出。
resolutionString实际输出分辨率,如 720p / 1080p
ratioString实际输出宽高比,如 16:9
durationInteger实际输出时长,单位秒。
created_atInteger任务创建 Unix 时间戳(秒)。
updated_atInteger任务最近更新的 Unix 时间戳(秒)。
seedInteger上游使用的 seed。
revised_promptString上游改写后的提示词;存在时透出。
service_tierString服务等级;上游返回时透出。
execution_expires_afterInteger执行超时时间;上游返回时透出。
priorityInteger任务优先级;上游返回时透出。
generate_audioBoolean是否生成音频。
draftBoolean是否草稿任务。
draft_task_idString草稿任务 ID;存在时透出。
toolsArray<Object>工具配置;上游返回时透出。
GET

自行解密上游 TOS 视频(可选)

默认建议直接使用content.video_url下载解密后的 mp4。如果需要自行处理上游加密文件,查询任务时同时传video_url_mode=upstreaminclude_decryption=1,响应会返回当前视频专用的data_key_b64

  • · 下载 `content.video_decryption.upstream_video_url` 得到加密文件。
  • · Base64 解码 `data_key_b64`,作为 AES-256-GCM key。
  • · 加密文件前 12 字节是 nonce,其余部分是 ciphertext + tag。
  • · 上游 TOS URL 通常约 24 小时过期;过期后重新查询任务获取新的 URL 和解密材料。
  • · 平台不会返回上游 API key / AK / SK / RSA 私钥;`data_key_b64` 只能解密当前视频,不能用于生成视频。
Python 解密示例
# pip install requests cryptography
import base64
import requests
from cryptography.hazmat.primitives.ciphers.aead import AESGCM

BASE_URL = "https://www.aiapigo.com/api/v3"
API_KEY = "sk-ai-***"
TASK_ID = "vt-016569a13c00646194323164"

# 1) 查询任务,并要求返回上游加密 TOS URL 和单视频解密材料
task = requests.get(
    f"{BASE_URL}/contents/generations/tasks/{TASK_ID}",
    headers={"Authorization": f"Bearer {API_KEY}"},
    params={
        "video_url_mode": "upstream",
        "include_decryption": "1",
    },
    timeout=30,
).json()

if task["status"] != "succeeded":
    raise RuntimeError(f"task is not succeeded: {task['status']}")

dec = task["content"]["video_decryption"]

# 2) 下载上游加密文件。该 URL 通常约 24 小时过期
encrypted_file = requests.get(dec["upstream_video_url"], timeout=300).content

# 3) 解密。文件布局为 nonce || ciphertext || tag
key = base64.b64decode(dec["data_key_b64"])
nonce = encrypted_file[:12]
ciphertext_and_tag = encrypted_file[12:]

plaintext = AESGCM(key).decrypt(nonce, ciphertext_and_tag, None)
with open("video.mp4", "wb") as f:
    f.write(plaintext)

print("saved to video.mp4")

任务状态机(status 字段)

异步:客户端用 task ID 轮询;平台后台同步上游状态并保存,查询接口返回平台缓存状态, 状态值与 Volcengine Ark 完全一致。

  • pending任务已提交,等待调度。
  • queued已进入排队序列,等待资源。
  • running正在生成中。
  • succeeded生成成功。content.video_url 为视频下载地址,usage 字段携带 token 用量。本次扣费
  • failed生成失败。error 字段携带错误信息。不扣费
  • cancelled任务已被取消。不扣费
  • expired任务已过期或超时。不扣费
GET

任务列表 · 查询参数(Query Tasks)

翻页与过滤参数与 Volcengine 上游一致;响应 schema 为{ total, items: [...] }

参数类型默认值说明
page_numInteger1页码,从 1 开始。
page_sizeInteger20每页条数。最大 500。
filter.statusString按任务状态过滤,取值见状态机表。
filter.task_idsString[]按 task ID 过滤;可重复传该参数以传入多个 ID。
filter.modelString按 model 过滤。
filter.service_tierString按服务等级过滤,按上游可用值透传。
video_url_modeString可选值 `upstream`。加密任务默认返回 AIAPIGo 代理下载 URL;传 `upstream` 时返回原始上游 TOS URL。明文任务默认已返回上游 URL。

错误响应(Ark 信封)

{
  "error": {
    "code":    "insufficient_balance",
    "message": "余额不足,请充值后重试"
  }
}
  • 401missing_key / invalid_keyAuthorization header 缺失或无效
  • 402insufficient_balance余额不足以承担预估的最大成本
  • 404model_not_found / task_not_foundmodel 未上线 / task 不存在或非本账号
  • 400missing_model / model_kind_mismatch / invalid_upstream_parametermodel 字段缺失、不是视频模型,或请求参数不符合视频生成要求
  • 400reference_video_duration_exceeded / reference_audio_too_short / invalid_asset_url参考视频时长超限、参考音频过短或素材不可用
  • 400input_text_sensitive / input_image_sensitive / input_image_privacy_information提示词、参考图或真人/隐私内容未通过安全校验
  • 400output_video_sensitive / output_audio_sensitive / content_policy_violation生成结果或兜底内容安全校验未通过
  • 429upstream_rate_limited请求过于频繁,请降低并发并稍后重试
  • 502upstream_error / upstream_internal_error视频生成服务暂时不可用
  • 502no_account_available视频生成账号池暂无可用账号(配额不足或全部禁用)

完整 API 参考、限流、SLA 等内容在编写中。如急需可联系support@aiapigo.com

视频生成常见错误处理建议

视频任务创建失败时,接口会同步返回{ error: {...} };任务生成失败时,查询任务和列表接口会在error/failure_reason里返回同样结构。外层信封保持不变;平台会细分error.code并额外补充field/input_type等诊断字段,不影响官方字段解析。

字段类型说明
error.codeString错误码。请优先按该字段做程序分支;内容安全类错误会细分为 input_text_sensitive / input_image_sensitive / output_video_sensitive 等。
error.typeString错误类别,如 content_policy_violation / invalid_request_error / rate_limit_error。兼容火山 / OpenAI 风格错误分类。
error.messageString面向用户展示的简短错误说明。
error.suggestionString建议修改方向;平台扩展字段。
error.retryableBoolean是否适合原样稍后重试。参数或内容安全问题通常为 false,限流 / 临时服务问题通常为 true
error.fieldString可选。能定位到具体 content[n] 时返回,例如 content[0]
error.input_typeString可选。问题输入或生成阶段,如 text / image_url / generated_video / generated_audio
error.upstream_codeString可选。供应侧原始错误码,便于技术定位;不建议作为唯一业务分支依据。
error.upstream_request_idString可选。供应侧请求 ID,联系平台排查时可提供。
code原因处理建议
input_text_sensitive提示词文本未通过内容安全校验查看 field 定位到的 content[n],调整该段文本中的敏感描述;可弱化暴力、胁迫、隐私、成人或高风险情节。
input_image_sensitive参考图未通过内容安全校验更换 field 对应的参考图,避免包含敏感、隐私或高风险内容;如是清晰真人主体,请走真人素材认证流程。
reference_video_duration_exceeded参考视频总时长超过限制减少 reference_video 数量,或裁短参考视频后重试。这里不是生成视频 duration 参数的问题。
reference_audio_too_short参考音频时长过短suggestion 中提示的 content[n] 和最小时长调整 reference_audio,或移除该音频后重试。
input_image_privacy_information参考图未通过真人或隐私内容校验更换不含清晰真人主体的参考图;如需使用真人参考图,请查看「素材管理 · AIGC」中的真人 H5 认证流程,认证并入库后在生成请求中使用 asset:// 素材 ID。
output_video_sensitive生成视频结果未通过内容安全校验生成阶段失败,通常不是某个单一字段格式错误;请整体调整提示词和参考素材,弱化可能触发安全策略的情节后重新创建任务。
output_audio_sensitive生成音频未通过内容校验如不需要声音,请传 generate_audio:false;如需要声音,请调整口播或音频提示词后重试。
invalid_asset_url参考素材不可用确认素材已认证通过并处于 Active 状态;视频生成中推荐传 asset:// 素材 ID,不要传已过期的临时 URL。
upstream_rate_limited请求过于频繁降低并发并稍后重试;批量任务建议客户端排队提交。
upstream_internal_error视频生成服务暂时不可用稍后重试;批量提交时建议降低并发或排队提交。
content_policy_violation内容安全兜底错误平台无法进一步区分是输入还是生成结果时返回该 code。请结合 messagesuggestion 和请求内容调整后重试。
示例:提示词文本敏感(创建任务阶段返回 400)
{
  "error": {
    "code": "input_text_sensitive",
    "type": "content_policy_violation",
    "message": "提示词未通过内容安全校验,任务创建失败。",
    "suggestion": "请调整 content[0] 中的敏感文本后重试;可弱化暴力、胁迫、隐私、成人或高风险情节。",
    "retryable": false,
    "field": "content[0]",
    "input_type": "text",
    "upstream_code": "InputTextSensitiveContentDetected",
    "upstream_request_id": "0217853170174640e9e2f2120f1f78e103cd745191b1689d97bd8"
  }
}
示例:生成结果安全校验未通过(查询任务时 status=failed)
{
  "id": "vt-016569a13c00646194323164",
  "model": "doubao-seedance-2.0",
  "status": "failed",
  "error": {
    "code": "output_video_sensitive",
    "type": "content_policy_violation",
    "message": "生成视频未通过内容安全校验,任务生成失败。",
    "suggestion": "生成结果触发内容安全校验,请调整提示词、参考图或参考视频后重试,弱化暴力、胁迫、隐私、成人或高风险情节。",
    "retryable": false,
    "input_type": "generated_video",
    "upstream_code": "OutputVideoSensitiveContentDetected",
    "upstream_request_id": "021785221514026464ab88fe358ba5cca4a17963dcac1bf1ffcdc"
  },
  "failure_reason": {
    "code": "output_video_sensitive",
    "type": "content_policy_violation",
    "message": "生成视频未通过内容安全校验,任务生成失败。",
    "suggestion": "生成结果触发内容安全校验,请调整提示词、参考图或参考视频后重试,弱化暴力、胁迫、隐私、成人或高风险情节。",
    "retryable": false,
    "input_type": "generated_video",
    "upstream_code": "OutputVideoSensitiveContentDetected",
    "upstream_request_id": "021785221514026464ab88fe358ba5cca4a17963dcac1bf1ffcdc"
  }
}
示例:参考音频过短(创建任务阶段返回 400)
{
  "error": {
    "code": "reference_audio_too_short",
    "type": "invalid_request_error",
    "message": "参考音频时长过短,任务创建失败。",
    "suggestion": "请将 content[6] 的 reference_audio 音频时长调整到至少 1.8 秒,或移除该音频后重试。",
    "retryable": false,
    "upstream_code": "InvalidParameter",
    "upstream_request_id": "021785221514026464ab88fe358ba5cca4a17963dcac1bf1ffcdc"
  }
}

计费规则

  • · 按 token 计费 · 与 Chat Completions 公式一致
  • · 只有 status=succeeded 才扣费;failed / cancelled 不扣
  • · 任务提交时按上限预估并锁定余额;succeeded 后按上游真实 usage 落账
  • · 余额、扣费明细、原始上游响应都可在「调用日志 / 账单」逐条核对