|  | 
 
| 關(guān)于樂視網(wǎng)視頻真實(shí)地址解析,以節(jié)目的第一集為例,于下。 http://www.letv.com/ptv/pplay/74497/1.html
 
 //=======================================================================
 
 解析的幾個(gè)步驟:
 
 ?。?、讀取播放頁(yè)面的代碼,獲取 vid=1612388 值
 http://www.letv.com/ptv/pplay/74497/1.html
 
 ?。?、拼合出第一次信息文件地址
 http://www.letv.com/v_xml/1612388.xml
 
 ?。?、從以上文件中讀取鏈接(節(jié)點(diǎn) mmsJson 中的 url 值)
 http://220.181.117.5/ng?s=3& ... 77.0.flv&br=301
 
 ?。?、從上面的地址讀取信息文件,從中讀取 location 的值,舍去所有外掛參數(shù),于下
 http://124.232.149.10/17/12/15/13383307831805077.0.letv
 
 ?。怠U(kuò)展名改為 flv ,即為真實(shí)鏈接地址
 http://124.232.149.10/17/12/15/13383307831805077.0.flv
 
 //=======================================================================
 
 F8解析腳本于下,以資拍磚。
 解析過(guò)程由節(jié)目頁(yè)面地址開始,至所有單集數(shù)據(jù)存入下面的數(shù)組,完成。
 vlist = [];  鏈 接
 ttime = [];   時(shí) 間
 nlist = [];  節(jié)目名
 tlist = [];   長(zhǎng)寬比
 制作播放器時(shí),可按各自需要和習(xí)慣修改。
 
 //=======================================================================
 stop ();
 //通知 Flash Player使用 傳統(tǒng)代碼頁(yè)來(lái)解釋外部文本
 //System.useCodepage = true;
 Stage.scaleMode = "noScale";
 if (scale) {
 Stage.scaleMode = "showAll";
 }
 Stage.showMenu = false;
 this._lockroot = true;
 //======================== 以上 播放器 普通設(shè)置================
 
 var nlist = [];//曲名
 var vlist = [];//鏈接
 var ttime = [];//時(shí)長(zhǎng)
 var tlist = [];//長(zhǎng)寬比
 var Str_xml = [];//臨時(shí)數(shù)組
 var j = 0;
 //=========================================================
 
 var urlxml = ["http://www.letv.com/v_xml/", ".xml"];
 //================= 以上 信息文件鏈接相關(guān) 備用==================
 
 //構(gòu)造函數(shù);創(chuàng)建 LoadVars 對(duì)象。然后可使用該 LoadVars 對(duì)象的方法來(lái)發(fā)送和加載數(shù)據(jù)
 //當(dāng)lala被實(shí)例化并顯示在時(shí)間軸上時(shí)將觸發(fā)
 //=========================================================
 
 function make6 () {
 j += 1;
 make ();
 }
 //======================== 以上,循環(huán),處理下一個(gè)頁(yè)面地址 =======
 
 function make5 (pram5) {
 var json:JSON = new JSON ();
 var jsonobj:Object = json.parse (pram5);
 vlist[j] = [[]];
 vlist[j][0][0] = vlist[j][0][0] = jsonobj.location.split ('.letv?')[0] + '.flv';
 make6 ();
 }
 //====以上處理第二次的 信息 文件,最終獲得單集的 flv 視頻文件的鏈接,存入數(shù)組備用 ==
 //============★ 此例按單集多文件考慮,改制時(shí)可按實(shí)際要求 ★======= 完成解析 ======
 
 function make4 (pram4) {
 lala = new LoadVars ();
 lala.onData = function (rw) {
 make5 (rw.toString ());
 };
 lala.load (pram4);
 }
 //==============第二次 加載 信息 文件========================
 
 function make3 (pram3) {
 pram3_1 = pram3.split ('"').join ('"');
 var json:JSON = new JSON ();
 var jsonobj:Object = json.parse (pram3_1);
 ttime[j] = [[]];
 ttime[j][0][0] = jsonobj.bean.video[0].duration;
 xml_2 = jsonobj.bean.video[0].url.split ('&').join ('&');
 make4 (xml_2);
 
 //vlist[j] = jsonobj.bean.video[0].url.split('/ng?s=3&df=').join('/').split('&')[0];
 //make6 ();
 //== 如果用注釋中的步驟得到的鏈接無(wú)時(shí)效限制,則可簡(jiǎn)化至此步驟完成。待研 =====
 }
 //==============以上處理單集 xml 第二次獲取 url 值 和時(shí)間值 =================
 
 function make2_2 (pram2_2) {
 var wh = pram2_2.split(',h:')
 var WH = wh[0]/wh[1];
 tlist[j] = WH > 2.2 ? 7 : WH > 2 ? 6 : WH > 1.7 ? 1 : 2;
 }
 //============== 以上處理視窗的長(zhǎng)寬比 ========================
 
 function make2 (pram2) {
 var xml_1 = new XML ();
 xml_1.ignoreWhite = true;
 xml_1.load (urlxml[0] + pram2 + urlxml[1]);
 xml_1.onLoad = function (success) {
 if (success) {
 for (i = 0; i < xml_1.firstChild.childNodes.length; ++i) {
 if (xml_1.firstChild.childNodes.nodeName == "tal") {
 nlist[j] = xml_1.firstChild.childNodes.firstChild;
 }
 if (xml_1.firstChild.childNodes.nodeName == "mmsJson") {
 Str_xml[j] = String (xml_1.firstChild.childNodes.firstChild);
 }
 }
 make3 (Str_xml[j]);
 //trace(Str_xml[j]);
 }
 };
 }
 //========= 以上第一次加載單集信息文件,為 xml 格式。獲取曲名 =============
 
 function make () {
 if (j < Page.length) {
 load_js = (j + 1) + " / " + Page.length;
 jmurl = Page[j];
 lala = new LoadVars ();
 lala.onData = function (rw) {
 N1 = rw.split ('vid:')[1].split (',')[0];
 N2 = rw.split ('{w:')[1].split (',wmode')[0];
 if (N1) {
 make2 (N1);
 quming = pgurl[3];
 }
 else {
 quming = "鏈接有誤,請(qǐng)檢查。";
 }
 if (N2) {
 make2_2(N2);
 }
 };
 lala.load (Page[j]);
 }
 else {
 play ();
 }
 }
 make ();
 //============== 以上加載頁(yè)面,獲取 vid 值 長(zhǎng)寬數(shù)據(jù) ===================
 
 以上內(nèi)容寫在第二幀
 以下內(nèi)容寫在第一幀
 //==============================================
 var Page = [];
 Page[0] = "http://www.letv.com/ptv/pplay/74497/1.html";
 Page[1] = "http://www.letv.com/ptv/pplay/74497/1.html";
 ………………
 Page[n] = "http://www.letv.com/ptv/pplay/74497/1.html";
 //==============================================
 
 ★★以下內(nèi)容可在輸出面板顯示以上解析后得到的數(shù)組。以作參考。
 //==============================================
 //======= 將輸出的數(shù)組寫在播放器內(nèi)或xml信息文件中,可不必內(nèi)嵌解析的內(nèi)容 ==========
 stop ();
 for (i = 0; i < vlist.length; ++i) {
 var Str:String = "";
 for (j = 0; j < vlist[j][0].length; ++j) {
 Str += '"' + vlist[0][0] + '",';
 }
 trace ('vlist[' + i + '] = [[' + Str.slice (0, Str.length - 1) + ']];');
 }
 trace('//================================');
 for (i = 0; i < ttime.length; ++i) {
 trace ('ttime[' + i + '] = [[' + ttime[0] + ']];');
 }
 trace('//================================');
 for (i = 0; i < nlist.length; ++i) {
 trace ('nlist[' + i + '] = "' + nlist + '";');
 }
 也是之前保留的一份材料,覺得好的加點(diǎn)ck幣,謝謝
 | 
 |