關於m3u8格式的視頻文件ts轉mp4下載和key加密問題

一,利用網站瀏覽器F12鍵,利用谷歌瀏覽器插件找到視頻的.m3u8文件,並打開。

 

 

二,打開m3u8文件後,裏面有很多.ts的鏈接,和key的鏈接。

 

 

三,保存爲html文件,下載ts文件,代碼如下:可加多線程,可能需要用代理。

 1 # 爬蟲 123.html就是打開m3u8文件右鍵保存爲html格式。
 2 htmlf=open('./123.html','r',encoding="utf-8")
 3 htmlcont=htmlf.read()
 4 # print(htmlcont)
 5 import requests
 6 from lxml import etree
 7 tree = etree.HTML(htmlcont)
 8 href = tree.xpath("//a//@href")
 9 # print(href)
10 ts = href[2273:]
11 print(len(ts))
12 # print(ts)
13 for i in ts:
14     a = i.split("/")[-1]
15     # print(a)
16     headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.87 Safari/537.36"}
17     try:
18         rest = requests.get(i,headers=headers)
19         if rest.status_code == 200:
20             with open(a,"wb") as fp:
21                 fp.write(rest.content)
22                 fp.close()
23     except Exception as e:
24          print(e)

四,方法參考1:

參考鏈接:https://gist.github.com/larvata/95df619df7109d8b74d2b965a3266354#ffmpeg-cheatsheet

首先 先下載 key 和 m3u8 
然後修改 m3u8 中 key 的路徑
最後 用 ffmpeg 下載
ffmpeg -i <source.m3u8> -c copy <target.ts>

四,方法參考2:

關於m3u8文件, ts文件解密, hls 解密. 一些記錄

 使用openssl 解密

openssl aes-128-cbc -d -in 原.ts -out 解密後.ts -nosalt -iv 偏移量 -K key16進制
其中 iv 偏移量和 key 一般都會在 m3u8 中。 key要按地址下載下來, iv偏移量是可選的,如果m3u8裏沒有iv,iv可以隨便設置爲0。
還可以直接使用 ffmpeg 直接合並文件。

 五,對於加密的m3u8文件:

m3u8視頻另一種下載方式
如上圖中用ts鏈接直接下載下來的ts視頻文件是加密的(爲什麼要下加密的?雖然加密但是下載速度快啊)。

#EXT-X-KEY 字段已經寫明瞭加密方式是AES-128,key通過URI獲取,IV也有。

 

那怎麼解密呢?
1.複製URI地址到網頁,你將秒速自動下載得到一個16字節文件
2.打開終端,打開該文件查看16進制:

 

六,獲取key值:

 下載m3u8裏的key文件,下載winhex.exe應用程序,安裝之後,把key文件拖入winhex裏,自動生成16進制。

 

 

 七,合成下載好的.ts文件:

左下角點擊運行:cmd

copy /b  文件所在盤:\子文件\*.ts  儲存的文件夾:\子文件\new.ts

把上邊的漢字換成盤符和文件所在的文件夾。

 

八,合成一個ts文件之後還不能打開,因爲ts是加密的。

 這裏,沒有iv值,用0代替。這樣解密之後的ts文件即可播放。

九,注:ts文件的順序必須是有序的,不可缺少的。

參考網址:簡書:https://www.jianshu.com/p/1b0adcc7b426

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章