保利威文档中心

幫助中心

取得影片播放憑證

更新時間:2024-12-31 18:37:43

介面說明

1、获取Playsafe Token(播放凭证),用于播放加密视频
2、如果一个token尚未过期,此时使用相同的videoId、viewerId、viewerIp、iswxa参数值请求该接口,则会复用原来的token,并延长原token的有效期
3、接口支持https协议

介面URL

http://hls.videocc.net/service/v1/token

線上API呼叫

請求方式

POST

介面限制

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

請求參數說明

參數名 必填 類型 說明
userid true String 保利威點播帳戶id,可參考【取得金鑰】取得,取得路徑:官網->登入->點播(API介面)
sign true String 簽名,為32位大寫的MD5值【詳見MD5簽名產生規則
videoId true String 影片id,例如:e6b23c6f519c5906e54a13b8200d7bb0_e
ts true Long 當前13位毫秒級時間戳,10分鐘內有效
viewerId true String 觀看者id,要求不同的觀看者使用不同的id,由數字字母組成;行動端請求需對viewerId進行base64處理
viewerIp false String 觀看者ip,如果為空,會自動取得呼叫該介面時的ip
viewerName false String 觀看者名稱
expires false Long token有效時長,單位為秒。為空時預設為10分鐘,有效期為最長24小時。
disposable false Boolean token有效期,預設為false
true:token僅一次有效(驗證一次後,token就失效了)
false:在有效期內可以進行多次驗證。
iswxa false Integer 是否微信小程式播放,預設為0
1:是
0:否
type false String 裝置端類型,用於限制請求端,參數值:WEB-網頁端,NATIVE-原生端。
extraParams false String 自訂的其他參數
securitySeed false String 私有加密影片自訂token加密因子,用於提高影片播放的安全性,需搭配指定的播放器使用,詳細使用規則請諮詢保利威客服

範例

http://hls.videocc.net/service/v1/token

表單參數:

viewerName=ceshi&expires=300&viewerId=ceshiid&viewerIp=127.0.0.1&sign=A5423CC62E20F80AD8812395119E5FA9&videoId=1b448be323b68b2999802799a98dba54_1&iswxa=1&userid=1b448be323&disposable=true&ts=1621851214050

回應參數說明

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

data欄位說明

參數名 類型 說明
token String token值
userId String 保利威點播帳戶id,可參考【取得金鑰】取得,取得路徑:官網->登入->點播(API介面)
appId String 帳號appId【詳見取得金鑰
videoId String 影片id,例如:e6b23c6f519c5906e54a13b8200d7bb0_e
viewerId String 觀看者id,要求不同的觀看者使用不同的id
viewerIp String 觀看者ip,如果為空,會自動取得呼叫該介面時的ip
viewerName String 觀看者名稱
ttl Long token有效時長,單位為毫秒
disposable Boolean token有效期
true:token僅一次有效(驗證一次後,token就失效了)
false:在有效期內可以進行多次驗證。
iswxa Integer 是否微信小程式播放
1:是
0:否
extraParams String 自訂的其他參數
createdTime Long token建立時間,13位毫秒級時間戳
expiredTime Long token過期時間,13位毫秒級時間戳

Java請求範例

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

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

private static final Logger log = LoggerFactory.getLogger(VodTokenTest.class);

/**
 * 获取视频播放凭证
 */
@Test
public void testCreateToken() throws Exception, NoSuchAlgorithmException {
    //公共参数,填写自己的实际参数
    String secretKey = super.secretKey;
    String userid = super.userId;
    //业务参数
    String url = "http://hls.videocc.net/service/v1/token";
    String videoId = "1b448be323b68b2999802799a98dba54_1";
    String ts = Long.toString(System.currentTimeMillis());
    String viewerId = "ceshiid";
    String viewerIp = "127.0.0.1";
    String viewerName = "ceshi";
    String expires = "300";
    String disposable = "true";
    String iswxa = "1";

    Map<String, String> requestMap = new HashMap<>();
    requestMap.put("userid", userid);
    requestMap.put("videoId", videoId);
    requestMap.put("ts", ts);
    requestMap.put("viewerId", viewerId);
    requestMap.put("viewerIp", viewerIp);
    requestMap.put("viewerName", viewerName);
    requestMap.put("expires", expires);
    requestMap.put("disposable", disposable);
    requestMap.put("iswxa", iswxa);

    //用md5进行签名
    requestMap.put("sign", VodSignUtil.getSignMd5(requestMap, secretKey));

    String response = HttpUtil.postFormBody(url, requestMap);
    log.debug("测试获取视频播放凭证,{}", response);
    //do somethings
}

回應範例

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

成功範例

{
    "code": 200,
    "status": "success",
    "message": "",
    "data": {
        "token": "586e4510-d584-40de-b4a6-8cd0d363c9d0-smcdibbk",
        "userId": "1b448be323",
        "appId": null,
        "videoId": "1b448be323b68b2999802799a98dba54_1",
        "viewerIp": "127.0.0.1",
        "viewerId": "ceshiid",
        "viewerName": "ceshi",
        "extraParams": null,
        "ttl": 300000,
        "createdTime": 1617776662954,
        "expiredTime": 1617776962954,
        "iswxa": 1,
        "disposable": true
    }
}

異常範例

userid 錯誤

{
    "code": 400,
    "status": "error",
    "message": "user_not_found",
    "data": "user secretKey not found."
}

ts過期

{
    "code": 403,
    "status": "error",
    "message": "ts_expired",
    "data": "ts parameter is expired."
}

簽名錯誤

{
    "code": 403,
    "status": "error",
    "message": "sign_invalid",
    "data": "sign parameter invalid."
}
联系客服,在线咨询