其他分享
首页 > 其他分享> > 关于爱奇艺广告被拦截无法正常播放的解决方案

关于爱奇艺广告被拦截无法正常播放的解决方案

作者:互联网

项目场景:

新版edge浏览器

广告插件:广告终结者、adguard、ghostery

问题描述:

在这里插入图片描述

原因分析:

adguard或adblock的拦截机制问题,网站能识别广告被拦截
爱奇艺识别机制:
作者:欲三更
链接:https://www.zhihu.com/question/20648298/answer/15737323
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

我做过一个测试[1],优酷播放器做的,只是判断一下广告文件是否被正常加载,如果没有正常加载,就显示黑屏。但是,优酷无法通过替换的方法加载广告。这是 adblock 原理决定的。adblock 的阻断方式,是判断浏览器试图下载的文件地址是否与某一个字符串模式匹配,如果匹配,则阻断下载。那么播放器判断出下载失败之后,应该怎么做?如果换一个地址重新下载,那么这个新地址是否匹配 adblock 预设的模式?如果不匹配就可以下载。但是如果或不匹配,adblock 的模式库维护者,就会在模式库里添加一个新的规则,使得新地址匹配。这是一个死结——你的广告地址不可能毫无规律吧?就算毫无规律,对方还可以使用穷举法。另外,分享一个暂时可行的彻底欺骗播放器的方法。既然下载失败就会黑屏,那么我们就让他下载“成功”,只不过我们在底层把广告地址替换掉,换成我们自己提供的地址,在这个地址下我们放一个时长1秒钟的假广告文件。这样播放器一秒钟之后就会老老实实的播视频了。相关效果如下(右上角的广告剩余xx秒实测是没用的,一秒钟假广告播完了就结束):
在这里插入图片描述
作者:知乎用户
链接:https://www.zhihu.com/question/20648298/answer/15737358
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

