1. 程式人生 > >自己做騰訊視訊真實地址解析分析

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

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

1.URL分析

開啟這個url的頁面原始碼,找到下面這些內容:

var COVER_INFO = {
title :"獨家首發",
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字串,從其出現的位置基本可以判斷這個字串唯一代表了一個合集(或者叫專輯). 不管它有沒有用,先大概看一下,把URL中覺得有用的東西過一遍.

騰訊視訊播放地址的url有幾種模式,上面是其中一種,其它的幾種模式對解析其地址沒什麼太大關係,這裡就以這種為例了.這個url中最關鍵的就是最後面接的一個引數vid(videoID)=g00118pmaso.

2. 抓包

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

  最簡單的抓包方式就是直接用瀏覽器自帶的工具了,我平時用的chrome,F12 - Network中就有當前頁面傳送出去的http報文,另外還有個小技巧,因為瀏覽器會有快取,按Ctrl+F5重新整理頁面,就會強制從服務端獲取內容而不用快取,有時候需要這樣做,具體的原理可以去看看http協議中的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

這裡繼續分析url,g00118pmaso上面講到了,是vid,但是後面多出了.p309.1. 繼續往下看sdtfrom=v10(未知),type=mp4,這個好理解,vkey=95C006D54AA7217B859B15732EE04FB88B3986D36E53116ECAF1CFD43EE6615BA6AD5DDDF8CC3D7B,這個看起來又像是一個比較關鍵的引數,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).

這裡有一大堆的引數,有很多都是未知,這個時候別慌,整個連結直接下載肯定是可以下載到視訊的,現在要做的是,去掉其中一些引數,看是否能下載.

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

&vkey=95C006D54AA7217B859B15732EE04FB88B3986D36E53116ECAF1CFD43EE6615BA6AD5DDDF8CC3D7B

&br=351&fmt=fhd最後發現,保留這些引數,能正常下載到視訊。所以其它引數暫時先別管。這裡有幾個關鍵的地方,vkey從哪裡來的?br和fmt從那裡獲取?vid後面的p309.1哪裡來的?還有就是ip地址來源未知。分析到這裡,繼續往上找到另一個比較關鍵的請求。

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

分析玩上面的視訊地址連結的組成,很容易就找到了這個請求,getkey。它是一個post請求,檢視其傳送的引數format=10309&otype=xml&vt=210&vid=g00118pmaso&ran=0%2E9477521511726081

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

http response中的內容如下:

<?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,同時還發現了和上面連結對應的level和sp兩個引數,上面一個連結中的一個引數,不過這個引數也非必要,暫時不管。

URLDecode後為:

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

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

同樣,在程式碼中試,看那幾個引數是必要的,經試驗,發現format,type,vid,filename是必要的。

繼續網上分析第三個url,http://vv.video.qq.com/getinfo

也是一個POST請求,引數是:

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>

看到這個後,比較興奮,想要的東西基本上在這裡可以找到了。再回過來分析一下這個請求所帶的引數

otype=xml&pid=2FAF2F6427123207101EBDA3F1523310A76216BD

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

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

再整理一下:

1.先通過http://vv.video.qq.com/getinfo POST請求新增引數otype,vid就能獲得上面的xml。

2.根據這個xml中的內容傳送http://vv.video.qq.com/getkey POST請求,引數列表為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.根據以上資訊拼接視訊的真實地址

首先是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,根據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

注意這裡把一些不必要的引數去掉了。

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

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

相關推薦

自己視訊真實地址解析分析

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

視訊真實地址解析

上一篇博文是我的第一篇技術部落格,看的人還不少,給了我一些動力,平時也是看的東西多,但是很少有總結,今年開始寫一些自己覺得有意思的東西.   我覺得網上的一些資料大多是直接給出處理的結果,而不注重分析過程,對我們程式設計師來說,其過程更重要,工作中碰到的問題是多種多樣的

視訊地址解析下載

提取視訊ID在播放頁原始碼中,可以找到如下視訊資訊:var VIDEO_INFO = {    title: "咱們相愛吧 第1集",    duration: "2746",    vid: "y00221a60w7",    piantou:"0",    pianwei:"0",    showMark

地圖逆地址解析,通過經緯度獲取詳細的資訊資料

根據騰訊地圖API,以圖文的方式一步一步的來說明如何獲取詳細的位置資訊資料。具體參考騰訊地圖Webservice API的簡介。騰訊地圖WebService API   第一步:申請開發者金鑰(key)申請金鑰       我選擇的應用型別為瀏覽器型別(呼叫Javascr

優酷土豆視訊html地址轉flash swf地址

很多使用者不知道如何複製flash地址,只能在程式中幫他們替換了: <?php/** * 支援優酷、土豆、騰訊視訊html到swf轉換 * @link http://www.phpddt.com */function convert_html_to_swf($url

在個人網頁或公眾號中插入自己釋出的視訊

在個人部落格或公眾號寫文章時為了讓讀者更好的理解文章的內容,通常要插入視訊、動畫或圖片等等。這裡我介紹一下怎麼查詢視訊連結並把它插入個人網頁或公眾號。 一、查詢視訊的連結地址 視訊在可引用前必須先上傳到騰訊視訊,並稽核通過。查收連結的方法如下: 用你的 QQ 或微訊號登入

爬蟲自動抓取視訊評論 -- json的使用和資料解析

  這周和大家分享下騰訊視訊評論抓取爬蟲,實際抓下來的資料裡面除了評論還有其他不少有價值的資訊,有部分使用者資料可以使用的,不過具體就看大家自己怎麼用了。   這個demo的具體原始碼在最後面,下文將對這個demo的實現過程進行說明。   其實我挺期待有人評

如何用在自己的網頁中嵌入視訊網頁播放器播放一些檔案

在需要呼叫視訊的地方寫上如下程式碼。 <embed wmode="Opaque" flashvars="vid=9kFOkWIbQ4g&autoplay=1&list=2&am

史上最強視訊網站真實地址解析(網站視訊獲取)

文章有不當之處,歡迎指正,如果喜歡微信閱讀,你也可以關注我的微信公眾號:好好學java,獲取優質學習資源。 寫此文章旨在學習和討論,請勿濫用… 一、概述 目前網際網路視訊網站,從我解析的地球上十幾個大型的視訊網站來看,90%的網站視訊加密效果不

三招教你如何搞定將qlv格式的視訊轉換為mp4格式

  我們在觀看到一部好看的電影或視訊的時候,想要將它進行下載珍藏也是一件無可厚非的事情。這時候,如果下載的視訊沒有辦法進行觀看,那就是一件即遺憾又掃興的事情了,今天就給大家講一下面對這種情況的解決辦法!我們將qlv格式轉換我MP4格式就可以解決啦!   迅捷視訊轉換器www.xunjieship

前端小面經--視訊

借用原哥的騰訊面經發一波,講道理我現在特別喜歡分享,鄭重宣告,版權歸原哥所有。 騰訊 時間:2018-3-21、3-22 地點:知春路希格瑪大廈2F、領航科技大廈 型別:暑期實習面試   技術面一: 1、  你做前端幾年了?之前本科學過什麼語言用來做過什麼? 2、

優酷、視訊播放器介面引數說明

優酷: 優酷的視訊播放器介面連線為:http://open.youku.com/tools/ 裡面已經有教詳細的說明了。 在這裡也做一些說明吧:匯入js檔案: 1 <script type="text/javascript" src="http://player.youku.com/jsa

怎麼把視訊qlv格式轉成mp4格式

  當我們使用到qlv格式的時候,我們就會發現原來這種檔案格式比較的特殊,因為qlv格式檔案是騰訊視訊加密的一種視訊檔案格式,所以我們在使用和轉換的只能藉助騰訊視訊的幫助,但是當我們電腦上沒有安裝騰訊的時候我們該怎樣解決呢?目前像很多工具並不能將騰訊視訊的QLV格式轉化為其他格式,所以經歷多次的網路攻略的

視訊qlv格式轉換成mp4格式的的簡單方法!

在這個發展速度超快的資訊時代,不管什麼都在不斷的創新、更新,今天我們就來講講騰訊旗下的騰訊視訊,使用過騰訊視訊客戶端的朋友應該知道,通過客戶端下載的視訊它最後並不是我們常見的MP4格式,而是一種非常特殊的QLV格式。 這種格式是視訊格式中較為特殊的一種,因為這種格式的視訊檔案只能在騰訊視訊客

如何把視訊的qlv格式的視訊轉換成mp4格式

  如何把qlv格式的視訊轉換成mp4格式?很多人通過騰訊視訊客戶端下載的視訊都無法使用其他播放器播放,這是為什麼呢,原因是騰訊播放器下載的視訊是qlv格式,這種格式非常的特殊,必須要使用騰訊播放器才能進行觀看,如果想在其他播放器種播放的話就需要利用迅捷視訊轉換器將qlv轉換成mp4格式,具體如何轉換呢,

簡單四步抓取視訊MP4檔案

1. 獲取視訊播放頁地址,如:https://v.qq.com/x/page/j0329yq5lu0.html 2. 視訊正片開播後,在H5播放器的右鍵選單中選擇“複製除錯資訊”。 注意,一定要是H5播放器!不是Flash播放器! 複製出來的資訊如下: {"pid":"5ec03277ec8

視訊怎麼錄屏,視訊怎麼截長視訊

  騰訊視訊是一款很不錯的視訊播放器,看電視劇、電影的時候我們經常需要錄製一些視訊片段,但是播放器上自帶錄屏功能只能擷取兩分鐘的視訊所以很不方便,那麼騰訊視訊怎麼截長視訊呢?這就需要用到第三方的螢幕錄影工具了,比如說迅捷螢幕錄影工具就很不錯,下面小編便來教大傢俱體的錄製方法。   桌面錄屏軟體htt

詳解如何用爬蟲採集視訊播放量資料(以視訊為例)

現代社會提到大資料大家都知道這是近幾年才形成的對於資料相關的新名詞,在1980年,著名未來學家阿爾文·托夫勒便在 《第三次浪潮》一書中,將大資料熱情地讚頌為“第三次浪潮的 華彩樂章”。在 20 世紀 80 年代我國已經有一些專家學者談到了海量資料的加工和管理,但是由於計算機技術和網路技術的限制大資料

視訊怎麼下載qlv視訊怎麼轉換為MP4格式

  在每天的時間分配中,大部分都是花在學習和工作之中了,但是在放學和下班之後是需要休息的,絕大部分人是在聽音樂和看電視劇來放鬆心情,比如:《我不是藥神》、《蟻人2:黃蜂女現身》、《你和我的傾城時光》都是非常好看的影視劇,但是有些劇不是所有的視訊播放器都可以播放,現在國內三大視訊網站:騰訊視訊、愛奇藝視訊、

怎麼轉換視訊格式?視訊qlv格式轉換mp4方法

  如今,看視訊是人們的主要娛樂方式之一,這裡的視訊包括但不限於電影、電視劇、動漫、綜藝…看視訊的主要渠道有百度網盤、視訊站點,百度網盤就不說了,大家都懂得~視訊站點的話,國內最大的幾家就是騰訊視訊、愛奇藝、優酷了。而這幾個視訊站點為了留住使用者,紛紛推出了專屬的視訊加密格式。這也就是為什麼大家用普通的播