1. 视频素材相关接口
谐波AI Hub接口文档
模型接口
  • 模型接口
  • 平台介绍
  • 快速接入指南
  • 各模型接口列表
    • 获取模型(Models)
      • 获取可用模型接口
    • Anthropic(claude code)
      • 官方接口
        • 文本对话(优先)
      • OpenAI格式接口
        • 文本对话
    • OpenAI(codex,gpt-image-2)
      • 官方接口
        • 文本对话(官方推荐/新一代)
        • 文本对话(兼容接口)
        • 生成图像(gpt-image-2)
        • 编辑图像(gpt-image-2)
        • 创建视频
        • 获取视频任务状态
        • 获取视频内容
    • Google(gemini,Nano Banana)
      • 官方接口
        • 文本对话(优先)
        • 生成图像(Nano Banana)
      • OpenAI格式接口
        • 文本对话
        • 生成图像(Nano Banana)
    • xAI(grok)
      • OpenAI格式接口
        • 文本对话(兼容接口)
        • 生成图像(grok)
        • 创建视频(video)
        • 获取视频任务状态
        • 获取视频内容
    • 图像(Images)
      • OpenAI格式接口(doubao)
        • 生成图像
      • 通义千问格式
        • 生成图像
        • 编辑图像
    • 视频(Videos)
      • 通义千问格式(happyhorse-快乐马)
        • 创建视频(文生视频)
        • 创建视频(首帧图-图生视频)
        • 创建视频(参考图-图生视频)
        • 创建视频(编辑视频)
        • 获取视频生成任务状态
      • 火山豆包格式(seed-2.0)
        • 创建视频(文生视频)
        • 创建视频(首帧-图生视频)
        • 创建视频(首尾帧-图生视频)
        • 创建视频(参考图-图生视频)
        • 创建视频(多模态-参考生视频)
        • 获取视频生成任务状态
      • 火山豆包官方格式(doubao-seedance-2-0-260128)
        • 创建视频(文生视频)
        • 创建视频(首帧-图生视频)
        • 创建视频(首尾帧-图生视频)
        • 创建视频(参考图-图生视频)
        • 创建视频(多模态-参考生视频)
        • 获取视频生成任务状态
      • Openai格式(grok,Veo 3.1,seed-2.0)
        • 谷歌Veo 3.1
          • 创建视频(文生视频)
          • 创建视频(参考图-图生视频)
          • 获取视频生成任务状态
        • Openai Sora格式(seed-2.0特价)
          • 创建视频(文生视频)
          • 创建视频(多模态-参考生视频)
          • 获取视频生成任务状态
          • 获取视频内容
        • Openai Sora格式(grok video 1.5)
          • 创建视频(文生视频)
          • 创建视频(首帧图-图生视频)
          • 创建视频(参考图-图生视频)
          • 获取视频生成任务状态
          • 获取视频内容
  • 视频素材相关接口
    • 资源库 API 接入文档(火山官方格式)
    • 资源库 API 接入文档
    • 上传素材
      POST
    • 查询素材列表
      GET
    • 查询单个素材
      GET
    • 修改素材描述
      PUT
    • 删除素材
      DELETE
  • 工具配置教程
    • CC Switch 配置
    • Claude Code配置
    • Codex配置
    • Gemini CLI配置
    • OpenCode 配置
    • Cursor 配置
    • node 安装教程
  • 法律与政策
    • 服务协议
    • 隐私政策
  1. 视频素材相关接口

资源库 API 接入文档(火山官方格式)

本文档描述 ai-api.kkidc.com 提供的资源库代理 API,接口采用火山引擎 Ark Universal API 的请求和响应风格,面向下游 SDK、Agent 以及脚本客户端。

功能说明#

✅ 支持素材组(AssetGroup)和素材文件(Asset)管理
✅ 支持 AK/SK HMAC-SHA256 签名鉴权和 API Key Bearer 鉴权
❌ 当前版本不提供真人库活体校验接口(CreateVisualValidateSession、GetVisualValidateResult)