目前优酷的anti-adblock的方式是通过播放器(一个编译好的flash程序)检测自身是否播放过广告,如果没有,则显示黑屏。而Adblock plus说到底是一个依赖浏览器底层的javascript程序(以浏览器扩展的形式),在Firefox中它的backend是gecko的Content Policy,在chrome中则主要是Extension.Webrequest API。这两种方法都不能对flash,或是flash player本身进行操作,它们只能决定浏览器是否能访问某些(按照域名规则)对象。在firefox中,对象的类型是可以比chrome有更细的分类,不过这是细枝末节的事情,具体可以到http://adblockplus.org查看。总之,adblock plus只是一个按照网址内容、对象类型进行比对,以告诉浏览器哪些内容(不)可以访问的审查工具,它既不能阻止flash播放器内部的“不播放广告就黑屏”的逻辑,也不能伪造一个“广告”送给播放器。通常见到的广告过滤方法和adblock plus一样,都是“URL匹配—阻止访问”的于是youku的黑屏会出现,同时广告本身依然被屏蔽。此外,服务器端探测出浏览器安装了哪些扩展可能是可行的http://koto.github.com/blog-kotowicz-net-examples/chrome-addons/enumerate.html------------------------目前位置能有效解除youku广告的手段可能仅有鲁小夫的OpenGG Clean Playerhttp://opengg.me/这个项目开源于 https://github.com/OpenGG/OpenGG.Clean.Player-client原理是反编译youku的播放器swf程序,让相关播放广告,显示黑屏,收集用户信息的逻辑失效。针对OpenGG Clean Player,youku想过很多办法来反制:1,封锁OpenGG的服务器IP,鲁小夫的应对是换服务器2,在manifest文件中指定crossdomain.xml,让flash play只能运行来源于youku自己域名的swf程序,鲁小夫则以建立反向代理"来绕过Flash 的跨域限制","用MongoDB 实现优酷API 缓存"以提高并发性能。----这么一来,优酷封ip可能也变成了伪命题。3,youku在不停地更新播放器的代码。到目前为止,这个工程需要一个在线的服务端支持,以存放修改过的播放器,并承担反向代理职能这里有一个利用了OpenGG Clean Player代码,将服务端迁移到本地(就是说在本地127.0.0.1运行一个反向代理)的实现https://code.google.com/p/haoutil/OpenGG项目的优势:1,swf可以反编译,而youku攻城师看样子不会比鲁小夫厉害很多,或者,优酷无法承担更严格anti-adblock的成本。所以瘫痪黑屏逻辑只是(充分短的)时间问题2,鲁小夫自己的服务器和代码不受youku控制3,项目已经开源,方法和代码都已经传播开,且服务端可在本地建立,就像windows/office的KMS(盗版)激活那样。主席说的”星星之火可以燎原“大概就是这种情况4,我国没有DMCA隐患:大部分的流量毕竟是要经过鲁小夫自己的服务器,而流量是有限的,鲁小夫声称每月有大约2TB;一个播放器大概有150~300k,因为浏览器缓存的关系可以有限多次使用。如果这个服务器被掐掉(这么做至少比某些有DMCA的地方更困难),就需要第二个鲁小夫扛上。它修改了youku的私有代码(仅仅这么做是受到法律保护的,法律中有为了教学科研目的豁免条款)并予以发布(在我国,和教学传播相关的某些使用,传播也受到豁免),这是一个灰色地带。按照现在的状况,youku需要一些新的手段才能有效抑制OpenGG项目对其广告收益带来的负面影响。--------------------------------------------------------------一个月2TB级别的流量,意味着每个月有百万数量级次的播放器下载量,加上可重复利用的缓存而youku广告的CPM报价可能是这样的http://wenku.baidu.com/view/7f18d2d3b9f3f90f76c61b1b.html另一个信息,优酷提供一个每月10元以去除视频中广告的付费选项这些信息可用于不可靠地估计优酷少收了多少广告费--------------------------------------------------------------再展开一些OpenGG项目之所以能变成现实的原因:说到底,”在线“广告这个东西毕竟是由客户端下载到本地后才被展示的。最不济优酷只能做到拒绝为使用者提供服务;对应的,它同样做不到无条件强迫使用者下载广告。而个人电脑的操作系统,现代浏览器都提供了充分的Debug,审查用接口。因此,使用者总是能更优先的控制自己的设备/浏览器。这就使得广告的屏蔽与反屏蔽的博弈中,使用者总是有更多的优势。项目把理论上的优势变成现实,这样,在考虑优酷给出的offer以前,有一个可行的备用方案,可以掂量掂量哪个更好。单方面屏蔽广告是可行且正当的,但不一定是最好的,何况没有广告的社会本身就是伪命题;它更为重要的职能是成为使用者手中的大棒。使用者手里还有两个(目前而言相对不那么重要的)大棒:内容提供商互相竞争;内容提供商需要用户上传UGC(用户创造的内容)内容是供应商的大棒:内容是提供商提供的,它可以拒绝服务,可以审查用户(如niconico仅对付费用户提供高清视频播放/上传服务);提供商在各种方面更团结,有更多资源。现在双方都有了大棒,就可以坐下来好好谈,西部片里你死我活的对枪场景不会出现。如果不是这样的话,使用者见到黑屏的时候,可能会感到焦虑,会更容易接受youku单方面提出的条款而使得利益受到损害;youku通过当面宣称“我知道你在干什么”从效果上类似于那些意在消除(淘宝)差评的骚扰电话,我认为这是一种FUD。目前最常见的FUD:微软想尽一切办法宣传“使用盗版windows = 中病毒,微软则是唯一的救世主”FUD(Fear Uncertanty Doubt)的释义:

解决方案:

逐个排查哪个广告插件被识别了,我这里只停用了adguard就能正常跳广告了
在这里插入图片描述

万恶的视频三巨头,嫖完免费视频还是看盗版吧

标签:播放器,浏览器,爱奇艺,解决方案,youku,广告,播放,优酷,黑屏
来源: https://blog.csdn.net/qq_43571807/article/details/114171778