产品文档 回放技术文档 回放服务端API接口

回放服务端API文档

概述

本文档主要提供直播回放相关操作的一些接口。接口都是通过计算签名(sign)来鉴权。签名的计算方式同百家云直播服务端API文档。 百家云API仅提供基础数据,客户须将数据同步到自己数据库(DB)后,通过自己的数据库(DB)来实现业务需求。

服务端API接口

API 1 : 查询直播回放信息

【功能描述】

查询直播回放信息

【请求类型】

GET / POST

【请求地址】

https://api.baijiayun.com/openapi/playback/getBasicInfo 

【请求参数】

参数 类型 是否必填 默认值 描述
partner_id int 合作方用户名
room_id int 教室号
session_id int 序列号(针对长期房间才会用到)
timestamp int 当前时间,unix时间戳
sign string 签名

【返回参数】

参数 类型 示例 描述
status int 100 回放状态码 0:回放未生成 10:回放生成中 20:转码中 30:回放生成失败 100:回放生成成功。回放未生成的没有video_id等其它信息
video_id int 123456 云端录制视频ID
name string 回放名称
length int 3600 视频时长(单位为秒)
total_size int 1024000 回放视频大小
total_transcode_size int 视频转码后文件总大小
preface_url string 回放视频封面地址
create_time int 回放生成时间

【返回示例】

{
    "code": 0,
    "data": {
        "video_id": 153582,
        "status": 100,
        "name": "playback",
        "total_size": 11353211,
        "total_transcode_size": 86501231,
        "preface_url": "http://img.gsxservice.com/00-upload/image-test/153582_622a01e29b25022bd603023bce796796_k8lHyY3z.jpg",
        "length": 620,
        "create_time": "2017-09-26 16:38:11"
    },
    "msg": "",
    "ts": 1511853895
}

API 2 : 获取回放列表

【功能描述】

获取回放列表,列表按回放的生成时间倒序排列。

【请求地址】

https://api.baijiayun.com/openapi/playback/getList

【请求类型】

GET / POST

【请求参数】

参数 类型 是否必填 示例/默认值 描述
partner_id int 123456 合作方用户名
page int 123456 页码,从1开始
page_size int 123456 每一页返回的条数,不得超过1000
crop_video int 0 是否返回 裁剪视频的回放,0:否 1:是
room_id int 123456 教室号
timestamp int 1460426400 当前时间,unix时间戳
sign string test123 签名

【响应参数】

参数 类型 示例/默认值 描述
total int 总记录条数
list array 回放信息的列表
room_id int 回放教室号
session_id int 回放序列号(只针对长期房间生成的多段回放有用)
video_id int 回放对应的视频的ID
name string 回放名称
status int 回放视频的状态 10:生成中 20:转码中 30:转码失败 100:转码成功
create_time string 回放生成时间
length int 回放视频时长
total_transcode_size int 回放视频总大小(包括原文件和转码后的文件)
play_times int 回放观看次数
play_url string 回放WEB端观看地址
preface_url string 回放视频封面地址
version int 裁剪版本,未裁剪为0

【响应示例】

{
    "code": 0,
    "data": {
        "total": 2,
        "list": [
            {
                "room_id": 17081558148393,
                "session_id": 0,
                "video_id": 145058,
                "name": "08月15日9点-新开的房间",
                "status": 100,
                "create_time": "2017-08-15 11:15:10",
                "length": 2393,
                "preface_url": "http://img.gsxservice.com/00-upload/image-test/145058_6d18d1e53ef4e710bea2b0870dacd501_zFHNXsIi.jpg",
                "total_transcode_size": 388217885,
                "play_url": "http://www.baijiayun.com/web/playback/index?classid=17081558148393&token=zY1XA5xo-Ve9cWOOu4-mn6FRxkC1ILXXlymXVSvtUO9DcyShDCjSog",
                "play_times": 0,
                "version" : 0
            },
            {
                "room_id": 17080762326145,
                "session_id": 0,
                "video_id": 143789,
                "name": "测试用户听课时长",
                "status": 100,
                "create_time": "2017-08-08 08:40:09",
                "length": 185,
                "preface_url": "http://img.gsxservice.com/00-upload/image-test/143789_6044be938668879841fbbba9c7d4f000_iq20xsrv.jpg",
                "total_transcode_size": 5155811,
                "play_url": "http://www.baijiayun.com/web/playback/index?classid=17080762326145&token=16-l26EWHR69cWOOu4-mnzLTLZYbipNslymXVSvtUO9DcyShDCjSog",
                "play_times": 0,
                "version" : 0
            }
        ]
    },
    "msg": "",
    "ts": 1503480103
}

API 3 : 获取回放token

【功能描述】

获取回放的播放token,服务端获取token后传给客户端,客户端就可以使用该token播放视频

【请求地址】

https://api.baijiayun.com/openapi/playback/getPlayerToken

