subAccountService
1、搜尋影片
描述
通过视频标题、分类、标签等条件查找视频
接口地址(仅做说明使用):https://api.polyv.net//v3/video/list-video
呼叫限制
1、介面呼叫有頻率限制,詳細請查看,呼叫常見異常,詳細請查看
單元測試
@Test
public void testSearchVideoList() throws IOException, NoSuchAlgorithmException {
VodSubAccountSearchVideoListRequest vodSubAccountSearchVideoListRequest =
new VodSubAccountSearchVideoListRequest();
VodSubAccountSearchVideoListResponse vodSubAccountSearchVideoListResponse = null;
try {
vodSubAccountSearchVideoListRequest.setCategoryId("1602300731843")
.setTitle("学习英语")
.setUploader("主账号")
.setStatus("61")
.setContainSubCate("Y")
.setStartTime(super.getDate(2021, 1, 4, 10, 35))
.setEndTime(super.getDate(2021, 2, 5, 10, 35))
.setSort("creationTimeDesc")
//设置子账号相关
.setAppId(APP_ID)
.setSecretKey(SECRET_KEY);
vodSubAccountSearchVideoListResponse = new VodSubAccountServiceImpl().searchVideoList(
vodSubAccountSearchVideoListRequest);
Assert.assertNotNull(vodSubAccountSearchVideoListResponse);
if (vodSubAccountSearchVideoListResponse != null) {
log.debug("测试搜索视频成功,{}", JSON.toJSONString(vodSubAccountSearchVideoListResponse));
}
} 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、請求正確,回傳 VodSubAccountSearchVideoListResponse 物件,B 端依據此物件處理業務邏輯;
2、請求參數驗證不合格,拋出 PloyvSdkException,錯誤訊息請見 PloyvSdkException.getMessage(),例如 [ 輸入參數 [xxx.chat.VodxxxRequest] 物件驗證失敗,失敗欄位 [pic 不能為空 / msg 不能為空] ]
3、伺服器處理異常,拋出 PloyvSdkException,錯誤訊息請見 PloyvSdkException.getMessage(),例如 [ 保利威請求回傳資料錯誤,請求流水號:66e7ad29fd04425a84c2b2b562d2025b,錯誤原因: invalid signature. ]
請求入參描述
| 參數名 | 必選 | 類型 | 說明 |
|---|---|---|---|
| categoryId | false | String | 影片分類ID【對應API文件的cataId欄位】 |
| title | false | String | 依標題搜尋 |
| uploader | false | String | 上傳者 |
| status | false | String | 影片狀態碼;60/61:已發布;10:等待編碼;20:正在編碼;50:等待審核;51:審核不通過;-1:已刪除; |
| containSubCate | false | String | 是否包含子分類,Y 包含,N 不包含 |
| startTime | false | Date | 按建立時間範圍查詢,起始時間,格式為yyyy-MM-dd HH:mm:ss |
| endTime | false | Date | 結束時間,格式為yyyy-MM-dd HH:mm:ss |
| sort | false | String | 排序creationTimeDesc或creationTimeAsc |
| appId | true | String | 子帳號appId |
| secretKey | true | String | 子帳號secretKey |
| currentPage | false | Integer | 頁數,預設為1【對應API文件的page欄位】 |
| pageSize | false | Integer | 每頁顯示的資料筆數,預設每頁顯示20筆資料 |
回傳物件描述
| 參數名 | 類型 | 說明 |
|---|---|---|
| contents | Array | 查詢的結果列表【詳見VodSearchVideoList參數描述】 |
| pageSize | Integer | 每頁顯示的資料筆數,預設每頁顯示20筆資料 |
| currentPage | Integer | 目前頁面【對應API文件的pageNumber欄位】 |
| totalItems | Integer | 記錄總筆數 |
| totalPage | Integer | 總頁數【對應API文件的totalPages欄位】 |
VodSearchVideoList參數描述
| 參數名稱 | 類型 | 說明 |
|---|---|---|
| videoId | String | 影片 ID【對應 API 文件的 vid 欄位】 |
| basicInfo | BasicInfo | 查詢的影片基本資訊【詳見 BasicInfo 參數說明】 |
BasicInfo參數描述
| 參數名 | 類型 | 說明 |
|---|---|---|
| title | String | 影片標題 |
| description | String | 影片描述 |
| duration | Integer | 原始影片時長,單位:秒 |
| coverURL | String | 首圖網址,大圖 |
| creationTime | Date | 建立時間 |
| updateTime | Date | 更新時間 |
| size | Long | 原始檔案大小,單位:Bytes |
| status | Integer | 影片狀態碼;60/61:已發布;10:等待編碼;20:正在編碼;50:等待審核;51:審核不通過;-1:已刪除; |
| categoryId | String | 分類ID,如1為根目錄【對應API文件的cateId欄位】 |
| categoryName | String | 分類名稱【對應API文件的cateName欄位】 |
| tags | String | 標籤 |
| uploader | String | 上傳者 |
2、查詢影片資訊
描述
通过视频id查询视频信息
接口地址(仅做说明使用):https://api.polyv.net//v3/video/get-video-info
呼叫限制
1、介面呼叫有頻率限制,詳細請查看,呼叫常見異常,詳細請查看
單元測試
@Test
public void testGetVideoInfo() throws IOException, NoSuchAlgorithmException {
VodSubAccountQueryVideoInfoRequest vodSubAccountQueryVideoInfoRequest =
new VodSubAccountQueryVideoInfoRequest();
List<VodSubAccountQueryVideoInfoResponse> vodSubAccountQueryVideoInfoResponseList = null;
try {
vodSubAccountQueryVideoInfoRequest.setVideoIds(super.getTestVideoId())
.setFilters("basicInfo,metaData,transcodeInfo,snapshotInfo")
//设置子账号相关
.setAppId(APP_ID)
.setSecretKey(SECRET_KEY);
vodSubAccountQueryVideoInfoResponseList = new VodSubAccountServiceImpl().getVideoInfo(
vodSubAccountQueryVideoInfoRequest);
Assert.assertNotNull(vodSubAccountQueryVideoInfoResponseList);
if (vodSubAccountQueryVideoInfoResponseList != null) {
log.debug("测试查询视频信息,{}", JSON.toJSONString(vodSubAccountQueryVideoInfoResponseList));
}
} 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、請求正確,回傳 VodSubAccountQueryVideoInfoResponse 物件,B 端依據此物件處理業務邏輯;
2、請求參數驗證不合格,拋出 PloyvSdkException,錯誤訊息請見 PloyvSdkException.getMessage(),例如 [ 輸入參數 [xxx.chat.VodxxxRequest] 物件驗證失敗,失敗欄位 [pic 不能為空 / msg 不能為空] ]
3、伺服器處理異常,拋出 PloyvSdkException,錯誤訊息請見 PloyvSdkException.getMessage(),例如 [ 保利威請求回傳資料錯誤,請求流水號:66e7ad29fd04425a84c2b2b562d2025b,錯誤原因: invalid signature. ]
請求入參說明
| 參數名 | 必選 | 類型 | 說明 |
|---|---|---|---|
| videoIds | true | String | 影片ID,多個影片ID用英文逗號分隔(狀態為半形),例如 1b8be3,239c2e【對應 API 文件的 vids 欄位】 |
| filters | false | String | 選擇需要回傳的影片資訊,多個以英文逗號分隔(狀態為半形,例如 basicInfo,metaData),取值:basicInfo,metaData,transcodeInfo,snapshotInfo,分別代表基礎資訊、元資料、轉碼資訊、截圖資訊,為空則回傳基礎資訊【對應 API 文件的 filter 欄位】 |
| appId | true | String | 子帳號 appId |
| secretKey | true | String | 子帳號 secretKey |
回傳物件描述
回傳物件是 List<VodSubAccountQueryVideoInfoResponse>,VodSubAccountQueryVideoInfoResponse 具體元素內容如下:
| 參數名 | 類型 | 說明 |
|---|---|---|
| videoId | String | 影片ID【對應API文件的vid欄位】 |
| basicInfo | BasicInfo | 查詢的影片基本資訊【詳見BasicInfo參數說明】 |
| transcodeInfos | Array | 查詢的影片轉碼資訊【詳見TranscodeInfos參數說明】 |
| metaData | MetaData | 查詢的影片元資料【詳見MetaData參數說明】 |
| snapshotInfo | SnapshotInfo | 查詢的影片截圖【詳見SnapshotInfo參數說明】 |
BasicInfo參數描述
| 參數名 | 類型 | 說明 |
|---|---|---|
| title | String | 影片標題 |
| description | String | 影片描述 |
| duration | Integer | 原始影片時長,單位:秒 |
| coverURL | String | 首圖網址,大圖 |
| creationTime | Date | 建立時間 |
| updateTime | Date | 更新時間 |
| size | Long | 原始檔案大小,單位:Bytes |
| status | Integer | 影片狀態碼;60/61:已發布;10:等待編碼;20:正在編碼;50:等待審核;51:審核不通過;-1:已刪除; |
| categoryId | String | 分類 ID,如 1 為根目錄【對應 API 文件的 cateId 欄位】 |
| categoryName | String | 分類名稱【對應 API 文件的 cateName 欄位】 |
| tags | String | 標籤 |
| uploader | String | 上傳者 |
TranscodeInfos參數描述
| 參數名 | 類型 | 說明 |
|---|---|---|
| playUrl | String | 播放位址 |
| definition | String | 清晰度,SOURCE:原始清晰度,LD:普清,SD:標清,HD:高清 |
| duration | Integer | 時長,秒 |
| encrypt | Boolean | 加密影片為true,非加密為false |
| format | String | 轉碼格式,如mp4、flv、pdx、hls |
| fps | Integer | 影片幀率 |
| bitrate | Integer | 碼率kbps |
| height | Integer | 解析度高,單位:px |
| width | Integer | 解析度寬,單位:px |
| status | String | 影片狀態, normal:可以正常播放,unavailable:無法正常播放 |
| fileSize | Long | 編碼後影片大小,單位:位元組 |
MetaData參數描述
| 參數名 | 類型 | 說明 |
|---|---|---|
| size | Long | 原始檔案大小,單位:Bytes |
| format | String | 影片容器類型,如 mp4、flv 等 |
| duration | Integer | 原始影片長度,單位:秒 |
| bitrate | Integer | 影片位元率,單位:bps |
| fps | Integer | 影片幀率 |
| height | Integer | 解析度高度,單位:px |
| width | Integer | 解析度寬度,單位:px |
| codec | String | 編碼格式,如 h264、h265 等 |
SnapshotInfo參數描述
| 參數名稱 | 類型 | 說明 |
|---|---|---|
| imageUrl | Array | 截圖網址陣列 |
3、修改影片資訊
描述
通过视频id修改视频信息
接口地址(仅做说明使用):https://api.polyv.net//v3/video/update-info
呼叫限制
1、介面呼叫有頻率限制,詳細請查看,呼叫常見異常,詳細請查看
單元測試
@Test
public void testUpdateVideoInfo() throws IOException, NoSuchAlgorithmException {
VodSubAccountUpdateVideoInfoRequest vodSubAccountUpdateVideoInfoRequest =
new VodSubAccountUpdateVideoInfoRequest();
Boolean vodUpdateVideoInfoResponse = null;
try {
vodSubAccountUpdateVideoInfoRequest.setVideoId(super.getTestVideoId())
.setDesc("这是一个通过junit合并的视频_1")
.setTag("junit测试_1")
.setPublishUrl(null)
//设置子账号相关
.setAppId(APP_ID)
.setSecretKey(SECRET_KEY);
vodUpdateVideoInfoResponse = new VodSubAccountServiceImpl().updateVideoInfo(
vodSubAccountUpdateVideoInfoRequest);
Assert.assertTrue(vodUpdateVideoInfoResponse);
if (vodUpdateVideoInfoResponse) {
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.VodxxxRequest] 物件驗證失敗,失敗欄位 [pic 不能為空 / msg 不能為空] ]
3、伺服器處理異常,拋出 PloyvSdkException,錯誤訊息請見 PloyvSdkException.getMessage(),例如 [ 保利威請求回傳資料錯誤,請求流水號:66e7ad29fd04425a84c2b2b562d2025b,錯誤原因: invalid signature. ]
請求入參描述
| 參數名 | 必選 | 類型 | 說明 |
|---|---|---|---|
| videoId | true | String | 影片ID【對應API文件的vid欄位】 |
| title | false | String | 影片標題 |
| desc | false | String | 影片描述【對應API文件的describ欄位】 |
| tag | false | String | 影片標籤資訊 |
| publishUrl | false | String | 外部連結網址 |
| appId | true | String | 子帳號appId |
| secretKey | true | String | 子帳號secretKey |
回傳物件描述
true 表示修改成功,false 表示修改失敗
4、刪除影片
描述
通过视频id删除视频
接口地址(仅做说明使用):https://api.polyv.net//v3/video/delete-video
呼叫限制
1、介面呼叫有頻率限制,詳細請查看,呼叫常見異常,詳細請查看
單元測試
@Test
public void testDeleteVideo() throws IOException, NoSuchAlgorithmException {
VodSubAccountDeleteVideoRequest vodSubAccountDeleteVideoRequest = new VodSubAccountDeleteVideoRequest();
Boolean vodDeleteVideoResponse = null;
try {
vodSubAccountDeleteVideoRequest.setVideoId("1b448be3238415eee2fa40753737255b_1")
//设置子账号相关
.setAppId(APP_ID).setSecretKey(SECRET_KEY);
vodDeleteVideoResponse = new VodSubAccountServiceImpl().deleteVideo(vodSubAccountDeleteVideoRequest);
Assert.assertTrue(vodDeleteVideoResponse);
if (vodDeleteVideoResponse) {
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.VodxxxRequest] 物件驗證失敗,失敗欄位 [pic 不能為空 / msg 不能為空] ]
3、伺服器處理異常,拋出 PloyvSdkException,錯誤訊息請見 PloyvSdkException.getMessage(),例如 [ 保利威請求回傳資料錯誤,請求流水號:66e7ad29fd04425a84c2b2b562d2025b,錯誤原因: invalid signature. ]
請求入參說明
| 參數名稱 | 必填 | 類型 | 說明 |
|---|---|---|---|
| videoId | true | String | 影片ID【對應API文件的vid欄位】 |
| appId | true | String | 子帳號appId |
| secretKey | true | String | 子帳號secretKey |
回傳物件描述
true 表示刪除影片成功,false 表示刪除影片失敗
5、新增影片分類
描述
通过分类名等参数新增视频分类
接口地址(仅做说明使用):https://api.polyv.net//v3/category/add
呼叫限制
1、介面呼叫有頻率限制,詳細請查看,呼叫常見異常,詳細請查看
單元測試
@Test
public void testAddCategory() throws IOException, NoSuchAlgorithmException {
VodSubAccountAddCategoryRequest vodSubAccountAddCategoryRequest = new VodSubAccountAddCategoryRequest();
String vodDeleteVideoResponse = null;
try {
vodSubAccountAddCategoryRequest.setName("junit测试新增分类20210309").setParentId(null)
//设置子账号相关
.setAppId(APP_ID).setSecretKey(SECRET_KEY);
vodDeleteVideoResponse = new VodSubAccountServiceImpl().addCategory(vodSubAccountAddCategoryRequest);
Assert.assertNotNull(vodDeleteVideoResponse);
if (vodDeleteVideoResponse != null) {
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、請求正確,回傳 String 物件,B 端依據此物件處理業務邏輯;
2、請求參數驗證不合格,拋出 PloyvSdkException,錯誤訊息請見 PloyvSdkException.getMessage(),例如 [ 輸入參數 [xxx.chat.VodxxxRequest] 物件驗證失敗,失敗欄位 [pic不能為空 / msg不能為空] ]
3、伺服器處理異常,拋出 PloyvSdkException,錯誤資訊請見 PloyvSdkException.getMessage(),例如 [ 保利威請求回傳資料錯誤,請求流水號:66e7ad29fd04425a84c2b2b562d2025b,錯誤原因: invalid signature. ]
請求入參描述
| 參數名 | 必選 | 類型 | 說明 |
|---|---|---|---|
| name | true | String | 分類名稱 |
| parentId | false | String | 父分類 ID,預設為 1,放在根目錄下 |
| appId | true | String | 子帳號 appId |
| secretKey | true | String | 子帳號 secretKey |
回傳物件描述
新增成功返回新增的分類 ID
6、查詢影片分類
描述
通过分类id查询视频分类
接口地址(仅做说明使用):https://api.polyv.net//v3/category/get
呼叫限制
1、介面呼叫有頻率限制,詳細請查看,呼叫常見異常,詳細請查看
單元測試
@Test
public void testQueryCategory() throws IOException, NoSuchAlgorithmException {
VodSubAccountQueryCategoryRequest vodSubAccountQueryCategoryRequest = new VodSubAccountQueryCategoryRequest();
VodSubAccountQueryCategoryResponse vodSubAccountQueryCategoryResponse = null;
try {
vodSubAccountQueryCategoryRequest.setCategoryId("1608891483165")
//设置子账号相关
.setAppId(APP_ID).setSecretKey(SECRET_KEY).setCurrentPage(1).setPageSize(20);
vodSubAccountQueryCategoryResponse = new VodSubAccountServiceImpl().queryCategory(
vodSubAccountQueryCategoryRequest);
Assert.assertNotNull(vodSubAccountQueryCategoryResponse);
if (vodSubAccountQueryCategoryResponse != null) {
log.debug("测试查询视频分类成功,{}", JSON.toJSONString(vodSubAccountQueryCategoryResponse));
}
} 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、請求正確,回傳VodSubAccountQueryCategoryResponse物件,B端依據此物件處理業務邏輯;
2、請求參數驗證不合格,拋出 PloyvSdkException,錯誤訊息請見 PloyvSdkException.getMessage(),例如 [ 輸入參數 [xxx.chat.VodxxxRequest] 物件驗證失敗,失敗欄位 [pic 不能為空 / msg 不能為空] ]
3、伺服器處理異常,拋出 PloyvSdkException,錯誤資訊請見 PloyvSdkException.getMessage(),例如 [ 保利威請求回傳資料錯誤,請求流水號:66e7ad29fd04425a84c2b2b562d2025b,錯誤原因: invalid signature. ]
請求入參說明
| 參數名 | 必選 | 類型 | 說明 |
|---|---|---|---|
| categoryId | true | String | 分類ID【對應API文件的cateId欄位】 |
| appId | true | String | 子帳號appId |
| secretKey | true | String | 子帳號secretKey |
| currentPage | false | Integer | 頁數,預設為1【對應API文件的page欄位】 |
| pageSize | false | Integer | 每頁顯示的資料筆數,預設每頁顯示20筆資料 |
回傳物件描述
| 參數名 | 類型 | 說明 |
|---|---|---|
| category | Category | 目前分類【詳見Category參數說明】 |
| subCategoryTotal | Integer | 下一層子分類數量 |
| subCategories | Array | 下一層子分類列表【詳見Category參數說明】 |
Category參數描述
| 參數名 | 類型 | 說明 |
|---|---|---|
| categoryId | String | 分類 ID【對應 API 文件的 cateId 欄位】 |
| categoryName | String | 分類名稱【對應 API 文件的 cateName 欄位】 |
| parentId | String | 父分類 ID |
7、修改影片分類
描述
修改视频分类
接口地址(仅做说明使用):https://api.polyv.net//v3/category/update-info
呼叫限制
1、介面呼叫有頻率限制,詳細請查看,呼叫常見異常,詳細請查看
單元測試
@Test
public void testUpdateCategory() throws IOException, NoSuchAlgorithmException {
VodSubAccountUpdateCategoryRequest vodSubAccountUpdateCategoryRequest =
new VodSubAccountUpdateCategoryRequest();
Boolean vodUpdateCategoryResponse = null;
try {
vodSubAccountUpdateCategoryRequest.setCategoryId("1602671097888").setCategoryName("勿删分类-"+super.getRandomString(4))
//设置子账号相关
.setAppId(APP_ID).setSecretKey(SECRET_KEY);
vodUpdateCategoryResponse = new VodSubAccountServiceImpl().updateCategory(
vodSubAccountUpdateCategoryRequest);
Assert.assertTrue(vodUpdateCategoryResponse);
if (vodUpdateCategoryResponse) {
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.VodxxxRequest] 物件驗證失敗,失敗欄位 [pic 不能為空 / msg 不能為空] ]
3、伺服器處理異常,拋出 PloyvSdkException,錯誤資訊請參閱 PloyvSdkException.getMessage(),例如 [ 保利威請求回傳資料錯誤,請求流水號:66e7ad29fd04425a84c2b2b562d2025b,錯誤原因: invalid signature. ]
請求參數說明
| 參數名 | 必選 | 類型 | 說明 |
|---|---|---|---|
| categoryId | true | String | 分類 id【對應 API 文件的 cateId 欄位】 |
| categoryName | true | String | 分類名稱【對應 API 文件的 cateName 欄位】 |
| appId | true | String | 子帳號 appId |
| secretKey | true | String | 子帳號 secretKey |
回傳物件描述
true 表示修改成功,false 表示修改失敗
8、刪除影片分類
描述
通过视频分类id删除视频分类
接口地址(仅做说明使用):https://api.polyv.net//v3/category/delete
呼叫限制
1、介面呼叫有頻率限制,詳細請查看,呼叫常見異常,詳細請查看
單元測試
@Test
public void testDeleteCategory() throws IOException, NoSuchAlgorithmException {
VodSubAccountDeleteCategoryRequest vodSubAccountDeleteCategoryRequest =
new VodSubAccountDeleteCategoryRequest();
Boolean vodDeleteCategoryResponse = null;
try {
//生成测试数据
String categoryId = super.addCategoryOther();
vodSubAccountDeleteCategoryRequest.setCategoryId(categoryId)
//设置子账号相关
.setAppId(APP_ID).setSecretKey(SECRET_KEY);
vodDeleteCategoryResponse = new VodSubAccountServiceImpl().deleteCategory(
vodSubAccountDeleteCategoryRequest);
Assert.assertTrue(vodDeleteCategoryResponse);
if (vodDeleteCategoryResponse) {
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.VodxxxRequest] 物件驗證失敗,失敗欄位 [pic 不能為空 / msg 不能為空] ]
3、伺服器處理異常,拋出 PloyvSdkException,錯誤資訊請參閱 PloyvSdkException.getMessage(),例如 [ 保利威請求回傳資料錯誤,請求流水號:66e7ad29fd04425a84c2b2b562d2025b,錯誤原因: invalid signature. ]
請求入參說明
| 參數名 | 必選 | 類型 | 說明 |
|---|---|---|---|
| categoryId | true | String | 分類id【對應api文件的cateId欄位】 |
| appId | true | String | 子帳號appId |
| secretKey | true | String | 子帳號secretKey |
回傳物件描述
true 表示刪除成功,false 表示刪除失敗
9、批次修改影片所屬分類
描述
通过视频id批量修改视频所属分类
接口地址(仅做说明使用):https://api.polyv.net//v3/video/update-category
呼叫限制
1、介面呼叫有頻率限制,詳細請查看,呼叫常見異常,詳細請查看
單元測試
@Test
public void testUpdateVideoCategory() throws IOException, NoSuchAlgorithmException {
VodSubAccountUpdateVideoCategoryRequest vodSubAccountUpdateVideoCategoryRequest =
new VodSubAccountUpdateVideoCategoryRequest();
Boolean vodUpdateVideoCategoryResponse = null;
try {
vodSubAccountUpdateVideoCategoryRequest.setVideoIds(super.getTestVideoId()).setCategoryId("1602300731843")
//设置子账号相关
.setAppId(APP_ID)
.setSecretKey(SECRET_KEY);
vodUpdateVideoCategoryResponse = new VodSubAccountServiceImpl().updateVideoCategory(
vodSubAccountUpdateVideoCategoryRequest);
Assert.assertTrue(vodUpdateVideoCategoryResponse);
if (vodUpdateVideoCategoryResponse) {
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.VodxxxRequest] 物件驗證失敗,失敗欄位 [pic 不能為空 / msg 不能為空] ]
3、伺服器處理異常,拋出 PloyvSdkException,錯誤資訊請參閱 PloyvSdkException.getMessage(),例如 [ 保利威請求回傳資料錯誤,請求流水號:66e7ad29fd04425a84c2b2b562d2025b,錯誤原因: invalid signature. ]
請求入參說明
| 參數名 | 必選 | 類型 | 說明 |
|---|---|---|---|
| videoIds | true | String | 影片ID串,多個影片ID之間用英文逗號分隔(狀態為半形),例如 1b8be3,239c2e【對應 API 文件的 vids 欄位】 |
| categoryId | false | String | 影片分類 ID【對應 API 文件的 cateId 欄位】 |
| appId | true | String | 子帳號 appId |
| secretKey | true | String | 子帳號 secretKey |
回傳物件描述
true 表示修改成功,false 表示修改失敗
10、修改影片分類屬性設定
描述
通过分类id修改视频分类属性设置
接口地址(仅做说明使用):https://api.polyv.net//v3/category/update-profile
呼叫限制
1、介面呼叫有頻率限制,詳細請查看,呼叫常見異常,詳細請查看
單元測試
@Test
public void testUpdateCategoryProfile() throws IOException, NoSuchAlgorithmException {
VodSubAccountUpdateCategoryProfileRequest vodSubAccountUpdateCategoryProfileRequest =
new VodSubAccountUpdateCategoryProfileRequest();
Boolean vodUpdateCategoryProfileResponse = null;
try {
vodSubAccountUpdateCategoryProfileRequest.setCategoryId("1615286323771")
.setEnabled("Y")
.setKeepSource(0)
.setEncrypt(0)
.setEncryptLevel("open")
.setIsEdu(0)
.setEncodeAAC(0)
//设置子账号相关
.setAppId(APP_ID)
.setSecretKey(SECRET_KEY);
vodUpdateCategoryProfileResponse = new VodSubAccountServiceImpl().updateCategoryProfile(
vodSubAccountUpdateCategoryProfileRequest);
Assert.assertTrue(vodUpdateCategoryProfileResponse);
if (vodUpdateCategoryProfileResponse) {
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.VodxxxRequest] 物件驗證失敗,失敗欄位 [pic 不能為空 / msg 不能為空] ]
3、伺服器處理異常,拋出 PloyvSdkException,錯誤資訊請參閱 PloyvSdkException.getMessage(),例如 [ 保利威請求回傳資料錯誤,請求流水號:66e7ad29fd04425a84c2b2b562d2025b,錯誤原因: invalid signature. ]
請求入參說明
| 參數名稱 | 必填 | 類型 | 說明 |
|---|---|---|---|
| categoryId | 是 | String | 分類 ID【對應 API 文件的 cateId 欄位】 |
| enabled | 否 | String | 是否啟用分類設定 Y:啟用, N:關閉,預設值為 N:關閉 |
| keepSource | 否 | Integer | 1:原始檔案播放;0:非原始檔案播放,若為原始檔案播放,encrypt、encryptLevel、isEdu、encodeAAC 參數不生效,預設值為 0:非原始檔案播放 |
| encrypt | 否 | Integer | 1:開啟影片加密,0:不加密,預設值為 0:不加密 |
| encryptLevel | 否 | String | 加密等級,取值有: open、web、app、wxa_app,分別代表非加密授權,Web 授權,APP 授權,小程式授權,預設值為 open:非加密授權 |
| isEdu | 否 | Integer | 1:啟用錄製螢幕優化, 0:關閉,預設值為 0:關閉 |
| encodeAAC | 否 | Integer | 1:產生 aac, 0:不產生,預設為 0:不產生 |
| appId | 是 | String | 子帳號 appId |
| secretKey | 是 | String | 子帳號 secretKey |
回傳物件描述
true 表示修改成功,false 表示修改失敗
11、取得 Playsafe Token
描述
通过子账号appId与视频id获取播放凭证,用于播放加密视频
接口地址(仅做说明使用):https://hls.videocc.net//service/v2/token/create-child
呼叫限制
1、介面呼叫有頻率限制,詳細請查看,呼叫常見異常,詳細請查看
2、如果一個 token(播放憑證)尚未過期,此時使用相同的 videoId、viewerId、viewerIp、isWxa 參數值請求該介面,則會複用原來的 token,並延長原 token 的有效期。
單元測試
@Test
public void testGetPlaySafeToken() throws IOException, NoSuchAlgorithmException {
VodSubAccountGetPlaySafeTokenRequest vodSubAccountGetPlaySafeTokenRequest =
new VodSubAccountGetPlaySafeTokenRequest();
VodSubAccountGetPlaySafeTokenResponse vodSubAccountGetPlaySafeTokenResponse = null;
try {
vodSubAccountGetPlaySafeTokenRequest.setVideoId("1b448be32370f4822ac40fd926112a66_1")
.setViewerId("ovtl9t_RxnrTdqkXqkT5Q5lnxp2A")
.setViewerIp(super.getRandomIp())
.setViewerName("TestViewerName")
.setExpires(Long.parseLong("60"))
.setDisposable(Boolean.TRUE)
.setIsWxa(0)
//设置子账号相关
.setAppId(APP_ID)
.setSecretKey(SECRET_KEY);
vodSubAccountGetPlaySafeTokenResponse = new VodSubAccountServiceImpl().getPlaySafeToken(
vodSubAccountGetPlaySafeTokenRequest);
Assert.assertNotNull(vodSubAccountGetPlaySafeTokenResponse);
if (vodSubAccountGetPlaySafeTokenResponse != null) {
log.debug("测试获取Playsafe Token成功,{}", JSON.toJSONString(vodSubAccountGetPlaySafeTokenResponse));
}
} 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、請求正確,回傳 VodSubAccountGetPlaySafeTokenResponse 物件,B 端依據此物件處理業務邏輯;
2、請求參數驗證不合格,拋出 PloyvSdkException,錯誤訊息請見 PloyvSdkException.getMessage(),例如 [ 輸入參數 [xxx.chat.VodxxxRequest] 物件驗證失敗,失敗欄位 [pic不能為空 / msg不能為空] ]
3、伺服器處理異常,拋出 PloyvSdkException,錯誤資訊請見 PloyvSdkException.getMessage(),例如 [ 保利威請求回傳資料錯誤,請求流水號:66e7ad29fd04425a84c2b2b562d2025b,錯誤原因:invalid signature. ]
請求參數說明
| 參數名 | 必選 | 類型 | 說明 |
|---|---|---|---|
| videoId | true | String | 影片ID,例如 e6b23c6f519c5906e54a13b8200d7bb0_e |
| viewerId | true | String | 觀看者ID,要求不同的觀看者使用不同的ID |
| viewerIp | false | String | 觀看者IP,如果為空,會自動獲取呼叫該介面時的IP |
| viewerName | false | String | 觀看者名稱 |
| expires | false | Long | token 有效時長,單位為秒。為空時預設為10分鐘 |
| disposable | false | Boolean | token有效期,true表示token僅一次有效(驗證一次後,token就失效了),false表示在有效期內可以進行多次驗證。預設為false |
| isWxa | false | Integer | 是否微信小程式播放,1為是,0為否。預設為0【對應api文件的iswxa欄位】 |
| extraParams | false | String | 自訂的其他參數 |
| appId | true | String | 子帳號appId |
| secretKey | true | String | 子帳號secretKey |
回傳物件描述
| 參數名 | 類型 | 說明 |
|---|---|---|
| token | String | token(播放憑證) |
| userId | String | 使用者ID |
| videoId | String | 影片ID,例如 e6b23c6f519c5906e54a13b8200d7bb0_e |
| viewerIp | String | 觀看者IP,若為空,則自動取得呼叫該介面時的IP |
| viewerId | String | 觀看者ID,要求不同的觀看者使用不同的ID |
| viewerName | String | 觀看者名稱 |
| extraParams | String | 自訂的其他參數 |
| ttl | Long | token 有效時長,單位為毫秒 |
| createdTime | Date | token 建立時間 |
| expiredTime | Date | token 過期時間 |
| isWxa | Integer | 是否為微信小程式播放,1為是,0為否【對應API文件的iswxa欄位】 |
| disposable | Boolean | token有效期,true表示token僅一次有效(驗證一次後,token即失效),false表示在有效期內可進行多次驗證 |
12、查詢子帳號統計彙總資料
描述
按日期查询子账号统计汇总数据
接口地址(仅做说明使用):https://api.polyv.net/v2/sub-account/stats/agg/page
呼叫限制
1、介面呼叫有頻率限制,詳細請查看,呼叫常見異常,詳細請查看
單元測試
@Test
public void testGetSubStatsAgg() throws IOException, NoSuchAlgorithmException {
VodSubAccountStatsAggPageRequest vodSubAccountStatsAggPageRequest = new VodSubAccountStatsAggPageRequest();
VodSubAccountStatsAggPageResponse vodSubAccountStatsAggPageResponse = null;
try {
vodSubAccountStatsAggPageRequest.setStartDate(getDate(2020, 6, 24)).setEndDate(getDate(2021, 4, 24));
vodSubAccountStatsAggPageResponse = new VodSubAccountServiceImpl().getSubStatsAgg(
vodSubAccountStatsAggPageRequest);
Assert.assertNotNull(vodSubAccountStatsAggPageResponse);
if (vodSubAccountStatsAggPageResponse != null) {
log.debug("测试查询子账号统计汇总数据成功{}", JSON.toJSONString(vodSubAccountStatsAggPageResponse));
}
} 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、請求正確,回傳 VodSubAccountStatsAggPageResponse 物件,B 端依據此物件處理業務邏輯;
2、請求參數驗證不合格,拋出 PloyvSdkException,錯誤訊息請見 PloyvSdkException.getMessage(),例如 [ 輸入參數 [xxx.chat.VodxxxRequest] 物件驗證失敗,失敗欄位 [pic 不能為空 / msg 不能為空] ]
3、伺服器處理異常,拋出 PloyvSdkException,錯誤訊息請見 PloyvSdkException.getMessage(),例如 [ 保利威請求回傳資料錯誤,請求流水號:66e7ad29fd04425a84c2b2b562d2025b,錯誤原因: invalid signature. ]
請求入參描述
| 參數名 | 必填 | 類型 | 說明 |
|---|---|---|---|
| startDate | true | Date | 查詢的開始時間,格式要求:yyyy-MM-dd,時間跨度不得超過一年 |
| endDate | true | Date | 查詢的結束時間,格式要求:yyyy-MM-dd,時間跨度不得超過一年 |
| false | String | 要查詢的子帳號電子郵件,若同時傳入 email 和 appId,則優先使用 email | |
| appId | false | String | 要查詢的子帳號 appId |
| currentPage | false | Integer | 頁碼,預設為 1【對應 API 文件的 page 欄位】 |
| pageSize | false | Integer | 每頁顯示的資料筆數,預設每頁顯示 20 筆資料 |
回傳物件描述
| 參數名 | 類型 | 說明 |
|---|---|---|
| contents | Array | 查詢的結果列表【詳見VodContents參數描述】 |
| pageSize | Integer | 每頁顯示的資料筆數,預設每頁顯示20筆資料 |
| currentPage | Integer | 當前頁【對應API文件的pageNumber欄位】 |
| totalItems | Integer | 記錄總筆數 |
| totalPage | Integer | 總頁數【對應API文件的totalPages欄位】 |
VodContentsList參數描述
| 參數名稱 | 類型 | 說明 |
|---|---|---|
| String | 子帳號電子郵件,若子帳號已刪除,則此欄位為 null | |
| appId | String | 子帳號 appId |
| flowSize | Long | 原始檔案大小,單位:byte |
| view | Long | 播放次數,單位:次 |
| duration | Long | 播放時長,單位:秒 |
13、查詢子帳號統計詳情
描述
按日期查询子账号统计详情列表
接口地址(仅做说明使用):https://api.polyv.net/v2/sub-account/stats/detail/list
呼叫限制
1、介面呼叫有頻率限制,詳細請查看,呼叫常見異常,詳細請查看
2、email 和 appId 不能同時為空
單元測試
@Test
public void testGetSubStatsDetailList() throws IOException, NoSuchAlgorithmException {
VodSubAccountStatsDetailRequest vodSubAccountStatsDetailRequest = new VodSubAccountStatsDetailRequest();
VodSubAccountStatsDetailResponse vodSubAccountStatsDetailResponse = null;
try {
vodSubAccountStatsDetailRequest.setStartDate(getDate(2021, 4, 10))
.setEndDate(getDate(2021, 4, 24))
.setAppId(APP_ID);
vodSubAccountStatsDetailResponse = new VodSubAccountServiceImpl().getSubStatsDetailList(
vodSubAccountStatsDetailRequest);
Assert.assertNotNull(vodSubAccountStatsDetailResponse);
if (vodSubAccountStatsDetailResponse != null) {
log.debug("测试测试查询子账号统计详情{}", JSON.toJSONString(vodSubAccountStatsDetailResponse));
}
} 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、請求正確,回傳 VodSubAccountStatsDetailResponse 物件,B 端依據此物件處理業務邏輯;
2、請求參數驗證不合格,拋出 PloyvSdkException,錯誤訊息請見 PloyvSdkException.getMessage(),例如 [ 輸入參數 [xxx.chat.VodxxxRequest] 物件驗證失敗,失敗欄位 [pic 不能為空 / msg 不能為空] ]
3、伺服器處理異常,拋出 PloyvSdkException,錯誤資訊請參閱 PloyvSdkException.getMessage(),例如 [ 保利威請求回傳資料錯誤,請求流水號:66e7ad29fd04425a84c2b2b562d2025b,錯誤原因: invalid signature. ]
請求參數說明
| 參數名 | 必選 | 類型 | 說明 |
|---|---|---|---|
| startDate | true | Date | 查詢的開始時間,格式要求:yyyy-MM-dd,時間跨度不能超過一年 |
| endDate | true | Date | 查詢的結束時間,格式要求:yyyy-MM-dd,時間跨度不能超過一年 |
| false | String | 要查詢的子帳號電子郵件,如果同時傳入 email 和 appId,則優先使用 email | |
| appId | false | String | 要查詢的子帳號 appId |
回傳物件描述
| 參數名稱 | 類型 | 說明 |
|---|---|---|
| details | Array | 查詢的結果列表【詳見VodStatsDetailList參數描述】 |
VodStatsDetailList參數描述
| 參數名 | 類型 | 說明 |
|---|---|---|
| currentDay | String | 日期,格式:yyyy-MM-dd,如:2021-06-01 |
| pcFlowSize | Long | PC端播放流量,單位:byte |
| mobileFlowSize | Long | 行動端播放流量,單位:byte |
| totalFlowSize | Long | 總流量,單位:byte |
| pcView | Long | PC端播放量,單位:個 |
| mobileView | Long | 行動端播放量,單位:個 |
| totalView | Long | 總播放量,單位:個 |
| pcDuration | Long | PC端播放時長,單位:秒 |
| mobileDuration | Long | 行動端播放時長,單位:秒 |
| totalDuration | Long | 總播放時長,單位:秒 |