目录#

1. 接口地址
2. 协议说明
3. 鉴权
3.1 方式一:AK/SK 签名鉴权
3.2 方式二:API Key Bearer 鉴权
3.3 使用火山引擎官方 SDK 接入
4. 数据隔离和资源模型
5. 请求和响应格式
6. 支持的操作
7. 素材组接口详细说明
8. 素材接口详细说明
9. 推荐接入流程
10. 与火山引擎官方 API 的差异

1. 接口地址#

Base URL:
https://ai-api.kkidc.com/v1/ark/asset/
请求方式: POST
URL 格式:
POST https://ai-api.kkidc.com/v1/ark/asset/?Action=<ActionName>&Version=2024-01-01

固定参数#

参数固定值必填说明
Action见操作列表✅URL 查询参数,指定操作类型
Version2024-01-01✅API 版本号(建议所有请求传入)
Content-Typeapplication/json✅HTTP 请求头
响应元数据固定值:
Service: ark
Region: cn-beijing
⚠️ 注意: 请勿使用其他版本号,服务端按固定值生成响应元数据。

2. 协议说明#

素材库 API 使用 火山引擎 ARK Action 协议。所有操作共用根路径 /v1/ark/asset/,通过 Action 查询参数和固定版本号 Version=2024-01-01 进行分发。
标准请求格式:
本文档中每个 Action 都有独立的接口说明、请求结构和响应示例。

3. 鉴权#

素材库支持 两种鉴权方式,二选一使用,不要在同一个请求中混用。

3.1 方式一:AK/SK 签名鉴权(使用火山官方 SDK)#

适用场景:
素材库 Action API(如 CreateAsset、ListAssets 等)
获取路径:
用户 API 管理平台 → 访问凭据
请求头要求:
说明:
使用 HMAC-SHA256 算法对请求进行签名
需要包含 X-Date 和 X-Content-Sha256 请求头
完全兼容火山引擎官方 SDK(volcengine-go-sdk)的签名方式
素材访问按访问凭据对应的用户进行隔离
签名算法详情请参考火山引擎官方文档

3.2 方式二:API Key Bearer 鉴权#

适用场景:
素材库 Action API
Seedance 视频生成任务接口
获取路径:
用户 API 管理平台 → 令牌管理
请求头格式:
特点:
✅ 接入简单,无需复杂的签名计算
✅ 素材空间与费用统计按 API Key 对应的用户隔离
✅ 支持额度、分组和 IP 限制等平台统一规则
示例:

3.3 使用火山引擎官方 SDK 接入#

火山官方 SDK 默认指向 open.volcengineapi.com。接入本服务只需修改 Endpoint 并选择一种鉴权方式。

使用 AK/SK 凭据(推荐)#


4. 数据隔离和资源模型#

4.1 资源对象#

资源库包含两类对象:
对象类型说明关系
AssetGroup素材组用于组织同一类素材
Asset素材文件必须归属于一个素材组

4.2 数据隔离规则#

隔离维度:
API Key 对应的用户账号
访问规则:
✅ 使用同一个 API Key 可以访问该 Key 关联用户的所有素材组和素材
✅ 使用 AK/SK 签名时,按访问凭据关联的用户进行隔离
❌ 不同用户之间不能互相访问资源

4.3 素材组配置#

通过 CreateAssetGroup 创建的素材组统一使用以下固定配置:
{
  "GroupType": "AIGC",
  "ProjectName": "default"
}
📌 说明:
GroupType 和 ProjectName 不需要在创建请求中传入,服务端自动设置
当前版本不支持通过 CreateVisualValidateSession / GetVisualValidateResult 创建 LivenessFace 真人素材组

4.4 素材状态#

上传素材后,服务端根据素材供应商映射计算对当前用户可见的状态:
状态说明可用性
Processing素材仍在处理中❌ 暂不可使用
Active素材已处理完成✅ 可以在视频生成请求中使用
Failed素材处理失败❌ 响应中的 Error 字段可能包含失败原因

