功能描述
若您配置了审核回调地址,在直播审核结束后,后台会将审核结果以 JSON 形式回调至您的回调地址。您可以通过回调内容进行后续的处理操作。
回调内容分为简洁回调(Simple)和详细回调(Detail)。
回调内容说明
简洁回调(Simple)
回调通知为
HTTP
的POST
方法,含有 X-Ci-Content-Version: Simple
的头部。该响应体返回为 application/json 数据,包含完整节点数据的内容展示如下:
{"code": 0,"data": {"event":"ReviewVideo","forbidden_status": 0,"porn_info": {"hit_flag": 0,"label": "","count": 0},"result": 0,"trace_id": "test_trace_id","url": "test_url","cos_headers": {"x-cos-meta-xx": "xx"}},"message": "Test request when setting callback url"}
具体的数据内容如下:
参数名称 | 描述 | 类型 | 是否必选 |
code | Integer | 是 | |
message | 错误描述。 | String | 是 |
data | 直播审核结果的详细信息。 | Object | 是 |
data 的具体内容如下:
参数名称 | 描述 | 类型 | 是否必选 |
trace_id | 请求的 ID,如果是接口创建的异步任务,则为接口返回的 JobId。 | String | 是 |
url | 被审核直播的直播地址。 | String | 是 |
event | 触发的事件,此处固定为 ReviewVideo。 | String | 是 |
result | 该字段表示本次判定的审核结果,您可以根据该结果,进行后续的操作;建议您按照业务所需,对不同的审核结果进行相应处理。 有效值:0(审核正常),1 (判定为违规敏感的内容),2(疑似敏感,建议人工复核)。 | Integer | 是 |
forbidden_status | 若您设置了自动冻结,该字段表示冻结状态。直播审核不涉及该字段,默认为0:未冻结。 | Integer | 是 |
cos_headers | 资源上传时设置的自定义 header 内容,若未设置则不返回。 | Object | 否 |
porn_info | 审核场景为涉黄的审核结果信息。 | Object | 否 |
ads_info | 审核场景为广告引导的审核结果信息。 | Object | 否 |
data_id | 提交任务时设置了DataId参数时返回,返回原始内容,长度限制为512字节。 | String | 否 |
xx_info 的具体内容如下:
参数名称 | 描述 | 类型 | 是否必选 |
hit_flag | 用于返回该审核场景的审核结果,返回值: 0:正常。 1:确认为当前场景的违规内容。 2:疑似为当前场景的违规内容。 | Integer | 是 |
label | 命中的标签名称,目前为空。 | String | 是 |
count | 命中该审核分类的敏感截图张数。 | Integer | 是 |
详细回调(Detail)
回调通知为
HTTP
的POST
方法,含有 X-Ci-Content-Version: Detail
的头部。该响应体返回为 application/json 数据,包含完整节点数据的内容展示如下:
{"EventName": "ReviewVideo","JobsDetail": {"JobId": "xxxxxx","State": "Success","CreationTime": "","Object": "","Label": "Normal","Result": 0,"SnapshotCount": 1,"PornInfo": {"HitFlag": 0,"Count": 0},"AdsInfo": {"HitFlag": 0,"Count": 0},"Snapshot": [{"Url": "","Text": "","SnapshotTime": 0,"Label": "Normal","Result": 0,"PornInfo": {"HitFlag": 0,"Score": 0,"Label": "","SubLabel": ""},"AdsInfo": {"HitFlag": 0,"Score": 0,"Label": "","SubLabel": ""}}],"AudioSection": [{"Url": "","Text": "","OffsetTime": 0,"Duration": 30000,"Label": "Normal","Result": 0,"PornInfo": {"HitFlag": 0,"Score": 0},"AdsInfo": {"HitFlag": 0,"Score": 0}}],"BucketId": "examplebucket-1250000000","Region": "ap-chongqing","ForbidState": 0,"CosHeaders": {"x-cos-meta-id": "xxx"}}}
具体的数据内容如下:
节点名称(关键字) | 描述 | 类型 |
JobsDetail | 任务的详细结果信息。 | Object |
EventName | 任务的类型,为 ReviewVideo 。 | String |
JobsDetail 的具体内容如下:
节点名称(关键字) | 描述 | 类型 |
Code | String | |
Message | 错误描述,只有 State 为 Failed 时返回。 | String |
JobId | 审核任务的 ID。 | String |
DataId | 提交任务时设置了DataId参数时返回,返回原始内容,长度限制为512字节。 | String |
State | 直播审核任务的状态,值为 Submitted(已提交审核)、Snapshoting(截图中)、Success(审核成功)、Failed(审核失败)、Auditing(审核中)其中一个。 | String |
CreationTime | 直播审核任务的创建时间。 | String |
Url | 本次审核的直播链接。 | String |
SnapshotCount | 截图的总数量。直播流状态为 Auditing 的回调中该字段为本次回调包含的截图数量。 | Integer |
Label | 该字段用于返回检测结果中所对应的优先级最高的恶意标签,表示模型推荐的审核结果,建议您按照业务所需,对不同违规类型与建议值进行处理。 返回值:Normal:正常,Porn:色情,Ads:广告。 | String |
Result | 该字段表示本次判定的审核结果,您可以根据该结果,进行后续的操作;建议您按照业务所需,对不同的审核结果进行相应处理。 有效值:0(审核正常),1 (判定为违规敏感文件),2(疑似敏感,建议人工复核)。 | Integer |
PornInfo | 审核场景为涉黄的审核结果信息。 | Object |
AdsInfo | 审核场景为广告引导的审核结果信息。 | Object |
Snapshot | 该字段用于返回直播中画面截图审核的结果。 | Array |
AudioSection | 该字段用于返回直播中声音审核的结果。如果未检测到声音,则不返回。 | Array |
BucketId | 创建的审核任务所属的存储桶名称。 | String |
Region | 存储桶所在的地域。 | String |
ForbidState | 若您设置了自动冻结,该字段表示视频的冻结状态。0:未冻结,1:已被冻结,2:已转移文件。 | Integer |
CosHeaders | 资源上传到 COS 时设置的自定义 Header 内容,如果未设置则不返回。map 结构,key 为自定义 Header 的名称,value 为内容。 | Object |
UserInfo | 用户业务字段。创建任务时未设置 UserInfo 则无此字段。 | Object |
Type | 审核类型,直播流审核返回 live_video。 | String |
ListInfo | 账号黑白名单结果。 | Container |
PornInfo,AdsInfo 的具体内容如下:
节点名称(关键字) | 描述 | 类型 |
HitFlag | 是否命中该审核分类,0表示未命中,1表示命中,2表示疑似。 | Integer |
Count | 命中该审核分类的截图张数。 | Integer |
Snapshot 的具体内容如下:
节点名称(关键字) | 描述 | 类型 |
Url | 直播截图的访问地址,您可以通过该地址查看该截图内容,地址格式为标准 URL 格式。 注意:每次查看数据的有效期为2小时,2小时后如还需查看,请发起查询请求。 | String |
SnapshotTime | 该字段返回当前截图的时间戳,单位为毫秒。例如1649387157000。 | Integer |
Text | 该字段用于返回当前截图的图片 OCR 文本识别的检测结果,仅在审核策略开启文本内容检测时返回。 | String |
Label | 该字段用于返回检测结果中所对应的优先级最高的恶意标签,表示模型推荐的审核结果,建议您按照业务所需,对不同违规类型与建议值进行处理。 返回值:Normal:正常,Porn:色情,Ads:广告。 | String |
Result | 该字段表示本次判定的审核结果,您可以根据该结果,进行后续的操作;建议您按照业务所需,对不同的审核结果进行相应处理。 有效值:0(审核正常),1 (判定为违规敏感文件),2(疑似敏感,建议人工复核)。 | Integer |
PornInfo | 审核场景为涉黄的审核结果信息。 | Object |
AdsInfo | 审核场景为广告引导的审核结果信息。 | Object |
Snapshot 中 PornInfo,AdsInfo 的具体内容如下:
节点名称(关键字) | 描述 | 类型 |
HitFlag | 是否命中该审核分类,0表示未命中,1表示命中,2表示疑似。 | Integer |
Score | 该字段表示审核结果命中审核信息的置信度,取值范围:0(置信度最低)-100(置信度最高 ),越高代表该内容越有可能属于当前返回审核信息。 例如:色情 99,则表明该内容非常有可能属于色情内容。 | Integer |
Label | 该字段表示该截图的综合结果标签(可能为 SubLabel,可能为人物名字等)。 | String |
Category | 表示命中的具体审核类别。例如 Sexy,表示色情标签中的性感类别。该字段可能为空,表示未命中或暂无相关的类别。 注意:该字段可能返回空。 | String |
SubLabel | 该字段表示审核命中的具体子标签,例如:Porn 下的 SexBehavior 子标签。 注意:该字段可能返回空,表示未命中具体的子标签。 | String |
OcrResults | 该字段表示 OCR 文本识别的详细检测结果,包括文本坐标信息、文本识别结果等信息,有相关违规内容时返回。 | Array |
LibResults | 该字段用于返回基于风险库识别的结果。 注意:未命中风险库中样本时,此字段不返回。 | Container Array |
Container 节点 LibResults 的内容:
节点名称(关键字) | 描述 | 类型 |
ImageId | 该字段表示命中的风险库中的图片样本 ID。 | String |
Score | 该字段用于返回当前标签下的置信度,取值范围:0(置信度最低)-100(置信度最高 ),越高代表当前的图片越有可能命中库中的样本;如:色情 99,则表明该数据非常有可能命中库中的色情样本。 | Integer |
OcrResults 的具体内容如下:
节点名称(关键字) | 描述 | 类型 |
Text | 图片 OCR 文本识别出的具体文本内容。 | String |
Keywords | 在当前审核场景下命中的关键词。 | Array |
Location | 该参数用于返回 OCR 检测框在图片中的位置(左上角 xy 坐标、长宽、旋转角度),以方便快速定位识别文字的相关信息。 | Object |
ObjectResults 的具体内容如下:
节点名称(关键字) | 描述 | 类型 |
Name | 该标签用于返回所识别出的实体名称,如人名。 | String |
Location | 该参数用于返回检测结果在图片中的位置(左上角 xy 坐标、长宽、旋转角度),以方便快速定位相关信息。 | Object |
Location 的具体内容如下:
节点名称(关键字) | 描述 | 类型 |
X | 该参数用于返回检测框左上角位置的横坐标(x)所在的像素位置,结合剩余参数可唯一确定检测框的大小和位置。 | Float |
Y | 该参数用于返回检测框左上角位置的纵坐标(y)所在的像素位置,结合剩余参数可唯一确定检测框的大小和位置。 | Float |
Height | 该参数用于返回检测框的高度(由左上角出发在 y 轴向下延伸的长度),结合剩余参数可唯一确定检测框的大小和位置。 | Float |
Width | 该参数用于返回检测框的宽度(由左上角出发在 x 轴向右延伸的长度),结合剩余参数可唯一确定检测框的大小和位置。 | Float |
Rotate | 该参数用于返回检测框的旋转角度,该参数结合 X 和 Y 两个坐标参数可唯一确定检测框的具体位置;取值:0 - 360(角度制),方向为逆时针旋转。 | Float |
AudioSection 的具体内容如下:
节点名称(关键字) | 描述 | 类型 |
Url | 直播声音片段的访问地址,您可以通过该地址获取该声音片段的内容,地址格式为标准 URL 格式。 注意:每次查看数据的有效期为2小时,2小时后如还需查看,请发起查询请求。 | String |
Text | 该字段用于返回当前直播声音片段的 ASR 文本识别的检测结果。 | String |
OffsetTime | 该字段返回当前声音片段的时间戳,单位为毫秒,例如1649387157000。 | Integer |
Duration | 当前声音片段的时长,单位毫秒。 | Integer |
Label | 该字段用于返回检测结果中所对应的优先级最高的恶意标签,表示模型推荐的审核结果,建议您按照业务所需,对不同违规类型与建议值进行处理。 返回值:Normal:正常,Porn:色情,Ads:广告。 | String |
Result | 供参考的识别结果,0(正常),1(敏感),2(疑似敏感)。 | Integer |
PornInfo | 审核场景为涉黄的审核结果信息。 | Object |
AdsInfo | 审核场景为广告引导的审核结果信息。 | Object |
AudioSection 中 PornInfo,AdsInfo 的具体内容如下:
节点名称(关键字) | 描述 | 类型 |
HitFlag | 是否命中该审核分类,0表示未命中,1表示命中,2表示疑似。 | Integer |
Score | 该字段表示审核结果命中审核信息的置信度,取值范围:0(置信度最低)-100(置信度最高 ),越高代表该内容越有可能属于当前返回审核信息 例如:色情99,则表明该内容非常有可能属于色情内容。 | Integer |
Category | 表示命中的具体审核类别。例如 Sexy,表示色情标签中的性感类别。该字段可能为空,表示未命中或暂无相关的类别。 注意:该字段可能返回空。 | String |
Keywords | 在当前审核场景下命中的关键词,没有时不返回。 | Array |
LibResults | 该字段用于返回基于风险库识别的结果。注意:未命中风险库中样本时,此字段不返回。 | Container Array |
Container 节点 LibResults 的内容:
节点名称(关键字) | 描述 | 类型 |
LibType | 命中的风险库类型,取值为1(预设黑白库)和2(自定义风险库)。 | Integer |
LibName | 命中的风险库名称。 | String |
Keywords | 命中的库中关键词。该参数可能会有多个返回值,代表命中的多个关键词。 | String Array |
UserInfo 的内容:
节点名称(关键字) | 描述 | 类型 | 是否必选 |
TokenId | 一般用于表示账号信息,长度不超过128字节。 | String | 否 |
Nickname | 一般用于表示昵称信息,长度不超过128字节。 | String | 否 |
DeviceId | 一般用于表示设备信息,长度不超过128字节。 | String | 否 |
AppId | 一般用于表示 App 的唯一标识,长度不超过128字节。 | String | 否 |
Room | 一般用于表示房间号信息,长度不超过128字节。 | String | 否 |
IP | 一般用于表示 IP 地址信息,长度不超过128字节。 | String | 否 |
Type | 一般用于表示业务类型,长度不超过128字节。 | String | 否 |
ReceiveTokenId | 一般用于表示接收消息的用户账号,长度不超过128字节。 | String | 否 |
Gender | 一般用于表示性别信息,长度不超过128字节。 | String | 否 |
Level | 一般用于表示等级信息,长度不超过128字节。 | String | 否 |
Role | 一般用于表示角色信息,长度不超过128字节。 | String | 否 |
Container 节点 ListInfo 的内容:
节点名称(关键字) | 描述 | 类型 |
ListResults | 命中的所有名单结果。 | Container Array |
Container 节点 ListResults 的内容:
节点名称(关键字) | 描述 | 类型 |
ListType | 命中的名单类型,取值为0(白名单)和1(黑名单)。 | Integer |
ListName | 命中的名单名称。 | String |
Entity | 命中了名单中的哪条内容。 | String |
实际案例
案例一:简洁回调(Simple)
{"code": 0,"data": {"event":"ReviewVideo","forbidden_status": 0,"porn_info": {"hit_flag": 0,"label": "","count": 0},"result": 0,"trace_id": "vxzt90jl2dfscxxxxxxxxxxxxxxxxx","url": "https://66665.livepush.myqcloud.com/video.flv","cos_headers": {"x-cos-meta-id": "666666"}},"message": "success"}
案例二:详细回调(Detail)
{"EventName": "ReviewVideo","JobsDetail": {"JobId": "xxxxxx","State": "Success","CreationTime": "2021-08-10T21:01:10+08:00","Url": "https://66665.livepush.myqcloud.com/video.flv","Label": "Normal","Result": 0,"SnapshotCount": 1,"PornInfo": {"HitFlag": 0,"Count": 0},"AdsInfo": {"HitFlag": 0,"Count": 0},"Snapshot": [{"Url": "https://video-1250000000.cos.ap-chongqing.myqcloud.com/test/0.jpg","Text": "","SnapshotTime": 41,"Label": "Normal","Result": 0,"PornInfo": {"HitFlag": 0,"Score": 0,"Label": "","SubLabel": ""},"AdsInfo": {"HitFlag": 0,"Score": 0,"Label": "","SubLabel": ""}}],"AudioSection": [{"Url": "https://audio-1250000000.cos.ap-guangzhou.myqcloud.com/0.mp3","Text": "","OffsetTime": 0,"Duration": 30000,"Label": "Normal","Result": 0,"PornInfo": {"HitFlag": 0,"Score": 0},"AdsInfo": {"HitFlag": 0,"Score": 0}}],"BucketId": "examplebucket-1250000000","Region": "ap-chongqing","ForbidState": 0,"CosHeaders": {"x-cos-meta-id": "xxxx"}}}