西西軟件下載最安全的下載網(wǎng)站、值得信賴的軟件下載站!

首頁編程開發(fā)其它知識 → 自己做騰訊視頻真實地址解析分析

自己做騰訊視頻真實地址解析分析

前往專題相關軟件相關文章發(fā)表評論 來源:西西整理時間:2013/2/21 9:18:28字體大小:A-A+

作者:zhoubo點擊:3次評論:0次標簽: 騰訊視頻

iPhone騰訊視頻v4.7.1 官方正式版
  • 類型:影音娛樂大。61.1M語言:中文 評分:7.4
  • 標簽:
立即下載

我覺得網(wǎng)上的一些資料大多是直接給出處理的結果,而不注重分析過程,對我們程序員來說,其過程更重要,工作中碰到的問題是多種多樣的,不可能每個碰到的問題都能從網(wǎng)上直接找到答案,我也覺得作為程序員直接去找答案的做法本身有問題.應該提高主動去分析解決問題的能力.下面是對這類問題的一個相對通用的分析方法.

1.URL分析

http://v.qq.com/cover/g/g9jgclyhpp5sp7p.html?vid=g00118pmaso

打開這個url的頁面源碼,找到下面這些內(nèi)容:

var COVER_INFO = {
title :"獨家首發(fā)",
id :"g9jgclyhpp5sp7p",
isPrev :false,
pic :"http://i.gtimg.cn/qqlive/img/jpgcache/files/qqvideo/g/g9jgclyhpp5sp7p_h.jpg",
typeid:22,
videoReName :false,
sourceid:0,
isEurope:false,
useTextVideoList:false,
columnid:0,
hasRecommend:true,
specialTemp:false,
varietyDate:"",
copyright:5
};

在源碼中搜索g9jgclyhpp5sp7p字符串,從其出現(xiàn)的位置基本可以判斷這個字符串唯一代表了一個合集(或者叫專輯). 不管它有沒有用,先大概看一下,把URL中覺得有用的東西過一遍.

騰訊視頻播放地址的url有幾種模式,上面是其中一種,其它的幾種模式對解析其地址沒什么太大關系,這里就以這種為例了.這個url中最關鍵的就是最后面接的一個參數(shù)vid(videoID)=g00118pmaso.

2. 抓包

  這里首先要說一點,平時做web應用或者后臺接口,要有習慣去抓包,并且對抓到的包進行一些簡單的分析,這是一個很好的習慣,有時候會學到一些意想不到的東西.

  最簡單的抓包方式就是直接用瀏覽器自帶的工具了,我平時用的chrome,F12 - Network中就有當前頁面發(fā)送出去的http報文,另外還有個小技巧,因為瀏覽器會有緩存,按Ctrl+F5刷新頁面,就會強制從服務端獲取內(nèi)容而不用緩存,有時候需要這樣做,具體的原理可以去看看http協(xié)議中的Cache-Control頭部. 用瀏覽器抓包還有個不太方便的地方,當頁面跳轉時,前面抓的包就沒有了,抓的永遠是當前頁面相關的報文.所以我平時用的比較多的是fiddler,一個免費的抓包工具,非常方便.

  回到正題, 我們從瀏覽器輸入鏈接http://v.qq.com/cover/g/g9jgclyhpp5sp7p.html?vid=g00118pmaso, 抓到了很多http包,我這里給出一部分的截圖

  

標出來的部分請求是關鍵請求, 我自己在分析的時候,是從下往上分析的,

1)首先找到視頻的下載地址

http://101.71.72.2/music.qqvideo.tc.qq.com/g00118pmaso.p309.1.mp4?sdtfrom=v10&type=mp4

&vkey=95C006D54AA7217B859B15732EE04FB88B3986D36E53116ECAF1CFD43EE6615BA6AD5DDDF8CC3D7B

&level=3&platform=1&br=351&fmt=fhd&sp=0

這里繼續(xù)分析url,g00118pmaso上面講到了,是vid,但是后面多出了.p309.1. 繼續(xù)往下看sdtfrom=v10(未知),type=mp4,這個好理解,vkey=95C006D54AA7217B859B15732EE04FB88B3986D36E53116ECAF1CFD43EE6615BA6AD5DDDF8CC3D7B,這個看起來又像是一個比較關鍵的參數(shù),level=3(后面xml中對應的level),platform=1(平臺,web、client、iphone...?暫時也是未知),br=351(bitrate=351?大概是碼率的意思,后面xml中的br=351),fmt=fhd(大概意思是format=flvHD?實際上這里是后面id為10309對應的format name),sp=0(后面xml中對應的sp).

