保利威文档中心

幫助中心

批量轉存暫存影片到雲端點播

更新時間:2023-10-13 10:34:04

介面說明

1、批量转存直播暂存录制视频文件到点播列表,接口转存过程为异步处理过程
2、接口支持https协议

介面URL

http://api.polyv.net/live/v3/channel/record/convert

線上API呼叫

請求方式

POST

介面限制

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

請求參數說明

參數名 必選 類型 說明
appId true String 帳號appId【詳見取得金鑰
timestamp true Long 目前13位毫秒級時間戳,3分鐘內有效
sign true String 簽名,為32位大寫的MD5值,產生簽名的appSecret金鑰作為通訊資料安全的關鍵資訊,嚴禁儲存在用戶端直接使用,所有API都必須透過客戶自己伺服器中轉呼叫POLYV伺服器取得回應資料【詳見簽名產生規則
channelId true String 頻道號
fileIds true String 要轉存的錄製影片檔案ID,多個ID用英文逗號,分隔【fileId可透過查詢頻道錄製影片資訊取得】
fileName false String 轉存後的檔案名稱,目前暫不支援傳多個檔案名稱
canRepeat false Integer 點播影片回收站存在影片時是否回傳成功,預設值為1(註:參數為1時,介面回傳成功,實際不會重新轉存點播影片),建議傳0
1:回傳成功
0:回傳異常
cataId false String 轉存到點播的目錄ID,預設為點播的根目錄ID
callbackUrl false String 轉存成功時回呼通知的url【詳見回呼說明

範例

http://api.polyv.net/live/v3/channel/record/convert

表單參數:

fileName=%E6%B5%8B%E8%AF%95%E5%BC%82%E6%AD%A5%E8%BD%AC%E5%AD%98&fileIds=9a41298b5f032f3d5a8119b104c5dfcc%2C66fda01de2e11bf1d91e801ea7cbc431&appId=frlr1zazn3&sign=48F5D4ADC2A81256D906CCE715A2C267&cataId=1410431629027&callbackUrl=http%3A%2F%2Fabc.com&channelId=2191541&timestamp=1621840957439

回應參數說明

參數名 類型 說明
code Integer 回應狀態碼,200為成功回傳,非200為失敗【詳見全域錯誤說明
status String 回應狀態文字資訊
message String 回應描述資訊,當code為400或500時,輔助描述錯誤原因
data String 請求成功時回傳提交成功資訊
"submit success.":轉存任務提交成功
"processing.":轉存任務正在處理中

回呼說明

轉存結果即時資訊回呼,可以及時通知使用者轉存影片任務的結果。

原理

透過HTTP介面(設定的callbackUrl)向使用者伺服器發送GET請求,將轉存結果推送給使用者伺服器。

舉例說明

舉例如下:http://abc.com/test.do?channelId=123456&vid=e6b23c6f5134943a015bc117e2854eae_e&title=视频标题&duration=01:23:45&fileSize=123400&timestamp=1557976774000&sign=xxxxxxxxxx&fileId=359a81ed8fd8cb83d88ddcd97d9e8a2b&videoId=b1c6f3ad2c&origin=auto&sessionIds=["20190703145126,4,fdqbopvtnv","20190703145126,8,fdqbopvtnv"]

轉存成功回呼參數
參數名 類型 說明
status String 介面處理結果,成功為success,失敗為error
channelId String 頻道號
vid String 轉存成功的影片id
title String 影片標題
duration String 影片時長,格式為:HH:mm:ss
fileSize Long 影片檔案大小(單位:位元組)
timestamp Long 13位毫秒級時間戳
sign String 校驗的加密字串,產生的規則md5(AppSecret+timestamp),AppSecret是直播系統的用金鑰
sessionIds String 錄製的場次和時間對應的陣列字串,格式:["20190703145126,4,fdqbopvtnv","20190703145126,8,fdqbopvtnv"] ,其中:"20190703145126,4,fdqbopvtnv" 第一個欄位是開始時間,第二個欄位是直播的時長,第三個是對應的sessionId。
fileId String 轉存對應的錄製檔案id
videoId String 轉存回放唯一的id
origin String 轉存的錄製來源
manual:雲端錄製
auto:自動錄製
merge:合併
clip:裁剪
sessionId String 回放對應的單一場次id
userId String POLYV使用者ID,和保利威官網一致,取得路徑:官網->登入->直播(開發設定)
轉存失敗回呼參數
參數名 類型 說明
status String 介面處理結果,成功為success,失敗為error
code String 錯誤碼
userExpired:使用者已過期
spaceOverSize:點播空間不足
unknown:未知異常
userId String POLYV使用者ID,和保利威官網一致,取得路徑:官網->登入->直播(開發設定)
channelId String 頻道號
fileId String 轉存的檔案id
sign String 校驗的加密字串,產生的規則md5(AppSecret+timestamp),AppSecret是直播系統的用金鑰
timestamp Long 目前13位毫秒級時間戳

Java請求範例

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

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

private static final Logger log = LoggerFactory.getLogger(ChannelPlayBackTest.class);
/**
 * 异步批量转存录制文件到点播
 * @throws IOException
 * @throws NoSuchAlgorithmException
 */
@Test
public void testRecordConvert() throws IOException, NoSuchAlgorithmException {
    //公共参数,填写自己的实际参数
    String appId = super.appId;
    String appSecret = super.appSecret;
    String userId = super.userId;
    String timestamp = String.valueOf(System.currentTimeMillis());
    //业务参数
    String url = "http://api.polyv.net/live/v3/channel/record/convert";
    String channelId = "2139283";
    String fileIds = "97e6b0ca2422069be036507218b7c2fb";
    String fileName = "测试异步转存";
    String cataId = "1410431629027";
    String callbackUrl = "http://abc.com";
    
    Map<String, String> requestMap = new HashMap<>();
    requestMap.put("appId", appId);
    requestMap.put("timestamp", timestamp);
    requestMap.put("channelId", channelId);
    requestMap.put("fileIds", fileIds);
    requestMap.put("fileName", fileName);
    requestMap.put("cataId", cataId);
    requestMap.put("callbackUrl", callbackUrl);
    requestMap.put("sign", LiveSignUtil.getSign(requestMap, appSecret));
    String response = HttpUtil.postFormBody(url, requestMap);
    log.info("测试异步批量转存录制文件到点播,返回值:{}", response);
    //do somethings
    
}

回應範例

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

成功範例

{
    "code":200,
    "status":"success",
    "message":"",
    "data":"submit success."
}

異常範例

{
    "code": 400,
    "status": "error",
    "message": "invalid signature.",
    "data": ""
}
联系客服,在线咨询