点播服务端API接口文档
概述
本文档为百家云点播服务端的API文档,用户可以通过文档中提供的API接口上传及管理点播视频。
注:百家云API仅提供基础数据,客户须将数据同步到自己数据库(DB)后,通过自己的数据库(DB)来实现业务需求。
基本约定
常见基本约定以及平台术语见下表:
内容 | 约定 |
---|---|
请求协议 | HTTPS |
请求类型 | GET /POST |
参数提交方式 | application/x-www-form-urlencoded 或multipart/form-data |
返回数据格式 | json |
字符编码 | UTF8 |
接口域名 | https://${private_domain} .at.baijiayun.com/ |
${private_domain} |
个性域名 |
partner_id |
账号的ID, 由百家云平台分配,用户可以登录百家云网站后台查看 |
partner_key |
账号的密钥,由百家云平台分配,用于计算服务端API接口的签名,用户可以登录百家云网站后台获取 |
说明:文档中的数字统一用
int
表示,即有符号的64位整数,取值范围是-2^63~2^63
;
使用流程
合作方接入百家视频云开放平台有如下几个步骤:
- 注册开发者账号
- 注册后可以登录百家云后台获取
partner_id
和partner_key
- 注册后可以登录百家云后台获取
- 获取视频上传地址
- 根据百家视频云提供的API接口来获取上传地址
- 上传视频
- 将视频文件上传到获取上传地址接口所返回的url
- 接收转码回调
- 根据百家云提供的API接口,客户自行设置转码回调地址,接收转码状态的回调
- 播放视频
- 使用方可以集成我们的播放器来播放视频
请求域名
以下接口请求地址中的${private_domin}
部分需要换成客户的专属域名,具体请参考 专属域名说明
Sign生成规则
百家视频云每个接口除了传递业务参数外,还有一个用于校验的sign参数。具体规则如下:
sign的生成规则如下:
- 将请求参数按key字典顺序(ASCII值大小)升序排序。
- 将排好序的参数接成
key1=value1&key2=value2&...&keyN=valueN
。 - 将以上拼好的串后面再拼上
&partner_key=<partner_key>
,其中<partner_key>
替换成具体值。 - 对以上拼好的串算一个32位md5值(小写),即得到了签名。
注:
- partner_key总是拼在字符串最后面,并不参与key的排序。
- partner_key只是计算签名时需要,在发送请求时不需要发partner_key
示例如下:
假设请求参数:
partner_id: 12345
video_id: 456
partner_key
为: 8jewu3j93jjewi3jwj90093jkyu
参数key按字典顺序排序后为:
partner_id: 12345
video_id: 456
参数拼接串为:
partner_id=12345&video_id=456
再拼接partner_key
后为:
origin_str = "partner_id=12345&time stamp=1596096142&video_id=456&partner_key=8jewu3j93jjewi3jwj90093jkyu"
计算签名:
sign=md5(origin_str)
对拼接后的字符串进行md5得出sign,作为接口的一个POST参数。
相应的php代码如下:
<?php
/**
* 生成签名参数
*
* @param array $params 请求的参数
* @param string $partner_key
* @return string 生成的签名
*/
function getSign($params, $partner_key) {
ksort($params);//将参数按key进行排序
$str = '';
foreach ($params as $k => $val) {
$str .= "{$k}={$val}&"; //拼接成 key1=value1&key2=value2&...&keyN=valueN& 的形式
}
$str .= "partner_key=" . $partner_key; //结尾再拼上 partner_key=$partner_key
$sign = md5($str); //计算md5值
return $sign;
}
$params = [
"partner_id" => 123456,
"video_id" => 123,
];
$partner_key = 'xxx';
$sign = getSign($params, $partner_key);
API列表
API 1 : 获取/重置partner_key
【功能描述】
初始的partner_key和secret_key都可登录百家云后台获取。
此接口可用于重置partner_key。
【请求地址】
https://${private_domain}.at.baijiayun.com/openapi/partner/createkey
【请求参数】
参数 | 类型 | 是否必填 | 默认值 | 参数说明 |
---|---|---|---|---|
partner_id |
int | 是 | 合作方账号ID | |
secret_key |
string | 是 | 合作方用于更新partner_key的密钥(由开放平台提供给合作方) | |
regenerate |
int | 否 | 0 | 为1时表示强制重新生成partner_key (默认情况下返回当前已经存在的partner_key ) |
timestamp |
int | 是 | 当前时间,unix时间戳 | |
sign |
string | 是 | 签名 |
【返回参数】
参数 | 类型 | 示例 | 说明 |
---|---|---|---|
partner_key |
string | partner_key 长度不超过128位 |
【请求示例】
curl -d "partner_id=12345678&secret_key=e10adc3949ba59abbe56e057f20f883e" https://${private_domain}.at.baijiayun.com/openapi/partner/createkey
【返回示例】
{
"code": 0,
"data": {
"partner_key": "rLkIPaQjxSwRQmC/ITnHh8i2rifmmbFIVsYw03SSi24zAnkrAd0ZNb2rcTzI2avy7+AmNJDdLmzU89zKUAP3Xg=="
},
"msg":""
}
API-2: 获取视频/音频上传地址
【功能描述】
通过此接口,可以初始化一个视频/音频,并获取上传地址。
【请求地址】
https://${private_domain}.at.baijiayun.com/openapi/video/getUploadUrl
【请求类型】
POST
【请求参数】
参数 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
partner_id |
int | 是 | 合作方用户名 | |
file_name |
string | 是 | 文件名 | |
definition |
string | 是 | 目标清晰度(16:标清 1:高清 2:超清 4:720p 8:1080p 多种清晰度用英文逗号分隔) | |
audio_with_view |
int | 否 | 0 | 是否作为音频处理 0:否 1:是 |
format |
string | 否 | 转码格式(1:mp4 2:flv 4:m3u8 多种格式用英文逗号分隔)默认是3种格式都转 | |
encrypt |
int | 否 | 是否生成加密格式视频/音频1:是 2:否(该功能需要申请加密视频/音频的权限,开通加密视频/音频权限后,默认都会加密) | |
use_https |
int | 否 | 0 | 是否使用https上传地址,默认不使用 |
timestamp |
int | 是 | 当前时间,unix时间戳,当前秒数(注:不是毫秒) | |
sign |
string | 是 | 签名 |
需要注意
- 如果目标清晰度是标清和超清,但是源文件的清晰度只是标清级别,这时只会转码出标清视频/音频。
- 如果目标清晰度选的超清一个,但是源文件的清晰度达不到超清级别,这时会转码出与源文件同样清晰度的视频/音频。
- 如果上传的是音频,需要传参数
audio_with_view = 1
来对音频进行特殊转码。
【请求示例】
curl -d "file_name=<file_name>&partner_id=<partner_id>×tamp=<timestamp>&sign=<sign>" https://${private_domain}.at.baijiayun.com/openapi/video/getUploadUrl
【返回参数】
参数 | 类型 | 示例/默认值 | 描述 |
---|---|---|---|
video_id |
int | 1234 | 视频/音频ID |
upload_url |
string | url | 视频/音频上传地址 |
说明:
video_id
为该视频/音频的id,后续获取转码状态、播放等都需要使用该idupload_url
为需要上传的地址,应用方获取后将视频/音频往该地址提交
【返回示例】
{
"code": 0,
"data": {
"video_id": 12345,
"upload_url": "http://upload-video.baijiayun.com/upload?fid=<fid>&ts=<timestamp>&token=<token>"
},
"msg": ""
}
API-3: 上传视频/音频
【功能描述】
上传视频/音频,目前支持的视频格式有: wmv、avi、dat、asf、rm、rmvb、ram、mpg、mpeg、3gp、mov、mp4、m4v、dvix、dv、mkv、flv、vob、qt、divx、cpk、fli、flc、mod。支持的音频格式有:mp3、wma、wav、mid、midd、kar、ogg、m4a、ra、ram、mod。
【请求地址】
该地址由获取视频/音频上传地址
接口返回,如下:
http://upload-video.baijiayun.com/upload?fid=<fid>&ts=<timestame>&token=<token>
【请求类型】
POST
【请求参数】
文件二进制内容
【请求示例】
curl -F data=@<video_file_path> "http://upload-video.baijiayun.com/upload?fid=<fid>&ts=<timestame>&token=<token>"
【返回参数】
返回code=1表示上传成功
【返回示例】
{
"code": 1,
"msg": "success"
}
说明:
- 此接口code返回1表示成功
API-4: 获取断点续传地址
【功能描述】
视频分片上传时,如果只上传了一部分中止了,可以通过此接口获取续传的地址,已上传的那部分不用再上传。
【请求地址】
https://${private_domain}.at.baijiayun.com/openapi/video/getResumeUploadUrl
【请求类型】
POST
【请求参数】
参数 | 类型 | 是否必填 | 示例/默认值 | 描述 |
---|---|---|---|---|
partner_id |
int | 是 | 123456 | 合作方用户名 |
video_id |
int | 是 | 12345 | 视频id |
use_https |
int | 否 | 0 | 是否使用https上传地址,默认不使用 |
timestamp |
int | 是 | 当前时间,unix时间戳 | |
sign |
string | 是 | 签名 |
【请求示例】
curl -d "video_id=<video_id>&partner_id=<partner_id>×tamp=<timestamp>&sign=<sign>" https://${private_domain}.at.baijiayun.com/openapi/video/getResumeUploadUrl
【返回参数】
参数 | 类型 | 示例/默认值 | 描述 |
---|---|---|---|
video_id |
int | 1234 | 视频ID |
upload_url |
string | url | 视频上传地址 |
upload_size |
int | 1000 | 已上传的大小 |
说明:
video_id
为该视频的id,后续获取转码状态、播放等都需要使用该idupload_url
为需要上传的地址,应用方获取后将视频往该地址提交
【返回示例】
{
"code": 0,
"data": {
"video_id": 12345,
"upload_url": "http://upload-video.baijiayun.com/upload?fid=<fid>&ts=<timestamp>&token=<token>",
"upload_size": 1000
},
"msg": ""
}
API-5: 查询视频转码状态
【功能描述】
查询视频转码状态
【请求地址】
https://${private_domain}.at.baijiayun.com/openapi/video/getStatus
【请求类型】
POST
【请求参数】
参数 | 类型 | 是否必填 | 示例/默认值 | 描述 |
---|---|---|---|---|
partner_id |
int | 是 | 123456 | 合作方用户名 |
video_id |
int | 是 | 123 | 视频id |
timestamp |
int | 是 | 当前时间,unix时间戳 | |
sign |
string | 是 | 签名 |
说明:
video_id
在获取视频上传地址时返回
【返回参数】
参数 | 类型 | 示例/默认值 | 描述 |
---|---|---|---|
status |
int | 100 | 视频状态码(10:上传中 20:转码中 30:转码失败 31:转码超时 32:上传超时 100:转码成功) |
info |
string | 转码成功 | 状态码说明 |
【请求示例】
curl -d "video_id=<video_id>&partner_id=<partner_id>×tamp=<timestamp>&sign=<sign>" https://${private_domain}.at.baijiayun.com/openapi/video/getStatus
【返回示例】
{
"code": 0,
"data": {
"status": 100,
"info": "转码成功"
},
"msg": ""
}
API-6: 获取指定ID视频信息
【功能描述】
获取指定ID的视频信息(不包括已删除的视频)
【请求地址】
https://${private_domain}.at.baijiayun.com/openapi/video/getInfo
【请求类型】
POST
【请求参数】
参数 | 类型 | 是否必填 | 示例/默认值 | 描述 |
---|---|---|---|---|
partner_id |
int | 是 | 123456 | 合作方用户名 |
video_id |
int | 是 | 123 | 视频id |
timestamp |
int | 是 | 当前时间,unix时间戳 | |
sign |
string | 是 | 签名 |
【请求示例】
curl -d "video_id=<video_id>&partner_id=<partner_id>×tamp=<timestamp>&sign=<sign>" https://${private_domain}.at.baijiayun.com/openapi/video/getInfo
【返回参数】
参数 | 类型 | 示例/默认值 | 描述 |
---|---|---|---|
video_id |
int | 123 | 视频ID |
name |
string | 视频名称 | 视频名称 |
status |
int | 100 | 转码状态(具体值参见 获取转码状态接口) |
total_size |
int | 1000 | 视频大小(转码完才会有大小)单位:字节 |
total_transcode_size |
int | 1000 | 总视频大小(源文件+所有转码后文件) 单位:字节 |
create_time |
timestamp | 1481090337 | 添加时间 |
preface_url |
string | 封面图片地址 | |
length |
string | 1200 | 视频时长 单位:秒 |
audit_status |
int | 0 | 视频审核状态 0:未审核 1:审核通过 2:审核拒绝 (只要不是审核拒绝的都可以正常播放) |
file_md5 |
string | 原始视频的md5值 | |
origin_definition |
string | 原始视频清晰度(low/std/high/super/1080p) | |
transcode_info |
array | 转码后文件信息 | |
transcode_info.[].definition |
string | 转码的文件清晰度(low/std/high/super/1080p) | |
transcode_info.[].type |
string | 转码的文件格式(mp4/flv/m3u8) | |
transcode_info.[].size |
string | 转码的文件大小 单位:字节 | |
category |
array | 分类(无分类信息返回空数组) | |
category.[].id |
int | 分类id | |
category.[].level |
int | 分类层级 | |
category.[].name |
string | 分类名 | |
publish_status |
int | 0 | 视频屏蔽状态 1:未屏蔽 1:已屏蔽 |
返回code为0表示成功
【返回示例】
{
"code": 0,
"data": {
"video_id": 112459,
"name": "骑车的小人",
"status": 100,
"total_size": 4185679,
"total_transcode_size": 7816254,
"origin_definition": "super",
"create_time": 1483422640,
"preface_url": "http://test-img.gsxservice.com/00-upload/image-test/110541_9f339a4bd5062df4d2147f7b68c5628f_HCKmpwz2.jpg",
"length": 5,
"publish_status": 1,
"file_md5": "778308dee20ca64575f4b437e970c22e",
"transcode_info": [
{
"definition": "super",
"type": "mp4",
"size": 578208
},
{
"definition": "super",
"type": "flv",
"size": 581515
},
{
"definition": "super",
"type": "m3u8",
"size": 640892
},
{
"definition": "high",
"type": "mp4",
"size": 361834
},
{
"definition": "high",
"type": "flv",
"size": 365125
},
{
"definition": "high",
"type": "m3u8",
"size": 407208
},
{
"definition": "std",
"type": "mp4",
"size": 218971
},
{
"definition": "std",
"type": "flv",
"size": 222270
},
{
"definition": "std",
"type": "m3u8",
"size": 254552
}
],
"category": [
{
"id": 492,
"level": 1,
"name": "未加密 - 片头"
},
{
"id": 692,
"level": 2,
"name": "图片"
}
]
},
"msg": "",
"ts": 1493967641
}
API-7: 获取指定ID视频截图
【功能描述】
获取指定ID的视频截图(不包括已删除的视频)
【请求地址】
https://${private_domain}.at.baijiayun.com/openapi/video/getImage
【请求类型】
POST
【请求参数】
参数 | 类型 | 是否必填 | 示例/默认值 | 描述 |
---|---|---|---|---|
partner_id |
int | 是 | 123456 | 合作方用户名 |
video_id |
int | 是 | 123 | 视频id |
timestamp |
int | 是 | 当前时间,unix时间戳 | |
sign |
string | 是 | 签名 |
【请求示例】
curl -d "video_id=<video_id>&partner_id=<partner_id>×tamp=<timestamp>&sign=<sign>" https://${private_domain}.at.baijiayun.com/openapi/video/getImage
【返回参数】
参数 | 类型 | 示例/默认值 | 描述 |
---|---|---|---|
video_id |
int | 123 | 视频ID |
height |
int | 720 | 截图高度 |
width |
int | 1280 | 截图宽度 |
img_count |
int | 5 | 截图张数 |
imgs |
array | 截图地址组成的数据 |
返回code为0表示成功
【返回示例】
{
"code": 0,
"data": {
"video_id": "112365",
"height": 720,
"img_count": 5,
"imgs": [
"http://xxxxxx.jpg",
"http://xxxxxx.jpg",
"http://xxxxxx.jpg",
"http://xxxxxx.jpg"
],
"width": 1280
},
"msg": "",
"ts": 1483006694
}
API-8: 清除指定清晰度(文件类型)的转码文件
【功能描述】
该接口可以清除指定清晰度的视频文件,以减少占用的存储空间
【请求地址】
https://${private_domain}.at.baijiayun.com/openapi/video/removeDefinition
【请求类型】
POST
【请求参数】
参数 | 类型 | 是否必填 | 示例/默认值 | 描述 |
---|---|---|---|---|
partner_id |
int | 是 | 123456 | 合作方用户名 |
video_id |
int | 是 | 123 | 视频id |
definition |
string | 是 | 4 | 目标清晰度(16:标清 1:高清 2:超清 4:720p 8:1080p 多种清晰度用英文逗号分隔) |
type |
string | 否 | 1 | 目标类型(1:mp4 2:flv 4:m3u8 8:encrypt 多种类型用英文逗号分隔) |
timestamp |
int | 是 | 当前时间,unix时间戳 | |
sign |
string | 是 | 签名 |
目标类型为 1(mp4)
时,必须保证相同清晰度下其他的类型已删除,否则删除失败
【请求示例】
curl -d "video_id=<video_id>&partner_id=<partner_id>×tamp=<timestamp>&sign=<sign>" https://${private_domain}.at.baijiayun.com/openapi/video/removeDefinition
【返回参数】
参数 | 类型 | 示例/默认值 | 描述 |
---|---|---|---|
video_id |
int | 123 | 视频ID |
definition |
string | 是 | 4 | 目标清晰度(16:标清 1:高清 2:超清 4:720p 8:1080p 多种清晰度用英文逗号分隔) |
type |
string | 传了 type 才会返回该字段 | 目标类型(1:mp4 2:flv 4:m3u8 8:encrypt) |
返回code为0表示成功
【返回示例】
{
"code": 0,
"data": {
"video_id": "112365",
"definition": "8",
"type" : "1",
},
"msg": "",
"ts": 1483017531
}
API-9: 删除点播源文件
【功能描述】
该接口通过传入一批video_id,批量删除点播源文件
【请求类型】
POST/GET
【请求地址】
https://${private_domain}.at.baijiayun.com/openapi/video/deleteOriginVideo
【请求参数】
参数 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
partner_id |
int | 是 | 合作方id | |
video_ids |
string | 是 | 多个video_id,用,分割 | |
timestamp |
int | 是 | 当前时间,unix时间戳 | |
sign |
string | 是 | 签名 |
【响应示例】
{
"code": 0,
"data": null,
"msg": "",
"ts": 1524709679
}
API-10: 更新视频信息
【功能描述】
该接口可以更新视频信息,目前只有名称可以更新
【请求地址】
https://${private_domain}.at.baijiayun.com/openapi/video/update
【请求类型】
POST
【请求参数】
参数 | 类型 | 是否必填 | 示例/默认值 | 描述 |
---|---|---|---|---|
partner_id |
int | 是 | 123456 | 合作方用户名 |
video_id |
int | 是 | 123 | 视频id |
name |
string | 否 | 英语语法基础 | 视频名称 |
timestamp |
int | 是 | 当前时间,unix时间戳 | |
sign |
string | 是 | 签名 |
【请求示例】
curl -d 'video_id=<video_id>&name=<name>&partner_id=<partner_id>×tamp=<timestamp>&sign=<sign>' https://${private_domain}.at.baijiayun.com/openapi/video/update
【返回参数】
参数 | 类型 | 示例/默认值 | 描述 |
---|---|---|---|
video_id |
int | 123 | 成功更新的视频的id |
返回code为0表示删除成功
【返回示例】
{
"code": 0,
"data": {
"video_id": 123
},
"msg": "",
"ts": 1481023553
}
API-11: 删除视频
【功能描述】
删除视频
【请求地址】
https://${private_domain}.at.baijiayun.com/openapi/video/delete
【请求类型】
POST
【请求参数】
参数 | 类型 | 是否必填 | 示例/默认值 | 描述 |
---|---|---|---|---|
partner_id |
int | 是 | 123456 | 合作方用户名 |
video_id |
int | 是 | 123 | 视频id |
timestamp |
int | 是 | 当前时间,unix时间戳 | |
sign |
string | 是 | 签名 |
【请求示例】
curl -d "video_id=<video_id>&partner_id=<partner_id>×tamp=<timestamp>&sign=<sign>" https://${private_domain}.at.baijiayun.com/openapi/video/delete
【返回参数】
参数 | 类型 | 示例/默认值 | 描述 |
---|---|---|---|
video_id |
int | 123 | 成功删除的视频的id |
返回code为0表示删除成功
【返回示例】
{
"code": 0,
"data": {
"video_id": 123
},
"msg": "",
"ts": 1481023553
}
API-12: 获取所有分类
【功能描述】
该接口用于获取所有的分类信息
【请求地址】
https://${private_domain}.at.baijiayun.com/openapi/video/getCategoryList
【请求类型】
POST
【请求参数】
参数 | 类型 | 是否必填 | 示例/默认值 | 描述 |
---|---|---|---|---|
partner_id |
int | 是 | 123456 | 合作方用户名 |
timestamp |
int | 是 | 当前时间,unix时间戳 | |
sign |
string | 是 | 签名 |
【请求示例】
curl -d 'partner_id=<partner_id>×tamp=<timestamp>&sign=<sign>' https://${private_domain}.at.baijiayun.com/openapi/video/getCategoryList
【返回参数】
参数 | 类型 | 示例/默认值 | 描述 |
---|---|---|---|
id |
int | 123 | 分类ID |
name |
string | 分类名 | 分类名称 |
parent_id |
int | 12345 | 父分类ID |
level |
int | 1 | 分类层级,支持五级 |
children |
array | 该分类下面的子分类 |
【返回示例】
{
"code": 0,
"data": {
"list": [
{
"id": 50,
"name": "教育",
"parent_id": 0,
"level": 1,
"children": [
{
"id": "51",
"name": "育教于乐123",
"level": "2",
"parent_id": "50",
}
]
}
]
},
"msg": "",
"ts": 1481092035
} },]}
API-13: 获取指定ID分类信息
【功能描述】
该接口用于获取分类信息
【请求地址】
https://${private_domain}.at.baijiayun.com/openapi/video/getCategoryInfo
【请求类型】
POST
【请求参数】
参数 | 类型 | 是否必填 | 示例/默认值 | 描述 |
---|---|---|---|---|
partner_id |
int | 是 | 123456 | 合作方用户名 |
category_id |
string | 否 | 0 | 分类ID |
timestamp |
int | 是 | 当前时间,unix时间戳 | |
sign |
string | 是 | 签名 |
【请求示例】
curl -d 'partner_id=<partner_id>&category_id=<category_id>&parent_id=<parent_id>×tamp=<timestamp>&sign=<sign>' https://${private_domain}.at.baijiayun.com/openapi/video/getCategoryInfo
【返回参数】
参数 | 类型 | 示例/默认值 | 描述 |
---|---|---|---|
id |
int | 123 | 分类ID |
name |
string | 分类名 | 分类名称 |
parent_id |
int | 12345 | 父分类ID |
level |
int | 1 | 分类层级,支持五级 |
children |
array | 子节点,五级分类无此参数 |
【返回示例】
{
"code": 0,
"data": {
"id": 143,
"name": "新加的一分类",
"parent_id": 0,
"level": 1,
"children": [
{
"id": 38,
"name": "二级分类-1",
"parent_id": 143,
"level": "2"
},
{
"id": 41,
"name": "二级分类2",
"parent_id": 143,
"level": "2"
}
]
},
"msg": "",
"ts": 1481094171
}
API-14: 添加分类
【功能描述】
该接口用于添加分类
【请求地址】
https://${private_domain}.at.baijiayun.com/openapi/video/addCategory
【请求类型】
POST
【请求参数】
参数 | 类型 | 是否必填 | 示例/默认值 | 描述 |
---|---|---|---|---|
partner_id |
int | 是 | 123456 | 合作方用户名 |
name |
string | 是 | 分类名 | 分类名称 |
parent_id |
string | 否 | 0 | 父分类ID,如果添加的是一级分类,则可以填0或不传 |
timestamp |
int | 是 | 当前时间,unix时间戳 | |
sign |
string | 是 | 签名 |
【请求示例】
curl -d 'partner_id=<partner_id>&name=<name>&parent_id=<parent_id>×tamp=<timestamp>&sign=<sign>' https://${private_domain}.at.baijiayun.com/openapi/video/addCategory
【返回参数】
参数 | 类型 | 示例/默认值 | 描述 |
---|---|---|---|
id |
int | 123 | 分类ID |
name |
string | 分类名 | 分类名称 |
parent_id |
int | 12345 | 父分类ID |
level |
int | 1 | 分类层级,支持五级 |
【返回示例】
{
"code": 0,
"data": {
"id": 143,
"name": "新加的一分类",
"parent_id": 57,
"level": 2
},
"msg": "",
"ts": 1481094171
}
API-15: 删除分类
【功能描述】
该接口用于删除分类,若该分类下有视频,则不可删除
【请求地址】
https://${private_domain}.at.baijiayun.com/openapi/video/deleteCategory
【请求类型】
POST
【请求参数】
参数 | 类型 | 是否必填 | 示例/默认值 | 描述 |
---|---|---|---|---|
partner_id |
string | 是 | 123456 | 合作方用户名 |
category_id |
int | 是 | 12345 | 分类ID |
timestamp |
int | 是 | 当前时间,unix时间戳 | |
sign |
string | 是 | 签名 |
【请求示例】
curl -d 'partner_id=<partner_id>&category_id=<category_id>×tamp=<timestamp>&sign=<sign>' https://${private_domain}.at.baijiayun.com/openapi/video/deleteCategory
【返回参数】
参数 | 类型 | 示例/默认值 | 描述 |
---|---|---|---|
category_id |
int | 12345 | 分类ID |
【返回示例】
{
"code": 0,
"data": {
"category_id": 143
},
"msg": "",
"ts": 1481094171
}
API-16: 获取指定分类下的视频
【功能描述】
获取指定分类下的视频,如果是一级分类ID,则返回挂在该分类下的视频及挂在该分类下的二级分类里的视频
【请求地址】
https://${private_domain}.at.baijiayun.com/openapi/video/getCategoryVideo
【请求类型】
POST
【请求参数】
参数 | 类型 | 是否必填 | 示例/默认值 | 描述 |
---|---|---|---|---|
partner_id |
string | 是 | 123456 | 合作方用户名 |
category_id |
int | 是 | 12345 | 分类ID |
page_size |
int | 否 | 20 | 每页条数,不得超过100,默认值20 |
page |
int | 否 | 1 | 页码,默认1 |
timestamp |
int | 是 | 当前时间,unix时间戳 | |
sign |
string | 是 | 签名 |
【请求示例】
curl -d 'partner_id=<partner_id>&category_id=<category_id>&page_size=20&page=1×tamp=<timestamp>&sign=<sign>' https://${private_domain}.at.baijiayun.com/openapi/video/getCategoryVideo
【返回参数】
参数 | 类型 | 示例/默认值 | 描述 |
---|---|---|---|
total |
int | 100 | 视频总数 |
page |
int | 1 | 页码 |
page_size |
int | 100 | 每页条数 |
list |
array | 视频列表组成的数组 | |
video_id |
int | 123 | 视频ID |
name |
string | 视频名名称 | 视频名称 |
status |
int | 100 | 转码状态(具体值参见 获取转码状态接口) |
total_size |
int | 1000 | 视频大小(转码完才会有大小)单位:字节 |
create_time |
timestamp | 1481090337 | 添加时间 |
preface_url |
string | 封面图片地址 | |
length |
string | 1200 | 视频时长 |
publish_status |
int | 0 | 视频屏蔽状态 1:未屏蔽 1:已屏蔽 |
category_level1_id |
int | 0 | 一级分类ID(没有分类则为0) |
category_level2_id |
int | 0 | 二级分类ID(没有分类则为0) |
category_level3_id |
int | 0 | 三级分类ID(没有分类则为0) |
category_level4_id |
int | 0 | 四级分类ID(没有分类则为0) |
category_level5_id |
int | 0 | 五级分类ID(没有分类则为0) |
【返回示例】
{
"code": 0,
"data": {
"total": "1",
"page": "1",
"page_size": "1",
"list": [
{
"video_id": 486,
"name": "骑车的小人",
"status": 100,
"total_size": 4185679,
"create_time": 1478177585,
"preface_url": "http://test-img.gsxservice.com/00-upload/image-test/107189_8f83b57d90c0ad1614e242ad343b9e6e_yrD4DpGq.jpg",
"length": 5,
"publish_status": 102,
"category_level1_id": 74,
"category_level2_id": 0,
"category_level3_id": 0,
"category_level4_id": 0,
"category_level5_id": 0
}
]
},
"msg": "",
"ts": 1481098005
}
API-17: 设置视频分类
【功能描述】
设置一个视频的分类
【请求地址】
https://${private_domain}.at.baijiayun.com/openapi/video/setVideoCategory
【请求类型】
POST
【请求参数】
参数 | 类型 | 是否必填 | 示例/默认值 | 描述 |
---|---|---|---|---|
partner_id |
string | 是 | 123456 | 合作方用户名 |
video_id |
int | 是 | 12345 | 视频ID |
category_id |
int | 是 | 12345 | 分类ID |
timestamp |
int | 是 | 当前时间,unix时间戳 | |
sign |
string | 是 | 签名 |
【请求示例】
curl -d 'partner_id=<partner_id>&video_id=<video_id>&category_id=<category_id>×tamp=<timestamp>&sign=<sign>' https://${private_domain}.at.baijiayun.com/openapi/video/setVideoCategory
【返回参数】
参数 | 类型 | 示例/默认值 | 描述 |
---|---|---|---|
video_id |
int | 123 | 视频ID |
category_id |
int | 100 | 分类ID |
【返回示例】
{
"code": 0,
"data": {
"video_id": 663,
"category_level1_id": 74,
"category_level2_id": 0,
"category_level3_id": 0
"category_level4_id": 0
"category_level5_id": 0
},
"msg": "",
"ts": 1481099442
}
API-18: 获取播放器token
【功能描述】
获取视频播放token,服务端获取token后传给客户端,客户端就可以使用该token播放视频
【请求地址】
https://${private_domain}.at.baijiayun.com/openapi/video/getPlayerToken
【请求类型】
POST
【请求参数】
参数 | 类型 | 是否必填 | 示例/默认值 | 描述 |
---|---|---|---|---|
partner_id |
string | 是 | 123456 | 合作方用户名 |
video_id |
int | 是 | 12345 | 视频ID |
expires_in |
int | 否 | 默认 0 | 过期时间,以秒为单位。如果传0则表示不过期 |
timestamp |
int | 是 | 当前时间,unix时间戳 | |
sign |
string | 是 | 签名 |
【返回参数】
参数 | 类型 | 示例/默认值 | 描述 |
---|---|---|---|
token |
string | abcedfe | 视频ID |
【返回示例】
{
"code": 0,
"data": {
"token": "AIEJAalkje-ekj39aflkj2"
},
"msg": "",
"ts": 1484288051
}
API-19: 批量获取播放器token
【功能描述】
获取视频播放token,服务端获取token后传给客户端,客户端就可以使用该token播放视频
【请求地址】
https://${private_domain}.at.baijiayun.com/openapi/video/getPlayerTokenBatch
【请求类型】
POST
【请求参数】
参数 | 类型 | 是否必填 | 示例/默认值 | 描述 |
---|---|---|---|---|
partner_id |
string | 是 | 123456 | 合作方用户名 |
video_ids |
int | 是 | 12345 | 多个视频ID以英文逗号分隔 |
expires_in |
int | 是 | 3600 | 过期时间,以秒为单位。如果传0则表示不过期 |
timestamp |
int | 是 | 当前时间,unix时间戳 | |
sign |
string | 是 | 签名 | |
product_type |
int | 否 | 5 | 产品线类型,默认云点播(1:大班课 2:小班课 3:双师课堂 4:企业直播 5:云点播) |
【返回参数】
参数 | 类型 | 示例/默认值 | 描述 |
---|---|---|---|
token |
string | abcedfe | 视频ID |
【返回示例】
{
"code": 0,
"data": {
"123": "cDrVEUojhpK9cWOOu4-mnyeqzmxQy0p0kJaEZbQ96bg",
"456": "rwkHdiEutT29cWOOu4-mnyeqzmxQy0p0kJaEZbQ96bg"
},
"msg": "",
"ts": 1487040857
}
API-20: 获取账号套餐使用量
【功能描述】
获取当前账号使用的总存储空间及流量。流量使用情况非实时的,每天统计一次。
【请求地址】
https://${private_domain}.at.baijiayun.com/openapi/video_account/getAccountInfo
【请求类型】
POST
【请求参数】
参数 | 类型 | 是否必填 | 示例/默认值 | 描述 |
---|---|---|---|---|
partner_id |
string | 是 | 123456 | 合作方用户名 |
timestamp |
int | 是 | 当前时间,unix时间戳 | |
sign |
string | 是 | 签名 |
【返回参数】
参数 | 类型 | 示例/默认值 | 描述 |
---|---|---|---|
partner_id |
int | 账号ID | |
mobile |
string | 注册的手机号 | |
type |
int | 0 | 点播账号类型 0:免费账号 1:试用账号 2:正式账号 |
status |
int | 1 | 点播账号服务状态 0:服务未开通 1:服务正常 2:服务已关闭 |
charge_type |
int | 0 | 计费方式 0:月流量套餐 1:总流量套餐 |
effect_time |
string | 2017-02-07 00:00:00 | 账号生效时间 |
expire_time |
string | 2018-02-06 23:59:59 | 账号的失效时间 |
total_storage |
int | 账号的总存储空间(单位:字节) | |
used_storage |
int | 已使用的存储空间,返回点播占用(单位:字节) | |
used_flow |
int | 已使用的流量(单位:字节) | |
month_flow_limit |
int | 套餐月流量(计费方式是按月流量计费才有该字段) | |
total_flow_limit |
int | 套餐总流量(计费方式是按总流量计费才有该字段) |
【返回示例】
{
"code": 0,
"data": {
"partner_id": 32893185,
"mobile": "18701218237",
"type": 1,
"charge_type": 0,
"status": 1,
"total_storage": 10737418240,
"effect_time": "2018-01-02 00:00:00",
"expire_time": "2019-01-01 23:59:59",
"used_storage": 8756462627,
"used_flow": 41076421229,
"month_flow_limit": 10737418240
},
"msg": "",
"ts": 1517911014
}
API-21: 查询指定ID视频一段时间内使用的流量
【功能描述】
查询指定ID的视频一段时间内使用的总流量。 注:流量的统计不是实时的,每天统计一次。
【请求地址】
https://${private_domain}.at.baijiayun.com/openapi/video_data/getUsedFlow
【请求类型】
POST
【请求参数】
参数 | 类型 | 是否必填 | 示例/默认值 | 描述 |
---|---|---|---|---|
partner_id |
int | 是 | 123456 | 合作方用户名 |
video_id |
int | 是 | 123 | 视频ID |
start_date |
string | 是 | 2017-08-01 | 查询起始日期,时间格式为yyyy-mm-dd,如:2017-08-01 |
end_date |
string | 是 | 2017-08-03 | 查询结束日期,时间格式为yyyy-mm-dd,如:2017-08-01 |
timestamp |
int | 是 | 当前时间,unix时间戳 | |
sign |
string | 是 | 签名 |
注:
- 查询的起始时间和结束时间不能跨月份。
【返回参数】
参数 | 类型 | 示例/默认值 | 描述 |
---|---|---|---|
flow |
int | 使用的流量(单位:字节) |
【返回示例】
{
"code": 0,
"data": {
"flow": 2992965600,
},
"msg": "",
"ts": 1501739877
}
API-22: 查询账号一段时间内使用的流量
【功能描述】
查询整体账号一段时间内使用的总流量。 注:流量的统计不是实时的,每天统计一次。
【请求地址】
https://${private_domain}.at.baijiayun.com/openapi/video_account/getUsedFlow
【请求类型】
POST
【请求参数】
参数 | 类型 | 是否必填 | 示例/默认值 | 描述 |
---|---|---|---|---|
partner_id |
int | 是 | 123456 | 合作方用户名 |
start_date |
string | 是 | 2017-08-01 | 查询起始日期,时间格式为yyyy-mm-dd,如:2017-08-01 |
end_date |
string | 是 | 2017-08-03 | 查询结束日期,时间格式为yyyy-mm-dd,如:2017-08-01 |
timestamp |
int | 是 | 当前时间,unix时间戳 | |
sign |
string | 是 | 签名 |
【返回参数】
参数 | 类型 | 示例/默认值 | 描述 |
---|---|---|---|
flow |
int | 使用的流量(单位:字节) |
【返回示例】
{
"code": 0,
"data": {
"flow": 2992965600,
},
"msg": "",
"ts": 1501739877
}
API-23: 获取转码后视频/音频地址
【功能描述】
该接口用于获取转码后视频的不同清晰度播放地址,以及视频宽高等信息。
【请求类型】
POST
【请求地址】
https://${private_domain}.at.baijiayun.com/openapi/video/getUrl
【请求参数】
参数 | 类型 | 是否必填 | 示例/默认值 | 描述 |
---|---|---|---|---|
partner_id |
int | 是 | 123456 | 合作方id |
video_id |
int | 是 | 123 | 视频ID |
format |
string | 否 | 视频格式,可选值有:mp4/m3u8/flv/encrypt,默认是mp4,encrypt表示加密格式,账号开启了点播加密功能才会有该格式的视频 | |
expires_in |
int | 否 | 视频失效时间,单位为秒,默认是12小时 | |
timestamp |
int | 是 | 当前时间,unix时间戳 | |
sign |
string | 是 | 签名 |
【返回参数】
参数 | 类型 | 示例/默认值 | 描述 |
---|---|---|---|
play_info |
dict | 播放信息,包含low/high/superHD/720p/1080p/audio(音频)其中的一种或多种 | |
duration |
int | 视频时长,单位:秒 | |
size |
int | 文件大小,单位:字节 | |
height |
int | 视频高 | |
width |
int | 视频宽 | |
url |
string | 视频播放地址(该地址有效期是通过expires_in参数控制,默认为12小时) |
【返回示例】
{
"code": 0,
"data": {
"video_id": "127384",
"play_info": {
"high": {
"duration": 19,
"height": 368,
"width": 640,
"size": 631748,
"url": "http://test-dyd-video.baijiayun.com/0da634bed162705e6210b1a607b89325/59493fca/00-upload/video-test/125120_451e682512505f9f7dac51d1bcbee6ed_Y9koKQBv.mp4?fid=127384"
},
"superHD": {
"duration": 19,
"height": 720,
"width": 1280,
"size": 2066076,
"url": "http://test-dyd-video.baijiayun.com/de02f687b209587123160322cb32416c/59493fca/00-upload/video-test/125120_c083e0bd96d62a1d376e666416e53a8b_lz0K7U9p.mp4?fid=127384"
},
"low": {
"duration": 19,
"height": 176,
"width": 320,
"size": 453403,
"url": "http://test-dyd-video.baijiayun.com/be0f80862e3d747bd63fd3f9fd7d12a7/59493fca/00-upload/video-test/125120_c4e8f3f13dca4eedb0b3ffdc1663f6de_rPvtRsSs.mp4?fid=127384"
}
"audio": {
"size": 43931947,
"url": "http://test-dal-video.baijiayun.com/3278582842c54b503a2ba1c98651fa2e/5bd8bd20/00-upload/video-test/229727_145cd0ed372d8d9a1d6a504b0a1d5f31_N20AP0x3.mp3"
}
}
},
"msg": "",
"ts": 1497951081
}
API-24: 获取指定视频观看记录
【功能描述】
该接口用于获取指定回放视频一段时间内的的详细播放记录,每次播放都会有一条记录。
【请求类型】
POST
【请求地址】
https://${private_domain}.at.baijiayun.com/openapi/video_data/getVideoPlayRecord
【请求参数】
参数 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
partner_id |
int | 是 | 合作方id | |
video_id |
int | 是 | 点播视频ID | |
start_time |
string | 是 | 查询起始时间,格式如:2017-09-08 00:30:00。 | |
end_time |
string | 是 | 查询结束时间,格式如:2017-09-08 23:59:59。查询时间不能跨天 | |
page |
int | 否 | 1 | 页码,从1开始,默认值是1 |
page_size |
int | 否 | 100 | 每页获取的记录条数,默认100,最大值不能超过1000 |
timestamp |
int | 是 | 当前时间,unix时间戳 | |
sign |
string | 是 | 签名 |
【响应参数】
参数 | 类型 | 示例 | 描述 |
---|---|---|---|
total |
int | 100 | 总记录条数 |
guid |
string | 一次播放的唯一标志,32位字符串 | |
uuid |
string | 客户端随机生成的用户的唯一标志 | |
video_id |
int | 点播视频对应的视频id | |
user_name |
string | 用户名(需要客户在接入播放器的时候传入用户的信息) | |
user_number |
int | 0 | 用户number号(需要客户在接入播放器的时候传入用户的信息) |
play_begin_time |
string | 2017-09-08 10:00:07 | 起始播放时间,格式如:2017-09-08 10:00:07 |
play_end_time |
string | 2017-09-08 10:10:07 | 结束播放时间,格式如:2017-09-08 10:00:07 |
play_length |
int | 实际观看时间,单位:秒 | |
client_type |
int | 客户端类型1:iphone 2:ipad 3:Android 4:手机M站 5:PC 网页 0:未知 | |
user_ip |
string | 用户IP | |
area |
string | 安徽 亳州 | 用户所在地域,格式如:省份 市。可能会为空 |
【响应示例】
{
"code": 0,
"data": {
"total": 1,
"list": [
{
"guid": "0001836267ED0B260A888952A3586C80",
"uuid": "862950032494596",
"video_id": 148691,
"user_name": "",
"user_number": 0,
"play_begin_time": "2017-09-08 10:29:25",
"play_end_time": "2017-09-08 10:31:27",
"client_type": 0,
"play_length": 0,
"user_ip": "117.177.75.38",
"area": ""
}
],
"page": 1,
"page_size": 100
},
"msg": "",
"ts": 1511492007
}
API-25: 获取账号所有视频观看记录
【功能描述】
该接口用于获取账号下所有视频的详细播放记录(包括点播和回放),每次播放都会有一条记录。
【请求类型】
POST
【请求地址】
https://${private_domain}.at.baijiayun.com/openapi/video_data/exportVideoReportBatch
【请求参数】
参数 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
partner_id |
int | 是 | 合作方id | |
product_type |
int | 否 | 0 | 1:教育直播,2,小班课,3:双师,4,企业直播,5,点播账号 |
start_time |
string | 是 | 查询起始时间,格式如:2017-09-08 00:30:00。 | |
end_time |
string | 是 | 查询结束时间,格式如:2017-09-08 23:59:59。查询时间不能跨天 | |
page |
int | 否 | 1 | 页码,从1开始,默认值是1 |
page_size |
int | 否 | 100 | 每页获取的记录条数,默认100,最大值不能超过1000 |
timestamp |
int | 是 | 当前时间,unix时间戳 | |
sign |
string | 是 | 签名 |
【响应参数】
参数 | 类型 | 示例 | 描述 |
---|---|---|---|
total |
int | 100 | 总记录条数 |
guid |
string | 一次播放的唯一标志,32位字符串 | |
uuid |
string | 客户端随机生成的用户的唯一标志 | |
video_id |
int | 回放对应的视频id | |
room_id |
int | 回放教室号(只有回放视频才有该字段) | |
user_name |
string | 用户名(需要客户在接入播放器的时候传入用户的信息) | |
user_number |
int | 0 | 用户number号(需要客户在接入播放器的时候传入用户的信息) |
play_begin_time |
string | 2017-09-08 10:00:07 | 起始播放时间,格式如:2017-09-08 10:00:07 |
play_end_time |
string | 2017-09-08 10:10:07 | 结束播放时间,格式如:2017-09-08 10:00:07 |
play_length |
int | 实际观看时间,单位:秒 | |
client_type |
int | 客户端类型1:iphone 2:ipad 3:Android 4:手机M站 5:PC 网页 0:未知 | |
user_ip |
string | 用户IP | |
area |
string | 安徽 亳州 | 用户所在地域,格式如:省份 市。可能会为空 |
【响应示例】
{
"code": 0,
"data": {
"total": 2,
"list": [
{
"guid": "00128569A70D778BAFB5216E5C7F4957",
"uuid": "uuid-7de5bb8a-8e23-b5c8-f58e-b6e73c7260a5",
"video_id": 130446,
"user_name": "",
"user_number": 0,
"play_begin_time": "2017-09-08 10:00:07",
"play_end_time": "2017-09-08 10:08:08",
"client_type": 4,
"play_length": 45,
"user_ip": "60.174.64.166",
"area": "安徽 亳州",
"room_id": 17061987494184
},
{
"guid": "002421746670E2BFB563EF0267E10FE7",
"uuid": "C85CEB69-D70B-4BF2-A0A8-B3E18E6BA76B",
"video_id": 135947,
"user_name": "",
"user_number": 0,
"play_begin_time": "2017-09-08 10:48:27",
"play_end_time": "2017-09-08 10:48:50",
"client_type": 1,
"play_length": 0,
"user_ip": "183.6.63.210",
"area": "广东 广州"
}
],
"page": 1,
"page_size": 100
},
"msg": "",
"ts": 1511491855
}
API-26: 设置视频发布状态
【功能描述】
该接口用于设置视频的发布状态。默认情况下,视频转码成功后会自动发布。
【请求类型】
POST
【请求地址】
https://${private_domain}.at.baijiayun.com/openapi/video/setPublishStatus
【请求参数】
参数 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
partner_id |
int | 是 | 合作方id | |
video_id |
int | 是 | 视频ID | |
status |
int | 是 | 发布状态 1:发布 2:屏蔽 | |
timestamp |
int | 是 | 当前时间,unix时间戳 | |
sign |
string | 是 | 签名 |
【响应参数】
参数 | 类型 | 示例/默认值 | 描述 |
---|---|---|---|
status |
int | 发布状态 1:发布 2:屏蔽 |
【响应示例】
{
"code": 0,
"data": {
"status": 1
},
"msg": "",
"ts": 1502293140
}
API-27: 获取视频分享地址
【功能描述】
该接口用于获取视频的分享地址,包含iframe方式、js方式、flash方式
【请求类型】
GET/POST
【请求地址】
https://${private_domain}.at.baijiayun.com/openapi/video/getShareUrl
【请求参数】
参数 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
partner_id |
int | 是 | 合作方id | |
video_id |
int | 是 | 视频ID | |
timestamp |
int | 是 | 当前时间,unix时间戳 | |
sign |
string | 是 | 签名 |
【响应参数】
参数 | 类型 | 示例/默认值 | 描述 |
---|---|---|---|
js |
string | js播放地址 | |
iframe |
string | iframe播放地址 | |
flash |
string | flash播放地址 |
【响应示例】
{
"code": 0,
"data": {
"js": "https://www.baijiayun.com/web/playback/asset/bjcVideoPlayer.js?vid=11128351&token=1hNNdCHe9Ss3S3PxCaNttUCuVGna2k6UMz785TTQyOTlvCBFYF6y8Q&width=400&height=300&autoplay=false",
"iframe": "https://www.baijiayun.com/web/video/player?vid=11128351&token=1hNNdCHe9Ss3S3PxCaNttUCuVGna2k6UMz785TTQyOTlvCBFYF6y8Q",
"flash": "https://www.baijiayun.com/swf/player.swf?v=1524031848599&vid=11128351&token=1hNNdCHe9Ss3S3PxCaNttUCuVGna2k6UMz785TTQyOTlvCBFYF6y8Q"
},
"msg": "",
"ts": 1524232192
}
API-28: 获取播放量排行
【功能描述】
该接口用于获取一段时间内,播放量前100的视频,包含视频id和播放次数
【请求类型】
POST/GET
【请求地址】
https://${private_domain}.at.baijiayun.com/openapi/video_data/getVideoPlayCountRank
【请求参数】
参数 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
partner_id |
int | 是 | 合作方id | |
product_type |
int | 否 | 0 | 1:教育直播,2,小班课,3:双师,4,企业直播,5,点播账号 |
start_date |
string | 是 | 查询起始日期,时间格式为yyyy-mm-dd,如:2017-08-01 | |
end_date |
string | 是 | 查询结束日期,时间格式为yyyy-mm-dd,如:2017-08-01 | |
timestamp |
int | 是 | 当前时间,unix时间戳 | |
sign |
string | 是 | 签名 |
【响应参数】
参数 | 类型 | 示例/默认值 | 描述 |
---|---|---|---|
video_id |
int | 视频id | |
play_count |
int | 播放次数 |
【响应示例】
{
"code": 0,
"data": {
"play_rank": [
{
"video_id": 636,
"play_count": 601
},
{
"video_id": 534,
"play_count": 314
},
{
"video_id": 637,
"play_count": 175
}
]
},
"msg": "",
"ts": 1524709679
}
API-29: 获取指定ID视频播放量
【功能描述】
该接口用于获取一段时间内,指定视频ID每天的播放量,包含日期和播放次数
【请求类型】
POST/GET
【请求地址】
https://${private_domain}.at.baijiayun.com/openapi/video_data/getVideoDailyPlayCount
【请求参数】
参数 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
partner_id |
int | 是 | 合作方ID | |
video_id |
int | 是 | 视频ID | |
start_date |
string | 是 | 查询起始日期,时间格式为yyyy-mm-dd,如:2017-08-01 | |
end_date |
string | 是 | 查询结束日期,时间格式为yyyy-mm-dd,如:2017-08-01 | |
timestamp |
int | 是 | 当前时间,unix时间戳 | |
sign |
string | 是 | 签名 |
【响应参数】
参数 | 类型 | 示例/默认值 | 描述 |
---|---|---|---|
play_count |
dict | key是日期,value是播放次数 |
【响应示例】
{
"code": 0,
"data": {
"play_count": {
"2016-12-06": 2,
"2016-12-07": 0,
"2016-12-08": 0,
"2016-12-09": 0,
"2016-12-10": 1,
"2016-12-11": 0,
"2016-12-12": 0
}
},
"msg": "",
"ts": 1524710174
}
API-30: 获取账号视频播放量
【功能描述】
该接口用于获取一段时间内,当前账号每天的播放量,包含日期和播放次数
【请求类型】
POST/GET
【请求地址】
https://${private_domain}.at.baijiayun.com/openapi/video_data/getPartnerDailyPlayCount
【请求参数】
参数 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
partner_id |
int | 是 | 合作方ID | |
product_type |
int | 否 | 0 | 1:教育直播,2,小班课,3:双师,4,企业直播,5,点播账号 |
start_date |
string | 是 | 查询起始日期,时间格式为yyyy-mm-dd,如:2017-08-01 | |
end_date |
string | 是 | 查询结束日期,时间格式为yyyy-mm-dd,如:2017-08-01 | |
timestamp |
int | 是 | 当前时间,unix时间戳 | |
sign |
string | 是 | 签名 |
【响应参数】
参数 | 类型 | 示例/默认值 | 描述 |
---|---|---|---|
play_count |
dict | key是日期,value是播放次数 |
【响应示例】
{
"code": 0,
"data": {
"play_count": {
"2016-12-06": 26,
"2016-12-07": 31,
"2016-12-08": 116,
"2016-12-09": 870,
"2016-12-10": 438,
"2016-12-11": 2,
"2016-12-12": 0
}
},
"msg": "",
"ts": 1524710214
}
API-31: 获取点播视频列表
【功能描述】
获取点播的视频列表
【请求地址】
https://${private_domain}.at.baijiayun.com/openapi/video/getVideoList
【请求类型】
POST
【请求参数】
参数 | 类型 | 是否必填 | 示例/默认值 | 描述 |
---|---|---|---|---|
partner_id |
string | 是 | 123456 | 合作方用户名 |
page_size |
int | 否 | 20 | 每页条数,不得超过1000,默认值20 |
page |
int | 否 | 1 | 页码,默认1 |
create_time |
string | 否 | 2020-01-01 10:01:01 | 默认不加上时间筛选 |
timestamp |
int | 是 | 当前时间,unix时间戳 | |
sign |
string | 是 | 签名 |
【请求示例】
curl -d 'partner_id=<partner_id>&page_size=20&page=1×tamp=<timestamp>&sign=<sign>' https://${private_domain}.at.baijiayun.com/openapi/video/getVideoList
【返回参数】
参数 | 类型 | 示例/默认值 | 描述 |
---|---|---|---|
total |
int | 100 | 视频总数 |
page |
int | 1 | 页码 |
page_size |
int | 100 | 每页条数 |
list |
array | 视频列表组成的数组 | |
video_id |
int | 123 | 视频ID |
name |
string | 视频名名称 | 视频名称 |
status |
int | 100 | 转码状态(具体值参见 获取转码状态接口) |
total_size |
int | 1000 | 视频大小(转码完才会有大小)单位:字节 |
create_time |
timestamp | 1481090337 | 添加时间 |
preface_url |
string | 封面图片地址 | |
length |
string | 1200 | 视频时长 |
publish_status |
int | 0 | 视频发布状态 0:未发布 1:已发布 |
category |
dict | 分类(无分类信息不返回) | |
category_level1_id |
int | 0 | 一级分类ID |
category_level2_id |
int | 0 | 二级分类ID |
category_level3_id |
int | 0 | 三级分类ID |
category_level4_id |
int | 0 | 四级分类ID |
category_level5_id |
int | 0 | 五级分类ID |
【返回示例】
{
"code": 0,
"data": {
"total": 43,
"page": 2,
"page_size": 20
"list": [
{
"video_id": 184548,
"status": 100,
"total_size": 65248111,
"length": 1252,
"publish_status": 1,
"name": "0.11 五十音图",
"create_time": "2018-03-19 09:43:48",
"preface_url": "http://test-img.baijiayun.com/00-upload/image-test/184548_23f7684908f4c53c9a9800034bb94aa5_98cMTfT0.jpg",
"category": {
"category_level1_id": 492,
"category_level2_id": 0,
"category_level3_id": 0,
"category_level4_id": 0,
"category_level5_id": 0
}
},
]
},
"msg": "",
"ts": 1481098005
}
API-32: 上传点播字幕文件
【功能描述】
该接口用于给一个视频上传对应的字幕文件。(支持 .vtt,srt 格式)
【请求类型】
POST/GET
【请求地址】
https://${private_domain}.at.baijiayun.com/openapi/video/uploadSubtitle
【请求参数】
参数 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
partner_id |
int | 是 | 合作方ID | |
name |
string | 是 | 字幕名称 | |
video_id |
string | 是 | 视频 id | |
subtitle |
文件 | 是 | 要上传的文件(文件不参与签名的计算) | |
timestamp |
int | 是 | 当前时间,unix时间戳 | |
sign |
string | 是 | 签名 |
【响应参数】
参数 | 类型 | 示例/默认值 | 描述 |
---|---|---|---|
subtitle_id |
string | 字幕id | |
subtitle_name |
string | 字幕名称 | |
subtitle_path |
string | 字幕文件路径 | |
create_time |
string | 字幕添加时间 |
【响应示例】
{
"code": 0,
"data": {
"subtitle_id": "262",
"subtitle_name": "字幕文件",
"subtitle_path": "https://test-img.baijiayun.com/baijiacloud/1260959_f9b20ic0.vtt",
"create_time": "2020-09-07 10:11:06"
},
"msg": "",
"ts": 1599444666
}
API-33: 获取字幕文件列表
【功能描述】
该接口用于获取一个视频下的所有字幕文件
【请求类型】
POST/GET
【请求地址】
https://${private_domain}.at.baijiayun.com/openapi/video/getSubtitleList
【请求参数】
参数 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
partner_id |
int | 是 | 合作方ID | |
video_id |
string | 是 | 视频 id | |
timestamp |
int | 是 | 当前时间,unix时间戳 | |
sign |
string | 是 | 签名 |
【响应参数】
参数 | 类型 | 示例/默认值 | 描述 |
---|---|---|---|
subtitle_id |
string | 字幕id | |
subtitle_name |
string | 字幕名称 | |
subtitle_path |
string | 字幕文件路径 | |
is_default |
string | 是否是默认字幕(0:否 1:是) | |
create_time |
string | 字幕添加时间 | |
update_time |
string | 字幕更新时间 |
【响应示例】
{
"code": 0,
"data": [
{
"subtitle_id": 262,
"subtitle_name": "字幕文件02",
"subtitle_path": "https://test-img.baijiayun.com/baijiacloud/1260959_f9b20ic0.vtt",
"is_default": 1,
"create_time": "2020-09-07 10:11:06",
"update_time": "2020-09-07 10:17:46"
}
],
"msg": "",
"ts": 1599445440
}
API-34: 更新点播字幕信息
【功能描述】
该接口用户修改已上传的字幕文件的信息,仅用于修改字幕名称
【请求类型】
POST/GET
【请求地址】
https://${private_domain}.at.baijiayun.com/openapi/video/updateSubtitle
【请求参数】
参数 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
partner_id |
int | 是 | 合作方ID | |
name |
string | 是 | 字幕名称 | |
subtitle_id |
string | 是 | 字幕 id | |
timestamp |
int | 是 | 当前时间,unix时间戳 | |
sign |
string | 是 | 签名 |
【响应示例】
{
"code": 0,
"data": null,
"msg": "",
"ts": 1599445066
}
API-35: 设置字幕为默认字幕
【功能描述】
该接口用户修改已上传的字幕为该视频的默认字幕
【请求类型】
POST/GET
【请求地址】
https://${private_domain}.at.baijiayun.com/openapi/video/setDefaultSubtitle
【请求参数】
参数 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
partner_id |
int | 是 | 合作方ID | |
video_id |
视频 id | 是 | 视频 id | |
subtitle_id |
string | 是 | 字幕 id | |
timestamp |
int | 是 | 当前时间,unix时间戳 | |
sign |
string | 是 | 签名 |
【响应示例】
{
"code": 0,
"data": null,
"msg": "",
"ts": 1599445066
}
API-36: 删除字幕文件
【功能描述】
该接口用户删除字幕文件
【请求类型】
POST/GET
【请求地址】
https://${private_domain}.at.baijiayun.com/openapi/video/deleteSubtitle
【请求参数】
参数 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
partner_id |
int | 是 | 合作方ID | |
subtitle_id |
string | 是 | 字幕 id | |
timestamp |
int | 是 | 当前时间,unix时间戳 | |
sign |
string | 是 | 签名 |
【响应示例】
{
"code": 0,
"data": null,
"msg": "",
"ts": 1599445066
}
API-37: 查询账号下一段时间内的流量并返回流量消耗明细
【功能描述】
查询一段时间内使用的流量明细。
https://${private_domain}.at.baijiayun.com/openapi/video_account/getUsedFlowDetail
【请求类型】
GET
【请求参数】
参数 | 类型 | 是否必填 | 示例/默认值 | 描述 |
---|---|---|---|---|
partner_id |
int | 是 | 123456 | 合作方用户名 |
start_date |
string | 是 | 2017-08-01 | 查询起始日期,时间格式为yyyy-mm-dd,如:2017-08-01 |
end_date |
string | 是 | 2017-08-03 | 查询结束日期,时间格式为yyyy-mm-dd,如:2017-08-01 |
timestamp |
int | 是 | 当前时间,unix时间戳 | |
sign |
string | 是 | 签名 |
【返回参数】
参数 | 类型 | 示例/默认值 | 描述 |
---|---|---|---|
flow |
int | 使用的流量(单位:字节) | |
date |
int | 时间 |
【返回示例】
{
"code": 0,
"data": {
"flow": {
"2020-11-02": 47951525,
"2020-11-03": 46933451,
"2020-11-04": 83102033,
"2020-11-05": 8977432,
"2020-11-06": 0,
"2020-11-07": 0,
"2020-11-08": 0,
"2020-11-09": 0,
"2020-11-10": 0,
"2020-11-11": 0,
"2020-11-12": 0,
"2020-11-13": 0,
"2020-11-14": 0,
"2020-11-15": 0,
"2020-11-16": 0,
"2020-11-17": 122686519,
"2020-11-18": 28080591,
"2020-11-19": 16935949,
"2020-11-20": 9557718,
"2020-11-21": 0,
"2020-11-22": 0,
"2020-11-23": 412438555,
"2020-11-24": 70825611
}
},
"msg": "",
"ts": 1606384282
}
API-38: 查询账号产品线下一天的视频流量使用明细
【功能描述】
查询账号产品线下一天的视频流量使用明细
【请求地址】
https://${private_domain}.at.baijiayun.com/openapi/video_data/getUsedFlowDetail
【请求类型】
GET
【请求参数】
参数 | 类型 | 是否必填 | 示例/默认值 | 描述 |
---|---|---|---|---|
partner_id |
int | 是 | 123456 | 合作方用户名 |
product_type |
int | 是 | 5 | 产品线类型,默认云点播(1:大班课 2:小班课 3:双师课堂 4:企业直播 5:云点播) |
date |
string | 是 | 2017-08-01 | 查询那一天的日期 (时间格式为yyyy-mm-dd,如:2017-08-01 ) |
timestamp |
int | 是 | 当前时间,unix时间戳 | |
sign |
string | 是 | 签名 | |
page |
int | 否 | 1 | 页码 |
page_size |
int | 否 | 100 | 每页的条数 |
【返回参数】
参数 | 类型 | 示例/默认值 | 描述 |
---|---|---|---|
flow |
int | 使用的流量(单位:字节) | |
video_id |
int | 视频id | |
total |
int | 一共有几条数据 |
【返回示例】
{
"code": 0,
"data": {
"total": 5,
"list": [
{
"video_id": "489126",
"flow": "6667752"
},
{
"video_id": "489188",
"flow": "824076"
}
]
},
"msg": "",
"ts": 1606273839
}
API-39: 获取账号存储空间和流量使用统计
【功能描述】
获取当前账号使用的总存储空间及流量。流量使用情况非实时的,每天统计一次。
【请求地址】
https://${private_domain}.at.baijiayun.com/openapi/video_account/getStorgeAndFlowInfo
【请求类型】
GET
【请求参数】
参数 | 类型 | 是否必填 | 示例/默认值 | 描述 |
---|---|---|---|---|
partner_id |
string | 是 | 123456 | 合作方用户名 |
timestamp |
int | 是 | 当前时间,unix时间戳 | |
sign |
string | 是 | 签名 |
【返回参数】
参数 | 类型 | 示例/默认值 | 描述 |
---|---|---|---|
flow |
int | 使用的流量(单位:字节) | |
storage |
int | 存储空间 |
【返回示例】
{
"code": 0,
"data": {
"large_class": {
"storage": 0,
"flow": 0
},
"small_class": {
"storage": 0,
"flow": 0
},
"double_teacher": {
"storage": 0,
"flow": 0
},
"business": {
"storage": 0,
"flow": 0
},
"video": {
"storage": 0,
"flow": 0
},
"weclass": {
"storage": 0,
"flow": 0
},
"doc": {
"storage": 69698
},
"total": {
"storage": 69698,
"flow": 0
}
},
"msg": "",
"ts": 1606702271
}
备注说明:large_class:大班课;small_class:小班课;double_teacher:双师课堂;business:企业直播;video:云点播;weclass:百家微课;doc:文档;total:全部
API-40: 点播视频二次转码
【功能描述】
该接口可以将点播视频进行二次转码
【请求地址】
https://${private_domain}.at.baijiayun.com/openapi/video/transcodeAgain
【请求类型】
POST
【请求参数】
参数 | 类型 | 是否必填 | 示例/默认值 | 描述 |
---|---|---|---|---|
partner_id |
int | 是 | 123456 | 合作方用户名 |
video_id |
int | 是 | 123 | 视频id |
definition |
string | 是 | 4 | 目标清晰度(16:标清 1:高清 2:超清 4:720p 8:1080p 多种清晰度用英文逗号分隔) |
format |
int | 否 | 转码格式(1:mp4 2:flv 4:m3u8 多种类型用英文逗号分隔),默认转三种 | |
timestamp |
int | 是 | 当前时间,unix时间戳 | |
sign |
string | 是 | 签名 |
【请求示例】
curl -d "video_id=<video_id>&partner_id=<partner_id>×tamp=<timestamp>&sign=<sign>" https://${private_domain}.at.baijiayun.com/openapi/video/removeDefinition
【返回参数】
参数 | 类型 | 示例/默认值 | 描述 |
---|---|---|---|
video_id |
int | 123 | 视频ID |
definition |
string | 目标清晰度(16:标清 1:高清 2:超清 4:720p 8:1080p 多种清晰度用英文逗号分隔) |
返回code为0表示成功
【返回示例】
{
"code": 0,
"data": {
"video_id": "112365",
"definition": "8",
},
"msg": "",
"ts": 1483017531
}
回调接口
1. 设置转码回调地址(点播和回放)
【接口描述】
该接口用户于设置点播和回放转码回调地址
【请求地址】
https://${private_domain}.at.baijiayun.com/openapi/video_account/setTranscodeCallbackUrl
【请求参数】
参数 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
partner_id |
int | 是 | 合作方id | |
url |
string | 是 | 回调地址,必须是http(s):// 开头 |
|
timestamp |
int | 是 | 当前时间,unix时间戳 | |
sign |
string | 是 | 签名 |
【响应参数】
参数 | 类型 | 示例/默认值 | 描述 |
---|---|---|---|
url |
string | 回调地址 |
【响应示例】
{
"code": 0,
"data": {
"url": "http://www.baidu.com"
},
"msg": "",
"ts": 1512718993
}
2. 查询转码回调地址(点播和回放)
【接口描述】
该接口用户于查询点播和回放的转码回调地址
【请求地址】
https://${private_domain}.at.baijiayun.com/openapi/video_account/getTranscodeCallbackUrl
【请求参数】
参数 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
partner_id |
int | 是 | 合作方id | |
timestamp |
int | 是 | 当前时间,unix时间戳 | |
sign |
string | 是 | 签名 |
【响应参数】
参数 | 类型 | 示例/默认值 | 描述 |
---|---|---|---|
url |
string | 日期 |
【响应示例】
{
"code": 0,
"data": {
"url": "http://www.baidu.com"
},
"msg": "",
"ts": 1512718993
}
3. 视频转码回调
【功能描述】
视频在上传完成、转码成功、转码失败时都会回调通知第三方。该请求由百家云服务端发起,客户设置回调的地址。
【请求地址】
回调地址可以设置账号级别的,也可以在获取视频上传地址时为单个视频设置回调地址。
【请求类型】
POST
【请求参数】
参数 | 类型 | 示例/默认值 | 描述 |
---|---|---|---|
video_id |
int | 123 | 云端录制视频ID |
status |
int | 20 | 视频状态(20:上传完成 30:转码失败 100:转码成功) |
preface_url |
string | 封面url,(转码成功回调才有) | |
total_size |
int | 123 | 视频大小,单位是字节 |
total_transcode_size |
int | 123 | 总视频大小(源文件+所有转码后文件)单位:字节(转码成功回调才有) |
length |
int | 123 | 视频时长,单位为秒(转码成功回调才有) |
file_md5 |
string | abcdefagea | 视频文件md5值 |
now_definition |
string | 当前已转出的清晰度,多种清晰度以英文逗号分隔 low/std/high/super/1080p(转码成功回调才有) | |
origin_definition |
string | 原始视频清晰度 low/std/high/super/1080p(转码成功回调才有) | |
qid |
string | 123456789 | 标记一次请求的唯一ID |
timestamp |
int | 1234567 | unixstamp时间戳,秒数 |
sign |
string | abcdefagea | 签名字段 |
不同类型的事件回调参数不一样,通过status字段来区分:
- 视频上传完成:
- status=20
- 回调参数(
video_id
,status
,qid
,timestamp
,sign
)
- 视频转码失败:
- status=30
- 回调参数(
video_id
,status
,qid
,timestamp
,sign
)
- 视频转码成功:
- status=100
- 回调参数(
video_id
,status
,preface_url
,total_size
,total_transcode_size
,now_definition
,origin_definition
,length
,file_md5
,qid
,timestamp
,sign
)
【请求示例】
curl -d 'partner_id=<partner_id>&video_id=<video_id>&status=<status>×tamp=<timestamp>&sign=<sign>' <user_custom_callback_url>
【返回参数】
客户处理完后应当返回
{
"code":0
}
失败的情况请返回
{
"code": 1,
"msg": "错误信息"
}
注:
- 转码成功和失败的回调,如果回调失败,会有重试机制,分别在间隔5s,30s后再重试一次。重试两次后仍然失败的不再重试。
- sign字段是用来验证权限的,其计算规则与上面介绍的sign生成规则相同。即所人的请求参数key按照字符顺序排序,再拼接起来,最后再拼上
partner_key=<partner_key>
第三方鉴权
百家云系统在很多情况下,需要和第三方系统(网站或管理系统)集成使用。 如果第三方系统希望点播权限安排由第三方自己实现,在权限数据不在百家云系统托管情况下,我们设计以下流程用来实现简单的权限认证过程。
【校验规则】
- 如果开启了第三方验证,则账号的视频原则上需要进行校验。在url后加入access_key 字段作为校验字段,将字段内的信息作为验证消息向验证地址进行校验。
- 如果开启了强制校验功能,则没有access_key字段的请求直接报错,未开启则无access_key 字段的链接可以绕过第三方校验。
- 鉴权通过可以播放,不通过跳转到失败地址或返回失败默认话术,失败地址与默认话术 为二选一,不能同时出现。
【认证流程】
- 联系百家云开启鉴权开关,登录百家云后台在《播放器设置》下的《第三方鉴权》tab下配置鉴权失败的提示
- 接入百家云点播的时候,带上access_key这个参数。鉴权规则见上文
- 百家云系统收到接口调用请求后,会向第三方认证url发送http post请求,同时把access_key参数作为post数据提交给第三方系统。由第三方系统重新验证access_key值合法性。若第三方认证通过,第三方认证url返回code为0,其他则为失败。
- 百家云根据第三方认证URL返回值判断认证是否成功:当http response状态不为200或http response的code不为0时,接口将按照后台配置的失败提示进行鉴权提示;若认证成功,则进入点播页面。
【百家云向第三方的请求参数】
参数 | 类型 | 示例/默认值 | 描述 |
---|---|---|---|
access_key |
string | fgh6789 | 鉴权参数 |
video_id |
int | 123 | 视频id |
【返回参数】
客户处理完后应当返回
{
"code":0
}
失败的情况请返回
{
"code": 1,
"msg": "错误信息"
}