4.5 素材引用格式#

在视频生成请求中使用素材的标准引用格式:
asset://<asset_id>
示例:
{
  "image": "asset://asset-20260820105215-kqtAk"
}
⚠️ 注意: 具体模型是否支持某类素材,由已配置的素材供应商和模型能力决定。

5. 请求和响应格式#

5.1 成功响应#

HTTP 状态码: 200 OK
响应体结构:
{
  "ResponseMetadata": {
    "RequestId": "request-id",
    "Action": "CreateAssetGroup",
    "Version": "2024-01-01",
    "Service": "ark",
    "Region": "cn-beijing"
  },
  "Result": {
    "Id": "group-20260821120000-abcde"
  }
}
字段说明:
字段类型说明
ResponseMetadataObject响应元数据
ResponseMetadata.RequestIdString请求唯一标识符
ResponseMetadata.ActionString操作名称
ResponseMetadata.VersionStringAPI 版本号
ResponseMetadata.ServiceString服务名称(固定为 ark)
ResponseMetadata.RegionString区域(固定为 cn-beijing)
ResultObject操作结果数据

5.2 错误响应#

响应体结构:
{
  "ResponseMetadata": {
    "RequestId": "request-id",
    "Action": "GetAsset",
    "Version": "2024-01-01",
    "Service": "ark",
    "Region": "cn-beijing",
    "Error": {
      "Code": "ResourceNotFound",
      "Message": "素材不存在"
    }
  },
  "Result": null
}

5.3 错误码列表#

HTTP 状态码错误码说明常见原因
400InvalidParameter请求参数无效请求体缺少必填字段或字段值不合法
400UnsupportedAction不支持的操作Action 参数值不在支持列表中
401Unauthorized鉴权失败Bearer Token 无效或聚合用户请求头缺失/无效
403PermissionDenied权限不足资源属于其他用户,或无权访问
404ResourceNotFound资源不存在请求的素材组或素材不存在
500InternalError内部错误服务端或素材处理服务异常

6. 支持的操作#

当前支持以下 Action 操作:

6.1 素材组操作#

Action说明
CreateAssetGroup创建素材组
GetAssetGroup获取素材组详情
ListAssetGroups列出素材组
UpdateAssetGroup更新素材组
DeleteAssetGroup删除素材组

6.2 素材操作#

Action说明
CreateAsset创建/上传素材
GetAsset获取素材详情
ListAssets列出素材
UpdateAsset更新素材
DeleteAsset删除素材
📌 说明: 具体请求参数和响应字段请参考火山引擎 Ark Universal API 文档或向平台方索取详细接口规范。

7. 素材组接口详细说明#

7.1 CreateAssetGroup#

创建一个新的素材组。
请求示例:
请求体字段:
字段类型必填说明
Namestring✅素材组名称,1-64 个字符
Descriptionstring❌素材组描述,最多 300 个字符
成功响应:
{
  "ResponseMetadata": {
    "RequestId": "req-20260821-001",
    "Action": "CreateAssetGroup",
    "Version": "2024-01-01",
    "Service": "ark",
    "Region": "cn-beijing"
  },
  "Result": {
    "Id": "group-20260821120000-abcde"
  }
}

7.2 ListAssetGroups#

分页列出当前用户的素材组。
请求示例:
请求体字段:
字段类型必填默认值说明
Filter.GroupIdsstring[]❌-按素材组 ID 列表过滤
Filter.Namestring❌-按素材组名称过滤
Filter.GroupTypestring❌-按素材组类型过滤(如 AIGC)
PageNumberinteger❌1页码,从 1 开始
PageSizeinteger❌10每页数量,最大 100
SortBystring❌CreateTime排序字段:CreateTime 或 UpdateTime
SortOrderstring❌Desc排序方向:Desc 或 Asc
成功响应:
{
  "ResponseMetadata": {
    "RequestId": "req-20260821-002",
    "Action": "ListAssetGroups",
    "Version": "2024-01-01",
    "Service": "ark",
    "Region": "cn-beijing"
  },
  "Result": {
    "TotalCount": 1,
    "Items": [
      {
        "Id": "group-20260821120000-abcde",
        "Name": "我的素材组",
        "Description": "用于存放虚拟人像素材",
        "GroupType": "AIGC",
        "ProjectName": "default",
        "CreateTime": "2026-08-21T12:00:00Z",
        "UpdateTime": "2026-08-21T12:00:00Z"
      }
    ],
    "PageNumber": 1,
    "PageSize": 20
  }
}

