保利威视频工具类

保利威视频工具类

package cn.xizhi.until;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import org.junit.jupiter.api.Test;

import java.nio.charset.StandardCharsets;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.*;

/**
 * @author lulu
 * @version 1.0.0
 * @ClassName Polyv.java
 * @Description TODO  保利威视频上传
 * @createTime 2021年04月07日 10:00:00
 */
public class PolyvUntil {
    public static final String userid = "2e0e95548c";
    public static final String writetoken = "e89f01b7-d711-4187-916a-f11baef5d97f";
    public static final String readtoken = "5d1b706b-07cc-4238-89fd-9396dea8490a";
    public static final String secretkey = "EDvhOt8f4d";


    public static String getSign(Map<String, String> maps, String secretkey) throws Exception {
        Long ptime = System.currentTimeMillis();
        maps.put("ptime", ptime.toString());
        List<String> keys = new ArrayList<>(maps.keySet());
        List<String> tmp = new ArrayList<>();
        Collections.sort(keys);
        for (String key : keys) {
            if (null != maps.get(key) && maps.get(key).length() > 0) {
                tmp.add(key + "=" + maps.get(key));
            }
        }
        String join = String.join("&", tmp) + secretkey;
        return getSha1(join).toUpperCase();
    }

    public static String getSign1(Map<String, String> maps, String secretkey) throws Exception {
        Long ptime = System.currentTimeMillis();
        maps.put("ptime", ptime.toString());
        List<String> keys = new ArrayList<>(maps.keySet());
        List<String> tmp = new ArrayList<>();
        Collections.sort(keys);
        for (String key : keys) {
            if (null != maps.get(key) && maps.get(key).length() > 0) {
                tmp.add(key + "=" + maps.get(key));
            }
        }
        String join = String.join("&", tmp) + secretkey;
        return getSha1(join).toUpperCase();
    }

    public static String getSha1(String input) throws NoSuchAlgorithmException {
        MessageDigest mDigest = MessageDigest.getInstance("SHA1");
        byte[] result = mDigest.digest(input.getBytes(StandardCharsets.UTF_8));
        StringBuilder sb = new StringBuilder();
        for (int b : result) {
            sb.append(Integer.toString((b & 0xff) + 0x100, 16).substring(1));
        }
        return sb.toString();
    }



    // 保利威视服务端Api
    /** 获取单个视频信息 */
    public static String queryVideoInfoUrl = "http://api.polyv.net/v2/video/" + userid + "/get-video-msg";

    /*添加分类*/
    public static String addCategory ="http://api.polyv.net/v2/video/"+userid+"/addCata";


    /*修改分类*/
    public static String modifyClassification ="http://api.polyv.net/v2/video/"+userid+"/updateCata";

    /*删除分类*/
    public static String deleteCategory ="http://api.polyv.net/v2/video/"+userid+"/deleteCata";

    /*删除视频*/
    public static String deleteVideo ="http://api.polyv.net/v2/video/"+userid+"/del-video";

    /**
     * 时间(00:00:00)转换为秒
     *
     * @param time 时间00:00:00
     * @return Integer 秒数
     */
    private static Integer timeConvertSecond(String time) {
        int second = 0;
        String[] split = time.split(":");
        try {
            int hour = Integer.parseInt(split[0]);
            int minute = Integer.parseInt(split[1]);
            second = Integer.parseInt(split[2]);
            if(hour > 0){
                second += hour * 60 * 60;
            }if( minute > 0){
                second += minute * 60;
            }
        } catch (NumberFormatException e) {
            e.printStackTrace();
        }
        return second;
    }

    /**
     * 获取单个视频信息
     *
     * @param vid 视频ID
     * @return VideoInfoModel 视频信息
     */
    public static Object queryVideoInfo(String vid) throws Exception {
        // 获取签名
        Map<String, String> params = new HashMap<>();
        long ptime = System.currentTimeMillis();
        params.put("ptime", Long.toString(ptime));
        params.put("vid", vid);
        params.put("format", "json");
        String sign = getSign(params, secretkey);
        // 请求参数
        Map<String, Object> param = new HashMap<>();
        param.put("vid", vid);
        param.put("ptime", Long.toString(ptime));
        param.put("sign", sign);
        param.put("format", "json");
        // 发送请求(huTool)
        String post = HttpClientUtils.sendPost(queryVideoInfoUrl, param);
        Map<String, Object> mapParam = JSONObject.parseObject(post);
        String data = String.valueOf(mapParam.get("data"));
        String substring = data.substring(1, data.length()-1);
        System.out.println(substring);
        return substring;
    }


