哈嚕~進來看這篇文章的你,如果不是想增廣見聞、學習新知,就是想多了解一些好用來壞壞。
在此提醒,接下來我們就透過這篇文章,具體談談如何透過技術手段將此DASH-IF網站的的影片下載下來,並且進行解鎖。
請注意:本文為路人乙的原創,僅用於學習與交流,此文章並不會把所有使用到的工具寫出來,也不會詳細說明步驟,發佈該文章只是想促進學習以及交流。
由於已經知道此影片是經過加密過後的,如果你在網站上截圖會發現畫面一片黑,這就是因為經過了數位版權管理的關係,但並不是無法破解,只是步驟上比較麻煩。
那麼該怎麼取得該影片呢?其實只要用N_m3u8DL-RE即可。
像我一開始剛接觸這些對這個一竅不通,畢竟已經用習慣了方便的下載器,通常只需要滑鼠點擊幾下即可獲取想要的檔案,但因為一些契機接觸到了該軟體才發現了原來有這麼多這麼有趣的東西,因此激發我去了解並學習。
N_m3u8DL-RE這個是在GitHub上的一個開源程式,這必須用命令提示字元( cmd )輸入指令才能進行下載,對於沒接觸過的人老實說算是有點難度,但學會了如何使用你會發現這比一般的免費下載器好用太多太多了,且不用安裝程式本身又小。
不過可以使用瀏覽器上的擴充The Stream Detector就能簡單獲取指令,那經過該擴充所給出的指令,那麼我們來稍微查看下指令
N_m3u8DL-RE"mpd位置" --header"User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36(KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36" --header"Referer: 自行查看cookie"--save-name "dash"
使用一般的指令是無法獲取該影片的,通常這類經過保護的影片都必須加上header讓他夾帶瀏覽器裡面的cookie等資訊才能夠獲取該檔案。這就是為什麼使用IDM無法取得該影片的原因。
至於要加上哪些資訊,這就得要透過瀏覽器的開發者工具( DevTools)去查看並嘗試才可得知,簡單按下F12即可,但實在是太過麻煩因此還是透過擴充會比較方便。
已解析, 共計26 條媒體流, 基本流 10 條,可選音頻流 12 條, 可選字幕流 4 條
這跟mpd檔案內的資訊一樣。那麼把取得的影片丟進播放器進行播放,可以看到影片基本上無法觀看,聲音也相當奇怪。
這也是因為數位版權管理的關係,未將影片進行解鎖的關係。
接下來將說明如何獲取解鎖金鑰的過程,那麼我們來複習一下上一篇文章提到的金鑰的基本特徵:由公鑰(Key ID)和私鑰(Key)兩部分組成
公鑰儲存在mpd檔案中,從使用者向伺服器發送驗證訊息,伺服器核驗後向客戶端發送一個長字串,那就是金鑰。
而提到了公鑰其實也就是PSSH,基本上mpd就可獲取,但其實也可以在開發者工具的控制臺( Console )裡面獲取,不過要先透過這款擴充Tampermonkey加上這腳本EME Logger才能簡單獲取
那麼已經取得了PSSH那麼接下來就是伺服器網址,要獲取其實也不難,只要在網路( Network)內搜尋license、widevine等關鍵字可以找到。
接著右鍵複製網址即可。那麼關鍵的兩樣東西已經獲取了,接下來只要向伺服器發送PSSH,伺服器經過驗證後即可返回一串數值,該數值就是解鎖該影片的金鑰。
mp4decrypt.exe --key <KID>:<KEY> 加密影片.mp4解鎖後的影片檔名.mp4
最後就可以透過播放器正常播放。
什麼什麼?眼尖的你問我為什麼截圖上張跟下張裡面所呈現的資料對不起來?
這是因為編寫該系列文章其實耗費了我相當長的一段時間,雖然都是在同個網站上獲取材料進行截圖,但金魚腦如我每次所選的測試影片素材都不一樣,因此才會出現以上狀況,不過按照這思路下去進行是可以獲取真正的金鑰,這是沒有問題的。
如果真的有人需要更詳細的教學方法,或許會考慮再寫一篇詳細的教學,畢竟在繁體中文的圈子內根本沒有人在討論,自己認真學習了好一段時間才學會,真的蠻想要有個小圈圈可以做討論交流,但教學應該不會近期。