该用户从未签到 鲜花( 0) 鸡蛋( 0)
|
你可以把 搜狐视频 的电影,电视剧 的视频 所在的网址复制起来,
然后粘帖到下面播放器中的输入文本枢,
最后按确定 就可以看到代理,或者采集的过程序了
备用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]
脚本如下- /*-------------------搜狐视频 代理与采集-------------
- | 2012-06-18-日编 |
- | 编 啊城 QQ 475830480 |
- | www.flashcs5as3.com |
- ---------------------------------------------------*/
- //---------------------------常规参数设置---------------
- var i = 0;
- var 总片段数量;
- var ii = 1;
- var 剧集列表id;
- // 例子 http://tv.sohu.com/20120601/n344624004.shtml http://tv.sohu.com/20120502/n342149564.shtml
- System.useCodepage = true;//防止乱码
- _root.bfs = new Object();//新建原始参数
- //--------搜狐管方内部的代理-----------------------------------------------------------
- _root.bfs.搜狐视频代理 = "http://hot.vrs.sohu.com/vrs_flash.action?vid=";
- _root.bfs.搜狐剧集列表 = "http://hot.vrs.sohu.com/vrs_videolist.action?playlist_id=";
- //本人开发的代理 http://q475830480.cn/bfs/代理程序/搜狐.asp?vid=
- //------------------------------------------------------------------------------------
- _root.bfs.mySound = new Sound();//新建声音
- _root.bfs.my_nc = new NetConnection();//新建视频连接
- _root.bfs.my_nc.connect(null);//插定连接为空
- _root.bfs.my_ns = new NetStream(_root.bfs.my_nc);//新建视频流
- _root.bfs.my_ns.setBufferTime(1);//设置续冲时间 值为 1 秒
- _root.bfs.buffer_ns = new NetStream(_root.bfs.my_nc);//新建副视频流
- _root.bfs.buffer_download = false;//设置 视频流 加载的装态
- _root.bfs.downloading = false;//视频流的长度 装态
- _root.bfs.musicPlayId = _root.bfs.listPlayId=_root.bfs.listOpenId="0";
- _root.bfs.vol_value = 80;//设为音量为40
- _root.bfs.isPlaying = true;
- _root.bfs.搜狐视频url = 输入地址.text;
- scrollList._visible = false;
- loadhtm();
- //-------------------输入按钮------------------------
- 确定输入按钮.onPress = function() {
- System.useCodepage = true;//防止乱码
- //----------清除文本枢内容----------
- 网页html的源文件.text = "";
- 视频代理编号.text = "";
- flv_多少集.text = "";
- flv_多少片段.text = "";
- 合并完整flvurl.text = "";
- 剧集txt.text = "";
- 剧集列表txt.text = "";
- flv_xml.text = "";
- 集数例表.text = "";
- _root.scene.cfvideo.close();//清除视频
- delete _root.bfs.my_nc;//清除视频流
- delete 搜狐代理htm_id;//清除 加载视频 的网页地址
- delete 搜狐代理xml;//清除 加载 XML 地址
- delete 剧集列表;//清除 剧集列表 XML
- _root.bfs.musicPlayId = _root.bfs.listPlayId=_root.bfs.listOpenId="0";
- _root.bfs.搜狐视频url = 输入地址.text;
- };
- 确定输入按钮.onRelease = function() {
- i = 0;
- ii = 1;
- loadhtm();
- };
- //----------------------load 视频网页 html---------------------------
- function loadhtm() {//加载视频所在的网页地址
- var 搜狐代理htm_id:XML = new XML();//新建一个XML
- 搜狐代理htm_id.ignoreWhite = true;//防止xml中的空格参数
- 搜狐代理htm_id.load(_root.bfs.搜狐视频url);//加载 html
- 搜狐代理htm_id.onLoad = function(如果加载成功) {
- if (如果加载成功) {//加载OK后,积行动作
- 网页html的源文件.text = 搜狐代理htm_id;// 所有的html 源文件的代码
- var 代理编号 = 网页html的源文件.text.split("vid="")[1];//先找到 电影分之类 的位置
- 视频代理编号.text = 代理编号.split("";")[0];
- if (网页html的源文件.text.lastIndexOf("vrs_playlist_id=""") != -1) {
- flv_多少集.text = "1";
- loadok();
- } else {
- var 剧集 = 网页html的源文件.text.split("vrs_playlist_id="")[1];
- flv_多少集.text = 剧集.split("";")[0];
- 剧集列表m();
- }
- } else {
- loadhtm();//如果没有加载成功,就接着再次加载
- }
- };
- }
- //---------------------load 剧集列表-------------------------------------
- function 剧集列表m() {
- System.useCodepage = true;//防止乱码
- var 剧集列表:XML = new XML();//新建一个XML
- 剧集列表.ignoreWhite = true;//防止xml中的空格参数
- 剧集列表.load(_root.bfs.搜狐剧集列表+flv_多少集.text);//加载列表 xml
- 剧集列表.onLoad = function(加载列表xml) {
- if (加载列表xml) {
- 剧集txt.text = 剧集列表;
- 剧集xml列表();
- } else {
- 剧集列表m();
- }
- };
- }
- function 剧集xml列表() {
- this.onEnterFrame = function() {
- if (剧集txt.text.lastIndexOf("第"+ii+"集") != -1) {
- 剧集列表txt.text = 剧集txt.text.split("videoId":")[ii];//"relativeVideoId":
- } else {
- delete this.onEnterFrame;
- 剧集列表id = (ii-1);
- flv_多少集.text = 剧集列表id;
- loadok();
- PlayList();
- //trace(剧集列表id);
- }
- ii++;
- };
- }
- //--------------------------------------Play List------------------------------------
- function PlayList() {
- System.useCodepage = true;
- var _loc3;
- var _loc4 = new String("");
- var _loc5;
- var _loc5000;
- var _loc6 = flv_多少集.text;//剧集列表.firstChild.childNodes.length;
- var _loc2 = -1;
- var 影片名称 = 剧集txt.text.split("videoName":"")[1];
- var 当前影片名称 = 影片名称.split("第")[0];
- while (++_loc2<_loc6) {
- var _loc3 = 当前影片名称+" 第"+(_loc2+1)+"集";
- //---------------设定 点播后改变例表中的 色彩-----------------
- _loc5 = "#ffffff";
- if (_loc2 == _root.bfs.musicPlayId) {
- if (_root.bfs.listPlayId == _root.bfs.listOpenId) {
- _loc5 = "#00ff00";
- }
- }
- _loc4 = _loc4+("<font color=""+_loc5+""><a href="asfunction:d,"+_loc2+""></a>"+(_loc2+1)+": <a href="asfunction:p,"+_loc2+"">"+_loc3+"</a></font>"+"\n");
- }
- 集数例表.html = true;
- 集数例表.htmlText = _loc4;
- if (flv_多少集.text<=19) {
- scrollList._visible = false;
- } else {
- scrollList._visible = true;
- }
- //集数例表.setTextFormat(lrcFormat);
- false;
- if (_root.bfs.listPlayId == _root.bfs.listOpenId) {
- 集数例表.scroll = _root.bfs.musicPlayId-3;
- } else {
- 集数例表.scroll = 1;
- }
- if (_root.bfs.isPlaying) {
- delete 搜狐代理xml;
- Playflvxml();
- }
- }
- //-----------------------------------------------------------------------------
- function d(id) {
- 剧集列表.childNodes[0].childNodes[id].removeNode();
- //PlayList();
- }
- function p(id) {
- playThis(id);
- }
- function playThis(id) {
- _root.bfs.musicPlayId = id;
- _root.bfs.listPlayId = _root.bfs.listOpenId;
- _root.bfs.isPlaying = true;
- 剧集列表txt.text = "";
- PlayList();
- trace(_root.bfs.musicPlayId);
- }
- function Playflvxml() {
- _root.bfs.isPlaying = false;
- var mmtt = 剧集txt.text.split("videoId":")[_root.bfs.musicPlayId];
- 剧集列表txt.text = mmtt.split(","isNeedCaption")[0];
- loadok();
- }
- //---------------------------load flv xml ------------------------------------
- function loadok() {//加载代理中的XML相关 flv 信息
- System.useCodepage = false;
- var flvurl;
- var 搜狐代理xml = new XML();
- 搜狐代理xml.ignoreWhite = true;
- if (_root.bfs.musicPlayId == "0") {
- 搜狐代理xml.load(_root.bfs.搜狐视频代理+视频代理编号.text);
- } else {
- 搜狐代理xml.load(_root.bfs.搜狐视频代理+剧集列表txt.text);
- }
- 搜狐代理xml.onLoad = function(加载xml信息) {
- if (加载xml信息) {
- flv_xml.text = 搜狐代理xml;
- var 总片段 = flv_xml.text.split("totalBlocks":")[1];
- 总片段数量 = 总片段.split(","ck"")[0];
- flv_多少片段.text = 总片段数量;
- //trace(总片段数量);
- loadxml();
- }
- };
- }
- function loadxml() {
- var flv_url = flv_xml.text.split("su":["")[1];
- var flvxml_t = flv_url.split(""],"sT"")[0];
- if (flv_xml.text.lastIndexOf("220.181.61.229") != -1) {//用字符串 搜索 视频源 的 服务器的 IP
- var url = flvxml_t.split("","")[i];
- flvurl = "http://220.181.61.229/?new="+url;//采用 ?new 防止 视频源 的 服务器 对客户方封锁IP (指观看影片者)
- 合并完整flvurl.text = flvurl;
- //trace(flvurl);
- } else if (flv_xml.text.lastIndexOf("abcdefghijklmnopqrstuvwxyz0123456789") != -1) {//如果说 搜索不到 视频源 的 服务器的 IP 有可能是采用 别站 的资源
- //采用别站的资源: 优酷 奇艺 乐视 腾讯
- var video_flvURL;
- var 优酷 = "http://www.youku.com/";
- var 奇艺 = "http://www.iqiyi.com/";
- var 乐视 = "http://www.letv.com/";
- var 腾讯 = "http://v.qq.com/";
- var 资源目录路径;
- //------按时间来计算-调用 video 资源的路径-----------
- var 本地时间 = new Date();
- var 本地时间的值 = 本地时间.getHours();
- if (本地时间的值<8) {
- 资源目录路径 = "Q";
- } else if (本地时间的值<10) {
- 资源目录路径 = "W";
- } else if (本地时间的值<12) {
- 资源目录路径 = "E";
- } else if (本地时间的值<13) {
- 资源目录路径 = "R";
- } else if (本地时间的值<14) {
- 资源目录路径 = "T";
- } else if (本地时间的值<15) {
- 资源目录路径 = "Y";
- } else if (本地时间的值<16) {
- 资源目录路径 = "U";
- } else if (本地时间的值<17) {
- 资源目录路径 = "I";
- } else if (本地时间的值<18) {
- 资源目录路径 = "O";
- } else if (本地时间的值<19) {
- 资源目录路径 = "P";
- } else if (本地时间的值<20) {
- 资源目录路径 = "A";
- } else if (本地时间的值<21) {
- 资源目录路径 = "S";
- } else if (本地时间的值<22) {
- 资源目录路径 = "D";
- } else if (本地时间的值<23) {
- 资源目录路径 = "F";
- } else {
- 资源目录路径 = "qwertyuiopasdfghjklzxcvbnm";
- }
- //---------------分析解密的路径------------------
- loadurl(本地时间的值+"?new");//采用 ?new 防止 视频源 的 服务器 对客户方封锁IP
- function loadurl(str) {
- var _local2 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
- var _local1 = 0;
- var _local5 = new String("");
- var _local11;
- var _local7;
- var _local4;
- var _local6;
- var _local10;
- var _local9;
- var _local8;
- var _local12 = str.length;
- while (_local1<_local12) {
- _local11 = _local2.indexOf(str.charAt(_local1++));
- _local7 = _local2.indexOf(str.charAt(_local1++));
- _local4 = _local2.indexOf(str.charAt(_local1++));
- _local6 = _local2.indexOf(str.charAt(_local1++));
- _local10 = (_local11 << 2) | (_local7 >> 4);
- _local5 = _local5+String.fromCharCode(_local10);
- if (_local4 != 64) {
- _local9 = ((_local7 & 15) << 4) | (_local4 >> 2);
- _local5 = _local5+String.fromCharCode(_local9);
- }
- if (_local6 != 64) {
- _local8 = ((_local4 & 3) << 6) | _local6;
- _local5 = _local5+String.fromCharCode(_local8);
- }
- }
- video_flvURL = _local5;
- return (_local5);
- }
- //---------------结束 解密的路径------------------
- //----------根据 各站的域名 来进行 合并完整视频的地址----------
- if (flv_xml.text.lastIndexOf("youku") != -1) {
- flvurl = 优酷+url+video_flvURL+"flv";
- } else if (flv_xml.text.lastIndexOf("iqiyi") != -1) {
- flvurl = 奇艺+url+video_flvURL+"flv";
- } else if (flv_xml.text.lastIndexOf("letv") != -1) {
- flvurl = 乐视+url+video_flvURL+"flv";
- } else if (flv_xml.text.lastIndexOf("qq") != -1) {
- flvurl = 腾讯+url+video_flvURL+"mp4";
- } else {
- trace("代理资源过期");
- }
- 合并完整flvurl.text = flvurl;
- }
- playflv(flvurl,flvurl);//传达给 播放 接口
- i++;
- }
- //---------------------play video -------------------------------------
- function playflv(mu, t) {
- if (t == undefined) {
- _root.bfs.my_ns_duration = 180;
- } else {
- _root.bfs.my_ns_duration = t;
- }
- _root.bfs.my_ns.play(mu);
- if (_root.bfs.buffer_download) {//清除相关视频流通
- _root.bfs.buffer_ns.close();
- _root.bfs.my_ns.seek(0);
- }
- _root.bfs.my_ns.onMetaData = function(infoObject) {//检查回调 从中获取FLV文件的总时间长度
- _root.bfs.my_ns_duration = infoObject.duration;//视频流的总长度
- //---------显示当前的视频总时间参数-------
- mmm = infoObject.duration;
- tm1 = int(mmm/60);
- tm2 = int(mmm%60);
- tm1 = ((tm1<10) ? ("0"+tm1) : (tm1));
- tm2 = ((tm2<10) ? ("0"+tm2) : (tm2));
- tmm = (tm1+":")+tm2;
- };
- //---------显示当前的视频 已经播放时间参数-------
- function 纯环() {
- mmm = _root.bfs.my_ns.time;
- tta = int(mmm/60);
- tts = int(mmm%60);
- tta = ((tta<10) ? ("0"+tta) : (tta));
- tts = ((tts<10) ? ("0"+tts) : (tts));
- mmmm = (tta+":")+tts;
- }
- clearInterval(纯环事件目标);//先清除周期性时间值
- var 纯环事件目标 = setInterval(纯环, 100);//声明 一个含数的值为 周期性时间 计算方法:1000为1秒
- //------------------------检测视频流的播放状态-------
- _root.bfs.my_ns_downloaded = false;
- _root.bfs.my_ns.onStatus = function(infoObject) {
- switch (infoObject.code) {
- case "NetStream.Play.StreamNotFound" ://当视频流 播放时,是否可充全屏
- //自己定义全屏接口();
- break;
- case "NetStream.Buffer.Empty" ://开始检查视频源 是否有效
- if (_root.bfs.my_ns_downloaded) {//如果视频源出错
- if (i<总片段数量) {
- loadxml();
- } else {
- 下一集();
- }
- } else {
- var _local3 = setInterval(checkBufferTime, 100);//声明 一个含数的值为 周期性时间 计算方法:1000为1秒
- }
- break;
- case "NetStream.Play.Start" ://播放后,续冲视频流不到位,进行续冲
- var _local3 = setInterval(checkBufferTime, 100);
- break;
- case "NetStream.Buffer.Full" ://续冲完毕后,结束 周期性得设定时间值
- clearInterval(_local3);//清除周期性时间值
- break;
- case "NetStream.Buffer.Flush" ://检查视频源 一切正常
- _root.bfs.my_ns_downloaded = true;//传达值数 为正常
- break;
- case "NetStream.Play.Stop" ://检查视频流 是否播放 完
- if (i<总片段数量) {
- loadxml();
- } else {
- 下一集();
- }
- break;
- default :
- break;
- }
- };
- changesize(438,278);//定义 video 的宽与高
- sound.volset.setVol();//设置音量
- _root.scene.cfvideo.attachVideo(_root.bfs.my_ns);//设定视频流对象要显示给 video 视频输入
- _root.bfs.my_ns_mc.attachAudio(_root.bfs.my_ns);//执行 视频流对象
- _root.bfs.mySound = new Sound(_root.bfs.my_ns_mc);//从 视频流 中设定 Sound 声音
- //------------------------------ video 加载 与 缓冲-------------------------------
- function checkBufferTime() {
- var _loc2 = Math.round(_root.bfs.my_ns.bufferLength/_root.bfs.my_ns.bufferTime*100);
- ffff = Math.round(_root.bfs.my_ns.bytesLoaded/_root.bfs.my_ns.bytesTotal*100)+"%";
- if (_loc2<100 && _root.bfs.my_ns.bytesLoaded != _root.bfs.my_ns.bytesTotal) {
- _root.scene.bufferinfo.text = "缓冲 "+_loc2+"%";
- } else {
- _root.scene.bufferinfo.text = "";
- }
- }
- function changesize(w, h) {
- var _loc3 = w;
- var _loc2 = h;
- var _loc4 = mu;
- if (cn(_loc4)) {
- _loc3 = _loc3*_loc4/100;
- _loc2 = _loc2*_loc4/100;
- }
- _root.scene.cfvideo.smoothing = true;//设置视频平滑
- btn_play._visible = false;
- btn_Stop._visible = true;
- }
- }
- //------------------------控制 播放 各 按钮--------------------------
- btn_play.onRelease = function() {
- ps = true;
- btn_play._visible = false;
- btn_Stop._visible = true;
- bfs_pause();
- };
- btn_Stop.onRelease = function() {
- ps = false;
- btn_play._visible = true;
- btn_Stop._visible = false;
- bfs_pause();
- };
- btn_nextFrame.onRelease = function() {
- 下一集();
- };
- btn_prevFrame.onRelease = function() {
- 上一集();
- };
- function bfs_pause() {
- if (ps) {
- _root.bfs.my_ns.pause(false);
- } else {
- _root.bfs.my_ns.pause(true);
- }
- }
- //---------------------------------------------
- function 下一集() {
- _root.bfs.musicPlayId++;
- _root.bfs.listPlayId = _root.bfs.listOpenId;
- _root.bfs.isPlaying = true;
- 剧集列表txt.text = "";
- PlayList();
- trace(_root.bfs.musicPlayId);
- }
- function 上一集() {
- _root.bfs.musicPlayId--;
- _root.bfs.listPlayId = _root.bfs.listOpenId;
- _root.bfs.isPlaying = true;
- 剧集列表txt.text = "";
- PlayList();
- trace(_root.bfs.musicPlayId);
- }
复制代码 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?中文注册
x
|