channelPlayback
1、将点播中的视频添加到视频库
描述
将点播中的视频添加到视频库
接口地址(仅做说明使用):https://api.polyv.net/live/v3/channel/playback/add
调用约束
1、接口调用有频率限制,详细请查看,调用常见异常,详细请查看
2、点播视频得设置标签为频道号,多个用英文逗号分隔
单元测试
@Test
public void testAddChannelVideoPlayback() throws Exception, NoSuchAlgorithmException {
LiveCreateChannelVideoPlaybackRequest liveCreateChannelVideoPlaybackRequest =
new LiveCreateChannelVideoPlaybackRequest();
LiveCreateChannelVideoPlaybackResponse liveCreateChannelVideoPlaybackResponse;
try {
liveCreateChannelVideoPlaybackRequest.setChannelId(getAloneChannelId())
.setVideoId("1b448be323f85566b217d3988dbb35a8_1")
.setListType("vod")
.setSetAsDefault("Y");
liveCreateChannelVideoPlaybackResponse = new LiveChannelPlaybackServiceImpl().addChannelVideoPlayback(
liveCreateChannelVideoPlaybackRequest);
Assert.assertNotNull(liveCreateChannelVideoPlaybackResponse);
if (liveCreateChannelVideoPlaybackResponse != null) {
//to do something ......
log.debug("测试将点播中的视频添加到视频库成功{}", JSON.toJSONString(liveCreateChannelVideoPlaybackResponse));
}
} catch (PloyvSdkException e) {
//参数校验不合格 或者 请求服务器端500错误,错误信息见PloyvSdkException.getMessage()
log.error(e.getMessage(), e);
// 异常返回做B端异常的业务逻辑,记录log 或者 上报到ETL 或者回滚事务
throw e;
} catch (Exception e) {
log.error("SDK调用异常", e);
throw e;
}
}
单元测试说明
1、请求正确,返回LiveCreateChannelVideoPlaybackResponse对象,B端依据此对象处理业务逻辑;
2、请求参数校验不合格,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 输入参数 [xxx.chat.LivexxxRequest]对象校验失败,失败字段 [pic不能为空 / msg不能为空] ]
3、服务器处理异常,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 保利威请求返回数据错误,请求流水号:66e7ad29fd04425a84c2b2b562d2025b,错误原因: invalid signature. ]
请求入参描述
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| channelId | true | String | 频道号 |
| videoId | true | String | 要添加为回放的的点播视频【对应api文档的vid字段】 |
| listType | false | String | playback-回放列表,vod-点播列表; |
| setAsDefault | false | String | 添加到视频库列表中的位置,默认为N Y:回放列表中置顶 N:回放列表中置底 |
| appId | false | String | POLYV用户APP_ID,多账号调用时该参数必填(即调用了initMultiAccount()设置多账号调用),通过注册保利威官网获取,路径:官网->登录->直播(开发设置) |
| appSecret | false | String | POLYV用户APP_SECRET,多账号调用时该参数必填(即调用了initMultiAccount()设置多账号调用),通过注册保利威官网获取,路径:官网->登录->直播(开发设置) |
返回对象描述
| 参数名 | 类型 | 说明 |
|---|---|---|
| videoId | String | 直播系统生成的id |
| videoPoolId | String | 点播视频vid |
| userId | String | 点播后台用户id |
| channelId | String | 回放视频对应的直播频道号 |
| title | String | 视频标题 |
| firstImage | String | 视频首图 |
| duration | String | 视频长度,如:00:00:30 |
| myBr | String | 默认视频的播放清晰度,1为流畅,2为高清,3为超清 |
| qid | String | 访客信息收集id |
| seed | String | 视频加密状态,1表示为加密状态,0为非加密 |
| createdTime | Date | 添加为回放视频的日期 |
| lastModified | Date | 视频最后修改日期 |
| url | String | 视频播放地址,注:如果视频为加密视频,则此地址无法访问 |
| channelSessionId | String | 用于PPT请求数据,与PPT直播的回放相关,普通直播回放值为null |
| mergeInfo | String | 视频合并信息 |
| startTime | String | 直播开始时间 |
| liveType | String | 回放视频的场景类型 |
2、异步批量转存录制文件到点播
描述
异步批量转存录制文件到点播
接口地址(仅做说明使用):https://api.polyv.net/live/v3/channel/record/convert
调用约束
1、接口调用有频率限制,详细请查看,调用常见异常,详细请查看
单元测试
@Test
public void testConvertChannelVideoListAsync() throws Exception, NoSuchAlgorithmException {
LiveConvertChannelVideoListAsyncRequest liveConvertChannelVideoListAsyncRequest =
new LiveConvertChannelVideoListAsyncRequest();
Boolean liveConvertChannelVideoResponse;
try {
liveConvertChannelVideoListAsyncRequest.setChannelId("1951952")
.setFileIds("dfcfabd4e3db60892b625aeddf80b242,4329a8920588b257c3d66414bd37f8d8")
.setFileName("删除-直播录制转点播")
.setCataId(null)
.setCallbackUrl(null);
liveConvertChannelVideoResponse = new LiveChannelPlaybackServiceImpl().convertChannelVideoListAsync(
liveConvertChannelVideoListAsyncRequest);
Assert.assertNotNull(liveConvertChannelVideoResponse);
if (liveConvertChannelVideoResponse) {
//to do something ......
log.debug("测试异步批量转存录制文件到点播,具体是否成功以回调为准");
}
} catch (PloyvSdkException e) {
//参数校验不合格 或者 请求服务器端500错误,错误信息见PloyvSdkException.getMessage()
log.error(e.getMessage(), e);
// 异常返回做B端异常的业务逻辑,记录log 或者 上报到ETL 或者回滚事务
throw e;
} catch (Exception e) {
log.error("SDK调用异常", e);
throw e;
}
}
单元测试说明
1、请求正确,返回Boolean对象,B端依据此对象处理业务逻辑;
2、请求参数校验不合格,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 输入参数 [xxx.chat.LivexxxRequest]对象校验失败,失败字段 [pic不能为空 / msg不能为空] ]
3、服务器处理异常,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 保利威请求返回数据错误,请求流水号:66e7ad29fd04425a84c2b2b562d2025b,错误原因: invalid signature. ]
请求入参描述
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| channelId | true | String | 频道号 |
| fileIds | true | String | 要转存的录制视频文件id,多个id用英文逗号,分隔 |
| fileName | false | String | 转存后的文件名,目前暂不支持传多个文件名 |
| cataId | false | Long | 转存到点播的目录id,默认为点播的根目录id |
| callbackUrl | false | String | 转存成功时候回调通知的url,通知的相关参数见附录 |
| appId | false | String | POLYV用户APP_ID,多账号调用时该参数必填(即调用了initMultiAccount()设置多账号调用),通过注册保利威官网获取,路径:官网->登录->直播(开发设置) |
| appSecret | false | String | POLYV用户APP_SECRET,多账号调用时该参数必填(即调用了initMultiAccount()设置多账号调用),通过注册保利威官网获取,路径:官网->登录->直播(开发设置) |
返回对象描述
true为提交成功,false为提交失败,具体转存是否成功以回调为准
3、异步合并直播录制文件
描述
异步合并直播录制文件
接口地址(仅做说明使用):https://api.polyv.net/live/v3/channel/record/merge
调用约束
1、接口调用有频率限制,详细请查看,调用常见异常,详细请查看
单元测试
@Test
public void testMergeChannelVideoAsync() throws Exception, NoSuchAlgorithmException {
LiveMergeChannelVideoAsyncRequest liveMergeChannelVideoAsyncRequest = new LiveMergeChannelVideoAsyncRequest();
Boolean liveMergeChannelVideoAsyncResponse;
try {
liveMergeChannelVideoAsyncRequest.setChannelId("1951952")
.setFileIds("dfcfabd4e3db60892b625aeddf80b242,4329a8920588b257c3d66414bd37f8d8")
.setFileName("测试合并-可删除")
.setCallbackUrl(null)
.setAutoConvert("Y")
.setMergeMp4("Y");
liveMergeChannelVideoAsyncResponse = new LiveChannelPlaybackServiceImpl().mergeChannelVideoAsync(
liveMergeChannelVideoAsyncRequest);
Assert.assertTrue(liveMergeChannelVideoAsyncResponse);
if (liveMergeChannelVideoAsyncResponse) {
//to do something ......
log.debug("测试异步合并直播录制文件,具体是否成功以回调为准");
}
} catch (PloyvSdkException e) {
//参数校验不合格 或者 请求服务器端500错误,错误信息见PloyvSdkException.getMessage()
log.error(e.getMessage(), e);
// 异常返回做B端异常的业务逻辑,记录log 或者 上报到ETL 或者回滚事务
throw e;
} catch (Exception e) {
log.error("SDK调用异常", e);
throw e;
}
}
单元测试说明
1、请求正确,返回Boolean对象,B端依据此对象处理业务逻辑;
2、请求参数校验不合格,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 输入参数 [xxx.chat.LivexxxRequest]对象校验失败,失败字段 [pic不能为空 / msg不能为空] ]
3、服务器处理异常,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 保利威请求返回数据错误,请求流水号:66e7ad29fd04425a84c2b2b562d2025b,错误原因: invalid signature. ]
请求入参描述
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| channelId | true | String | 频道号 |
| fileIds | true | String | 要合并的录制视频文件ID,多个id用英文逗号,分隔,可通过调用查询视频库列表获取fileId |
| fileName | false | String | 合并后的视频的文件名 |
| callbackUrl | false | String | 合并成功或失败回调的url,可以带上自定义参数 |
| autoConvert | false | String | 传入Y,自动转存到对应点播分类下(直播回放-频道号-场次) |
| mergeMp4 | false | String | 传Y合并MP4文件,传N或者不传合并m3u8文件 |
| appId | false | String | POLYV用户APP_ID,多账号调用时该参数必填(即调用了initMultiAccount()设置多账号调用),通过注册保利威官网获取,路径:官网->登录->直播(开发设置) |
| appSecret | false | String | POLYV用户APP_SECRET,多账号调用时该参数必填(即调用了initMultiAccount()设置多账号调用),通过注册保利威官网获取,路径:官网->登录->直播(开发设置) |
返回对象描述
true为提交成功,false为提交失败,具体合并是否成功以回调为准
回调说明
该接口为异步处理,如果需要获取转存的结果,可以在请求接口时提交callbackUrl 参数,在程序转存成功或失败后,会对callbackUrl 进行回调通知
| 参数名 | 类型 | 说明 |
|---|---|---|
| status | String | 接口处理结果,取值:success(成功),error(出错) |
| code | String | 错误码,userExpired-用户已过期;spaceOverSize-点播空间不足;unknown-未知异常 |
| userId | String | 用户id |
| channelId | String | 频道号 |
| fileId | String | 转存的文件ID |
| sign | String | 校验的加密字符串,生成的规则md5(AppSecret+timestamp),AppSecret是直播系统的用密匙 |
| timestamp | String | 13位毫秒时间戳 |
4、查询频道录制视频信息
描述
查询频道录制视频信息
接口地址(仅做说明使用):https://api.polyv.net/live/v2/channels/%s/recordFiles
调用约束
1、接口调用有频率限制,详细请查看,调用常见异常,详细请查看
单元测试
@Test
public void testListChannelVideo() throws Exception, NoSuchAlgorithmException {
LiveChannelVideoListRequest liveChannelVideoListRequest = new LiveChannelVideoListRequest();
LiveChannelVideoListResponse liveChannelVideoListResponse;
try {
liveChannelVideoListRequest.setChannelId("1951952")
.setStartDate(getDate(2020, 1, 1))
.setEndDate(getDate(2020, 10, 14))
.setSessionIds("fs4j2z8wcb,fs8p8eso44");
liveChannelVideoListResponse = new LiveChannelPlaybackServiceImpl().listChannelVideo(
liveChannelVideoListRequest);
Assert.assertNotNull(liveChannelVideoListResponse);
if (liveChannelVideoListResponse != null) {
//to do something ......
log.debug("查询频道录制视频信息成功{}", JSON.toJSONString(liveChannelVideoListResponse));
}
} catch (PloyvSdkException e) {
//参数校验不合格 或者 请求服务器端500错误,错误信息见PloyvSdkException.getMessage()
log.error(e.getMessage(), e);
// 异常返回做B端异常的业务逻辑,记录log 或者 上报到ETL 或者回滚事务
throw e;
} catch (Exception e) {
log.error("SDK调用异常", e);
throw e;
}
}
单元测试说明
1、请求正确,返回LiveChannelVideoListResponse对象,B端依据此对象处理业务逻辑;
2、请求参数校验不合格,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 输入参数 [xxx.chat.LivexxxRequest]对象校验失败,失败字段 [pic不能为空 / msg不能为空] ]
3、服务器处理异常,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 保利威请求返回数据错误,请求流水号:66e7ad29fd04425a84c2b2b562d2025b,错误原因: invalid signature. ]
请求入参描述
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| userId | false | String | POLYV用户ID,多账号调用时该参数必填(即调用了initMultiAccount()设置多账号调用),通过注册保利威官网获取,路径:官网->登录->直播(开发设置) |
| channelId | true | String | 需要设置频道详情的频道号,例如:1938028 |
| startDate | false | Date | 开始日期(录制生成的日期),格式为:yyyy-MM-dd |
| endDate | false | Date | 结束日期,格式为:yyyy-MM-dd |
| sessionIds | false | String | 场次ID,多个用英文逗号分割(仅查询转存文件来源为频道录制的视频) |
| appId | false | String | POLYV用户APP_ID,多账号调用时该参数必填(即调用了initMultiAccount()设置多账号调用),通过注册保利威官网获取,路径:官网->登录->直播(开发设置) |
| appSecret | false | String | POLYV用户APP_SECRET,多账号调用时该参数必填(即调用了initMultiAccount()设置多账号调用),通过注册保利威官网获取,路径:官网->登录->直播(开发设置) |
返回对象描述
| 参数名 | 类型 | 说明 |
|---|---|---|
| channelVedioInfos | Array | 视频库视频信息【详见ChannelVedioInfo参数描述】 |
ChannelVedioInfo参数描述
| 参数名 | 类型 | 说明 |
|---|---|---|
| fileId | String | 录制文件id |
| channelId | String | 频道号 |
| url | String | 录制文件地址,优先返回mp4,若没有MP4会返回m3u8 |
| startTime | Date | 开始录制时间 |
| endTime | Date | 结束录制时间 |
| fileSize | Long | 录制文件大小(单位:字节) |
| duration | Integer | 时长(单位:秒) |
| bitrate | Integer | 录制文件码率(单位:字节) |
| resolution | String | 分辨率 |
| channelSessionId | String | 直播的场次id |
| fileName | String | 录制文件名称 |
| daysLeft | Integer | 录制文件剩余天数,大于0:剩余天数,-1:永久,不会返回过期的录制文件记录 |
| origin | String | 录制文件来源 manual:手动录制 auto:自动录制 |
| originSessionId | String | 原始直播场次ID 当该录制文件为手动录制或自动录制时就等于当前直播场次ID |
| recordFileType | String | 录制文件类型 complete:完整回放,part:自动录制_片段,merge:手动合并,clip:裁剪 |
5、查询视频库列表
描述
查询视频库列表
接口地址(仅做说明使用):https://api.polyv.net/live/v2/channel/recordFile/%s/playback/list
调用约束
1、接口调用有频率限制,详细请查看,调用常见异常,详细请查看
单元测试
@Test
public void testListChannelVideoLibrary() throws Exception, NoSuchAlgorithmException {
LiveListChannelVideoLibraryRequest liveListChannelVideoLibraryRequest =
new LiveListChannelVideoLibraryRequest();
LiveListChannelVideoLibraryResponse liveListChannelVideoLibraryResponse;
try {
liveListChannelVideoLibraryRequest.setChannelId(super.createChannel())
.setListType("playback");
liveListChannelVideoLibraryResponse = new LiveChannelPlaybackServiceImpl().listChannelVideoLibrary(
liveListChannelVideoLibraryRequest);
Assert.assertNotNull(liveListChannelVideoLibraryResponse);
if (liveListChannelVideoLibraryResponse != null) {
//to do something ......
log.debug("测试查询视频库列表成功{}", JSON.toJSONString(liveListChannelVideoLibraryResponse));
}
} catch (PloyvSdkException e) {
//参数校验不合格 或者 请求服务器端500错误,错误信息见PloyvSdkException.getMessage()
log.error(e.getMessage(), e);
// 异常返回做B端异常的业务逻辑,记录log 或者 上报到ETL 或者回滚事务
throw e;
} catch (Exception e) {
log.error("SDK调用异常", e);
throw e;
}
}
单元测试说明
1、请求正确,返回LiveListChannelVideoLibraryResponse对象,B端依据此对象处理业务逻辑;
2、请求参数校验不合格,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 输入参数 [xxx.chat.LivexxxRequest]对象校验失败,失败字段 [pic不能为空 / msg不能为空] ]
3、服务器处理异常,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 保利威请求返回数据错误,请求流水号:66e7ad29fd04425a84c2b2b562d2025b,错误原因: invalid signature. ]
请求入参描述
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| channelId | true | String | 频道号 |
| listType | false | String | playback-回放列表,vod-点播列表;默认普通直播场景为vod,三分屏为playback |
| sessionIds | false | String | 场次ID,多个用英文逗号分割(仅查询转存文件来源为频道录制的视频) |
| currentPage | false | Integer | 页数,默认为1【对应api文档的page字段】 |
| pageSize | false | Integer | 每页显示的数据条数,默认每页显示20条数据 |
| appId | false | String | POLYV用户APP_ID,多账号调用时该参数必填(即调用了initMultiAccount()设置多账号调用),通过注册保利威官网获取,路径:官网->登录->直播(开发设置) |
| appSecret | false | String | POLYV用户APP_SECRET,多账号调用时该参数必填(即调用了initMultiAccount()设置多账号调用),通过注册保利威官网获取,路径:官网->登录->直播(开发设置) |
返回对象描述
| 参数名 | 类型 | 说明 |
|---|---|---|
| contents | Array | 视频库视频信息【详见ChannelVideoLibrary参数描述】 |
| pageSize | Integer | 每页显示的数据条数,默认每页显示20条数据 |
| currentPage | Integer | 当前页【对应api文档的pageNumber字段】 |
| totalItems | Integer | 记录总条数 |
| totalPage | Integer | 总页数【对应api文档的totalPages字段】 |
ChannelVideoLibrary参数描述
| 参数名 | 类型 | 说明 |
|---|---|---|
| videoId | String | 直播系统生成的id |
| videoPoolId | String | 点播视频vid |
| userId | String | 点播后台用户id |
| channelId | String | 回放视频对应的直播频道号 |
| title | String | 视频标题 |
| firstImage | String | 视频首图 |
| duration | String | 视频长度,如:00:27:10 |
| myBr | Integer | 默认视频的播放清晰度 1:流畅 2:高清 3:超清 |
| qid | String | 访客信息收集id |
| seed | Integer | 视频加密状态,1表示为加密状态,0为非加密 |
| createdTime | Date | 添加为回放视频的日期 |
| lastModified | Date | 视频最后修改日期 |
| asDefault | String | 是否为默认播放视频,值为Y/N |
| url | String | 视频播放地址,注:如果视频为加密视频,则此地址无法访问 |
| channelSessionId | String | 用于PPT请求数据,与PPT直播的回放相关,普通直播回放值为null |
| mergeInfo | String | 视频合并信息,后续补充 |
| startTime | Date | 直播开始时间 |
| liveType | String | alone:活动直播,ppt:三分屏,topclass:大班课,seminar:研讨会 |
| ordertime | Integer | 关联点播视频的排序字段 |
| rank | Integer | 排序值,值越大优先级越高 |
| width | Integer | 视频宽度 |
| height | Integer | 视频高度 |
| status | String | 关联点播视频的状态 |
| fileUrl | String | 视频地址 |
| fileId | String | 回放视频转存前的暂存fileId |
| origin | String | manual:手动录制,auto:自动录制,merge:合并,clip:裁剪 |
| callbackUrl | String | 转存视频时设置的回调地址 |
| errorCount | Integer | 处理失败的次数 |
| lang | String | zh_CN:中文,EN:英文 |
| videoIdEN | String | 英文回放videoId |
| enFileUrl | String | 英文回放文件地址 |
| watchUrl | String | 观看回放视频的地址 |
| originSessionId | String | 来源场次Id |
6、查询频道直播场次信息
描述
查询频道直播场次信息
接口地址(仅做说明使用):https://api.polyv.net/live/v3/channel/session/list
调用约束
1、接口调用有频率限制,详细请查看,调用常见异常,详细请查看
单元测试
@Test
public void testListChannelSessionInfo() throws Exception, NoSuchAlgorithmException {
LiveListChannelSessionInfoRequest liveListChannelSessionInfoRequest = new LiveListChannelSessionInfoRequest();
LiveListChannelSessionInfoResponse liveListChannelSessionInfoResponse;
try {
Calendar instance = Calendar.getInstance();
instance.set(2020, 10, 1);
liveListChannelSessionInfoRequest.setChannelId(createChannel())
.setStartDate(instance.getTime())
.setEndDate(new Date())
.setCurrentPage(1);
liveListChannelSessionInfoResponse = new LiveChannelPlaybackServiceImpl().listChannelSessionInfo(
liveListChannelSessionInfoRequest);
Assert.assertNotNull(liveListChannelSessionInfoResponse);
if (liveListChannelSessionInfoResponse != null) {
//to do something ......
log.debug("测试查询频道直播场次信息成功{}", JSON.toJSONString(liveListChannelSessionInfoResponse));
}
} catch (PloyvSdkException e) {
//参数校验不合格 或者 请求服务器端500错误,错误信息见PloyvSdkException.getMessage()
log.error(e.getMessage(), e);
// 异常返回做B端异常的业务逻辑,记录log 或者 上报到ETL 或者回滚事务
throw e;
} catch (Exception e) {
log.error("SDK调用异常", e);
throw e;
}
}
单元测试说明
1、请求正确,返回LiveListChannelSessionInfoResponse对象,B端依据此对象处理业务逻辑;
2、请求参数校验不合格,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 输入参数 [xxx.chat.LivexxxRequest]对象校验失败,失败字段 [pic不能为空 / msg不能为空] ]
3、服务器处理异常,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 保利威请求返回数据错误,请求流水号:66e7ad29fd04425a84c2b2b562d2025b,错误原因: invalid signature. ]
请求入参描述
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| channelId | true | String | 频道号 |
| startDate | false | Date | 开始日期,格式yyyy-MM-dd HH:mm:ss |
| endDate | false | Date | 结束日期,格式yyyy-MM-dd HH:mm:ss |
| currentPage | false | Integer | 页数,默认为1【对应api文档的page字段】 |
| pageSize | false | Integer | 每页显示的数据条数,默认每页显示20条数据 |
| appId | false | String | POLYV用户APP_ID,多账号调用时该参数必填(即调用了initMultiAccount()设置多账号调用),通过注册保利威官网获取,路径:官网->登录->直播(开发设置) |
| appSecret | false | String | POLYV用户APP_SECRET,多账号调用时该参数必填(即调用了initMultiAccount()设置多账号调用),通过注册保利威官网获取,路径:官网->登录->直播(开发设置) |
返回对象描述
| 参数名 | 类型 | 说明 |
|---|---|---|
| contents | Array | 频道直播场次信息【详见ChannelSessionInfo参数描述】 |
| pageSize | Integer | 每页显示的数据条数,默认每页显示20条数据 |
| currentPage | Integer | 当前页【对应api文档的pageNumber字段】 |
| totalItems | Integer | 记录总条数 |
| totalPage | Integer | 总页数【对应api文档的totalPages字段】 |
ChannelSessionInfo参数描述
| 参数名 | 类型 | 说明 |
|---|---|---|
| channelId | String | 频道号 |
| sessionId | String | 场次id |
| startTime | Date | 直播开始时间 |
| endTime | Date | 直播结束时间 |
7、查询频道的回放开关状态
描述
查询频道的回放开关状态
接口地址(仅做说明使用):https://api.polyv.net/live/v3/channel/playback/get-enabled
调用约束
1、接口调用有频率限制,详细请查看,调用常见异常,详细请查看
单元测试
@Test
public void testGetChannelPlayBackEnabledInfo() throws Exception, NoSuchAlgorithmException {
LiveChannelPlaybackEnabledInfoRequest liveChannelPlaybackEnabledInfoRequest =
new LiveChannelPlaybackEnabledInfoRequest();
String liveChannelPlaybackEnabledInfoResponse;
try {
liveChannelPlaybackEnabledInfoRequest.setChannelId(createChannel());
liveChannelPlaybackEnabledInfoResponse = new LiveChannelPlaybackServiceImpl().getChannelPlayBackEnabledInfo(
liveChannelPlaybackEnabledInfoRequest);
Assert.assertNotNull(liveChannelPlaybackEnabledInfoResponse);
if ("Y".equals(liveChannelPlaybackEnabledInfoResponse)) {
//to do something ......
log.debug("测试查询频道的回放开关状态成功{}", liveChannelPlaybackEnabledInfoResponse);
}
} catch (PloyvSdkException e) {
//参数校验不合格 或者 请求服务器端500错误,错误信息见PloyvSdkException.getMessage()
log.error(e.getMessage(), e);
// 异常返回做B端异常的业务逻辑,记录log 或者 上报到ETL 或者回滚事务
throw e;
} catch (Exception e) {
log.error("SDK调用异常", e);
throw e;
}
}
单元测试说明
1、请求正确,返回String对象,B端依据此对象处理业务逻辑;
2、请求参数校验不合格,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 输入参数 [xxx.chat.LivexxxRequest]对象校验失败,失败字段 [pic不能为空 / msg不能为空] ]
3、服务器处理异常,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 保利威请求返回数据错误,请求流水号:66e7ad29fd04425a84c2b2b562d2025b,错误原因: invalid signature. ]
请求入参描述
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| channelId | true | String | 频道号 |
| appId | false | String | POLYV用户APP_ID,多账号调用时该参数必填(即调用了initMultiAccount()设置多账号调用),通过注册保利威官网获取,路径:官网->登录->直播(开发设置) |
| appSecret | false | String | POLYV用户APP_SECRET,多账号调用时该参数必填(即调用了initMultiAccount()设置多账号调用),通过注册保利威官网获取,路径:官网->登录->直播(开发设置) |
返回对象描述
Y为开启,N为关闭
8、查询指定文件ID的录制文件信息
描述
查询指定文件ID的录制文件信息
接口地址(仅做说明使用):https://api.polyv.net/live/v3/channel/record/get
调用约束
1、接口调用有频率限制,详细请查看,调用常见异常,详细请查看
单元测试
@Test
public void testGetChannelVideoOnly() throws Exception, NoSuchAlgorithmException {
LiveChannelVideoOnlyRequest liveChannelVideoOnlyRequest = new LiveChannelVideoOnlyRequest();
LiveChannelVideoOnlyResponse liveChannelVideoOnlyResponse;
try {
String channelId = super.getAloneNewChannelId();
String fileId = listChannelFileIds(channelId).get(0);
liveChannelVideoOnlyRequest.setChannelId(channelId)
.setFileId(fileId);
liveChannelVideoOnlyResponse = new LiveChannelPlaybackServiceImpl().getChannelVideoOnly(
liveChannelVideoOnlyRequest);
Assert.assertNotNull(liveChannelVideoOnlyResponse);
if (liveChannelVideoOnlyResponse != null) {
//to do something ......
log.debug("测试查询指定文件ID的录制文件信息成功{}", JSON.toJSONString(liveChannelVideoOnlyResponse));
}
} catch (PloyvSdkException e) {
//参数校验不合格 或者 请求服务器端500错误,错误信息见PloyvSdkException.getMessage()
log.error(e.getMessage(), e);
// 异常返回做B端异常的业务逻辑,记录log 或者 上报到ETL 或者回滚事务
throw e;
} catch (Exception e) {
log.error("SDK调用异常", e);
throw e;
}
}
单元测试说明
1、请求正确,返回LiveChannelVideoOnlyResponse对象,B端依据此对象处理业务逻辑;
2、请求参数校验不合格,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 输入参数 [xxx.chat.LivexxxRequest]对象校验失败,失败字段 [pic不能为空 / msg不能为空] ]
3、服务器处理异常,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 保利威请求返回数据错误,请求流水号:66e7ad29fd04425a84c2b2b562d2025b,错误原因: invalid signature. ]
请求入参描述
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| channelId | true | String | 频道号 |
| fileId | true | String | 文件ID |
| appId | false | String | POLYV用户APP_ID,多账号调用时该参数必填(即调用了initMultiAccount()设置多账号调用),通过注册保利威官网获取,路径:官网->登录->直播(开发设置) |
| appSecret | false | String | POLYV用户APP_SECRET,多账号调用时该参数必填(即调用了initMultiAccount()设置多账号调用),通过注册保利威官网获取,路径:官网->登录->直播(开发设置) |
返回对象描述
| 参数名 | 类型 | 说明 |
|---|---|---|
| bitrate | Integer | 码率 |
| channelId | String | 频道号 |
| channelSessionId | String | 频道场次 |
| originSessionId | String | 原始场次ID |
| createdTime | Date | 创建时间 |
| duration | Integer | 时长 |
| endTime | Date | 结束时间 |
| fileId | String | 文件id |
| filename | String | 文件名 |
| filesize | Long | 文件大小 |
| height | Integer | 高 |
| liveType | String | 直播类型 |
| m3u8 | String | m3u8文件地址 |
| mp4 | String | MP4地址 |
| startTime | Date | 开始时间 |
| userId | String | POLYV用户ID,和保利威官网一致,获取路径:官网->登录->直播(开发设置) |
| width | Integer | 宽 |
9、设置频道回放设置
描述
设置频道回放设置
接口地址(仅做说明使用):https://api.polyv.net/live/v3/channel/playback/set-setting
调用约束
1、接口调用有频率限制,详细请查看,调用常见异常,详细请查看
2、当请求参数type为single时,origin可设置为record,当设置为playback或vod时还需要设置videoId;
3、当请求参数type为list时,origin可以设置为playback以及vod;
单元测试
@Test
public void testUpdateChannelPlaybackSetting() throws Exception, NoSuchAlgorithmException {
LiveChannelPlaybackSettingRequest liveChannelPlaybackSettingRequest;
Boolean liveChannelPlaybackSettingResponse;
try {
String channelId = super.createChannel();
//videoId可通过new LiveChannelPlaybackServiceImpl().listChannelVideoLibrary()获取
List<String> videoIds = listChannelVideoIds(channelId);
liveChannelPlaybackSettingRequest = new LiveChannelPlaybackSettingRequest();
liveChannelPlaybackSettingRequest.setChannelId(channelId)
.setPlaybackEnabled("Y")
.setType("single")
.setOrigin("playback")
.setVideoId(videoIds.get(0))
.setSectionEnabled("N")
.setChatPlaybackEnabled("N");
liveChannelPlaybackSettingResponse = new LiveChannelPlaybackServiceImpl().updateChannelPlaybackSetting(
liveChannelPlaybackSettingRequest);
Assert.assertNotNull(liveChannelPlaybackSettingResponse);
if (liveChannelPlaybackSettingResponse) {
//to do something ......
log.debug("设置频道回放设置成功");
}
} catch (PloyvSdkException e) {
//参数校验不合格 或者 请求服务器端500错误,错误信息见PloyvSdkException.getMessage()
log.error(e.getMessage(), e);
// 异常返回做B端异常的业务逻辑,记录log 或者 上报到ETL 或者回滚事务
throw e;
} catch (Exception e) {
log.error("SDK调用异常", e);
throw e;
}
}
单元测试说明
1、请求正确,返回Boolean对象,B端依据此对象处理业务逻辑;
2、请求参数校验不合格,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 输入参数 [xxx.chat.LivexxxRequest]对象校验失败,失败字段 [pic不能为空 / msg不能为空] ]
3、服务器处理异常,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 保利威请求返回数据错误,请求流水号:66e7ad29fd04425a84c2b2b562d2025b,错误原因: invalid signature. ]
请求入参描述
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| channelId | true | String | 频道号 |
| playbackEnabled | false | String | 回放开关,Y-开启,N-关闭 |
| type | false | String | 回放方式,single-单个回放,list-列表回放 |
| origin | false | String | 回放来源,record-暂存,playback-回放列表,vod-点播列表 |
| videoId | false | String | 单个回放的视频id |
| sectionEnabled | false | String | 章节开关 Y:开启 N:关闭 |
| chatPlaybackEnabled | false | String | 聊天重放 Y:开启 N:关闭 |
| appId | false | String | POLYV用户APP_ID,多账号调用时该参数必填(即调用了initMultiAccount()设置多账号调用),通过注册保利威官网获取,路径:官网->登录->直播(开发设置) |
| appSecret | false | String | POLYV用户APP_SECRET,多账号调用时该参数必填(即调用了initMultiAccount()设置多账号调用),通过注册保利威官网获取,路径:官网->登录->直播(开发设置) |
返回对象描述
true为设置成功,false为设置失败
10、设置后台回放开关
描述
设置后台回放开关
接口地址(仅做说明使用):https://api.polyv.net/live/v2/channelSetting/%s/setPlayBackEnabled
调用约束
1、接口调用有频率限制,详细请查看,调用常见异常,详细请查看
单元测试
@Test
public void testUpdateChannelPlayBackEnabledSetting() throws Exception, NoSuchAlgorithmException {
LiveChannelPlaybackEnabledRequest liveChannelPlaybackEnabledRequest = new LiveChannelPlaybackEnabledRequest();
String liveChannelPlaybackEnabledResponse;
try {
liveChannelPlaybackEnabledRequest.setChannelId(createChannel())
.setPlayBackEnabled("Y");
liveChannelPlaybackEnabledResponse =
new LiveChannelPlaybackServiceImpl().updateChannelPlayBackEnabledSetting(
liveChannelPlaybackEnabledRequest);
Assert.assertNotNull(liveChannelPlaybackEnabledResponse);
if (liveChannelPlaybackEnabledResponse != null) {
//to do something ......
log.debug("测试设置后台回放开关成功{}", liveChannelPlaybackEnabledResponse);
}
} catch (PloyvSdkException e) {
//参数校验不合格 或者 请求服务器端500错误,错误信息见PloyvSdkException.getMessage()
log.error(e.getMessage(), e);
// 异常返回做B端异常的业务逻辑,记录log 或者 上报到ETL 或者回滚事务
throw e;
} catch (Exception e) {
log.error("SDK调用异常", e);
throw e;
}
}
单元测试说明
1、请求正确,返回String对象,B端依据此对象处理业务逻辑;
2、请求参数校验不合格,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 输入参数 [xxx.chat.LivexxxRequest]对象校验失败,失败字段 [pic不能为空 / msg不能为空] ]
3、服务器处理异常,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 保利威请求返回数据错误,请求流水号:66e7ad29fd04425a84c2b2b562d2025b,错误原因: invalid signature. ]
请求入参描述
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| userId | false | String | POLYV用户ID,多账号调用时该参数必填(即调用了initMultiAccount()设置多账号调用),通过注册保利威官网获取,路径:官网->登录->直播(开发设置) |
| playBackEnabled | true | String | 回放开关是开/关的状态,值为Y/N,必填 |
| channelId | false | String | 频道号,非必填,不填添加该用户的所有频道号的回放开关都设置为开/关 |
| appId | false | String | POLYV用户APP_ID,多账号调用时该参数必填(即调用了initMultiAccount()设置多账号调用),通过注册保利威官网获取,路径:官网->登录->直播(开发设置) |
| appSecret | false | String | POLYV用户APP_SECRET,多账号调用时该参数必填(即调用了initMultiAccount()设置多账号调用),通过注册保利威官网获取,路径:官网->登录->直播(开发设置) |
返回对象描述
成功返回频道号
11、设置视频库列表排序
描述
设置视频库列表排序
接口地址(仅做说明使用):https://api.polyv.net/live/v3/channel/playback/sort
调用约束
1、接口调用有频率限制,详细请查看,调用常见异常,详细请查看
单元测试
@Test
public void testSetChannelVideoSort() throws Exception, NoSuchAlgorithmException {
LiveChannelVideoSortRequest liveChannelVideoSortRequest = new LiveChannelVideoSortRequest();
Boolean liveChannelVideoSortResponse;
try {
List<String> videoIdList = listChannelVideoIds("1965681");//992d36fa40,f1574595e1
Collections.shuffle(videoIdList);
liveChannelVideoSortRequest.setChannelId("1965681")
.setVideoIds(videoIdList)
.setListType("playback");
liveChannelVideoSortResponse = new LiveChannelPlaybackServiceImpl().setChannelVideoSort(
liveChannelVideoSortRequest);
Assert.assertNotNull(liveChannelVideoSortResponse);
if (liveChannelVideoSortResponse) {
//to do something ......
log.debug("测试设置视频库列表排序成功");
}
} catch (PloyvSdkException e) {
//参数校验不合格 或者 请求服务器端500错误,错误信息见PloyvSdkException.getMessage()
log.error(e.getMessage(), e);
// 异常返回做B端异常的业务逻辑,记录log 或者 上报到ETL 或者回滚事务
throw e;
} catch (Exception e) {
log.error("SDK调用异常", e);
throw e;
}
}
单元测试说明
1、请求正确,返回Boolean对象,B端依据此对象处理业务逻辑;
2、请求参数校验不合格,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 输入参数 [xxx.chat.LivexxxRequest]对象校验失败,失败字段 [pic不能为空 / msg不能为空] ]
3、服务器处理异常,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 保利威请求返回数据错误,请求流水号:66e7ad29fd04425a84c2b2b562d2025b,错误原因: invalid signature. ]
请求入参描述
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| channelId | true | String | 频道号 |
| videoIds | true | Array | 完整回放视频ID列表,存放在请求体中,请求视频ID数量必须和回放列表数量一致,且不能少或者缺或者多 |
| listType | false | String | playback-回放列表,vod-点播列表; |
| appId | false | String | POLYV用户APP_ID,多账号调用时该参数必填(即调用了initMultiAccount()设置多账号调用),通过注册保利威官网获取,路径:官网->登录->直播(开发设置) |
| appSecret | false | String | POLYV用户APP_SECRET,多账号调用时该参数必填(即调用了initMultiAccount()设置多账号调用),通过注册保利威官网获取,路径:官网->登录->直播(开发设置) |
返回对象描述
true为设置成功,false为设置失败
12、设置视频库列表的默认视频
描述
设置视频库列表的默认视频
接口地址(仅做说明使用):https://api.polyv.net/live/v2/channel/recordFile/%s/playback/set-Default
调用约束
1、接口调用有频率限制,详细请查看,调用常见异常,详细请查看
单元测试
@Test
public void testSetChannelDefaultVideo() throws Exception, NoSuchAlgorithmException {
LiveChannelDefaultVideoRequest liveChannelDefaultVideoRequest = new LiveChannelDefaultVideoRequest();
Boolean liveChannelDefaultVideoResponse;
try {
final String channelId = super.createChannel();
liveChannelDefaultVideoRequest.setChannelId(channelId)
.setVideoId(super.listChannelVideoIds(channelId).get(0))
.setListType("playback");
liveChannelDefaultVideoResponse = new LiveChannelPlaybackServiceImpl().setChannelDefaultVideo(
liveChannelDefaultVideoRequest);
Assert.assertNotNull(liveChannelDefaultVideoResponse);
if (liveChannelDefaultVideoResponse) {
//to do something ......
log.debug("测试设置视频库列表的默认视频成功");
}
} catch (PloyvSdkException e) {
//参数校验不合格 或者 请求服务器端500错误,错误信息见PloyvSdkException.getMessage()
log.error(e.getMessage(), e);
// 异常返回做B端异常的业务逻辑,记录log 或者 上报到ETL 或者回滚事务
throw e;
} catch (Exception e) {
log.error("SDK调用异常", e);
throw e;
}
}
单元测试说明
1、请求正确,返回Boolean对象,B端依据此对象处理业务逻辑;
2、请求参数校验不合格,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 输入参数 [xxx.chat.LivexxxRequest]对象校验失败,失败字段 [pic不能为空 / msg不能为空] ]
3、服务器处理异常,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 保利威请求返回数据错误,请求流水号:66e7ad29fd04425a84c2b2b562d2025b,错误原因: invalid signature. ]
请求入参描述
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| channelId | true | String | 频道号 |
| videoId | true | String | 直播系统生成的id,可在回放列表接口的返回数据获取 |
| listType | false | String | playback-回放列表,vod-点播列表; |
| appId | false | String | POLYV用户APP_ID,多账号调用时该参数必填(即调用了initMultiAccount()设置多账号调用),通过注册保利威官网获取,路径:官网->登录->直播(开发设置) |
| appSecret | false | String | POLYV用户APP_SECRET,多账号调用时该参数必填(即调用了initMultiAccount()设置多账号调用),通过注册保利威官网获取,路径:官网->登录->直播(开发设置) |
返回对象描述
true为设置成功,false为设置失败
13、删除直播暂存中的录制文件
描述
删除直播暂存中的录制文件
接口地址(仅做说明使用):https://api.polyv.net/live/v2/channel/recordFile/%s/delete-record
调用约束
1、接口调用有频率限制,详细请查看,调用常见异常,详细请查看
单元测试
@Test
public void testDeleteChannelVideo() throws Exception, NoSuchAlgorithmException {
LiveDeleteChannelVideoRequest liveDeleteChannelVideoRequest = new LiveDeleteChannelVideoRequest();
Boolean liveDeleteChannelVideoResponse;
try {
liveDeleteChannelVideoRequest.setChannelId("1951952")
.setStartTime(getDate(2020, 10, 16, 11, 12, 34));
liveDeleteChannelVideoResponse = new LiveChannelPlaybackServiceImpl().deleteChannelVideo(
liveDeleteChannelVideoRequest);
Assert.assertNotNull(liveDeleteChannelVideoResponse);
if (liveDeleteChannelVideoResponse) {
//to do something ......
log.debug("测试删除直播暂存中的录制文件");
}
} catch (PloyvSdkException e) {
//参数校验不合格 或者 请求服务器端500错误,错误信息见PloyvSdkException.getMessage()
log.error(e.getMessage(), e);
// 异常返回做B端异常的业务逻辑,记录log 或者 上报到ETL 或者回滚事务
throw e;
} catch (Exception e) {
log.error("SDK调用异常", e);
throw e;
}
}
单元测试说明
1、请求正确,返回Boolean对象,B端依据此对象处理业务逻辑;
2、请求参数校验不合格,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 输入参数 [xxx.chat.LivexxxRequest]对象校验失败,失败字段 [pic不能为空 / msg不能为空] ]
3、服务器处理异常,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 保利威请求返回数据错误,请求流水号:66e7ad29fd04425a84c2b2b562d2025b,错误原因: invalid signature. ]
请求入参描述
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| channelId | true | String | 频道号 |
| sessionId | false | String | 录制视频的场次ID |
| startTime | false | Date | 录制视频的开始录制时间,可从 获取频道录制信息 接口中获取 |
| appId | false | String | POLYV用户APP_ID,多账号调用时该参数必填(即调用了initMultiAccount()设置多账号调用),通过注册保利威官网获取,路径:官网->登录->直播(开发设置) |
| appSecret | false | String | POLYV用户APP_SECRET,多账号调用时该参数必填(即调用了initMultiAccount()设置多账号调用),通过注册保利威官网获取,路径:官网->登录->直播(开发设置) |
返回对象描述
true为删除成功,false为删除失败
14、删除视频库列表中的视频
描述
删除视频库列表中的视频
接口地址(仅做说明使用):https://api.polyv.net/live/v2/channel/recordFile/%s/playback/delete
调用约束
1、接口调用有频率限制,详细请查看,调用常见异常,详细请查看
单元测试
@Test
public void testDeleteChannelPlaybackVideo() throws Exception, NoSuchAlgorithmException {
LiveDeleteChannelPlaybackVideoRequest liveDeleteChannelPlaybackVideoRequest =
new LiveDeleteChannelPlaybackVideoRequest();
Boolean liveDeleteChannelPlaybackVideoResponse;
try {
String channelId = super.createChannel();
String videoId = "07f5bbeb67";
liveDeleteChannelPlaybackVideoRequest.setChannelId(channelId)
.setVideoId(videoId)
.setListType("playback");
liveDeleteChannelPlaybackVideoResponse = new LiveChannelPlaybackServiceImpl().deleteChannelPlaybackVideo(
liveDeleteChannelPlaybackVideoRequest);
Assert.assertNotNull(liveDeleteChannelPlaybackVideoResponse);
if (liveDeleteChannelPlaybackVideoResponse) {
//to do something ......
log.debug("测试删除视频库列表中的视频成功");
}
} catch (PloyvSdkException e) {
//参数校验不合格 或者 请求服务器端500错误,错误信息见PloyvSdkException.getMessage()
log.error(e.getMessage(), e);
// 异常返回做B端异常的业务逻辑,记录log 或者 上报到ETL 或者回滚事务
throw e;
} catch (Exception e) {
log.error("SDK调用异常", e);
throw e;
}
}
单元测试说明
1、请求正确,返回Boolean对象,B端依据此对象处理业务逻辑;
2、请求参数校验不合格,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 输入参数 [xxx.chat.LivexxxRequest]对象校验失败,失败字段 [pic不能为空 / msg不能为空] ]
3、服务器处理异常,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 保利威请求返回数据错误,请求流水号:66e7ad29fd04425a84c2b2b562d2025b,错误原因: invalid signature. ]
请求入参描述
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| channelId | true | String | 频道号 |
| videoId | true | String | 直播系统生成的id,可在回放列表接口的返回数据获取 |
| listType | false | String | playback-回放列表,vod-点播列表; |
| appId | false | String | POLYV用户APP_ID,多账号调用时该参数必填(即调用了initMultiAccount()设置多账号调用),通过注册保利威官网获取,路径:官网->登录->直播(开发设置) |
| appSecret | false | String | POLYV用户APP_SECRET,多账号调用时该参数必填(即调用了initMultiAccount()设置多账号调用),通过注册保利威官网获取,路径:官网->登录->直播(开发设置) |
返回对象描述
true为删除成功,false为删除失败
15、修改回放视频名称
描述
修改回放视频名称
接口地址(仅做说明使用):https://api.polyv.net/live/v3/channel/playback/update-title
调用约束
1、接口调用有频率限制,详细请查看,调用常见异常,详细请查看
单元测试
@Test
public void testUpdatePlaybackTitle() throws Exception, NoSuchAlgorithmException {
LiveUpdatePlaybackTitleRequest liveUpdatePlaybackTitleRequest = new LiveUpdatePlaybackTitleRequest();
Boolean liveUpdatePlaybackTitleResponse;
try {
String channelId = super.createChannel();
String videoId = "992d36fa40";
liveUpdatePlaybackTitleRequest.setChannelId(channelId)
.setVideoId(videoId)
.setTitle("修改标题后");
liveUpdatePlaybackTitleResponse = new LiveChannelPlaybackServiceImpl().updatePlaybackTitle(
liveUpdatePlaybackTitleRequest);
Assert.assertTrue(liveUpdatePlaybackTitleResponse);
if (liveUpdatePlaybackTitleResponse) {
//to do something ......
log.debug("测试修改回放视频名称成功");
}
} catch (PloyvSdkException e) {
//参数校验不合格 或者 请求服务器端500错误,错误信息见PloyvSdkException.getMessage()
log.error(e.getMessage(), e);
// 异常返回做B端异常的业务逻辑,记录log 或者 上报到ETL 或者回滚事务
throw e;
} catch (Exception e) {
log.error("SDK调用异常", e);
throw e;
}
}
单元测试说明
1、请求正确,返回Boolean对象,B端依据此对象处理业务逻辑;
2、请求参数校验不合格,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 输入参数 [xxx.chat.LivexxxRequest]对象校验失败,失败字段 [pic不能为空 / msg不能为空] ]
3、服务器处理异常,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 保利威请求返回数据错误,请求流水号:66e7ad29fd04425a84c2b2b562d2025b,错误原因: invalid signature. ]
请求入参描述
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| channelId | true | String | 频道号 |
| videoId | true | String | 回放视频ID |
| title | true | String | 回放视频名称 |
| appId | false | String | POLYV用户APP_ID,多账号调用时该参数必填(即调用了initMultiAccount()设置多账号调用),通过注册保利威官网获取,路径:官网->登录->直播(开发设置) |
| appSecret | false | String | POLYV用户APP_SECRET,多账号调用时该参数必填(即调用了initMultiAccount()设置多账号调用),通过注册保利威官网获取,路径:官网->登录->直播(开发设置) |
返回对象描述
true为修改成功,false为修改失败
16、导出合并的录制文件并回调mp4下载地址
描述
导出合并的录制文件并回调mp4下载地址
接口地址(仅做说明使用):https://api.polyv.net/live/v3/channel/record/merge-mp4
调用约束
1、接口调用有频率限制,详细请查看,调用常见异常,详细请查看
2、该接口为文件合并过程为异步处理过程
3、该接口合并的录制文件必须在8小时内
4、三分屏的录制将自动经过重制课件后再合并mp4
5、mp4下载地址30天内有效,超出后需要重新导出
单元测试
@Test
public void testMergeMp4Record() throws Exception, NoSuchAlgorithmException {
LiveMergeMp4RecordRequest liveMergeMp4RecordRequest = new LiveMergeMp4RecordRequest();
LiveMergeMp4RecordResponse liveMergeMp4RecordResponse;
try {
String channelId = super.createChannel();
liveMergeMp4RecordRequest.setChannelId(channelId)
.setStartTime(super.getDate(1603848613000l))
.setEndTime(super.getDate(1603854259000l))
.setCallbackUrl(null)
.setFileName("testMergeMp4");
liveMergeMp4RecordResponse = new LiveChannelPlaybackServiceImpl().mergeMp4Record(liveMergeMp4RecordRequest);
Assert.assertNotNull(liveMergeMp4RecordResponse);
if (liveMergeMp4RecordResponse != null) {
//to do something ......
log.debug("测试导出合并的录制文件并回调mp4下载地址成功,{}", JSON.toJSONString(liveMergeMp4RecordResponse));
}
} catch (PloyvSdkException e) {
//参数校验不合格 或者 请求服务器端500错误,错误信息见PloyvSdkException.getMessage()
log.error(e.getMessage(), e);
// 异常返回做B端异常的业务逻辑,记录log 或者 上报到ETL 或者回滚事务
throw e;
} catch (Exception e) {
log.error("SDK调用异常", e);
throw e;
}
}
单元测试说明
1、请求正确,返回LiveMergeMp4RecordResponse对象,B端依据此对象处理业务逻辑;
2、请求参数校验不合格,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 输入参数 [xxx.chat.LivexxxRequest]对象校验失败,失败字段 [pic不能为空 / msg不能为空] ]
3、服务器处理异常,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 保利威请求返回数据错误,请求流水号:66e7ad29fd04425a84c2b2b562d2025b,错误原因: invalid signature. ]
请求入参描述
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| channelId | true | String | 频道号 |
| startTime | true | Date | 录制文件开始时间,与endtime最大不能超过8小时 |
| endTime | true | Date | 录制文件结束时间,与startTime最大不能超过8小时 |
| callbackUrl | false | String | 合并成功或失败回调的url |
| fileName | false | String | 合并后文件名 |
| appId | false | String | POLYV用户APP_ID,多账号调用时该参数必填(即调用了initMultiAccount()设置多账号调用),通过注册保利威官网获取,路径:官网->登录->直播(开发设置) |
| appSecret | false | String | POLYV用户APP_SECRET,多账号调用时该参数必填(即调用了initMultiAccount()设置多账号调用),通过注册保利威官网获取,路径:官网->登录->直播(开发设置) |
返回对象描述
| 参数名 | 类型 | 说明 |
|---|---|---|
| fileId | String | 文件ID |
| fileUrl | String | 已合并返回文件地址,合并中返回空字符串 |
回调说明
该接口为异步处理,如果需要获取合并的结果,可以在请求接口时提交callbackUrl 参数,在程序合并成功后,会对callbackUrl 进行回调通知
| 参数名 | 类型 | 说明 |
|---|---|---|
| status | String | 接口处理结果,取值:success(成功),error(出错) |
| channelId | String | 频道号,成功时返回 |
| fileId | String | 合并后的文件ID,成功时返回 |
| fileIds | String | 合并前的所有文件ID,成功时返回 |
| fileUrl | String | 合并后的MP4的地址,成功时返回 |
| fileName | String | 合并后的文件名称,成功时返回 |
17、查询多个频道回放设置
描述
查询多个频道回放设置和视频列表
接口地址(仅做说明使用):https://api.polyv.net/live/v4/channel/playback/list
调用约束
1、接口调用有频率限制,详细请查看,调用常见异常,详细请查看
单元测试
@Test
public void testGetPlaybackList() throws IOException, NoSuchAlgorithmException {
LiveGetPlaybackListRequest liveGetPlaybackListRequest = new LiveGetPlaybackListRequest();
List<LiveGetPlaybackListResponse> liveGetPlaybackListResponse;
try {
String channelId = super.createChannel();
liveGetPlaybackListRequest.setChannelIds(channelId);
liveGetPlaybackListResponse = new LiveChannelPlaybackServiceImpl().getPlaybackList(
liveGetPlaybackListRequest);
Assert.assertNotNull(liveGetPlaybackListResponse);
if (liveGetPlaybackListResponse != null) {
//to do something ......
log.debug("测试查询多个频道回放列表成功 {}", JSON.toJSONString(liveGetPlaybackListResponse));
}
} catch (PloyvSdkException e) {
//参数校验不合格 或者 请求服务器端500错误,错误信息见PloyvSdkException.getMessage()
log.error(e.getMessage(), e);
// 异常返回做B端异常的业务逻辑,记录log 或者 上报到ETL 或者回滚事务
throw e;
} catch (Exception e) {
log.error("SDK调用异常", e);
throw e;
}
}
单元测试说明
1、请求正确,返回LiveGetPlaybackListResponse对象,B端依据此对象处理业务逻辑;
2、请求参数校验不合格,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 输入参数 [xxx.chat.LivexxxRequest]对象校验失败,失败字段 [pic不能为空 / msg不能为空] ]
3、服务器处理异常,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 保利威请求返回数据错误,请求流水号:66e7ad29fd04425a84c2b2b562d2025b,错误原因: invalid signature. ]
请求入参描述
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| channelIds | true | String | 用英文逗号隔开的频道号,如:10000,100001 最多100个 |
| appId | false | String | POLYV用户APP_ID,多账号调用时该参数必填(即调用了initMultiAccount()设置多账号调用),通过注册保利威官网获取,路径:官网->登录->直播(开发设置) |
| appSecret | false | String | POLYV用户APP_SECRET,多账号调用时该参数必填(即调用了initMultiAccount()设置多账号调用),通过注册保利威官网获取,路径:官网->登录->直播(开发设置) |
返回对象描述
返回对象是List<LiveGetPlaybackListResponse>,LiveGetPlaybackListResponse具体元素内容如下:
| 参数名 | 类型 | 说明 |
|---|---|---|
| channelId | String | 频道号 |
| playBackEnabled | String | 观看回放功能开关 Y:开启 N:关闭 |
| origin | String | 回放来源 record:暂存 playback:回放列表 vod:点播列表 |
| type | String | 回放方式 single:单个视频回放 list:列表回放 |
| videoList | Array | 视频列表,回放方式为单个视频时只会返回一个视频,列表回放时返回前10个视频,回放开关关闭时也会返回视频列表【详见PlaybackVideoList参数描述】 |
| globalSettingEnabled | String | 是否开启全局设置 Y:开启 N:关闭 |
PlaybackVideoList参数描述
| 参数名 | 类型 | 说明 |
|---|---|---|
| videoId | String | 直播系统生成的id (回放来源为回放列表或点播列表有值) |
| videoPoolId | String | 点播视频videoPoolId (回放来源为回放列表或点播列表有值) |
| fileId | String | 回放视频转存前的暂存文件ID(回放来源为暂存时有值) |
| duration | String | 视频时长,格式为HH:mm:ss |
| name | String | 视频名称 |
18、裁剪录制文件
描述
裁剪直播录制视频文件,裁剪文件过程为异步处理过程
接口地址(仅做说明使用):https://api.polyv.net/live/v3/channel/record/clip
调用约束
1、接口调用有频率限制,详细请查看,调用常见异常,详细请查看
单元测试
@Test
public void testClipRecordFile() throws IOException, NoSuchAlgorithmException {
LiveClipRecordFileRequest liveClipRecordFileRequest = new LiveClipRecordFileRequest();
Boolean liveClipRecordFileResponse;
try {
liveClipRecordFileRequest.setChannelId("3948351");
liveClipRecordFileRequest.setFileId("c1a6650a221144b605b433fe6978f4b1");
liveClipRecordFileRequest.setDeleteTimeFrame("[{\"start\":1, \"end\":30},{\"start\":50, \"end\":60}]");
liveClipRecordFileResponse = new LiveChannelPlaybackServiceImpl().clipRecordFile(liveClipRecordFileRequest);
Assert.assertNotNull(liveClipRecordFileResponse);
if (liveClipRecordFileResponse != null) {
//to do something ......
log.debug("测试裁剪录制文件成功 {}", JSON.toJSONString(liveClipRecordFileResponse));
}
} catch (PloyvSdkException e) {
//参数校验不合格 或者 请求服务器端500错误,错误信息见PloyvSdkException.getMessage()
log.error(e.getMessage(), e);
// 异常返回做B端异常的业务逻辑,记录log 或者 上报到ETL 或者回滚事务
throw e;
} catch (Exception e) {
log.error("SDK调用异常", e);
throw e;
}
}
单元测试说明
1、请求正确,返回Boolean对象,B端依据此对象处理业务逻辑;
2、请求参数校验不合格,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 输入参数 [xxx.chat.LivexxxRequest]对象校验失败,失败字段 [pic不能为空 / msg不能为空] ]
3、服务器处理异常,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 保利威请求返回数据错误,请求流水号:66e7ad29fd04425a84c2b2b562d2025b,错误原因: invalid signature. ]
请求入参描述
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| channelId | true | String | 频道号 |
| fileId | true | String | 文件ID【可通过查询频道录制视频信息获取】 |
| deleteTimeFrame | true | String | 要裁剪移除的时间区间 传入格式要求: (1)start、end值是单位为秒的数值,格式为:[{"start":xx, "end":xx},{"start":xx, "end":xx}] (2)多个区间请按照时间顺序从小到大排列 (3)时间区间不允许重叠 (4)时间区间不得超过100个限制 【示例:要裁剪移除的是第1s到第14s,以及第25s到第30s的区间,则传入的字符串为 [{"start":1, "end":14},{"start":25, "end":30}] 】 误差说明: (1)裁剪区间存在一定的时间误差 (2)误差原因:回放默认为m3u8格式裁剪,由于m3u8的视频裁剪是精确到每片ts,所以裁剪时会判断裁剪要移除的时间区间所包含的ts片,进行裁剪移除,如需更精准的裁剪,可联系保利威客服人员开通mp4裁剪 |
| callbackUrl | false | String | 裁剪成功或失败回调的url |
| autoConvert | false | String | 是否自动转存回放到点播,默认为N Y:是 N:否 |
| fileName | false | String | 裁剪后文件名 |
| appId | false | String | POLYV用户APP_ID,多账号调用时该参数必填(即调用了initMultiAccount()设置多账号调用),通过注册保利威官网获取,路径:官网->登录->直播(开发设置) |
| appSecret | false | String | POLYV用户APP_SECRET,多账号调用时该参数必填(即调用了initMultiAccount()设置多账号调用),通过注册保利威官网获取,路径:官网->登录->直播(开发设置) |
返回对象描述
裁剪录制文件返回实体
19、查询频道回放设置
描述
查询频道回放设置
接口地址(仅做说明使用):https://api.polyv.net/live/v3/channel/playback/get-setting
调用约束
1、接口调用有频率限制,详细请查看,调用常见异常,详细请查看
单元测试
@Test
public void testGetPlaybackSetting() throws IOException, NoSuchAlgorithmException {
LiveGetPlaybackSettingRequest liveGetPlaybackSettingRequest = new LiveGetPlaybackSettingRequest();
LiveGetPlaybackSettingResponse liveGetPlaybackSettingResponse;
try {
String channelId = super.createChannel();
liveGetPlaybackSettingRequest.setChannelId(channelId);
liveGetPlaybackSettingResponse = new LiveChannelPlaybackServiceImpl().getPlaybackSetting(
liveGetPlaybackSettingRequest);
Assert.assertNotNull(liveGetPlaybackSettingResponse);
if (liveGetPlaybackSettingResponse != null) {
//to do something ......
log.debug("测试查询频道回放设置成功 {}", JSON.toJSONString(liveGetPlaybackSettingResponse));
}
} catch (PloyvSdkException e) {
//参数校验不合格 或者 请求服务器端500错误,错误信息见PloyvSdkException.getMessage()
log.error(e.getMessage(), e);
// 异常返回做B端异常的业务逻辑,记录log 或者 上报到ETL 或者回滚事务
throw e;
} catch (Exception e) {
log.error("SDK调用异常", e);
throw e;
}
}
单元测试说明
1、请求正确,返回LiveGetPlaybackSettingResponse对象,B端依据此对象处理业务逻辑;
2、请求参数校验不合格,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 输入参数 [xxx.chat.LivexxxRequest]对象校验失败,失败字段 [pic不能为空 / msg不能为空] ]
3、服务器处理异常,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 保利威请求返回数据错误,请求流水号:66e7ad29fd04425a84c2b2b562d2025b,错误原因: invalid signature. ]
请求入参描述
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| channelId | true | String | 频道号 |
| appId | false | String | POLYV用户APP_ID,多账号调用时该参数必填(即调用了initMultiAccount()设置多账号调用),通过注册保利威官网获取,路径:官网->登录->直播(开发设置) |
| appSecret | false | String | POLYV用户APP_SECRET,多账号调用时该参数必填(即调用了initMultiAccount()设置多账号调用),通过注册保利威官网获取,路径:官网->登录->直播(开发设置) |
返回对象描述
| 参数名 | 类型 | 说明 |
|---|---|---|
| channelId | String | 频道号 |
| type | String | 回放类型 single:单个视频回放 list:列表回放 |
| playbackEnabled | String | 回放的开关 Y:开启 N:关闭 |
| origin | String | 回放的视频来源 record:录制文件 playback:回放列表 vod:点播列表 |
| videoId | String | 回放的视频ID |
| videoName | String | 回放的视频名称 |
| sectionEnabled | String | 回放设置,章节开关 Y:开启 N:关闭 |
| globalSettingEnabled | String | 是否应用通用设置 Y:是 N:否 |
| chatPlaybackEnabled | String | 聊天重放 Y:开启 N:关闭 |
