1. 作為程序員你看視頻還在充會員嗎?閑著無聊的時候我也會看一些電影和電視劇比如【龍嶺迷窟】,但是很多都是收費的,需要充會員才可以看,雖然網(wǎng)上有很多插件可以使用,但是你不確定它什么時候就不維護了,很無奈,程序員嘛,所以研究一下怎么免費看 本次測試視頻為:愛奇藝【龍虎山張?zhí)鞄煛縣ttps://www.iqiyi.com/v_19ry2hvngk.html 視頻文件在網(wǎng)絡中是如何傳輸?shù)模?/p> 一部完整的電影大小大概在2G左右,那么這個文件肯定是存放在服務器上的,但是問題是如果將整個文件以字節(jié)的方式響應到客戶端(一般是瀏覽器頁面),那么服務器端的讀寫時間會特別長,肯定是不靠譜的,百度了一下最終確定視頻的播放套路大致是將一個完整的視頻文件切分為N分很小的文件,然后使用另一個文件記錄這些切分之后的順序,當用戶需要做客戶端進行播放的時候可以通過下載或者接收切分之后的文件數(shù)據(jù),在了解完大概的套路之后就開始動手了 事實證明我的思路是正確的,有圖為證
當我隨便點開一部VIP的電影,打開Chrome瀏覽器,在網(wǎng)絡請求部分選擇全部,然后輸入.ts過濾一下就得到了很多鏈接,這些鏈接指向一個文件,將文件下載下來之后就是一個個的視頻片段
2. 獲取記錄視頻文件列表的的文件這一點其實是最難的,因為既然是VIP也就意味著肯定不會直接給我們,還好現(xiàn)在的網(wǎng)絡很強大,這一部分功能已經(jīng)有人幫我們完成的了,收集了一些免費無廣告的VIP視頻接口解析的站點
這里我使用的是http://jx.其他的站點我沒有一個個測試,隨機測試了幾個都是可用的,這些站點無一例外也不會直接給我們,沒關系,提交我們想看的視頻頁面,然后打開調(diào)試頁面就可以看到我們想要的東西
這個后綴是m3u8的文件就是用來記錄切分之后視頻文件順序的文件 3. m3u8文件解析打開這個文件我們大概能夠得到3種不同類型的內(nèi)容
對于這一類的m3u8文件,其實是需要重定向的,重定向后可以獲得真實的m3u8地址,從而獲取到對應的ts地址
對于只有文件名的ts文件,只要把它對應的m3u8地址最后的文件名替換成ts文件名就行了 對于帶有路徑的,根據(jù)url規(guī)則,如果以/開頭的,則代表是在域名根目錄下的,不是/開頭的,則代表是在當前目錄下的,進行相應替換就可以得到ts文件的url地址了 4. 舉個例子以這個地址為例:https://youku./20200605/19968_56117e41/index.m3u8,向這個地址發(fā)送請求,得到如下響應內(nèi)容
地址轉(zhuǎn)換為:https://youku./20200605/19968_56117e41/1000k/hls/index.m3u8,后再次發(fā)送請求,得到如下響應內(nèi)容
再次地址轉(zhuǎn)換為:https://youku./20200605/19968_56117e41/1000k/hls/dd86c7f07a7000000.ts,此時就可以把ts文件下載到本地了,ts文件就是視頻的片段,也就是前面提到的切分之后的文件 5. 關于播放第一種方式:最直接的辦法,將這個視頻所有的ts文件下載之后,在cmd中執(zhí)行copy /b *.ts movie_new.mp4,基本上是靠譜的,我沒有使用 第二種方式:利用代碼以字節(jié)的形式將內(nèi)容直接追加到一個文件中,格式自定,這也是我為啥沒有使用第一種方式的理由 第三種方式:不下載ts文件,直接在線播放,我用HTML引用videojs-contrib-hls插件【https://github.com/videojs/videojs-contrib-hls】已經(jīng)實現(xiàn)了,需要的朋友可以留言,至于Delphi可以使用vlc插件實現(xiàn),具體的我還沒來及研究 文章寫到這里基本上就結(jié)束了!有的朋友可能會覺得沒有完整的代碼,我想說的是臺我已經(jīng)搭好了,就看你怎么把戲唱好了 |
|
來自: 互聯(lián)網(wǎng)分享 > 《視頻會員》