您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
通过替换swf播放器的方式来解决优酷的黑屏广告
当前为
// ==UserScript== // @name OpenGG.Clean.Player(Bae // @author Anonymous // @description 通过替换swf播放器的方式来解决优酷的黑屏广告 // @version 1.368.2 // @namespace http://userscripts.org/users/Kawaiiushio // @icon http://extensiondl.maxthon.cn/skinpack/17276781/1366787326/icons/icon_48.png // @include http://*/* // @include https://*/* // @run-at document-start // ==/UserScript== /* * === 说明 === * 看到 Greasy Fork镜像 上没有这个脚本,于是从 userscripts.org 上搬运过来 * 我只是搬运,别打我 * 本脚本参考http://bbs.kafan.cn/thread-1514537-1-1.html 感谢卡饭大神 * Chrome用户也可以使用Adkill and Media download这个扩展 * 此脚本设计修改人员OpenGG Harv xplsy 15536900 yndoc KawaiiUshio 5B4B铅笔 * Bilibili黑科技由FireAway提供 参考:http://userscripts.org/scripts/show/165424 * Opera兼容部分由Gerald修改 * In God,We Trust. * THX. */ /* * Love Jiani */ (function() { Function.prototype.bind = function() { var fn = this, args = Array.prototype.slice.call(arguments), obj = args.shift(); return function() { return fn.apply(obj, args.concat(Array.prototype.slice.call(arguments))); }; }; function YoukuAntiAds() {} YoukuAntiAds.prototype = { _players: null, _rules: null, _done: null, get players() { if(!this._players) { this._players = { 'youku_loader': 'https://git.oschina.net/kawaiiushio/antiad/raw/master/loader.swf', 'youku_player': 'https://git.oschina.net/kawaiiushio/antiad/raw/master/player.swf', 'ku6': 'https://git.oschina.net/kawaiiushio/antiad/raw/master/ku6.swf', 'ku6_out': 'https://git.oschina.net/kawaiiushio/antiad/raw/master/ku6_out.swf', 'iqiyi': 'https://git.oschina.net/kawaiiushio/antiad/raw/master/iqiyi.swf', 'iqiyi5': 'https://git.oschina.net/kawaiiushio/antiad/raw/master/iqiyi5.swf', 'iqiyi_out': 'https://git.oschina.net/kawaiiushio/antiad/raw/master/iqiyi_out.swf', 'tudou': 'https://git.oschina.net/kawaiiushio/antiad/raw/master/tudou.swf', 'tudou_olc': 'https://git.oschina.net/kawaiiushio/antiad/raw/master/olc_8.swf', 'tudou_sp': 'https://git.oschina.net/kawaiiushio/antiad/raw/master/sp.swf', 'letv': 'https://git.oschina.net/kawaiiushio/antiad/raw/master/letv.swf' }; } return this._players; }, get rules() { if(!this._rules) { this._rules = { 'youku_loader': { 'find': /^http:\/\/static\.youku\.com(\/v[\d\.]+)?\/v\/swf\/loader\.swf/i, 'replace': this.players['youku_loader'] }, 'youku_player': { 'find': /^http:\/\/static\.youku\.com(\/v[\d\.]+)?\/v\/swf\/q?player[^\.]*\.swf(\?.*)?/i, 'replace': this.players['youku_loader'] + '$2' }, 'youku_out': { 'find': /^http:\/\/player\.youku\.com\/player\.php\/.*sid\/([\w=]+).*(\/v)?\.swf.*/i, 'replace': this.players['youku_loader'] + '?showAd=0&VideoIDS=$1' }, 'ku6': { 'find': /^http:\/\/player\.ku6cdn\.com\/default\/.*\/\d+\/player\.swf/i, 'replace': this.players['ku6'] }, 'ku6_out': { 'find': /^http:\/\/player\.ku6\.com\/(inside|refer)\/([^\/]+)\/v\.swf.*/i, 'replace': this.players['ku6_out'] + '?vid=$2' }, 'iqiyi': { 'find': /^http:\/\/www\.iqiyi\.com\/player\/\d+\/player\.swf/i, 'replace': this.players['iqiyi'] }, 'iqiyi_out': { 'find': /^http:\/\/(player|dispatcher)\.video\.i?qiyi\.com\/(.*[\?&]vid=)?([^\/&]+).*/i, 'replace': this.players['iqiyi_out'] + '?vid=$3' }, 'tudou': { 'find': /^http:\/\/js\.tudouui\.com\/.*player[^\.]*\.swf/i, 'replace': this.players['tudou'] }, 'tudou_out': { 'find': /^http:\/\/www\.tudou\.com\/.*(\/v\.swf)?/i, 'replace': this.players['tudou_olc'] + '?tvcCode=-1&swfPath=' + this.players['tudou_sp'] }, 'letv': { 'find': /http:\/\/.*letv[\w]*\.com\/(.*\/(?!live)((v2)?[\w]{4}|swf)player[^\.]*|[\w]*cloud)\.swf/i, 'replace': this.players['letv'] }, 'letv_out': { 'find': /http:\/\/.*letv\.com\/player\/swfplayer\.swf(\?.*)/i, 'replace': this.players['letv'] + '$1' } } } return this._rules; }, get done() { if(!this._done) { this._done = new Array(); } return this._done; }, initPreHandlers: function() { this.rules['iqiyi']['preHandle'] = function(elem, find, replace, player) { if(document.querySelector('span[data-flashplayerparam-flashurl]')) { replace = this.players['iqiyi5']; } this.reallyReplace.bind(this, elem, find, replace)(); } this.rules['iqiyi_out']['preHandle'] = function(elem, find, replace, player) { var match = player.match(/(autoplay)=[^&]+/ig); if(match) { replace += '&' + match.join('&'); } this.reallyReplace.bind(this, elem, find, replace)(); } this.rules['tudou_out']['preHandle'] = function(elem, find, replace, player) { var fn = this; var isFx = /firefox/i.test(navigator.userAgent); GM_xmlhttpRequest({ method: isFx ? 'HEAD' : 'GET', url: isFx ? player : 'https://query.yahooapis.com/v1/public/yql?format=json&q=' + encodeURIComponent('use"https://haoutil.googlecode.com/svn/trunk/firefox/tudou_redirect.yql.xml" as tudou; select * from tudou where url="' + player + '" and referer="' + window.location.href + '"'), onload: function(response) { var finalUrl = (isFx ? response.finalUrl : response.responseText); var match = finalUrl.match(/(iid|youkuid|resourceid|autoplay|snap_pic)=[^&]+/ig); if(match && !/error/i.test(finalUrl)) { replace += '&' + match.join('&'); fn.reallyReplace.bind(fn, elem, find, replace)(); } } }); } }, addAnimations: function() { var style = document.createElement('style'); style.type = 'text/css'; style.innerHTML = 'object,embed{\ -webkit-animation-duration:.001s;-webkit-animation-name:playerInserted;\ -ms-animation-duration:.001s;-ms-animation-name:playerInserted;\ -o-animation-duration:.001s;-o-animation-name:playerInserted;\ animation-duration:.001s;animation-name:playerInserted;}\ @-webkit-keyframes playerInserted{from{opacity:0.99;}to{opacity:1;}}\ @-ms-keyframes playerInserted{from{opacity:0.99;}to{opacity:1;}}\ @-o-keyframes playerInserted{from{opacity:0.99;}to{opacity:1;}}\ @keyframes playerInserted{from{opacity:0.99;}to{opacity:1;}}'; document.getElementsByTagName('head')[0].appendChild(style); }, animationsHandler: function(e) { if(e.animationName === 'playerInserted') { this.replace(e.target); } }, replace: function(elem) { if(this.done.indexOf(elem) != -1) return; this.done.push(elem); var player = elem.data || elem.src; if(!player) return; var i, find, replace, isReplacing = false; for(i in this.rules) { find = this.rules[i]['find']; if(find.test(player)) { replace = this.rules[i]['replace']; if('function' === typeof this.rules[i]['preHandle']) { isReplacing = true; this.rules[i]['preHandle'].bind(this, elem, find, replace, player)(); } if(!isReplacing) { this.reallyReplace.bind(this, elem, find, replace)(); } break; } } }, reallyReplace: function(elem, find, replace) { elem.data && (elem.data = elem.data.replace(find, replace)) || elem.src && ((elem.src = elem.src.replace(find, replace)) && (elem.style.display = 'block')); this.reloadPlugin(elem); }, reloadPlugin: function(elem) { var nextSibling = elem.nextSibling; var parentNode = elem.parentNode; parentNode.removeChild(elem); var newElem = elem.cloneNode(true); this.done.push(newElem); if(nextSibling) { parentNode.insertBefore(newElem, nextSibling); } else { parentNode.appendChild(newElem); } }, init: function() { this.initPreHandlers(); var handler = this.animationsHandler.bind(this); document.body.addEventListener('webkitAnimationStart', handler, false); document.body.addEventListener('msAnimationStart', handler, false); document.body.addEventListener('oAnimationStart', handler, false); document.body.addEventListener('animationstart', handler, false); this.addAnimations(); } }; new YoukuAntiAds().init(); })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址