這里有一大堆的參數(shù),有很多都是未知,這個時候別慌,整個鏈接直接下載肯定是可以下載到視頻的,現(xiàn)在要做的是,去掉其中一些參數(shù),看是否能下載.

http://101.71.72.2/music.qqvideo.tc.qq.com/g00118pmaso.p309.1.mp4?type=mp4

&vkey=95C006D54AA7217B859B15732EE04FB88B3986D36E53116ECAF1CFD43EE6615BA6AD5DDDF8CC3D7B

&br=351&fmt=fhd最后發(fā)現(xiàn),保留這些參數(shù),能正常下載到視頻。所以其它參數(shù)暫時先別管。這里有幾個關鍵的地方,vkey從哪里來的?br和fmt從那里獲。縱id后面的p309.1哪里來的?還有就是ip地址來源未知。分析到這里,繼續(xù)往上找到另一個比較關鍵的請求。

http://vv.video.qq.com/getkey

分析玩上面的視頻地址鏈接的組成,很容易就找到了這個請求,getkey。它是一個post請求,查看其發(fā)送的參數(shù)format=10309&otype=xml&vt=210&vid=g00118pmaso&ran=0%2E9477521511726081

&charge=0&filename=g00118pmaso%2Ep309%2E1%2Emp4&platform=11

http response中的內(nèi)容如下:

<?xml version="1.0" encoding="utf-8"  standalone="no" ?>
<root><br>360602.1875</br><ct>604800</ct><key>95C006D54AA7217B859B15732EE04FB88B3986D36E53116ECAF1CFD43EE6615BA6AD5DDDF8CC3D7B</key><level>3</level><levelvalid>1</levelvalid><s>o</s><sp>0</sp><sr>0</sr></root>

在這里我們找到了key,同時還發(fā)現(xiàn)了和上面鏈接對應的level和sp兩個參數(shù),上面一個鏈接中的一個參數(shù),不過這個參數(shù)也非必要,暫時不管。

URLDecode后為:

format=10309(這里實際上是后面的format id)&otype=xml&vt=210&vid=g00118pmaso

&ran=0.9477521511726081&charge=0&filename=g00118pmaso.p309.1.mp4&platform=11

同樣,在代碼中試,看那幾個參數(shù)是必要的,經(jīng)試驗,發(fā)現(xiàn)format,type,vid,filename是必要的。

繼續(xù)網(wǎng)上分析第三個url,http://vv.video.qq.com/getinfo

也是一個POST請求,參數(shù)是:

otype=xml&pid=2FAF2F6427123207101EBDA3F1523310A76216BD&

platform=11&vids=g00118pmaso&charge=0&speed=1246&ran=0.8439321480691433

返回的結果如下:

<?xml version="1.0" encoding="utf-8"  standalone="no" ?>
<root>
    <fl>
        <cnt>5</cnt>
        <fi>
            <br>64</br>
            <id>1</id>
            <name>flv</name>
            <sl>0</sl>
        </fi>
        <fi>
            <br>550</br>
            <id>10301</id>
            <name>shd</name>
            <sl>0</sl>
        </fi>
        <fi>
            <br>230</br>
            <id>10302</id>
            <name>hd</name>
            <sl>0</sl>
        </fi>
        <fi>
            <br>64</br>
            <id>10303</id>
            <name>sd</name>
            <sl>0</sl>
        </fi>
        <fi>
            <br>900</br>
            <id>10309</id>
            <name>fhd</name>
            <sl>1</sl>
        </fi>
    </fl>
    <hs>0</hs>
    <ls>0</ls>
    <preview>276</preview>
    <s>o</s>
    <tm>1361366724</tm>
    <vl>
        <cnt>1</cnt>
        <vi>
            <br>351</br>
            <ch>0</ch>
            <cl>
                <ci>
                    <cd>276.480011</cd>
                    <cmd5>beace783957b52f460006604229b57cf</cmd5>
                    <cs>99699295</cs>
                    <idx>1</idx>
                    <keyid>g00118pmaso.10309.1</keyid>
                </ci>
                <fc>1</fc>
            </cl>
            <fmd5>4ebecd94d64f46666d4e43826c120b5f</fmd5>
            <fn>g00118pmaso.p309.mp4</fn>
            <fs>99699378</fs>
            <fst>5</fst>
            <lnk>g00118pmaso</lnk>
            <logo>1</logo>
            <pl>
                <cnt>2</cnt>
                <pd>
                    <c>10</c>
                    <cd>2</cd>
                    <fmt>40001</fmt>
                    <fn>q1</fn>
                    <h>45</h>
                    <r>10</r>
                    <url>http://video.qpic.cn/video_caps/0/</url>
                    <w>80</w>
                </pd>
                <pd>
                    <c>5</c>
                    <cd>2</cd>
                    <fmt>40002</fmt>
                    <fn>q2</fn>
                    <h>90</h>
                    <r>5</r>
                    <url>http://video.qpic.cn/video_caps/0/</url>
                    <w>160</w>
                </pd>
            </pl>
            <share>1</share>
            <st>2</st>
            <td>276.48</td>
            <ti>因你而在</ti>
            <type>3585</type>
            <ul>
                <ui>
                    <dt>2</dt>
                    <dtc>10</dtc>
                    <url>http://101.71.72.2/music.qqvideo.tc.qq.com/</url>
                    <vt>210</vt>
                </ui>
                <ui>
                    <dt>2</dt>
                    <dtc>10</dtc>
                    <url>http://113.207.98.27/music.qqvideo.tc.qq.com/</url>
                    <vt>210</vt>
                </ui>
                <ui>
                    <dt>2</dt>
                    <dtc>10</dtc>
                    <url>http://video.store.qq.com/</url>
                    <vt>0</vt>
                </ui>
            </ul>
            <vh>1080</vh>
            <vid>g00118pmaso</vid>
            <videotype>0</videotype>
            <vw>1920</vw>
        </vi>
    </vl>
</root>

看到這個后,比較興奮,想要的東西基本上在這里可以找到了。再回過來分析一下這個請求所帶的參數(shù)

otype=xml&pid=2FAF2F6427123207101EBDA3F1523310A76216BD

&platform=11&vids=g00118pmaso&charge=0&speed=1246&ran=0.8439321480691433

otype返回格式,pid看起來又像是個比較重要的參數(shù)(未知),platform(上面是1,這里又來了個11,不明白),vid和上面一樣,charge(應該是付費信息,0表示不付費,來源未知),speed(未知),ran和上面一樣應該是個0-1之間的隨機數(shù)。用httpclient模仿這個請求,令人興奮的是只需要vids和otype就能返回該xml(不需要再去找pid了)。

再整理一下:

1.先通過http://vv.video.qq.com/getinfo POST請求添加參數(shù)otype,vid就能獲得上面的xml。

2.根據(jù)這個xml中的內(nèi)容發(fā)送http://vv.video.qq.com/getkey POST請求,參數(shù)列表為format,type,vid,filename。

其中format的id和name有個對應關系,10309-fhd、10303-sd、10302-hd。這里填寫的為id。例如:format=10309

filename由幾部分組成g00118pmaso.p309.1.mp4 最前面一部分是vid,如果格式id為10309,則后面加上p309.1,最后是格式mp4。例如我我要下載格式id為10303的視頻,那拼出來應該是g00118pmaso.p303.1.mp4。

type為xml,vid為每個視頻唯一的id,這里是g00118pmaso。

3.根據(jù)以上信息拼接視頻的真實地址

首先是xml中的地址http://101.71.72.2/music.qqvideo.tc.qq.com

緊跟著拼上filename,這里例如g00118pmaso.p309.1.mp4、g00118pmaso.p303.1.mp4、g00118pmaso.p302.1.mp4、g00118pmaso.p301.1.mp4。注意filename要和vkey一一對應,不能用p309的key和g00118pmaso.p303.1.mp4拼接。

然后就是vkey,根據(jù)filename獲得的vkey進行拼接。

接著type=mp4,fmt和format id對應,例如10309對應的是fhd。

對于format id為10309的視頻,最后拼出來的結果是http://101.71.72.2/music.qqvideo.tc.qq.com/g00118pmaso.p309.1.mp4?type=mp4

&vkey=95C006D54AA7217B859B15732EE04FB88B3986D36E53116ECAF1CFD43EE6615BA6AD5DDDF8CC3D7B&fmt=fhd

注意這里把一些不必要的參數(shù)去掉了。

 3. 若通過抓包的方式無法分析出來真實地址,則需要反編譯swf,找到拼接視頻地址的代碼,還原其過程。

騰訊的視頻地址分析還算順利,因為不需要反編譯swf

    中國好聲音4
    (13)中國好聲音4
    中國好聲音第季直播軟件說明中國好聲音第季由騰訊視頻獨播,用戶只要下載最新版本的騰訊視頻客戶端即可觀看中國好聲音第季直播視頻,也可以下載完整版中國好聲音第季視頻,另外下載回聲中國好聲音也可以觀看直播賽事哦在線直播網(wǎng)址......節(jié)目簡介中國好聲音是由浙江衛(wèi)視聯(lián)合燦星制作打造的大型勵志專業(yè)音樂評論節(jié)目,此次第四季中國好聲音將于年月日起在浙江衛(wèi)視播出,騰訊視頻全網(wǎng)獨播。該節(jié)目旨在為中國樂壇的發(fā)展提供一批懷揣夢...更多>>
    • 中國好聲音第4季直播app4.1.0 官方

      07-19 / 16KB

      推薦理由:中國好聲音第4季已經(jīng)開播,很多這個節(jié)目的忠實粉絲肯定需要一款手機直播軟件吧,中國好聲音第4季直播app騰訊
    • 騰訊視頻播放器2016v9.12.1296.0

      03-01 / 31.9M

      推薦理由:騰訊視頻2016官方免費下載是騰訊視頻旗下的客戶端產(chǎn)品,支持豐富內(nèi)容的在線點播及電視臺直播,提供列表管理
    • echo回聲中國好聲音app3.2 最新版

      08-03 / 23.6M

      推薦理由:echo回聲中國好聲音app是echo回聲為中國好聲音第四季全新推出的新版本,在這里你可以和喜歡觀看中國好聲音節(jié)
    • 中國藍TV1.3.6 官網(wǎng)安卓版

      01-08 / 20.4M

      推薦理由:中國藍TV app是浙江衛(wèi)視官方推出的客戶端,讓用戶能更方便的在線觀看浙江衛(wèi)視節(jié)目,作為國內(nèi)著名的地方電視
    • echo回聲電腦版v3.2 官方最新版

      08-03 / 23.6M

      推薦理由:echo回聲是最近非;鸬囊豢盥曇舯砬橹谱鲬,簡單來說就是套用平臺上提供的表情GIF加上聲音濾鏡(變聲效果
    • iPhone騰訊視頻v4.7.1 官方正式版

      03-30 / 61.1M

      推薦理由:騰訊視頻ForiPhone客戶端是為iPhone用戶量身打造的網(wǎng)絡視頻軟件。視頻內(nèi)容:內(nèi)容涵蓋最新、最熱的電影、電視
    高清影音播放器
    (49)高清影音播放器
    西西軟件園提供高清播放器排行榜,讓用戶知道哪個高清影音播放器最好用,所謂的高清電影,就是指以高清視頻格式制作的全高清視頻文件,分辨率一般是現(xiàn)在的電腦配置越來越強大,用戶對視頻的質(zhì)量要求也越來越高,高清播放器更快更好更多免費功能新增.視頻創(chuàng)建與播放支持.視頻生成高清串流播放,并能一鍵轉移視頻到市面上的消費電子設備,包括電視機機藍光機游戲機手機平板電腦。,,常見分辨率前三個是用于標識高清影片分辨率的關鍵指...更多>>
    騰訊視頻
    (28)騰訊視頻
    騰訊原本的官方視頻客戶端是,后來騰訊視頻上線,將納入到騰訊視頻中同步運作。騰訊視頻下載正式版官方下載定位于中國最大的綜合視頻門戶,內(nèi)容以電影電視劇綜藝為主,同時在音樂新聞財經(jīng)時尚科技等多維度頻道運營,最大限度貼合用戶在線視頻觀看需要。西西為大家提供了騰訊視頻播放器官方下載官方下載。年騰訊視頻在內(nèi)容方面也有大動作,其實內(nèi)容一直是視頻網(wǎng)站的核心競爭力,而年騰訊視頻將從兩個方面完善內(nèi)容,一方面是通過合作購買...更多>>

    相關評論

    閱讀本文后您有什么感想? 已有人給出評價!

    • 8 喜歡喜歡
    • 3 頂
    • 1 難過難過
    • 5 囧
    • 3 圍觀圍觀
    • 2 無聊無聊

    熱門評論

    最新評論

    發(fā)表評論 查看所有評論(0)

    昵稱:
    表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
    字數(shù): 0/500 (您的評論需要經(jīng)過審核才能顯示)
    推薦文章

    沒有數(shù)據(jù)