【请求类型】

POST

【请求参数】

参数 类型 是否必填 默认值 描述
partner_id int 合作方用户名
room_id int 房间号
session_id int 序列号(针对长期房间才会用到)
expires_in int 过期时间,以秒为单位。如果传0则表示不过期
timestamp int 当前时间,unix时间戳
sign string 签名

【响应参数】

参数 类型 示例/默认值 描述
video_id int 回放对应的视频ID
token string 回放播放token

【响应示例】

{
    "code": 0,
    "data": {
        "video_id": 123456,
        "token": "AIEJAalkje-ekj39aflkj2"
    },
    "msg": "",
    "ts": 1484288051
}

API 4 : 批量获取回放token

【功能描述】

批量获取回放token

【请求地址】

https://api.baijiayun.com/openapi/playback/getPlayerTokenBatch

【请求类型】

POST

【请求参数】

参数 类型 是否必填 默认值 描述
partner_id int 合作方用户名
room_ids string 短期房间传{room_id},长期房间传{room_id}-{session_id},多个回放用英文逗号分隔,如:17110879095169,1711087909231-201711281
expires_in int 过期时间,以秒为单位。如果传0则表示不过期
timestamp int 当前时间,unix时间戳
sign string 签名

【响应参数】

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

返回的datakey为传入的教室号,valuetoken。 教室号不存在或未生成回放的不返回。

【响应示例】

{
    "code": 0,
    "data": {
        "17110879095169": "NxVqFJqMpfG9cWOOu4-mn3MChaCQEgnRAL8hG0UFGeDqqwd7swoRQw",
        "1711087909231-201711281": "NxVqFJqMpfG9cWOOu4-mn3MChaCQEgnRAL8hG0UFGeDqqwd7swoRQw"
    },
    "msg": "",
    "ts": 1511838752
}

API 5 : 获取长期房间云录制的序列号列表

【功能描述】

该接口用于获取一个长期直播间云录制里所有的序列号。 对于长期房间,云录制功能可以将一个直播间录制成多个回放。每个回放对应的房间号相同,但有不同的序列号。 播放回放时,可通过教室号+序列号来播放。

【请求地址】

https://api.baijiayun.com/openapi/playback/getSessionList

【请求类型】

POST

【请求参数】

参数 类型 是否必填 默认值 描述
partner_id int 合作方用户名
room_id int 房间号
timestamp int 当前时间,unix时间戳
sign string 签名

【响应参数】

参数 类型 示例/默认值 描述
session_id int 回放的序列号
video_id int 回放的视频的ID
name string 回放名称
status int 回放的状态 0:未录制 10:录制中 20:转码中 30:转码失败 100:转码成功
publish_status int 回放的发布状态 1:未屏蔽 2:已屏蔽
length int 回放时长,单位秒
total_transcode_size int 视频转码后文件总大小
preface_url string 封面地址
play_url string 播放地址
create_time int 回放的生成时间

【响应示例】

{
    "code": 0,
    "data": {
        "total": 8,
        "list": [
           {
                "session_id": 201801040,
                "video_id": 10114051,
                "name": "xypTest",
                "status": 100,
                "publish_status": 1,
                "length": 3,
                "total_transcode_size": 1829320,
                "preface_url": "http://img.baijiayun.com/00-x-upload/image/10114051_9faa4d14edbab4f7a001168b258cee74_dpbFkjoK.jpg",
                "play_url": "https://www.baijiayun.com/web/playback/index?classid=17111060177043&session_id=201801040&token=erOLkVGeYRw3S3PxCaNttWLs6cl7Y2It5iLH6AehnW9rnTNFWfwJNQ",
                "create_time": "2018-01-05 00:00:11"
            },
            {
                "session_id": 201712280,
                "video_id": 10040991,
                "name": "xypTest",
                "status": 100,
                "publish_status": 1,
                "length": 1216,
                "total_transcode_size": 827459987,
                "preface_url": "http://img.baijiayun.com/00-x-upload/image/10040991_1087fc28a23d97b2fc1d1aaa49a9d908_2kNLZFT5.jpg",
                "play_url": "https://www.baijiayun.com/web/playback/index?classid=17111060177043&session_id=201712280&token=G4ysyeUHHi83S3PxCaNttRb5e58iDTpH5iLH6AehnW9rnTNFWfwJNQ",
                "create_time": "2017-12-29 00:00:11"
            },
        ]
    },
    "msg": "",
    "ts": 1514360037
}

API 6 : 获取指定回放视频观看记录

【功能描述】

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

【请求类型】

POST

【请求地址】

https://api.baijiayun.com/openapi/video_data/getPlaybackPlayRecord

【请求参数】

参数 类型 是否必填 默认值 描述
partner_id int 合作方id
room_id int 回放教室号
session_id int 序列号(针对长期房间才会用到)
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 test123 签名