7.3 GetAssetGroup#

获取素材组详情。
请求示例:
请求体字段:
字段类型必填说明
Idstring✅素材组 ID
ProjectNamestring❌项目名称(需与素材组项目一致)
成功响应:
{
  "ResponseMetadata": {
    "RequestId": "req-20260821-003",
    "Action": "GetAssetGroup",
    "Version": "2024-01-01",
    "Service": "ark",
    "Region": "cn-beijing"
  },
  "Result": {
    "Id": "group-20260821120000-abcde",
    "Name": "我的素材组",
    "Description": "用于存放虚拟人像素材",
    "GroupType": "AIGC",
    "ProjectName": "default",
    "CreateTime": "2026-08-21T12:00:00Z",
    "UpdateTime": "2026-08-21T12:00:00Z"
  }
}

7.4 UpdateAssetGroup#

更新素材组名称或描述。
请求示例:
请求体字段:
字段类型必填说明
Idstring✅素材组 ID
Namestring❌新的素材组名称,1-64 个字符
Descriptionstring❌新的素材组描述,最多 300 个字符
成功响应:
{
  "ResponseMetadata": {
    "RequestId": "req-20260821-004",
    "Action": "UpdateAssetGroup",
    "Version": "2024-01-01",
    "Service": "ark",
    "Region": "cn-beijing"
  },
  "Result": {
    "Id": "group-20260821120000-abcde"
  }
}

7.5 DeleteAssetGroup#

删除素材组。
请求示例:
请求体字段:
字段类型必填说明
Idstring✅素材组 ID
ProjectNamestring❌项目名称(需与素材组项目一致)
成功响应:
{
  "ResponseMetadata": {
    "RequestId": "req-20260821-005",
    "Action": "DeleteAssetGroup",
    "Version": "2024-01-01",
    "Service": "ark",
    "Region": "cn-beijing"
  },
  "Result": {}
}

8. 素材接口详细说明#

8.1 CreateAsset#

将公网 URL 登记为素材,返回素材 ID 和初始状态。
请求示例:
请求体字段:
字段类型必填说明
Namestring✅素材名称,1-64 个字符
URLstring✅素材公网 URL
AssetTypestring✅素材类型,当前仅支持 Image
GroupIdstring✅所属素材组 ID
成功响应:
{
  "ResponseMetadata": {
    "RequestId": "req-20260821-006",
    "Action": "CreateAsset",
    "Version": "2024-01-01",
    "Service": "ark",
    "Region": "cn-beijing"
  },
  "Result": {
    "Id": "asset-20260821120100-fghij"
  }
}

8.2 GetAsset#

获取素材详情和当前状态。
请求示例:
请求体字段:
字段类型必填说明
Idstring✅素材 ID
成功响应:
{
  "ResponseMetadata": {
    "RequestId": "req-20260821-007",
    "Action": "GetAsset",
    "Version": "2024-01-01",
    "Service": "ark",
    "Region": "cn-beijing"
  },
  "Result": {
    "Id": "asset-20260821120100-fghij",
    "Name": "host-a-front",
    "URL": "https://cdn.example.com/portrait.jpg",
    "AssetType": "Image",
    "GroupId": "group-20260821120000-abcde",
    "Status": "Active",
    "Moderation": {
      "Strategy": "Default"
    },
    "CreateTime": "2026-08-21T12:01:00Z",
    "UpdateTime": "2026-08-21T12:01:05Z",
    "ProjectName": "default"
  }
}

