产品文档 点播技术文档 点播服务端API接口

点播服务端API接口文档

概述

本文档为百家云点播服务端的API文档,用户可以通过文档中提供的API接口上传及管理点播视频。 百家云API仅提供基础数据,客户须将数据同步到自己数据库(DB)后,通过自己的数据库(DB)来实现业务需求。

约定&术语

常见基本约定以及平台术语见下表:

内容 约定
传输协议 HTTPS
提交方式 GET/POST
接口返回数据格式 json
字符编码 UTF8
接口域名 https://api.baijiayun.com/
partner_id 合作方身份的标识, 由百家云平台分配
partner_key 合作方密钥,由百家云分配,用于计算服务端API接口的签名,用户可以登录百家云网站后台获取。

使用流程

合作方接入百家视频云开放平台有如下几个步骤:

  1. 注册开发者账号
    • 注册后可以登录百家云后台获取partner_idpartner_key
  2. 获取视频上传地址
    • 根据百家视频云提供的API接口来获取上传地址
  3. 上传视频
    • 将视频文件上传到获取上传地址接口所返回的url
  4. 接收转码回调
    • 联系百家云技术,设置转码回调地址,接收转码状态的回调
  5. 播放视频
    • 使用方可以集成我们的播放器来播放视频

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&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://api.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://api.baijiayun.com/openapi/partner/createkey

【返回示例】

{
      "code": 0,
      "data": {
          "partner_key": "rLkIPaQjxSwRQmC/ITnHh8i2rifmmbFIVsYw03SSi24zAnkrAd0ZNb2rcTzI2avy7+AmNJDdLmzU89zKUAP3Xg=="
      },
      "msg":""
}

API-2: 获取视频/音频上传地址

【功能描述】

通过此接口,可以初始化一个视频/音频,并获取上传地址。

【请求地址】

https://api.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 签名

需要注意

  1. 如果目标清晰度是标清和超清,但是源文件的清晰度只是标清级别,这时只会转码出标清视频/音频。
  2. 如果目标清晰度选的超清一个,但是源文件的清晰度达不到超清级别,这时会转码出与源文件同样清晰度的视频/音频。
  3. 如果上传的是音频,需要传参数 audio_with_view = 1 来对音频进行特殊转码。

【请求示例】

curl -d "file_name=<file_name>&partner_id=<partner_id>×tamp=<timestamp>&sign=<sign>" https://api.baijiayun.com/openapi/video/getUploadUrl

【返回参数】

参数 类型 示例/默认值 描述
video_id int 1234 视频/音频ID
upload_url string url 视频/音频上传地址

说明:

  1. video_id 为该视频/音频的id,后续获取转码状态、播放等都需要使用该id
  2. upload_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"
}

说明:

  1. 此接口code返回1表示成功

API-4: 获取断点续传地址

【功能描述】

视频分片上传时,如果只上传了一部分中止了,可以通过此接口获取续传的地址,已上传的那部分不用再上传。

【请求地址】

https://api.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://api.baijiayun.com/openapi/video/getResumeUploadUrl

【返回参数】

参数 类型 示例/默认值 描述
video_id int 1234 视频ID
upload_url string url 视频上传地址
upload_size int 1000 已上传的大小

说明:

  1. video_id 为该视频的id,后续获取转码状态、播放等都需要使用该id
  2. upload_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://api.baijiayun.com/openapi/video/getStatus

【请求类型】

POST

【请求参数】

参数 类型 是否必填 示例/默认值 描述
partner_id int 123456 合作方用户名
video_id int 123 视频id
timestamp int 当前时间,unix时间戳
sign string 签名

说明:

  1. 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://api.baijiayun.com/openapi/video/getStatus

【返回示例】

{
  "code": 0,
  "data": {
    "status": 100,
    "info": "转码成功"
  },
  "msg": ""
}

API-6: 获取指定ID视频信息

【功能描述】

获取指定ID的视频信息(不包括已删除的视频)

【请求地址】

https://api.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://api.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 分类名

返回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://api.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://api.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://api.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 多种清晰度用英文逗号分隔)
timestamp int 当前时间,unix时间戳
sign string 签名

【请求示例】

curl -d "video_id=<video_id>&partner_id=<partner_id>×tamp=<timestamp>&sign=<sign>" https://api.baijiayun.com/openapi/video/removeDefinition

【返回参数】

参数 类型 示例/默认值 描述
video_id int 123 视频ID
definition string 4 | 目标清晰度(16:标清 1:高清 2:超清 4:720p 8:1080p 多种清晰度用英文逗号分隔)

返回code为0表示成功

【返回示例】

{
    "code": 0,
    "data": {
        "video_id": "112365",
        "definition": "8"
    },
    "msg": "",
    "ts": 1483017531
}

API-9: 视频二次转码

【功能描述】

如果视频初始化时只指了某几种清晰度,后面需要转其它清晰度,则可以调用此接口

【请求地址】

https://api.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 string 转码格式(1:mp4 2:flv 4:m3u8 多种格式用英文逗号分隔)默认是3种格式都转
timestamp int 当前时间,unix时间戳,当前秒数(注:不是毫秒)
sign string 签名

