超级播放器签名,用于 App 播放服务对终端的授权播放。如下图步骤5所示,若 App 播放服务允许终端播放,则派发一个合法的签名。终端在签名有效时间内可以播放视频内容。
注意:当有如下情况之一时,App 终端需要超级播放器签名才能播放:
- 域名开启了 KEY 防盗链。
- 使用了 default 以外的 超级播放器配置。
- 播放 加密 的视频内容。
下面,将介绍超级播放器签名的参数组成和生成规则。
参数名称 | 必选 | 类型 | 说明 |
---|---|---|---|
appId | 是 | Integer | 账号 appId |
fileId | 是 | String | 文件 ID |
currentTimeStamp | 是 | Integer | 派发签名当前 Unix 时间戳 |
expireTimeStamp | 否 | Integer | 派发签名到期 Unix 时间戳,不填表示不过期 |
pcfg | 否 | String | 使用的超级播放配置名称。如果是 default,可以不填 |
urlAccessInfo | 否 | Object | 播放链接的防盗链配置参数,为 UrlAccessInfo 类型 |
drmLicenseInfo | 否 | Object | 加密内容的密钥配置参数,为 DrmLicenseInfo 类型 |
参数名称 | 必选 | 类型 | 说明 |
---|---|---|---|
t | 否 | String |
|
exper | 否 | Integer |
|
rlimit | 否 | Integer |
|
us | 否 | String |
|
参数名称 | 必选 | 类型 | 说明 |
---|---|---|---|
expireTimeStamp | 否 | Integer | 密钥的到期 Unix 时间戳,不填表示不过期 |
说明:
- 如果您使用了 子应用,则 appId 参数需要填子应用 AppId。
- 签名参数中的
t
、exper
、rlimit
、us
的含义和取值,与 防盗链参数 中的同名参数完全一致。
点播超级播放器签名采用 JWT(JSON Web Token),一种由 Header、PayLoad 和 Key 计算并组合得到的数字令牌。
Header 为 JSON 格式,表示 JWT 使用的算法信息,固定使用如下内容:
{
"alg": "HS256",
"typ": "JWT"
}
Payload 为 JSON 格式,是超级播放器签名参数的内容,例如:
{
"appId": 1255566655,
"fileId": "4564972818519602447",
"currentTimeStamp": 1546340400,
"expireTimeStamp": 1546344000,
"urlAccessInfo": {
"t": "5c2b5640",
"rlimit": 3,
"us": "72d4cd1101"
}
}
Key 是计算签名时使用的密钥,和 防盗链参数 中的KEY
参数一致。
Signature = HMACSHA256(base64UrlEncode(Header) + "." + base64UrlEncode(Payload), KEY)
Token = base64UrlEncode(Header) + '.' + base64UrlEncode(Payload) + '.' + base64UrlEncode(Signature)
说明:HMACSHA256 请参见 RFC - HMACSHA256。base64UrlEncode 请参见 RFC - base64UrlEncode。
为方便您计算签名以及验证签名,云点播提供了在线签名生成校验工具:
例如,某用户 appId 是1255566655
,fileId 是4564972818519602447
的视频生成超级播放器签名,并且:
24FEQmTzro4V5u3D5epW
。MyCfg
。1546340400
。1546344000
。5c2b5640
。72d4cd1101
。则签名步骤如下:
{
"alg": "HS256",
"typ": "JWT"
}
经过 base64UrlEncode 后的结果是:eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9
。{
"appId": 1255566655,
"fileId": "4564972818519602447",
"currentTimeStamp": 1546340400,
"expireTimeStamp": 1546344000,
"urlAccessInfo": {
"t": "5c2b5640",
"rlimit": 3,
"us": "72d4cd1101"
}
}
经过 base64UrlEncode 后的结果是:eyJhcHBJZCI6MTI1NTU2NjY1NSwiZmlsZUlkIjoiNDU2NDk3MjgxODUxOTYwMjQ0NyIsImN1cnJlbnRUaW1lU3RhbXAiOjE1NDYzNDA0MDAsImV4cGlyZVRpbWVTdGFtcCI6MTU0NjM0NDAwMCwidXJsQWNjZXNzSW5mbyI6eyJ0IjoiNWMyYjU2NDAiLCJybGltaXQiOjMsInVzIjoiNzJkNGNkMTEwMSJ9fQ
。24FEQmTzro4V5u3D5epW
为 KEY 进行 HMAC 计算,Signature 是:TRdfy-ctQFRDJzknfKsT0di5tEaweAVumOgxsA8Qd-8
。eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhcHBJZCI6MTI1NTU2NjY1NSwiZmlsZUlkIjoiNDU2NDk3MjgxODUxOTYwMjQ0NyIsImN1cnJlbnRUaW1lU3RhbXAiOjE1NDYzNDA0MDAsImV4cGlyZVRpbWVTdGFtcCI6MTU0NjM0NDAwMCwidXJsQWNjZXNzSW5mbyI6eyJ0IjoiNWMyYjU2NDAiLCJybGltaXQiOjMsInVzIjoiNzJkNGNkMTEwMSJ9fQ.TRdfy-ctQFRDJzknfKsT0di5tEaweAVumOgxsA8Qd-8
。云点播提供了 Python、Java、Go、C#、PHP 和 Node.js 等多种语言的超级播放器签名的代码示例,具体请参见 超级播放器签名 - 签名示例。
作者 阿里云技术运营望宸 技术实践的门槛不仅在于应用上线后各类问题的排查难度 ...
1.爱上一个人跟拉屎一样简单,忘记一个人跟吃屎一样难。 2.大姨妈是吐血鬼,卫...
据国际数据公司(IDC)近日发布的《中国云运营服务市场(2020上半年)跟踪》报告显示...
阿里云与西奥电梯联合共同打造西奥可信电梯物联网平台,通过工业互联网的规则引...
ssd 云服务器 是什么?就是存储模式选择为ssd超高速 云盘 的 云服务器 。ssd超高...
11月30日,由工业和信息化部、北京市人民政府共同主办的2020年中国网络安全产业...
private Map Character, Set Character constructGraph(String[] words) { Map C...
办网站必须要备案吗?是的,使用中国大陆境内的服务器开办网站,必须先办理 网站...
作者:朱永生 什么是企业搜索 企业搜索,顾名思义,就是企业使用的搜索服务或者...
今天,猿妹要和大家介绍Python程序员在2021年最不应该错过的优秀VS Code扩展: 1...