8.3 ListAssets#

分页列出当前用户可见的素材。
请求示例:
请求体字段:
字段类型必填说明
Filter.GroupIdsstring[]❌按素材组 ID 列表过滤
Filter.GroupTypestring❌按素材组类型过滤,当前可使用 AIGC
Filter.Namestring❌按素材名称过滤
PageNumberinteger❌页码,从 1 开始,默认 1
PageSizeinteger❌每页数量,默认 10,最大 100
SortBystring❌排序字段:CreateTime、UpdateTime 或 GroupId,默认 CreateTime
SortOrderstring❌排序方向:Desc 或 Asc,默认 Desc
成功响应:
{
  "ResponseMetadata": {
    "RequestId": "req-20260821-008",
    "Action": "ListAssets",
    "Version": "2024-01-01",
    "Service": "ark",
    "Region": "cn-beijing"
  },
  "Result": {
    "Items": [
      {
        "Id": "asset-20260821120100-fghij",
        "Name": "host-a-front",
        "URL": "https://cdn.example.com/portrait.jpg",
        "GroupId": "group-20260821120000-abcde",
        "AssetType": "Image",
        "Status": "Active",
        "Moderation": {
          "Strategy": "Default"
        },
        "CreateTime": "2026-08-21T12:01:00Z",
        "UpdateTime": "2026-08-21T12:01:05Z",
        "ProjectName": "default"
      }
    ],
    "TotalCount": 1,
    "PageNumber": 1,
    "PageSize": 20
  }
}

8.4 UpdateAsset#

更新素材名称。
请求示例:
请求体字段:
字段类型必填说明
Idstring✅素材 ID
Namestring✅新的素材名称,1-64 个字符
成功响应:
{
  "ResponseMetadata": {
    "RequestId": "req-20260821-009",
    "Action": "UpdateAsset",
    "Version": "2024-01-01",
    "Service": "ark",
    "Region": "cn-beijing"
  },
  "Result": {
    "Id": "asset-20260821120100-fghij"
  }
}

8.5 DeleteAsset#

删除素材。
请求示例:
请求体字段:
字段类型必填说明
Idstring✅素材 ID
成功响应:
{
  "ResponseMetadata": {
    "RequestId": "req-20260821-010",
    "Action": "DeleteAsset",
    "Version": "2024-01-01",
    "Service": "ark",
    "Region": "cn-beijing"
  },
  "Result": {}
}

9. 推荐接入流程#

虚拟人像素材的典型流程如下:
1.
使用 CreateAssetGroup 创建一个 AIGC 素材组
2.
使用 CreateAsset 将公网 URL 登记到该素材组
3.
记录返回的 asset_id
4.
使用 GetAsset 轮询素材状态
5.
状态为 Active 后,在视频生成请求中使用 asset://<asset_id>
6.
不再使用时调用 DeleteAsset,必要时再调用 DeleteAssetGroup
简单轮询示例:

10. 与火山引擎官方 API 的差异#

本接口复用了火山引擎 Universal API 的 Action、字段命名和响应信封,但它是本站的资源库代理,不是火山引擎官方资源库。接入时请注意:
✅ 当前支持 API Key Bearer 鉴权
✅ 当前支持 AK/SK HMAC-SHA256 签名鉴权
✅ 当前所有接口只支持 POST 方法
❌ CreateVisualValidateSession 和 GetVisualValidateResult 当前不支持
📌 当前创建的素材组固定为 GroupType=AIGC、ProjectName=default
📌 GetAssetGroup、UpdateAssetGroup、DeleteAssetGroup 使用请求体字段 Id
📌 CreateAssetGroup 和 CreateAsset 的成功结果字段使用 Result.Id
📌 CreateAsset 只接受公网 URL,不接受 Base64 或 multipart 文件上传
📌 返回的 URL 是本站保存的原始素材 URL,不应当当作短期预签名地址处理

修改于 2026-08-21 08:16:15
上一页
获取视频内容
下一页
资源库 API 接入文档
Built with