直播音视频解决方案视频截图查询接口

2023.09.22 17:31:52

    接口地址

    https://as.dun.163yun.com/v1/livewallsolution/query/image

    接口描述

    实时查询视频截图信息。建议您使用POST请求, 且仅接受 application/x-www-form-urlencoded 编码格式。

    请求频率

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

    请求参数

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

    参数名称 类型 是否必选 最大长度 描述
    taskId String Y - 请求数据标识,32位长
    levels String Y - String形式的数组,eg, "[1,2]", 0: 正常,1: 嫌疑,2: 确定
    pageSize Number N - 每页查询数据条数,大于0,上限1000
    pageNum Number N - 查询页码,从1开始
    startTime Number 最近开始时间点,单位毫秒
    endTime Number 最近结束时间点,单位毫秒
    callbackStatus Number N - 回调状态:0:不需要回调,1:等待回调,2:已回调,3:回调失败

    响应结果

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

    result数组结构

    参数名称 类型 描述
    status Number 数据状态,0: 成功,20: taskId过期,30: taskId不存在
    images json对象 截图分页数据

    其中images结构如下:

    参数名称 类型 描述
    count Number 查询截图张数总量
    rows json数组 分页数据

    rows结构如下:

    参数名称 数据类型 描述
    url String 截图地址
    label Number 分类信息,100:色情,200:广告,400:违禁,500:涉政,600:谩骂,700:灌水
    labelLevel Number 分类级别,1:不确定,2:确定
    beginTime Number 截图开始时间,单位毫秒
    endTime Number 截图结束时间,单位毫秒

    请求示例

        /** 产品密钥ID,产品标识 */
        private final static String SECRETID = "your_secret_id";
        /** 产品私有密钥,服务端生成签名信息使用,请严格保管,避免泄露 */
        private final static String SECRETKEY = "your_secret_key";
        /** 易盾反垃圾云服务直播音视频解决方案截图结果获取接口地址 */
        private final static String API_URL = "http://as.dun.163yun.com/v1/livevideo/query/image";
        /** 实例化HttpClient,发送http请求使用,可根据需要自行调参 */
        private static HttpClient httpClient = HttpClient4Utils.createHttpClient(100, 20, 10000, 2000, 2000);
    
        /**
         *
         * @param args
         * @throws Exception
         */
        public static void main(String[] args) throws Exception {
            Map<String, String> params = new HashMap<String, String>();
            // 1.设置公共参数
            params.put("secretId", SECRETID);
            params.put("version", "v1.1");
            params.put("timestamp", String.valueOf(System.currentTimeMillis()));
            params.put("nonce", String.valueOf(new Random().nextInt()));
    
            // 2.设置私有参数
            params.put("taskId", "c633a8cb6d45497c9f4e7bd6d8218443");
            params.put("levels", "[1,2]");
            params.put("callbackStatus", "1");
            params.put("pageNum", "1");
            params.put("pageSize", "10");
    
            // 3.生成签名信息
            String signature = SignatureUtils.genSignature(SECRETKEY, params);
            params.put("signature", signature);
    
            // 4.发送HTTP请求,这里使用的是HttpClient工具包,产品可自行选择自己熟悉的工具包发送请求
            String response = HttpClient4Utils.sendPost(httpClient, API_URL, params, Consts.UTF_8);
    
            // 5.解析接口返回值
            JsonObject resultObject = new JsonParser().parse(response).getAsJsonObject();
            int code = resultObject.get("code").getAsInt();
            String msg = resultObject.get("msg").getAsString();
            if (code == 200) {
                JsonObject result = resultObject.getAsJsonObject("result");
                int status = result.get("status").getAsInt();
                JsonObject images = result.get("images").getAsJsonObject();
                int count = images.get("count").getAsInt();
                JsonArray rows = images.get("rows").getAsJsonArray();
                if (status == 0) {
                    for (JsonElement rowElement : rows) {
                        JsonObject row = rowElement.getAsJsonObject();
                        String url = row.get("url").getAsString();
                        int label = row.get("label").getAsInt();
                        int labelLevel = row.get("labelLevel").getAsInt();
                        long beginTime = row.get("beginTime").getAsLong();
                        long endTime = row.get("endTime").getAsLong();
                    }
                    System.out.println(String.format("live data query success, images: %s", rows));
                } else if (status == 20) {
                    System.out.println("taskId is expired");
                } else if (status == 30) {
                    System.out.println("taskId is not exist");
                }
            } else {
                System.out.println(String.format("ERROR: code=%s, msg=%s", code, msg));
            }
        }
    

    请求响应示例如下:

    {
        "code": 200,
    	"msg": "ok",
    	"result": {
            "status": 0,
            "images": {
                "count": 3,
                "rows": [
                    {
                      "url": "xxxxxxxxx",
                      "label": 200,
                      "labelLevel": 1,
                      "beginTime": 1588056782734,
                      "endTime": 1588056700000
                    }
                ]
            }
        }
    }
    
    在线咨询 电话咨询:95163223 免费试用