Channel Distribute

1、查询分发地址信息

描述

查询分发地址信息
接口地址(仅做说明使用):https://api.polyv.net/live/v4/channel/distribute/list

调用约束

1、接口调用有频率限制,详细请查看,调用常见异常,详细请查看

单元测试

	@Test
	public void testListChannelDistribute() throws IOException, NoSuchAlgorithmException {
        LiveChannelDistributeListRequest liveChannelDistributeListRequest = new LiveChannelDistributeListRequest();
        LiveChannelDistributeListResponse liveChannelDistributeListResponse;
        try {
            liveChannelDistributeListRequest.setChannelId(super.getAloneChannelId());
            liveChannelDistributeListResponse = new LiveChannelDistributeServiceImpl().listChannelDistribute(
                    liveChannelDistributeListRequest);
            Assert.assertNotNull(liveChannelDistributeListResponse);
            if (liveChannelDistributeListResponse != null) {
                //to do something ......
                log.debug("测试查询分发地址信息成功 {}", JSON.toJSONString(liveChannelDistributeListResponse));
            }
        } 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、请求正确,返回LiveChannelDistributeListResponse对象,B端依据此对象处理业务逻辑;

2、请求参数校验不合格,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 输入参数 [xxx.chat.LivexxxRequest]对象校验失败,失败字段 [pic不能为空 / msg不能为空] ]

3、服务器处理异常,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 保利威请求返回数据错误,请求流水号:66e7ad29fd04425a84c2b2b562d2025b,错误原因: invalid signature. ]

请求入参描述

参数名必选类型说明

channelId

true

String

频道号

distributeIds

false

String

分发ID,以英文逗号分割,不传默认查询频道下全部分发地址

返回对象描述

参数名类型说明

distributeEnable

String

频道分发直播总开关 Y:开启 N:关闭

result

Array

分发地址响应对象列表【详见ChannelDistribute参数描述

ChannelDistribute参数描述

参数名类型说明

id

Integer

云分发ID

channelId

String

频道号

name

String

分发地址名称

distributeUrl

String

推流地址

distributeLiveCode

String

直播码

status

String

分发直播开关 Y:打开 N:关闭

connectionStatus

String

连接状态 completed:已结束 processing:转推中 waiting:等待连接中 error:转推失败


2、批量添加分发地址

描述

批量添加分发地址
接口地址(仅做说明使用):https://api.polyv.net/live/v4/channel/distribute/create-batch

调用约束

1、接口调用有频率限制,详细请查看,调用常见异常,详细请查看

2、只有纯视频、纯视频-极速(原大班课)直播模板的频道支持云分发

3、账号需要开通云分发功能

4、云分发地址个数上限:15

