文档反馈
文档反馈

回源鉴权功能使用说明:凭证管理模式

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 生成播放地址

最终文件的播放地址生成过程如下:

×

反馈成功

非常感谢您的反馈,我们会继续努力做得更好。