【响应参数】

参数 类型 示例 描述
total int 100 总记录条数
guid string 一次播放的唯一标志,32位字符串
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": "00128569A70D778BAFB5216E5C7F4957",
                "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": 0,
                "play_length": 45,
                "user_ip": "60.174.64.166",
                "area": "安徽 亳州"
            }
        ],
        "page": 1,
        "page_size": 100
    },
    "msg": "",
    "ts": 1507606273
}

API 7 : 设置回放发布状态

【功能描述】

该接口用于设置回放的发布状态。默认情况下,回放转码成功后会自动发布。

【请求类型】

POST

【请求地址】

https://api.baijiayun.com/openapi/playback/setPublishStatus

【请求参数】

参数 类型 是否必填 默认值 描述
partner_id int 合作方id
room_id int 回放教室号
session_id int 长期房间的序列号,普通房间不需要传
status int 发布状态 1:发布 2:屏蔽
timestamp int 当前时间,unix时间戳
sign string test123 签名

【响应参数】

参数 类型 示例/默认值 描述
status int 发布状态 1:发布 2:屏蔽

【响应示例】

{
    "code": 0,
    "data": {
        "status": 1
    },
    "msg": "",
    "ts": 1502293140
}

API 8 : 删除回放

【功能描述】

删除回放

【请求类型】

POST

【请求地址】

https://api.baijiayun.com/openapi/playback/delete 

【请求参数】

参数 类型 是否必填 默认值 描述
partner_id int 合作方用户名
room_id int 教室号
session_id int 序列号(针对长期房间才会用到)
version int 版本号(针对裁剪回放才会用到)
timestamp int 当前时间,unix时间戳
sign string 签名

【返回参数】

返回code=0表示删除成功,否则失败

【返回示例】

{
    "code": 0,
    "data": null,
    "msg": "",
    "ts": 1511853895
}

API 9 : 更新回放名称

【功能描述】

更新回放视频名称

【请求类型】

POST

【请求地址】

https://api.baijiayun.com/openapi/playback/update 

【请求参数】

参数 类型 是否必填 默认值 描述
partner_id int 合作方用户名
room_id int 教室号
session_id int 序列号(针对长期房间才会用到)
name string 回放名称
timestamp int 当前时间,unix时间戳
sign string 签名

【返回参数】

返回code=0表示更新成功,否则失败

【返回示例】

{
    "code": 0,
    "data": null,
    "msg": "",
    "ts": 1511853895
}

回放视频转码回调

CB-API-1: 直播回放生成及转码回调

【功能描述】

如果客户设置了直播回调地址,在直播回放视频开始生成、转码成功、转码失败时都会回调通知客户。

该请求由百家云服务端发起,回调地址由客户来设置。

【请求地址】

回调的地址可以通过API接口来设置,设置方式见 设置转码回调地址

【请求类型】

POST

【请求参数】

参数 类型 示例 描述
room_id int 12345678 房间ID
session_id int 12345678 长期房间的序列号,普通房间无此参数
video_id int 123 云端录制视频ID
status int 20 视频状态(20:开始生成回放 30:转码失败 100:转码成功
preface_url string 封面url,(转码成功回调才有)
total_transcode_size int 123 总视频大小(源文件+所有转码后文件)单位:字节(转码成功回调才有)
total_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
    • 回调参数(room_id, video_id, status, qid, timestamp, sign
  2. 视频转码失败:
    • status=30
    • 回调参数(room_id, video_id, status, qid, timestamp, sign
  3. 视频转码成功:
    • status=100
    • 回调参数(room_id, video_id, status, preface_url, total_size, total_transcode_size, length, file_md5, now_definition, origin_definition, qid, timestamp, sign

如果是长期房间,因为一个房间会生成多断回放,回调中除了room_id还会有一个session_id

sign字段是用来验证权限的,其计算规则与上面介绍的sign生成规则相同。即所有的请求参数key按照字符顺序排序,再拼接起来,最后再拼上partner_key=<partner_key>,然后进行md5加密得出。

【响应参数】

  • 客户处理完后,成功情况应当返回
{
    "code":0
}
  • 失败的情况请返回
{
    "code": 1,
    "msg": "错误信息"
}

观看回放页面的方式

web端观看回放

用户可以使用iframe的形式嵌入我们提供的回放地址。回放地址是:

http://www.baijiayun.com/web/playback/index?classid=1234567890&token=<token>

对于长期房间生成的回放,除教室号外还需要一个序列号。回放地址是:

http://www.baijiayun.com/web/playback/index?classid=1234567890&session_id=12345&token=<token>

其中classid为教室号。

token的生成请参考获取回放token

调用示例

<iframe src="http://www.baijiayun.com/web/playback/index?classid=1234567890&token=xxxxxx"></iframe>

回放sdk接入

安卓回放sdk集成文档

iOS回放sdk集成文档