分頁查詢帳號直播觀看詳情資料
更新時間: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": ""
}
