// ==UserScript==
// @name vipVideos_skipAd
// @namespace vipVideos_skipAd-xinggsf
// @author xinggsf
// @description 配合ABP去视频广告;开启GPU加速
// @homepageURL https://greasyfork.org/scripts/8561
// updateURL https://greasyfork.org/scripts/8561.js
// @include http*
// @exclude https://www.youtube.com/*
// @exclude http://www.acfun.tv/*
// @exclude http://acfun.tudou.com/v/*
// @exclude http://*.dj92cc.com/*
//全面支持音悦台HTML5播放,详见 https://greasyfork.org/scripts/14593
// @exclude http://*.yinyuetai.com/*
// @version 2016.4.9
// @encoding utf-8
// @grant unsafeWindow
// @downloadURL none
// ==/UserScript==
/* GM_openInTab
2016-3-20 解决斗鱼和腾讯视频不能加速的问题
2016-3-1 解决地址格式为www.iqiyi.com/v_xxxxxxx.html视频不能播放的问题
2016-2-28 弃用CSS3动画事件,以解决chrome类浏览器下NPAPI Flash异常问题
2016-2-18 更新油库播放器
2015-12-30 增加对重定向扩展的支持(48行改为true即启用)
2015-12-25 优化事件处理,及DOM刷新处理;解决了熊猫TV不能显示弹幕的问题
2015-12-18 感谢卡饭好友"吃饭好香"提供空间,更换油库播放器;解决油库外链视频变形问题
2015-12-14 iqiyi播放器升级,外链视频最高分辨率只支持到高清。建议到iqiyi.com观看
2015-12-13 感谢卡饭好友"吃饭好香"提供播放器空间;解决油库不能全屏的问题
2015-12-11 用严格模式重构;使用ES6字符串模板、大幅使用本地变量let,const
2015-12-8 更新油库播放器,可选择P1080分辨率;
彻底解决油库盗链问题;
解决NNAPI Flash不能播放的问题
2015-12-6 增加对acfun.tv的油库、iqiyi外链支持
开启GPU硬件加速,如显卡不支持,wmode参数换为 direct
参考了thunderhit的代码: https://greasyfork.org/scripts/6479,但用定时器太低效了
doc.querySelectorAll('div') instanceof NodeList
bd.childNodes instanceof NodeList
true
bd.children instanceof NodeList == false
bd.children.constructor: HTMLCollection
*/
-function(doc, bd) {
"use strict";
let isEmbed, swfAddr,
isRedirect = !1,//是否开启Redirect重定向扩展/UC脚本,暂时只对iqiyi播放器有效
swfBlockList = [
'http://staticlive.douyutv.com/upload/signs/201',
],
swfWhiteList = [
'http://s5.pdim.gs/static/',
],
PLAYER_URL = [
{
urls: [
/^http:\/\/static\.youku\.com\/.*?q?(?:play|load)er\w*\.swf/,
/^http:\/\/player\.youku\.com\/player\.php\/.*?sid\/(.*?)\/.*?v\.swf$/,
// /^http:\/\/cdn\.aixifan\.com\/player\/cooperation\/AcFunXYouku\.swf/,
],
varsMatch: /VideoIDS=(\w+)/,
format: youkuFormat,
isProc: function(p, fv, src) {
switch(true){
case doc.domain.endsWith('acfun.tv'):
fv = fv.match(/vid=(\w+)/);
fv && setPlayer(p, youkuFormat(fv[1]));
return !1;
case !doc.domain.endsWith('youku.com'):
fv = src.match(this.urls[1]) || src.match(this.varsMatch) ||
fv.match(this.varsMatch);
fv && ykOutsitePlayer(fv[1], p);
return !1;
default:
setTimeout(scrollTo(0, 99), 9);
//加入一个按钮
unsafeWindow._ssPlayer = p.outerHTML.replace('direct','gpu');
doc.querySelector("div#ab_pip").outerHTML =
'换原播放器';
return !0;
}
}
},{
urls: [
/^http:\/\/www\.iqiyi\.com\/common\/flashplayer\/\d+\/\w+\.swf/,
// /^http:\/\/cdn\.aixifan\.com\/player\/cooperation\/AcFunXQiyi\.swf/,
/^http:\/\/dispatcher\.video\.qiyi\.com\/disp\/shareplayer\.swf/,
],
run: function(p, src) {
var v = getFlashvars(p);
if (doc.domain.endsWith('iqiyi.com')){
v = v.replace(/&(?:cid|tipdataurl|\w+?Time|cpn\w|\w*?loader|adurl|yhls|exclusive|webEventID|videoIsFromQidan)=[^&]*/g,'') + '&cid=qc_100001_300089';
setPlayer(p, iqiyiFormat(src,v));
} else qyOutsiteFormat(p, v);
}
}, {
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) {
var s = getFlashvars(p);
if (s.indexOf('&cid=') === -1) {
alert('不支持!安装PPS插件才能播放!');
return;
}
s = s.replace(/&?(?:cid|coreUrl|tipdataurl|preloader|adurl|P00001|expandState)=[^&]+/g,'') +'&cid=qc_100001_300089';
setPlayer(p, iqiyiFormat(src, s));
}
},
];
function youkuFormat(vid) {
//下载https://raw.githubusercontent.com/xinggsf/gm/master/yk.swf到本地,可替换
return `