Board logo

标题: TW2.0媒体保存功能增强插件(2006.10.20增加对tudou.com视频的保存功能) [打印本页]

作者: mutalisker    时间: 2006-10-8 12:03     标题: TW2.0媒体保存功能增强插件(2006.10.20增加对tudou.com视频的保存功能)

最新的更新请到这里察看http://bbs.ioage.com/viewthread.php?tid=20829&page=1

下载附件中的MediaSaver.js到TW目录中,就可以实现对下列网站flash视频的url获取功能

土豆网        
http://www.tudou.com (新增,感谢kkf,详见45楼)
我乐           
http://www.56.com(感谢kkf,详见23楼)
youtube     
http://www.youtube.com
新浪           http://v.iask.com/
六间房        http://www.6rooms.com

[attach]12043[/attach]

附上MediaSaver.js支持的特殊扩展方法简介,对这个扩展功能有兴趣的朋友可以与我联系进行深入探讨
var twSaveObjUrl%%s = "%%SaveObjUrl";//要保存对象的URL
var twObjectUID%%s = "%%ObjectUID";//要保存对象的ID,可以通过document.getElementByID来获得要保存的对象

strBuffer = external.twQueryHistory( "
http://www.youtube.com/p.swf?" + "*" + strID + "*", false );//在临时目录中查找指定的临时文件,支持*号匹配,并把查找到的文件内容返回

external.twMediaPath( window, strUrl );//通知浏览器要保存的URL内容

作者: 357546    时间: 2006-10-8 12:32

我按alt+左键,提示找到视频地址但无法保存
作者: 凡人凡尘    时间: 2006-10-8 12:49

好东西啦.
作者: 杂草    时间: 2006-10-8 13:10

nStart = strBuffer.search( /\<file\>/g );
   nEnd = strBuffer.search( /\<\/.ile\>/ );


不知道是否有笔误之处.

不是
nEnd = strBuffer.search( /\<\/file\>/ );
吗?
作者: mutalisker    时间: 2006-10-8 21:57

这个不是笔误,这个search支持正则表达式,只要写了能匹配正确的东西就行了,我正则表达式不是很熟,随便写的
作者: sunlee    时间: 2006-10-9 01:19

插件怎么用?
作者: 风中流云    时间: 2006-10-9 08:46

可以正常使用~呵呵
作者: 东暴    时间: 2006-10-9 12:56

对新浪没有一点好感(卖广告了骗了我一条信息^_^),没有到过这个网。
作者: nonozone    时间: 2006-10-9 18:35

这个没有1.3用的吗?
作者: hlh    时间: 2006-10-9 18:46

在6rooms上面只能保存play。swf?
作者: Reglin    时间: 2006-10-9 19:41

这个插件怎么用呀
作者: jy416    时间: 2006-10-9 19:56

不会用,无法打开
作者: shendan    时间: 2006-10-9 20:11

不会用,无法打开
作者: lianshang85    时间: 2006-10-9 21:44

下下来看看哈哈
作者: fishyaya    时间: 2006-10-10 18:50

[quote]原帖由 东暴 于 2006-10-9 12:56 发表
对新浪没有一点好感(卖广告了骗了我一条信息^_^),没有到过这个网。


支持!新浪从来不上!抵制新浪
作者: needed    时间: 2006-10-10 21:09

弓虽.... 很喜欢这个插件,  这样就不用写bat 在临时文件夹找...
作者: lyws8449    时间: 2006-10-10 22:37

我知道怎么用啦 哈哈
按住“alt”双击左键
作者: 混神    时间: 2006-10-11 02:40

不懂`
作者: mutalisker    时间: 2006-10-11 11:21

原帖由 lyws8449 于 2006-10-10 22:37 发表
我知道怎么用啦 哈哈
按住“alt”双击左键

单击就行了,不用双击啦
作者: naivepeople    时间: 2006-10-11 13:37

多谢mutalisker 哦
作者: luoice    时间: 2006-10-11 14:07

不怎么懂,但是我知道楼主很牛!!
作者: ℡不死〆双鱼    时间: 2006-10-11 23:31

实在是太感谢了
作者: needed    时间: 2006-10-12 18:31

支持 v2.56.com 视频的脚本


10.21日56更新了flash播放器,因此更新如下,代码并不是最好,希望高手能写出更好的,由于56推出V3,我一时找不到,请不能正确保存56地址的朋友能顺便贴个地址上来,谢谢。。。..

  1. /*   recode bY kkf @ 2006 .10.28
  2.        kkf009@gmail.com   
  3. */
  4. function l56Media()
  5. {        
  6.     strUrl=twSaveObjUrl%%s;
  7.     if(-1!=strUrl.search(/http:\/\/www\.56\.com\/.*\.swf/)){
  8.         strUrl=document.getElementById(twObjectUID%%s).innerHTML.toString();
  9.         strRet= ( /flashvars/.test(strUrl)) ? strUrl.replace(/([^>]|>)*?flashvars=\"(.*)&totaltimes.*/,"$2") : strUrl.replace(/.*swf\?(.*)&totaltimes.*/,"$1").replace(/\&amp;/gi,"&") ;
  10.         var tmp1=new Array();               
  11.               var tmp=new Array();               
  12.         tmp1=strRet.split("&");               
  13.         var strVar=/([^=&]+)=([^&]*)/;
  14.         for(var i=0;i<=tmp1.length-1;i++){
  15.                 try{
  16.                     tmp2=tmp1.match(strVar);                                
  17.                     tmp[tmp2[1]]=tmp2[2];  
  18.                 }
  19.                 catch(e){}                              
  20.                         }
  21.         strTemp="http:\/\/"+tmp["host"]+"\/flvdownload\/"+tmp["pURL"]+"\/"+tmp["sURL"]+"\/"+tmp["user"]+"@56.com_56flv_"+tmp["URLid"]+"\.flv";               
  22.         external.twMediaPath(window,strTemp);  
  23.     }        
  24. }
复制代码

[ 本帖最后由 needed 于 2006-10-28 15:25 编辑 ]
作者: wyg1258    时间: 2006-10-12 21:05

以后TW的插件不会都是这样的把
作者: mutalisker    时间: 2006-10-12 21:37

这个严格的说不是一个插件,只是TW媒体保存功能的一种扩展
作者: 9wis    时间: 2006-10-13 20:41

我还是不明白,算了,我不想把自己搞晕了
你们厉害,你们慢慢用吧?
记得、以后不容易明白的东西,别发!省我伤脑筋!
作者: mutalisker    时间: 2006-10-13 21:59

...楼上的,不用明白,直接把mediasaver.js放到tw目录就可以了,不过没有需要的话就不要搞了
作者: chenggg    时间: 2006-10-14 18:12

有了这个就视频大大有了,谢谢大哥!
作者: 吴宗宪    时间: 2006-10-15 00:10

下载了插件变成这样:
作者: 吴宗宪    时间: 2006-10-15 00:13

by xiaoc:既然不是问题,那就把帖子内容清了,免得每次看到都要再看一眼
作者: needed    时间: 2006-10-15 00:30

......

[ 本帖最后由 needed 于 2006-10-20 20:30 编辑 ]
作者: 吴宗宪    时间: 2006-10-15 01:06

没看清楚。
不过以下网站的视频还是无法保存:

醋溜网http://www.ku6.com/default.htm
http://tv.mofile.com/cn/index/main.do
http://www.tvix.cn/
http://www.netyi.net/
http://www.im.tv/vlog/
http://www.mocasting.com/
http://friendearth.com/

[ 本帖最后由 吴宗宪 于 2006-10-15 14:18 编辑 ]
作者: wsdgs    时间: 2006-10-15 23:27

原帖由 357546 于 2006-10-8 12:32 发表
我按alt+左键,提示找到视频地址但无法保存



我也遇到这个问题
作者: 咖啡色    时间: 2006-10-16 09:36

原帖由 9wis 于 2006-10-13 20:41 发表
我还是不明白,算了,我不想把自己搞晕了
你们厉害,你们慢慢用吧?
记得、以后不容易明白的东西,别发!省我伤脑筋!

我也是看到那些乱七八糟的语句就头大了
我们用户只希望能用就可以了
具体什么原理我不需知道
作者: hksw2    时间: 2006-10-17 02:27

支持
不知道测试版如何
作者: feiying88    时间: 2006-10-17 07:15

希望能加入对mofile的支持。谢谢。
http://tv.mofile.com/cn/index/main.do
作者: jogocun    时间: 2006-10-17 08:48

可以了,视频是flv格式的~

[ 本帖最后由 jogocun 于 2006-10-17 08:50 编辑 ]
作者: elion    时间: 2006-10-17 12:35

原帖由 wsdgs 于 2006-10-15 23:27 发表



我也遇到这个问题

说明还没完全载入。你可以用下载软件下啊。
如果一定要试试ALT+左键的感觉,就等下放完了再ALT+左键一定可以。
作者: peter1123    时间: 2006-10-17 12:47


出插件保存视频了

不错不错
前2天我还在IE缓存里翻那网站的视频呢
作者: 星空    时间: 2006-10-17 22:07

下个试试
作者: RobinDX    时间: 2006-10-19 16:56

希望增加对www.tudou.com的支持
作者: luoice    时间: 2006-10-19 19:00

有更新我就再来支持一次!!
作者: chenglj    时间: 2006-10-20 13:52

下一个试试
作者: xuyousen    时间: 2006-10-20 16:16

建议增加土豆网(有很多精品视频)的视频下载。
http://www.tudou.com
作者: needed    时间: 2006-10-20 19:50

10.20 增加对www.tudou.com的支持
由于脚本对POST方法不支持,网速慢的时候,这个脚本可能会导致假死....
使用方法:把以下代码贴到脚本的最后面,要另起一行
  1. function GetBufferInPost( bufferUrl,data)
  2. {
  3.         xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
  4.         xmlHttp.open("POST",bufferUrl,false);
  5.         xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
  6.         xmlHttp.send(data);
  7.         return xmlHttp.responseText;
  8. }

  9. function tudouMedia(){
  10.     strUrl=twSaveObjUrl%%s;        
  11.     if(-1!=strUrl.search(/http:\/\/www\.tudou\.com\/.*/)){
  12.         var srcObj = document.getElementById(twObjectUID%%s)
  13.         strRet = srcObj.childNodes(2).value
  14.         strBuffer = GetBufferInPost("http://www.tudou.com/player/info.php",strRet);
  15.         strBuffer = strBuffer.replace( /.*flv\|(http:.*\.flv).*$/,"$1")
  16.         external.twMediaPath(window,strBuffer )
  17.                                                         }
  18. }
  19. tudouMedia();
复制代码

[ 本帖最后由 needed 于 2006-10-20 19:52 编辑 ]
作者: colors    时间: 2006-10-21 19:40

这是我用过的最好的插件之一。
作者: jy416    时间: 2006-10-22 23:39

我每次看SINA的视频都说下载编码器错误,哪位大大知道是什么问题?不吝赐教
作者: 吾飞扬    时间: 2006-10-24 12:31

哈哈    这个功能不错    支持
作者: karnolde    时间: 2006-10-25 19:14

好像不错啊,谢咯
下来看看……
作者: kfq8400    时间: 2006-10-27 09:53

为什么我不能打开六间房的视频啊,用IE7.0就行..
作者: RobinDX    时间: 2006-10-27 11:14

貌似56.com的视频还是无法保存
只下载来一个播放器的Flash框
还是要去临时文件里找
56的flv和其他网站的不一样啊,用暴风放不了,非的用他们的Flvplayer才行

[ 本帖最后由 RobinDX 于 2006-10-27 12:18 编辑 ]
作者: needed    时间: 2006-10-27 14:30     标题: 56在21号更新了播放器。

更新在23层了。。

[ 本帖最后由 needed 于 2006-10-28 15:37 编辑 ]
作者: sm114    时间: 2006-10-31 01:06

这个不错,可以使用
作者: 小虚    时间: 2006-11-2 00:00

http://www.youtube.com/
http://tv.mofile.com

希望增加这两个网站的支持。。
作者: needed    时间: 2006-11-2 01:02

11月2号增加对mofile的支持。其实我也想简单点。但  d**n it !!
规矩照旧。记事本打开MediaSaver.js ,在最后一行粘贴上以下代码

  1. /*   code bY kkf @ 2006 .11.2
  2.        kkf009@gmail.com   
  3. */
  4. function mofileMedia()
  5. {        
  6.     strUrl=twSaveObjUrl%%s;
  7.     if(-1!=strUrl.search(/http:\/\/tv\.mofile\.com\/.*\.swf/)){
  8.         strUrl=document.getElementById(twObjectUID%%s).innerHTML.toString();
  9.         strID = strUrl.replace(/([^>]|>)*?v=(\w{8}).*/,"$2");
  10.         strTempUrl = "http://tv.mofile.com/cn/videoplay/play.do?v="+strID;

  11.         strBuffer = external.twQueryHistory( strTempUrl + "*", true );
  12.         if( strBuffer.length <= 0 )
  13.                 {
  14.                         strBuffer = GetBufferFromUrl( strTempUrl );
  15.                 }
  16.         if( strBuffer.length > 0 )
  17.                 {           //偶想过用DOM 读XML.无奈自己笨,不会.哭...
  18.                         xmlDomain=strBuffer.replace(/([^>]|>)*?<domain>(.*)<\/domain>([^>]|>)*/,"$2");
  19.                         xmlPath=strBuffer.replace(/([^>]|>)*?<path>(.*)<\/path>([^>]|>)*/,"$2");
  20.                         xmlDowndomainname=strBuffer.replace(/([^>]|>)*?<downdomainname>(.*)<\/downdomainname>([^>]|>)*/,"$2");
  21.                         xmlMd5 =strBuffer.replace(/([^>]|>)*?<md5>(.*)<\/md5>([^>]|>)*/,"$2");
  22.                         xmlAuditTime =strBuffer.replace(/([^>]|>)*?<auditTime>(.*)<\/auditTime>([^>]|>)*/,"$2");

  23.                 function translate(input) {
  24.                             var str = "r6JNhkeIdl0vMmun829C3sg5qXacwGH1bV4xPypfz7SFYTtEWADiORZLQUBKjo";
  25.                             var rnd = Math.round(Math.random() * 40) + 10;
  26.                         var tmp1 = new Array (input.length);
  27.                           var i = 0;
  28.                          while (i < 61) {
  29.                                 var strTmp = str.indexOf(input.substr(i,1));
  30.                                    strTmp = strTmp + rnd;
  31.                                     if (strTmp > (str.length - 1)) {
  32.                                         strTmp = strTmp - str.length;
  33.                                                             }
  34.                                         tmp1 = str.charAt(strTmp);
  35.                                         i++;
  36.                                                     }
  37.                            return (rnd.toString() + tmp1.join(""));
  38.                                         }
  39.    
  40.     strTemp  = "http:\/\/"+xmlDomain+"?p="+translate(xmlPath+xmlMd5+xmlAuditTime)+"&down="+xmlDowndomainname;
  41.                         external.twMediaPath( window, strTemp );
  42.                 }

  43.        }
  44. }
  45. mofileMedia();
复制代码

[ 本帖最后由 needed 于 2006-11-2 01:10 编辑 ]
作者: needed    时间: 2006-11-2 12:09     标题: 补充2点


1。每次下载地址都不一样,但连接的是同一个文件。
2。地址或许只能你自己下载,因为每个人的IP不一样。

作者: tysgjney    时间: 2006-11-3 22:11

保存的时候看不到进度,想取消也没办法,有办法改进吗?
作者: luoice    时间: 2006-11-6 17:34

强贴,再次顶起!!
作者: being0    时间: 2006-11-7 17:24

什么时候能支持www.uume.com
作者: needed    时间: 2006-11-7 19:39

11月7日增加 对 www.uume.com的支持

11.8 日发现 vlog.mop.com 跟 uume的完全一样..就整合到一块里面了
增加对       www.tvix.cn
        www.ku6.com
        dv.ouou.com
        www.happy3G.com
        www.mocasting.com 的支持 .

  1. /*   code bY kkf @ 2006 .11.8
  2.        kkf009@gmail.com   
  3. */
  4. function happy3GMedia()
  5. {
  6.   strUrl=twSaveObjUrl%%s;
  7.   if(-1!=strUrl.search(/http:\/\/www\.happy3g\.com\/.*\.swf/i)){
  8.         strUrl=document.getElementById(twObjectUID%%s).innerHTML;
  9.         
  10.         strID = strUrl.replace(/([^>]|>)*?id=(\d*).*/,"$2");
  11.         strTemp = "http:\/\/61.137.90.102\/FLV\/streams\/_definst_\/"+strID+".flv"
  12.          external.twMediaPath( window, strTemp );
  13.         }
  14. }
  15. function uumemopMedia()
  16. {        
  17.         strUrl=twSaveObjUrl%%s;
  18.         if(-1!=strUrl.search(/http:\/\/(?:www\.uume|vlog\.mop)\.com\/.*\.swf/i)){
  19.                 if (window.fileUrls && window.fileZone){
  20.                 strUrl ="http:\/\/0.videosource.cacheus.com\/uume0\/"+window.fileZone+"\/"+window.fileUrls
  21.                 external.twMediaPath( window, strUrl );
  22.                 }
  23.         }
  24. }

  25. function tvixMedia(){
  26.         strUrl=twSaveObjUrl%%s;
  27.         if(-1!=strUrl.search(/http:\/\/www\.tvix\.cn\/.*\.swf\?.*/i)){
  28.                 strID = strUrl.replace(/.*\?(.*)/,"$1")
  29.                 strBuffer = GetBufferInPost("http://www.tvix.cn/find_video.php",strID)
  30.                 strUrl = strBuffer.replace("&filename=","")
  31.                 external.twMediaPath( window, strUrl );
  32.                 }
  33. }

  34. function ku6Media(){
  35.         strUrl=twSaveObjUrl%%s;
  36.         if(-1!=strUrl.search(/http:\/\/blog\.ku6\.com\/.*swf\?.*/i)){
  37.                 strID = strUrl.replace(/.*\?id=(.*)/,"$1");
  38.                 strTempUrl = "http://www.ku6.com/video_cache/" + strID.substr(0,3)+"\/"+strID+ "\.xml";
  39.                 strBuffer = external.twQueryHistory( strTempUrl, true );
  40.                 if( strBuffer.length <= 0 )
  41.                 {
  42.                         strBuffer = GetBufferFromUrl( strTempUrl );
  43.                 }
  44.                 if( strBuffer.length > 0 )
  45.                 {
  46.                         strRet = strBuffer.replace( /\s/g,"").replace(/.*<url>(.*)<\/url>.*/,"$1");
  47.                         external.twMediaPath( window, strRet );
  48.                 }
  49.         }
  50. }

  51. function ououMedia(){
  52.         strUrl=twSaveObjUrl%%s;
  53.         if(-1!=strUrl.search(/http:\/\/dv\.ouou\.com\/.*swf.*/i)){
  54.                 strID = /id=/.test(strUrl)? strUrl.replace(/.*\?id=(.*)/,"$1") : document.location.href.replace(/.*v_(.*)\.html/,"$1");
  55.                 strTempUrl = "http://stat.ouou.com/playservlet?id="+strID
  56.                 strBuffer = external.twQueryHistory( strTempUrl, true );
  57.                 if( strBuffer.length <= 0 )
  58.                 {
  59.                         strBuffer = GetBufferFromUrl( strTempUrl );
  60.                 }
  61.                 if( strBuffer.length > 0 )
  62.                 {
  63.                         strRet = strBuffer.replace( /\s/g,"").replace(/.*<file>(.*)<\/file>.*/,"$1");
  64.                         external.twMediaPath( window, strRet );
  65.                 }
  66.         }
  67. }

  68. function mocastingMedia(){
  69.    strUrl=twSaveObjUrl%%s;
  70.         if(-1!=strUrl.search(/http:\/\/www\.mocasting\.com\/.*\.swf\?file.*/i)){
  71.                 strUrl = strUrl.replace(/.*file=(.*)&.*/,"$1")
  72.                 external.twMediaPath( window, strUrl );
  73.                 }                  
  74. }
  75. happy3GMedia();
  76. uumemopMedia();
  77. tvixMedia();
  78. ku6Media();
  79. ououMedia();
  80. mocastingMedia();
复制代码

[ 本帖最后由 needed 于 2006-11-8 13:13 编辑 ]
作者: needed    时间: 2006-11-8 10:18

我以茶杯的人格起誓,我不是灌水的.我把内容都集合到 #60了...

[ 本帖最后由 needed 于 2006-11-8 12:44 编辑 ]
作者: needed    时间: 2006-11-8 10:44

内容集合到 #60了...

[ 本帖最后由 needed 于 2006-11-8 12:44 编辑 ]
作者: needed    时间: 2006-11-8 11:12

内容集合到 #60了...

[ 本帖最后由 needed 于 2006-11-8 12:45 编辑 ]
作者: 我爱BT    时间: 2006-11-9 07:36

确实是好东西啊,非常支持啊,不过那个什么flv文件怎么播放啊。
作者: naivepeople    时间: 2006-11-9 08:10

原帖由 我爱BT 于 2006-11-9 07:36 发表
确实是好东西啊,非常支持啊,不过那个什么flv文件怎么播放啊。


KMP就可以播放,其它的没试过......
作者: ynkm169    时间: 2006-11-10 22:33

这个功能不错,,,
作者: extrame    时间: 2006-11-11 13:41

谢谢啦~~
作者: 雕刻时光    时间: 2006-11-13 08:49

希望下个tw版本加入加入这个功能好了。
作者: mutalisker    时间: 2006-11-13 14:04

tw每次发新版都会整理最新的版本的mediasaver.js整合到程序里
作者: 浆糊    时间: 2006-11-16 21:16

谢谢了!!




欢迎光临 世界之窗论坛 (http://bbs.theworld.cn/) Powered by Discuz! 7.2