> For the complete documentation index, see [llms.txt](https://polyv.gitbook.io/document/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://polyv.gitbook.io/document/docs/vod/api/statistics/get_daily_viewlog.md).

# 查询某一天的视频观看日志

### 接口描述

```
1、通过具体时间查询观看日志
2、从播放行为产生到数据可查询的间隔时间为1~2小时
3、响应参数消耗流量（flowSize字段）的计算依赖于CDN日志，为了保证数据完整性，流量数据需要间隔一个自然日才会生成
4、接口URL中的{userid}为点播账号userid，具体参考【获取密钥】
5、接口支持https协议
```

### 接口URL

```
http://api.polyv.net/v2/data/{userid}/viewlog
```

[在线API调用](https://git.polyv.net/help-center/document-center/-/blob/master/req.html?api=http:/api.polyv.net/v2/data/%7Buserid%7D/viewlog/README.md)

### 请求方式

```
POST
```

### 接口约束

1、接口同时支持HTTP 、HTTPS ，建议使用HTTPS 确保接口安全，接口调用有频率限制，[详细请查看](https://git.polyv.net/help-center/document-center/-/blob/master/vod/api/limit/README.md)

2、sign（签名）的拼接规则是：userid=参数\&ptime=参数\&day=参数secretkey，并和sign一起通过url传递

### 请求参数描述

| 参数名       | 必选    | 类型     | 说明                                                                                                                                                                                                        |
| --------- | ----- | ------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| userid    | true  | String | 保利威点播账户id，可以参考【[获取密钥](https://git.polyv.net/help-center/document-center/-/blob/master/vod/api/getSecretKey/README.md)】获取，获取路径：官网->登录->点播（API接口）                                                           |
| ptime     | true  | Long   | 当前时间的毫秒级时间戳，3分钟内有效                                                                                                                                                                                        |
| sign      | true  | String | 签名，为40位大写的SHA1值,`生成签名的secretkey密钥作为通信数据安全的关键信息，严禁保存在客户端直接使用，所有API都必须通过客户自己服务器中转调用POLYV服务器获取响应数据`【详见[签名生成规则](https://git.polyv.net/help-center/document-center/-/blob/master/vod/api/buildSign/README.md)】 |
| day       | true  | String | 需查询日志信息的具体时间，格式：yyyyMMdd，例如：20210407                                                                                                                                                                      |
| timeStart | false | String | 范围查询，需查询日志信息的具体时分秒，格式：HHmmss，例如：000000，timeStart和timeEnd需要搭配使用                                                                                                                                            |
| timeEnd   | false | String | 范围查询，需查询日志信息的具体时分秒，格式：HHmmss，例如：235959，timeStart和timeEnd需要搭配使用                                                                                                                                            |
| type      | false | String | <p>返回的数据格式，默认返回json格式<br>xml：返回xml格式<br>json：返回json格式</p>                                                                                                                                                 |
| vid       | false | String | 视频id                                                                                                                                                                                                      |
| cataid    | false | String | 分类id，注意视频id和分类id为空时，获取账号当天所有视频日志；当视频id为空、分类id不为空时，查询对应分类下的日志；当视频id不为空时查询对应视频的日志                                                                                                                           |
| sessionId | false | String | 用户自定义id                                                                                                                                                                                                   |
| viewerId  | false | String | 用户自定义id，当和sessionId同时传递时，会以viewerId为准                                                                                                                                                                     |

### 示例

```requestUrl
http://api.polyv.net/v2/data/1b448be323/viewlog
```

表单参数：

```requestUrl
vid=1b448be323615635294a548b3c8a9953_1&sign=AD77F4AFEFA3D3DE07BDD31503A363A21D1A4536&cataid=1602671097888&type=json&userid=1b448be323&ptime=1617847185866&day=20210407
```

### 响应参数描述

| 参数名     | 类型      | 说明                                                                                                                                               |
| ------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------ |
| code    | Integer | 响应状态码，200为成功返回，非200为失败【详见[全局错误说明](https://git.polyv.net/help-center/document-center/-/blob/master/vod/api/errorInfo/README.md)】                  |
| status  | String  | 响应状态文本信息                                                                                                                                         |
| message | String  | 响应描述信息，当code为400或者500的时候，辅助描述错误原因                                                                                                                |
| data    | Array   | 响应成功时返回日志详细信息【详见[data字段说明](https://git.polyv.net/help-center/document-center/-/blob/master/vod/api/statistics/get_daily_viewlog.md?id=data字段说明)】 |

#### data字段说明

| 参数名             | 类型      | 说明                                                                                                                                                                                                                                                                                                    |
| --------------- | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| playId          | String  | 表示此次播放动作的id                                                                                                                                                                                                                                                                                           |
| userId          | String  | POLYV用户ID，和保利威官网一致，获取路径：官网->登录->点播（API接口）                                                                                                                                                                                                                                                             |
| videoId         | String  | 视频id                                                                                                                                                                                                                                                                                                  |
| playDuration    | Integer | 播放时长，单位为秒（用户观看的总时间，例如：18:00开始看一个视频，看到了18:30，这30分钟就是播放时长）                                                                                                                                                                                                                                              |
| stayDuration    | Integer | 缓存时长，单位为秒                                                                                                                                                                                                                                                                                             |
| currentTimes    | Integer | 播放时间，单位为秒（用户观看的最后时间，例如：停止观看视频的时候，进度条最后的分钟数为35分钟，播放时间就是35分钟）                                                                                                                                                                                                                                           |
| duration        | Integer | 视频总时长，单位为秒                                                                                                                                                                                                                                                                                            |
| flowSize        | Long    | 流量大小，单位为字节                                                                                                                                                                                                                                                                                            |
| sessionId       | String  | 用户自定义参数，如学员id等                                                                                                                                                                                                                                                                                        |
| param1/2/3/4/5  | String  | POLYV系统参数                                                                                                                                                                                                                                                                                             |
| ipAddress       | String  | ip地址                                                                                                                                                                                                                                                                                                  |
| country         | String  | 国家                                                                                                                                                                                                                                                                                                    |
| province        | String  | 省份                                                                                                                                                                                                                                                                                                    |
| city            | String  | 城市                                                                                                                                                                                                                                                                                                    |
| isp             | String  | ISP运营商                                                                                                                                                                                                                                                                                                |
| referer         | String  | 播放视频页面地址                                                                                                                                                                                                                                                                                              |
| userAgent       | String  | 用户设备                                                                                                                                                                                                                                                                                                  |
| operatingSystem | String  | 操作系统                                                                                                                                                                                                                                                                                                  |
| browser         | String  | 浏览器                                                                                                                                                                                                                                                                                                   |
| isMobile        | String  | <p>是否为移动端<br>Y：是<br>N：否</p>                                                                                                                                                                                                                                                                           |
| currentDay      | String  | 日志查询日期，格式：yyyy-MM-dd                                                                                                                                                                                                                                                                                  |
| currentHour     | Integer | 日志创建时间（24小时制小时数），例如：18，表示下午六点创建                                                                                                                                                                                                                                                                       |
| viewSource      | String  | <p>用户观看渠道<br>vod\_ios\_sdk：ios端<br>vod\_android\_sdk：安卓端<br>vod\_flash：flash<br>vod\_wechat\_mini\_program：微信小程序<br>vod\_pc\_html5：pc端web<br>vod\_mobile\_html5：移动端web<br>vod\_mobile\_html5\_v2：移动端web v2<br>polyv-android-sdk: 安卓端投屏<br>polyv-ios-vod-sdk: ios端投屏<br>vod\_wechat\_plugin: 小程序插件</p> |
| createdTime     | Long    | 日志创建时间，13位毫秒级的时间戳                                                                                                                                                                                                                                                                                     |
| lastModified    | Long    | 日志更新日期，13位毫秒级的时间戳                                                                                                                                                                                                                                                                                     |
| viewerId        | String  | 观看者id                                                                                                                                                                                                                                                                                                 |
| viewerName      | String  | 观看者名称                                                                                                                                                                                                                                                                                                 |

### Java请求示例

快速接入基础代码请下载相关依赖源码， [点击下载源代码](https://git.polyv.net/help-center/document-center/-/blob/master/third_res/util.zip) ,下载后加入到自己的源码工程中即可。测试用例中的**HttpUtil.java 和 VodSignUtil.java** 都包含在下载文件中。

> 强烈建议您使用[点播Java SDK](https://git.polyv.net/help-center/document-center/-/blob/master/vod/java/README.md)完成API的功能对接，点播Java SDK 对API调用逻辑、异常处理、数据签名、HTTP请求线程池进行了统一封装和优化。

```java
private static final Logger log = LoggerFactory.getLogger(VodStatisticsTest.class);

/**
 * 查询某一天的视频观看日志
 * @throws Exception
 * @throws NoSuchAlgorithmException
 */
@Test
public void testGetDailyViewlog() throws Exception, NoSuchAlgorithmException {
    //公共参数,填写自己的实际参数
    String secretKey = super.secretKey;
    String userId = super.userId;
    String ptime = String.valueOf(System.currentTimeMillis());
    //业务参数
    String url = String.format("http://api.polyv.net/v2/data/%s/viewlog", userId);
    String day = "20210407";
    String type = "json";
    String vid = "1b448be323615635294a548b3c8a9953_1";
    String cataid = "1602671097888";

    Map<String, String> requestMap = new HashMap<>();
    requestMap.put("userid", userId);
    requestMap.put("ptime", ptime);
    requestMap.put("day", day);
    requestMap.put("type", type);
    requestMap.put("vid", vid);
    requestMap.put("cataid", cataid);

    //系统只对部分参数进行签名
    Map<String, String> signMap = new HashMap<>();
    signMap.put("userid", userId);
    signMap.put("ptime", ptime);
    signMap.put("day", day);
    requestMap.put("sign", VodSignUtil.getSign(signMap, secretKey));

    String response = HttpUtil.postFormBody(url, requestMap);
    log.debug("测试查询某一天的视频观看日志,{}", response);
    //do somethings
}
```

### 响应示例

系统全局错误说明详见[全局错误说明](https://git.polyv.net/help-center/document-center/-/blob/master/vod/api/errorInfo/README.md)

成功示例

```json
{
	"code": 200,
	"status": "success",
	"message": "success",
	"data": [{
		"playId": "1617789715498X1074620",
		"userId": "1b448be323",
		"videoId": "1b448be323615635294a548b3c8a9953_1",
		"playDuration": 6,
		"stayDuration": 10,
		"currentTimes": 2,
		"duration": 11,
		"flowSize": 0,
		"sessionId": "",
		"param1": "",
		"param2": "",
		"param3": "",
		"param4": "",
		"param5": "",
		"ipAddress": "xxxxxxx",
		"country": "中国",
		"province": "湖南",
		"city": "长沙",
		"isp": "湖南电信",
		"referer": "https://share.plvideo.cn/front/video/preview?vid=1b448be323615635294a548b3c8a9953_1",
		"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.114 Safari/537.36",
		"operatingSystem": "Windows",
		"browser": "Chrome",
		"isMobile": "N",
		"currentDay": "2021-04-07",
		"currentHour": 18,
		"createdTime": 1617790069000,
		"lastModified": 1617800772000,
		"viewerId": "",
		"viewerName": "",
		"viewSource": "vod_pc_html5"
	}, {
		"playId": "1617766244609X1752092",
		"userId": "1b448be323",
		"videoId": "1b448be323615635294a548b3c8a9953_1",
		"playDuration": 7,
		"stayDuration": 10,
		"currentTimes": 10,
		"duration": 11,
		"flowSize": 0,
		"sessionId": "",
		"param1": "",
		"param2": "",
		"param3": "",
		"param4": "",
		"param5": "",
		"ipAddress": "xxxxxxx",
		"country": "中国",
		"province": "湖南",
		"city": "长沙",
		"isp": "湖南电信",
		"referer": "https://my.polyv.net/secure/video/",
		"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.114 Safari/537.36 Edg/89.0.774.68",
		"operatingSystem": "Windows",
		"browser": "Chrome",
		"isMobile": "N",
		"currentDay": "2021-04-07",
		"currentHour": 11,
		"createdTime": 1617766571000,
		"lastModified": 1617777096000,
		"viewerId": "",
		"viewerName": "",
		"viewSource": "vod_pc_html5"
	}]
}
```

异常示例

```json
 {
	"code": 400,
	"status": "error",
	"message": "ptime is too old.",
	"data": ""
}
```
