[老文章搬家] 关于屏蔽优酷视频广告的一个方法

11年的老文章,稳重那个插件让我爽了很久,不过后来就买会员了。代码我已经遗失了,不过无所谓,思路还是明确的,我后来在 Chrome 上测试过,一样能用。

==== 正文 ====

需求:优酷最近搞了一个广告防屏蔽,导致修改host的方法不能用了。我们需要一个新方法来绕过这个防屏蔽机制。

基本思想:新版的优酷flv player下载不到广告会罢工30秒,既然不能屏蔽广告,那我们就替换广告文件,用一个假广告文件让flv player播放。

实现:
首先抓一下包,或者用Fiddle2拦截请求,会发现优酷的广告是个flv文件,而土豆和新浪的广告是f4v文件或者swf文件(不常用的就先不关心了)。我们找到广告url的特点,就可以实现替换。
具体替换方式,有两种选择(驱动之类的bt方法我就不说了):

  • 第一种是写一个伪代理服务注册进系统,同时用PAC脚本根据url自动切换代理,发现是广告url就切换到我们写的伪代理,而伪代理的工作就是提供假广告文件。
  • 第二种方式是利用浏览器插件拦截和替换请求。这个要针对不同浏览器开发,比如chrome扩展是基于js的,其拦截请求的接口叫

    experimental.webRequest,是个实验API,google不建议使用;同时chrome和firefox都支持NPAPI,而IE的插件机制是基于COM的。网上有个叫FireBreath的开源项目,是一个跨浏览器和操作系统的浏览器插件框架,是个好东西,但是我之前还没有用过。

我们先针对以后总浏览器实验一下功能能不能实现,笔者针对的是IE。
IE的插件是个臭名昭著的东西,但是对开发者而言还是比较方便的,因为它比较“自由”,可以无所顾忌的使用C++干任何事儿。IE插件有三种:

  • 第一种是古老的ActiveX,这个大家肯定都很熟悉。PS:讲个笑话,我之前公司做过一个项目,要求提供CS和BS客户端。我们的CS客户端是现成的,而BS客户端就是CS客户端封装进一个巨大的ActiveX放进网页里,而且CS客户端是Qt4开发的,你可以想象ActiveX有多大。。。
  • 第二种叫BHO(Browser Helper Object),同样古老的技术,很多流氓插件和恶心工具栏就是这个东西,但是google的chrome frame也是基于这个东西,可见技术如刀,区别在人。BHO可以让你把dll嵌入IE进程,拦截一些IE操作,比如前进后退,但是太底层的不行,比如抓包肯定不行。
  • 第三种比较特殊,叫Asynchronous Pluggable Protocols,这个东西也很常用,它可以让你拦截某个协议下的请求,比如http://,迅雷拦截thrunder://就是用的这个技术。Asynchronous Pluggable Protocols可以永久拦截,需要写注册表,也可以进程内临时拦截,调用一个API就可以,但是只针对本进程有效。很多电子书软件和使用WebBrowser控件制作华丽GUI的软件使用这种临时拦截。

我用的方法就是写一个BHO嵌入IE进程,拦截IE的Navigate事件,如果是感兴趣的视频网站就开启Asynchronous Pluggable Protocols拦截所有http请求,找到广告文件的请求,用假广告文件替换。假广告文件是个很短的flv或者swf,这样就绕过了防屏蔽机制。

结果:
目前只是实现了基本功能,可以拦截优酷,土豆,新浪和奇艺的视频广告(其他的我不怎么用),并且暂时不针对外链的视频。暂时只支持IE,下一步用FireBreath做一个通用版。

截图(假广告时长两秒):

存在的问题:
优酷的播放器可以正常播放假广告,但是土豆和新浪的都不可以,接受到文件之后他们会播放失败,之后开始正常播放视频。我专门下载了他们自己的广告文件作为假广告,还是不行。可能他们使用了某种签名机制,这个有待研究,好在他们没有像优酷一样防屏蔽,我暂时直接拦截掉了他们的广告,现在可以正常使用。

下载:摸我

时间: 2024-08-11 11:04:46

[老文章搬家] 关于屏蔽优酷视频广告的一个方法的相关文章

火狐浏览器屏蔽优酷广告

*/--> pre.src {background-color: Black; color: White;} pre.src {background-color: Black; color: White;} 火狐浏览器屏蔽优酷广告 安装 Adblock plus 右键视频 global setting (全局设置) delete all (全部删除)

关于ubuntu14.04LTS 64位 播放优酷视频

