非同步批次上傳影片
更新時間:2026-01-16 09:27:09
介面描述
1、通过视频URL链接,异步批量上传视频
2、接口URL中的{userid}为点播账号userid,具体参考菜单【使用须知】->【获取密钥】
3、接口支持https协议
介面URL
http://api.polyv.net/v2/video/grab/{userid}/upload/multi
請求方式
POST
介面限制
1、介面同時支援HTTP、HTTPS,建議使用HTTPS以確保介面安全,介面呼叫有頻率限制,詳細請查看
2、uploadInfos 和 (fileUrl、title)必傳其一,並且 uploadInfos 的優先級高於 (fileUrl、title),建議使用 uploadInfos
請求參數說明
| 參數名 | 必選 | 類型 | 說明 |
|---|---|---|---|
| ptime | true | Long | 當前時間的毫秒級時間戳,3分鐘內有效 |
| sign | true | String | 簽名,為40位大寫的SHA1值,產生簽名的secretkey金鑰作為通訊資料安全的關鍵資訊,嚴禁儲存在用戶端直接使用,所有API都必須透過客戶自己伺服器中轉呼叫POLYV伺服器取得回應資料【詳見簽名產生規則】 |
| cataid | false | Long | 設定上傳影片的分類id,分類id透過【取得分類及子類】介面取得 |
| luping | false | Integer | 是否錄影優化,預設為0:不優化 0:不優化 1:優化 |
| watermark | false | String | 自訂浮水印圖片連結,圖片格式必須是png格式,支援http、https協定 |
| watermarkLocation | false | String | 自訂浮水印圖片位置,如無該參數,則自訂浮水印的顯示情況跟隨分類或帳號設定 1:左上角 2:右上角 3:左下角 4:右下角 |
| uploadInfos | false | Array | 上傳影片資訊json陣列,最多100個,詳見【uploadInfos參數說明】 |
| false | String | 待批次上傳影片的URL,多個URL之間使用英文逗號隔開,支援http、https協定,已不建議使用,請使用 uploadInfos 參數 | |
| false | String | 標題,多個標題使用英文逗號隔開,標題數量必須與檔案位址fileUrl數量一致,已不建議使用,請使用 uploadInfos 參數 |
uploadInfos參數說明
| 參數名 | 必選 | 類型 | 說明 |
|---|---|---|---|
| fileUrl | true | String | 待上傳影片的URL,支援http、https協定,長度限制:1000 個字元 |
| title | true | String | 影片標題,長度限制:100 個字元 |
| state | false | String | 自訂資料,長度限制:100 個字元,如果提交了該欄位,會在上傳完成回呼時透傳回傳,詳見【回呼通知使用說明】 |
| tag | false | String | 影片標籤,長度限制為200個字元,超過會被自動截斷 |
uploadInfos範例:
[{"fileUrl":"test.mp4","title":"test","state":"test","tag":"tag1,tag2"}]
範例
http://api.polyv.net/v2/video/grab/1b448be323/upload/multi
表單參數:
watermark=https%3A%2F%2Fimg.videocc.net%2Fuimage%2F1%2F1b448be323%2Fe%2F1b448be323fddcd3f8823f534918039e_0_b.jpg&uploadInfos=%5B%7B%22fileUrl%22%3A%22https%3A%2F%2Foss.polyv.net%2Fuploads%2F2023%2F12%2F27YlLZVCM_test.mp4%22%2C%22title%22%3A%22%E6%B5%8B%E8%AF%95%E5%BC%82%E6%AD%A5%E4%B8%8A%E4%BC%A0%E8%A7%86%E9%A2%911%22%2C%22state%22%3A%22test%22%7D%5D&sign=68EF1B1A3F9D4D726D68F882C9EBA11A0584CFE8&cataid=1602671097888&luping=0&ptime=1670902537111&watermarkLocation=4
回應參數說明
| 參數名 | 類型 | 說明 |
|---|---|---|
| code | Integer | 回應狀態碼,200為成功回傳,非200為失敗【詳見全域錯誤說明】 |
| status | String | 回應狀態文字資訊 |
| message | String | 回應描述資訊,當code為400或500時,輔助描述錯誤原因 |
| data | String | 回應成功時回傳成功,回應失敗時回傳空 |
回呼說明
介面只回傳上傳結果,非同步上傳的影片檔案處理結果,需要透過回呼取得,【詳見回呼通知使用說明】
Java請求範例
快速接入基礎程式碼請下載相關依賴原始碼, 點擊下載原始碼 ,下載後加入到自己的原始碼工程中即可。測試案例中的HttpUtil.java 和 VodSignUtil.java 都包含在下載檔案中。
強烈建議您使用點播Java SDK完成API的功能對接,點播Java SDK 對API呼叫邏輯、異常處理、資料簽名、HTTP請求執行緒池進行了統一封裝和最佳化。
private static final Logger log = LoggerFactory.getLogger(VodVideoUploadTest.class);
/**
* 异步批量上传视频
*/
@Test
public void testUrlBatchUpload() 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/grab/%s/upload/multi", userid);
String uploadInfos = "[{\"fileUrl\":\"https://oss.polyv.net/uploads/2023/12/27YlLZVCM_test.mp4\"," +
"\"title\":\"测试异步上传视频1\",\"state\":\"test\",\"tag\":\"tag1,tag2\"}]";
String cataid = "1602671097888";
String luping = "0";
String watermark = "https://img.videocc.net/uimage/1/1b448be323/e/1b448be323fddcd3f8823f534918039e_0_b.jpg";
String watermarkLocation = "4";
Map<String, String> requestMap = new HashMap<>();
requestMap.put("ptime", ptime);
requestMap.put("uploadInfos", uploadInfos);
requestMap.put("cataid", cataid);
requestMap.put("luping", luping);
requestMap.put("watermark", watermark);
requestMap.put("watermarkLocation", watermarkLocation);
requestMap.put("sign", VodSignUtil.getSign(requestMap, secretKey));
String response = HttpUtil.postFormBody(url, requestMap);
log.debug("测试异步批量上传视频,{}", response);
//do somethings
}
回應範例
系統全域錯誤說明詳見全域錯誤說明
成功範例
{
"code": 200,
"status": "success",
"message": "",
"data": "成功"
}
異常範例
檔案url不能為空
{
"code":400,
"status":"error",
"message":"FileUrl is null!",
"data":""
}
檔案標題不能為空
{
"code":400,
"status":"error",
"message":"Title is null!",
"data":""
}
uploadInfos數量超出限制
{
"code":400,
"status":"error",
"message":"[uploadInfos] exceed the limit.",
"data":""
}
uploadInfos參數格式不合法
{
"code":400,
"status":"error",
"message":"[uploadInfos] is invalid",
"data":""
}
檔案的url個數必須與title個數相同
{
"code":400,
"status":"error",
"message":"FileUrl and title are inconsistent!",
"data":""
}
