保利威视频工具类
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();
}
}
}
亲测可用,复制粘贴即可