回源鉴权功能使用说明:凭证管理模式
1 功能简介
回源鉴权是一种保护用户视频内容安全的功能。通过使用回源鉴权功能,用户可实时自行生成视频文件播放链接,该链接在用户指定时间内可用,从而有效保护视频内容。如果在使用回源鉴权功能之前,用户已经发布了播放地址,则在使用回源鉴权功能后,之前的播放地址不可用。用户需要通过动态生成链接以访问视频文件。
2 功能逻辑
此回源鉴权方式使用了网易云信提供的凭证管理API,以下是基本逻辑。
3 具体步骤
主要步骤如下所示:
第一步:开通功能
用户可联系网易云信视频确认开通回源鉴权功能。
第二步:创建视频播放凭证
用户可通过凭证管理 API 创建、更新、获取视频的播放凭证,从而用于分发给视频请求方。凭证管理 API 如下所示。
注:凭证管理 API 的请求方式(均为POST)、请求头信息,和网易云信视频点播服务端API相同。
4 API
4.1 凭证添加
4.1.1 接口描述
域名:vcloud.163.com
接口名:/app/authorization/add
用于添加视频的播放凭证。
4.1.2 输入参数
参数 | 类型 | 必须 | 说明 |
---|---|---|---|
resId | String | 是 | 标识需要设置播放凭证的资源,构造规则是: appKey + "_" + vid + "_" + style(其中style为视频格式: 0标识源视频、1标识流畅mp4、2标识标清mp4、3标识高清mp4、 4标识流畅flv、5标识标清flv、6标识高清flv、7标识流畅hls、8标识标清hls、 9标识高清hls、16标识音频aac、17标识音频mp3), 当设置vid=0且style=0表示生成对所有视频都有效的播放凭证 |
expirationTime | String | 是 | 赋予业务客户端凭证的有效截止期,一个符合UNIX时间戳规范的数值, 单位为秒,必须大于当前时间 |
randSeed | String | 否 | 随机字符串,无符号十进制整数,必须为10位 |
encryptId | String | 否 | 加密视频的标识,如果不是加密视频,那么不需要此参数 |
4.1.3 输出参数
参数 | 类型 | 说明 |
---|---|---|
code | Int | 状态码 |
type | Int | 保留字段,返回值为1 |
playToken | String | 新增的播放凭证 |
msg | String | 错误信息 |
4.1.4 响应状态码
HTTP状态码 | 含义 |
---|---|
200 | 操作成功 |
400 | 请求报文格式错误,报文构造不正确或者没有完整发送 |
607 | 服务器内部出现错误,请稍后重试或者将完整错误信息发送给客服人员帮忙解决 |
624 | 参数非法 |
710 | 权限认证失败,请参考文档中的接口鉴权部分 |
711 | 请求参数非法,具体信息见msg |
720 | 访问失败,余额不足 |
721 | 服务未开通,请前往开通页面申请服务开通 |
722 | 服务开通审核中,请联系客服人员开通服务 |
723 | 请求的次数超过了配额限制 |
1501 | resId 参数为空或不存在 |
1502 | resId 参数不合法 |
1503 | 播放凭证已存在 |
1504 | expirationTime 参数为空或不存在 |
1505 | expirationTime 参数不合法 |
1506 | randSeed 参数不合法 |
1507 | 凭证添加失败 |
1512 | 请求的加密视频不存在 |
1513 | 请求的加密视频尚未加密完成 |
1514 | encryptId 参数不合法 |
4.1.5 示例代码
输入1
curl -X POST -H "Content-Type: application/json;charset=utf-8" -H "AppKey: 027338bf05cc4a65b5d98bc9d6af80b3" -H "Nonce: 1" -H "CurTime: 1465723418" -H "CheckSum: 61bbfd88c51028a2a28b3628584e65a2abe7ae13" -d'{"resId":"027338bf05cc4a65b5d98bc9d6af80b3_1300_0","expirationTime":"1476892800","randSeed":"1234567890"}' https://vcloud.163.com/app/authorization/add
输出1
{
"ret" : {
"type" : 1,
"playToken" : "U/lVbNvo5av2xKDk15Re7Z3uOxiwXQhhBSt6LxSExIc="
},
"code" : 200
}
4.2 凭证更新
4.2.1 接口描述
域名:vcloud.163.com
接口名:/app/authorization/update
用于更新视频的播放凭证。
4.2.2 输入参数
参数 | 类型 | 必须 | 说明 |
---|---|---|---|
resId | String | 是 | 标识需要设置播放凭证的资源,构造规则是: appKey + "_" + vid + "_" + style(其中style为视频格式: 0标识源视频、1标识流畅mp4、2标识标清mp4、3标识高清mp4、 4标识流畅flv、5标识标清flv、6标识高清flv、7标识流畅hls、8标识标清hls、 9标识高清hls、16标识音频aac、17标识音频mp3), 当设置vid=0且style=0表示生成对所有视频都有效的播放凭证 |
expirationTime | String | 否 | 赋予业务客户端凭证的有效截止期,一个符合UNIX时间戳规范的数值, 单位为秒,必须大于当前时间 |
randSeed | String | 否 | 随机字符串,无符号十进制整数,必须为10位 |
encryptId | String | 否 | 加密视频的标识,如果不是加密视频,那么不需要此参数 |
4.2.3 输出参数
参数 | 类型 | 说明 |
---|---|---|
code | Int | 状态码 |
type | Int | 保留字段,返回值为1 |
playToken | String | 新增的播放凭证 |
msg | String | 错误信息 |
4.2.4 响应状态码
HTTP状态码 | 含义 |
---|---|
200 | 操作成功 |
400 | 请求报文格式错误,报文构造不正确或者没有完整发送 |
607 | 服务器内部出现错误,请稍后重试或者将完整错误信息发送给客服人员帮忙解决 |
624 | 参数非法 |
710 | 权限认证失败,请参考文档中的接口鉴权部分 |
711 | 请求参数非法,具体信息见msg |
720 | 访问失败,余额不足 |
721 | 服务未开通,请前往开通页面申请服务开通 |
722 | 服务开通审核中,请联系客服人员开通服务 |
723 | 请求的次数超过了配额限制 |
1501 | resId 参数为空或不存在 |
1502 | resId 参数不合法 |
1505 | expirationTime 参数不合法 |
1506 | randSeed 参数不合法 |
1508 | 播放凭证不存在 |
1509 | 播放凭证无参数更新 |
4.2.5 示例代码
输入1
curl -X POST -H "Content-Type: application/json;charset=utf-8" -H "AppKey: 027338bf05cc4a65b5d98bc9d6af80b3" -H "Nonce: 1" -H "CurTime: 1465723418" -H "CheckSum: 61bbfd88c51028a2a28b3628584e65a2abe7ae13" -d'{"resId":"027338bf05cc4a65b5d98bc9d6af80b3_1300_0","expirationTime":"1476792800","randSeed":"1254567890"}' https://vcloud.163.com/app/authorization/update
输出1
{
"ret" : {
"type" : 1,
"playToken" : "U/lVbNvo5av2xKDk15Re7Z3uOxiwXQhhBSt6LxSExIc="
},
"code" : 200
}
4.3 凭证获取
4.3.1 接口描述
域名:vcloud.163.com
接口名:/app/authorization/get
用于获取视频的播放凭证。
4.3.2 输入参数
参数 | 类型 | 必须 | 说明 |
---|---|---|---|
resId | String | 是 | 标识需要设置播放凭证的资源,构造规则是: appKey + "_" + vid + "_" + style(其中style为视频格式: 0标识源视频、1标识流畅mp4、2标识标清mp4、3标识高清mp4、 4标识流畅flv、5标识标清flv、6标识高清flv、7标识流畅hls、8标识标清hls、 9标识高清hls、16标识音频aac、17标识音频mp3), 当设置vid=0且style=0表示生成对所有视频都有效的播放凭证 |
encryptId | String | 否 | 加密视频的标识,如果不是加密视频,那么不需要此参数 |
4.3.3 输出参数
参数 | 类型 | 说明 |
---|---|---|
code | Int | 状态码 |
type | Int | 保留字段,返回值为1 |
playToken | String | 新增的播放凭证 |
msg | String | 错误信息 |
4.3.4 响应状态码
HTTP状态码 | 含义 |
---|---|
200 | 操作成功 |
400 | 请求报文格式错误,报文构造不正确或者没有完整发送 |
607 | 服务器内部出现错误,请稍后重试或者将完整错误信息发送给客服人员帮忙解决 |
624 | 参数非法 |
710 | 权限认证失败,请参考文档中的接口鉴权部分 |
711 | 请求参数非法,具体信息见msg |
720 | 访问失败,余额不足 |
721 | 服务未开通,请前往开通页面申请服务开通 |
722 | 服务开通审核中,请联系客服人员开通服务 |
723 | 请求的次数超过了配额限制 |
1501 | resId 参数为空或不存在 |
1502 | resId 参数不合法 |
1508 | 播放凭证不存在 |
1509 | 播放凭证无参数更新 |
1510 | 播放凭证已过期 |
4.3.5 示例代码
输入1
curl -X POST -H "Content-Type: application/json;charset=utf-8" -H "AppKey: 027338bf05cc4a65b5d98bc9d6af80b3" -H "Nonce: 1" -H "CurTime: 1465723418" -H "CheckSum: 61bbfd88c51028a2a28b3628584e65a2abe7ae13" -d'{"resId":"027338bf05cc4a65b5d98bc9d6af80b3_1300_0"}' https://vcloud.163.com/app/authorization/get
输出1
{
"ret" : {
"type" : 1,
"playToken" : "U/lVbNvo5av2xKDk15Re7Z3uOxiwXQhhBSt6LxSExIc="
},
"code" : 200
}
5 生成播放地址
最终文件的播放地址生成过程如下:
- 通过获取视频文件信息 API 获取视频的原始播放地址,比如:
originAddr = "http://vodk32ywxdf.vod.126.net/vodk32ywxdf/da9644d1-2dc5-40e3-9fbb-2b40d4267518.mp4"
; - 通过凭证管理 API 获取视频的播放凭证,playToken值即为sign值,比如:
resId = "05d93b4f9dc742c5bf28aceaa6ff8de0_38_6" 和 sign = "U/lVbNvo5av2xKDk15Re7Z3uOxiwXQhhBSt6LxSExIc="
; - 拼接 resId 和 sign 参数,比如:
param = "resId=URLEncode(05d93b4f9dc742c5bf28aceaa6ff8de0_38_6)&sign=URLEncode(U/lVbNvo5av2xKDk15Re7Z3uOxiwXQhhBSt6LxSExIc=)" = "resId=05d93b4f9dc742c5bf28aceaa6ff8de0_38_6&sign=U%2FlVbNvo5av2xKDk15Re7Z3uOxiwXQhhBSt6LxSExIc%3D"
; - 最终生成的播放地址为原始播放地址带上 resId 和 sign 经过url编码的参数,比如:
url = "http://vodk32ywxdf.vod.126.net/vodk32ywxdf/da9644d1-2dc5-40e3-9fbb-2b40d4267518.mp4?resId=05d93b4f9dc742c5bf28aceaa6ff8de0_38_6&sign=U%2FlVbNvo5av2xKDk15Re7Z3uOxiwXQhhBSt6LxSExIc%3D"
。
本篇文档内容是否对您有帮助?
有帮助
我要吐槽
此文档对你是否有帮助
×
有帮助
我要吐槽
×