tencent cloud

云点播

动态与公告
产品动态
公告
产品简介
产品概述
产品特性
产品功能
产品优势
应用场景
解决方案
专业版
云点播专业版简介
快速入门
控制台指南
开发指南
购买指南
计费概述
计费方式
购买指引
账单查询
续费说明
欠费说明
退费说明
快速入门
控制台指南
控制台介绍
服务概览
应用管理
媒体管理
资源包管理
License 管理
实时日志分析
实践教程
媒体上传
如何将点播的媒体文件进行智能降冷
媒体处理
分发播放
如何接收事件通知
如何进行源站迁移
直播录制
如何进行自定义源站回源
直播精彩剪辑固化至云点播 VOD 指引
如何使用 EdgeOne 分发云点播内容
开发指南
媒体上传
媒体加工处理
媒体 AI
事件通知
媒体分发播放
媒体加密与版权保护
播放频道
访问管理
下载媒体文件
应用体系
错误码
播放器 SDK 文档
概述
基本概念
产品功能
Demo 体验
免费测试
购买指南
SDK 下载
License 指引
播放器教程
含 UI 集成方案
无 UI 集成方案
高级功能
API 文档
第三方播放器插件
Player SDK Policy
服务端 API 文档
History
Introduction
API Category
Other APIs
Media Processing APIs
Task Management APIs
Media Upload APIs
Media Management APIs
Event Notification Relevant API
Media Categorization APIs
Domain Name Management APIs
Distribution APIs
AI-based Sample Management APIs
Region Management APIs
Data Statistics APIs
Carousel-Related APIs
Just In Time Transcode APIs
No longer recommended APIs
Making API Requests
AI-based image processing APIs
Parameter Template APIs
Task Flow APIs
Data Types
Error Codes
Video on Demand API 2024-07-18
常见问题
移动端播放问题
费用相关问题
视频上传问题
视频发布问题
视频播放问题
Web 端播放问题
全屏播放问题
数据统计问题
访问管理相关问题
媒资降冷问题
相关协议
Service Level Agreement
VOD 政策
隐私政策
数据处理和安全协议
联系我们
词汇表

播放器签名

PDF
聚焦模式
字号
最后更新时间: 2026-02-06 16:53:09
播放器签名,用于 App 播放服务对终端的授权播放。如下图步骤 6 所示,若 App 播放服务允许终端播放,则派发一个合法的签名。终端在签名有效时间内可以播放视频内容。



下面,将介绍播放器签名的参数组成和生成规则。

签名参数

参数名称
必选
类型
说明
appId
Integer
点播应用 appId。
fileId
String
点播文件 ID。
contentInfo
Object
对应点播文件 ID 播放的具体内容,为 ContentInfo 类型,可播放下列三种中的一种:
转自适应码流 的输出音视频,可以是未加密或加密的。
转码 的输出音视频。
上传 的原始音视频。
currentTimeStamp
Integer
派发签名当前 Unix 时间戳。
expireTimeStamp
Integer
派发签名到期 Unix 时间戳,不填表示不过期。
urlAccessInfo
Object
播放链接访问配置参数,包括 Key 防盗链 配置、播放域名与协议参数,为 UrlAccessInfo 类型
drmLicenseInfo
Object
DRM License 配置参数,为 DrmLicenseInfo 类型

ContentInfo 类型

参数名称
必选
类型
说明
audioVideoType
String
播放的音视频类型,可选值:
RawAdaptive:未加密的 转自适应码流 输出。
ProtectedAdaptive:私有加密或 DRM 保护的 转自适应码流 输出。
Transcode:转码 后输出。
Original:上传 的原始音视频。
rawAdaptiveDefinition
Integer
允许输出的未加密的 转自适应码流模板 ID,仅当 audioVideoType 为 RawAdaptive 该参数必填且有效。
drmAdaptiveInfo
Object
允许输出的加密保护的 转自适应码流模板 ID,仅当 audioVideoType 为 ProtectedAdaptive 该参数必填且有效,为 DRMAdaptiveInfo 类型
transcodeDefinition
Integer
允许输出的 转码模板 ID,仅当 audioVideoType 为 Transcode 该参数必填且有效。
imageSpriteDefinition
Integer
用于进度条预览的 雪碧图模板 ID。
resolutionNames
Array of Object
播放器对不于不同分辨率的子流展示名字,为 ResolutionNameInfo 类型 数组。不填或者填空数组则使用默认配置:
MinEdgeLength:240,Name:240P。
MinEdgeLength:480,Name:480P。
MinEdgeLength:720,Name:720P。
MinEdgeLength:1080,Name:1080P。
MinEdgeLength:1440,Name:2K。
MinEdgeLength:2160,Name:4K。
MinEdgeLength:4320,Name:8K。