起因:chrome无法播放优酷视频,然后换firefox发现居然没有装flash 插件. 解释:关于chrome在网上看到了不少说法,说chrome新版本的不支持adobe flash之类的,但是这些都不是我们该担心的,在新版的chrome(ubuntu下的)都已经包含了flash相关的插件,如图可以看到(最后一个插件) 但是今天我的电脑就是脑抽,本来还能用的,看着看着就不行了,鼓捣半天,又突然莫名奇妙的好了,这个不是重点. FireFox安装adobeflash 插件: 其实在adobe下的压

使用Vitamio打造自己的Android万能播放器(5)——在线播放(播放优酷视频)

前言 为了保证每周一篇的进度,又由于Vitamio新版本没有发布, 决定推迟本地播放的一些功能(截图.视频时间.尺寸等),跳过直接写在线播放部分的章节.从Vitamio的介绍可以看得出,其支持http.m3u8等多种网络协议,本章将编写播放优酷视频的例子. 声明 欢迎转载,但请保留文章原始出处:) 博客园:http://www.cnblogs.com 农民伯伯: http://over140.cnblogs.com 系列 1.使用Vitamio打造自己的Android万能播放器(1)——准备 2

php 获取优酷视频的真实地址(2014.6月新算法)

上个礼拜发现优酷改版了,各种过滤优酷广告的插件都失效了,于是我百度了一下(谷歌也不能用了)发现优酷改算法了,在ckplayer论坛发现有人在6月25号发了个php 的优酷代理文件,下载下来发现,能用但只能获取mp4格式的视频地址,而且php还加密了,没办法查看源码,后来通过微盾解密发现其中的源码,结合以前自己写的一个优酷视频解析类.... 感谢    3shi大大 具体分析请见 3shi大大的文章  优酷视频真实地址解析  (当然现在不能用了,主要看分析) ps.  新算法是从别人那里解密出来的

HTML5 CSS3 诱人的实例 :模仿优酷视频截图功能

一般的视频网站对于用户上传的视频,在用户上传完成后,可以对播放的视频进行截图,然后作为视频的展示图.项目中也可以引入这样的功能给用户一种不错的体验,而不是让用户额外上传一张展示图. 效果图: 看起来还是很不错,下面我给大家分析下,极其核心代码很简单: _canvas = document.createElement("canvas"); _ctx = _canvas.getContext("2d"); _ctx.fillStyle = '#ffffff'; _ctx

关于优酷视频上传失败或暂停之后一直处于上传中或者处理中删除不掉的解决方法

我试了优酷上传的这一块做的很不好,不论是网页还是客户端都有问题,有时候经常出现优酷视频上传失败或暂停之后一直处于上传中或者处理中删除不掉的情况,因为那个视频前面的复选框是disabled的.解决方法就是在网页中右击,然后点击查看元素(我用的是火狐浏览器不同的浏览器有可能是不一样的,有的显示的是"审查元素")之后就把相应的灰色复选框的那个disabled改成abled,然后就可以直接删除了,删除之后刷新就可以看见成功了. (这个想法也来自于之前我同学陈鹏上传不了教务管理系统照片的情况)

屏蔽优酷广告的方法。

屏蔽优酷广告的方法.1. 首先,打开计算机资源管理器.方法是在桌面上直接双击计算机快捷方式,或者在开始菜单中点击计算机按钮,打开资源管理器.2.在资源管理器的地址栏中,输入下面这样一个路径信息.C:\WINDOWS\system32\drivers\etc 你可以在这里复制这个路径,然后粘贴到资源管理器的地址栏里,以防出错.3.在这个文件夹里面,会有一个hosts文件.如果你双击打开这个文件,会出现让你选择打开方式,你选择用记事本打开.4.如果你以前曾经把记事本功能添加进了右键,那么你可以直接在

优酷视频不能在微信浏览器不能播放的解决办法

最近写了一个页面,微信html5 分享页面,里面有四个优酷视频,同时在一个页面上. 假如直接用优酷官方的嵌入方法,会有不同手机加载不了的情况. 比如说魅族3播放不了,Nexus 5播放可以,iPhone 4 播放不了,iPhone 4s 又可以播放. 经历了无数失败之后,找到了终极的解决方法:直接用优酷隐藏的MP4 链接. 用火狐浏览器点击优酷视频,抓取隐藏的MP4格式链接. 然后直接在页面上写上html 5的video标签,完美解决!

直接引用优酷视频并去除广告的办法

在站外引用优酷视频时,点"全屏"会跳转到优酷的网站,而且播放时,放鼠标在视频的画面上,会显示广告,播放完还会显示相关信息等问题,特别是像我们在自己的博客.企业站.网店.B2C店铺里面放视频的时候,如果视频开始给你来个30妙的广告,真不知到要损失多少用户. 站外引用优酷视频全屏以及去掉广告办法如下: 优酷视频去广告代码:<embed src=" http://static.youku.com/v1.0.0149/v/swf/qplayer_rtmp.swf?VideoID