接口说明
更新时间:2022-08-25
内容审核平台-图像
为用户提供色情识别、敏感信息人物识别、广告识别、图像垃圾文本识别(反作弊)、恶心图像识别等一系列图像识别接口的一站式服务调用,并且支持用户在控制台中自定义配置所有接口的报警阈值和疑似区间,上传自定义文本黑库和敏感人物名单等。相比于组合服务接口,本接口除了支持自定义配置外,还对返回结果进行了总体的包装,按照用户在控制台中配置的规则直接返回是否合规,如果不合规则指出具体不合规的内容。
""" 读取图片 """
def get_file_content(filePath):
with open(filePath, 'rb') as fp:
return fp.read()
""" 调用色情识别接口 """
result = client.imageCensorUserDefined(get_file_content('example.jpg'))
""" 如果图片是url调用如下 """
result = client.imageCensorUserDefined('http://www.example.com/image.jpg')
请求参数详情
参数名称 | 数据类型 | 是否必须 | 备注 | 样例 |
---|---|---|---|---|
image | String | N (和 imgUrl 二选一) |
待审核图像 Base64 编码字符串, 以图像文件形式请求时必填 |
/9j/4AAQSkZJRgABAQAASABIAAD/4 QBYRXhpZgAATU0AKgAAAAgAAgESAAMAAAABAAYAAIdp |
imgUrl | String | N (和 image 二选一) |
网图 URL 地址, 以网图形式请求, 图像 Url 需要做 UrlEncode |
https://ai-solution-admin.cdn.bcebos.com/audit%2F demo%2Fcensoring-demo.jpg |
imgType | uint64 | N | 图片类型 0:静态图片,1:gif 动态图片 | 1 |
返回参数详情
参数名称 | 数据类型 | 是否必须 | 备注 |
---|---|---|---|
log_id | Long | Y | 请求唯一 id,用于问题排查 |
error_code | Long | N | 错误提示码,失败才返回,成功不返回 |
error_msg | String | N | 错误提示信息,失败才返回,成功不返回 |
conclusion | String | N | 审核结果,可取值描述:合规、不合规、疑似、审核失败 |
conclusionType | uint64 | N | 审核结果类型,可取值 1、2、3、4,分别代表 1:合规,2:不合规,3:疑似,4:审核失败 |
data | Array | N | 不合规/疑似/命中白名单项详细信息。响应成功并且 conclusion 为疑似或不合规或命中白名单时才返回,响应失败或 conclusion 为合规且未命中白名单时不返回。 |
+error_code | uint64 | 否 | 内层错误提示码,底层服务失败才返回,成功不返回 |
+error_msg | string | 否 | 内层错误提示信息,底层服务失败才返回,成功不返回 |
+type | Integer | N | 结果具体命中的模型:0:百度违禁图库、1:色情识别、2:暴恐识别、3:恶心图识别、4:广告监测、5:敏感信息识别、6:图像质量检测、7:用户图像黑名单、8:用户图像白名单、9:图文审核、11:百度违禁词库、12:文本反作弊、13:自定义文本黑名单、14:自定义文本白名单、15:EasyDL 自定义模型 |
+subType | Integer | N | 审核子类型,此字段需参照 type 主类型字段决定其含义: 当 type=0 时 subType 取值含义 : 0:百度违禁图 当 type=1 时 subType 取值含义: 0:一般色情、1:卡通色情、2:SM、3:低俗、4:儿童裸露、5:艺术品色情、6:性玩具、7:男性性感、8:自然男性裸露、9:女性性感、10:卡通女性性感、11:特殊类、12:亲密行为、13:卡通亲密行为 当 type=2 时 subType 取值含义: 0:警察、1:血腥、2:尸体、3:爆炸火灾、4:杀人、5:暴乱、6:暴恐人物、7:军事武器、8:暴恐旗帜、9:血腥动物或动物尸体、10:车祸 当 type=3 时 subType 取值含义: 0:恶心图 当 type=4 时 subType 取值含义:0:水印、1:二维码、2:条形码 当 type=5 时 subType 取值含义:0:敏感信息、1:公众人物、2:自定义敏感人物 当 type=6 时 subType 取值含义: 0:图像清晰度、1:图像美观度 当 type=7 时 subType 取值含义: 0:用户自定义图像黑名单 当 type=8 时 subType 取值含义: 0:用户自定义图像白名单 当 type=9 时 subType 取值含义: 0:图像中必须是真人脸 1:人脸必须为正脸 2:左右旋转角度 3:俯仰角度 4:歪头角度 5:人脸不能有遮挡 6:不能遮挡眼睛 7:不能遮挡鼻子 8:不能遮挡嘴 9:不能遮挡下巴 10:不能遮挡脸颊 11:人脸不能佩戴墨镜 12:人脸占比 13:人脸必须清晰 当 type=11 时 subType 取值含义: 0:百度官方默认违禁词库 当 type=12 时 subType 取值含义: 0:低质灌水、1:违禁、2:文本色情、3:敏感信息、4 恶意推广、5:低俗辱骂 当 type=13 时 subType 取值含义: 0:自定义文本黑名单 当 type=14 时 subType 取值含义: 0:自定义文本白名单 |
+msg | String | N | 不合规项描述信息 |
+probability | Float | N | 不合规项置信度 |
+datasetName | Float | N | 违规项目所属数据集名称 |
+stars | Array | N | 敏感人物列表数组,只有敏感人物审核不通过才有 |
++name | String | N | 敏感人物名称 |
++probability | Float | N | 人脸相似度 |
++datasetName | Float | N | 人脸所属数据集名称 |
+hits | Array | N | 命中关键词信息 |
++words | String | N | 违规文本关键字 |
+codes | Array | N | (如果您在策略配置中勾选了二维码识别)二维码或者条形码识别结果 |
++modelName | String | N | (如果您勾选了 EasyDL 的模型)命中自定义模型名称 |
++score | Float | N | (如果您勾选了 EasyDL 的模型)命中自定义模型置信度 |
++modelId | Array | N | (如果您勾选了 EasyDL 的模型)命中自定义模型 ID |
++label | String | N | (如果您勾选了 EasyDL 的模型)命中自定义模型标签名称 |
+type | int | N | 原生结果的类型 1:色情识别、2:暴恐识别、3:恶心图识别、4:广告监测、5:敏感信息识别、6:图像质量检测、7:用户图像黑名单、8:用户图像白名单、9:图文审核 |
+results | JSONArray | N | 每个 type 可能会调用多个底层服务,此处可能有多个结果 |
返回示例
// 失败返回示例
{
"log_id": 149319909347709,
"error_code": 282800,
"error_msg":"configId param is error or null"
}
// 成功返回示例-合规
{
"log_id": 123456789,
"conclusion": "合规"
}
// 成功返回示例-不合规
{
"log_id": 123456789,
"conclusion": "不合规",
"data": [
{
"msg": "存在色情内容",
"probability": 0.94308,
"type": 1
},
{
"msg": "存在性感内容",
"probability": 0.94308,
"type": 2
},
{
"msg": "存在暴恐内容",
"probability": 0.94308,
"type": 3
},
{
"msg": "存在恶心内容",
"probability": 0.9688154,
"type": 4
},
{
"msg": "存在敏感信息内容",
"stars": [
{
"probability": 0.94308,
"name": "xxx"
},
{
"probability": 0.44308,
"name": "xxx"
}
],
"type": 8
},
{
"msg": "存在二维码内容",
"probability": 0.94308,
"type": 6
},
{
"msg": "存在水印码内容",
"probability": 0.94308,
"type": 5
},
{
"msg": "存在条形码内容",
"probability": 0.94308,
"type": 7
},
{
"msg": "包含联系方式",
"probability": 0.94308,
"words": "包含联系方式",
"type": 8
}
]
}
内容审核平台-文本
""" 调用文本审核接口 """
result = client.textCensorUserDefined("测试文本")
请求参数详情
参数名称 | 数据类型 | 是否必须 | 备注 | 样例 |
---|---|---|---|---|
text | String | N | 待审核文本字符串 | "测试文本" |
返回数据参数详情
参数名称 | 数据类型 | 是否必须 | 备注 | 样例 | ||
---|---|---|---|---|---|---|
log_id | Long | Y | 请求唯一 id | |||
error_code | Long | N | 错误提示码,失败才返回,成功不返回 | |||
error_msg | String | N | 错误提示信息,失败才返回,成功不返回 | |||
conclusion | String | N | 审核结果,可取值:合规、不合规、疑似、审核失败 | |||
conclusionType | uint64 | N | 审核结果类型,可取值 1.合规,2.不合规,3.疑似,4.审核失败 | |||
data | Array | N | 不合规/疑似/命中白名单项详细信息。响应成功并且 conclusion 为疑似或不合规或命中白名单时才返回,响应失败或 conclusion 为合规且未命中白名单时不返回。 | |||
+error_code | uint64 | 否 | 内层错误提示码,底层服务失败才返回,成功不返回 | |||
+error_msg | string | 否 | 内层错误提示信息,底层服务失败才返回,成功不返回 | |||
+type | Integer | N | 审核主类型,11:百度违禁词库、12:文本反作弊、13:自定义文本黑名单、14:自定义文本白名单 | |||
+subType | Integer | N | 审核子类型,此字段需参照 type 主类型字段决定其含义: 当 type=11 时 subType 取值含义: 0:百度默认违禁词库 当 type=12 时 subType 取值含义: 0:低质灌水、1:违禁、2:文本色情、3:敏感信息、4:恶意推广、5:低俗辱骂 当 type=13 时 subType 取值含义: 0:自定义文本黑名单 当 type=14 时 subType 取值含义: 0:自定义文本白名单 |
|||
+msg | String | N | 不合规项描述信息 | |||
+probability | Float | N | 不合规项置信度 | |||
+datasetName | Float | N | 违规项目所属数据集名称 | |||
+hits | Array | N | 命中关键词信息 | |||
++words。 | String | N | 违规文本关键字 |
返回示例
// 成功返回示例-合规
{
"log_id": 15556561295920002,
"conclusion": "合规",
"conclusionType": 1
}
或者
{
"log_id": 15572142621780024,
"conclusion": "合规",
"conclusionType": 1,
"data": [{
"type": 14,
"subType": 0,
"conclusion": "合规",
"conclusionType": 1,
"msg": "自定义文本白名单审核通过",
"hits": [{
"datasetName": "SLK-测试-自定义文本白名单",
"words": ["张三"]
}]
}]
}
// 成功返回示例-不合规
{
"log_id": 123456789,
"conclusion": "不合规",
"conclusionType": 2,
"data": [{
"type": 11,
"subType": 0,
"conclusion": "不合规",
"conclusionType": 2,
"msg": "存在百度默认违禁词库不合规",
"hits": [{
"datasetName": "百度默认黑词库",
"words": ["免费翻墙"]
}]
}, {
"type": 12,
"subType": 2,
"conclusion": "不合规",
"conclusionType": 2,
"msg": "存在文本色情不合规",
"hits": [{
"datasetName": "百度默认文本反作弊库",
"probability": 1.0,
"words": ["电话 找小姐"]
}]
}, {
"type": 12,
"subType": 4,
"conclusion": "不合规",
"conclusionType": 2,
"msg": "存在恶意推广不合规",
"hits": [{
"probability": 1.0,
"datasetName": "百度默认文本反作弊库",
"words": [""]
}]
}, {
"type": 13,
"subType": 0,
"conclusion": "不合规",
"conclusionType": 2,
"msg": "存在自定义文本黑名单不合规",
"hits": [{
"datasetName": "SLK-测试-自定义黑名单",
"words": ["我是你爹", "他妈的"]
}]
}]
}
// 失败响应示例
{
"log_id": 149319909347709,
"error_code": 0,
"error_msg":"configId error"
}
内容审核平台-音频
""" 读取音频 """
def get_file_content(filePath):
with open(filePath, 'rb') as fp:
return fp.read()
""" 音频文件审核 """
""" 音频采样率 """
rate=1500
result = client.voiceCensorUserDefined(get_file_content('voice.wav'),rate,'wav')
""" 如果音频是url调用如下 """
result = client.voiceUrlCensorUserDefined('http://www.example.com/image.jpg',rate,'wav')
""" 增加可选参数"""
options={}
options['rawText']=False
options['split']=True
result = client.voiceUrlCensorUserDefined('http://www.example.com/image.jpg',rate,'wav',options=options)
请求参数详情
参数名称 | 数据类型 | 是否必须 | 备注 | 样例 |
---|---|---|---|---|
voice | String | Y | 音频文件的 url 地址,或者本地音频文件 | http:www.asd.com/asd.acc |
fmt | String | Y | 音频文件格式 | 音频文件的格式,pcm、wav、amr、m4a;不区分大小写。推荐 pcm 文件 |
rawText | boolean | N | 是否返回音频识别结果 true:是;false:否 默认为 true | true |
split | boolean | N | true:拆句;false:不拆句返回整段文本 默认为 false | false |
返回参数详情
参数名称 | 数据类型 | 是否必须 | 备注 | 样例 |
---|---|---|---|---|
log_id | Long | Y | 请求唯一 id | |
error_code | Long | N | 错误提示码,失败才返回,成功不返回 | |
error_msg | String | N | 错误提示信息,失败才返回,成功不返回 | |
conclusion | String | N | 总体审核结果,可取值:合规、不合规、疑似、审核失败 | |
conclusionType | int | N | 总体审核结果类型,可取值 1.合规,2.不合规,3.疑似,4.审核失败 | |
rawText | list | N | 音频识别文本结果 | |
sn | String | N | 音频数据唯一标识,系统内部产生。如果反馈及 debug 请提供 sn。 | |
data | list | N | 不合规/疑似/命中白名单项详细信息。响应成功并且 conclusion 为疑似或不合规或命中白名单时才返回,响应失败或 conclusion 为合规且未命中白名单时不返回。 | |
+text | list | Y | 分段文本结果,若不拆句,则为整段文本 | |
+conclusion | list | N | 当前文本审核结果,可取值:合规、不合规、疑似、审核失败 | |
+conclusionType | list | N | 当前文本审核结果类型,可取值 1.合规,2.不合规,3.疑似,4.审核失败 | |
+auditData | list | N | 当前文本审核结果明细 | |
++type | int | N | 审核主类型,11:百度违禁词库、12:文本反作弊、13:自定义文本黑名单、14:自定义文本白名单 20:存在娇喘内容 | |
++subType | int | N | 审核子类型,此字段需参照 type 主类型字段决定其含义: 当 type=11 时 subType 取值含义: 0:百度官方默认违禁词库 当 type=12 时 subType 取值含义: 0:低质灌水、1:违禁、2:文本色情、3:敏感信息、4:恶意推广、5:低俗辱骂、6:恶意推广-联系方式、7:恶意推广-软文推广、8:广告法审核 当 type=13 时 subType 取值含义: 0:自定义文本黑名单 当 type=14 时 subType 取值含义: 0:自定义文本白名单 |
|
++msg | String | N | 不合规项描述信息 | |
++hits | list | N | 命中信息 | |
++probability | Float | N | 不合规项置信度 | |
+++datasetName | Float | N | 违规项目所属数据集名称 | |
+++words | list | N | 命中关键词 |
成功响应示例
{
"log_id": 15656780617612718,
"conclusion": "不合规",
"conclusionType": 2,
"rawText": [
"第一段文本-违规",
"第二段文本-命中白名单合规",
"第三段文本-自然合规"
],
"data": [
{
"auditData": [
{
"hits": [
{
"probability": 0.0023267511,
"words": []
}
],
"msg": "存在娇喘内容",
"subType": 0,
"type": 20
}
],
"conclusion": "疑似",
"conclusionType": 3,
"text": "存在娇喘内容"
},
{
"text": "第一段文本-违规",
"conclusion": "不合规",
"conclusionType": 2,
"auditData": [
{
"type": 11,
"subType": 0,
"msg": "存在百度官方默认违禁词库不合规",
"hits": [
{
"datasetName": "百度默认黑词库",
"words": ["免费翻墙"]
}
]
},
{
"type": 12,
"subType": 2,
"msg": "存在文本色情不合规",
"hits": [
{
"datasetName": "百度默认文本反作弊库",
"probability": 1,
"words": ["电话 找小姐"]
}
]
},
{
"type": 13,
"subType": 0,
"msg": "存在自定义文本黑名单不合规",
"hits": [
{
"datasetName": "SLK-测试-自定义黑名单",
"words": ["我是你爹", "他妈的"]
}
]
}
]
},
{
"text": "第二段文本-命中白名单合规",
"conclusion": "合规",
"conclusionType": 1,
"auditData": [
{
"type": 8,
"subType": 0,
"msg": "命中用户自定义白名单",
"datasetName": "用户自定义白名单1"
}
]
},
{
"text": "第三段文本-自然合规",
"conclusion": "合规",
"conclusionType": 1
}
]
}
失败响应示例:
{
"log_id": 149319909347709,
"error_code": 0,
"error_msg": "configId error"
}
内容审核平台-短视频
""" 视频名字 """
videoName='videoname'
""" 视频URL """
videoUrl='http://videourl'
""" 视频ID """
extId='id'
""" 调用如下 """
result = client.videoCensorUserDefined(videoName,videoUrl,extId)
""" 增加可选参数"""
options={}
options['extInfo']='[{"subject":"账户信息","fields":[{"title":"昵称","value":"陈翔六点半"}]}]'
result = client.videoCensorUserDefined(videoName,videoUrl,extId,options=options)
请求参数说明
参数名称 | 数据类型 | 是否必须 | 备注 | 样例 |
---|---|---|---|---|
name | String | Y | 视频名称 | |
videoUrl | String | Y | 视频主 URL 地址,若主 Url 无效或抓取失败,则依次抓取备用地址 videoUrl2、videoUrl3、videoUrl4,若全部抓取失败则审核失败 | |
videoUrl2 | String | N | 视频备用 URL 地址 | |
videoUrl3 | String | N | 视频备用 URL 地址 | |
videoUrl4 | String | N | 视频备用 URL 地址 | |
extId | String | Y | 视频在用户平台的唯一 ID,方便人工审核结束时数据推送,用户利用此 ID 唯一锁定一条平台资源,若无可填写视频 Url | |
extInfo | JsonArray | N | 用户自定义字段,用户可以在此字段中添加自定义字段,此字段会展示在审核员页面以帮助审核人员更好的判断视频内容是否合规,具体格式请参照下方示例 | |
+subject | String | Y | 主题描述 | |
+fields | JsonArray | Y | 字段列表 | |
++title | String | Y | 字段名称 | |
++value | String | Y | 字段值 |
返回参数说明
参数名称 | 数据类型 | 是否必须 | 备注 | 样例 |
---|---|---|---|---|
log_id | Long | Y | 调用唯一 ID | |
error_code | uint64 | N | 服务调用错误码,失败才返回,成功不返回 | |
error_msg | String | N | 服务调用提示信息,失败才返回,成功不返回 | |
conclusion | String | N | 审核结果描述,可取值:合规、不合规、疑似 | |
conclusionType | Int | N | 审核结果,可取值:1 合规,2 不合规,3 疑似, 4 审核失败 | |
isHitMd5 | boole | N | 是否命中视频黑库 MD5 提示,true:命中 false:未命中 | |
msg | String | N | 命中 MD5 提示 | |
frames | JsonArray | N | 帧审核明细 | |
+frameTimeStamp | Long | N | 帧时间戳 | |
+conclusion | Long | N | 帧审核结果描述,可取值:合规、不合规、疑似 | |
+conclusionType | Int | N | 帧审核结果,可取值:1 合规,2 不合规,3 疑似, 4 审核失败 | |
+frameUrl | String | N | 帧 url 地址 | |
+frameThumbnailUrl | String | N | 帧缩略图 url 地址 | |
+data | JsonArray | N | 各维度明细审核结果 | |
++error_code | uint64 | N | 内层错误提示码,底层服务失败才返回,成功不返回 | |
++error_msg | string | N | 内层错误提示信息,底层服务失败才返回,成功不返回 | |
++type | uint64 | N | 审核主类型,0:百度官方违禁图库、1:色情识别、2:暴恐识别、3:恶心图识别、4:广告检测、5:敏感信息识别、6:图像质量检测、7:用户图像黑名单、8:用户图像白名单、10:用户头像审核、11:百度官方违禁词库、12:图文审核、13:自定义文本黑名单、14:自定义文本白名单、15:EasyDL 自定义模型、16:敏感旗帜标志识别、21:不良场景识别 | |
++subType | uint64 | N | 审核子类型,此字段需参照 type 主类型字段决定其含义: 当 type=0 时 subType 取值含义: 0:百度官方违禁图 当 type=1 时 subType 取值含义: 0:一般色情、1:卡通色情、2:SM、3:低俗、4:儿童裸露、5:艺术品色情、6:性玩具、7:男性性感、8:自然男性裸露、9:女性性感、10:卡通女性性感、11:特殊类、12:亲密行为、13:卡通亲密行为、14:孕肚裸露、15:臀部特写、16:脚部特写、17:裆部特写 当 type=2 时 subType 取值含义: 0:警察、1:血腥、2:尸体、3:爆炸火灾、4:杀人、5:暴乱、6:暴恐人物、7:军事武器、8:暴恐旗帜、9:血腥动物或动物尸体、10:车祸、11:枪械、12:弹药、13:刀具、14:武装人员、15、特殊服饰 当 type=3 时 subType 取值含义: 0:恶心图、1:性器官特写、2:脏器、3:疾病表症、4:密集恐惧症、5:腐烂食物、6:排泄物、7:恶心动物、8:人体血腥和尸体、9:动物血腥及尸体 当 type=4 时 subType 取值含义: 0:水印、1:二维码、2:条形码、3:识别二维码中内容、4:识别条形码中内容、5:不过滤字幕、6:小程序码 当 type=5 时 subType 取值含义: 0:敏感信息、1:公众人物、2:自定义敏感人物 当 type=6 时 subType 取值含义: 0:图像清晰度、1:图像美观度 当 type=7 时 subType 取值含义: 0:用户自定义图像黑名单 当 type=8 时 subType 取值含义: 0:用户自定义图像白名单 当 type=10 时 subType 取值含义: 0:图像中必须是真人脸、1:人脸必须为正脸、2:左右旋转角度、3:俯仰角度、4:歪头角度、5:人脸不能有遮挡、6:不能遮挡眼睛、7:不能遮挡鼻子、8:不能遮挡嘴、9:不能遮挡下巴、10:不能遮挡脸颊、11:人脸不能佩戴墨镜、12:人脸占比、13:人脸必须清晰 当 type=11 时 subType 取值含义: 0:百度官方默认违禁词库 当 type=12 时 subType 取值含义: 0:低质灌水、1:违禁信息、2:文本色情、3:敏感信息、4:恶意推广、5:低俗辱骂、6:广告法审核 当 type=13 时 subType 取值含义: 0:自定义文本黑名单 当 type=14 时 subType 取值含义: 0:自定义文本白名单 当 type=16 时 subType 取值含义: 0:中国国旗及类似图形、1:中国地图及类似图形、2:党旗、军旗、党徽及类似图形、3:警徽及类似图形、4:各类臂章、5:反动组织旗帜、徽章、标志 当 type=21 时 subType 取值含义: 1:真人吸烟、2:卡通吸烟、3:毒品、4:真人饮酒、5:卡通饮酒、6:赌博 |
|
++msg | String | N | 不合规项描述信息 | |
++probability | Float | N | 不合规项置信度 | |
++datasetName | Float | N | 违规项目所属数据集名称 | |
++stars | Array | N | 敏感人物列表数组,只有敏感人物审核不通过才有 | |
+++name | String | N | 敏感人物名称 | |
+++probability | Float | N | 人脸相似度 | |
+++datasetName | Float | N | 所属数据集名称 | |
++codes | Array | N | 二维码或者条形码识别结果 | |
++hits | Array | N | 命中信息 | |
+++words | Array | N | 命中关键词 | |
+++modelName | String | N | 命中自定义模型名称 | |
+++score | Float | N | 命中自定义模型置信度 | |
+++modelId | Array | N | 命中自定义模型 ID | |
+++label | String | N | 命中自定义模型标签名称 | |
conclusionTypeGroupInfos | JSON | N | 审核结论汇总 | |
+msg | String | N | 一级违规类型描述信息 | |
+subTypeInfoList | List | N | 二级违规列表。timestamp:帧时间戳;subType:二级违规类型描述 | |
+typeInfo | json | N | type:一级违规类型描述 |
返回示例
{
"log_id": 15832318739570011,
"conclusionType": 2,
"conclusion": "不合规",
"isHitMd5": false,
"msg": "未命中视频黑库",
"frames": [
{
"conclusionType": 2,
"conclusion": "不合规",
"frameTimeStamp": 0,
"frameUrl": "http://bj.bcebos.com/v1/aip-web/2877d59d-414c-4b4f-9b99-9a125b6b2055?authorization=bce-auth-v1%2Ff86a2044998643b5abc89b59158bad6d%2F2020-03-03T10%3A37%3A56Z%2F-1%2F%2F8801a8dc24914caf2ea3d1c360d24002ccbbffb99c3f74d35a1257d07ea15529",
"frameThumbnailUrl": "http://bj.bcebos.com/v1/aip-web/84e15149-2f91-4033-bff5-b7c6078107ed?authorization=bce-auth-v1%2Ff86a2044998643b5abc89b59158bad6d%2F2020-03-03T10%3A37%3A56Z%2F-1%2F%2Fa90ef9833579b3503863aea51a47e40ab2cd269a9354d8b0f4730c44803170f5",
"data": [
{
"conclusionType": 2,
"conclusion": "不合规",
"type": 5,
"subType": 1,
"msg": "存在公众人物不合规",
"stars": [
{
"probability": 0.96015228271484,
"name": "圆圆"
}
]
},
{
"conclusionType": 2,
"conclusion": "不合规",
"probability": 0.99330544,
"type": 4,
"subType": 0,
"msg": "存在watermark不合规"
},
{
"conclusionType": 2,
"conclusion": "不合规",
"type": 13,
"subType": 0,
"msg": "存在自定义文本黑名单不合规",
"hits": [
{
"datasetName": "#################111",
"words": ["好看视频", "好看视频"]
}
]
}
]
},
{
"conclusionType": 2,
"conclusion": "不合规",
"frameTimeStamp": 3033,
"frameUrl": "http://bj.bcebos.com/v1/aip-web/e4bd6b04-59f5-40c6-b83b-fb426d87e714?authorization=bce-auth-v1%2Ff86a2044998643b5abc89b59158bad6d%2F2020-03-03T10%3A37%3A56Z%2F-1%2F%2F9ebb1ee1ba7d5fa864d2ad6e9a76b28ea07586152815cecba4a44597bee332af",
"frameThumbnailUrl": "http://bj.bcebos.com/v1/aip-web/801bf227-3ff6-47bc-9759-5e920580d5f1?authorization=bce-auth-v1%2Ff86a2044998643b5abc89b59158bad6d%2F2020-03-03T10%3A37%3A56Z%2F-1%2F%2F212653b237895ac5a8f6f08d689e975c4a53ca5d4ebb0cfec01fafa88dcdd0bf",
"data": [
{
"conclusionType": 2,
"conclusion": "不合规",
"type": 4,
"subType": 0,
"probability": 0.99816656,
"msg": "存在watermark不合规"
},
{
"conclusionType": 2,
"conclusion": "不合规",
"type": 13,
"subType": 0,
"msg": "存在自定义文本黑名单不合规",
"hits": [
{
"datasetName": "#################111",
"words": ["好看视频"]
}
]
}
]
},
{
"conclusionType": 2,
"conclusion": "不合规",
"frameTimeStamp": 6033,
"frameUrl": "http://bj.bcebos.com/v1/aip-web/b239a644-6fa2-40a1-8a59-f7d0d15918a9?authorization=bce-auth-v1%2Ff86a2044998643b5abc89b59158bad6d%2F2020-03-03T10%3A37%3A56Z%2F-1%2F%2F4a923722349243c3332ac274338d89d7f8a687ed0fa60e8acb982a5744d18774",
"frameThumbnailUrl": "http://bj.bcebos.com/v1/aip-web/b063f42f-340d-4275-b59a-21e2a51c254c?authorization=bce-auth-v1%2Ff86a2044998643b5abc89b59158bad6d%2F2020-03-03T10%3A37%3A56Z%2F-1%2F%2F7a8e81ed06e09b91e92704d0a4654eccfd6a4261408322f428c255f37ab4c6a4",
"data": [
{
"conclusionType": 2,
"conclusion": "不合规",
"type": 5,
"subType": 1,
"msg": "存在公众人物不合规",
"stars": [
{
"probability": 0.91569610595703,
"name": "圆圆"
}
]
},
{
"conclusionType": 2,
"conclusion": "不合规",
"probability": 0.9982729,
"type": 4,
"subType": 0,
"msg": "存在watermark不合规"
},
{
"conclusionType": 2,
"conclusion": "不合规",
"type": 13,
"subType": 0,
"msg": "存在自定义文本黑名单不合规",
"hits": [
{
"datasetName": "#################111",
"words": ["好看视频", "好看视频"]
}
]
}
]
},
{
"conclusionType": 2,
"conclusion": "不合规",
"frameTimeStamp": 9033,
"frameUrl": "http://bj.bcebos.com/v1/aip-web/65d7cc3d-30db-48e2-8bd6-403377b79b7f?authorization=bce-auth-v1%2Ff86a2044998643b5abc89b59158bad6d%2F2020-03-03T10%3A37%3A56Z%2F-1%2F%2Fef8c29c559b0a4a903587cc9cadde5580f1e92b2934ed49353c0c6eaf085a126",
"frameThumbnailUrl": "http://bj.bcebos.com/v1/aip-web/8ae73692-5ec6-4217-be91-2fdd706163e1?authorization=bce-auth-v1%2Ff86a2044998643b5abc89b59158bad6d%2F2020-03-03T10%3A37%3A56Z%2F-1%2F%2F774b05e67fc5938af9bc0add229e3dfa738738ca5bcfd1754d12f59856a50757",
"data": [
{
"conclusionType": 2,
"conclusion": "不合规",
"type": 5,
"subType": 1,
"msg": "存在公众人物不合规",
"stars": [
{
"probability": 0.90749565124512,
"name": "圆圆"
}
]
},
{
"conclusionType": 2,
"conclusion": "不合规",
"type": 4,
"subType": 0,
"probability": 0.9990488,
"msg": "存在watermark不合规"
},
{
"conclusionType": 2,
"conclusion": "不合规",
"type": 13,
"subType": 0,
"msg": "存在自定义文本黑名单不合规",
"hits": [
{
"datasetName": "#################111",
"words": ["好看视频", "好看视频"]
}
]
}
]
},
{
"conclusionType": 2,
"conclusion": "不合规",
"frameTimeStamp": 12033,
"frameUrl": "http://bj.bcebos.com/v1/aip-web/70bbd265-aa8d-47dd-ad3e-f221eacf4638?authorization=bce-auth-v1%2Ff86a2044998643b5abc89b59158bad6d%2F2020-03-03T10%3A37%3A56Z%2F-1%2F%2F7edc87b8c40c7cf05d27225f771a778849bc2a36f4c0275bda4245b6620ee2ce",
"frameThumbnailUrl": "http://bj.bcebos.com/v1/aip-web/d6853b59-4e32-4d2b-92fe-78a8deca9a42?authorization=bce-auth-v1%2Ff86a2044998643b5abc89b59158bad6d%2F2020-03-03T10%3A37%3A56Z%2F-1%2F%2Fac65249d7009c584edba4235508c7a8a99c36e4037829bfad8612a3eeeffd000",
"data": [
{
"conclusionType": 2,
"conclusion": "不合规",
"probability": 0.9984498,
"type": 4,
"subType": 0,
"msg": "存在watermark不合规"
},
{
"conclusionType": 2,
"conclusion": "不合规",
"type": 13,
"subType": 0,
"msg": "存在自定义文本黑名单不合规",
"hits": [
{
"datasetName": "#################111",
"words": ["好看视频", "好看视频"]
}
]
}
]
},
{
"conclusionType": 2,
"conclusion": "不合规",
"frameTimeStamp": 18033,
"frameThumbnailUrl": "http://bj.bcebos.com/v1/aip-web/b23b8992-8d13-43d3-b1d6-02fcb4b03202?authorization=bce-auth-v1%2Ff86a2044998643b5abc89b59158bad6d%2F2020-03-03T10%3A37%3A56Z%2F-1%2F%2Fb503ac106e521e4bf1cc699595ee9c6115b96b18bf91e138a6fd33e40034e1a9",
"frameUrl": "http://bj.bcebos.com/v1/aip-web/272de021-d2b2-4abd-a9cb-c1c17b2955d0?authorization=bce-auth-v1%2Ff86a2044998643b5abc89b59158bad6d%2F2020-03-03T10%3A37%3A56Z%2F-1%2F%2F9f778dce855fca47be17c65ca0b3d9fcdac2c0e43b2bdeb4e114806c94c2fd07",
"data": [
{
"conclusionType": 2,
"conclusion": "不合规",
"probability": 0.988422,
"type": 4,
"subType": 0,
"msg": "存在watermark不合规"
},
{
"conclusionType": 2,
"conclusion": "不合规",
"type": 13,
"subType": 0,
"msg": "存在自定义文本黑名单不合规",
"hits": [
{
"datasetName": "#################111",
"words": ["好看视频", "好看视频", "好看视频", "好看视频"]
}
]
}
]
}
],
"conclusionTypeGroupInfos": [
{
"msg": "存在watermark不合规",
"typeInfo": {
"type": "广告检测"
},
"subTypeInfoList": [
{
"subType": "watermark",
"timestamp": 0
},
{
"subType": "watermark",
"timestamp": 3033
},
{
"subType": "watermark",
"timestamp": 6033
},
{
"subType": "watermark",
"timestamp": 9033
},
{
"subType": "watermark",
"timestamp": 12033
},
{
"subType": "watermark",
"timestamp": 18033
}
]
},
{
"msg": "存在公众人物不合规",
"typeInfo": {
"type": "敏感信息识别"
},
"subTypeInfoList": [
{
"subType": "公众人物",
"timestamp": 0
},
{
"subType": "公众人物",
"timestamp": 6033
},
{
"subType": "公众人物",
"timestamp": 9033
}
]
},
{
"msg": "存在自定义文本黑名单不合规",
"typeInfo": {
"type": "自定义文本黑名单"
},
"subTypeInfoList": [
{
"subType": "自定义文本黑名单",
"timestamp": 0
},
{
"subType": "自定义文本黑名单",
"timestamp": 3033
},
{
"subType": "自定义文本黑名单",
"timestamp": 6033
},
{
"subType": "自定义文本黑名单",
"timestamp": 9033
},
{
"subType": "自定义文本黑名单",
"timestamp": 12033
},
{
"subType": "自定义文本黑名单",
"timestamp": 18033
}
]
}
]
}
内容审核平台-长视频
提交任务
""" 视频 ID """
extId = '12345'
""" 视频 URL """
url = "http://videoUrl"
""" 调用如下 """
result = client.videoCensorSubmit(url, extId)
""" 增加可选参数 """
options = {}
options['strategyId'] = 12345678
options['noticeUrl'] = 'http://noticeUrl'
options['frequency'] = 5
result = client.videoCensorSubmit(url, extId, options)
请求参数详情
参数名称 | 数据类型 | 是否必须 | 备注 | 样例 |
---|---|---|---|---|
strategyId | Long | N | 策略 ID | |
url | String | Y | 视频地址 | |
noticeUrl | String | N | 通知地址,用于用户接收百度推送的审核结果。用户调用接收结果接口以接收审核结果时必填,调用获取结果接口以获取审核结果时无需填写 | |
frequency | Integer | N | 抽帧频率,默认 5s 一帧,抽帧频率可在内容审核平台-策略中心配置 | |
extId | String | Y | 用户侧视频唯一标识 |
返回参数详情
参数名称 | 数据类型 | 备注 | 是否必须 | 样例 |
---|---|---|---|---|
logId | Long | 请求唯一 id,用于问题排查 | Y | |
msg | String | 详细描述结果 | N | |
ret | Int | 响应状态码,可取值:0 处理成功,其他为处理失败 | Y | |
data | JSONObject | 结果详情 | Y | |
+taskId | String | 本次任务的唯一标识,可根据该标识查询审核详情 | Y | |
+queueSize | Int | 队列长度,达到并发处理上线后,后续提交任务进入该队列 | Y |
成功响应示例
{
"data": {
"queueSize": 0,
"taskId": "16293673898580002"
},
"logId": 16293673898580002,
"msg": "success",
"ret": "0"
}
失败响应示例:
{
"logId": 16293674334040003,
"msg": "duplicate request",
"ret": "282005"
}
获取结果
""" 任务 ID """
taskId = '12345678'
""" 调用如下 """
result = client.videoCensorPull(taskId)
""" 增加可选参数 """
options = {}
options['fullFrames'] = True
result = client.videoCensorPull(taskId, options)
请求参数详情
参数名称 | 数据类型 | 备注 | 是否必须 | 样例 |
---|---|---|---|---|
taskId | String | 任务唯一标识 | Y | |
fullFrames | boolean | 是否需要返回全部的视频帧的审核结论,默认返回违规和疑似的审核数据,如果需要全量数据,字段设置成 true。全量数据会增加数据传输时间,降低接口响应速度,建议若无特殊需要,可填写 false | N |
返回参数详情
参数名称 | 数据类型 | 是否必须 | 备注 | 样例 |
---|---|---|---|---|
logId | Long | Y | 请求唯一标识,用于消息追踪 | |
ret | int | Y | 响应状态码,可取值:0 处理成功,其他为处理失败 | |
msg | String | N | 请求接口描述,非空,字符串,详细描述结果。 | |
data | JSONObject | Y | 结论详情,参见审核结论详情数据 | |
+error_code | uint64 | N | 服务调用错误码,失败才返回,成功不返回 | |
+error_msg | String | N | 服务调用提示信息,失败才返回,成功不返回 | |
+conclusion | String | N | 审核结果描述,可取值:合规、不合规、疑似 | |
+conclusionType | Int | N | 审核结果,可取值:1 合规,2 不合规,3 疑似, 4 审核失败 | |
+frames | JsonArray | N | 帧审核明细,定义只返回违规、疑似的帧;审核失败、合规的不返回 | |
++frameTimeStamp | Long | N | 帧时间戳 | |
++conclusion | Long | N | 帧审核结果描述,可取值:合规、不合规、疑似 | |
++conclusionType | Int | N | 帧审核结果,可取值:1 合规,2 不合规,3 疑似, 4 审核失败 | |
++frameUrl | String | N | 帧 url 地址 | |
++frameThumbnailUrl | String | N | 帧缩略图 url 地址 | |
++data | JsonArray | N | 各维度明细审核结果 | |
+++error_code | uint64 | N | 内层错误提示码,底层服务失败才返回,成功不返回 | |
+++error_msg | string | N | 内层错误提示信息,底层服务失败才返回,成功不返回 | |
+++type | uint64 | N | 结果具体命中的模型:0:百度官方违禁图库、1:色情识别、2:暴恐识别、3:恶心图识别、4:广告检测、5:敏感信息识别、6:图像质量检测、7:用户图像黑名单、8:用户图像白名单、11:百度官方违禁词库、12:图文审核、13:自定义文本黑名单、14:自定义文本白名单、15:EasyDL 自定义模型、16:旗帜标志识别、21:违禁识别、24:直播场景审核 | |
+++subType | uint64 | N | 审核子类型,此字段需参照 type 主类型字段决定其含义: 当 type=0 时 subType 取值含义 :0:百度官方违禁图。当 type=1 时 subType 取值含义:0:一般色情、1:卡通色情、2:SM、3:低俗、4:儿童裸露、5:艺术品色情、6:性玩具、7:男性性感、8:自然男性裸露、9:女性性感、10:卡通女性性感、11:特殊类、12:亲密行为、13:卡通亲密行为、14:孕肚裸露、15:臀部特写、16:脚部特写、17:裆部特写当 type=2 时 subType 取值含义:0:警察部队、1:血腥、2:尸体、3:爆炸火灾、4:杀人、5:暴乱、6:暴恐人物、7:军事武器、8:暴恐旗帜、9:血腥动物或动物尸体、0:车祸、11:枪械、12:弹药、13:刀具、14:武装人员、15、特殊服饰。当 type=3 时 subType 取值含义:0:恶心图、1:性器官特写、2:脏器、3:疾病表症、4:密集恐惧症、5:腐烂食物、6:排泄物、7:恶心动物、8:人体血腥和尸体、9:动物血腥及尸体。当 type=4 时 subType 取值含义 0:水印、1:二维码、2:条形码、3:识别二维码中内容、4:识别条形码中内容、5:不过滤字幕、6:小程序码、7:水印自定义黑名单、8:水印自定义白名单。当 type=5 时 subType 取值含义 0:敏感信息、1:公众人物、2:自定义敏感人脸黑库、3:自定义敏感人脸白库、4:领导人、5:涉政正面人物、6:涉政负面人物、7:其他涉政人物、8:劣迹艺人、9:其他公众人物、0:卡通领导人。当 type=6 时 subType 取值含义:0:图像清晰度、1:图像美观度。当 type=7 时 subType 取值含义:0:用户自定义图像黑名单。当 type=8 时 subType 取值含义:0:用户自定义图像白名单。当 type=11 时 subType 取值含义:0:百度官方默认违禁词库。当 type=12 时 subType 取值含义:0:低质灌水、1:违禁信息、2:文本色情、3:敏感信息、4 恶意推广、5:低俗辱骂、6:恶意推广-联系方式、7:恶意推广-软文推广、8:广告法审核。当 type=13 时 subType 取值含义:0:自定义文本黑名单。当 type=14 时 subType 取值含义:0:自定义文本白名单。当 type=16 时 subType 取值含义:0:中国国旗及类似图形、1:中国地图及类似图形、2:党旗、军旗、党徽及类似图形、3:警徽及类似图形、4:各类臂章、5:反动组织旗帜、徽章、标志、6:敏感信息事件、7:领导人影射、8:宗教雕塑、9:敏感物品、0:敏感地点。当 type=21 时 subType 取值含义:1:真人吸烟、2:卡通吸烟、3:毒品、4:真人饮酒、5:卡通饮酒、6:赌博、7:纹身、8:钱币、9:竖中指。当 type=24 时 subType 取值含义:0:卫生间场景、1:车内场景、2:卧室场景、3:无意义场景、4:普通场景。 | |
+++msg | String | N | 不合规项描述信息 | |
+++probability | Float | N | 不合规项置信度 | |
+++datasetName | Float | N | 违规项目所属数据集名称 | |
+++stars | Array | N | 敏感人物列表数组,只有敏感人物审核不通过才有 | |
++++name | String | N | 敏感人物名称 | |
++++probability | Float | N | 人脸相似度 | |
++++datasetName | Float | N | 所属数据集名称 | |
+++codes | Array | N | 二维码或者条形码识别结果 | |
+++hits | Array | N | 命中信息 | |
++++words | Array | N | 命中关键词 | |
++++modelName | String | N | 命中自定义模型名称 | |
++++score | Float | N | 命中自定义模型置信度 | |
++++modelId | Array | N | 命中自定义模型 ID | |
++++label | String | N | 命中自定义模型标签名称 | |
+conclusionTypeGroupInfos | JSON | N | 审核结论汇总,合规没有该字段返回 | |
++msg | String | N | 一级违规类型描述信息 | |
++subTypeInfoList | List | N | 二级违规列表。timestamp:帧时间戳;subType:二级违规类型描述 | |
++typeInfo | json | N | type:一级违规类型描述 |
成功响应示例
{
"data": {
"conclusion": "不合规",
"frames": [
{
"conclusion": "不合规",
"frameTimeStamp": 480,
"frameUrl": "http://bj.bcebos.com/aip-web/81219/2021-08-12/162877275333721741/480.jpg?authorization=bce-auth-v1%2F5c28b2780c0d4df8a99aec39a07fdb79%2F2021-08-12T15%3A39%3A35Z%2F2592000%2F%2Fad06a942baa1c4e63907a0953b303ecf607b3da4c5944cb21f0dd66908d49c95",
"data": [
{
"msg": "存在watermark不合规",
"conclusion": "不合规",
"probability": 0.9168264,
"subType": 0,
"conclusionType": 2,
"type": 4
}
],
"conclusionType": 2,
"frameThumbnailUrl": "http://bj.bcebos.com/aip-web/81219/2021-08-12/162877275333721741/480.jpg?authorization=bce-auth-v1%2F5c28b2780c0d4df8a99aec39a07fdb79%2F2021-08-12T15%3A39%3A35Z%2F2592000%2F%2Fad06a942baa1c4e63907a0953b303ecf607b3da4c5944cb21f0dd66908d49c95"
},
{
"conclusion": "疑似",
"frameTimeStamp": 120,
"frameUrl": "http://bj.bcebos.com/aip-web/81219/2021-08-12/162877275333721741/120.jpg?authorization=bce-auth-v1%2F5c28b2780c0d4df8a99aec39a07fdb79%2F2021-08-12T15%3A39%3A25Z%2F2592000%2F%2Fcc9b9528d1c6f2db8010f17c29ae1a0d2221af32e6a90ef6f1e8b5d07a909197",
"data": [
{
"msg": "疑似存在watermark不合规",
"conclusion": "疑似",
"probability": 0.88397026,
"subType": 0,
"conclusionType": 3,
"type": 4
}
],
"conclusionType": 3,
"frameThumbnailUrl": "http://bj.bcebos.com/aip-web/81219/2021-08-12/162877275333721741/120.jpg?authorization=bce-auth-v1%2F5c28b2780c0d4df8a99aec39a07fdb79%2F2021-08-12T15%3A39%3A25Z%2F2592000%2F%2Fcc9b9528d1c6f2db8010f17c29ae1a0d2221af32e6a90ef6f1e8b5d07a909197"
},
{
"conclusion": "疑似",
"frameTimeStamp": 150,
"frameUrl": "http://bj.bcebos.com/aip-web/81219/2021-08-12/162877275333721741/150.jpg?authorization=bce-auth-v1%2F5c28b2780c0d4df8a99aec39a07fdb79%2F2021-08-12T15%3A39%3A25Z%2F2592000%2F%2F3baee8925f5f24059468fb6f8ee987d402408e4437ae0975a20f8b19f5857956",
"data": [
{
"msg": "疑似存在watermark不合规",
"conclusion": "疑似",
"probability": 0.85340554,
"subType": 0,
"conclusionType": 3,
"type": 4
}
],
"conclusionType": 3,
"frameThumbnailUrl": "http://bj.bcebos.com/aip-web/81219/2021-08-12/162877275333721741/150.jpg?authorization=bce-auth-v1%2F5c28b2780c0d4df8a99aec39a07fdb79%2F2021-08-12T15%3A39%3A25Z%2F2592000%2F%2F3baee8925f5f24059468fb6f8ee987d402408e4437ae0975a20f8b19f5857956"
},
{
"conclusion": "疑似",
"frameTimeStamp": 180,
"frameUrl": "http://bj.bcebos.com/aip-web/81219/2021-08-12/162877275333721741/180.jpg?authorization=bce-auth-v1%2F5c28b2780c0d4df8a99aec39a07fdb79%2F2021-08-12T15%3A39%3A25Z%2F2592000%2F%2F0331c417d8b721d4ee88b53f436295c891b531aaf801098d5ebde2205ce4bc3f",
"data": [
{
"msg": "疑似存在watermark不合规",
"conclusion": "疑似",
"probability": 0.85520506,
"subType": 0,
"conclusionType": 3,
"type": 4
}
],
"conclusionType": 3,
"frameThumbnailUrl": "http://bj.bcebos.com/aip-web/81219/2021-08-12/162877275333721741/180.jpg?authorization=bce-auth-v1%2F5c28b2780c0d4df8a99aec39a07fdb79%2F2021-08-12T15%3A39%3A25Z%2F2592000%2F%2F0331c417d8b721d4ee88b53f436295c891b531aaf801098d5ebde2205ce4bc3f"
},
{
"conclusion": "疑似",
"frameTimeStamp": 210,
"frameUrl": "http://bj.bcebos.com/aip-web/81219/2021-08-12/162877275333721741/210.jpg?authorization=bce-auth-v1%2F5c28b2780c0d4df8a99aec39a07fdb79%2F2021-08-12T15%3A39%3A25Z%2F2592000%2F%2F15c32196ee914a6996f2b329f71422c1823922cea6d95701f90095f99a2834fd",
"data": [
{
"msg": "疑似存在watermark不合规",
"conclusion": "疑似",
"probability": 0.89889395,
"subType": 0,
"conclusionType": 3,
"type": 4
}
],
"conclusionType": 3,
"frameThumbnailUrl": "http://bj.bcebos.com/aip-web/81219/2021-08-12/162877275333721741/210.jpg?authorization=bce-auth-v1%2F5c28b2780c0d4df8a99aec39a07fdb79%2F2021-08-12T15%3A39%3A25Z%2F2592000%2F%2F15c32196ee914a6996f2b329f71422c1823922cea6d95701f90095f99a2834fd"
},
{
"conclusion": "疑似",
"frameTimeStamp": 240,
"frameUrl": "http://bj.bcebos.com/aip-web/81219/2021-08-12/162877275333721741/240.jpg?authorization=bce-auth-v1%2F5c28b2780c0d4df8a99aec39a07fdb79%2F2021-08-12T15%3A39%3A25Z%2F2592000%2F%2Fcc708de7912d927dde56b365d3aecbe362ad47ca962bf77fa9a01a3e92e5ad8b",
"data": [
{
"msg": "疑似存在watermark不合规",
"conclusion": "疑似",
"probability": 0.8332106,
"subType": 0,
"conclusionType": 3,
"type": 4
}
],
"conclusionType": 3,
"frameThumbnailUrl": "http://bj.bcebos.com/aip-web/81219/2021-08-12/162877275333721741/240.jpg?authorization=bce-auth-v1%2F5c28b2780c0d4df8a99aec39a07fdb79%2F2021-08-12T15%3A39%3A25Z%2F2592000%2F%2Fcc708de7912d927dde56b365d3aecbe362ad47ca962bf77fa9a01a3e92e5ad8b"
},
{
"conclusion": "疑似",
"frameTimeStamp": 360,
"frameUrl": "http://bj.bcebos.com/aip-web/81219/2021-08-12/162877275333721741/360.jpg?authorization=bce-auth-v1%2F5c28b2780c0d4df8a99aec39a07fdb79%2F2021-08-12T15%3A39%3A25Z%2F2592000%2F%2Ffd9c7788c1da708c5dde025cb7db27547b855685e148295c3423776fc8c9a4aa",
"data": [
{
"msg": "疑似存在watermark不合规",
"conclusion": "疑似",
"probability": 0.81543106,
"subType": 0,
"conclusionType": 3,
"type": 4
}
],
"conclusionType": 3,
"frameThumbnailUrl": "http://bj.bcebos.com/aip-web/81219/2021-08-12/162877275333721741/360.jpg?authorization=bce-auth-v1%2F5c28b2780c0d4df8a99aec39a07fdb79%2F2021-08-12T15%3A39%3A25Z%2F2592000%2F%2Ffd9c7788c1da708c5dde025cb7db27547b855685e148295c3423776fc8c9a4aa"
},
{
"conclusion": "疑似",
"frameTimeStamp": 300,
"frameUrl": "http://bj.bcebos.com/aip-web/81219/2021-08-12/162877275333721741/300.jpg?authorization=bce-auth-v1%2F5c28b2780c0d4df8a99aec39a07fdb79%2F2021-08-12T15%3A39%3A25Z%2F2592000%2F%2F4b09619af986557f7a612470b04b4df659072117fbce995c38c87466483c9b71",
"data": [
{
"msg": "疑似存在watermark不合规",
"conclusion": "疑似",
"probability": 0.86002344,
"subType": 0,
"conclusionType": 3,
"type": 4
}
],
"conclusionType": 3,
"frameThumbnailUrl": "http://bj.bcebos.com/aip-web/81219/2021-08-12/162877275333721741/300.jpg?authorization=bce-auth-v1%2F5c28b2780c0d4df8a99aec39a07fdb79%2F2021-08-12T15%3A39%3A25Z%2F2592000%2F%2F4b09619af986557f7a612470b04b4df659072117fbce995c38c87466483c9b71"
},
{
"conclusion": "疑似",
"frameTimeStamp": 330,
"frameUrl": "http://bj.bcebos.com/aip-web/81219/2021-08-12/162877275333721741/330.jpg?authorization=bce-auth-v1%2F5c28b2780c0d4df8a99aec39a07fdb79%2F2021-08-12T15%3A39%3A25Z%2F2592000%2F%2F274e0e8d04c1ea62ef68e1f44593b71330f7783a9c769214f1aef16be4d7548f",
"data": [
{
"msg": "疑似存在watermark不合规",
"conclusion": "疑似",
"probability": 0.8592974,
"subType": 0,
"conclusionType": 3,
"type": 4
}
],
"conclusionType": 3,
"frameThumbnailUrl": "http://bj.bcebos.com/aip-web/81219/2021-08-12/162877275333721741/330.jpg?authorization=bce-auth-v1%2F5c28b2780c0d4df8a99aec39a07fdb79%2F2021-08-12T15%3A39%3A25Z%2F2592000%2F%2F274e0e8d04c1ea62ef68e1f44593b71330f7783a9c769214f1aef16be4d7548f"
},
{
"conclusion": "疑似",
"frameTimeStamp": 510,
"frameUrl": "http://bj.bcebos.com/aip-web/81219/2021-08-12/162877275333721741/510.jpg?authorization=bce-auth-v1%2F5c28b2780c0d4df8a99aec39a07fdb79%2F2021-08-12T15%3A39%3A35Z%2F2592000%2F%2Fc703deef16674dd2404217ccea19bc2df9a22833e8244d15e545d35ea285a651",
"data": [
{
"msg": "疑似存在watermark不合规",
"conclusion": "疑似",
"probability": 0.87063086,
"subType": 0,
"conclusionType": 3,
"type": 4
}
],
"conclusionType": 3,
"frameThumbnailUrl": "http://bj.bcebos.com/aip-web/81219/2021-08-12/162877275333721741/510.jpg?authorization=bce-auth-v1%2F5c28b2780c0d4df8a99aec39a07fdb79%2F2021-08-12T15%3A39%3A35Z%2F2592000%2F%2Fc703deef16674dd2404217ccea19bc2df9a22833e8244d15e545d35ea285a651"
}
],
"conclusionTypeGroupInfos": [
{
"msg": "疑似存在watermark不合规",
"typeInfo": {
"type": "广告检测"
},
"subTypeInfoList": [
{
"subType": "watermark",
"timestamp": 480
},
{
"subType": "watermark",
"timestamp": 120
},
{
"subType": "watermark",
"timestamp": 150
},
{
"subType": "watermark",
"timestamp": 180
},
{
"subType": "watermark",
"timestamp": 210
},
{
"subType": "watermark",
"timestamp": 240
},
{
"subType": "watermark",
"timestamp": 360
},
{
"subType": "watermark",
"timestamp": 300
},
{
"subType": "watermark",
"timestamp": 330
},
{
"subType": "watermark",
"timestamp": 510
}
]
}
],
"conclusionType": 2
},
"logId": 16293678179780004,
"msg": "success",
"ret": "0"
}
失败响应示例:
{
"logId": 16293679811620005,
"msg": "用户下taskId对应审核任务不存在",
"ret": "282006"
}
内容审核平台-长音频
提交任务
""" 音频 URL """
url = "http://voiceUrl"
""" 音频文件格式 """
fmt = 'mp3'
""" 音频采样率 """
rate = 16000
""" 调用如下 """
result = client.asyncVoiceSubmit(url, fmt, rate)
""" 增加可选参数 """
options = {}
options['audioId'] = '123456'
options['account'] = 'qqqwww'
options['callbackUrl'] = 'http:callbackUrl'
options['rawText'] = True
options['split'] = True
result = client.asyncVoiceSubmit(url, fmt, rate, options)
请求参数详情
参数名称 | 数据类型 | 是否必须 | 备注 | 样例 |
---|---|---|---|---|
url | String | Y | 音频地址 | |
fmt | String | Y | 音频文件格式[pcm、wav、amr、m4a、mp3] | |
rate | Integer | Y | 音频采样率[16000 ] | |
audioId | String | N | 音频信息标识,限长 128 位字符长度 | |
account | String | N | 用户信息标识,限长 64 位字符长度 | |
callbackUrl | String | N | 回调地址,用来接收审核结论的地址 | |
rawText | Boolean | N | 回调接口是否返回音频识别结果,true:返回,false:不返回, 默认为 false | |
split | Boolean | N | 回调接口返回结果 rawText 字段是否拆句,true:拆句,false:不拆句, 默认为 false |
返回参数详情
参数名称 | 数据类型 | 备注 | 样例 |
---|---|---|---|
logId | Long | 请求唯一 id,用于问题排查 | |
msg | String | 详细描述结果 | |
ret | Integer | 响应状态码,可取值:0 表示处理成功 | |
data | JSONObject | 结果详情 | |
+taskId | String | 本次任务的唯一标识,可根据该标识查询审核详情 | |
+audioId | Int | 用户侧音频标识,如果入参中有该字段,才会透传 |
成功响应示例
{
"msg": "success",
"ret": "0",
"data": {
"taskId": "8aa70aa5-f9cf-4aff-973e-98b3a53ef855"
},
"logId": 16469816944643902
}
失败响应示例:
{
"log_id": 16469819789325589,
"error_msg": "invalid parameter",
"error_code": 282004
}
获取结果-轮询模式
""" 使用 taskId """
taskId = '123456'
result = client.asyncVoiceTaskPull(taskId)
""" 使用 audioId """
audioId = '123456'
result = client.asyncVoiceAudioPull(audioId)
请求参数详情
参数名称 | 数据类型 | 是否必须 | 描述 |
---|---|---|---|
taskId | String | N | 提交任务接口返回的任务的唯一标识(与 audioId 二选一) |
audioId | String | N | 用户侧音频唯一标识(与 taskId 二选一),当 taskId 与 audioId 同时传入时,优先查询 taskId |
返回参数详情
参数名称 | 数据类型 | 描述 |
---|---|---|
error_code | Integer | 审核服务异常错误码 |
error_msg | string | 审核服务异常错误提示信息 |
log_id | Long | 请求唯一 id,用于问题排查 |
conclusion | String | 音频任务审核结果描述:合规、不合规、疑似、审核失败 |
conclusionType | Integer | 音频任务审核结果值:1 合规,2 不合规,3 疑似,4 审核失败 |
sn | String | 音频数据唯一标识,系统内部产生 |
audioId | String | 用户侧音频唯一标识 |
account | String | 用户侧音频备注 |
rawText | StringArray | 音频识别文本结果,字符串数组 |
data | JSONArray | 音频识别文本审核结果,参见 data 结构 |
data 结构
参数名称 | 数据类型 | 描述 |
---|---|---|
text | String | 分段文本结果 |
startTime | Long | 文本对应音频文件的起始时间戳 |
endTime | Long | 文本对应音频文件的终止时间戳 |
conclusion | String | 文本审核结果,可取值:合规、不合规、疑似、审核失败 |
conclusionType | Integer | 文本审核结果类型,可取值 1.合规,2.不合规,3.疑似,4.审核失败 |
auditData | JSONArray | 文本审核结果详情,参见 auditData 结构 |
auditData 结构
参数名称 | 数据类型 | 描述 |
---|---|---|
type | Integer | 审核主类型,11:百度官方违禁词库、12:文本反作弊、13:自定义文本黑名单、14:自定义文本白名单 20:存在娇喘内容 |
subType | Integer | 审核子类型,此字段需参照 type 主类型字段决定其含义: 当 type=11 时 subType 取值含义: 0:百度默认违禁词库 当 type=12 时 subType 取值含义: 0:低质灌水、1:违禁、2:文本色情、3:敏感信息、4:恶意推广、5:低俗辱骂、6:恶意推广-联系方式、7:恶意推广-软文推广、8:广告法审核 当 type=13 时 subType 取值含义: 0:自定义文本黑名单 当 type=14 时 subType 取值含义: 0:自定义文本白名单 |
msg | String | 不合规项描述信息 |
hits | JSONArray | 命中信息,参见 hits 结构 |
hits 结构
参数名称 | 数据类型 | 描述 |
---|---|---|
probability | Float | 不合规项置信度 |
datasetName | Float | 违规项目所属数据集名称 |
words | StringArray | 命中关键词 |
成功响应示例
{
"audioId": "",
"conclusion": "合规",
"conclusionType": 1,
"data": [
{
"auditData": [],
"conclusion": "合规",
"conclusionType": 1,
"endTime": 9160,
"startTime": 0,
"text": "那就学习那给三角形进行分类下面我们看啊可以按照什么来分类呢首先第一个的分类标准,"
},
{
"auditData": [],
"conclusion": "合规",
"conclusionType": 1,
"endTime": 19490,
"startTime": 9160,
"text": "就按照它们的角来分类那按照三角形的角来分类呢我们看这些同学呀他们摆出来各自不同形状的三角形,"
},
{
"auditData": [],
"conclusion": "合规",
"conclusionType": 1,
"endTime": 27810,
"startTime": 19490,
"text": "如何给他们按角来分类呢就有的呢我们看那三角形它角有什么样的特征有的角呢,"
},
{
"auditData": [],
"conclusion": "合规",
"conclusionType": 1,
"endTime": 32120,
"startTime": 27720,
"text": "它三个有的三角形它那三个角都是锐角,"
},
{
"auditData": [],
"conclusion": "合规",
"conclusionType": 1,
"endTime": 40490,
"startTime": 32120,
"text": "这是一种类型也就是说三个角都是锐角的三角形还有呢有的三角形呢它有一个钝角,"
},
{
"auditData": [],
"conclusion": "合规",
"conclusionType": 1,
"endTime": 44600,
"startTime": 40490,
"text": "而其余的那两个角呢都是锐角的,"
},
{
"auditData": [],
"conclusion": "合规",
"conclusionType": 1,
"endTime": 52800,
"startTime": 44550,
"text": "那还有一种情况呢就是它那个三角形呢有一个直角的那我们下面把它画出图形来看,"
},
{
"auditData": [],
"conclusion": "合规",
"conclusionType": 1,
"endTime": 60960,
"startTime": 52840,
"text": "说有一个直角的有两个钝角这一类的也就是这个三角形里含有一个角度是直角,"
},
{
"auditData": [],
"conclusion": "合规",
"conclusionType": 1,
"endTime": 68600,
"startTime": 60960,
"text": "那其余的那两个角呢是锐角那另一种类型呢就是三角形里只有一个钝角,"
},
{
"auditData": [],
"conclusion": "合规",
"conclusionType": 1,
"endTime": 79060,
"startTime": 68600,
"text": "其余的两个呢是锐角我们看啊这个里边一个是直角其余两个钝角一个是其余两个是锐角啊一个是钝角的时候呢其余两个是锐角,"
},
{
"auditData": [],
"conclusion": "合规",
"conclusionType": 1,
"endTime": 89170,
"startTime": 79060,
"text": "那还有一种情况呢三个角都是锐角的那这样呢我们就把这个三角形进行了这样以角来进行了三种不同的分类,"
},
{
"auditData": [],
"conclusion": "合规",
"conclusionType": 1,
"endTime": 99960,
"startTime": 90140,
"text": "分为有一个直角两个锐角的呢我们称它为直角三角形那有一个钝角两个锐角的呢我们称它为,"
},
{
"auditData": [],
"conclusion": "合规",
"conclusionType": 1,
"endTime": 109170,
"startTime": 99960,
"text": "钝角三角形那看见三个角都是什么锐角的时候我们称它为什么锐角三角形,"
},
{
"auditData": [],
"conclusion": "合规",
"conclusionType": 1,
"endTime": 119450,
"startTime": 109170,
"text": "那这样我们就是按照三角形它的角来给它进行了分类三种不同的分类包括是直角三角形钝角三角形和,"
},
{
"auditData": [],
"conclusion": "合规",
"conclusionType": 1,
"endTime": 121240,
"startTime": 119390,
"text": "锐角三角形,"
},
{
"auditData": [],
"conclusion": "合规",
"conclusionType": 1,
"endTime": 129030,
"startTime": 121280,
"text": "那我们看对于给出来这个锐角三角形直角三角形和钝角三角形我们看,"
},
{
"auditData": [],
"conclusion": "合规",
"conclusionType": 1,
"endTime": 139230,
"startTime": 129030,
"text": "那把所有三角形作为一个整体来看的话那上面这三种的三角形作为整体的一部分可以用这个图来表示,"
},
{
"auditData": [],
"conclusion": "合规",
"conclusionType": 1,
"endTime": 149360,
"startTime": 139310,
"text": "那就是整体的这一个图形里记三角形里边整体都是三角形啊它包含一部分是锐角三角形一部分是直角三角形一部分是,"
},
{
"auditData": [],
"conclusion": "合规",
"conclusionType": 1,
"endTime": 151000,
"startTime": 149360,
"text": "对角三角形,"
},
{
"auditData": [],
"conclusion": "合规",
"conclusionType": 1,
"endTime": 160030,
"startTime": 152010,
"text": "那我们来看观察下观察一下啊三角形它们这些边有什么样的不同,"
},
{
"auditData": [],
"conclusion": "合规",
"conclusionType": 1,
"endTime": 168450,
"startTime": 160050,
"text": "那有什么样的特点呢看这个同学说我发现呢有两条边相等的三角形,"
},
{
"auditData": [],
"conclusion": "合规",
"conclusionType": 1,
"endTime": 177290,
"startTime": 168450,
"text": "那另外一个同学说呢他说还有三条边相等的三角形那还有什么样呢我们看以边呢来不同,"
},
{
"auditData": [],
"conclusion": "合规",
"conclusionType": 1,
"endTime": 180740,
"startTime": 177290,
"text": "作为它的分类标准我们刚才是一角,"
}
],
"log_id": 16469822826124169,
"sn": "bb7ea0ef-2431-4c64-b62f-e6c638d50e3e"
}
失败响应示例:
{
"error_code": 282006,
"error_msg": "task not exist"
}
内容审核平台-直播
公共参数说明
数据类型
数据类型 | 说明 |
---|---|
日期类型 | 前后端传递的日期都以 Long 类型表示,存储距离 1970 年 1 月 1 日 0 时起的毫秒数,由前端在显示时根据时区做相应转换 |
String | 标准的 json 字符串类型,默认长度 255 |
String[] | 标准的 json 字符串数组类型 |
Int | 标准的 json 的整型类型,默认范围正负 2 的 32 次方 |
Long | 标准的 json 的整型类型,默认范围正负 2 的 64 次方 |
Double | 标准的 json 的浮点数类型 |
公共请求头
公共请求头(不包含 http 其他请求头)
头域(Header) | 说明 |
---|---|
Content-Type | application/x-www-form-urlencoded |
Accept | */* |
公共响应头
公共响应头(不包含 http 其他请求头)
头域(Header) | 说明 |
---|---|
Content-Type | application/json;charset=UTF-8 |
Accept | application/json;charset=UTF-8 |
公共响应体
响应体的公共部分
消息体(Body) | 说明 |
---|---|
logId | 请求唯一标识,非空,唯一,字符串。用于消息追踪 |
ret | 请求结果,非空,唯一,int,参考响应状态码。 |
msg | 请求接口描述,非空,字符串,详细描述结果。 |
订阅事件
code | 说明 |
---|---|
1 | 合规 |
2 | 不合规 |
3 | 疑似 |
4 | 审核失败 |
状态码
状态码 | 说明 | 描述 | 解决办法 |
---|---|---|---|
0 | 处理成功 | 处理成功 | 处理成功 |
282000 | logic internal error | 系统内部错误 | 联系业务支持团队或者提交云工单 |
282003 | missing parameters | 缺少参数 | 核验接口文档,补充缺失的参数 |
282004 | invalid parameter | 参数无效 | 核验接口文档,修改不合法的参数 |
282006 | task not exist | taskId 对应的任务不存在 | 检查 taskId 是否正确,taskId 是提交任务后接口返回的数据 |
282905 | stream config exist | 检测任务已经存在 | 提交任务参数中,appId 和 extId 的组合要求唯一,一般更换 extId 即可 |
282906 | request process fail | 请求处理失败 | 联系业务支持团队或者提交云工单 |
提交任务
""" 流地址 """
streamUrl = "https://streamUrl"
""" 流地址协议类型 """
streamType = "hls"
""" 用户侧流唯一标识 """
extId = "123456"
""" 直播开始时间戳 """
startTime = 1648473422000
""" 直播结束时间戳 """
endTime = 1648473422000
""" 直播名称 """
streamName = "test"
""" 方法调用 """
result = liveConfigSave(streamUrl, streamType, extId, startTime, endTime, streamName)
""" 其他参数调用 """
options = {}
options['streamDealInfo'] = {}
options['subEvents'] = {}
options['noticeUrl'] = 'http://noticeUrl'
options['region'] = 'hb'
options['detectType'] = 0
result = liveConfigSave(streamUrl, streamType, extId, startTime, endTime, streamName, options)
请求参数详情
参数名称 | 数据类型 | 描述 | 是否必须 |
---|---|---|---|
streamUrl | String | 流地址,支持 hls、rtmp、rtsp 协议 | 是 |
strategyId | Long | 策略 ID | 否 |
streamType | String | 流地址协议类型,例如:hls、rtmp、rtsp 等 | 是 |
extId | String | 用户侧流唯一标识 | 是 |
startTime | Long | 直播开始时间戳,当前时间之后,单位 ms | 是 |
endTime | Long | 直播结束时间戳,startTime 之后,单位 ms | 是 |
streamName | String | 直播名称 | 是 |
streamDealInfo | Object | 音视频流处理方案,字段说明见下方 | 否,默认是视频抽帧频率 5s,音频切分 VAD 模式,最长时间 60s |
subEvents | Object | 音频流、视频流订阅事件,字段说明见下方,默认音频、视频订阅都是违规 | 否 |
noticeUrl | String | 通知地址 ,接口定义见通知接口 | 否 |
region | String | hd/hn/hb | 否(默认音视频流地址地域为 hb,其他无效参数也是默认 hb) |
detectType | Integer | 审核类型 | 否(0:音、视频都审核,1:视频流,2:音频流; 默认 0:音视频) |
streamDealInfo 结构
参数名称 | 数据类型 | 描述 | 是否必须 |
---|---|---|---|
videoFrequency | Integer | 视频流处理抽帧频率,单位 s,默认 5s 抽一帧图 | 否 |
audioCutModel | Integer | 音频流切分方式 ,VAD 模式为 0,固定时长切分为 1,默认 VAD 切分音频流片段 | 否 |
audioCutLength | Integer | 音频流切分方式为固定时长时,切分音频的最长时长,单位 s。该参数最长支持设置为 60s,默认值为 60s | 否 |
subEvents 结构
参数名称 | 数据类型 | 描述 | 是否必须 |
---|---|---|---|
videoSubEvents | String | 视频流接收通知的订阅事件,参数是订阅事件的 code,之间用英文逗号分隔,默认是 2。例如 1,2,3,4 | 否 |
audioSubEvents | String | 音频流接收通知的订阅事件,参数是订阅事件的 code,之间用英文逗号分隔,默认是 2。例如 1,2,3,4 | 否 |
返回参数详情
参数名称 | 数据类型 | 描述 | 是否必须 |
---|---|---|---|
公共响应体 | 无 | 公共响应参数,logId,ret,msg | 是 |
data | Object | 任务提交成功的返回结构体 | 否 |
data 结构
参数名称 | 数据类型 | 描述 | 是否必须 |
---|---|---|---|
taskId | String | 音视频流任务的任务 Id,全局唯一,用于后续停止流、查询审核结果等操作 | 是 |
成功响应示例
{
"logId": 16139832848680002,
"msg": "success",
"ret": "0",
"data": {
"taskId": "163214312312312"
}
}
失败响应示例:
{
"logId": 16139873216780003,
"msg": "stream config exist",
"ret": "282905"
}
停止任务
""" 任务 Id """
taskId = '123456'
""" 方法调用 """
result = client.liveConfigStop(taskId);
请求参数详情
参数名称 | 数据类型 | 描述 | 是否必须 |
---|---|---|---|
taskId | String | 任务 Id,提交任务时返回的,需要客户侧自行保存 | 是 |
返回参数详情
参数名称 | 数据类型 | 描述 | 是否必须 |
---|---|---|---|
公共响应体 | 无 | 公共响应参数,logId,ret,msg | 是 |
成功响应示例
{
"logId": 16139962168020001,
"msg": "success",
"ret": "0"
}
失败响应示例
{
"logId": 16469831731471462,
"msg": "task not exist",
"ret": "282006"
}
查看任务
""" 任务 Id """
taskId = '123456'
""" 方法调用 """
result = client.liveConfigView(taskId);
请求参数详情
参数名称 | 数据类型 | 描述 | 是否必须 |
---|---|---|---|
taskId | String | 任务 Id | 是 |
返回参数详情
参数名称 | 数据类型 | 描述 | 是否必须 |
---|---|---|---|
公共响应体 | 无 | 公共响应参数,logId,ret,msg | 是 |
data | Object | 任务提交成功的返回结构体 | 否 |
data 结构
参数名称 | 数据类型 | 描述 | 是否必须 |
---|---|---|---|
taskId | String | 音视频流任务的任务 Id,全局唯一,用于后续停止流、查询审核结果等操作 | 是 |
streamUrl | String | 流地址 | 是 |
strategyId | Long | 策略 ID | 是 |
streamType | String | 流地址协议类型,例如:http、rmtp 等 | 是 |
extId | String | 用户侧流唯一标识 | 是 |
createTime | Long | 任务创建时间戳,单位 ms | 是 |
startTime | Long | 直播开始时间戳,单位 ms | 是 |
endTime | Long | 直播结束时间戳,单位 ms | 是 |
streamName | String | 直播名称 | 是 |
streamDealInfo | Object | 音视频流处理方案,字段说明见下方 | 否,默认是视频抽帧频率 5s,音频切分 VAD 模式 |
subEvents | Object | 音频流、视频流订阅事件,字段说明见下方,默认音频、视频订阅都是违规 | 否 |
noticeUrl | String | 通知地址 ,接口定义见通知接口 | 是 |
region | String | hd/hn/hb | 否(默认音视频流地址地域为 hb,其他无效参数也是默认 hb) |
detectType | Integer | 审核类型 | 否(0:音、视频都审核,1:视频流,2:音频流; 默认 0:音视频) |
streamDealInfo 结构
参数名称 | 数据类型 | 描述 | 是否必须 |
---|---|---|---|
videoFrequency | Integer | 视频流处理抽帧频率,单位 s,默认 5s 抽一帧图 | 否 |
audioCutModel | Integer | 音频流切分方式 ,VAD 模式为 0,固定时长切分为 1,默认 VAD 切分音频流片段 | 否 |
audioCutLength | Integer | 音频流切分方式为固定时长时,切分音频的最长时长,单位 s。该参数最长支持设置为 60s,默认值为 60s | 否 |
subEvents 结构 | 参数名称 | 数据类型 | 描述 | 是否必须 | | :------------- | :------: | :----------------------------------------------------------- | :------- | | videoSubEvents | String | 视频流接收通知的订阅事件,参数是订阅事件的 code,之间用英文逗号分隔,默认是 2。例如 1,2,3,4 | 否 | | audioSubEvents | String | 音频流接收通知的订阅事件,参数是订阅事件的 code,之间用英文逗号分隔,默认是 2。例如 1,2,3,4 | 否 |
成功响应示例
{
"data": {
"appId": 1482863739,
"createTime": 1638264055000,
"detectType": 0,
"endTime": 1638264830000,
"extId": "18",
"noticeUrl": "http://notice.com",
"region": "hb",
"startTime": 1638257845000,
"strategyId": 462,
"streamDealInfo": {
"audioCutLength": 60,
"audioCutModel": 0,
"videoFrequency": 30
},
"streamName": "测试终止流",
"streamType": "rtsp",
"streamUrl": "rtsp://caoqiyun.bcc-bdbl.baidu.com:8554/record/1_e689aaef88f1474fb9361c9ffd1e6dd0.mp4",
"subEvents": {
"audioSubEvents": "2,3",
"videoSubEvents": "2,3"
},
"taskId": "16382640539450029"
},
"logId": 16382764268520001,
"msg": "success",
"ret": "0"
}
失败响应示例
{
"logId": 16469832999721472,
"msg": "task not exist",
"ret": "282006"
}
获取结果-轮询模式
""" 任务 Id """
taskId = '123456'
""" 方法调用 """
result = client.liveAuditPull(taskId)
""" 其他参数调用 """
options = {}
options['subEvents'] = '1,2,3,4'
options['mediaType'] = 1
options['pageNum'] = 1
options['pageSize'] = 10
result = client.liveAuditPull(taskId, options)
请求参数详情
参数名称 | 数据类型 | 描述 | 是否必须 |
---|---|---|---|
taskId | String | 任务 Id,提交任务时返回的,需要客户侧自行保存 | 是 |
subEvents | String | 查阅的事件,包括违规、合规等,格式是审核结论的类型汇总,之间用英文逗号隔离,例如 1,2,3,4。默认是只订阅不合规 2 | 否 |
mediaType | Integer | 流类型,1 代表视频流,2 代表音频流,默认是 1 | 否 |
pageNum | Integer | 页数,默认是 1 | 否 |
pageSize | Integer | 每页数量,最大为 1000,默认是 10 | 否 |
返回参数详情
参数名称 | 数据类型 | 描述 | 是否必须 |
---|---|---|---|
taskId | String | 任务 ID | 是 |
total | Integer | 帧图或者音频片段总数量 | 是 |
videoFrameList | List | 视频流帧图信息列表,Object 类型的 List | 否 |
audioFrameList | List | 音频流音频片段信息列表,Object 类型的 List | 否 |
videoFrameList 结构
参数名称 | 数据类型 | 描述 | 是否必须 |
---|---|---|---|
frameTimestamp | Integer | 帧图时间戳,单位 s | 是 |
frameUrl | String | 帧图地址 | 是 |
frameAuditResult | JSONObject | 帧图审核结论,JSONObject 中字段和图片审核的结果字段相同 | 是 |
audioFrameList 结构
参数名称 | 数据类型 | 描述 | 是否必须 |
---|---|---|---|
startTime | Integer | 音频片段开始时间,单位 s | 是 |
endTime | Integer | 音频片段结束时间,单位 s | 是 |
audioUrl | String | 音频片段地址 | 是 |
audioAuditResult | JSONObject | 音频片段审核结论,JSONObject 中字段和音频同步审核 V3 返回的结果字段相同 | 是 |
成功响应示例
视频流审核拉取结论
{
"data": {
"taskId": "16371338463540001",
"total": 64,
"videoFrameList": [
{
"frameAuditResult": {
"conclusion": "不合规",
"log_id": 16327419922927415,
"data": [
{
"msg": "存在女性性感不合规",
"conclusion": "不合规",
"probability": 0.9771008,
"subType": 9,
"conclusionType": 2,
"type": 1
}
],
"isHitMd5": false,
"conclusionType": 2
},
"frameTimestamp": 1,
"frameUrl": "http://1111.com"
},
{
"frameAuditResult": {
"conclusion": "不合规",
"log_id": 16327419922927415,
"data": [
{
"msg": "存在女性性感不合规",
"conclusion": "不合规",
"probability": 0.9771008,
"subType": 9,
"conclusionType": 2,
"type": 1
}
],
"isHitMd5": false,
"conclusionType": 2
},
"frameTimestamp": 1,
"frameUrl": "http://1111.com"
},
{
"frameAuditResult": {
"conclusion": "不合规",
"log_id": 16327419922927415,
"data": [
{
"msg": "存在女性性感不合规",
"conclusion": "不合规",
"probability": 0.9771008,
"subType": 9,
"conclusionType": 2,
"type": 1
}
],
"isHitMd5": false,
"conclusionType": 2
},
"frameTimestamp": 1,
"frameUrl": "http://1111.com"
},
{
"frameAuditResult": {
"conclusion": "不合规",
"log_id": 16327419922927415,
"data": [
{
"msg": "存在女性性感不合规",
"conclusion": "不合规",
"probability": 0.9771008,
"subType": 9,
"conclusionType": 2,
"type": 1
}
],
"isHitMd5": false,
"conclusionType": 2
},
"frameTimestamp": 1,
"frameUrl": "http://1111.com"
},
{
"frameAuditResult": {
"conclusion": "不合规",
"log_id": 16327419922927415,
"data": [
{
"msg": "存在女性性感不合规",
"conclusion": "不合规",
"probability": 0.9771008,
"subType": 9,
"conclusionType": 2,
"type": 1
}
],
"isHitMd5": false,
"conclusionType": 2
},
"frameTimestamp": 1,
"frameUrl": "http://1111.com"
}
]
},
"logId": 16371356327780005,
"msg": "success",
"ret": "0"
}
音频流审核拉取结论
{
"data": {
"audioFrameList": [
{
"audioAuditResult": {
"conclusion": "不合规",
"log_id": 16347855222910014,
"data": [
{
"conclusion": "不合规",
"auditData": [
{
"hits": [
{
"probability": 0.95653117,
"datasetName": "百度默认文本反作弊库",
"words": []
}
],
"msg": "存在文本色情不合规",
"subType": 2,
"type": 12
}
],
"startTime": 0,
"conclusionType": 2,
"endTime": 0,
"text": "上海啊,上海有个奶奶总没呻吟,你啥时间来的,刚进来是吧,我刚才这个听这么早呢?哦,你压根儿就没下线啊你是?"
}
],
"rawText": [
"上海啊,上海有个奶奶总没呻吟,你啥时间来的,刚进来是吧,我刚才这个听这么早呢?哦,你压根儿就没下线啊你是?"
],
"conclusionType": 2,
"sn": "16347855222910014"
},
"audioUrl": "http://aqmidaudio.oss-cn-shanghai.aliyuncs.com/50049_a_99255161_2705227128_1761227312_0_0_1761227312_1761227312_1634782567555_c79faa32-8d8f-44f1-b96e-98715c15a5d5_bb8a97db.aac",
"endTime": 5,
"startTime": 0
}
],
"taskId": "16371338463540001",
"total": 1
},
"logId": 16379302043000005,
"msg": "success",
"ret": "0"
}
失败响应示例
{
"logId": 16371357212350006,
"msg": "invalid parameter,mediaType error",
"ret": "282004"
}