Synchronously Transfer Recording Files to VOD
Interface Description
1、将直播录制文件转存至点播后台中
2、接口URL中的{channelId}为频道号
3、接口支持https协议
Interface URL
http://api.polyv.net/live/v2/channel/recordFile/{channelId}/convert
Request Method
POST
Interface Constraints
The interface supports both HTTP and HTTPS. HTTPS is recommended to ensure interface security. Interface calls have frequency limits. See details
For the same POLYV account, the interval between calls to this interface must be at least 5 minutes.
You can pass both
fileUrlandsessionId, or at least one of them is required.
Request Parameter Description
| Parameter | Required | Type | Description |
|---|---|---|---|
| appId | true | String | Account appId [See Get Secret Key] |
| timestamp | true | Long | Current 13-digit millisecond timestamp, valid for 3 minutes |
| sign | true | String | Signature, a 32-character uppercase MD5 value. The appSecret key used to generate the signature is critical for communication data security. It must not be stored or used directly on the client side. All APIs must be called through the customer's own server to relay requests to the POLYV server for response data. [See Signature Generation Rules] |
| userId | true | String | Live streaming account ID |
| fileName | true | String | Name of the VOD video after transfer |
| fileUrl | false | String | Recording file address for transfer [Can be obtained via Query Channel Recording Video Information] |
| sessionId | false | String | Live session ID. Passing only this parameter transfers the live recording video of the corresponding session to VOD |
| cataid | false | String | Category ID. If not provided or incorrect, the default category is used |
| cataname | false | String | Category name. Default is "Default Category". When cataid is set to -1, a new category named cataname is created and the video is placed under it |
| toPlayList | false | String | Whether to save to the replay list. Default is N. Y: Save to replay list, N: Do not save |
| setAsDefault | false | String | Whether to set as the default replay video. Default is Y. Y: Set as default replay video (appears first in the replay list after transfer), N: Appears last in the replay list after transfer. This parameter only takes effect when toPlayList=Y |
Response Parameter Description
| Parameter | Type | Description |
|---|---|---|
| code | Integer | Response status code. 200 indicates success, non-200 indicates failure [See Global Error Description] |
| status | String | Response status text information |
| message | String | Response description. When code is 400 or 500, it provides auxiliary error reason description |
| data | String | Response result. On success, returns the VOD video ID (vid) after successful transfer |
Java Request Example
For quick integration of basic code, download the relevant dependency source code. Click here to download the source code. After downloading, add it to your own source project. The test cases include HttpUtil.java and LiveSignUtil.java, both contained in the downloaded file.
It is strongly recommended to use the Live Java SDK for API integration. The Live Java SDK provides unified encapsulation and optimization for API call logic, exception handling, data signing, and HTTP request thread pools.
private static final Logger log = LoggerFactory.getLogger(ChannelPlayBackTest.class);
/**
* 同步转存录制文件到点播
* @throws IOException
* @throws NoSuchAlgorithmException
*/
@Test
public void testRecordConvertSyn() 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/v2/channel/recordFile/%s/convert";
String channelId = "2139283";
String fileName = "测试同步转存";
String fileUrl = "";
String sessionId = "fvlyin8qz3";
String cataId = "";
String cataname = "默认分类";
String toPlayList = "Y";
String setAsDefault = "Y";
url = String.format(url, channelId);
Map<String, String> requestMap = new HashMap<>();
requestMap.put("appId", appId);
requestMap.put("timestamp", timestamp);
requestMap.put("userId", userId);
requestMap.put("fileName", fileName);
requestMap.put("sessionId", sessionId);
requestMap.put("cataId", cataId);
requestMap.put("cataname", cataname);
requestMap.put("toPlayList", toPlayList);
requestMap.put("setAsDefault", setAsDefault);
requestMap.put("sign", LiveSignUtil.getSign(requestMap, appSecret));
String response = HttpUtil.postFormBody(url, requestMap);
log.info("测试同步转存录制文件到点播,返回值:{}", response);
//do somethings
}
Response Example
For global system error descriptions, see Global Error Description
Success Example
{
"code":200,
"status":"success",
"message":"",
"data":"1b448be32353f0f4638f70a9545c75bd_1"
}
Error Example
{
"code": 400,
"status": "error",
"message": "invalid signature.",
"data": ""
}