单元测试

	@Test
	public void testCreateChannelDistribute() throws IOException, NoSuchAlgorithmException {
        LiveChannelDistributeCreateRequest liveChannelDistributeCreateRequest =
                new LiveChannelDistributeCreateRequest();
        Boolean liveChannelDistributeCreateResponse;
        try {
            String channelId = super.getAloneNewChannelId();
            LiveChannelDistributeCreateRequest.CreateDistribute createDistribute =
                    new LiveChannelDistributeCreateRequest.CreateDistribute();
            createDistribute.setName("SDK测试云分发")
                    .setDistributeUrl("rtmp://xx.xxx")
                    .setDistributeLiveCode(super.getRandomString(6))
                    .setStatus(LiveConstant.Flag.YES.getFlag());
            liveChannelDistributeCreateRequest.setChannelId(channelId).setContents(Arrays.asList(createDistribute));
            liveChannelDistributeCreateResponse = new LiveChannelDistributeServiceImpl().createChannelDistribute(
                    liveChannelDistributeCreateRequest);
            Assert.assertTrue(liveChannelDistributeCreateResponse);
            if (liveChannelDistributeCreateResponse) {
                //to do something ......
                log.debug("测试批量添加分发地址成功");
                //TODO 此处创建完成后删除了分发地址,正式使用需删除该语句
                super.deleteChannelDistribute(channelId, getChannelDistributeId(channelId));
            }
        } 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

频道号

contents

true

Array

分发地址请求对象列表【详见CreateDistribute参数描述

CreateDistribute参数描述

参数名必选类型说明

name

true

String

分发地址名称,长度不能超过20

distributeUrl

true

String

推流地址(不可存在相同的推流地址),例:rtmp://polyv.net,需满足正则:(^([rR][tT][mM][pP]://)([\w-]+.)+[\w-]+(/[\w-./?%#&=]*)?$)

distributeLiveCode

false

String

直播码

status

false

String

分发直播推流开关,不传则默认关闭 Y:打开 N:关闭

返回对象描述

批量添加分发地址返回实体


3、批量修改分分发地址

描述

修改分发地址
接口地址(仅做说明使用):https://api.polyv.net/live/v4/channel/distribute/update-batch

调用约束

1、接口调用有频率限制,详细请查看,调用常见异常,详细请查看

2、分发推流中不可修改推流地址

单元测试

	@Test
	public void testUpdateChannelDistribute() throws IOException, NoSuchAlgorithmException {
        LiveChannelDistributeUpdateRequest liveChannelDistributeUpdateRequest =
                new LiveChannelDistributeUpdateRequest();
        Boolean liveChannelDistributeUpdateResponse;
        try {
            String channelId = super.getAloneNewChannelId();
            LiveChannelDistributeUpdateRequest.UpdateDistribute updateDistribute =
                    new LiveChannelDistributeUpdateRequest.UpdateDistribute();
            updateDistribute.setId(super.getChannelDistributeId(channelId))
                    .setName("SDK测试修改云分发")
                    .setDistributeUrl("rtmp://xxxx.xxx")
                    .setDistributeLiveCode(super.getRandomString(6));
            liveChannelDistributeUpdateRequest.setChannelId(channelId).setContents(Arrays.asList(updateDistribute));
            liveChannelDistributeUpdateResponse = new LiveChannelDistributeServiceImpl().updateChannelDistribute(
                    liveChannelDistributeUpdateRequest);
            Assert.assertTrue(liveChannelDistributeUpdateResponse);
            if (liveChannelDistributeUpdateResponse) {
                //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

频道号

contents

true

Array

分发地址请求对象列表【详见UpdateDistribute参数描述

UpdateDistribute参数描述

参数名必选类型说明

id

true

Integer

云分发ID

name

false

String

分发地址名称,长度不能超过20

distributeUrl

false

String

推流地址,例:rtmp://polyv.net,需满足正则:(^([rR][tT][mM][pP]://)([\w-]+.)+[\w-]+(/[\w-./?%#&=]*)?$)

distributeLiveCode

false

String

直播码

返回对象描述

批量修改分分发地址返回实体


4、批量删除分发地址

描述

批量删除分发地址
接口地址(仅做说明使用):https://api.polyv.net/live/v4/channel/distribute/delete-batch

调用约束

1、接口调用有频率限制,详细请查看,调用常见异常,详细请查看

2、分发推流中不可删除分发地址

单元测试

	@Test
	public void testDeleteChannelDistribute() throws IOException, NoSuchAlgorithmException {
        LiveChannelDistributeDeleteRequest liveChannelDistributeDeleteRequest =
                new LiveChannelDistributeDeleteRequest();
        Boolean liveChannelDistributeDeleteResponse;
        try {
            String channelId = super.getAloneNewChannelId();
            liveChannelDistributeDeleteRequest.setChannelId(channelId).setDistributeIds("3884,3885");
            liveChannelDistributeDeleteResponse = new LiveChannelDistributeServiceImpl().deleteChannelDistribute(
                    liveChannelDistributeDeleteRequest);
            Assert.assertTrue(liveChannelDistributeDeleteResponse);
            if (liveChannelDistributeDeleteResponse) {
                //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

频道ID

distributeIds

true

String

分发ID,以英文逗号分割

返回对象描述

批量删除分发地址返回实体


5、修改云分发频道总开关

描述

修改单个频道云分发总开关,该功能需要超管开通才生效
接口地址(仅做说明使用):https://api.polyv.net/live/v4/channel/distribute/update-master-switch

调用约束

1、接口调用有频率限制,详细请查看,调用常见异常,详细请查看

单元测试

	@Test
	public void testUpdateMasterSwitch() throws IOException, NoSuchAlgorithmException {
        LiveDistributeUpdateMasterSwitchRequest liveDistributeUpdateMasterSwitchRequest =
                new LiveDistributeUpdateMasterSwitchRequest();
        Boolean liveDistributeUpdateMasterSwitchResponse;
        try {
            String channelId = super.createChannel();
            liveDistributeUpdateMasterSwitchRequest.setChannelId(channelId)
                    .setDistributeEnabled(LiveConstant.Flag.YES.getFlag());
            liveDistributeUpdateMasterSwitchResponse = new LiveChannelDistributeServiceImpl().updateMasterSwitch(
                    liveDistributeUpdateMasterSwitchRequest);
            Assert.assertTrue(liveDistributeUpdateMasterSwitchResponse);
            if (liveDistributeUpdateMasterSwitchResponse) {
                //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

频道号

distributeEnabled

false

String

频道云分发总开关,Y:开启,N:关闭,默认为Y

enforce

false

String

是否强制关闭,Y:强制关闭,N:非强制关闭,默认为N。非强制关闭时,频道如果正常直播中,接口会抛出异常

返回对象描述

修改云分发频道总开关返回实体


6、批量修改频道云分发开关

描述

批量修改频道云分发开关,该功能需要超管开通才生效
接口地址(仅做说明使用):https://api.polyv.net/live/v4/channel/distribute/update-switch

调用约束

1、接口调用有频率限制,详细请查看,调用常见异常,详细请查看

单元测试

	@Test
	public void testUpdateSwitch() throws IOException, NoSuchAlgorithmException {
        LiveDistributeUpdateSwitchRequest liveDistributeUpdateSwitchRequest = new LiveDistributeUpdateSwitchRequest();
        Boolean liveDistributeUpdateSwitchResponse;
        try {
            String channelId = super.getAloneNewChannelId();
            liveDistributeUpdateSwitchRequest.setChannelId(channelId)
                    .setDistributeIds(String.valueOf(super.getChannelDistributeId(channelId)))
                    .setDistributeEnabled(LiveConstant.Flag.YES.getFlag());
            liveDistributeUpdateSwitchResponse = new LiveChannelDistributeServiceImpl().updateSwitch(
                    liveDistributeUpdateSwitchRequest);
            Assert.assertTrue(liveDistributeUpdateSwitchResponse);
            if (liveDistributeUpdateSwitchResponse) {
                //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

频道号

distributeIds

true

String

云分发列表id,多个使用,分隔

distributeEnabled

false

String

云分发开关,Y:开启,N:关闭,默认为N

返回对象描述

批量修改频道云分发开关返回实体


7、查询云分发数据信息

描述

查询频道云分发数据信息
接口地址(仅做说明使用):https://api.polyv.net/live/v4/channel/distribute/get/statistic

调用约束

1、接口调用有频率限制,详细请查看,调用常见异常,详细请查看

单元测试

	@Test
	public void testGetDistributeStatistic() throws IOException, NoSuchAlgorithmException {
        LiveChannelDistributeStatisticRequest liveChannelDistributeStatisticRequest =
                new LiveChannelDistributeStatisticRequest();
        List<LiveChannelDistributeStatisticResponse> liveChannelDistributeStatisticResponse;
        try {
            String channelId = super.getAloneNewChannelId();
            liveChannelDistributeStatisticRequest.setChannelId(channelId)
                    .setSessionIds("g57pg85h1x")
                    .setStartTime(super.getDate(1639668105000L))
                    .setEndTime(super.getDate(1639679787000L));
            liveChannelDistributeStatisticResponse = new LiveChannelDistributeServiceImpl().getDistributeStatistic(
                    liveChannelDistributeStatisticRequest);
            Assert.assertNotNull(liveChannelDistributeStatisticResponse);
            if (liveChannelDistributeStatisticResponse != null) {
                //to do something ......
                log.debug("测试查询云分发数据信息成功 {}", JSON.toJSONString(liveChannelDistributeStatisticResponse));
            }
        } 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、请求正确,返回LiveChannelDistributeStatisticResponse对象,B端依据此对象处理业务逻辑;

2、请求参数校验不合格,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 输入参数 [xxx.chat.LivexxxRequest]对象校验失败,失败字段 [pic不能为空 / msg不能为空] ]

3、服务器处理异常,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 保利威请求返回数据错误,请求流水号:66e7ad29fd04425a84c2b2b562d2025b,错误原因: invalid signature. ]

请求入参描述

参数名必选类型说明

channelId

true

String

频道号

sessionIds

false

String

频道场次ID,多个使用,分隔,场次ID和直播开始结束时间不能同时为空

startTime

false

Date

直播开始时间,场次ID和直播开始结束时间不能同时为空

endTime

false

Date

直播结束时间,场次ID和直播开始结束时间不能同时为空

返回对象描述

返回对象是List<LiveChannelDistributeStatisticResponse>,LiveChannelDistributeStatisticResponse具体元素内容如下:

参数名类型说明

channelId

String

频道ID

sessionId

String

场次号

liveStartTime

Date

直播开始时间

liveEndTime

Date

直播结束时间

distributeUrl

String

云分发推流地址

distributeStartTime

Date

推流开始时间

distributeEndTime

Date

推流结束时间

duration

Integer

云分发持续时间,单位:秒

desc

String

错误描述,与 error.code 对应

Last updated