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. ]
请求入参描述
要添加为回放的的点播视频【对应api文档的vid字段】
添加到视频库列表中的位置,默认为N Y:回放列表中置顶 N:回放列表中置底
返回对象描述
默认视频的播放清晰度,1为流畅,2为高清,3为超清
视频播放地址,注:如果视频为加密视频,则此地址无法访问
用于PPT请求数据,与PPT直播的回放相关,普通直播回放值为null
2、异步批量转存录制文件到点播
描述
异步批量转存录制文件到点播
接口地址(仅做说明使用):https://api.polyv.net/live/v3/channel/record/convert
调用约束
单元测试
@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. ]
请求入参描述
要转存的录制视频文件id,多个id用英文逗号,分隔
返回对象描述
true为提交成功,false为提交失败,具体转存是否成功以回调为准
3、异步合并直播录制文件
描述
异步合并直播录制文件
接口地址(仅做说明使用):https://api.polyv.net/live/v3/channel/record/merge
调用约束
单元测试
@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. ]
请求入参描述
要合并的录制视频文件ID,多个id用英文逗号,分隔,可通过调用查询视频库列表获取fileId
传入Y,自动转存到对应点播分类下(直播回放-频道号-场次)
返回对象描述
true为提交成功,false为提交失败,具体合并是否成功以回调为准
回调说明
该接口为异步处理,如果需要获取转存的结果,可以在请求接口时提交callbackUrl 参数,在程序转存成功或失败后,会对callbackUrl 进行回调通知
接口处理结果,取值:success(成功),error(出错)
错误码,userExpired-用户已过期;spaceOverSize-点播空间不足;unknown-未知异常
校验的加密字符串,生成的规则md5(AppSecret+timestamp),AppSecret是直播系统的用密匙
4、查询频道录制视频信息
描述
查询频道录制视频信息
接口地址(仅做说明使用):https://api.polyv.net/live/v2/channels/%s/recordFiles
调用约束
单元测试
@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. ]
请求入参描述
开始日期(录制生成的日期),格式为:yyyy-MM-dd
场次ID,多个用英文逗号分割(仅查询转存文件来源为频道录制的视频)
返回对象描述
录制文件地址,优先返回mp4,若没有MP4会返回m3u8
录制文件剩余天数,大于0:剩余天数,-1:永久,不会返回过期的录制文件记录
录制文件来源 manual:手动录制 auto:自动录制
原始直播场次ID 当该录制文件为手动录制或自动录制时就等于当前直播场次ID
录制文件类型 complete:完整回放,part:自动录制_片段,merge:手动合并,clip:裁剪
5、查询视频库列表
描述
查询视频库列表
接口地址(仅做说明使用):https://api.polyv.net/live/v2/channel/recordFile/%s/playback/list
调用约束
单元测试
@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. ]
请求入参描述
playback-回放列表,vod-点播列表;默认普通直播场景为vod,三分屏为playback
场次ID,多个用英文逗号分割(仅查询转存文件来源为频道录制的视频)
返回对象描述
当前页【对应api文档的pageNumber字段】
总页数【对应api文档的totalPages字段】
默认视频的播放清晰度
1:流畅
2:高清
3:超清
视频播放地址,注:如果视频为加密视频,则此地址无法访问
用于PPT请求数据,与PPT直播的回放相关,普通直播回放值为null
alone:活动直播,ppt:三分屏,topclass:大班课,seminar:研讨会
manual:手动录制,auto:自动录制,merge:合并,clip:裁剪
6、查询频道直播场次信息
描述
查询频道直播场次信息
接口地址(仅做说明使用):https://api.polyv.net/live/v3/channel/session/list
调用约束
单元测试
@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. ]
请求入参描述
开始日期,格式yyyy-MM-dd HH:mm:ss
结束日期,格式yyyy-MM-dd HH:mm:ss
返回对象描述
当前页【对应api文档的pageNumber字段】
总页数【对应api文档的totalPages字段】
7、查询频道的回放开关状态
描述
查询频道的回放开关状态
接口地址(仅做说明使用):https://api.polyv.net/live/v3/channel/playback/get-enabled
调用约束
单元测试
@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. ]
请求入参描述
返回对象描述
Y为开启,N为关闭
8、查询指定文件ID的录制文件信息
描述
查询指定文件ID的录制文件信息
接口地址(仅做说明使用):https://api.polyv.net/live/v3/channel/record/get
调用约束
单元测试
@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. ]
请求入参描述
返回对象描述
POLYV用户ID,和保利威官网一致,获取路径:官网->登录->直播(开发设置)
9、设置频道回放设置
描述
设置频道回放设置
接口地址(仅做说明使用):https://api.polyv.net/live/v3/channel/playback/set-setting
调用约束
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. ]
请求入参描述
回放方式,single-单个回放,list-列表回放
回放来源,record-暂存,playback-回放列表,vod-点播列表
返回对象描述
true为设置成功,false为设置失败
10、设置后台回放开关
描述
设置后台回放开关
接口地址(仅做说明使用):https://api.polyv.net/live/v2/channelSetting/%s/setPlayBackEnabled
调用约束
单元测试
@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. ]
请求入参描述
频道号,非必填,不填添加该用户的所有频道号的回放开关都设置为开/关
返回对象描述
成功返回频道号
11、设置视频库列表排序
描述
设置视频库列表排序
接口地址(仅做说明使用):https://api.polyv.net/live/v3/channel/playback/sort
调用约束
单元测试
@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. ]
请求入参描述
完整回放视频ID列表,存放在请求体中,请求视频ID数量必须和回放列表数量一致,且不能少或者缺或者多
返回对象描述
true为设置成功,false为设置失败
12、设置视频库列表的默认视频
描述
设置视频库列表的默认视频
接口地址(仅做说明使用):https://api.polyv.net/live/v2/channel/recordFile/%s/playback/set-Default
调用约束
单元测试
@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. ]
请求入参描述
直播系统生成的id,可在回放列表接口的返回数据获取
返回对象描述
true为设置成功,false为设置失败
13、删除直播暂存中的录制文件
描述
删除直播暂存中的录制文件
接口地址(仅做说明使用):https://api.polyv.net/live/v2/channel/recordFile/%s/delete-record
调用约束
单元测试
@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. ]
请求入参描述
录制视频的开始录制时间,可从 获取频道录制信息 接口中获取
返回对象描述
true为删除成功,false为删除失败
14、删除视频库列表中的视频
描述
删除视频库列表中的视频
接口地址(仅做说明使用):https://api.polyv.net/live/v2/channel/recordFile/%s/playback/delete
调用约束
单元测试
@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. ]
请求入参描述
直播系统生成的id,可在回放列表接口的返回数据获取
返回对象描述
true为删除成功,false为删除失败
15、修改回放视频名称
描述
修改回放视频名称
接口地址(仅做说明使用):https://api.polyv.net/live/v3/channel/playback/update-title
调用约束
单元测试
@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. ]
请求入参描述
返回对象描述
true为修改成功,false为修改失败
16、导出合并的录制文件并回调mp4下载地址
描述
导出合并的录制文件并回调mp4下载地址
接口地址(仅做说明使用):https://api.polyv.net/live/v3/channel/record/merge-mp4
调用约束
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. ]
请求入参描述
录制文件开始时间,与endtime最大不能超过8小时
录制文件结束时间,与startTime最大不能超过8小时
返回对象描述
回调说明
该接口为异步处理,如果需要获取合并的结果,可以在请求接口时提交callbackUrl 参数,在程序合并成功后,会对callbackUrl 进行回调通知
接口处理结果,取值:success(成功),error(出错)
17、查询多个频道回放设置
描述
查询多个频道回放设置和视频列表
接口地址(仅做说明使用):https://api.polyv.net/live/v4/channel/playback/list
调用约束
单元测试
@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. ]
请求入参描述
用英文逗号隔开的频道号,如:10000,100001 最多100个
返回对象描述
返回对象是List<LiveGetPlaybackListResponse>,LiveGetPlaybackListResponse具体元素内容如下:
回放来源 record:暂存 playback:回放列表 vod:点播列表
回放方式 single:单个视频回放 list:列表回放
直播系统生成的id (回放来源为回放列表或点播列表有值)
点播视频videoPoolId (回放来源为回放列表或点播列表有值)
回放视频转存前的暂存文件ID(回放来源为暂存时有值)
18、裁剪录制文件
描述
裁剪直播录制视频文件,裁剪文件过程为异步处理过程
接口地址(仅做说明使用):https://api.polyv.net/live/v3/channel/record/clip
调用约束
单元测试
@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. ]
请求入参描述
要裁剪移除的时间区间 传入格式要求: (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裁剪
返回对象描述
裁剪录制文件返回实体
19、查询频道回放设置
描述
查询频道回放设置
接口地址(仅做说明使用):https://api.polyv.net/live/v3/channel/playback/get-setting
调用约束
单元测试
@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. ]
请求入参描述
返回对象描述
回放类型 single:单个视频回放 list:列表回放
回放的视频来源 record:录制文件 playback:回放列表 vod:点播列表