從使用者的角度解開 shaka-packager 加密影片
Caution
此筆記沒有任何「破解」要素
我只是說明如何用你手上的鑰匙把鎖打開,沒有鑰匙的人打不開鎖
Important
此筆記的前提是:
- 你可以在網頁中播放影片
- 影片使用 shaka-packager 技術加密
- 你能取得 License Server 的 Clear Key Response 內容
下載 shaka-packager
https://github.com/shaka-project/shaka-packager/releases/latest
在網頁中 F12 → Network,找到要解密的影片檔案
本例中是 1_1063.webm
將 webm 檔案下載: 右鍵 → Open in new tab
圖中有好幾個 webm 是因為 206 partial content download,事實上它是在載同一個檔案的不同部份
在下載檔案的附近尋找 Clear Key request
本例網頁是使用 Shaka-player,它問回來的 Clear Key 格式如下
重點是其中的 Key ID (kid) 和 Key (k)
使用 online base64 to hex converter 將 Clear Key 轉換為 32 碼的 hex 格式,Key Id 和 Key 都要轉換
解碼使用 Base64URL,詳見 wiki
將指令中的
{EncryptedWebmFile}
替換為加密影片路徑{HexKeyID}
、{HexKey}
替換為前步驟轉出的 32 碼 Hex 字串{stream_selector}
替換為audio
,video
,text
,視影片內容而定
stream_selector (stream):
Required field with value ‘audio’, ‘video’, ‘text’ or stream number (zero based). ref
packager.exe input={EncryptedWebmFile},output=out.webm,stream_selector={stream_selector} --enable_raw_key_decryption --keys key_id={HexKeyID}:key={HexKey}