    public static Object addCategory(String cataname) throws Exception {
        // 获取签名
        Map<String, String> params = new HashMap<>();
        long ptime = System.currentTimeMillis();
        params.put("ptime", Long.toString(ptime));
        params.put("cataname",cataname);
        params.put("parentid","1");
        String sign = getSign(params, secretkey);
        // 请求参数
        Map<String, Object> param = new HashMap<>();
        param.put("ptime", Long.toString(ptime));
        param.put("cataname",cataname);
        param.put("parentid","1");
        param.put("sign", sign);
        // 发送请求(huTool)
        String post = HttpClientUtils.sendPost(addCategory, param);
        Map<String, Object> mapParam = JSONObject.parseObject(post);
        Object data = mapParam.get("data");
        return data;
    }

    /**
     * 修改分类名
     * @param cataname  修改的分类名
     * @param cataid 分类id
     * @return
     * @throws Exception
     */
    public static Object modifyClassification(String cataname,String cataid) throws Exception {
        // 获取签名
        Map<String, String> params = new HashMap<>();
        long ptime = System.currentTimeMillis();
        params.put("ptime", Long.toString(ptime));
        System.out.println(cataname);
        params.put("cataname",cataname);
        params.put("cataid",cataid);
        params.put("userid",userid);
        String sign = getSign(params, secretkey);
        // 请求参数
        Map<String, Object> param = new HashMap<>();
        param.put("ptime", Long.toString(ptime));
        param.put("cataname",cataname);
        param.put("cataid",cataid);
        param.put("sign", sign);
        param.put("format", "json");
        // 发送请求(huTool)
        String post = HttpClientUtils.sendPost(modifyClassification, param);
        Map<String, Object> mapParam = JSONObject.parseObject(post);
        Object data = mapParam.get("data");
        return data;
    }

    /**
     * 删除分类
     * @param cataid
     * @return
     * @throws Exception
     */
    public static Object deleteCategory(String cataid) throws Exception {
        // 获取签名
        Map<String, String> params = new HashMap<>();
        long ptime = System.currentTimeMillis();
        params.put("ptime", Long.toString(ptime));
        params.put("cataid",cataid);
        params.put("userid",userid);
        String sign = getSign(params, secretkey);
        // 请求参数
        Map<String, Object> param = new HashMap<>();
        param.put("ptime", Long.toString(ptime));
        param.put("cataid",cataid);
        param.put("sign", sign);
        param.put("format", "json");
        // 发送请求(huTool)
        String post = HttpClientUtils.sendPost(deleteCategory, param);
        System.out.println(post);
        Map<String, Object> mapParam = JSONObject.parseObject(post);
        Object data = mapParam.get("data");
        return data;
    }


    public static Object deleteVideo(String vid) throws Exception {
        // 获取签名
        Map<String, String> params = new HashMap<>();
        long ptime = System.currentTimeMillis();
        params.put("ptime", Long.toString(ptime));
        params.put("vid",vid);
        String sign = getSign(params, secretkey);
        // 请求参数
        Map<String, Object> param = new HashMap<>();
        param.put("ptime", Long.toString(ptime));
        param.put("vid",vid);
        param.put("sign", sign);
        // 发送请求(huTool)
        String post = HttpClientUtils.sendPost(deleteVideo, param);
        Map<String, Object> mapParam = JSONObject.parseObject(post);
        Object data = mapParam.get("data");
        return data;
    }

    /**
     * 获取单个视频时长
     *
     * @param vid 视频ID
     * @return 秒数
     */
    public JSONObject queryVideoDuration(String vid) throws Exception {
        JSONObject data = (JSONObject) queryVideoInfo(vid);
        String time = (String) data.get("duration");
        Integer second = timeConvertSecond(time);
        JSONObject timeData = new JSONObject();
        timeData.put("duration", time);
        timeData.put("second", second);
        return timeData;
    }



    @Test
    public void test(){
        try {
            Object o = queryVideoInfo("dc86b6ac7f0f47795ae0c7b0017dda9f_d");
            HashMap hashMap = JSON.parseObject(String.valueOf(o), HashMap.class);
            Object imageUrls = hashMap.get("imageUrls");
            Object duration = hashMap.get("duration");
            Object mp4 = hashMap.get("mp4");
            Object source_filesize = hashMap.get("source_filesize");
            System.out.println(o);
            System.out.println(imageUrls);
            System.out.println(duration);
            System.out.println(mp4);
            System.out.println(OssUtil.getNetFileSizeDescription(Long.valueOf(String.valueOf(source_filesize))));
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    @Test
    public void test1(){
        try {
            Object xx = deleteVideo("fbe30126f17f8010962577b85c7cfc12_f");
            System.out.println(xx);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

}

亲测可用,复制粘贴即可

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

暴脾气_lulu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值