功能描述

2023.09.22 17:31:52

    泛娱乐类的音视频聊天场景的日益增加,充斥着各种不可控的风险因素,例如色情、暴恐和涉政信息等。随着国家监管的日趋严格,各平台需要对平台的音频内容进行管控,需要投入大量人力进行甄别。实时音视频反垃圾可对音视频内容进行有效的判别和筛选,大大降低人力投入。本文介绍如何使用易盾API搭配云信 RTC API进行实时音视频内容进行审核。 若要对频道内的音视频进行实时审核,你需要通过应用程序服务器调用反垃圾服务的 RESTful API 发送 HTTP 请求。

    方案架构图

    下图展示了从发起反垃圾请求到处理违规情况的整体方案架构图。其中,“你的业务逻辑”展示了针对审核结果的示例处理策略。你也可以结合自己的业务场景,采取不同策略。 方案架构图

    调用时序图

    短期房间

    调用时序图

    长期房间

    调用时序图

    接入说明

    准备工作

    开通反垃圾功能

    易盾控制台获取接入秘钥

    易盾控制台获取接入秘钥

    准备监听uid/token

    反垃圾SDK的uid号段预留

    建议您预留uid号段提供给音频反垃圾SDK加入音视频房间进行反垃圾服务;uid与调用云信getRecordSdkUserChecksum时候传的uid保持一致,不能与房间内任何用户uid重复,建议是不超过12位整数。

    准备反垃圾SDK的uid授权进入房间的token

    方案1

    一次性token,适用于实际房间最长时长30天内的短期房间

    获取反垃圾SDK的房间token

    1.调用RESTful API :POST https://api.netease.im/nimserver/nrtc/getRecordSdkUserChecksum.action

    2.传入以下字段

    参数 参数类型 是否必须 说明
    channelName string 房间名称
    type int 0表示IM音视频,1表示独立音视频
    accid string IM音视频必须
    uid long 独立音视频必须
    expireSeconds long 请配置为30天

    接口返回说明,checksum对应token字段。

    {
        "code":200,
        "checksum":"42753e0ade9b4ebfbe31c363a8177ce3",
        "cid":43634037884897
    }
    

    为保证您较好的使用音频反垃圾服务,建议您基于您的具体业务场景(实际音视频房间时长)对expireSeconds进行配置。

    方案2

    适用于实际房间最长时长大于30天的长期房间,提供获取最新有效token的api,供易盾反垃圾token失效时重新加入房间,api设计需参考易盾规范

    获取token API 设计规范

    接口描述

    该接口用于易盾获取房间最新的token等相关信息

    接入说明

    接入回调方式很简单,只需要联系您的商务在您的业务上配置一个接入地址(即一个http(s)协议接口的URL)。需要您的接口支持http协议,支持POST方法,传输数据编码采用utf-8。为了保证顺利检测直播,客户需保证接口性能稳定。

    请求参数

    参数名称 类型 是否必传 描述
    secretId String Y 产品秘钥id,由易盾反垃圾云服务分配,产品标识
    signature String Y 请求签名,用来验证此次请求的合法性,具体算法见 接口鉴权
    url String Y 直播提交检测时的原始url

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

    响应结果

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

    result 数据结构

    参数名称 类型 是否必须 描述
    token String Y 直播token
    uid String N 直播uid

    请求示例

    {
      "secretId": "your_secret_id",
      "signature": "signature",
      "url": "******"
    }
    

    响应示例

    {
        "code": 200,
        "msg": "ok",
        "result": {
            "token": "your_token",
            "uid": "your_uid"
        } 
    }
    

    准备反垃圾结果接收地址(callbackURL)

    用于接收反垃圾异常检测结果,离线结果回调通知到客户的URL。主动回调数据接口超时时间设置为2s,为了保证顺利接收数据,需保证接收接口性能稳定并且保证幂等性。

    提交反垃圾检测

    完成鉴权流程后,您需要将反垃圾SDK所需加入的频道名(channelName)、appkey云信申请产品时生成的唯一标识,token以及反垃圾SDK对应的uid按如下格式生成http请求,并提交检测接口,不同场景的提交检测地址有所不同:

    场景1:短期房间,准备允许短期周期内一直有效的监听token 提交URL:yunxin://uid:token@appkey/channelName

    场景2:长期房间,已提供获取最新有效token的api,供易盾token失效时重新加入房间 提交URL:yunxin://appkey/channelName

    接口地址

    http://as.dun.163.com/v2/livewallsolution/submit

    接口描述

    提交直播音视频的URL进行反垃圾内容检测

    请求参数

    公共参数已省略,详细见 请求公共参数

    参数名称 类型 是否必选 最大长度 描述
    url String Y 512 场景1:短期房间,准备允许短期周期内一直有效的监听token,提交URL:yunxin://uid:token@appkey/channelName;场景2:长期房间,已提供获取最新有效token的api,供易盾token失效时重新加入房间,提交URL:yunxin://appkey/channelName,请注意如token部分含有特殊字符需要做URLEncode
    dataId String Y 128 直播流唯一标识
    version String Y 4 接口版本号,可选值 v2.1
    detectType Number N 1 机器过检类型,0:直播视频与直播音频同时过检,1:仅过检直播视频,不填写默认为0,请注意
    accountLevel String N 10 账号级别/主播级别
    accountName String N 30 账号名称/主播名称
    roomNo String N 20 主播房间号
    account String N 20 账号ID/主播ID
    age String N 64 主播年龄
    labourUnion String N 256 主播所属工会
    operationManager String N 128 运营管理者
    callback String N 512 数据回调参数,产品根据业务情况自行设计,当获取离线检测结果时,易盾反垃圾云服务会返回该字段
    scFrequency Number N 4 截图检测频率,默认5秒截图检测一次,可设置范围为0.5~60秒
    callbackUrl String N 256 离线结果回调通知到客户的URL。主动回调数据接口超时时间设置为2s,为了保证顺利接收数据,需保证接收接口性能稳定并且保证幂等性。
    uniqueKey String N 64 客户个性化直播流唯一性标识,传入后,将以此值作为重复检测依据,若不传,默认以URL作为查重依据
    checkSpeakerIds String 200 指定监听必审列表范围内的数据,英文逗号分隔字符串,字符串长度不能超过200,分隔的数量不能超过20个,每个必须为数字且不能包含空格,有效参数如1000,2000,3000,无效参数如:1a,2b,仅云信rtc监听模式下生效,
    noCheckSpeakerIds String 200 指定不监听信任用户列表范围内的数据,英文逗号分隔字符串,字符串长度不能超过200,分隔的数量不能超过20个,每个必须为数字且不能包含空格,有效参数如1000,2000,3000,无效参数如:1a,2b,仅云信rtc监听模式下生效,

    响应结果

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

    result 数据结构

    参数名称 类型 描述
    taskId String 本次请求数据标识,可以根据该标识查询数据最新结果
    status Boolean true表示提交成功,false表示提交失败

    响应示例

    {
        "code": 200,
        "msg": "ok",
        "result": {
                "taskId": "******",
                "status": "******"
            }
    }
    

    接收审核结果

    • 主动接收结果(推荐,结果获取更实时):

    通过在提交检测接口提交callbackURL,主动获取检测结果,主动回调数据接口超时时间设置为2s,为了保证顺利接收数据,需保证接收接口性能稳定并且保证幂等性。

    • 被动接收结果:

    您也可以通过定时轮询结果获取接口(https://support.dun.163.com/documents/292111666669342720?docId=341039220029313024)的方式获得结果;

    停止音视频反垃圾

    房间开始反垃圾监听后,易盾不会主动停止检测,请在如下场景时调用停止检测接口:

    1. 当房间结束时;
    2. 某一时刻,当前音频房间内不再需要音频反垃圾检测服务时;

    停止检测接口:

    接口地址

    https://as.dun.163.com/v1/livewallsolution/feedback

    接口描述

    实时更新视频直播流相关信息。建议您使用POST请求, 且仅接受 application/x-www-form-urlencoded 编码格式。

    接口请求频率

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

    请求参数

    公共参数已省略,详细见 请求公共参数

    参数名称 类型 是否必选 最大长度 描述
    realTimeInfoList String Y - 直播实时信息列表(JSON数组,最多100条)

    realTimeInfoList数组结构

    参数名称 类型 是否必选 最大长度 描述
    taskId String Y - 直播taskId(长度定值为32)
    status Number Y 3 100:停止检测

    响应结果

    result 数组结构

    参数名称 类型 描述
    taskId String 直播taskId
    result Number 请求结果,0成功,1失败,2数据不存在

    响应示例

    {
        "code": 200,
        "msg": "ok",
        "result": [{
                "taskId": "****",
                "result": 0
            }]
    }
    
    Online Chat Tel:95163223 Free trial