文章目录
接口URL
http://api.polyv.net/v2/viewlog/{userid}/monthly/{month}
接口说明
(接口调用有频率限制,详细请查看)
- 该接口可通过自然月批量获取视频观看日志
- 从播放行为产生到数据可查询的间隔时间为1~2小时。但是每条观看记录所消耗的流量计算(flowSize字段)依赖于CDN日志,为了保证数据完整性,流量数据需要间隔一个自然日才会生成。例如1号产生的流量消耗,会在2号晚上汇总计算,在3号才可查询到流量数据。
返回结果支持格式
JSON
请求方式
GET
请求数限制
TRUE
请求参数
参数名 | 必选 | 类型及范围 | 说明 |
---|---|---|---|
userid | true | string | POLYV用户ID |
month | true | string | 查询月份,格式为yyyyMM |
ptime | true | string | 当前时间的毫秒级时间戳(13位),3分钟内有效 |
sign | true | string | 签名,为40位大写的SHA1值 |
numPerPage | false | int | 每一页的大小,默认为99 |
pageNum | false | int | 第几页,默认为1 |
start | false | string | 查询开始日期,格式为yyyy-MM-dd |
end | false | string | 查询结束日期,格式为yyyy-MM-dd |
vid | false | string | 所查询视频vid,当vid为空时,查询该用户所有视频的日志 |
sessionId | false | string | 用户自定义ID |
currentDay | false | string | 月内某一天的数据,格式为yyyy-MM-dd |
注意事项
sign的拼接规则是:month=变量&numPerPage=变量&pageNum=变量&ptime=变量secrectKey,再经过SHA-1加密并大写化。
这里要注意,如果这些参数的值为空串,则sign里就不用拼上这些变量
返回正确结果JSON示例
{
"code": 200,
"status": "success",
"message": "success",
"data": [
{
"playId": "1483692000578X1164631",
"userId": "cca90d24f7",
"videoId": "cca90d24f752ef74a0200a01bbac9488_c",
"playDuration": 25,
"stayDuration": 97,
"currentTimes": 558,
"duration": 1539,
"flowSize": 21144147,
"sessionId": "",
"param1": "",
"param2": "",
"param3": "",
"param4": "",
"param5": "",
"ipAddress": "59.42.28.226",
"country": "中国",
"province": "广东",
"city": "广州",
"isp": "电信",
"referer": "http://my.polyv.net/front/video/preview?vid=cca90d24f752ef74a0200a01bbac9488_c",
"userAgent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36",
"operatingSystem": "Windows",
"browser": "Chrome",
"isMobile": "N",
"currentDay": "2017-01-06",
"currentHour": 16,
"viewSource": "vod_pc_html5",
"createdTime": 1483692131000,
"lastModified": 1483694042000
},
{
"playId": "1483670488973X1301441",
"userId": "cca90d24f7",
"videoId": "cca90d24f752ef74a0200a01bbac9488_c",
"playDuration": 477,
"stayDuration": 538,
"currentTimes": 532,
"duration": 1539,
"flowSize": 56641657,
"sessionId": "",
"param1": "",
"param2": "",
"param3": "",
"param4": "",
"param5": "",
"ipAddress": "59.42.28.226",
"country": "中国",
"province": "广东",
"city": "广州",
"isp": "电信",
"referer": "http://my.polyv.net/secure/video/",
"userAgent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36",
"operatingSystem": "Windows",
"browser": "Chrome",
"isMobile": "N",
"currentDay": "2017-01-06",
"currentHour": 10,
"viewSource": "vod_pc_html5",
"createdTime": 1483670565000,
"lastModified": 1483673176000
}
],
"total": 3
}
返回错误结果JSON示例
{
"code": 400,
"status": "error",
"message": "ptime is too old.",
"data": ""
}
字段说明
字段 | 说明 |
---|---|
code | 返回码 |
status | 返回状态 |
message | 返回信息 |
data | 分类下的视频大小 |
playId | 表示此次播放动作的ID |
userId | 用户ID |
videoId | 视频ID |
playDuration | 播放时长 (用户观看的总时间 ,例如:18:00开始看一个视频,看到了18:30,这30分钟就是播放时长) |
stayDuration | 缓存时长 |
currentTimes | 播放时间 (用户观看的最后时间,例如:停止观看视频的时候,进度条最后的分钟数为35分钟,播放时间就是35分钟) |
duration | 视频总时长 |
flowSize | 流量大小 |
sessionId | 用户自定义参数,如学员ID等 ,该参数做了UrlSafeBase64的加密,需要做解密 |
param1/2/3/4/5 | POLYV系统参数 |
ipAddress | IP地址 |
country | 国家 |
province | 省份 |
city | 城市 |
isp | ISP运营商 |
referer | 播放视频页面地址 |
userAgent | 用户设备 |
operatingSystem | 操作系统 |
browser | 浏览器 |
isMobile | 是否为移动端 |
currentDay | 日志查询日期 (格式为:yyyy-MM-dd) |
currentHour | 日志查看时间 |
viewSource | 用户观看渠道,取值有:vod_ios_sdk、vod_android_sdk、vod_flash、vod_pc_html5、vod_wechat_mini_program、vod_mobile_html5 |
createdTime | 日志创建时间 (格式为13位的时间戳) |
lastModified | 日志更新日期 (格式为13位的时间戳) |
php请求示例
<?php
$userid="efbb4ae8ac";
$month="201709";//查询月份,格式为yyyyMM
$ptime = time()*1000;
$numPerPage=1000;
$pageNum=1;
$secrectKey = "hbjCVBhnth";
$sign=strtoupper(sha1("month=$month&numPerPage=$numPerPage&pageNum=$pageNum&ptime=$ptime".$secrectKey));
$url="http://api.polyv.net/v2/viewlog/$userid/monthly/$month?month=$month&ptime=$ptime&numPerPage=$numPerPage&pageNum=$pageNum&sign=$sign";
$ch=curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
$output = curl_exec($ch);
curl_close($ch);
print_r($output);
?>
响应代码与响应信息对应
code | message | 说明 |
---|---|---|
400 | ptime is illegal. | 时间戳格式问题,或者时间戳超过当前时间3分钟 |
400 | sign can not be empty. | 加密串为空 |
400 | Could not find user by userid. | 用户id不存在 |
400 | ptime is too old. | 时间戳过期(3分钟过期) |
400 | the sign is not right. | 加密串错误 |
401 | pageNum和numPerPage必须为大于0的正整数. | 分页参数不正确 |
402 | month必须为合法的yyyyMM格式. | month格式内容不正确 |
500 | 查询失败. | 后台发生错误异常 |
200 | success | 查询成功 |