Greasy Fork is available in English.

vipVideos_skipAd

油库、土~逗 VIP免费看,去iqiyi、sohu视频广告

Verzia zo dňa 12.08.2015. Pozri najnovšiu verziu.

// ==UserScript==
// @name           vipVideos_skipAd
// @namespace      vipVideos_skipAd
// @author	       xinggsf~gmail。com
// @description    油库、土~逗 VIP免费看,去iqiyi、sohu视频广告
// @homepageURL    https://greasyfork.org/scripts/8561
// updateURL       https://greasyfork.org/scripts/8561.js
// @require        https://greasyfork.org/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
// @version        2.2.2
// @modified       2015.8.12
// @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);

var youkuMark = '<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%" id="ckplayer" align="middle" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer">',
iqiyiMark = '<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}">',
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: youkuMark,
		varsMatch: /VideoIDS=([^&]+)/,
		//不判断,只是加入一个按钮
		isProc: function(p, fv) {
			var a = doc.createElement('a'),
			s = '<embed type="application/x-shockwave-flash" pluginspage="http://get.adobe.com/cn/flashplayer/" src="http://img.ct2t.net/flv/youku141002/loader.swf" width="100%" height="100%" id="mplayer" bgcolor="#000" isfullscreen="true" allowfullscreen="true" allowscriptaccess="always" wmode="transparent" flashvars="isShowRelatedVideo=true&showAd=0&show_ce=0&showsearch=0&VideoIDS={1}&isAutoPlay=true&winType=BDskin&embedid=MTEzLjE0My4xNTkuOTYCMTUwNjk2NTE3AmkueW91a3UuY29tAi91L1VOakl6T1RjMk1UVXk%3D&Type=PlayList">'.format(fv.match(/VideoIDS=([^&]+)/));
			doc.querySelector("h1.title").appendChild(a);
			a.outerHTML = '<a onclick="document.querySelector(\'#ckplayer\').outerHTML=_ssPlayer,delete _ssPlayer,this.parentNode.removeChild(this);"> --> 换播放器</a>';
			unsafeWindow._ssPlayer = s;
			return !0;
		}
	},
	tudou: {
		urls: [/^http:\/\/js\.tudouui\.com\/.*?Player.*?\.swf/],
		swfMark: youkuMark,
		varsMatch: /vcode=([^&]+)/,
		isProc: function(p, fv) {
			//有播放时间限制即进行处理
			return /paidTime=\d{2,}&/.test(fv);
		}
	},
	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$/,
		],
		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')
			s += '&plid=7038006&api_key=647bfb88a84fc3c469d289f961993be6';
			s = p.outerHTML.replace(/(flashvars=")[^"]+/, '$1'+ s);
		//.replace(src, 'http://update.adbyby.com/swf/sohu_livezb.swf');
			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;
}

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 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;
		}
	}
}
doc.body.addEventListener('animationstart', onAnimationStart, false);
doc.body.addEventListener('webkitAnimationStart', onAnimationStart, false);
doc.body.addEventListener('oAnimationStart', onAnimationStart, false);
}(document);