爬蟲:解決視頻遇到m3u8加密

有時候看電影想珍藏下來柒昏,但是有ts文件下載下來播放不了嫂侍,那么恭喜你遇到視頻加密了

很多網(wǎng)站直接返回一個個ts文件,通過ajax請求挨個返回委造。有些ts文件是有規(guī)律可循的,有些是沒有規(guī)律可循的搏屑,不過一般沒有規(guī)律的ts文件名争涌,都是在一個叫m3u8這個文件里面的。

比如這樣:

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:13
#EXT-X-MEDIA-SEQUENCE:0

//這里是注釋辣恋,真實文件里不會有的亮垫,
//看看你的m3u8文件里有沒有這一行,如果有的話伟骨,那么恭喜你這個m3u8文件是加密的饮潦,請繼續(xù)往下看
//如果沒有這行的話,特別是沒有這個#EXT-X-KEY携狭,那么同樣恭喜你继蜡,這個m3u8沒有加密,你直接就可以下載合并
#EXT-X-KEY:METHOD=AES-128,URI="http://www.example.com/20210125/key.key"
#EXTINF:12.5,
//下面的這個其實才是視頻真正的地址,你放在瀏覽器地址欄上直接回車是可以直接下載的
//這里還可能出現(xiàn)GBDYO3576000.ts這種情況稀并,其實是把前面的路徑省略了仅颇,可根據(jù)m3u8文件的路徑自行加上
http://www.example.com/20180125/GBDYO3576000.ts
#EXTINF:12.5,
http://www.example.com/20180125/GBDYO3576001.ts
#EXTINF:12.5,
http://www.example.com/20180125/GBDYO3576002.ts

通過上面的文件內(nèi)容第五行的紅色字體,我們可以看到加密方式是AES-128碘举,而key就是解密鑰匙,在里面我們也可以看到該url忘瓦,如果在里面只有EXT-X-KEY:METHOD=AES-128 ,而即使沒有URI引颈,我們也可以在相應(yīng)中看到一個叫key.key的文件耕皮。

# 獲取key  ,二進制流格式
key=requests.get('http://www.example.com/20210125/key.key').content

好了蝙场,我們已經(jīng)拿到了key值凌停,接下來就是解密邏輯,也很簡單:

        # iv是一個二進制字符串售滤,沒有明確說明就按照這個寫即可罚拟,注意位數(shù)
        iv=b'0000000000000000'
        # 獲取aes對象,key已獲取
        cipher = AES.new(key, AES.MODE_CBC, iv)
        # 進行解密,res1就是媒體流(二進制)字符串
        plain_data = cipher.decrypt(res1)

然后接下來我們就開始下載,合并文件即可完箩。

# AES解密
import requests
from Cryptodome.Cipher import AES
headers = {
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36 Edg/88.0.705.53'
}
# 獲取key  舟舒,二進制流格式,key的地址具體網(wǎng)站自己看
key=requests.get('http://www.example.com/20210125/key.key').content
# res就是我獲取的ts的url組成的列表,直接請求文件地址,使用正則匹配或者其他方式獲取都可以
for i in res:
    try:
        res1 = requests.get(i,timeout=5).content
        iv=b'0000000000000000'
        # 獲取aes對象
        cipher = AES.new(key, AES.MODE_CBC, iv)
        # 進行解密
        plain_data = cipher.decrypt(res1)
        with open('合并.ts','ab+') as w:
            w.write(plain_data) # 寫入解密后的內(nèi)容
    except:
        pass

上述代碼還是有問題的歪架,一個是太慢我碟,另一個是采用追加的方式寫入二進制流數(shù)據(jù),容易內(nèi)存溢出皆尔。因為不是工作需要呐舔,所以就不完善了,僅用來記錄AES加密和視頻媒體流的數(shù)據(jù)獲取慷蠕,歡迎大家指導(dǎo)珊拼,改進!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末流炕,一起剝皮案震驚了整個濱河市澎现,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌每辟,老刑警劉巖剑辫,帶你破解...
    沈念sama閱讀 221,430評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異渠欺,居然都是意外死亡妹蔽,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,406評論 3 398
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來胳岂,“玉大人编整,你說我怎么就攤上這事∪榉幔” “怎么了掌测?”我有些...
    開封第一講書人閱讀 167,834評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長成艘。 經(jīng)常有香客問我赏半,道長,這世上最難降的妖魔是什么淆两? 我笑而不...
    開封第一講書人閱讀 59,543評論 1 296
  • 正文 為了忘掉前任断箫,我火速辦了婚禮,結(jié)果婚禮上秋冰,老公的妹妹穿的比我還像新娘仲义。我一直安慰自己,他們只是感情好剑勾,可當我...
    茶點故事閱讀 68,547評論 6 397
  • 文/花漫 我一把揭開白布埃撵。 她就那樣靜靜地躺著,像睡著了一般虽另。 火紅的嫁衣襯著肌膚如雪暂刘。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,196評論 1 308
  • 那天捂刺,我揣著相機與錄音谣拣,去河邊找鬼。 笑死族展,一個胖子當著我的面吹牛森缠,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播仪缸,決...
    沈念sama閱讀 40,776評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼贵涵,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了恰画?” 一聲冷哼從身側(cè)響起宾茂,我...
    開封第一講書人閱讀 39,671評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎锣尉,沒想到半個月后刻炒,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,221評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡自沧,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,303評論 3 340
  • 正文 我和宋清朗相戀三年坟奥,在試婚紗的時候發(fā)現(xiàn)自己被綠了树瞭。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,444評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡爱谁,死狀恐怖晒喷,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情访敌,我是刑警寧澤凉敲,帶...
    沈念sama閱讀 36,134評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站寺旺,受9級特大地震影響爷抓,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜阻塑,卻給世界環(huán)境...
    茶點故事閱讀 41,810評論 3 333
  • 文/蒙蒙 一蓝撇、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧陈莽,春花似錦渤昌、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,285評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至私植,卻和暖如春忌栅,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背曲稼。 一陣腳步聲響...
    開封第一講書人閱讀 33,399評論 1 272
  • 我被黑心中介騙來泰國打工狂秘, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人躯肌。 一個月前我還...
    沈念sama閱讀 48,837評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像破衔,于是被迫代替她去往敵國和親清女。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,455評論 2 359

推薦閱讀更多精彩內(nèi)容

  • 最近在做視頻播放器晰筛,發(fā)現(xiàn)目前主流的視頻播放都是流媒體嫡丙,以前的MP4 大文件播放時代已經(jīng)過去了。之前做的一個播放器:...
    NicooYang閱讀 6,305評論 1 9
  • m3u8文件信息總結(jié) 最近在做視頻下載读第,本地播放功能的時候曙博,發(fā)現(xiàn)的問題,先筆記記錄一下 開發(fā)思路 (1) 在線解析...
    不要虛度美好的時光閱讀 12,662評論 0 3
  • 之前因為溫習3dsmax怜瞒,在騰訊課堂app上緩存了不少的視頻父泳,因為緩存在手機觀看屏幕比較小般哼,一直想把緩存的視頻轉(zhuǎn)移...
    鋼琴師2005閱讀 32,933評論 7 11
  • 簡介 M3U8 是 Unicode 版本的 M3U,用 UTF-8 編碼惠窄。"M3U" 和 "M3U8" 文件都是蘋...
    Whyn閱讀 239,533評論 6 123
  • 為了方便以后查詢蒸眠,收藏呼神的博客 前言 保護好第三方的版權(quán)是視頻類公司要考慮的問題。如何防止用戶通過錄屏手段取得受...
    阿姣_0405閱讀 3,678評論 0 0