您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Greasy Fork is available in English.
优酷、土豆VIP免费看,去iqiyi、sohu视频广告
当前为
// ==UserScript== // @name vipVideos_skipAd // @namespace vipVideos_skipAd // @author xinggsf~gmail。com // @description 优酷、土豆VIP免费看,去iqiyi、sohu视频广告 // @homepageURL http://greasyfork.icu/scripts/8561 // updateURL http://greasyfork.icu/scripts/8561/code/vipVideos_skipAd.user.js // @license GPL version 3 // @include http://www.iqiyi.com/* // include http://v.pps.tv/play_* // include http://ipd.pps.tv/play_* // @include http://www.tudou.com/albumplay/* // @include http://www.tudou.com/listplay/* // @include http://www.tudou.com/programs/view/* // @include http://v.youku.com/v_show/id_* // @include http://v.youku.com/v_playlist/* // @include http://tv.sohu.com/* // include http://my.tv.sohu.com/* // @include http://film.sohu.com/* // @version 2.1.7 // @modified 2015.7.25 // @encoding utf-8 // @grant none // ==/UserScript== -function(win) { var doc = win.document, style = doc.createElement('style'); style.textContent = '@-webkit-keyframes gAnimatInserted{from{opacity:0.99;}to{opacity:1;}}@keyframes gAnimatInserted{from{opacity:0.99;}to{opacity:1;}}embed,object{animation:gAnimatInserted 1ms;-webkit-animation:gAnimatInserted 1ms;}'; doc.head.appendChild(style); function Overload(fn_objs) { var is_match = function (x, y) { if (x == y) return !0; if (x.indexOf("*") == -1) return !1; var x_arr = x.split(","), y_arr = y.split(","); if (x_arr.length != y_arr.length) return !1; while (x_arr.length) { var x_first = x_arr.shift(), y_first = y_arr.shift(); if (x_first != "*" && x_first != y_first) return !1; } return !0; }; var ret = function () { var args = arguments, args_len = args.length, args_types = [], args_type, fn_objs = args.callee._fn_objs, match_fn = function () {}; for (var i = 0; i < args_len; i++) { var type = typeof args[i]; type == "object" && (args[i].length > -1) && (type = "array"); args_types.push(type); } args_type = args_types.join(","); for (var k in fn_objs) { if (is_match(k, args_type)) { match_fn = fn_objs[k]; break; } } return match_fn.apply(this, args); }; ret._fn_objs = fn_objs; return ret; } String.prototype.format = Overload({ "array" : function (params) { var reg = /{(\d+)}/gm; return this.replace(reg, function (match, key) { return params[~~key]; }); }, "object" : function (param) { var reg = /{([^{}]+)}/gm; return this.replace(reg, function (match, key) { return param[key]; }); } }); if (typeof String.prototype.startsWith !== 'function') { String.prototype.startsWith = function (str){ return this.slice(0, str.length) === str; }; String.prototype.endsWith = function (str){ return this.slice(-str.length) === str; }; } Object.prototype.extend = function(obj){ for (var i in obj) { //obj.hasOwnProperty(i) && (this[i] = obj[i]); } }; var PLAYER_DOM = {'OBJECT':'data','EMBED':'src'},//,'IFRAME':'src' PLAYER_URL = { youku: { urls: [ /^http:\/\/static\.youku\.com\/.*?q?(player|loader)(_[^.]+)?\.swf/, /^http:\/\/player\.youku\.com\/player\.php\/.*?sid\/(.*?)\/.*?v\.swf$/, /^http:\/\/player\.youku\.com\/embed\//, ], swfMark: '<embed allowscriptaccess="always" allowfullscreen="true" quality="high" bgcolor="#FFF" wmode="transparent" src="http://www.tuoku.sturgeon.mopaas.com/Public/ckplayer/ckplayer.swf" flashvars="f=http://www.tuoku.sturgeon.mopaas.com/xml.php?url=http://v.youku.com/v_show/id_{vid}.html&p=1&s=2&c=0&loaded=loadedHandler" width="100%" height="100%" name="ckplayer_a1" id="ckplayer_a1" align="middle" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer">', varsMatch: /VideoIDS=([^&]+)/ }, tudou: { urls: [ /^http:\/\/js\.tudouui\.com\/.*?\/TudouYoukuPlayer_Homer[^.]*\.swf/, /^http:\/\/js\.tudouui\.com\/.*?\/PortalPlayer[^.]*\.swf/, /^http:\/\/js\.tudouui\.com\/.*?\/TudouVideoPlayer_Homer_[^.]*\.swf/, ], swfMark: '<embed allowscriptaccess="always" allowfullscreen="true" quality="high" bgcolor="#FFF" wmode="transparent" src="http://www.tuoku.sturgeon.mopaas.com/Public/ckplayer/ckplayer.swf" flashvars="f=http://www.tuoku.sturgeon.mopaas.com/xml.php?url=http://v.youku.com/v_show/id_{vid}.html&p=1&s=2&c=0&loaded=loadedHandler" width="100%" height="100%" name="ckplayer_a1" id="ckplayer_a1" align="middle" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer">', varsMatch: /vcode=([^&]+)/, isProc: function(p, fv) { //有播放时间限制即进行处理 return /paidTime=\d{2,}&/.test(fv); } }, iqiyi: { urls: [ /^http:\/\/www\.iqiyi\.com\/common\/flashplayer\/\d+\/MainPlayer_\w+\.swf/, ], swfMark: '<embed data-widget-player="flash" pluginspage="http://www.macromedia.com/go/getflashplayer" play="true" quality="hight" devicefont="false" allowfullscreen="true" menu="true" type="application/x-shockwave-flash" width="100%" height="100%" id="flash" bgcolor="#000" wmode="transparent" align="middle" allowscriptaccess="always" src="{src}" flashvars="{fvars}">', run: function(p, src, t) { var m = {'src': src}, s = getFlashvars(p, 'flashVars') .replace(/&cid=\w+/,'&cid=qc_100001_300089'); m.fvars = s.replace(/&(?:tipdataurl|\w+?Time|cpn\w+|\w+?loader|adurl|yhls|exclusive|webEventID|videoIsFromQidan)=[^&]+/g,''); setPlayer(p, t.swfMark.format(m)); } }, pps: { urls: [ /^http:\/\/www\.iqiyi\.com\/common\/flashplayer\/\d+\/PPS\w+\.swf/, /^http:\/\/www\.iqiyi\.com\/player\/cupid\/common\/pps_\w+\.swf/ ], swfMark: '<embed data-widget-player="flash" pluginspage="http://www.macromedia.com/go/getflashplayer" play="true" quality="hight" devicefont="false" allowfullscreen="true" menu="true" type="application/x-shockwave-flash" width="100%" height="100%" id="flash" bgcolor="#000" wmode="transparent" align="middle" allowscriptaccess="always" src="{src}" flashvars="{fvars}">', run: function(p, src, t) { var m = {'src': src}, s = getFlashvars(p).replace(/&cid=\w+/,'&cid=qc_100001_300089'); m.fvars = s.replace(/&(?:tipdataurl|\w+?loader|adurl|P00001)=[^&]+/g,''); setPlayer(p, t.swfMark.format(m)); } }, sohu: { urls: [ /^http:\/\/(?:\d+\.){3}\d+\/(?:test|web)player\/Main\w*\.swf$/, /^http:\/\/tv\.sohu\.com\/upload\/swf\/.+?\/Main\.swf$/, ], run: function(p, src, t) { if (p.id !== 'player') return; var s, f = p.getAttribute('flashvars'); if (f.indexOf('&vid=') === -1) { // s = f.replace(/&plid=[^&]*/, '&plid=7038006') // .replace(/&api_key=[^&]*/, '&api_key=647bfb88a84fc3c469d289f961993be6') // .replace(/&onStartAdShown=[^&]*/, '&onStartAdShown=null') // .replace(/&onMAdShown=[^&]*/, '&onMAdShown=null'); return; } else { s = f.replace(/.*?&vid=([^&]+).*/,'&vid=$1&plid=7038006&changeRateBtn=1&jump=0&skin=0&likeBtn=0&autoplay=true&downloadBtn=0&cinemaBtn=0&bfBtn=0&shareBtn=0&sogouBtn=0&showRecommend=0&showCtrlBar=1&skinNum=1&ua=http://tv.&api_key=647bfb88a84fc3c469d289f961993be6&cmscat=1&topBarFull=1&imgCutBtn=0&sid=null&isListPlay=1&playListId=1&nid=1&pid=1&pageurl=http://www.sohu.com'); } s = p.outerHTML.replace(/flashvars="[^"]+"/,'flashvars="'+ s +'"'); setPlayer(p, s); } } }; function setPlayer(play, oHtml) { console.log('player new html: ', oHtml); doc.body.removeEventListener('animationstart', onAnimationStart); doc.body.removeEventListener('webkitAnimationStart', onAnimationStart); doc.body.removeEventListener('oAnimationStart', onAnimationStart); play.outerHTML = oHtml; } function getFlashvars(p, vName) { arguments.length < 2 && (vName = 'flashvars'); return 'EMBED' === p.tagName ? p.getAttribute(vName) : p.children[vName].value; } var blackList = ['||irs01.','||cnzz.','||admaster.']; function onAnimationStart(ev) { if (ev.animationName !== 'gAnimatInserted') return; var e = ev.target;//ev && ev.target || Event.srcElement console.log('AnimationStart:', ev, e); //防止OBJECT - EMBED结构重复处理 if ('EMBED' === e.tagName && 'OBJECT' === e.parentNode.tagName) return; var i, t, pn = PLAYER_DOM[e.tagName],//地址属性名 OBJECT:'data', EMBED:'src' addr = e[pn], domain = addr.match(/^https?:\/\/([^/]+)/)[1]; //if statement: kill flash ad if (blackList.some(function(r) { if (r instanceof RegExp) return r.test(addr); if (r.startsWith('||')) { r = r.slice(2); i = domain.indexOf(r); return -1 === i ? !1 : i === 0 || domain[i-1] === '.'; } if (r[0] === '|') { r = r.slice(1); return addr.startsWith(r); } })) { e.parentNode.removeChild(e); return; } for (i in PLAYER_URL) { t = PLAYER_URL[i]; if (t.urls.some(function(reg) { return reg.test(addr); })) {//if console.log('reg:', t); if (t.run) {//custom function t.run(e, addr, t); return; } var s, v = getFlashvars(e); if (t.isProc && !t.isProc(e, v)) return; s = v.match(t.varsMatch)[1]; if (!s) return; s = {'vid': s}; setPlayer(e, t.swfMark.format(s)); return; } } } //Firefox doc.body.addEventListener('animationstart', onAnimationStart, false); //Chrome doc.body.addEventListener('webkitAnimationStart', onAnimationStart, false); //Opera 12+ doc.body.addEventListener('oAnimationStart', onAnimationStart, false); }(window);