MAPI
视频(Videos)人像库审核

人像库审核概述

人像库素材管理与审核接口说明,供 Seedance 2.0 等视频生成能力在生成前完成素材注册与审核状态查询。

概述

本平台提供人像库 HTTP REST 接口,完成以下能力:

能力说明
素材组管理创建、查询、更新素材组;按登录用户账号隔离
素材管理向指定素材组提交公网 URL(图片 / 视频 / 音频),查询状态,更新名称
状态同步单条查询时实时刷新审核状态;后台另每 5 分钟轮询非终态素材

重要限制(接入前必读)

  • 不提供文件上传:平台不代理 multipart 上传。须先将文件放到自有 OSS/CDN,再调用「创建素材」传入 HTTPS 公网 URL
  • 数据隔离维度:素材组、素材列表均按用户账号隔离,同账号下多把 Key 看到的数据相同
  • 路径参数中的 ID:路径参数 :assetId 为平台返回的 asset_id:groupId 为平台返回的 group_id不是本地自增字段 id
  • 计费:人像库接口本身不走 Relay 渠道计费

Base URL

https://api.mapi.zone/v1/portrait/...

接入准备

获取 API Token

在平台控制台创建 API 令牌,记下完整 Key(常见形态:sk-xxxxxxxx)。

请求头

所有接口均需携带:

Header必填说明
AuthorizationBearer {token}
Content-TypePOST / PUT 时建议application/json

通用约定

统一响应结构

所有接口返回 HTTP 200,通过 success 字段区分成功 / 失败:

成功:

{
  "success": true,
  "message": "",
  "data": { ... }
}

失败:

{
  "success": false,
  "message": "人类可读的错误说明"
}

HTTP 状态码始终为 200,业务错误通过 success: false + message 体现。401 / 403 由认证中间件在鉴权层返回。

分页参数(列表接口通用)

Query 参数类型默认值说明
pinteger1页码,从 1 开始
page_sizeinteger20每页数量,最大 100

分页响应结构(data 字段内):

{
  "page": 1,
  "page_size": 20,
  "total": 55,
  "items": [ ... ]
}

时间格式

created_atupdated_atRFC3339 时间字符串,例如:2026-05-20T18:12:05.09398+08:00

枚举大小写

  • asset_type 必须为 ImageVideoAudio(首字母大写)
  • group_type 不传时服务端默认 AIGC

接口一览

序号方法路径说明
1POST/v1/portrait/groups创建素材组
2GET/v1/portrait/groups查询素材组列表(分页)
3PUT/v1/portrait/groups/{groupId}更新素材组名称 / 描述
4POST/v1/portrait/assets向素材组注册素材 URL
5GET/v1/portrait/assets查询素材列表(分页,可按组过滤)
6GET/v1/portrait/assets/{assetId}查询单条素材详情;非终态时实时刷新状态
7PUT/v1/portrait/assets/{assetId}更新素材名称

审核状态说明

状态枚举

状态值含义是否终态
Submitted已提交,排队处理中(创建后初始状态)
Processing处理 / 审核中
Active审核通过,resolved_url 可用
Failed处理失败(URL 不可达、格式不符、审核拒绝等)

终态定义:ActiveFailed。处于终态时,单条查询接口不再实时刷新。

状态更新来源

机制触发时机说明
单条查询调用时即时非终态时实时查询上游并写库
后台轮询5 分钟扫描所有非终态素材并刷新

接入建议

  1. 创建素材后,用 GET /v1/portrait/assets/{assetId} 轮询(建议间隔 3~10 秒)直到 status 为终态。
  2. 仅展示列表时,用 GET /v1/portrait/assets 即可,依赖后台 5 分钟同步。
  3. 调用 Seedance 2.0 前确认 status === "Active",并使用 resolved_url

推荐调用流程

sequenceDiagram
    participant Client as 接入方
    participant API as 本平台 /v1/portrait

    Client->>API: POST /groups(创建素材组)
    API-->>Client: data.group_id

    Client->>Client: 上传文件到自有 CDN,得到公网 URL

    Client->>API: POST /assets(group_id + url + asset_type)
    API-->>Client: data.asset_id, status=Processing

    loop 直到终态(Active 或 Failed)
        Client->>API: GET /assets/{assetId}
        API-->>Client: data.status, data.resolved_url
    end

    Client->>Client: status=Active 后,使用 resolved_url 调用 Seedance 2.0

最小可行步骤:

  1. POST /v1/portrait/groups → 保存 data.group_id
  2. 将素材上传至公网存储 → 得到 https://...
  3. POST /v1/portrait/assets → 保存 data.asset_id
  4. 循环 GET /v1/portrait/assets/{asset_id} 直至 data.statusActive / Failed
  5. status = Active 后,使用 data.resolved_url 发起视频生成

错误排查

现象可能原因建议
Token 相关错误未传 Authorization、Key 错误、过期、额度耗尽检查控制台令牌状态与请求头格式
素材组名称不能为空name 全空格或未传传非空 name
group_id 不能为空 / url 不能为空必填字段缺失检查 JSON 字段名与值
asset_type 须为 Image / Video / Audio大小写或拼写错误使用三种枚举之一
上游服务调用失败渠道凭据错误、组 ID 无效、URL 无法拉取联系平台管理员;自查 URL 公网可达性
素材不存在assetId 写错、用了本地 id 而非 asset_id使用创建接口返回的 data.asset_id
长期 Processing上游审核排队或 URL 拉取慢继续轮询单条查询;检查 refresh_error 字段
列表状态滞后列表不实时查询上游对关键素材用单条 GET 接口,或等待后台 5 分钟轮询

最后更新于