直播音视频解决方案结果获取

2023.09.22 17:31:52

    直播音视频解决方案离线接口方式获取

    接口地址

    http://as.dun.163.com/v2/livewallsolution/callback/results

    接口描述

    该接口用于获取直播音视频解决方案回调结果。建议您使用POST请求, 且仅接受 application/x-www-form-urlencoded 编码格式。

    接口请求频率

    小于10s/20次,请求频率过快服务器会拒绝处理。

    请求参数

    该接口参数与请求公共参数一致,详细见 请求公共参数

    参数名称 类型 最大长度 描述
    version String 4 v2.1

    响应结果

    响应字段如下,响应通用字段已省略,详细见 响应通用字段

    参数名称 类型 描述
    result json数组 检测结果数组

    result 数据结构

    参数名称 类型 描述
    taskId String 唯一标识
    callback String 产品提交直播流信息时带的 callback 字段数据,用于标识直播流,产品根据业务情况自行设计
    dataId String 数据唯一标识,能够根据该值定位到该条数据,如对数据结果有异议,可以发送该值给客户经理查询
    status Number 检测状态,101为检测中,102为检测结束
    censorSource Number 审核来源,0:易盾人审,1:客户人审,2:易盾机审
    duration Number 直播时长字段,直播结束返回直播整体时长,单位ms
    riskLevel Number 直播异常风险等级, 0-正常,1-低危,2-中危,3-中高危,4-高危
    riskScore Number 直播异常分数
    evidences json对象 机审证据信息
    reviewEvidences json对象 人审证据信息

    机审证据信息

    evidences 数据结构

    参数名称 类型 描述
    audio json对象 直播语音证据信息
    video json对象 直播截图证据信息

    audio 数据结构

    参数名称 类型 描述
    action Number 检测结果,0:通过,1:嫌疑,2:不通过
    asrStatus Number 音频翻译结果,2:检测中,3:检测完成,4:检测失败
    asrResult Number 音频翻译检测失败原因,1:文件下载失败,2:音频流不存在,3:解析失败,4:文件格式错误
    speakerId String 针对接入SDK监听客户,返回说话人ID信息
    startTime Number 最近开始时间点,单位毫秒
    endTime Number 最近结束时间点,单位毫秒
    content String 检测命中内容返回
    url String 需要开启返回直播语音片段播放地址,请联系易盾策略经理,如未开启则不返回url
    segments json数组 分类信息详细数据
    frontSegment json数组 关联证据信息,异常/嫌疑断句命中时返回,命中断句前20s的证据信息,包含前20s的音频语音识别内容及对应url,通过时数据为空

    frontSegment 数据结构

    参数名称 类型 描述
    content String 命中断句前20s的语音识别内容
    url String 命中断句前20s的音频url,可解析进行回放

    segments数据结构

    参数名称 类型 描述
    label Number 分类信息,100:色情,200:广告,300:暴恐,400:违禁,500:涉政,600:谩骂,1100:涉价值观
    level Number 分类级别,1:不确定,2:确定
    subLabels json数组 细分类信息,可能包含多个

    subLabels 数据结构

    参数名称 类型 描述
    details json对象 命中线索信息
    subLabel String 二级细分类,详细编码请参考下方对应细分类编码对应表

    details 数据结构

    参数名称 类型 描述
    evidence String 命中线索内容

    video 数据结构

    参数名称 类型 描述
    evidence json对象 证据信息
    labels json数组 分类信息详细数据

    evidence 数据结构

    参数名称 类型 描述
    beginTime Number 视频直播当前时间点,单位为毫秒,调用方获取后可自行格式化为可视化时间,如:1599205126000 转换为"2020-09-04 15:38:46"
    endTime Number 视频直播当前时间点,单位为毫秒,调用方获取后可自行格式化为可视化时间,如:1599205126000 转换为"2020-09-04 15:38:46"
    type Number 1:图片,2:视频
    url String 证据信息
    speakerId String 针对接入SDK监听客户,返回说话人ID信息
    frontPics json对象数组 关联信息-命中前截图信息

    frontPics 数据结构

    参数名称 类型 描述
    url String 截图地址

    labels数据结构

    参数名称 类型 描述
    label Number 分类信息,100:色情,110:性感;200:广告,210:二维码,260:广告法,300:暴恐,400:违禁,500:涉政,800:恶心类,900:其他,1020:黑屏,1030:挂机,1100:涉价值观
    subLabels json数组 细分类信息,可能包含多个,可能为空
    level Number 级别信息,分为1:不确定,2:确定
    rate Number 分数

    subLabels 数据结构

    参数名称 类型 描述
    subLabel Number 细分类,详细编码请参考下方对应细分类编码对应表
    rate Number 置信度分数,0-1之间取值,1为置信度最高,0为置信度最低
    details json数组 htiInfos:命中详细信息

    details 数据结构

    参数名称 类型 描述
    hitInfos String 针对命中sublabel的补充说明
    imageTagInfo json数组 命中标签详细信息,对于返回的hintInfo的解释说明,可能为空

    imageTagInfo 数据结构

    参数名称 类型 描述
    tagName String hinInfo中可返回的图片中包含的可识别内容
    tagGroup String tagName对应的分组名称,用于对tageName的解释

    直播音视频人审证据信息

    reviewEvidences 数据结构

    参数名称 类型 描述
    action Number 审核操作, 1为忽略,2为警告,3为断流,4为提示,10为机器检测结束
    actionTime Number 操作时间,UNIX_TIME时间戳,毫秒为单位
    label Number 违规类型,100-色情,111-淫秽表演,112-偶然走光,113-服装暴露,114-床上直播,115-音乐内容低俗,116-言论低俗涉黄,117-违规服装,118-上装暴露,119-下装暴露,120-低俗连麦,121-发出涉黄声音,122-ASMR,123-字幕低俗,124-出现不雅物品,125-低俗妆容,126-传播色情,200-广告,210-二维码,211-商业推广,212-提及竞品,213-字幕推广214-竞品标识,215,竞品播放器,,300-暴恐,311恐怖主义,312-暴力血腥,400-违禁,411-危险表演,412-涉毒/赌/传销,413-违禁服装,414-监管类违禁游戏,415-赌博游戏,416-赌博信息,500-涉政,511-影响政府形象,512-邪教迷信,513-涉军事,514涉宗教,517-涉及政治敏感话题,518-出现国旗国徽,519-出现领导人画像,800-不文明,811-非漏点赤膊,,812-性感,821-涉酒,822-涉烟,823-纹身,824-未成年,825-危险驾驶,826-传播负面情绪,1000-其他,1020-黑屏,1022-画质差,1023-无营养,1024-盗播版权内容,1025-无音乐设备,1026-与音乐无关,1028-无版权游戏,1029-非普通话直播,1030-挂机,1031-私密场所直播,1032-卡顿,1050-自定义
    speakerId String 针对接入SDK监听客户,针对房间内具体说话人的处罚,返回说话人ID信息,若为空,则针对房间维度处罚
    censorAccount String 审核员账号
    detail String 违规详细说明
    warnCount Number 警告次数
    evidence json数组 人审操作action时返回前5张机器截图,用于还原场景
    frontAudioSegment json对象 人审操作action时返回前20s的音频断句信息,用于还原场景

    evidence数据结构:

    参数名称 类型 描述
    snapshot String 证据截图url

    frontAudioSegment数据结构:

    参数名称 类型 描述
    url String 音频断句url
    content String 音频断句语音识别结果

    响应示例

    [
       {
        "taskId":"67af8eb4c74d4d768a5ff76257d4e7b5",
        "callback":"8brNbu9c5Z",
        "dataId":"970584153600754",
        "status":102,
        "censorSourc":2,
        "duration":100,  //检测中不返回该字段,检测完成最后一次回调返回该字段
        "evidences":{
             "audio":{ 
                    "action":1,
                    "asrStatus":2,
                    "asrResult":0,
                    "startTime":1621391109376,
                    "endTime":1621391115376,
                    "content":"看到没有,城管进去,以为第一个不是。",
                    "frontSegment":{
                        "content":"哦,这是手机,没了,我记得没有。 到了。 礼物,那个。",
                        "url":"https://as.dun.163.com/v1/liveaudio/segment/play?Signature=7605a02d4898438ece8e6eda23ba2d9c&Expires=1621995968732&AccessKey=0fef4d811b824e2dabec22a8e2f042b1&BeginTime=1621391095756&EndTime=1621391109376&SpeakerId=31286375016"
                        },
                    "segments":[
                        {
                          "subLabels":[
                              {
                                "details":{
                                    "evidence":"城管(分)"
                                },
                                "subLabel":"500013"
                               }
                            ],
                           "label":500,
                           "level":1
                        }
                    ],
                    "speakerId":"31286375016"
                }
            }
    	},
        {
         "taskId":"e48787dddf914df4a602660ce88fe85f",
         "callback":"0n2q0Qztf9",
         "dataId":"8056529",
         "status":101,
         "evidences":{
                "video":{
                    "evidence":{
                         "type":1,
                         "url":"https://yidun-video.nos-eastchina1.126.net/2c4ffb416f3f443ea35ec34a11b2a8f7_95633_1621347428825.jpg?Signature=gGUGxdzxmy6wqt3GeHAKrrLUDVAkVS%2FnTzMX2SUFWhs%3D&Expires=1623939429&NOSAccessKeyId=7b107844ee8e4f9689d54c726e3273ff",
                         "beginTime":1621347428813,
                         "endTime":1621347428813,
                         "speakerId":"95633",
                         "frontPics":[
                           {
                            "url":"https://yidun-video.nos-eastchina1.126.net/2c4ffb416f3f443ea35ec34a11b2a8f7_164598_1621347418571.jpg?Signature=5%2BFn29rA%2Fu7oeUifvQF6W3qUwDdyAN224S9lOrfhwPA%3D&Expires=1623939429&NOSAccessKeyId=7b107844ee8e4f9689d54c726e3273ff"
                          },
                          {
                            "url":"https://yidun-video.nos-eastchina1.126.net/2c4ffb416f3f443ea35ec34a11b2a8f7_95633_1621347423730.jpg?Signature=SSQD0dahg3tJ%2BPqsT6W%2F%2BSjEr8kxwzt9qgTkJLomwY0%3D&Expires=1623939429&NOSAccessKeyId=7b107844ee8e4f9689d54c726e3273ff"
                          },
                          {
                            "url":"https://yidun-video.nos-eastchina1.126.net/2c4ffb416f3f443ea35ec34a11b2a8f7_164598_1621347424081.jpg?Signature=lIwNFupZ22TrZi12N84ceCcZ3sXT9v1EQgi0PJ8spJA%3D&Expires=1623939429&NOSAccessKeyId=7b107844ee8e4f9689d54c726e3273ff"
                          }
                       ]
                    },
                    "labels":[
                         {
                           "label":100,
                           "level":2,
                           "rate":0.999705,
                           "subLabels":[
                              {
                                "subLabel":10003,
                                "rate":0.9953329,
                                "details":{
                                    "hitInfos":[
                                        "男下体"
                                    ],
                                    "imageTagInfos":[
                                           {
                                            "tagName":"男下体",
                                            "tagGroup":"色情"
                                           }
                                        ]
                                    }
                                }
                            ]
                        }
                    ]
                }
            }
        },
        {
            "taskId":"e48787dddf914df4a602660ce88fe85f",
            "callback":"0n2q0Qztf9",
            "dataId":"8056529",
            "status":101,
    	    "censorSourc":1,
                "reviewEvidences":{
                    "action":2,
                    "actionTime":1587461318594,
                    "label":100,
                    "detail":"",
                    "warnCount":1,
                    "evidence":[
                    ]
                }
        }
    ]
    

    直播音视频解决方案主动回调说明

    易盾提供主动回调和被动回调数据两种方式,主动回调以数据为维度设置回调地址;易盾方产品回调数据后,主动调用客户提供的http地址将回调数据推送给客户

    主动回调接入

    客户接入主动回调的方式很简单,只需要在调用在线检测接口请求参数中指定了回调通知参数callbackUrl(即一个http(s)协议接口的URL),则需要支持POST方法,传输数据编码采用utf-8

    业务类型 回调参数名称 类型 最大长度 描述
    直播音视频 callbackUrl String 256 直播音视频提交参数中添加callbackUrl字段

    您服务端接收到我们推送的结果后,返回的HTTP状态码为200时,表示推送成功,其他的HTTP状态码均视为您接收失败,我们将每隔10分钟推送一次,如果一直失败,持续一天后不再推送;我们主动回调数据接口超时时间设置为2s,为了保证顺利接收数据,客户需保证接收接口性能稳定并且保证幂等性。

    请求方法

    客户提供的主动回调数据接收接口,需支持 POST 方法。

    字符编码

    所有接口的请求数据编码皆为 utf-8。

    请求公共参数

    参数名称 类型 是否必传 描述
    secretId String Y 产品秘钥 id ,由易盾反垃圾云服务分配,产品标识
    signature String Y 请求签名,用来验证此次请求的合法性,具体算法见 接口鉴权
    callbackData String Y 主动回调推送数据,格式为json字符串

    secretId,businessId,signature参数用来给数据接收接口做签名鉴权用

    接口鉴权

    客户主动回调接收接口可以通过业务开通时易盾分配的密钥信息字段进行接口鉴权,鉴权粒度是否要精确到业务级别,用户可以根据需要自行决定

    /**
     * 通过HttpServletRequest做签名验证
     * 
     * @param request
     * @return
     */
    public static boolean verifySignature(HttpServletRequest request) {
        String secretId = request.getParameter("secretId");
        String businessId = request.getParameter("businessId");
        String signature = request.getParameter("signature");
        if (StringUtils.isEmpty(secretId) || StringUtils.isEmpty(signature)) {
            // 签名参数为空,直接返回失败
            return false;
        }
        Map<String, String> params = Maps.newHashMap();
        for (String paramName : request.getParameterMap().keySet()) {
            if (!"signature".equals(paramName)) {
                params.put(paramName, request.getParameter(paramName));
            }
        }
        // SECRETKEY:产品私有密钥 SECRETID:产品密钥ID BUSINESSID:业务ID,开通服务时,易盾会提供相关密钥信息
        String serverSignature = getSignature(SECRETKEY, params);
        return signature.equals(serverSignature) && SECRETID.equals(secretId) && BUSINESSID.equals(businessId);
    }
    
    /**
    * 生成签名信息
    * @param secretKey 产品私钥
    * @param params 接口请求参数名和参数值map,不包括signature参数名
    * @return
    * @throws UnsupportedEncodingException
    */
    public static String genSignature(String secretKey, Map<String, String> params) throws UnsupportedEncodingException {
        // 1. 参数名按照ASCII码表升序排序
        String[] keys = params.keySet().toArray(new String[0]);
        Arrays.sort(keys);
    
        // 2. 按照排序拼接参数名与参数值
        StringBuffer paramBuffer = new StringBuffer();
        for (String key : keys) {
            paramBuffer.append(key).append(params.get(key) == null ? "" : params.get(key));
        }
        // 3. 将secretKey拼接到最后
        paramBuffer.append(secretKey);
    
        // 4. MD5是128位长度的摘要算法,用16进制表示,一个十六进制的字符能表示4个位,所以签名后的字符串长度固定为32个十六进制字符。
        return DigestUtils.md5Hex(paramBuffer.toString().getBytes("UTF-8"));
    }
    

    直播音视频解决方案主动回调数据结构

    callbackData为Json字符串

    [
       {
        "taskId":"67af8eb4c74d4d768a5ff76257d4e7b5",
        "callback":"8brNbu9c5Z",
        "dataId":"970584153600754",
        "status":102,
        "censorSourc":2,
        "duration":100,  //检测中不返回该字段,检测完成最后一次回调返回该字段
        "evidences":{
             "audio":{ 
                    "action":1,
                    "asrStatus":2,
                    "asrResult":0,
                    "startTime":1621391109376,
                    "endTime":1621391115376,
                    "content":"看到没有,城管进去,以为第一个不是。",
                    "frontSegment":{
                        "content":"哦,这是手机,没了,我记得没有。 到了。 礼物,那个。",
                        "url":"https://as.dun.163.com/v1/liveaudio/segment/play?Signature=7605a02d4898438ece8e6eda23ba2d9c&Expires=1621995968732&AccessKey=0fef4d811b824e2dabec22a8e2f042b1&BeginTime=1621391095756&EndTime=1621391109376&SpeakerId=31286375016"
                        },
                    "segments":[
                        {
                          "subLabels":[
                              {
                                "details":{
                                    "evidence":"城管(分)"
                                },
                                "subLabel":"500013"
                               }
                            ],
                           "label":500,
                           "level":1
                        }
                    ],
                    "speakerId":"31286375016"
                }
            }
    	},
        {
         "taskId":"e48787dddf914df4a602660ce88fe85f",
         "callback":"0n2q0Qztf9",
         "dataId":"8056529",
         "status":101,
         "evidences":{
                "video":{
                    "evidence":{
                         "type":1,
                         "url":"https://yidun-video.nos-eastchina1.126.net/2c4ffb416f3f443ea35ec34a11b2a8f7_95633_1621347428825.jpg?Signature=gGUGxdzxmy6wqt3GeHAKrrLUDVAkVS%2FnTzMX2SUFWhs%3D&Expires=1623939429&NOSAccessKeyId=7b107844ee8e4f9689d54c726e3273ff",
                         "beginTime":1621347428813,
                         "endTime":1621347428813,
                         "speakerId":"95633",
                         "frontPics":[
                           {
                            "url":"https://yidun-video.nos-eastchina1.126.net/2c4ffb416f3f443ea35ec34a11b2a8f7_164598_1621347418571.jpg?Signature=5%2BFn29rA%2Fu7oeUifvQF6W3qUwDdyAN224S9lOrfhwPA%3D&Expires=1623939429&NOSAccessKeyId=7b107844ee8e4f9689d54c726e3273ff"
                          },
                          {
                            "url":"https://yidun-video.nos-eastchina1.126.net/2c4ffb416f3f443ea35ec34a11b2a8f7_95633_1621347423730.jpg?Signature=SSQD0dahg3tJ%2BPqsT6W%2F%2BSjEr8kxwzt9qgTkJLomwY0%3D&Expires=1623939429&NOSAccessKeyId=7b107844ee8e4f9689d54c726e3273ff"
                          },
                          {
                            "url":"https://yidun-video.nos-eastchina1.126.net/2c4ffb416f3f443ea35ec34a11b2a8f7_164598_1621347424081.jpg?Signature=lIwNFupZ22TrZi12N84ceCcZ3sXT9v1EQgi0PJ8spJA%3D&Expires=1623939429&NOSAccessKeyId=7b107844ee8e4f9689d54c726e3273ff"
                          }
                       ]
                    },
                    "labels":[
                         {
                           "label":100,
                           "level":2,
                           "rate":0.999705,
                           "subLabels":[
                              {
                                "subLabel":10003,
                                "rate":0.9953329,
                                "details":{
                                    "hitInfos":[
                                        "男下体"
                                    ],
                                    "imageTagInfos":[
                                           {
                                            "tagName":"男下体",
                                            "tagGroup":"色情"
                                           }
                                        ]
                                    }
                                }
                            ]
                        }
                    ]
                }
            }
        },
        {
            "taskId":"e48787dddf914df4a602660ce88fe85f",
            "callback":"0n2q0Qztf9",
            "dataId":"8056529",
            "status":101,
    	    "censorSourc":1,
                "reviewEvidences":{
                    "action":2,
                    "actionTime":1587461318594,
                    "label":100,
                    "detail":"",
                    "warnCount":1,
                    "evidence":[
                    ]
                }
        }
    ]
    
    Online Chat Tel:95163223 Free trial