您需要先安装一个扩展,例如 篡改猴、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.js // @require http://greasyfork.icu/scripts/11230.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/* // @include http://www.56.com/u*/v_*.html // @include http://www.56.com/*_vid-*.html // @include http://www.56.com/siteplay/siteplay.html* // @include http://www.yatu.tv/m*/play*.html // @include http://v.pptv.com/show/*.html* // @version 2.2.7 // @modified 2015.8.26 // @encoding utf-8 // @grant unsafeWindow // ==/UserScript== -function(doc) { var 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); //参考了thunderhit的代码:http://greasyfork.icu/zh-CN/scripts/6479,但用定时器太低效了 //开启硬件加速,如果显卡不支持无效,请换direct var ckplayerMark = '<embed allowscriptaccess="always" allowfullscreen="true" quality="high" type="application/x-shockwave-flash" width="100%" height="100%" id="ckplayer" wmode="gpu" 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_{1}.html&p=1&s=2&c=0&loaded=loadedHandler">', iqiyiMark = '<embed play="true" quality="high" allowfullscreen="true" wmode="gpu" type="application/x-shockwave-flash" width="100%" height="100%" id="flash" allowscriptaccess="always" src="{src}" flashvars="{fvars}">', 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 type="application/x-shockwave-flash" src="http://img.ct2t.net/flv/youku141002/loader.swf" width="100%" height="100%" id="mplayer" allowfullscreen="true" allowscriptaccess="always" quality="high" wmode="gpu" flashvars="isShowRelatedVideo=true&showAd=0&show_ce=0&showsearch=0&VideoIDS={1}&isAutoPlay=true&winType=BDskin&embedid=MTEzLjE0My4xNTkuOTYCMTUwNjk2NTE3AmkueW91a3UuY29tAi91L1VOakl6T1RjMk1UVXk%3D&Type=PlayList">', varsMatch: /VideoIDS=([^&]+)/, //不判断,只是加入一个按钮 isProc: function(p, fv) { setTimeout(scrollTo(0, 99), 9); unsafeWindow._ssPlayer = ckplayerMark.format(fv.match(/VideoIDS=([^&]+)/)); doc.querySelector("div#ab_pip").outerHTML = '<a style="font-size:20px;" onclick="document.querySelector(\'#mplayer\').outerHTML=_ssPlayer,delete _ssPlayer,this.parentNode.removeChild(this);">换播放器</a>'; return !0; } }, tudou: { urls: [/^http:\/\/js\.tudouui\.com\/.*?Player.*?\.swf/], swfMark: ckplayerMark, varsMatch: /vcode=([^&]+)/, //有播放时间限制即替换播放器 isProc: function(p, fv) { setTimeout(scrollTo(0, 99), 9); if (! /paidTime=\d{2,}&/.test(fv)) { p.children['wMode'].value = 'gpu'; return !1; } var div = doc.querySelector("#summary>div:last-of-type"); div.innerHTML = '<a id="a-rpPlayer" style="font-size:20px;cursor:pointer;" onclick="document.querySelector(\'#ckplayer\').outerHTML=this._ssPlayer,this.parentNode.removeChild(this);">换原播放器</a>'; div.style.display = 'block'; unsafeWindow.document.getElementById('a-rpPlayer')._ssPlayer = p.outerHTML; return !0; } }, iqiyi: { urls: [ /^http:\/\/www\.iqiyi\.com\/common\/flashplayer\/\d+\/MainPlayer_\w+\.swf/], run: function(p, src, t) { var m = {'src': src}; m.fvars = getFlashvars(p, 'flashVars').replace(/&(?:cid|tipdataurl|\w+?Time|cpn\w|\w+?loader|adurl|yhls|exclusive|webEventID|videoIsFromQidan)=[^&]*/g,'') + '&cid=qc_100001_300089'; setPlayer(p, iqiyiMark.format(m)); } }, pps: { urls: [ /^http:\/\/www\.iqiyi\.com\/common\/flashplayer\/\d+\/PPS\w+\.swf/, //安装PPS插件才能播放 // /^http:\/\/www\.iqiyi\.com\/player\/cupid\/common\/pps_\w+\.swf/ ], run: function(p, src, t) { var m = {'src': src}, s = getFlashvars(p); if (s.indexOf('&cid=') === -1) { alert('不支持!安装PPS插件才能播放!'); return; } m.fvars = s.replace(/&?(?:cid|coreUrl|tipdataurl|preloader|adurl|P00001|expandState)=[^&]+/g,'') +'&cid=qc_100001_300089'; setPlayer(p, iqiyiMark.format(m)); } }, sohu: { urls: [ /^http:\/\/(?:\d+\.){3}\d+\/(?:test|web)player\/Main\w*\.swf$/, /^http:\/\/tv\.sohu\.com\/upload\/swf\/.+?\/Main\.swf$/, ], //http://update.adbyby.com/swf/sohu_livezb.swf //http://opengg.guodafanli.com/adkiller/sohu_live.swf run: function(p, src, t) { //if (!doc.domain.endsWith('tv.sohu.com')) return; var s = p.getAttribute('flashvars') .replace(/&(?:plid|api_key|on\w*?Ad\w*)=[^&]*/g, '') //.replace(/(&on\w*?Ad\w*=)[^&]*/g,'$1') + '&plid=7038006&api_key=647bfb88a84fc3c469d289f961993be6'; s = p.outerHTML.replace(/(flashvars=")[^"]+/, '$1'+ s) .replace(/wmode="[^"]+/, 'wmode="gpu'); //.replace(src, 'http://100.100.100.100/swf/sohu_live.swf'); setPlayer(p, s); } }, yatu2other: {//仅为了设置GPU加速 urls: [/.+/], run: function(p, src, t) { var mode = 'gpu'; 'EMBED' === p.tagName ? p.setAttribute('wmode', mode) : getParamOfName(p, 'wmode').value = mode; } } }; 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 getParamOfName(p, name) {//据名字name取得子元素 var i, r = new RegExp(name, 'i'); for (i=p.childNodes.length-1; i>=0; i--) { if (r.test(p.childNodes[i].name)) return p.childNodes[i]; } var e = doc.createElement('param'); e.name = name; p.appendChild(e); return e; } function getFlashvars(p, vName) { arguments.length < 2 && (vName = 'flashvars'); return 'EMBED' === p.tagName ? p.getAttribute(vName) : p.children[vName].value; } 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 = {'OBJECT':'data','EMBED':'src'}[e.tagName],//,'IFRAME':'src' addr = e[pn]; 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 v = getFlashvars(e); (!t.isProc || t.isProc(e, v)) && setPlayer(e, t.swfMark.format(v.match(t.varsMatch))); return; } } } doc.body.addEventListener('animationstart', onAnimationStart, false); doc.body.addEventListener('webkitAnimationStart', onAnimationStart, false); doc.body.addEventListener('oAnimationStart', onAnimationStart, false); }(document);