保利威文档中心

幫助中心

screenshotService

更新時間:2023-09-22 17:47:34

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

联系客服,在线咨询