保利威文档中心

幫助中心

channelDistribute

更新時間:2025-09-11 15:18:09

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,以英文逗號分隔,不傳則預設查詢頻道下全部分發地址
appId false String POLYV 用戶 APP_ID,多帳號呼叫時此參數必填(即呼叫了 initMultiAccount() 設定多帳號呼叫),透過註冊保利威官網取得,路徑:官網->登入->直播(開發設定)
appSecret false String POLYV 用戶 APP_SECRET,多帳號呼叫時此參數必填(即呼叫了 initMultiAccount() 設定多帳號呼叫),透過註冊保利威官網取得,路徑:官網->登入->直播(開發設定)

回傳物件說明

參數名 類型 說明
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 參數說明
appId false String POLYV 用戶 APP_ID,多帳號呼叫時此參數必填(即呼叫了 initMultiAccount() 設定多帳號呼叫),透過註冊保利威官網取得,路徑:官網->登入->直播(開發設定)
appSecret false String POLYV 用戶 APP_SECRET,多帳號呼叫時此參數必填(即呼叫了 initMultiAccount() 設定多帳號呼叫),透過註冊保利威官網取得,路徑:官網->登入->直播(開發設定)
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 參數說明
appId false String POLYV 用戶 APP_ID,多帳號呼叫時此參數必填(即呼叫了 initMultiAccount() 設定多帳號呼叫),透過註冊保利威官網取得,路徑:官網->登入->直播(開發設定)
appSecret false String POLYV 用戶 APP_SECRET,多帳號呼叫時此參數必填(即呼叫了 initMultiAccount() 設定多帳號呼叫),透過註冊保利威官網取得,路徑:官網->登入->直播(開發設定)
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,以英文逗號分隔
appId false String POLYV 用戶 APP_ID,多帳號呼叫時此參數必填(即呼叫了 initMultiAccount() 設定多帳號呼叫),透過註冊保利威官網取得,路徑:官網->登入->直播(開發設定)
appSecret false String POLYV 用戶 APP_SECRET,多帳號呼叫時此參數必填(即呼叫了 initMultiAccount() 設定多帳號呼叫),透過註冊保利威官網取得,路徑:官網->登入->直播(開發設定)

回傳物件說明

批次刪除分發地址回傳實體




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。非強制關閉時,頻道如果正常直播中,介面會拋出異常
appId false String POLYV 用戶 APP_ID,多帳號呼叫時此參數必填(即呼叫了 initMultiAccount() 設定多帳號呼叫),透過註冊保利威官網取得,路徑:官網->登入->直播(開發設定)
appSecret false String POLYV 用戶 APP_SECRET,多帳號呼叫時此參數必填(即呼叫了 initMultiAccount() 設定多帳號呼叫),透過註冊保利威官網取得,路徑:官網->登入->直播(開發設定)

回傳物件說明

修改雲端分發頻道總開關回傳實體




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
appId false String POLYV 用戶 APP_ID,多帳號呼叫時此參數必填(即呼叫了 initMultiAccount() 設定多帳號呼叫),透過註冊保利威官網取得,路徑:官網->登入->直播(開發設定)
appSecret false String POLYV 用戶 APP_SECRET,多帳號呼叫時此參數必填(即呼叫了 initMultiAccount() 設定多帳號呼叫),透過註冊保利威官網取得,路徑:官網->登入->直播(開發設定)

回傳物件說明

批次修改頻道雲端分發開關回傳實體




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,錯誤

联系客服,在线咨询