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

隨便說兩句

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

這裏共享一下播放地址獲得的方法(想看的能夠展開摺疊):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。app

啓動的同時,在優酷主頁裏隨便點開一個視頻,讓它開始播放。wireshark裏很快出現不少包,我加上篩選條件「http」,讓它只抓取http協議相關的包。ide

其中重點關注 info 中開頭爲 GET 方式請求的包,由於這種包最容易分析,音視頻圖片的下載連接每每就包含在這些包的應用層裏面。ui

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

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

這兩種連接打開就能夠播放,但也並非所有均可以。並且我點開了好多連接,能播放的基本都是廣告…… 3d

而後我對 /youku 開頭的進行了重點分析,別問我爲何,男人的直覺 =_=code

對連接進行復制以後,嘗試用迅雷下載,結果發現文件十分的小,並且下載以後也沒法播放。

相似的連接還有不少段,它們下載獲得的文件名同樣,可是大小不一樣,並且單獨下載以後都沒法播放。我猜這是TCP協議分塊傳輸的關係。

這個時候我發現連接後面有一些參數,因而我把整個連接粘貼到記事本里,而後把參數部分刪掉。

獲得新的連接,把它複製到迅雷中,發現能夠下載,並且大小和以前比不可同日而語。

我猜測這個視頻應該是能夠播放的,果不其然,下載以後打開果真能夠順利播放,並且正是我在網頁中播放的視頻。

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

總結一下

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

 

Freecode# : www.cnblogs.com/yym2013

相關文章
相關標籤/搜索