[免責聲明]本文來源於作者個人學習整理,僅供學習交流使用,不構成商業目的。所有資源均系本人個人學習或網絡收集,僅提供一個展示、介紹、觀摩學習的博文,不對其內容的准確性、可靠性、正當性、安全性、合法性等負責,亦不承擔任何法律責任。如涉及文章內容、版權和其它問題,請與本人聯系,我將在第一時間處理。
0x1 視頻課程信息收集--m3u8、key
1. m3u8視頻文件獲取
首先找到對應的課程視頻,最好是已經購買了的(你懂的-_-)。接着使用IDM如下圖瀏覽器右上角,我這使用的是firefox安裝的擴展插件IDM進行視頻下載操作,記下這個下載URL:https://edu.51cto.com//center/player/play/m3u8?lesson_id=1043_253110&id=245898&dp=high&type=wejoboutcourse&lesson_type=course
開始下載,發現彈出如下對話框~~~~~~~
沒關系,我們接着往下操作,點擊該URL或者復制該地址到瀏覽器中打開,你會發現下載一個文件newplay.m3u8,然后先保存到本地。
至此,我們拿到了m3u8文件。
2. 通過m3u8文件獲取到加密key
既然拿到了文件,我們就用文本編輯打開看看里面啥內容,發現好多信息有某有:METHOD加密方式AES-128、key的URI下載地址、iV偏移量以及下面大量的視頻ts切片地址信息。
接下來,我們根據文件中key的URI下載地址鏈接去試試唄。https://edu.51cto.com//center/player/play/get-key?lesson_id=1043_253110&id=245898&type=wejoboutcourse&lesson_type=course&isPreview=0
出現errorSign,這個啥情況?缺少參數?
重點來了:我們回到原視頻播放頁面中,接着調試一波看看能不能找到點有用的,打開瀏覽器的開發者工具, 以firefox為例, 頁面上右鍵--檢查, 或者快捷鍵F12, 切換到Network/網絡監視器面板--刷新或重新載入當前頁面;
用key關鍵字過濾url發現完整的key地址鏈接出來了https://edu.51cto.com/center/player/play/get-key?lesson_id=1043_253110&id=245898&type=wejoboutcourse&lesson_type=course&isPreview=0&sign=401b379280593cf4dbefbd703886475b,點擊鏈接查看詳細信息,發現響應里面出現了一串看不懂的字符串BiNQy07alW36osRdnP0UlNOHH7xjEPRamHxjZPYJiNyPx7NUQQVddPiOua0oJOiUjPNjSPxH9N0Ux5elOPyHVUCB0PPHpLw3QHOPZPxUiQyPQLexQQV51這個就是加密的key了記錄下來。
注意: 加密key的內容每次都會變化, 但是解密得到的key是唯一的;
0x2 視頻課程key解密
獲取課程id
視頻播放地址https://edu.51cto.com/center/course/lesson/index?id=1043_253110&type=wejob 其中有個id數字: "1043_253110", 這是課程id, 記下這個數字;
加密key
BiNQy07alW36osRdnP0UlNOHH7xjEPRamHxjZPYJiNyPx7NUQQVddPiOua0oJOiUjPNjSPxH9N0Ux5elOPyHVUCB0PPHpLw3QHOPZPxUiQyPQLexQQV51
開始解密
用以上准備好的加密key和課程id, 開始解密:
瀏覽器打開解密key的js代碼(文末百度盤打包有)
打開瀏覽器的開發者工具, 頁面上右鍵--檢查, 或者快捷鍵F12, 切換到console/控制台面板. 在console面板粘貼、執行剛才的js代碼;
執行代碼:
decode("BiNQy07alW36osRdnP0UlNOHH7xjEPRamHxjZPYJiNyPx7NUQQVddPiOua0oJOiUjPNjSPxH9N0Ux5elOPyHVUCB0PPHpLw3QHOPZPxUiQyPQLexQQV51","1043_253110")
得到解密key: e5e319c31a310fb5
0x3 用解密key解密視頻
轉換進制
需要先把解密key轉為32位的16進制字符串
可以用這個在線工具: https://www.bejson.com/convert/ox2str/ 或安裝Windows下hexdump工具手動轉換
得到轉換后的32位key: 65356533313963333161333130666235
使用bat批量解密ts切片並自動合並:
其中ffmpeg、wget工具配合openssl來實現批量腳本的自動解密合成最終的視頻文件。
0x4 百度盤打包程序
鏈接:https://pan.baidu.com/s/1rIytswcyDpsqLp8GQsRE3A
提取碼:blog
PS:開發好的同學亦可python腳本,根據本文內容步驟進行自動批量視頻的download。