# 视频合规 API 文档

# 接口说明

基于先进的人工智能技术综合检测视频画面、声音、字幕、文字,精准高效识别各类场景中敏感、色情、未成年违规、暴恐、广告、Logo水印等风险视频内容。

购买请点击API套餐购买 (opens new window)、APPID获取请点击API使用控制台 (opens new window)、快速体验请点击视频合规SaaS (opens new window)、交流讨论请点击讯飞开放平台社区 (opens new window)

# 接口Demo

部分开发语言Demo如下,其他开发语言请参照文档进行开发,欢迎大家到讯飞开放平台社区 (opens new window)交流集成经验。

视频合规API Demo java语言 (opens new window)
视频合规API Demo python语言 (opens new window)

# 接口要求

内容 说明
传输方式 http[s] (为提高安全性,强烈推荐https)
请求地址 https://audit.iflyaisol.com/audit/v2/video
https://audit.iflyaisol.com/audit/v2/query
注:服务器IP不固定,为保证您的接口稳定,请勿通过指定IP的方式调用接口,使用域名方式调用
Content-Type application/json;charset=UTF-8
接口鉴权 签名机制,详情请参照下方接口鉴权
字符编码 UTF-8
响应格式 统一采用JSON格式
开发语言 任意,只要可以向讯飞云服务发起HTTP请求的均可
适用范围 任意操作系统,但因不支持跨域不适用于浏览器
视频要求 视频格式支持mp4、3gp、asf、avi、rmvb、mpeg、wmv、rm、mpeg4、mpv、mkv、flv、vob格式,通过URL外链的音频时长建议限制在2小时内。

# 接口鉴权

# 1、鉴权参数列表

所有鉴权参数均放在url地址栏。

参数名 类型 必传 描述
accessKeyId String 即为控制台获取的APIKey
accessKeySecret String 即为控制台获取的APISecret
utc String 当前时间,格式:"yyyy-MM-dd'T'HH:mm:ssZ",
服务端会校验传入的时间与服务器时间之间的误差,超过 30 分钟即为非法。
signature String 签名串,详细获取步骤234中有signature的获取参考
appId String 即为控制台获取的APPID
uuid String 请求随机字符串, uuid有防重放的功能,如果调试,请注意更换uuid的值

# 2、第一步baseString获取

假设请求 url 中的查询参数为一个集合,将集合内满足条件的参数按照参数名 ASCII 码从小到大排序(字典序),使用键值对的格式(即 key1=value1&key2=value2…注意 value 需要 URLEncoder)拼接成字符串,得到baseString。示例如下:

特别注意以下3个规则:(1)参数值为空的不参与签名;(2)signature 参数本身不参与签名;(3)参数名区分大小写。

accessKeyId=simpleAPIKey&accessKeySecret=simpleAPISecret&appId=simpleAPPID&utc=2023-02-23T06%3A40%3A54%2B0000&uuid=44dfa903-adb2-45d3-a1fe-fd8a53f86b2a
————————————————————————————————————————————————————————————————————————————————————————————————————————————————
注意:在实际使用时,simpleXXX需替换控制台的真实值。utc、signature、uuid的值请求时需要UrlEncode。以上utc示例时间UrlEncode前为2023-02-23T06:40:54+0000。randomStr用UUID.randomUUID()函数获得的值替换。

# 3、第二步根据baseString与accessKeySecret获取signature的值

根据得到的baseString和控制台获取的accessKeySecret(即APISecret),利用HMAC运算(HmacSHA1)生成签名byte[],然后使用base64编码得到signature,示例如下:

mH2xDQ5f+mO/Pi6DbrxXrzYQxF0=
————————————————————————————————————————————————————————————————————————————————————————————————————————————————
注意:调试阶段可以与以上结果比对,需要保持baseString与第一步完全一致。

# 4、第三步拼接放到url地址栏

根据第二步获得的signature值,与url地址拼接得到最终地址栏结果,示例如下:

https://audit.iflyaisol.com//audit/v2/syncText?accessKeyId=simpleAPIKey&accessKeySecret=simpleAPISecret&utc=2023-02-23T06%3A40%3A54%2B0000&signature=mH2xDQ5f+mO/Pi6DbrxXrzYQxF0=&appId=simpleAPPID&uuid=44dfa903-adb2-45d3-a1fe-fd8a53f86b2a
————————————————————————————————————————————————————————————————————————————————————————————————————————————————
注意:黑白名单使用鉴权与文本合规鉴权完全一致,只是url地址有变动。具体业务参数通过json以post的形式发送给服务端。

# 请求与返回示例

在调用业务接口时,均在 Http RequestBody中配置以下参数,请求与返回数据均为json字符串,示例如下。

# 1、请求json示例

{
  "video_list": [
    {
      "video_type": "mp4",
      "file_url": "https://xfyun-doc.xfyun.cn/static%2F16794773437998668%2F1.mp4",
      "name": "xxx%2F1.mp4"
    }
  ],
  "notify_url": "http://wdfgdzx.top:8000/user/audio_video_callback"//替换为自己的回调地址
}

