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個限制 【範例:要裁剪移除的是第1秒到第14秒,以及第25秒到第30秒的區間,則傳入的字串為 [{"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:關閉 |
