分页查询账号直播观看详情数据
更新时间:2025-08-29 14:14:25
接口描述
1、分页获取账号下所有频道观看详情数据
2、接口支持https协议
3、直播观看详情数据支持查询最近3年内的历史数据,建议将历史数据导出到本地储存,以便后续查询。
接口URL
http://api.polyv.net/live/v3/user/statistics/viewlog
请求方式
GET
接口约束
1、接口同时支持HTTP 、HTTPS ,建议使用HTTPS 确保接口安全,接口调用有频率限制,详细请查看
2、如果查询一段时间的记录,可以传:startDate、endDate (startDate和endDate 必须在同一个月);
3、观看时长数据的生成有3-5分钟的延迟
请求参数描述
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| appId | true | String | 账号appid【详见获取密钥】 |
| timestamp | true | Long | 当前13位毫秒级时间戳,3分钟内有效 |
| sign | true | String | 签名,为32位大写的MD5值,生成签名的appSecret密钥作为通信数据安全的关键信息,严禁保存在客户端直接使用,所有API都必须通过客户自己服务器中转调用POLYV服务器获取响应数据【详见签名生成规则】 |
| startDate | true | String | 查询开始时间,格式:yyyy-MM-dd HH:mm:ss |
| endDate | true | String | 查询结束时间,格式:yyyy-MM-dd HH:mm:ss |
| channelId | false | String | 频道ID,不传查询所有频道 |
| watchType | false | String | 观看类型, live:直播, vod:回放 |
| page | false | String | 当前页码,默认为1 |
| pageSize | false | String | 每页显示的数据条数,默认每页显示1000条数据 |
示例
http://api.polyv.net/live/v3/user/statistics/viewlog?endDate=2022-03-28+09%3A55%3A56&appId=frlr1zazn3&sign=B808C92E6EC692D0210704C5AF93063D&watchType=live&startDate=2022-03-25+16%3A29%3A55&channelId=2909053×tamp=1649210306097
响应参数描述
| 参数名 | 类型 | 说明 |
|---|---|---|
| code | Integer | 响应状态码,200为成功返回,非200为失败【详见全局错误说明】 |
| status | String | 响应状态文本信息 |
| message | String | 响应描述信息,当code为400或者500的时候,辅助描述错误原因 |
| data | Object | 请求成功时为直播观看日志有关信息 【详见Data参数描述】,请求失败时为空 |
Data参数描述
| 参数名 | 类型 | 说明 |
|---|---|---|
| pageSize | Integer | 每页显示的数据条数,默认每页显示1000条数据 |
| pageNumber | Integer | 当前的页数 |
| totalItems | Integer | 总的条数 |
| contents | Array | 查询的结果列表【详见Contents参数描述】 |
| startRow | Integer | 当前页第一条记录在总结果集中的位置 |
| firstPage | Boolean | 是否为第一页,值为:true/false |
| lastPage | Boolean | 是否为最后一页,值为:true/false |
| prePageNumber | Integer | 上一页编号 |
| nextPageNumber | Integer | 下一页编号 |
| limit | Integer | 每页数量大小 |
| totalPages | Integer | 总页数 |
| endRow | Integer | 当前页最后一条记录在总结果集中的位置 |
| offset | Integer | 分页起始记录 |
Contents参数描述
| 参数名 | 类型 | 说明 |
|---|---|---|
| playId | String | 表示此次播放动作的ID |
| userId | String | 直播账号Id |
| channelId | String | 频道号 |
| playDuration | Integer | 播放时长,单位:秒 |
| stayDuration | Integer | 停留时长,单位:秒 |
| sessionId | String | 直播场次ID |
| param1 | String | 使用POLYV观看页的观众ID |
| param2 | String | 使用POLYV观看页的观众昵称 |
| param3 | String | 观看日志类型,默认为live vod:观看回放 live:直播 |
| param4 | String | POLYV系统参数 |
| param5 | String | POLYV系统参数 |
| ipAddress | String | IP地址 |
| country | String | 国家 |
| province | String | 省份 |
| city | String | 城市 |
| isp | String | ISP运营商 |
| referer | String | 播放视频页面地址 |
| userAgent | String | 用户设备 |
| operatingSystem | String | 操作系统 |
| browser | String | 浏览器 |
| isMobile | String | 是否为移动端 |
| currentDay | String | 查询日期,格式:yyyy-MM-dd |
| createdTime | Long | 日志创建日期,13位毫秒级时间戳 |
| lastModified | Long | 日志更新日期,13位毫秒级时间戳 |
| ptype | Integer | 0 或者不传:普通直播 1:超低延迟直播 rts (已经没有在使用) 2:PRTC直播(无延迟) |
| firstActiveTime | Long | 进入页面时间,13位毫秒级时间戳,部分情况返回为null,非特殊说明,请使用createdTime替代 |
| lastActiveTime | Long | 退出页面时间,13位毫秒级时间戳,部分情况返回为null,非特殊说明,请使用createdTime+stayDuration替代 |
Java请求示例
@Test
public void getChannelCardPush2() throws IOException, NoSuchAlgorithmException {
String appId = super.appId;
String appSecret = super.appSecret;
String timestamp = String.valueOf(System.currentTimeMillis());
//业务参数
String url = "http://api.polyv.net/live/v3/user/statistics/viewlog";
//http 调用逻辑
Map<String, String> requestMap = new HashMap<>();
requestMap.put("appId", appId);
requestMap.put("timestamp", timestamp);
requestMap.put("startDate", "2022-03-25 16:29:55");
requestMap.put("endDate", "2022-03-28 09:55:56");
requestMap.put("channelId", "2909053");
requestMap.put("watchType", "live");
requestMap.put("sign", LiveSignUtil.getSign(requestMap, appSecret));
String response = HttpUtil.get(url, requestMap);
log.info("测试查询频道卡片推送列表,返回值:{}", response);
}
响应示例
系统全局错误说明详见全局错误说明
成功示例
{
"code": 200,
"status": "success",
"message": "",
"data":
{
"pageSize": 1000,
"pageNumber": 1,
"totalItems": 1,
"contents": [
{
"playId": "1648432513206X1501461",
"userId": "1b448be323",
"channelId": 2909053,
"playDuration": 87,
"stayDuration": 90,
"sessionId": "g83wdgxfh6",
"param1": "1648432461504",
"param2": "回放列表观看",
"param3": "vod",
"param4": "",
"param5": "",
"ipAddress": "120.228.5.164",
"country": "中国",
"province": "湖南",
"city": "长沙",
"isp": "移动",
"referer": "https://live.polyv.cn/watch/2909053",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.84 Safari/537.36",
"operatingSystem": "Windows",
"browser": "Chrome 9",
"isMobile": "N",
"currentDay": "2022-03-28",
"createdTime": 1648432556000,
"lastModified": 1648443664000,
"ptype": 0,
"firstActiveTime": 1648432516000,
"lastActiveTime": 1648432606000
}],
"limit": 1,
"offset": 0,
"totalPages": 1,
"endRow": 1,
"firstPage": true,
"lastPage": true,
"prePageNumber": 1,
"nextPageNumber": 1,
"startRow": 1
}
}
异常示例
{
"code": 400,
"status": "error",
"message": "invalid signature.",
"data": ""
}
