更新时间:2021-09-07 16:56:11
直播业务中,在线人数与每路流的实时带宽数据均可反映该路流的热度,为满足客户实时查询主播/节目热度,网宿提供频道带宽/流量查询API,可通过指定时间段内查询一个域名下指定流名的带宽或流量数据。
下面将介绍单域名下多个直播流带宽/流量查询接口。
API 地址
https://open.chinanetcenter.com/api/report/flow/stream/detail
调用示例
采用Post方式请求,具体示例如下:
curl -i --url "https://open.chinanetcenter.com/api/report/flow/stream/detail" -X POST -u {user}:{password} -H 'Date: Fri, 26 Oct 2012 06:33:26 GMT' -H 'Accept: application/json' -d '{ "dateFrom": "2016-12-02T10:00:00+08:00", "dateTo": "2016-12-03T10:00:00+08:00", "domainStream": [{"domain": "www.baidu1.com", "stream": ["live/aaaaa","live/bbbbb"]}], "dataInterval": "5m", "dataType": "flow " }'
其中
user=SI 账号
Date=` env LANG=en_US.UTF-8 date -u “+%a, %d %b %Y %H:%M:%S GMT”` password=Base64(HMAC-SHA1(UTF-8(Date), UTF-8(API_KEY)) =`echo -en "$DATE" | openssl dgst -sha1 -hmac "$API_KEY" -binary | openssl enc -base64`
入参参数说明
参数名称 | 类型 | 必选 | 描述 |
dateFrom | String | 是 | 开始时间,格式为yyyy-MM-dd'T'HH:mm:ss+08:00; |
dateTo | String | 是 | 结束时间,格式为yyyy-MM-dd'T'HH:mm:ss+08:00; |
domainStream | Array | 是 | 域名和流名列表 |
domain | String | 是 | 域名,一次传入的域名个数有限制,默认为20个 |
stream | Array | 否 | 流名,格式为“发布点/流名”,如live/aaaaa,一次传入的流名个数有限制,默认上限为2000个,不传代表查询域名下全部流名数据; |
dataInterval | String | 否 | 默认5m,不传则默认返回,即数据按5分钟粒度返回,可配置1m,1分钟粒度。 |
dataType | String | 是 | bandwidth代表获取带宽值,默认查询所有区域的数据flow代表输出流量数据,每路流的总和。默认查询所有区域的数据。 |
数据返回
当提交datatype为flow时: { "domain": "www.abc.com", "details": [ {"stream": "live/aaaaa", "totalFlow": 222.22 "details": [ { "timestamp": "2016-12-01 00:05 ","value": "123.11" }, { "timestamp": "2016-12-01 00:10","value": "123.11"}] } ] } 当提交datatype为bandwidth时: { "domain": "www.abc.com", "details": [ { "stream": "live/aaaaa", "bandwidthPeakValue": 200.22 "details": [ { "timestamp": "2016-12-01 00:05 ","value": "123.11" }, { "timestamp": "2016-12-01 00:10","value": "123.11"}] } ] }
出参参数说明
出参 | 说明 |
domain | 域名 |
stream | 流名 |
timestamp | 时间,格式为yyyy-MM-dd HH:mm |
value | 对应时间粒度下的带宽或流量值,保留2位小数。 |
bandwidthPeakValue | 当dataType为bandwidth时返回;每路流在该时间段内的带宽峰值单位Mbps,保留2位小数。 |
totalFlow | 当dataType为flow时返回;每路流的总流量单位MB,保留2位小数。 |
错误返回码说明
HTTP状态码 | 描述 | 语义 |
400 | This operation requires a body. Ensure that the body is present and the Content-Type header is set. | 请求体没有传递 |
400 | The accept header specified in your request is not acceptable. | Accept请求头不支持,接口仅支持json和xml格式,默认为json格式 |
400 | There was an error in the body of your HTTP request. | 请求体格式错误 |
400 | The date specified is invalid. | dateFrom或dateTo不符合规范 |
400 | You cannot specify a period greater than 1. | dateFrom和dateTo相差超过1天 |
400 | param: domainStream is null or invalid. | 参数domainStream不符合规范 |
400 | param: domain is null or invalid. | 参数domain不符合规范 |
400 | param: stream is null or invalid. | 参数stream不符合规范 |
400 | param: dataInterval is null or invalid. | 参数dataInterval不符合规范 |
400 | param: dataType is null or invalid. | 参数dataType不符合规范 |
404 | The specified domain does not exist. | 传递的域名不存在 |
403 | The number of domain is excessive once. | 传递的域名个数超过账号限制 |
403 | The number of stream is excessive once. | 传递的流名个数超过账号限制 |
500 | We encountered an internal error. Please try again. | 系统发生错误 |
所有直播业务中,直播平台需要了解指定时间段内单条流的带宽或流量数据。
1) Date为格林尼治标准时间。
2) 鉴权所需APIKEY,可向网宿项目经理咨询。
3) 开始时间不得大于接口调用当前时间,且开始和结束时间的间隔不得大于1天;
4) 单次查询最多只可携带20个域名,若不带参数stream进行查询则返回所有流数据,若携带stream参数,流名个数上限为2000个。
5) 当需要传入指定流名查询时,流名格式为发布点+流名,比如拉流url为rtmp://wstest.com/live/test,则传参为live/test。
6) 当粒度选择为1分钟时,一天开始的时间片是yyyy-MM-dd 00:01,最后一个时间片是(yyyy-MM-dd+1) 00:00,五分钟粒度同理。
7) 接口调用限制5分钟30次;