批量查询视频分析
更新时间:2025-03-12 17:14:55
接口描述
1、分页查询所有已发布视频的视频分析数据
2、接口支持https协议
接口URL
https://api.polyv.net/v3/advance/video/list
请求方式
GET
接口约束
1、接口同时支持HTTP 、HTTPS ,建议使用HTTPS 确保接口安全,接口调用有频率限制,详细请查看
2、高级分析功能介绍详见: 视频高级分析
3、由于数据量和计算量大,数据分析结果次日才可查询
4、批量查询接口,仅可查状态是已发布的视频数据
请求参数描述
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| appId | true | String | 直播appId。可在"云点播" -> "设置" -> "API接口" 中查看您的直播appId和appSecret |
| timestamp | true | Long | 当前时间的毫秒级时间戳,30分钟内有效 |
| page | false | Integer | 分页页码,从1开始,默认值为1 |
| pageSize | false | Integer | 分页大小,默认值为10,最大支持值为100 |
| vidList | false | String | vid集合,需要批量查询指定vid的视频分析数据时可以传此参数,多个vid用英文逗号隔开,一次接口调用最多支持传100个vid。如833584471db2eb2b9d0b582e7e755c66_8,833584471d0ed109bb261b104f584896_8 |
| sign | true | String | 签名,32位大写MD5值【详见MD5签名生成规则】 |
示例
https://api.polyv.net/v3/advance/video/list?timestamp=1682498437763&appId=gf24khyndx&page=1&pageSize=10&sign=4C62E7E1FDBD500C032A2E047B8C6A43
响应参数描述
| 参数名 | 类型 | 说明 |
|---|---|---|
| code | Integer | 响应状态码,200为成功返回,非200为失败【详见全局错误说明】 |
| status | String | 响应状态文本信息 |
| requestId | String | 请求唯一标识,如遇接口调用失败情况,可发此id给客服辅助排查问题 |
| data | Object | 响应成功时返回视频分析详细数据 【详见data字段说明】 |
| error | Object | 失败时的错误信息,【详见error字段说明】 |
data字段说明
| 参数名 | 类型 | 说明 |
|---|---|---|
| pageNumber | Integer | 分页页码 |
| pageSize | Integer | 分页大小 |
| totalPages | Integer | 总页数 |
| totalItems | Integer | 总数据条数 |
| contents | List | 【详见contents字段说明】 |
contents字段说明
| 参数名 | 类型 | 说明 |
|---|---|---|
| videoId | String | 视频id |
| videoName | String | 视频名称 |
| duration | Integer | 视频时长,单位:秒 |
| playTimes | Integer | 播放次数 |
| uniqueViewerCount | Integer | 唯一观众数 |
| avgCompletionRate | Double | 平均观看完成度 |
| viewHeatmap | String | 观看热力图,例如["0-20:662","21-100:665"]代表视频内容的0到20秒有662次观看,21到100秒有665次观看 |
| uniqueViewHeatmap | String | 唯一观看热力图,例如["0-20:614","21-100:615"]代表视频内容的0到20秒有614个观众观看,21到100秒有615个观众观看 |
error字段说明
| code | desc | 说明 |
|---|---|---|
| 9 | undefined error | 未知异常 |
| 4013 | vid illegal | 视频vid不合法,请检查参数中的视频id是否正确 |
Java请求示例
快速接入基础代码请下载相关依赖源码, 点击下载源代码 ,下载后加入到自己的源码工程中即可。测试用例中的HttpUtil.java 和 LiveSignUtil.java 都包含在下载文件中。
private static final Logger log = LoggerFactory.getLogger(ChannelOperateTest.class);
/**
* 批量查询视频分析
* @throws IOException
* @throws NoSuchAlgorithmException
*/
@Test
public void getVideoAdvanceTest() throws IOException, NoSuchAlgorithmException {
//公共参数,填写自己的实际参数
String appId = super.appId;//注意此处为appId
String appSecret = super.appSecret;//注意此处为appSecret,非secretKey
String timestamp = String.valueOf(System.currentTimeMillis());
//业务参数
String url = "https://api.polyv.net/v3/advance/video/list";
//http 调用逻辑
Map<String, String> requestMap = new HashMap<>();
requestMap.put("appId", appId);
requestMap.put("timestamp", timestamp);
requestMap.put("page", "1");
requestMap.put("pageSize", "1");
requestMap.put("sign", LiveSignUtil.getSign(requestMap, appSecret));
String response = HttpUtil.get(url, requestMap);
log.info("测试批量查询视频分析成功:{}", response);
//do somethings
}
响应示例
成功示例
{
"requestId": "40d2ab85-73a4-4266-bcc6-8e828d8c9a9b",
"code": 200,
"status": "success",
"error": null,
"data": {
"pageNumber": 1,
"totalPages": 1,
"pageSize": 10,
"totalItems": 3,
"contents": [
{
"videoId": "833584471db2eb2b9d0b582e7e755c66_8",
"videoName": "导出18-平台设置",
"duration": 145,
"playTimes": 6,
"uniqueViewerCount": 1,
"avgCompletionRate": 0.03,
"viewHeatmap": "[\"0-1:6\",\"2-2:4\",\"3-5:2\",\"6-15:1\"]",
"uniqueViewHeatmap": "[\"0-15:1\"]"
},
{
"videoId": "833584471d0ed109bb261b104f584896_8",
"videoName": "导出17-数据统计",
"duration": 129,
"playTimes": 1,
"uniqueViewerCount": 1,
"avgCompletionRate": 0.2,
"viewHeatmap": "[\"0-26:1\"]",
"uniqueViewHeatmap": "[\"0-26:1\"]"
},
{
"videoId": "833584471d80e5c1752460d2a07bd51c_8",
"videoName": "导出16-默认模板",
"duration": null,
"playTimes": null,
"uniqueViewerCount": null,
"avgCompletionRate": null,
"viewHeatmap": null,
"uniqueViewHeatmap": null
}
]
}
}
异常示例
- 未知异常
{
"requestId": "492834b6-c1c6-4c5e-8609-ddc1f96da1e4",
"code": 500,
"status": "error",
"error": {
"code": 9,
"desc": "undefined error"
},
"data": null
}
- 视频id不合法
{
"requestId": "edcc2674-bf46-4db1-991c-0f7feab94200",
"code": 400,
"status": "error",
"error": {
"code": 4013,
"desc": "vid illegal"
},
"data": null
}