DRMAdaptiveInfo 类型

参数名称
必选
类型
说明
privateEncryptionDefinition
Integer
widevineDefinition
Integer
fairPlayDefinition
Integer

ResolutionNameInfo 类型

参数名称
必选
类型
说明
MinEdgeLength
Integer
视频短边长度,单位:像素。
Name
String
展示名字。

UrlAccessInfo 类型

参数名称
必选
类型
说明
t
String
16进制字符串,表示链接的过期时间。
具体含义和取值参见 防盗链参数 中的 t 参数。
不填表示不过期。
exper
Integer
试看时长,单位为秒,以十进制表示。
如果要指定试看时长,时长必须不小于30秒。
具体含义和取值参见 防盗链参数 中的 exper 参数。
rlimit
Integer
最多允许多少个不同 IP 的终端播放,以十进制表示。
具体含义和取值参见 防盗链参数 中的 rlimit 参数。
us
String
链接标识,用户增强链接的唯一性。
具体含义和取值参见 防盗链参数 中的 us 参数。
domain
String
播放时使用的域名。不填或者填 Default,表示使用 默认分发配置 中的域名。
scheme
String
播放时使用的 Scheme。不填或者填 Default,表示使用 默认分发配置 中的 Scheme。其他可选值:
HTTP。
HTTPS。
uv
String
6 位十六进制字符,用于溯源水印场景。

DrmLicenseInfo 类型

参数名称
必选
类型
说明
persistent
String
是否允许终端持久化保存商业级 DRM 播放许可证。取值范围:
ON:允许持久化保存。
OFF:不允许持久化保存。
默认取值为 OFF。
rentalDuration
Integer
当 persistent 为 ON 时,商业级 DRM 播放许可证允许被持久化保存的时长,单位为秒,不填表示不限时长。
forceL1TrackTypes
Array of String
当使用 Widevine 时,要求终端必须使用 L1 安全级别处理的 Track 类型。其中,未指定的 Track 类型默认使用 L3 安全级别处理。取值范围如下:
AUDIO:音频子流;
SD:短边<720的子流;
HD:720 ≤ 短边<2160的子流;
UHD1:2160 ≤ 短边<4320的子流;
UHD2:短边 ≥ 4320的子流。
minimumProtectionLevel
String
是否允许终端使用「基础」模式播放。取值范围:
BASIC::允许使用「基础」模式播放;
STANDARD:不允许使用「基础」模式播放。
默认取值为 BASIC。
说明:
如果您使用了新增 应用,则 appId 参数需要填新增应用的 AppId。
签名参数中的 texperrlimitus 的含义和取值,与 防盗链参数 中的同名参数完全一致。

签名计算

点播播放器签名采用 JWT(JSON Web Token),一种由 Header、PayLoad 和 Key 计算并组合得到的数字令牌。
Header 为 JSON 格式,表示 JWT 使用的算法信息,固定使用如下内容:
{
"alg": "HS256",
"typ": "JWT"
}

PayLoad

Payload 为 JSON 格式,是播放器签名参数的内容,例如:
{
"appId": 1255566655,
"fileId": "4564972818519602447",
"contentInfo": {
"audioVideoType": "RawAdaptive",
"rawAdaptiveDefinition": 10,
"imageSpriteDefinition": 10
},
"currentTimeStamp": 1663064276,
"expireTimeStamp": 1663294210,
"urlAccessInfo": {
"t": "6323e6b0",
"rlimit": 3,
"us": "72d4cd1101"
}
}

Key

Key 是计算签名时使用的密钥,这里使用 默认分发配置 中的播放密钥

计算公式

1. 计算 Signature: Signature = HMACSHA256(base64UrlEncode(Header) + "." + base64UrlEncode(Payload), Key)
2. 计算 Token: Token = base64UrlEncode(Header) + '.' + base64UrlEncode(Payload) + '.' + base64UrlEncode(Signature) 最终得到的 Token,即为点播播放器签名。
说明:
HMACSHA256 请参见 RFC - HMACSHA256。base64UrlEncode 请参见 RFC - base64UrlEncode
为方便您计算签名以及验证签名,云点播控制台提供了签名生成工具和校验工具:

