从加密视频网站提取视频的实现
Warning:本文章旨在進行技術性探討,不作為爬蟲手段獲得付費版權資源來進行商業性的目的,如有侵權,純屬巧合。
用到的工具:Fiddler,格式工廠,HLS流媒體播放器
最近疫情期間,我哥要給他設計師徒弟們看一些國外的建筑設計作品找找靈感。可惜,國內不能直接訪問,我哥問我從技術的角度能否抓取視頻。作為一個android工程師,這個提議引起了我的興趣。
話不多說,上個視頻網站實現我們的思路。
這是國外一個視頻網站,視頻不提供下載。
?
我們在瀏覽器中按F12鍵打開控制臺。如意料中的一樣,找不到視頻資源的相關信息。
?
?
這個時候我們上工具,Flidder網絡抓包工具。
?
注意:關于Https網站抓包得到的全是如圖443的錯誤,什么資源都抓不到。請卸載Flidder里的相關證書,并重新安裝。
?
重新刷新網站,發現出現好多請求。
?
點擊這些請求,發現返回的url地址。
?
很顯然是通過轉碼的。我們拿著這些unicode地址轉中文。就得到如下圖:
?
可以找到和視頻相關的播放信息,包括視頻的id,播放時長等等。我有想著是否該視頻的地址的由一些字段拼接的,然后播放的時候地址拼在一起,因為移動開發經常這么干,哈哈。然后我們并沒有從j字段里找到什么規律。
接著看抓包的地址,突然發現一個以m3u8結尾的連接引起我的關注。
?
m3u8是什么?
M3U8 是 Unicode 版本的 M3U,用 UTF-8 編碼。"M3U" 和 "M3U8" 文件都是蘋果公司使用的 HTTP Live Streaming(HLS) 協議格式的基礎,這種協議格式可以在 iPhone 和 Macbook 等設備播放。
?
知道HLS就知道這是個流媒體播放器能直接支持的格式了。我們如果能從視頻網站中找到這個跟m3u8相關的請求,就可以拿到這個資源文件。
?
瀏覽器直接打開地址,果然將m3u8文件下載下來了。原以為下載完成就能拿到視頻地址,然而事情沒那么簡單,以文本格式打開文件是這樣的:
?
沒有發現以http或者https開頭的地址,卻又再次發現m3u8地址結尾的信息。看來是嵌套了好幾層,網站提供了2種清晰度的視頻。將新的文件地址替換掉原域名的文件地址,又下載了一個m3u8的文件,打開是這樣的:
?
這就一目了然了。ts格式就是視頻的格式了。該網站將一個視頻切割成了33個片段,我們要想完整的視頻,就需要將每個視頻下載下來,然后拼接。
話不多說,將文件地址在之前下載的m3u8的域名結尾替換掉就能下載下碎片視頻。下載完成后,我們用到了格式工廠將視頻依次拼接,大功告成。
?
?
總結
以上是生活随笔為你收集整理的从加密视频网站提取视频的实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: proteus8如何画封装_如何prot
- 下一篇: 亚马逊平台在哪个站点开店好