# 2、返回json示例

{
  "code": "000000",
  "desc": "请求成功",
  "data": {
    "request_id": "T20230324144404016bf73f8a3aeb000",
    "audit_status": 2,
    "result_list": [
      {
        "name": "xxx%2F1.mp4",
        "suggest": "block",
        "detail": {
          "images": [
            {
              "category_list": [
                {
                  "category_description": "涉政_反动分裂_疆独标志",
                  "confidence": 90,
                  "object_detail": [
                    {
                      "confidence": 90,
                      "name": "dongtu",
                      "location": {
                        "w": 98.0,
                        "x": 706.0,
                        "h": 47.0,
                        "y": 35.0
                      }
                    },
                    {
                      "name": "ocrText",
                      "value": "xxx"
                    }
                  ],
                  "suggest": "block",
                  "category": "political"
                }
              ],
              "offsetTime": "54",
              "image_url": "xxx",
              "suggest": "block"
            },
            {
              "category_list": [
                {
                  "category_description": "违禁_违禁品_枪支刀具",
                  "confidence": 99,
                  "object_detail": [
                    {
                      "name": "ocrText",
                      "value": "xxx"
                    }
                  ],
                  "suggest": "block",
                  "category": "contraband"
                }
              ],
              "offsetTime": "55",
              "image_url": "xxx",
              "suggest": "block"
            }
          ],
          "audios": [
            {
              "duration": 10,
              "category_list": [
                {
                  "category_description": "涉政_国家机构_国家机构",
                  "confidence": 53,
                  "word_list": [
                    
                  ],
                  "suggest": "block",
                  "category": "political"
                }
              ],
              "offsetTime": "20",
              "audio_url": "xxx",
              "suggest": "block",
              "content": "xxx"
            }
          ]
        }
      }
    ]
  },
  "sid": "a51d1397e3fa4ddb9db7457ebaaf4f91"
}

# 参数说明

# 1、请求参数说明

参数名 类型 必传 描述
video_list List 待识别视频列表,单次数量不能超过10个
video_list.video_type String 视频类型,如果不传,取 url 后缀名作为格式
支持类型:mp4、3gp、asf、avi、rmvb、mpeg、wmv、rm、mpeg4、mpv、mkv、flv、vob
video_list.file_url String 视频地址,长度限制 500字符以内
video_list.name String 视频名称
notify_url String 回调地址,未传不进行回调

# 2、返回参数说明

参数名 类型 描述
sid String 本次会话唯一id标识,用于排查接口调用问题
code String 会话调用成功标记:
000000 表示调用成功
其他数字 表示会话调用异常
desc String 对会话调用是否成功的描述
data Object 审核结果
data.request_id String 请求唯一标识
data.audit_status Integer 内容识别状态。
0:待审核
1:审核中
2:审核完成
4:审核异常
data.result_list List 内容识别结果
data.result_list[n].name String 待识别内容名称
data.result_list[n].suggest String pass:通过
review:疑似,建议人工复审
block:内容识别未通过
data.result_list[n].detail Object 内容识别详情,包含具体审核细节
data.result_list[n].detail.audios List 音频片段识别明细
data.result_list[n].detail.images List 图片截帧审核明细
data.result_list[n].detail.audios[n].suggest String pass:通过
review:疑似,建议人工复审
block:内容识别未通过
data.result_list[n].detail.audios[n].content String 音频中识别出来的文本内容
data.result_list[n].detail.audios[n].offsetTime Integer 该片段开始时间,单位秒
data.result_list[n].detail.audios[n].duration Integer 该片段持续时长,单位秒
data.result_list[n].detail.audios[n].audio_url String 音频片段地址
data.result_list[n].detail.audios[n].category_list[n].word_list String 关键词列表
data.result_list[n].detail.images[n].suggest String pass:通过
review:疑似,建议人工复审
block:内容识别未通过
data.result_list[n].detail.images[n].category String 敏感分类
data.result_list[n].detail.images[n].subCategory String 敏感子分类
data.result_list[n].detail.images[n].category_description String 敏感分类描述,单位秒
data.result_list[n].detail.images[n].object_detail String 该字段用于返回物体检测模型的详细检测结果

# 常见问题

# 视频合规支持哪些音频格式的请求,视频大小限制是多少?

答:支持mp4、3gp、asf、avi、rmvb、mpeg、wmv、rm、mpeg4、mpv、mkv、flv、vob格式,通过URL外链的视频时长建议限制在2小时内。

# 视频合规会同时对视频画面与声音进行审核吗,画面中的广告Logo等能审核吗?

答:会的。视频不仅对视频画面进行截帧审核,对视频中的声音也会进行审核,包括视频画面中出现的违规图片、违规文字、违规Logo都会一站式审核。

# 支持对违规视频片段的定位吗?

答:支持。返回违规视频片段的同时,会返回违规的开始时间与持续时长,能够轻松定位违规发音在原视频中的位置,方便对违规内容进行定位与处理。

在线
咨询
建议
反馈
体验
中心