獲取youku視頻下載鏈接(wireshark抓包分析)


隨便說兩句

前兩天寫了一個python腳本,試圖以分析網頁源碼的方式得到優酷視頻的下載地址,結果只得到視頻的純播放地址,下載純播放地址得到的文件也無法正常播放視頻。

這里共享一下播放地址得到的方法(想看的可以展開折疊):

# 實驗視頻地址:http://v.youku.com/v_show/id_XMTY3OTYyODM2NA==.html?f=27873045&from=y1.2-3.2 # 解析到播放地址:http://static.youku.com/v1.0.0646/v/swf/loader.swf?VideoIDS=XMTY3OTYyODM2NA==&ShowId=0&category=98&Cp=0&Light=on&THX=off&unCookie=0&frame=0&pvid=1470928536391FWGhzj&uepflag=0&Tid=0&isAutoPlay=true&Version=/v1.0.159&show_ce=0&winType=interior&Type=Folder&Fid=27873045&Pt=1&Ob=1&plchid=&playmode=2&embedid=AjQxOTkwNzA5MQJ2LnlvdWt1LmNvbQIvdl9zaG93L2lkX1hNVFkzT1RjMU5qQTRNQT09Lmh0bWw=&ysuid=1470556998734i3T&vext=bc%3D%26pid%3D1470928536391FWGhzj%26unCookie%3D0%26frame%3D0%26type%3D1%26fob%3D1%26fpo%3D1%26svt%3D0%26cna%3DpcwtEK7f7lUCAXDtLY6srtly%26emb%3DAjQxOTkwNzA5MQJ2LnlvdWt1LmNvbQIvdl9zaG93L2lkX1hNVFkzT1RjMU5qQTRNQT09Lmh0bWw%3D%26dn%3D%E7%BD%91%E9%A1%B5%26hwc%3D1%26mtype%3Doth&cna=pcwtEK7f7lUCAXDtLY6srtly&pageStartTime=0 # 但這不是下載地址,汗 # 解析方法: # <div class="player" id="player"...<object type="application/x-shockwave-flash" # data="(.*?)" ... id="movie_player">... # <param name="flashvars" value="(.*?)">... # 正則提取出items,(.*?)處為提取對象,存儲在items中 # items[0] = 'http://static.youku.com/v1.0.0646/v/swf/loader.swf' # items[1] = 'VideoIDS=XMTY3OTYyODM2NA==&ShowId=0&category=98&Cp=0&Light=on&THX=off&unCookie=0&frame=0&pvid=1470928536391FWGhzj&uepflag=0&Tid=0&isAutoPlay=true&Version=/v1.0.159&show_ce=0&winType=interior&Type=Folder&Fid=27873045&Pt=1&Ob=1&plchid=&playmode=2&embedid=AjQxOTkwNzA5MQJ2LnlvdWt1LmNvbQIvdl9zaG93L2lkX1hNVFkzT1RjMU5qQTRNQT09Lmh0bWw=&ysuid=1470556998734i3T&vext=bc%3D%26pid%3D1470928536391FWGhzj%26unCookie%3D0%26frame%3D0%26type%3D1%26fob%3D1%26fpo%3D1%26svt%3D0%26cna%3DpcwtEK7f7lUCAXDtLY6srtly%26emb%3DAjQxOTkwNzA5MQJ2LnlvdWt1LmNvbQIvdl9zaG93L2lkX1hNVFkzT1RjMU5qQTRNQT09Lmh0bWw%3D%26dn%3D%E7%BD%91%E9%A1%B5%26hwc%3D1%26mtype%3Doth&cna=pcwtEK7f7lUCAXDtLY6srtly&pageStartTime=0' # url = items[0] + '?' + items[1] # url就是播放地址
View Code

今天在研究盜鏈時,心想可不可以直接在優酷返回的包里找到視頻的下載鏈接。

琢磨了一秒鍾,心里面覺得這個方法應該是可行的,於是打開抓包神器wireshark。

啟動的同時,在優酷主頁里隨便點開一個視頻,讓它開始播放。wireshark里很快出現很多包,我加上篩選條件“http”,讓它只抓取http協議相關的包。

其中重點關注 info 中開頭為 GET 方式請求的包,因為這種包最容易分析,音視頻圖片的下載鏈接往往就包含在這些包的應用層里面。

例如上圖得到的就是一張logo的圖片。

我在這里面找與視頻相關的包的鏈接,大概找到兩種:

這兩種鏈接打開就可以播放,但也並不是全部都可以。而且我點開了好多鏈接,能播放的基本都是廣告…… 

然后我對 /youku 開頭的進行了重點分析,別問我為什么,男人的直覺 =_=

對鏈接進行復制之后,嘗試用迅雷下載,結果發現文件十分的小,而且下載之后也無法播放。

類似的鏈接還有很多段,它們下載得到的文件名一樣,但是大小不同,而且單獨下載之后都無法播放。我猜這是TCP協議分塊傳輸的關系。

這個時候我發現鏈接后面有一些參數,於是我把整個鏈接粘貼到記事本里,然后把參數部分刪掉。

得到新的鏈接,把它復制到迅雷中,發現可以下載,而且大小和之前比不可同日而語。

我猜想這個視頻應該是可以播放的,果不其然,下載之后打開果然可以順利播放,而且正是我在網頁中播放的視頻。

到這里基本可以確定這個方法是可以獲得優酷的視頻下載鏈接,但是還有點小問題,用我們得到的鏈接下載的視頻只有6分鍾,而原視頻有26分鍾,可想而知,下載的視頻應該是完整視頻的一部分。但我想其它部分的鏈接就在wireshark中,用同樣的方法分析包就可以得到其它部分的鏈接。在這里我就不一一實驗了。

總結一下

這種方法獲取優酷視頻的下載鏈接的方法是利用了wireshark軟件進行抓包,通過抓取網絡中傳輸的包並進行分析,直接得到請求的視頻的地址,然后進行下載。

 

Freecode# : www.cnblogs.com/yym2013

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM