1. 程式人生 > >優酷真實地址解析

優酷真實地址解析

直接連結優酷(youku)的視訊地址製作播放器,應該是很吸引人的,同時也有不少麻煩。
  早幾天發了一帖,講了一下基本情況。有興趣的話,請先看一下。於下。已發的內容、重複的話就不說了。
  http://bbs.voc.com.cn/topic-3803611-1-1.html
  下面的播放器是實際應用。為檢驗效果,選用了《拳霸1之盜佛線》。
  該視訊分割為七“集”,每集又分為三個片段。其中1、2、3、5、6集備有雙格式(mp4和flv,即高清和標清),4、7集僅有flv標清格式。這樣,各種情況都包括進來了,具有代表性,較能說明問題。

http://f.youku.com/player/getFlvPath/sid/00_00/st/mp4

/fileid/
03000803004D9F4390A67E002BCF4E9F3D1FCE-FB5D-561B-1A73-F791EE1DC9B3
?K=3c1817963398751b2827379d 
  這是視訊檔案連結的標準式樣。紅色字元是需更換的內容。
03000803004D9F4390A67E002BCF4E9F3D1FCE-FB5D-561B-1A73-F791EE1DC9B3
  這一串字元由解密計算得到,“00”處是多片段節目的序號,為16進位制。一個頁面的節目無論多少段,每段的連結地址中的這一部分是相同的。
http://v.youku.com/v_show/id_XMjU3MzIxOTk2.html
  這是節目所在頁面的地址,其中白色字元為節目的“編號”或叫“標誌”應該都可以。所有關於節目的資訊都是從這裡得到的。
http://v.youku.com/player/getPlayList/VideoIDS/XMjU3MzIxOTk2
  節目的資訊檔案的地址。貼到位址列可以看到內容,下載後成為一個文字檔案。
  該檔案內容為雜湊表(json)格式,網上可方便查詢到相關資料,flash的幫助裡面也有介紹。這裡不詳述,恐篇幅太大。
  指令碼程式設計中,用地址讀入此資訊檔案的內容,然後根據內容得到或計算(解密)得到需要的東西,最後拼接出完整的視訊檔案地址。
  資訊檔案中的內容總是變化的,據網上資料介紹,僅維持一小時(未驗證)。
  根據前帖所述資料介紹的方法,未能成功還原出視訊地址。經反覆嘗試,對比,剖析優酷網站播放器的指令碼,終於正確解密了地址。優酷網實在是用心良苦。
  下面列出指令碼程式設計關於解密部分的內容。
①載入資訊檔案,將內容轉換為字串。載入需要時間,此事很容易上當。如果載入未完成,很容易造成後面讀不到資料,報錯。
stop();
mysongs.load ("http://v.youku.com/player/getPlayList/VideoIDS/" + page[p]);
mysongs.onLoad = function (success)
{
  if (success) {
    jsonstring = mysongs.toString ();
  }
  play ();
};
②更換非正常字元碼,利用json類檔案,將字串處理為雜湊表格式,以便使用。
jsonstring = jsonstring.split (""").join ('"');
var json:JSON = new JSON ();
var jsonobj:Object = json.parse (jsonstring);    //字串轉雜湊表;
var _seed = jsonobj.data[0].seed;        //此值將參與解密計算; 
var _key;                   //省去此值計算,直接讀取; 
var len;                    //片段數;
var fileid;                   //此值將參與解密計算; 
var format;                  //視訊格式字元;
if (jsonobj.data[0].segs.mp4) {
  _key = jsonobj.data[0].segs.mp4[i].k;
  len = jsonobj.data[0].segs.mp4.length;
  fileid = jsonobj.data[0].streamfileids.mp4;
  format = "mp4";
}
else {
  _key = jsonobj.data[0].segs.flv[i].k;
  len = jsonobj.data[0].segs.flv.length;
  fileid = jsonobj.data[0].streamfileids.flv;
  format = "flv";
}
③解密過程
var mixed:String;
var realId:String;
function getFileID (fileid)
{
  getFileIDMixString ();
  var ids = fileid.split ("*");
  realId = "";
  for (var j = 0; j < ids.length - 1; ++j) {
    realId = realId + mixed.charAt (parseInt (ids[j]));
  }
  //return realId.toString ();
}
getFileID (fileid);
//+++++++++++++++++++++++++++++++
function ran ()
{
  _seed = (_seed * 211 + 30031) % 65536;
  return (_seed / 65536);
}
//+++++++++++++++++++++++++++++++
function getFileIDMixString ()
{
  mixed = "";
  var _source = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ/\\:._-1234567890";
  var len = _source.length;
  for (var i = 0; i < len; ++i) {
    var index = int (this.ran () * _source.length);
    mixed = mixed + _source.charAt (index);
    _source = _source.split (_source.charAt (index)).join ("");
  }
}
//+++++++++++++++++++++++++++++++++++以下拼接出完整地址++++++++++
var II = String (i).length < 2 ? "0" + i : i;
var temp1 = realId.slice (0, 8);
var temp2 = realId.slice (10);
var temp0 = temp1 + II + temp2;
var vlist = [];
vlist[0] = "http://f.youku.com/player/getFlvPath/sid/00_00/st/" + format 
+ "/fileid/" + temp0 + "?K=" + _key;
trace (vlist[0]);   //完整地址。注意時效。
  一些說明。
  1、對比網上資料介紹,上面的做法省去了兩個計算。
    ⑴、隨機數
    參考來自“碩鼠”給出的地址,例項證實,這樣也可以;
    ⑵、K值的計算
    在資訊檔案中,已有此值。例項證實,不必再用k1與k2計算得到K。
  2、加密的方法和資料,優酷很可能改動。現在的效果不敢說能保永久。如果有了變故,還是解析優酷播放器自身的製作為好,這是萬能法寶。
  3、json.as檔案,可從優酷的共享F8版播放器中反編得到,放在編輯檔案同路徑下即可。用記事本開啟檔案,刪除類(class)的路徑。
  4、從F8的反編檔案VideoController.as中可查閱到解密內容。
  5、從網站頁面的F9版播放器的反編檔案PlayListProxy.as中可查閱到解密內容。
  製作到此可告一段落,需要完善的地方還很多。歡迎大家多多討論、指教。

相關推薦

真實地址解析

直接連結優酷(youku)的視訊地址製作播放器,應該是很吸引人的,同時也有不少麻煩。   早幾天發了一帖,講了一下基本情況。有興趣的話,請先看一下。於下。已發的內容、重複的話就不說了。   http://bbs.voc.com.cn/topic-3803611-1-1.h

yy4480網站電影真實地址解析【程式碼】

<?php //電影解析 //採集網站yy4480電影網 //使用方法電影解析yy4480.php?url='數字引數' //電視劇解析yy4480.php?url='數字引數'&number=1 error_reporting(0); $s_analysis_u

視訊源解析

目前網際網路視訊網站,從我解析的地球上十幾個大型的視訊網站來看,90%的網站視訊加密效果不好。可能視訊下載地址後門介面的保護對某些網站也沒什麼意義。這次主要寫一下下面幾個網站的後門介面地址解析方法,包括Youtube、優酷、土豆、愛奇藝、pps、酷六、騰訊視訊、新浪、搜狐、

騰訊視訊真實地址解析

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

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

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

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

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

獲取視訊地址方法

視訊ID獲取方法 視訊ID可以在視訊播放頁地址中提取,如下邊的播放地址中,選中部分即為視訊ID: 一個頁面嵌入兩個播放器方法     <html> <head> </head> <bo

愛奇藝騰訊vip視訊免費線上觀看方法--萬能vip解析地址

​​​首先登陸光影線上vip解析藉口網頁,地址是http://doonl.com/onlineplay.html​​​​首先選擇解析藉口,然後到各大平臺找到vip視訊地址,貼上到輸入框點選確定播放即可。如要播放愛奇藝vip視訊,開啟該視訊播放頁面,複製瀏覽器位址列地址,貼上到

查詢各大視訊網站真實視訊地址方法(樂視土豆騰訊566pptv激動網)

我們在很多地方都需要用到各大視訊網站的視訊呼叫地址,那麼有些網站又遮蔽了播放分享功能,那麼就只能自己找了,下面瀟瀟就來教你如何搞定吧。 土豆網: xml 程式碼 說明:iid=後面是視訊的ID號,在土豆視訊播放頁面右鍵檢視原始檔內一眼即可看到,替換成你想呼

基於HTML5的Geolocation獲取地理位置,配合Google Map API反向地址解析(獲取用戶真實地址

add current 經緯度 cati arr offset 類型 html maps 基於HTML5的Geolocation獲取地理位置,配合Google Map API反向地址解析(獲取用戶真實地址) html 1 <!DOCTYPE html>

解析騰訊視頻真實地址

分隔 解析 cdb 解密 info ret aud json quest 解析騰訊視頻真實地址

yy6080視訊網站 真實電影地址解析

<?php $url=isset($_GET['url'])?$_GET['url']:''; function get_yy6080_video($get_url){ $u='http://yy6080.org/v/';//介面地址 $http='';//介面地址 $url=

獲取(youku),土豆(tudou),樂視(letv),愛奇藝(iqiyi)等HTML5頁面上的視訊真正地址

http://blog.csdn.net/conowen/article/details/24027401 /********************************************************************************

分析/土豆/pptv/樂視 HTML5、m3u8地址

…… 從上面得到視訊縮圖地址是:http://i2.tdimg.com/140/638/149/w.jpg 發現土豆的 .m3u8 檔案地址是 http://m3u8.tdimg.com/140/638/149/2.m3u8(現在不是2,是3

土豆騰訊視訊html地址轉flash swf地址

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

網頁嵌入視訊 改變播放按鈕大小 去廣告(適合最新分享地址)

很多網站都經常引用優酷網的視訊使用以下程式碼引用優酷的視訊可以遮蔽掉廣告(最新方法)和改變播放按鈕大小 1 <embed src='http://player.youku.com/player.php/sid/XMTY1NzYyMzkyNA==/v.s

java平臺利用jsoup開發包,抓取視訊播放地址與圖片地址等資訊。

/********************************************************************************************  * author:[email protected]大鐘        

關於開放SDK視訊播放功能的解析

在PlayerActivity中呼叫youkuPlayer.playVideo(vid); playVideo(vid)中使用mMediaPlayerDelegate.playVideo(vid); 其中mMediaPlayerDelegae=YoukubasePlayer

上傳SDK解析(Python)

  1.優酷上傳   1)呼叫優酷的sdk完成優酷視訊的上傳首先需要將例項化YoukuUpload類例項化,傳入的引數為(client_id,access_token,檔案地址) 例項化時執行__init__()   2)例項化完成後得到類的物件,通過物件呼叫upload方法,傳入引數為

,迅雷視屏播放接口

嵌入 utf-8 tvp asc 加載 jquery skin 對象 狀態 優酷:優酷的視頻播放器接口連接為:http://open.youku.com/tools/ 裏面已經有教詳細的說明了。在這裏也做一些說明吧:導入js文件: 1 <script type="t