计算示例

例如,某用户 appId 是 1255566655,fileId 是 4564972818519602447的视频生成播放器签名,并且:
播放密钥为 TxtyhLlgo7J3iOADIron
播放器签名的派发时间为 2022-09-13 18:17:56,对应的 Unix 时间是 1663064276
播放器签名的过期时间为 2022-09-16 10:10:10,对应的 Unix 时间是 1663294210
防盗链的过期时间为 2022-09-16 11:00:00,对应的 Unix 时间是 6323e6b0
限制最多允许 3 个不同的 IP 播放 URL。
生成的随机字符串是 72d4cd1101
则签名步骤如下:
1. Header 的内容为:
{
"alg": "HS256",
"typ": "JWT"
}
经过 base64UrlEncode 后的结果是: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9
2. Payload 的内容为:
{
"appId": 1255566655,
"fileId": "4564972818519602447",
"contentInfo": {
"audioVideoType": "RawAdaptive",
"rawAdaptiveDefinition": 10,
"imageSpriteDefinition": 10
},
"currentTimeStamp": 1663064276,
"expireTimeStamp": 1663294210,
"urlAccessInfo": {
"t": "6323e6b0",
"rlimit": 3,
"us": "72d4cd1101"
}
}
经过 base64UrlEncode 后的结果是: eyJhcHBJZCI6MTI1NTU2NjY1NSwiZmlsZUlkIjoiNDU2NDk3MjgxODUxOTYwMjQ0NyIsImNvbnRlbnRJbmZvMSI6eyJhdWRpb1ZpZGVvVHlwZSI6IlJhd0FkYXB0
aXZlIiwicmF3QWRhcHRpdmVEZWZpbml0aW9uIjoxMCwiaW1hZ2VTcHJpdGVEZWZpbml0aW9uIjoxMH0sImN1cnJlbnRUaW1lU3RhbXAiOjE2NjMwNjQyNzYsImV4
cGlyZVRpbWVTdGFtcCI6MTY2MzI5NDIxMCwidXJsQWNjZXNzSW5mbyI6eyJ0IjoiNjMyM2U2YjAiLCJybGltaXQiOjMsInVzIjoiNzJkNGNkMTEwMSJ9fQ
3. 以播放密钥作为 Key(即 TxtyhLlgo7J3iOADIron)进行 HMAC 计算,Signature 是: QFcBX9830ysTzJIyZxoOlRmNb2Gqy2fns9yOfriaDI8
4. 最终 Token 是: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhcHBJZCI6MTI1NTU2NjY1NSwiZmlsZUlkIjoiNDU2NDk3MjgxODUxOTYwMjQ0NyIsImNvbnRlbnRJbmZvMSI6eyJhdWRpb1ZpZGVvVHlwZSI6IlJhd0FkYXB0aXZlIiwicmF3QWRhcHRpdmVEZWZpbml0aW9uIjoxMCwiaW1hZ2VTcHJpdGVEZWZpbml0aW9uIjoxMH0sImN1cnJlbnRUaW1lU3RhbXAiOjE2NjMwNjQyNzYsImV4cGlyZVRpbWVTdGFtcCI6MTY2MzI5NDIxMCwidXJsQWNjZXNzSW5mbyI6eyJ0IjoiNjMyM2U2YjAiLCJybGltaXQiOjMsInVzIjoiNzJkNGNkMTEwMSJ9fQ.QFcBX9830ysTzJIyZxoOlRmNb2Gqy2fns9yOfriaDI8

代码示例

云点播提供了 Python、Java、Go、C#、PHP 和 Node.js 等多种语言的播放器签名的代码示例,具体请参见 播放器签名 - 签名示例

常见错误

如果您使用播放器签名,播放器 SDK 返回了错误码,较为常见的原因有:
签名计算 KEY 用错,应该使用 默认分发配置 中的播放密钥,您可自查下是否误用为 KEY 防盗链参数 中的KEY参数。
签名参数 填错,如:
参数类型错误:例如 appId 为整型,错填为appId:"125000123"(字符串型);又例如contentInfo里的转码模板参数为整型,错填为 transcodeDefinition: "14011"(字符串型)。
参数取值超出有效范围:例如contentInfo里的播放的音视频类型参数,错填为audioVideoType: "Transocde"(拼写错误,不是有效的枚举值)。

帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