保利威文档中心

幫助中心

指定影片時間點截圖

更新時間:2025-01-14 16:05:48

介面說明

1、通过视频id添加单个视频指定时间点截图任务
2、接口URL中的{userid}为点播账号userid,具体参考菜单【使用须知】->【获取密钥】
3、接口支持https协议

介面URL

http://api.polyv.net/v2/video/snapshot/{userid}/addTask

線上API呼叫

請求方式

POST

介面限制

1、介面同時支援HTTP、HTTPS,建議使用HTTPS確保介面安全,介面呼叫有頻率限制,詳細請查看

請求參數說明

參數名 必選 類型 說明
ptime true Long 當前時間的毫秒級時間戳,3分鐘內有效
sign true String 簽名,為40位大寫的SHA1值,產生簽名的secretkey金鑰作為通訊資料安全的關鍵資訊,嚴禁儲存在用戶端直接使用,所有API都必須透過客戶自己伺服器中轉呼叫POLYV伺服器取得回應資料【詳見簽名產生規則
vid true String 影片id
offsetTimes true String 截圖時間點,每個任務最多20個,多個時間點以英文逗號分隔,如:5,10,15,20
width false String 截圖的寬度,預設為原影片寬
height false String 截圖的高度,預設為原影片高
callbackUrl false String 截圖完成後的回呼地址,截圖任務完成會透過post請求發送結果資訊到回呼地址【詳見回呼說明

範例

http://api.polyv.net/v2/video/snapshot/1b448be323/addTask

表單參數:

vid=1b448be32303e4922a8f70d6b48220ae_1&offsetTimes=5,10,15,20&width=300&sign=4FEC87EC6841211C36EC51A072A6D64DF72E1AF4&ptime=1617700224540&height=300

回應參數說明

參數名 類型 說明
code Integer 回應狀態碼,200為成功返回,非200為失敗【詳見全域錯誤說明
status String 回應狀態文字資訊
message String 回應描述資訊,當code為400或500時,輔助描述錯誤原因
data Integer 任務id

回呼說明

截圖任務完成結果資訊回呼,可以及時通知使用者截圖任務的結果

原理

透過HTTP協定,向callbackUrl(回呼地址)發送POST請求,將任務結果通知到使用者設定的回呼地址

舉例說明

截圖任務完成後,polyv會回呼該介面,並帶上簽名資訊,開發者可以透過簽名資訊來校驗呼叫是否為polyv的合法呼叫,具體的簽名規則:md5("snapshot" + vid + secretKey)。如vid="e6b23c6f51350f106556806a576b1942_e",secretKey="testKey",那麼sign="3adb60893894d422d00ed2efae8c41f3" (小寫md5)。 最終回呼的url為http://example.polyv.net/snapshot-callback.do?sign=3adb60893894d422d00ed2efae8c41f3

任務成功回呼資訊

{
    "taskId": 123,
    "vid": "e6b23c6f51350f106556806a576b1942_e",
    "status": "success",
    "snapshots": [
        {
            "offsetTime": 12,
            "imageUrl": "http://vod-assets.videocc.net/snapshot/e6b23c6f51/e6b23c6f519df1d317cca208edd448cb/12.jpg"
        },
        {
            "offsetTime": 78,
            "imageUrl": "http://vod-assets.videocc.net/snapshot/e6b23c6f51/e6b23c6f519df1d317cca208edd448cb/78.jpg"
        }
    ]
}

任務失敗回呼資訊

{
    "taskId": 123,
    "vid": "e6b23c6f51350f106556806a576b1942_e",
    "status": "fail",
    "snapshots": []
}
回呼欄位說明
參數名 類型 說明
taskId Integer 任務id
vid String 影片id
status String 任務狀態,成功為success,失敗為fail
snapshots Array 任務成功為截圖資訊陣列,失敗為空陣列【詳見snapshots參數說明
snapshots參數說明
欄位 類型 說明
offsetTime Integer 截圖時間點
imageUrl String 截圖的url地址

Java請求範例

快速接入基礎程式碼請下載相關依賴原始碼點擊下載原始碼,下載後加入到自己的原始碼工程中即可。測試案例中的HttpUtil.java 和 VodSignUtil.java 都包含在下載檔案中。

強烈建議您使用點播Java SDK完成API的功能對接,點播Java SDK 對API呼叫邏輯、異常處理、資料簽名、HTTP請求執行緒池進行了統一封裝和最佳化。

private static final Logger log = LoggerFactory.getLogger(VodSnapshotTest.class);
/**
 * 指定视频时间点截图
 * @throws Exception
 * @throws NoSuchAlgorithmException
 */
@Test
public void testAddSnapshotTask() throws Exception, NoSuchAlgorithmException {
    //公共参数,填写自己的实际参数
    String secretKey = super.secretKey;
    String userId = super.userId;
    String ptime = String.valueOf(System.currentTimeMillis());
    //业务参数
    String url = String.format("http://api.polyv.net/v2/video/snapshot/%s/addTask", userId);
    String vid = "1b448be32303e4922a8f70d6b48220ae_1";
    String offsetTimes = "5,10,15,20";
    String width = "300";
    String height = "300";
    String callbackUrl = "http://example.polyv.net/snapshot-callback.do";
    
    Map<String, String> requestMap = new HashMap<>();
    requestMap.put("ptime", ptime);
    requestMap.put("vid", vid);
    requestMap.put("offsetTimes", offsetTimes);
    requestMap.put("width", width);
    requestMap.put("height", height);
    requestMap.put("callbackUrl", callbackUrl);
    requestMap.put("sign", VodSignUtil.getSign(requestMap, secretKey));
    String response = HttpUtil.postFormBody(url, requestMap);
    log.debug("测试指定视频时间点截图,{}", response);
    //do somethings
    
}

回應範例

系統全域錯誤說明詳見全域錯誤說明

成功範例

{
    "code": 200,
    "status": "success",
    "message": "success",
    "data": 2036
}

異常範例

簽名不正確

{
    "code": 400,
    "status": "error",
    "message": "the sign is not right",
    "data": ""
}
联系客服,在线咨询