更新时间:2021-09-07 16:56:09
主播的推流时间和推流时长可以反应出主播的直播习惯,特别是大主播用户,而大主播的直播通常会带来更大的流量和带宽压力,因此需要重点保障,网宿推出主播推流时长API查询接口,可以提供主播推流开始时间,推流结束时间,以及推流时长,和推流时间汇总,供客户查询。
网宿提供相应的API 接口给客户。具体API如下:
https://open.chinanetcenter.com/api/report/duration/stream
数据延迟:3-5h
接口请求时,可携带如下参数:
参数名称 | 类型 | 是否必传 | 说明 |
time | String | 否 | 查询的结束时间;1.格式为yyyyMMdd;2.必须小于当前系统时间;3.不传时默认为系统当前时间;4.只能查询最近2年内数据。 |
mode | String | 否 | 查询时间区间;1.取值范围为1~31的整数,单位为天;2.不传时默认为7;(例如:time=20160622&mode=2,查询范围是2016-06-20到2016-06-21的数据) |
请求体 | Array | 否 | 域名列表;发起请求时 –d 后面携带的参数;1.域名个数限制根据账号可调,默认为1个;2.不传递则查询全部域名,同时接受域名数量上限限制; |
请求示例 json:
#!/bin/bash username="example_username" apiKey="example_apiKey" date=`env LANG="en_US.UTF-8" date -u "+%a, %d %b %Y %H:%M:%S GMT"` password=`echo -en "$date" | openssl dgst -sha1 -hmac $apiKey -binary | openssl enc -base64` curl -i --url "https://open.chinanetcenter.com/api/report/duration/stream?time=20171101&mode=2" \ -X "POST" \ -u "$username:$password" \ -H "Date: $date" \ -H "Accept: application/json" \ -d '[ "www.test.com" ]'
返回参数:
参数名称 | 类型 | 说明 |
domain | String | 域名 |
prog | String | 流名 |
sumTime | Number | 对应时间段内流名推流时长之和,单位为毫秒 |
startTime | String | 推流起始时间,格式为yyyyMMddHHmmss |
endTime | String | 推流终止时间,格式为yyyyMMddHHmmss |
duration | Number | 推流时长,单位为毫秒 |
返回示例:
{ "result":[ { "domain":"www.test.com", "progDurations":[ { "prog":"www.test.com/abc/steam01", "sumTime":30646001, "durationDetails":[ { "startTime":"20170101100000", "endTime":"20170101120000", "duration":20323001 }, { "startTime":"20170102100000", "endTime":"20170102120000", "duration":10323000 } ] }, { "prog":"www.tet.com/abc/steam02", "sumTime":60646018, "durationDetails":[ { "startTime":"20170101060000", "endTime":"20170101080000", "duration":30323009 }, { "startTime":"20170102100000", "endTime":"20170102120000", "duration":30323009 } ] } ] } ] }
错误码:
错误代号 | 描述 | HTTP状态码 | 语义 |
NotAcceptable | The accept header specified in your request is not acceptable. | 400 | Accept请求头不支持,接口仅支持json格式 |
PARAM_INVALID | param: mode is null or invalid. | 400 | 参数mode不符合规范 |
DomainsExcessive | The number of domain is excessive once. | 403 | 传递的域名个数超过限制 |
DomainNameIsRequired | The domain name is required. | 400 | 参数体为空json数组 |
NoSuchDomain | The specified domain does not exist. | 404 | 传递的域名不存在或不属于当前调用账号 |
InternalError | We encountered an internal error. Please try again. | 500 | 系统发生错误 |
所有直播业务中,直播平台需要了解主播推流时长等相关数据。
1) API 接口中两个参数之间用与号(&)隔开;
2) 请不要在问号(?)后面带空格等不符合HTTP 协议的字符,如果在URL 或目录名中使用这些字符,请务必使用转义符(比如,空格的转义符为%20);
3) 接口调用限制5分钟100次;