screenshotService
1、新增指定時間點截圖任務
描述
通过视频id、截图等相关参数添加视频指定时间点截图任务
接口地址(仅做说明使用):https://api.polyv.net/v2/video/snapshot/%s/addTask
呼叫限制
1、API 呼叫有頻率限制,詳細請查看,呼叫常見異常,詳細請查看
2、API 用於新增時間點截圖任務,每個任務允許截圖 20 張
3、禁播的影片不允許截圖操作
4、若設定了 callbackUrl,值為 http://example.polyv.net/snapshot-callback.do,則截圖任務完成後,polyv 會回呼該 API,
並附上簽名資訊,開發者可透過簽名資訊驗證呼叫是否為 polyv 的合法呼叫,具體的簽名規則:md5("snapshot" + vid + secretKey)。
如 vid="e6b23c6f51350f106556806a576b1942_e",secretKey="testKey",則 sign="3adb60893894d422d00ed2efae8c41f3"
(小寫 md5)。最終回呼的 URL 為 http://example.polyv.net/snapshot-callback.do?sign=3adb60893894d422d00ed2efae8c41f3
單元測試
@Test
public void testCreateScreenshotTask() throws IOException, NoSuchAlgorithmException {
VodCreateScreenshotTaskRequest vodCreateScreenshotTaskRequest = new VodCreateScreenshotTaskRequest();
Integer vodCreateScreenshotTaskResponse = null;
try {
vodCreateScreenshotTaskRequest.setUploadTime(new Date())
.setVideoId(super.getTestVideoId())
.setOffsetTimes("8");
vodCreateScreenshotTaskResponse = new VodScreenshotServiceImpl().createScreenshotTask(
vodCreateScreenshotTaskRequest);
Assert.assertNotNull(vodCreateScreenshotTaskResponse);
if (vodCreateScreenshotTaskResponse != null) {
log.debug("测试添加指定时间点截图任务成功,{}", vodCreateScreenshotTaskResponse);
}
} 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、請求正確,回傳 Integer 物件,B 端依據此物件處理業務邏輯;
2、請求參數驗證不合格,拋出 PloyvSdkException,錯誤資訊見 PloyvSdkException.getMessage(),如 [ 輸入參數 [xxx.chat.VodxxxRequest] 物件驗證失敗,失敗欄位 [pic 不能為空 / msg 不能為空] ]
3、伺服器處理異常,拋出 PloyvSdkException,錯誤資訊見 PloyvSdkException.getMessage(),如 [ 保利威請求回傳資料錯誤,請求流水號:66e7ad29fd04425a84c2b2b562d2025b,錯誤原因: invalid signature. ]
請求參數說明
| 參數名 | 必填 | 類型 | 說明 |
|---|---|---|---|
| uploadTime | true | Date | 上傳時間,格式:yyyy-MM-dd HH:mm:ss【對應 API 文件的 ptime 欄位】 |
| videoId | true | String | 影片 ID【對應 API 文件的 vid 欄位】 |
| offsetTimes | true | String | 截圖時間點,多個時間點以英文逗號分隔,單位:秒 |
| width | false | Integer | 截圖的寬度,預設為原影片寬 |
| height | false | Integer | 截圖的高度,預設為原影片高 |
| callbackUrl | false | String | 截圖完成後的回呼地址,截圖任務完成會 POST 結果資訊和簽名到回呼的地址,若地址回傳的 HTTP 狀態碼為 200,則視為回呼成功。例如 http://example.polyv.net/snapshot-callback.do |
回傳物件說明
新增成功回傳截圖任務 ID
2、查詢截圖任務狀態
描述
通过截图任务id查询截图任务状态
接口地址(仅做说明使用):https://api.polyv.net/v2/video/snapshot/%s/getTaskStatus
呼叫限制
1、API 呼叫有頻率限制,詳細請查看,呼叫常見異常,詳細請查看
單元測試
@Test
public void testGetScreenshotTaskStatus() throws IOException, NoSuchAlgorithmException {
VodGetScreenshotTaskStatusRequest vodGetScreenshotTaskStatusRequest = new VodGetScreenshotTaskStatusRequest();
VodGetScreenshotTaskStatusResponse vodGetScreenshotTaskStatusResponse = null;
try {
vodGetScreenshotTaskStatusRequest.setTaskId(1146);
vodGetScreenshotTaskStatusResponse = new VodScreenshotServiceImpl().getScreenshotTaskStatus(
vodGetScreenshotTaskStatusRequest);
Assert.assertNotNull(vodGetScreenshotTaskStatusResponse);
if (vodGetScreenshotTaskStatusResponse != null) {
log.debug("测试查询截图任务状态成功,{}", JSON.toJSONString(vodGetScreenshotTaskStatusResponse));
}
} 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、請求正確,回傳 VodGetScreenshotTaskStatusResponse 物件,B 端依據此物件處理業務邏輯;
2、請求參數驗證不合格,拋出 PloyvSdkException,錯誤資訊見 PloyvSdkException.getMessage(),如 [ 輸入參數 [xxx.chat.VodxxxRequest] 物件驗證失敗,失敗欄位 [pic 不能為空 / msg 不能為空] ]
3、伺服器處理異常,拋出 PloyvSdkException,錯誤資訊見 PloyvSdkException.getMessage(),如 [ 保利威請求回傳資料錯誤,請求流水號:66e7ad29fd04425a84c2b2b562d2025b,錯誤原因: invalid signature. ]
請求參數說明
| 參數名 | 必填 | 類型 | 說明 |
|---|---|---|---|
| taskId | true | Integer | 任務 ID |
回傳物件說明
| 參數名 | 類型 | 說明 |
|---|---|---|
| taskId | Integer | 任務 ID |
| vid | String | 影片 VID |
| status | String | 任務狀態,waiting-等待截圖,processing-截圖處理中,success-任務成功,fail-任務失敗 |
| createTime | Date | 任務建立時間,時間格式 yyyy-MM-dd HH:mm:ss |
| beginProcessTime | Date | 開始截圖的時間,時間格式 yyyy-MM-dd HH:mm:ss |
| finishProcessTime | Date | 完成截圖的時間,時間格式 yyyy-MM-dd HH:mm:ss |
| screenshots | Array | 截圖資訊組,失敗或未開始時為空【對應 API 文件的 snapshots 欄位】【詳見Screenshot 參數說明】 |
Screenshot 參數說明
| 參數名 | 類型 | 說明 |
|---|---|---|
| offsetTime | Integer | 截圖時間點,單位:秒 |
| imageUrl | String | 截圖存取的 URL |