【请求示例】

curl -d "video_id=<video_id>&partner_id=<partner_id>×tamp=<timestamp>&sign=<sign>" https://api.baijiayun.com/openapi/video/transcodeAgain

【返回参数】

参数 类型 示例/默认值 描述
video_id int 123 视频ID
definition string 4 | 目标清晰度(16:标清 1:高清 2:超清 4:720p 8:1080p 多种清晰度用英文逗号分隔)

返回code为0表示成功

【返回示例】

{
    "code": 0,
    "data": {
        "video_id": "112365",
        "definition": "8"
    },
    "msg": "",
    "ts": 1483017531
}

API-10: 更新视频信息

【功能描述】

该接口可以更新视频信息,目前只有名称可以更新

【请求地址】

https://api.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://api.baijiayun.com/openapi/video/update

【返回参数】

参数 类型 示例/默认值 描述
video_id int 123 成功更新的视频的id

返回code为0表示删除成功

【返回示例】

{
    "code": 0,
    "data": {
        "video_id": 123
    },
    "msg": "",
    "ts": 1481023553
}

API-11: 删除视频

【功能描述】

删除视频

【请求地址】

https://api.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://api.baijiayun.com/openapi/video/delete

【返回参数】

参数 类型 示例/默认值 描述
video_id int 123 成功删除的视频的id

返回code为0表示删除成功

【返回示例】

{
    "code": 0,
    "data": {
        "video_id": 123
    },
    "msg": "",
    "ts": 1481023553
}

API-12: 获取所有分类

【功能描述】

该接口用于获取所有的分类信息

【请求地址】

https://api.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://api.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://api.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://api.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://api.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://api.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://api.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://api.baijiayun.com/openapi/video/deleteCategory

【返回参数】

参数 类型 示例/默认值 描述
category_id int 12345 分类ID

【返回示例】

{
    "code": 0,
    "data": {
        "category_id": 143
    },
    "msg": "",
    "ts": 1481094171
}

API-16: 获取指定分类下的视频

【功能描述】

获取指定分类下的视频,如果是一级分类ID,则返回挂在该分类下的视频及挂在该分类下的二级分类里的视频

【请求地址】

https://api.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://api.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 视频发布状态 0:未发布 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://api.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://api.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://api.baijiayun.com/openapi/video/getPlayerToken

【请求类型】

POST

【请求参数】

参数 类型 是否必填 示例/默认值 描述
partner_id string 123456 合作方用户名
video_id int 12345 视频ID
expires_in int 3600 过期时间,以秒为单位。如果传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://api.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 签名

【返回参数】

参数 类型 示例/默认值 描述
token string abcedfe 视频ID

【返回示例】

{
    "code": 0,
    "data": {
        "123": "cDrVEUojhpK9cWOOu4-mnyeqzmxQy0p0kJaEZbQ96bg",
        "456": "rwkHdiEutT29cWOOu4-mnyeqzmxQy0p0kJaEZbQ96bg"
    },
    "msg": "",
    "ts": 1487040857
}

API-20: 获取账号套餐使用量

【功能描述】

获取当前账号使用的总存储空间及流量。流量使用情况非实时的,每天统计一次。

【请求地址】

https://api.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://api.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 签名

注:

  1. 查询的起始时间和结束时间不能跨月份。

【返回参数】

参数 类型 示例/默认值 描述
flow int 使用的流量(单位:字节)

【返回示例】

{
    "code": 0,
    "data": {
        "flow": 2992965600,
    },
    "msg": "",
    "ts": 1501739877
}

API-22: 查询账号一段时间内使用的流量

【功能描述】

查询整体账号一段时间内使用的总流量。 注:流量的统计不是实时的,每天统计一次。

【请求地址】

https://api.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://api.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其中的一种或多种
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"
            }
        }
    },
    "msg": "",
    "ts": 1497951081
}

API-24: 获取指定视频观看记录

【功能描述】

该接口用于获取指定回放视频一段时间内的的详细播放记录,每次播放都会有一条记录。

【请求类型】

POST

【请求地址】

https://api.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://api.baijiayun.com/openapi/video_data/exportVideoReportBatch

【请求参数】

参数 类型 是否必填 默认值 描述
partner_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
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://api.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://api.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://api.baijiayun.com/openapi/video_data/getVideoPlayCountRank

【请求参数】

参数 类型 是否必填 默认值 描述
partner_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 签名

【响应参数】

参数 类型 示例/默认值 描述
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://api.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://api.baijiayun.com/openapi/video_data/getPartnerDailyPlayCount

【请求参数】

参数 类型 是否必填 默认值 描述
partner_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": 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
}

回调接口

1. 设置转码回调地址(点播和回放)

【接口描述】

该接口用户于设置点播和回放转码回调地址

【请求地址】

https://api.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://api.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字段来区分:

  1. 视频上传完成:
    • status=20
    • 回调参数(video_id, status,qid, timestamp, sign
  2. 视频转码失败:
    • status=30
    • 回调参数(video_id, status,qid, timestamp, sign
  3. 视频转码成功:
    • 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>