Search this site
Embedded Files
Skip to main content
Skip to navigation
Sam Sam
主页
关于我
文章
MySejahtera PHP Web App - 一个用了简单PHP写的Web App
为什么马来西亚的ISP在对接中国ISP的网络时会出现高延迟/高丢包率(Packet Loss)
使用 Cloudflare Tunnel 转发 Minecraft 服务端口到公网
解锁紫光展锐 UNISOC SC9832E / Yes Altitude 4 的Bootloader 锁
Pixel Experience Android 12 获取无限Google Photos 原画质备份空间
Oracle Cloud ARM 机器安装宝塔面板错误的解决方法
宝塔 Nginx 反代 502 Bad Gateway SSL问题
执行XMLHttpRequest时显示加载按钮
Windows Insider Program 使用体验
Acer Aspire A514-52-37H1 macOS Catalina 黑苹果
获取 Widevine L3 Key ID & Key 解密 Widevine L3 加密视频
通过XMLHttpRequest请求Firebase Dynamic URL并返回缩短URL
通过 Shaka Player 和 Clearkeys 播放加密后的MPD
通过转换Hex格式的Clearkey 到 Base 64 并且自动输出符合 EME Clearkey 格式的JSON
MRT Putrajaya Line 布城捷运线 移动网络覆盖情况
启用 Pixel 6 5G / VoLTE / VoWiFi
中兴天机 A31 Pro (A2022H) 使用体验
Windows 11 22H2/23H2/24H2 手动安装微软语言输入法
🇲🇾 马来西亚 5G SA 使用体验
强烈推荐的Spotify Playlists
友情链接
Sam Sam
通过转换Hex格式的Clearkey 到 Base 64 并且自动输出符合 EME Clearkey 格式的JSON
Clearkey , 可以说是现有 DRM 的鼻祖.
DRM 全称 为 Digital Rights Management ,即 数字版权加密技术.
顾名思义,
DRM通过对数字内容进行加密和附加使用规则对数字内容进行保护,可以断定用户是否符合播放,从而来保护文档、电影、音乐不被盗版
.
今天我们要着重讲的
是它的鼻祖-Clearkey
.
Clearkey 是由 w3.org 提出的一个通过EME API请求使用对应的密钥解密加密后的视频/音频.
Clearkey 的密钥不像 Widevine / Fairplay / Playready 这样加密了的,相反,Clearkeys的密钥是没有被加密的,你可以直接截获Clearkey 解密.
Clearkey 的 License 格式如下:
{
"keys":
[{
"kty":"oct",
"k":"<key in base64>",
"kid":"<key id in base64>"
}],
'type':"temporary"
}
kid : Base64编码后的 Key ID
k : Base64编码后的 Key
继前言,我们已经成功
获取到视频/音频的Key + Key ID
, 可是我们获取到的Key + Key ID 是 Hex 状态的,并不是 Base 64. 我们需要手动编码至 Base 64 才会被视为一个正确的 License 格式.
如何转换
Hex格式的Clearkey 到 Base 64 并且自动输出符合
Clearkey License
格式的JSON
其实原理很简单,假设:
(a) Key in Hex = a
(b) Key ID in Hex = b
我们只需要将 a 和 b 编码成 Base64 并且移除空格或“=”,并且填入该JSON格式即可.
因此,我用 PHP 写了一个工具,通过 hex2bin 先将 Hex 编码成 Binary , 再使用 Base64 编写该 Binary 为 Base64 , 然后移除 "=" 和 空格. 由于我之前接触过几次PHP,虽然说资历尚浅,可是感谢Google和一众大神,在一个小时内我完成编写这个工具,并且将这个工具搭建在 Heroku 上.
此工具的Github Repo :
https://github.com/samleong123/heroku-clearkey-hex-base64-json
此工具Heroku网站:
https://clearkey-base64-2-hex-json.herokuapp.com/
示意图
通过上述工具,填写对的 Clearkey License 链接,便可使用比如 Tivimate / OTT Navigator 等播放器播放.
举例:
meWATCH SG Channel 5
#EXTM3U
#KODIPROP:inputstream.adaptive.license_type=clearkey
#KODIPROP:inputstream.adaptive.license_key=https://clearkey-base64-2-hex-json.herokuapp.com/results.php?keyid=607b7d22565c4bc3b95ff6c33ce65425&key=28cc5367df666c44be4382e64af64d57
#EXTINF:-1 group-title="Mediacorp SG" tvg-id="997" tvg-chno="997" tvg-logo="https://static.togglestatic.com/shain/v1/dataservice/ResizeImage/$value?Format=%27png%27&Quality=85&ImageId=%27956277%27&EntityType=%27Item%27&EntityId=%2797098%27&Width=150&Height=150&ImageUrl=%27956277.png%27&device=%27web_browser%27&subscriptions=%27Anonymous%27&segmentationTags=%27all%27&ResizeAction=%27fill%27&HorizontalAlignment=%27center%27&VerticalAlignment=%27top%27",Channel 5
https://tglmp02.akamaized.net/out/v1/5081e069e08140c9b95f89a1659cf4dd/manifest.mpd
示意图
请注意,以上行为可能抵触串流平台 TOS ,本人不对以上行为造成的任何后果负责,请知悉!
Google Sites
Report abuse
Google Sites
Report abuse