中畫網

標題: 搜狐視頻代理和采集得詳解實例 [打印本頁]

作者: 啊城    時間: 2012-6-22 16:21
標題: 搜狐視頻代理和采集得詳解實例
你可以把 搜狐視頻 的電影,電視劇 的視頻 所在的網址復制起來,
然后粘帖到下面播放器中的輸入文本樞,
最后按確定 就可以看到代理,或者采集的過程序了
http://www.flashcs5as3.com/bfs/搜狐視頻代理.swf
備用2個測試地址
電視劇測試 http://tv.sohu.com/20120402/n339672627.shtml
電影測試 http://tv.sohu.com/20100706/n273317584.shtml
實例效果地址;http://www.flashcs5as3.com/bfs/搜狐視頻代理.swf
源文件下載地址;[url]http://www.flashcs5as3.com/bfs/搜狐視頻代理.zip[/url]
腳本如下
  1. /*-------------------搜狐視頻 代理與采集-------------
  2.   |                 2012-06-18-日編                |
  3.   |              編  啊城  QQ 475830480            |
  4.   |               www.flashcs5as3.com              |
  5. ---------------------------------------------------*/
  6. //---------------------------常規參數設置---------------
  7. var i = 0;
  8. var 總片段數量;
  9. var ii = 1;
  10. var 劇集列表id;
  11. // 例子 http://tv.sohu.com/20120601/n344624004.shtml   http://tv.sohu.com/20120502/n342149564.shtml
  12. System.useCodepage = true;//防止亂碼
  13. _root.bfs = new Object();//新建原始參數
  14. //--------搜狐管方內部的代理-----------------------------------------------------------
  15. _root.bfs.搜狐視頻代理 = "http://hot.vrs.sohu.com/vrs_flash.action?vid=";
  16. _root.bfs.搜狐劇集列表 = "http://hot.vrs.sohu.com/vrs_videolist.action?playlist_id=";
  17. //本人開發的代理 http://q475830480.cn/bfs/代理程序/搜狐.asp?vid=
  18. //------------------------------------------------------------------------------------
  19. _root.bfs.mySound = new Sound();//新建聲音
  20. _root.bfs.my_nc = new NetConnection();//新建視頻連接
  21. _root.bfs.my_nc.connect(null);//插定連接為空
  22. _root.bfs.my_ns = new NetStream(_root.bfs.my_nc);//新建視頻流
  23. _root.bfs.my_ns.setBufferTime(1);//設置續沖時間 值為 1 秒
  24. _root.bfs.buffer_ns = new NetStream(_root.bfs.my_nc);//新建副視頻流
  25. _root.bfs.buffer_download = false;//設置 視頻流 加載的裝態
  26. _root.bfs.downloading = false;//視頻流的長度 裝態
  27. _root.bfs.musicPlayId = _root.bfs.listPlayId=_root.bfs.listOpenId="0";
  28. _root.bfs.vol_value = 80;//設為音量為40
  29. _root.bfs.isPlaying = true;
  30. _root.bfs.搜狐視頻url = 輸入地址.text;
  31. scrollList._visible = false;
  32. loadhtm();
  33. //-------------------輸入按鈕------------------------
  34. 確定輸入按鈕.onPress = function() {
  35. System.useCodepage = true;//防止亂碼
  36. //----------清除文本樞內容----------
  37. 網頁html的源文件.text = "";
  38. 視頻代理編號.text = "";
  39. flv_多少集.text = "";
  40. flv_多少片段.text = "";
  41. 合并完整flvurl.text = "";
  42. 劇集txt.text = "";
  43. 劇集列表txt.text = "";
  44. flv_xml.text = "";
  45. 集數例表.text = "";
  46. _root.scene.cfvideo.close();//清除視頻
  47. delete _root.bfs.my_nc;//清除視頻流
  48. delete 搜狐代理htm_id;//清除 加載視頻 的網頁地址
  49. delete 搜狐代理xml;//清除 加載 XML 地址
  50. delete 劇集列表;//清除  劇集列表  XML
  51. _root.bfs.musicPlayId = _root.bfs.listPlayId=_root.bfs.listOpenId="0";
  52. _root.bfs.搜狐視頻url = 輸入地址.text;
  53. };
  54. 確定輸入按鈕.onRelease = function() {
  55. i = 0;
  56. ii = 1;
  57. loadhtm();
  58. };
  59. //----------------------load 視頻網頁 html---------------------------
  60. function loadhtm() {//加載視頻所在的網頁地址  
  61. var 搜狐代理htm_id:XML = new XML();//新建一個XML
  62. 搜狐代理htm_id.ignoreWhite = true;//防止xml中的空格參數
  63. 搜狐代理htm_id.load(_root.bfs.搜狐視頻url);//加載 html
  64. 搜狐代理htm_id.onLoad = function(如果加載成功) {
  65.   if (如果加載成功) {//加載OK后,積行動作
  66.    網頁html的源文件.text = 搜狐代理htm_id;// 所有的html 源文件的代碼
  67.    var 代理編號 = 網頁html的源文件.text.split("vid="")[1];//先找到 電影分之類 的位置
  68.    視頻代理編號.text = 代理編號.split("";")[0];
  69.    if (網頁html的源文件.text.lastIndexOf("vrs_playlist_id=""") != -1) {
  70.     flv_多少集.text = "1";
  71.     loadok();
  72.    } else {
  73.     var 劇集 = 網頁html的源文件.text.split("vrs_playlist_id="")[1];
  74.     flv_多少集.text = 劇集.split("";")[0];
  75.     劇集列表m();
  76.    }
  77.   } else {
  78.    loadhtm();//如果沒有加載成功,就接著再次加載
  79.   }
  80. };
  81. }
  82. //---------------------load  劇集列表-------------------------------------
  83. function 劇集列表m() {
  84. System.useCodepage = true;//防止亂碼
  85. var 劇集列表:XML = new XML();//新建一個XML
  86. 劇集列表.ignoreWhite = true;//防止xml中的空格參數
  87. 劇集列表.load(_root.bfs.搜狐劇集列表+flv_多少集.text);//加載列表 xml
  88. 劇集列表.onLoad = function(加載列表xml) {
  89.   if (加載列表xml) {
  90.    劇集txt.text = 劇集列表;
  91.    劇集xml列表();
  92.   } else {
  93.    劇集列表m();
  94.   }
  95. };
  96. }
  97. function 劇集xml列表() {
  98. this.onEnterFrame = function() {
  99.   if (劇集txt.text.lastIndexOf("第"+ii+"集") != -1) {
  100.    劇集列表txt.text = 劇集txt.text.split("videoId":")[ii];//"relativeVideoId":
  101.   } else {
  102.    delete this.onEnterFrame;
  103.    劇集列表id = (ii-1);
  104.    flv_多少集.text = 劇集列表id;
  105.    loadok();
  106.    PlayList();
  107.    //trace(劇集列表id);
  108.   }
  109.   ii++;
  110. };
  111. }
  112. //--------------------------------------Play List------------------------------------
  113. function PlayList() {
  114. System.useCodepage = true;
  115. var _loc3;
  116. var _loc4 = new String("");
  117. var _loc5;
  118. var _loc5000;
  119. var _loc6 = flv_多少集.text;//劇集列表.firstChild.childNodes.length;
  120. var _loc2 = -1;
  121. var 影片名稱 = 劇集txt.text.split("videoName":"")[1];
  122. var 當前影片名稱 = 影片名稱.split("第")[0];
  123. while (++_loc2<_loc6) {
  124.   var _loc3 = 當前影片名稱+"  第"+(_loc2+1)+"集";
  125.   //---------------設定 點播后改變例表中的 色彩-----------------
  126.   _loc5 = "#ffffff";
  127.   if (_loc2 == _root.bfs.musicPlayId) {
  128.    if (_root.bfs.listPlayId == _root.bfs.listOpenId) {
  129.     _loc5 = "#00ff00";
  130.    }
  131.   }
  132.   _loc4 = _loc4+("<font color=""+_loc5+""><a href="asfunction:d,"+_loc2+""></a>"+(_loc2+1)+":  <a href="asfunction:p,"+_loc2+"">"+_loc3+"</a></font>"+"\n");
  133. }
  134. 集數例表.html = true;
  135. 集數例表.htmlText = _loc4;
  136. if (flv_多少集.text<=19) {
  137.   scrollList._visible = false;
  138. } else {
  139.   scrollList._visible = true;
  140. }
  141. //集數例表.setTextFormat(lrcFormat);
  142. false;
  143. if (_root.bfs.listPlayId == _root.bfs.listOpenId) {
  144.   集數例表.scroll = _root.bfs.musicPlayId-3;
  145. } else {
  146.   集數例表.scroll = 1;
  147. }
  148. if (_root.bfs.isPlaying) {
  149.   delete 搜狐代理xml;
  150.   Playflvxml();
  151. }
  152. }
  153. //-----------------------------------------------------------------------------
  154. function d(id) {
  155. 劇集列表.childNodes[0].childNodes[id].removeNode();
  156. //PlayList();
  157. }
  158. function p(id) {
  159. playThis(id);
  160. }
  161. function playThis(id) {
  162. _root.bfs.musicPlayId = id;
  163. _root.bfs.listPlayId = _root.bfs.listOpenId;
  164. _root.bfs.isPlaying = true;
  165. 劇集列表txt.text = "";
  166. PlayList();
  167. trace(_root.bfs.musicPlayId);
  168. }
  169. function Playflvxml() {
  170. _root.bfs.isPlaying = false;
  171. var mmtt = 劇集txt.text.split("videoId&quot;:")[_root.bfs.musicPlayId];
  172. 劇集列表txt.text = mmtt.split(",&quot;isNeedCaption")[0];
  173. loadok();
  174. }
  175. //---------------------------load  flv  xml ------------------------------------
  176. function loadok() {//加載代理中的XML相關 flv 信息
  177. System.useCodepage = false;
  178. var flvurl;
  179. var 搜狐代理xml = new XML();
  180. 搜狐代理xml.ignoreWhite = true;
  181. if (_root.bfs.musicPlayId == "0") {
  182.   搜狐代理xml.load(_root.bfs.搜狐視頻代理+視頻代理編號.text);
  183. } else {
  184.   搜狐代理xml.load(_root.bfs.搜狐視頻代理+劇集列表txt.text);
  185. }
  186. 搜狐代理xml.onLoad = function(加載xml信息) {
  187.   if (加載xml信息) {
  188.    flv_xml.text = 搜狐代理xml;
  189.    var 總片段 = flv_xml.text.split("totalBlocks&quot;:")[1];
  190.    總片段數量 = 總片段.split(",&quot;ck&quot")[0];
  191.    flv_多少片段.text = 總片段數量;
  192.    //trace(總片段數量);
  193.    loadxml();
  194.   }
  195. };
  196. }
  197. function loadxml() {
  198. var flv_url = flv_xml.text.split("su&quot;:[&quot;")[1];
  199. var flvxml_t = flv_url.split("&quot;],&quot;sT&quot")[0];
  200. if (flv_xml.text.lastIndexOf("220.181.61.229") != -1) {//用字符串 搜索 視頻源 的 服務器的 IP
  201.   var url = flvxml_t.split("&quot;,&quot;")[i];
  202.   flvurl = "http://220.181.61.229/?new="+url;//采用 ?new 防止 視頻源 的 服務器 對客戶方封鎖IP (指觀看影片者)
  203.   合并完整flvurl.text = flvurl;
  204.   //trace(flvurl);
  205. } else if (flv_xml.text.lastIndexOf("abcdefghijklmnopqrstuvwxyz0123456789") != -1) {//如果說 搜索不到 視頻源 的 服務器的 IP 有可能是采用 別站 的資源
  206.   //采用別站的資源: 優酷  奇藝  樂視 騰訊
  207.   var video_flvURL;
  208.   var 優酷 = "http://www.youku.com/";
  209.   var 奇藝 = "http://www.iqiyi.com/";
  210.   var 樂視 = "http://www.letv.com/";
  211.   var 騰訊 = "http://v.qq.com/";
  212.   var 資源目錄路徑;
  213.   //------按時間來計算-調用 video 資源的路徑-----------
  214.   var 本地時間 = new Date();
  215.   var 本地時間的值 = 本地時間.getHours();
  216.   if (本地時間的值<8) {
  217.    資源目錄路徑 = "Q";
  218.   } else if (本地時間的值<10) {
  219.    資源目錄路徑 = "W";
  220.   } else if (本地時間的值<12) {
  221.    資源目錄路徑 = "E";
  222.   } else if (本地時間的值<13) {
  223.    資源目錄路徑 = "R";
  224.   } else if (本地時間的值<14) {
  225.    資源目錄路徑 = "T";
  226.   } else if (本地時間的值<15) {
  227.    資源目錄路徑 = "Y";
  228.   } else if (本地時間的值<16) {
  229.    資源目錄路徑 = "U";
  230.   } else if (本地時間的值<17) {
  231.    資源目錄路徑 = "I";
  232.   } else if (本地時間的值<18) {
  233.    資源目錄路徑 = "O";
  234.   } else if (本地時間的值<19) {
  235.    資源目錄路徑 = "P";
  236.   } else if (本地時間的值<20) {
  237.    資源目錄路徑 = "A";
  238.   } else if (本地時間的值<21) {
  239.    資源目錄路徑 = "S";
  240.   } else if (本地時間的值<22) {
  241.    資源目錄路徑 = "D";
  242.   } else if (本地時間的值<23) {
  243.    資源目錄路徑 = "F";
  244.   } else {
  245.    資源目錄路徑 = "qwertyuiopasdfghjklzxcvbnm";
  246.   }
  247.   //---------------分析解密的路徑------------------
  248.   loadurl(本地時間的值+"?new");//采用 ?new 防止 視頻源 的 服務器 對客戶方封鎖IP
  249.   function loadurl(str) {
  250.    var _local2 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
  251.    var _local1 = 0;
  252.    var _local5 = new String("");
  253.    var _local11;
  254.    var _local7;
  255.    var _local4;
  256.    var _local6;
  257.    var _local10;
  258.    var _local9;
  259.    var _local8;
  260.    var _local12 = str.length;
  261.    while (_local1<_local12) {
  262.     _local11 = _local2.indexOf(str.charAt(_local1++));
  263.     _local7 = _local2.indexOf(str.charAt(_local1++));
  264.     _local4 = _local2.indexOf(str.charAt(_local1++));
  265.     _local6 = _local2.indexOf(str.charAt(_local1++));
  266.     _local10 = (_local11 << 2) | (_local7 >> 4);
  267.     _local5 = _local5+String.fromCharCode(_local10);
  268.     if (_local4 != 64) {
  269.      _local9 = ((_local7 & 15) << 4) | (_local4 >> 2);
  270.      _local5 = _local5+String.fromCharCode(_local9);
  271.     }
  272.     if (_local6 != 64) {
  273.      _local8 = ((_local4 & 3) << 6) | _local6;
  274.      _local5 = _local5+String.fromCharCode(_local8);
  275.     }
  276.    }
  277.    video_flvURL = _local5;
  278.    return (_local5);
  279.   }
  280.   //---------------結束 解密的路徑------------------
  281.   //----------根據 各站的域名 來進行 合并完整視頻的地址----------
  282.   if (flv_xml.text.lastIndexOf("youku") != -1) {
  283.    flvurl = 優酷+url+video_flvURL+"flv";
  284.   } else if (flv_xml.text.lastIndexOf("iqiyi") != -1) {
  285.    flvurl = 奇藝+url+video_flvURL+"flv";
  286.   } else if (flv_xml.text.lastIndexOf("letv") != -1) {
  287.    flvurl = 樂視+url+video_flvURL+"flv";
  288.   } else if (flv_xml.text.lastIndexOf("qq") != -1) {
  289.    flvurl = 騰訊+url+video_flvURL+"mp4";
  290.   } else {
  291.    trace("代理資源過期");
  292.   }
  293.   合并完整flvurl.text = flvurl;
  294. }
  295. playflv(flvurl,flvurl);//傳達給 播放 接口
  296. i++;
  297. }
  298. //---------------------play video -------------------------------------
  299. function playflv(mu, t) {
  300. if (t == undefined) {
  301.   _root.bfs.my_ns_duration = 180;
  302. } else {
  303.   _root.bfs.my_ns_duration = t;
  304. }
  305. _root.bfs.my_ns.play(mu);
  306. if (_root.bfs.buffer_download) {//清除相關視頻流通
  307.   _root.bfs.buffer_ns.close();
  308.   _root.bfs.my_ns.seek(0);
  309. }
  310. _root.bfs.my_ns.onMetaData = function(infoObject) {//檢查回調 從中獲取FLV文件的總時間長度
  311.   _root.bfs.my_ns_duration = infoObject.duration;//視頻流的總長度
  312.   //---------顯示當前的視頻總時間參數-------
  313.   mmm = infoObject.duration;
  314.   tm1 = int(mmm/60);
  315.   tm2 = int(mmm%60);
  316.   tm1 = ((tm1<10) ? ("0"+tm1) : (tm1));
  317.   tm2 = ((tm2<10) ? ("0"+tm2) : (tm2));
  318.   tmm = (tm1+":")+tm2;
  319. };
  320. //---------顯示當前的視頻 已經播放時間參數-------
  321. function 純環() {
  322.   mmm = _root.bfs.my_ns.time;
  323.   tta = int(mmm/60);
  324.   tts = int(mmm%60);
  325.   tta = ((tta<10) ? ("0"+tta) : (tta));
  326.   tts = ((tts<10) ? ("0"+tts) : (tts));
  327.   mmmm = (tta+":")+tts;
  328. }
  329. clearInterval(純環事件目標);//先清除周期性時間值
  330. var 純環事件目標 = setInterval(純環, 100);//聲明 一個含數的值為 周期性時間 計算方法:1000為1秒
  331. //------------------------檢測視頻流的播放狀態-------
  332. _root.bfs.my_ns_downloaded = false;
  333. _root.bfs.my_ns.onStatus = function(infoObject) {
  334.   switch (infoObject.code) {
  335.    case "NetStream.Play.StreamNotFound" ://當視頻流 播放時,是否可充全屏
  336.     //自己定義全屏接口();
  337.     break;
  338.    case "NetStream.Buffer.Empty" ://開始檢查視頻源 是否有效
  339.     if (_root.bfs.my_ns_downloaded) {//如果視頻源出錯
  340.      if (i<總片段數量) {
  341.       loadxml();
  342.      } else {
  343.       下一集();
  344.      }
  345.     } else {
  346.      var _local3 = setInterval(checkBufferTime, 100);//聲明 一個含數的值為 周期性時間 計算方法:1000為1秒
  347.     }
  348.     break;
  349.    case "NetStream.Play.Start" ://播放后,續沖視頻流不到位,進行續沖
  350.     var _local3 = setInterval(checkBufferTime, 100);
  351.     break;
  352.    case "NetStream.Buffer.Full" ://續沖完畢后,結束 周期性得設定時間值
  353.     clearInterval(_local3);//清除周期性時間值
  354.     break;
  355.    case "NetStream.Buffer.Flush" ://檢查視頻源 一切正常
  356.     _root.bfs.my_ns_downloaded = true;//傳達值數 為正常
  357.     break;
  358.    case "NetStream.Play.Stop" ://檢查視頻流 是否播放 完
  359.     if (i<總片段數量) {
  360.      loadxml();
  361.     } else {
  362.      下一集();
  363.     }
  364.     break;
  365.    default :
  366.     break;
  367.   }
  368. };
  369. changesize(438,278);//定義 video 的寬與高
  370. sound.volset.setVol();//設置音量
  371. _root.scene.cfvideo.attachVideo(_root.bfs.my_ns);//設定視頻流對象要顯示給  video  視頻輸入
  372. _root.bfs.my_ns_mc.attachAudio(_root.bfs.my_ns);//執行 視頻流對象
  373. _root.bfs.mySound = new Sound(_root.bfs.my_ns_mc);//從 視頻流 中設定 Sound 聲音
  374. //------------------------------  video  加載  與 緩沖-------------------------------
  375. function checkBufferTime() {
  376.   var _loc2 = Math.round(_root.bfs.my_ns.bufferLength/_root.bfs.my_ns.bufferTime*100);
  377.   ffff = Math.round(_root.bfs.my_ns.bytesLoaded/_root.bfs.my_ns.bytesTotal*100)+"%";
  378.   if (_loc2<100 && _root.bfs.my_ns.bytesLoaded != _root.bfs.my_ns.bytesTotal) {
  379.    _root.scene.bufferinfo.text = "緩沖 "+_loc2+"%";
  380.   } else {
  381.    _root.scene.bufferinfo.text = "";
  382.   }
  383. }
  384. function changesize(w, h) {
  385.   var _loc3 = w;
  386.   var _loc2 = h;
  387.   var _loc4 = mu;
  388.   if (cn(_loc4)) {
  389.    _loc3 = _loc3*_loc4/100;
  390.    _loc2 = _loc2*_loc4/100;
  391.   }
  392.   _root.scene.cfvideo.smoothing = true;//設置視頻平滑
  393.   btn_play._visible = false;
  394.   btn_Stop._visible = true;
  395. }
  396. }
  397. //------------------------控制  播放 各 按鈕--------------------------
  398. btn_play.onRelease = function() {
  399. ps = true;
  400. btn_play._visible = false;
  401. btn_Stop._visible = true;
  402. bfs_pause();
  403. };
  404. btn_Stop.onRelease = function() {
  405. ps = false;
  406. btn_play._visible = true;
  407. btn_Stop._visible = false;
  408. bfs_pause();
  409. };
  410. btn_nextFrame.onRelease = function() {
  411. 下一集();
  412. };
  413. btn_prevFrame.onRelease = function() {
  414. 上一集();
  415. };
  416. function bfs_pause() {
  417. if (ps) {
  418.   _root.bfs.my_ns.pause(false);
  419. } else {
  420.   _root.bfs.my_ns.pause(true);
  421. }
  422. }
  423. //---------------------------------------------
  424. function 下一集() {
  425. _root.bfs.musicPlayId++;
  426. _root.bfs.listPlayId = _root.bfs.listOpenId;
  427. _root.bfs.isPlaying = true;
  428. 劇集列表txt.text = "";
  429. PlayList();
  430. trace(_root.bfs.musicPlayId);
  431. }
  432. function 上一集() {
  433. _root.bfs.musicPlayId--;
  434. _root.bfs.listPlayId = _root.bfs.listOpenId;
  435. _root.bfs.isPlaying = true;
  436. 劇集列表txt.text = "";
  437. PlayList();
  438. trace(_root.bfs.musicPlayId);
  439. }
復制代碼
[attach]79440[/attach]
作者: 三笑    時間: 2012-6-22 18:23
感謝啊城分享~~辛苦了~~端午節快樂!
作者: 小李輕風    時間: 2012-6-22 18:42
{:soso__8961432591078930798_3:}阿城太專業了  問好  端午快樂
作者: 清音王梓    時間: 2012-6-22 21:57
視頻網站盜鏈需要這個,阿城高手啊!{:soso_e179:}
作者: 白雪皚皚    時間: 2012-6-22 23:08
清音王梓 發表于 2012-6-22 21:57
視頻網站盜鏈需要這個,阿城高手啊!

這個真的很專業!




歡迎光臨 中畫網 (http://www.nujv.cn/) Powered by Discuz! X3.4
主站蜘蛛池模板: 精品福利一区二区三区精品国产第一国产综合精品 | 久久99国产综合精品| 成人亚洲综合天堂| 久久久综合九色合综国产| 天天影视综合色区| 亚洲精品第一国产综合精品99| 亚洲综合色区在线观看| 亚洲综合色自拍一区| 亚洲国产综合精品一区在线播放 | senima亚洲综合美女图| 久久综合精品国产一区二区三区 | 欧美va亚洲va国产综合| 亚洲综合精品网站| 亚洲国产免费综合| 亚洲欧美日韩综合在线观看不卡顿 | 国产成人综合美国十次| 狠狠色丁香久久婷婷综合五月| 亚洲欧美日韩综合一区| 99热婷婷国产精品综合| 亚洲综合国产精品| 国产欧美精品一区二区色综合| 欧美亚洲日本国产综合网| 人人狠狠综合久久亚洲| 日日AV色欲香天天综合网 | 国产巨作麻豆欧美亚洲综合久久 | 狠狠色狠狠色综合曰曰| 丁香狠狠色婷婷久久综合 | 精品综合久久久久久88小说| 久久青青草原综合伊人| 精品综合久久久久久97超人| 色欲香天天综合网站| 天天综合色天天综合色hd| 亚洲成色在线综合网站| 青青草原综合久久大伊人| 国产91久久综合| 婷婷丁香五月天综合东京热| 伊人丁香狠狠色综合久久| 国产成人精品综合在线观看| 国产精品综合专区中文字幕免费播放| 狠狠色丁香婷婷综合精品视频| 偷自拍视频区综合视频区|