Greasy Fork

Greasy Fork is available in English.

VIP 视频解析(优化增强版)

支持腾讯视频、爱奇艺、优酷、土豆、芒果TV、搜狐视频、乐视视频、PPTV、风行、华数TV等,支持多个解析接口切换,支持视频自由选集,自动解析视频,支持自定义拖拽位置,支持视频广告跳过,支持站内站外解析,支持 Tampermonkey、Violentmonkey、Greasemonkey

当前为 2020-07-15 提交的版本,查看 最新版本

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name              VIP 视频解析(优化增强版)
// @version           2.3
// @description       支持腾讯视频、爱奇艺、优酷、土豆、芒果TV、搜狐视频、乐视视频、PPTV、风行、华数TV等,支持多个解析接口切换,支持视频自由选集,自动解析视频,支持自定义拖拽位置,支持视频广告跳过,支持站内站外解析,支持 Tampermonkey、Violentmonkey、Greasemonkey
// @author            sign
// @icon              https://qzonestyle.gtimg.cn/aoi/img/icenter/qzone-vip.gif
// @namespace         http://greasyfork.icu/users/665670
// @require           https://cdn.bootcss.com/jquery/3.5.1/jquery.min.js
// @require           https://greasemonkey.github.io/gm4-polyfill/gm4-polyfill.js
// @match             *://v.qq.com/x/cover/*
// @match             *://v.qq.com/x/page/*
// @match             *://www.iqiyi.com/v*
// @match             *://v.youku.com/v_show/*
// @match             *://www.mgtv.com/b/*
// @match             *://tv.sohu.com/v/*
// @match             *://film.sohu.com/album/*
// @match             *://www.le.com/ptv/vplay/*
// @match             *://video.tudou.com/v/*
// @match             *://v.pptv.com/show/*
// @match             *://vip.pptv.com/show/*
// @match             *://www.fun.tv/vplay/*
// @match             *://www.acfun.cn/v/*
// @match             *://www.bilibili.com/*
// @match             *://vip.1905.com/play/*
// @match             *://www.wasu.cn/Play/show/*
// @match             *://www.56.com/*
// @exclude           *://www.bilibili.com/blackboard/*
// @license           GPL License
// @grant             unsafeWindow
// @grant             GM_openInTab
// @grant             GM.openInTab
// @grant             GM_getValue
// @grant             GM.getValue
// @grant             GM_setValue
// @grant             GM.setValue
// @grant             GM_xmlhttpRequest
// @grant             GM.xmlHttpRequest
// @grant             GM_registerMenuCommand
// @connect           *
// ==/UserScript==

(function () {
    'use strict';
    var $ = $ || window.$;
    var log_count = 1;
    var host = location.host;
    var parseInterfaceList = [];
    var selectedInterfaceList = [];
    var originalInterfaceList = [
        { name:"1907", type:"站内", url:"https://z1.m1907.cn/?jx="},
        { name:"17云", type:"站内", url:"https://www.1717yun.com/jx/ty.php?url="},
        { name:"通用", type:"站内", url:"https://jx.598110.com/index.php?url="},
        { name:"927", type:"站内", url:"https://api.927jx.com/vip/?url="},
        { name:"tv920", type:"站内", url:"https://api.tv920.com/vip/?url="},
        { name:"8B", type:"站内", url:"https://api.8bjx.cn/?url="},
        { name:"ckmov", type:"站内", url:"https://www.ckmov.vip/api.php?url="},
        { name:"41", type:"站内", url:"https://jx.f41.cc/?url="},
        //--------------------------------------------------------------------------------------
        { name:"1907", type:"站外", url:"https://z1.m1907.cn/?jx="},
        { name:"17云", type:"站外", url:"https://www.1717yun.com/jx/ty.php?url="},
        { name:"CQ", type:"站外", url:"https://cdn.yangju.vip/k/?url="},
        { name:"思古", type:"站外", url:"https://api.sigujx.com/?url="},
        { name:"简傲", type:"站外", url:"https://vip.fitaxik.cn/?url="},
        { name:"百域", type:"站外", url:"https://jx.618g.com/?url="},
        { name:"思古2", type:"站外", url:"https://api.bbbbbb.me/jx/?url="},
        { name:"黑米", type:"站外", url:"https://www.myxin.top/jx/api/?url="},
        { name:"石云", type:"站外", url:"https://jiexi.071811.cc/jx.php?url="},
        { name:"凡凡", type:"站外", url:"https://jx.wslmf.com/?url="},
        { name:"人人", type:"站外", url:"https://vip.mpos.ren/v/?url="},
        { name:"金桥", type:"站外", url:"https://jqaaa.com/jx.php?url="},
        { name:"通用", type:"站外", url:"https://jx.598110.com/index.php?url="},
        { name:"初心", type:"站外", url:"https://jx.bwcxy.com/?v="},
        { name:"Hk", type:"站外", url:"https://jx.rdhk.net/?v="},
        { name:"星空", type:"站外", url:"https://jx.fo97.cn/?url="},
        { name:"小蒋极致", type:"站外", url:"https://www.kpezp.cn/jlexi.php?url="},
        { name:"维多", type:"站外", url:"https://jx.ivito.cn/?url="},
        { name:"927", type:"站外", url:"https://api.927jx.com/vip/?url="},
        { name:"tv920", type:"站外", url:"https://api.tv920.com/vip/?url="},
        { name:"89", type:"站外", url:"https://www.ka61b.cn/jx.php?url="},
        { name:"豪华啦", type:"站外", url:"https://api.lhh.la/vip/?url="},
        { name:"宿命", type:"站外", url:"https://api.sumingys.com/index.php?url="},
        { name:"8B", type:"站外", url:"https://api.8bjx.cn/?url="},
        { name:"千忆", type:"站外", url:"https://v.qianyicp.com/v.php?url="},
        { name:"41", type:"站外", url:"https://jx.f41.cc/?url="},
        { name:"ckmov", type:"站外", url:"https://www.ckmov.vip/api.php?url="},
        { name:"517", type:"站外", url:"https://cn.bjbanshan.cn/jx.php?url="},
        { name:"凉城", type:"站外", url:"https://jx.mw0.cc/?url="},
        { name:"33t", type:"站外", url:"https://www.33tn.cn/?url="},
        { name:"爸比云", type:"站外", url:"https://jx.1ff1.cn/?url="},
        { name:"180", type:"站外", url:"https://jx.000180.top/jx/?url="},
        { name:"ha12", type:"站外", url:"https://py.ha12.xyz/sos/index.php?url="},
        { name:"无名", type:"站外", url:"https://www.administratorw.com/video.php?url="},
        { name:"黑云", type:"站外", url:"https://jiexi.380k.com/?url="},
        { name:"流氓凡", type:"站外", url:"https://jx.wslmf.com/?url="},
        { name:"OK", type:"站外", url:"https://okjx.cc/?url="},
        { name:"穷二代", type:"站外", url:"https://jx.ejiafarm.com/dy.php?url="},
        { name:"二度", type:"站外", url:"https://jx.du2.cc/?url="},
        { name:"bl解析", type:"站外", url:"https://vip.bljiex.com/?v="},
        { name:"明日", type:"站外", url:"https://jx.yingxiangbao.cn/vip.php?url="},
        { name:"一起走吧", type:"站外", url:"https://jiexi.yiqizouba.top/?url="},
        { name:"千叶", type:"站外", url:"https://yi29f.cn/vip.php?url="},
        { name:"诺讯", type:"站外", url:"https://www.nxflv.com/?url="},
        { name:"大幕", type:"站外", url:"https://jx.52damu.com/dmjx/jiexi.php?url="},
        { name:"H8", type:"站外", url:"https://www.h8jx.com/jiexi.php?url="},
        { name:"解析S", type:"站外", url:"https://jx.jiexis.com/?url="}
    ];

    //自定义 log 函数
    function mylog(param1, param2) {
        param1 = param1 ? param1 : "";
        param2 = param2 ? param2 : "";
        console.log("#" + log_count++ + "-VIP-log:", param1, param2);
    }

    //内嵌页内播放
    function innerParse(url) {
        $("#iframe-player").attr("src", url);
    }

    //兼容 Tampermonkey | Violentmonkey | Greasymonkey 4.0+
    function GMopenInTab(url, open_in_background) {
        if (typeof GM_openInTab === "function") {
            GM_openInTab(url, open_in_background);
        } else {
            GM.openInTab(url, open_in_background);
        }
    }

    //兼容 Tampermonkey | Violentmonkey | Greasymonkey 4.0+
    function GMgetValue(name, value) {
        if (typeof GM_getValue === "function") {
            return GM_getValue(name, value);
        } else {
            return GM.getValue(name, value);
        }
    }

    //兼容 Tampermonkey | Violentmonkey | Greasymonkey 4.0+
    function GMsetValue(name, value) {
        if (typeof GM_setValue === "function") {
            GM_setValue(name, value);
        } else {
            GM.setValue(name, value);
        }
    }

    //兼容 Tampermonkey | Violentmonkey | Greasymonkey 4.0+
    function GMaddStyle(css) {
        var myStyle = document.createElement('style');
        myStyle.textContent = css;
        var doc = document.head || document.documentElement;
        doc.appendChild(myStyle);
    }

    //播放窗口节点
    var node;
    var player_nodes = [
        { url:"v.qq.com", node:"#mod_player"},
        { url:"www.iqiyi.com", node:"#flashbox"},
        { url:"v.youku.com", node:"#ykPlayer"},
        { url:"www.mgtv.com", node:"#mgtv-player-wrap container"},
        { url:"tv.sohu.com", node:"#player"},
        { url:"film.sohu.com", node:"#playerWrap"},
        { url:"www.le.com", node:"#le_playbox"},
        { url:"video.tudou.com", node:".td-playbox"},
        { url:"v.pptv.com", node:"#pptv_playpage_box"},
        { url:"vip.pptv.com", node:".w-video"},
        { url:"www.wasu.cn", node:"#flashContent"},
        { url:"www.fun.tv", node:"#html-video-player-layout"},
        { url:"www.acfun.cn", node:"#player"},
        { url:"www.bilibili.com", node:"#bilibiliPlayer"},
        { url:"vip.1905.com", node:"#player"},
        { url:"www.56.com", node:"#play_player"}
    ];
    for(var i in player_nodes) {
        if (player_nodes[i].url == host) {
            node = player_nodes[i].node;
        }
    }

    var videoPlayer = $("<div id='iframe-div' style='width:100%;height:100%;z-index:100000;'><iframe id='iframe-player' frameborder='0' allowfullscreen='true' width='100%' height='100%'></iframe></div>");
    var ImgBase64 =`
        data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAACXBIWXMAAAsTAAALEwEAmpwYAAAF7GlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZW
        hpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDUgNzkuMTYzNDk5LCAyMDE4LzA4LzEzLTE2OjQwOjIyICAgICAgICAiPiA8cmRmOl
        JERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG
        5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL2
        1tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoV2luZG93cykiIHhtcDpDcmVhdGVEYXRlPS
        IyMDIwLTA2LTI1VDE5OjUzOjU2KzA4OjAwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAyMC0wNy0xMFQxMDoyMjoyNSswODowMCIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAyMC0wNy0xMFQxMDoyMjoyNSswODowMCIgZGM6Zm9ybWF0PSJpbWFnZS9wbm
        ciIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo1ZjQwYzBkOC1mNjJmLTEwNGItOThhNS0zNzYwMTRiZDM5ZTMiIHhtcE
        1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6YzMyNWIyNTUtNzZmOC0zYzRhLWE3MjQtZWVmZWMyMDY3Yzg1IiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6YzMyNWIyNTUtNzZmOC0zYzRhLWE3MjQtZWVmZWMyMDY3Yzg1Ij4gPH
        htcE1NOkhpc3Rvcnk+IDxyZGY6U2VxPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY3JlYXRlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDpjMzI1YjI1NS03NmY4LTNjNGEtYTcyNC1lZWZlYzIwNjdjODUiIHN0RXZ0OndoZW49IjIwMj
        AtMDYtMjVUMTk6NTM6NTYrMDg6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE5IChXaW5kb3dzKSIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paW
        Q6NWY0MGMwZDgtZjYyZi0xMDRiLTk4YTUtMzc2MDE0YmQzOWUzIiBzdEV2dDp3aGVuPSIyMDIwLTA3LTEwVDEwOjIyOjI1KzA4OjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoV2luZG93cykiIH
        N0RXZ0OmNoYW5nZWQ9Ii8iLz4gPC9yZGY6U2VxPiA8L3htcE1NOkhpc3Rvcnk+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+pT2ovAAAAolJREFUeJztm72L1EAYxn/v4d
        cfoAhiYeGh4gdaCoKLFsIhh4KVjViICMqBHIJYmMVG8ToLwRPEyv4KWw97wcb/QLCwsBSrxyKbYzl2xk3M5I1mfs1mk8z7PvPsTDIzm6DZFESQVATKedJI80Ks0H/M92pjqAbsqzaGasAWJkneIjwZfAvIBngL8CYb4C3Am2xAYP/YIgDjLk
        XOSSPNuQV4C/AmG+AtwJtsgLcAbwZvQMrp8GfgdKLYrZGsBZjZGeA68CtVjjZI2gXM7J2Z7QGepMzzNyTrApPh5xaS9gIvgWsp8jWlMwMqJJ0F1oHjKfLWpXMDKiTdAN4A0fNS43YbNLO3wC7gmZcGcGwB00g6BjwFllNoiREyYAxsRsqNgM
        fRwDUMqJC0DKwBi3XL0lDzjtDZZhYMJmk0t6wamNkGsCFpFXjeoPxm6FhIcy+Hwma2BhwAXqXO1UsDAMzsm5ndBs4DH1Ll6a0BFWb20cwuALeAr23H770BFWb2GngB/GwzbvAi2CckXQUK4FTbsXttgKQTlLeuZPOHoAEzHjmpxgvJh66Sdl
        NWfBXYWaNcsX3X5DOouRcjwWkk3QQeAEfbVTSb3nQBSeeAh8BSl3ndDZC0H3gE3MVhZuhqgKQVyoof9tLgYoCky5QVv+SRf5pODZB0BFgB7nSZN0YnBkgy4D7lr36oi5zzEjJgnv//o+sBFZKuUFb84pyamtJIc2w9oAgd+9NzuZNzTgL3KC
        cxndBEc8ou8B44mDB+K6ScDfa+8vAPTYdTkQ3wFuDN4A2IrQeMOtTRCk005/cFvAV4kw3wFuBNNsBbgDfZAG8B3iwAX2bsH9QLE714WsuL3AW2ff8E/PAQ4sVvWvBuiQNuInAAAAAASUVORK5CYII=`;
    var sImgBase64=`
        data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAACXBIWXMAAAsTAAALEwEAmpwYAAAGvGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZW
        hpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDUgNzkuMTYzNDk5LCAyMDE4LzA4LzEzLTE2OjQwOjIyICAgICAgICAiPiA8cmRmOl
        JERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG
        5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL2
        1tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoV2luZG93cykiIHhtcDpDcmVhdGVEYXRlPS
        IyMDIwLTA2LTI1VDE5OjUzOjU2KzA4OjAwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAyMC0wNy0xMlQxODoyNDozMCswODowMCIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAyMC0wNy0xMlQxODoyNDozMCswODowMCIgZGM6Zm9ybWF0PSJpbWFnZS9wbm
        ciIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo5Y2E3ZDZiMC03MmRjLTIyNDYtOWYwNy02Mzg3YTAwY2JkYTciIHhtcE
        1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6YzMyNWIyNTUtNzZmOC0zYzRhLWE3MjQtZWVmZWMyMDY3Yzg1IiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6YzMyNWIyNTUtNzZmOC0zYzRhLWE3MjQtZWVmZWMyMDY3Yzg1Ij4gPH
        htcE1NOkhpc3Rvcnk+IDxyZGY6U2VxPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY3JlYXRlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDpjMzI1YjI1NS03NmY4LTNjNGEtYTcyNC1lZWZlYzIwNjdjODUiIHN0RXZ0OndoZW49IjIwMj
        AtMDYtMjVUMTk6NTM6NTYrMDg6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE5IChXaW5kb3dzKSIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paW
        Q6NWY0MGMwZDgtZjYyZi0xMDRiLTk4YTUtMzc2MDE0YmQzOWUzIiBzdEV2dDp3aGVuPSIyMDIwLTA3LTEwVDEwOjIyOjI1KzA4OjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoV2luZG93cykiIH
        N0RXZ0OmNoYW5nZWQ9Ii8iLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjljYTdkNmIwLTcyZGMtMjI0Ni05ZjA3LTYzODdhMDBjYmRhNyIgc3RFdnQ6d2hlbj0iMjAyMC0wNy0xMl
        QxODoyNDozMCswODowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTkgKFdpbmRvd3MpIiBzdEV2dDpjaGFuZ2VkPSIvIi8+IDwvcmRmOlNlcT4gPC94bXBNTTpIaXN0b3J5PiA8L3JkZjpEZXNjcmlwdG
        lvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PjvAJAYAAAPKSURBVHic7ZtLb9QwEMd/k922S3lVCCFxQOLQA5+H78uXQRwQpwrxaunucIhNJpPJA9putk7/krUbx56Mx47n5Yiqvgc+ACvgLVABn0TkMz
        1Q1Q3wMvX5mKrFNBFAg3oSfTVtBNiloum+pLJKxdJQU8TcuxaRqwGej4Fj109FVR8D330HEfEEfJOVY8gO3A8auoMW1zcPvDL1Vigb80zSvcrQuRSRy3j4oKonwClwlPo8Bc7XwM+eDiEhEUFVhVqaAqyBLe3ZzAOxs1ilkoVxnco2FUnXmH
        65zyb97kzJ7TJNK5w+XAHPgdfAG+C79A10AlY0s+eJVMAZ9cB2NIOMZttfa0/Jz6lcv4xLEQknE0BVXwCPEo0L4BzY3EQAhwi79wy1ya+oliaAf4VU422Khi5dADwIYG4GZsbROqjMetvq9Qxv9GD+R2otw+ttrz7VtJOBOms89angiI6nmW
        ltIwGcAl+D+hLwlMbqVUAjAZT8WqxxKyYa7I/98DILfvmKSAC7oK4UdMZW8nKP0NkwIwFErmwp+O0rIgGc3T0fh4NIAKd752J/6MQMvDeYAxy9oaV7DmuEAV0BzIlsJa6po00rarW1TfVXpl2OFkUYC6i0H3pAArht9MUlW4gswVIwaWaXZg
        d0cBMBRN6gr++E1w8N0R6Qo66ecx9w9B13tl5ERpdgenbkqu4N0R6QGdn23BtKftiYwHVwv924Xh2qqo+AZ4nuJU0YPSdGrmnyAlZgHbXmeLOTViU6g2pwTaN+SsQz4BtGCH4FjM7aPYdN5gDdTbAiXvqlYNQdLtYqShh1h/s2t1IwKSBS8i
        qYJICSV0DHHY4EMCXPfl9x5CsiQ+h4D4wMwZ7yyAcxbgvZtf77KkSmsD2+4uuhOWLiTVifdbktYyoyyfv8EGvHZEsx/7cW4aAADg1+Msaux2hh298HAdwpHuIBczMwN5YogNamGqnBExo/PAqA+N9M8Axz3E1EvvztWO8zm0Q7+/B5J945Oh
        bZ/480U3TPn1W0GmJDrSUuGHCHoda7Nz4fcKCb6ynOHI5egU7+rCBMyg2e7IGRuTDJGeo9cFwiluYOd8YbhcRKdocnCeDVfniZBaPxgBV16LhUjMYEj4An++FlFnQ2eO8NngOfqPXljsZQGko1+294NjSBh9z3F+2sTouH4Dqn51rpNvc8+z
        8vbfs1ySRYS3BFPXClyQ38j1HU+f7I4K40zH8ndOwKsJ+rLAZ2BZR8QLIXS3SHW1i6ABb/zdDiBbBbugAWvwc8CKAC3lF/ULym56hbwaj+AAiBMI0BUGwTAAAAAElFTkSuQmCC`;

    // 视频解析预处理
    var innerList = [];
    var outerList = [];
    var innerli = "";
    var outerli = "";
    originalInterfaceList.forEach((item, index) => {
        if (item.type == "站内") {
            innerList.push(item);
            innerli += "<li>" + item.name + "</li>";
        } else {
            outerList.push(item);
            outerli += "<li>" + item.name + "</li>";
        }
    });
    parseInterfaceList = innerList.concat(outerList);
    var jiexiDIV = `
        <div style='display:flex;'>
          <div style='width:316px;padding:10px 0;'>
            <div style='font-size:13px;text-align:center;color:#FFFFFF;line-height:21px;'>站内解析</div>
            <ul style='margin:0 10px;'>
              ` + innerli + `
              <div style='clear:both;'></div>
            </ul>
            <div style='font-size:13px;text-align:center;color:#FFFFFF;line-height:21px;'>站外解析</div>
            <ul style='margin:0 10px;'>
              ` + outerli + `
              <div style='clear:both;'></div>
            </ul>
          </div>
        </div>`;

    var SelectedDIV = `
         <div style='display:flex;'>
            <div style='width:316px;padding:10px 0;'>
              <div style='font-size:13px;text-align:center;color:#FFFFFF;line-height:21px;'>视频列表</div>
              <ul style='margin:0 10px;'></ul>
           </div>
         </div>`;

    //视频播放图片按钮
    var left = 0;
    var top = 100;
    var Position = GMgetValue("Position_" + host);
    if(!!Position){
        left = Position.left;
        top = Position.top;
    }
    GMaddStyle(`*{ margin:0; padding:0;}
                body { font-size:12px; text-align:left; list-style:none;}
                #vip_movie_box {cursor:pointer; position:fixed; top:` + top + `px; left:` + left + `px; width:29px; background-color:#FF4500; z-index:2147483647;}
		        #vip_movie_box .item_text {width:28px; padding:4px 0px; text-align:center;}
		        #vip_movie_box .item_text img {width:22px; height:22px; display:inline-block; vertical-align:middle;}
                .vip_mod_box_action {display:none; position:absolute; left:28px; top:0; text-align:center; background-color:#272930; border:1px solid gray;}
                .vip_mod_box_action li{font-size:12px; color:#DCDCDC; text-align:center; width:60px; line-height:21px; float:left; border:1px solid gray; padding:0 4px; margin:4px 2px;}
                .vip_mod_box_action li:hover{color:#FF4500;}
		        #vip_movie_box .selected_text {width:28px; padding:4px 0px; text-align:center;}
		        #vip_movie_box .selected_text img {width:22px; height:22px;display:inline-block; vertical-align:middle;}
                .vip_mod_box_selected {display:none; position:absolute; left:28px; top:0; text-align:center; background-color:#272930; border:1px solid gray;}
                .vip_mod_box_selected li{font-size:14px; color:#DCDCDC; text-align:center; width:23px; height:27px; line-height:27px; float:left; border:1px dashed gray; padding:0 4px; margin:4px 2px;}
                .vip_mod_box_selected li:hover{color:#FF4500;}
                .vip_mod_box_selected .active{color:#FF4500;};`);

    var html = $(`<div id='vip_movie_box'>
                    <div class='item_text'>
                       <img src='`+ ImgBase64 +`' title='视频解析'/>
                       <div class='vip_mod_box_action' >` + jiexiDIV + `</div>
                    </div>
                    <div class='selected_text' >
                       <img src='`+ sImgBase64 +`' title='视频选集'/>
                       <div class='vip_mod_box_selected' >` + SelectedDIV + `</div>
                    </div>
                 </div>`);

    $("body").append(html);

    //视频解析事件处理
    $(".item_text").on("mouseover", () => {
        $(".vip_mod_box_action").show();
    });
    $(".item_text").on("mouseout", () => {
        $(".vip_mod_box_action").hide();
    });
    $(".item_text img").click(() => {
        $.get('https://www.eggvod.cn/jxcode.php',{in:81566699},function(data){
            location.href = 'https://www.eggvod.cn/jx.php?lrspm=' + data + '&zhm_jx='+ location.href;
        });
    });
    $(".vip_mod_box_action li").each((index, item) => {
        item.addEventListener("click", () => {
            if (parseInterfaceList[index].type == "站内") {
                if (document.getElementById("iframe-player") == null) {
                    var player = $(node);
                    player.empty();
                    player.append(videoPlayer);
                }
                innerParse(parseInterfaceList[index].url + location.href);
            } else {
                GMopenInTab(parseInterfaceList[index].url + location.href, false);
            }
        });
    });

    // 右键拖拽功能 - 防止与其他脚本干扰
    var vip_movie_box = $("#vip_movie_box");
    vip_movie_box.mousedown(function(e) {
        // 1 = 鼠标左键; 2 = 鼠标中键; 3 = 鼠标右键
        if (e.which == 3) {
            e.preventDefault() // 阻止默认行为
            vip_movie_box.css("cursor", "move");//设置样式
            var positionDiv = $(this).offset();
            var distenceX = e.pageX - positionDiv.left;
            var distenceY = e.pageY - positionDiv.top;
            // 计算移动后的左偏移量 和 顶部的偏移量(防止超出边界)
            $(document).mousemove(function(e) {
                var x = e.pageX - distenceX;
                var y = e.pageY - distenceY;
                if (x < 0) {
                    x = 0;
                } else if (x > $(document).width() - vip_movie_box.outerWidth(true)) {
                    x = $(document).width() - vip_movie_box.outerWidth(true);
                }
                if (y < 0) {
                    y = 0;
                } else if (y > $(document).height() - vip_movie_box.outerHeight(true)) {
                    y = $(document).height() - vip_movie_box.outerHeight(true);
                }
                // 更新样式
                vip_movie_box.css("left", x);
                vip_movie_box.css("top", y);
                GMsetValue("Position_" + host,{ "left":x, "top":y});
            });
            $(document).mouseup(function() {
                $(document).off('mousemove');
                vip_movie_box.css("cursor", "pointer");// 还原样式
            });
            $(document).contextmenu(function(e) {
                e.preventDefault();// 阻止右键菜单默认行为
            })
        }
    });

    //视频广告加速模块
    function method1() {
        window._setTimeout = window.setTimeout
        window.setTimeout = function (handler, timeout, ...arg) {
            window._setTimeout(handler, timeout / 30, ...arg);
        }
    }

    //视频广告加速模块
    function method2() {
        window._setInterval = window.setInterval
        window.setInterval = function (handler, timeout, ...arg) {
            window._setInterval(handler, timeout / 30, ...arg);
        }
    }

    //视频广告加速模块
    function method3() {
        window.rate = 0
        window.Date.now = () => {
            return new window.Date().getTime() + (window.rate += 100000);
        }
        setInterval(() => {
            window.rate = 0
        }, 600000)
    }

    //视频广告加速模块
    function youku() {
        window.onload = function () {
            if (!document.querySelectorAll('video')[0]) {
                setInterval(() => {
                    document.querySelectorAll('video')[1].playbackRate = 16;
                }, 100)
            }
        }
    }

    //视频广告加速模块
    function qq() {
        setInterval(() => {
            if (document.querySelectorAll('video')[0].status == 'IDLE') {
                setInterval(() => {
                    document.querySelectorAll('video')[2].playbackRate = 16;
                    document.querySelectorAll('video')[3].playbackRate = 16;
                }, 100)
            }
        }, 100)
    }

    // 视频选集预处理
    Selected();
    function selectedList(episodeList) {
        var innerList = [];
        var innerli = "";
        if (!!episodeList && episodeList.length != 0) {
            episodeList.sort((d1, d2) => { //排序
                var aText1Value = parseInt(d1.name);
                var aText2Value = parseInt(d2.name);
                if (isNaN(aText1Value) || isNaN(aText2Value)) {
                    return 0;
                } else {
                    return aText1Value - aText2Value;
                }
            });
            episodeList.forEach((item, index) => {
                innerList.push(item);
                innerli += "<li class='' title='" + item.description + "'>" + item.name + "</li>";
            });
            var selectedList = innerList;
            $(".vip_mod_box_selected ul").append(innerli);

            //视频选集事件处理
            $(".selected_text").on("mouseover", () => {
                $(".vip_mod_box_selected").show();
            });
            $(".selected_text").on("mouseout", () => {
                $(".vip_mod_box_selected").hide();
            });
            $(".vip_mod_box_selected li").click(() => {
                $(this).addClass("active");
            });
            $(".vip_mod_box_selected li").each((index, item) => {
                item.addEventListener("click", () => {
                    if (document.getElementById("iframe-player") == null) {
                        var player = $(node);
                        player.empty();
                        player.append(videoPlayer);
                    }
                    var num = Math.floor(Math.random() * parseInterfaceList.length + 10); //使用随机接口
                    innerParse(parseInterfaceList[num].url + selectedList[index].href);
                });
            });
        }
    }

    //支持电视剧选集
    function Selected(){
        if(host === "v.qq.com"){
            window.onload = function () {
                var episodeList = [];
                var barTotal = "";
                var barlis = $(".mod_episode_filter").find(".item");
                barTotal = barlis.length;
                if(barTotal == 0){
                    barTotal = 1;
                }
                for (var page = 1; page <= barTotal; page++) {
                    $("span[class='item']").click();
                    var mod_episode = $(".mod_episode");
                    if (mod_episode.attr("data-tpl") == "episode"){
                        mod_episode.find(".item").each(function () {
                            var a = $(this).find("a");
                            var href = a.attr("href");
                            var markText = $(this).find("img[srcset='https://puui.qpic.cn/vupload/0/20190920_ammuq5ie285/0 2x']");
                            if (markText.length == 0 && !!href) {
                                href = "https://v.qq.com" + href;
                                var name = a.text();
                                name = name.replace(/\s/g, "");
                                episodeList.push({
                                    "name": name,
                                    "href": href,
                                    "description": ""
                                });
                            }
                        });
                    }
                }
                selectedList(episodeList);
            }
        } else if(host === "www.iqiyi.com"){
            window.onload = function () {
                var i71playpagesdramalist = $("div[is='i71-play-ab']");
                if (i71playpagesdramalist.length != 0) {
                    var data = i71playpagesdramalist.attr(":page-info");
                    if (!!data) {
                        var dataJson = JSON.parse(data);
                        var albumId = dataJson.albumId;
                        var barTotal = "";
                        var barlis = $(".qy-episode-tab").find(".bar-li");
                        barTotal = barlis.length;
                        if(barTotal == 0){
                            barTotal = 1;
                        }
                        for (var page = 1; page <= barTotal; page++) {
                            GM_xmlhttpRequest({
                                url: "https://pcw-api.iqiyi.com/albums/album/avlistinfo?aid=" + albumId + "&page=" + page + "&size=30",
                                method: "GET",
                                headers: {
                                    "Content-Type": "application/x-www-form-urlencoded"
                                },
                                onload: function (response) {
                                    var episodeList = [];
                                    var status = response.status;
                                    if (status == 200 || status == '200') {
                                        var serverResponseJson = JSON.parse(response.responseText);
                                        var code = serverResponseJson.code;
                                        if (code == "A00000") {
                                            var serverEpsodelist = serverResponseJson.data.epsodelist;
                                            //console.log(serverEpsodelist)
                                            for (var i = 0; i < serverEpsodelist.length; i++) {
                                                var name = serverEpsodelist[i].order;
                                                var href = serverEpsodelist[i].playUrl;
                                                var description = serverEpsodelist[i].subtitle;
                                                episodeList.push({
                                                    "name": name,
                                                    "href": href,
                                                    "description": description
                                                });
                                            }
                                            selectedList(episodeList);
                                        }
                                    }
                                }
                            });
                        }
                    }
                }
            }
        } else if(host === "www.mgtv.com"){
            window.onload = function () {
                var str = location.href;
                var index = str .lastIndexOf("\/");//斜杠 分割
                str = str.substring(index + 1, str.length);
                index = str.lastIndexOf(".html");
                var albumId = str.substring(0, index);
                //console.log(albumId)
                var barTotal = "";
                var barlis = $(".episode-header").find("a");
                barTotal = barlis.length;
                if(barTotal == 0){
                    barTotal = 1;
                }
                for (var page = 1; page <= barTotal; page++) {
                    GM_xmlhttpRequest({
                        url: "https://pcweb.api.mgtv.com/episode/list?_support=10000000&video_id=" + albumId + "&page=" + page + "&size=30",
                        method: "GET",
                        headers: {
                            "Content-Type": "application/x-www-form-urlencoded"
                        },
                        onload: function (response2) {
                            var episodeList2 = [];
                            var status = response2.status;
                            if (status == 200 || status == '200') {
                                var serverResponseJson = JSON.parse(response2.responseText);
                                var code = serverResponseJson.code;
                                if (code == "200") {
                                    var serverEpsodelist = serverResponseJson.data.list;
                                    //console.log(serverEpsodelist)
                                    for (var i = 0; i < serverEpsodelist.length; i++) {
                                        var name = serverEpsodelist[i].t1;
                                        var href = serverEpsodelist[i].url;
                                        href = "https://www.mgtv.com" + href;
                                        var description = serverEpsodelist[i].t2;
                                        episodeList2.push({
                                            "name": name,
                                            "href": href,
                                            "description": description
                                        });
                                    }
                                    selectedList(episodeList2);
                                }
                            }
                        }
                    });
                }
            }
        } else if(host === "v.youku.com"){
            window.onload = setTimeout(function () {
                var episodeList = [];
                $(".anthology-content").find(".box-item").each(function () {
                    var title = $(this).attr("title");
                    var href = $(this).attr("href");
                    var markText = $(this).find(".mark-text");
                    if (markText.length == 0 || "预告".indexOf(markText.text) == -1) {
                        if (!!href) {
                            var name = title;
                            var arr = name.split(" ");
                            if (arr.length >= 2) name = arr[arr.length - 1];
                            name = name.replace(/[^0-9]/ig, "");
                            if (!!name) {
                                episodeList.push({
                                    "name": name,
                                    "href": href,
                                    "description": title
                                });
                            }
                        }
                    }
                });
                selectedList(episodeList);
            }, 1000);
        } else if(host === "tv.sohu.com"){
            window.onload = function () {
                var episodeList = [];
                var barTotal = "";
                var barlis = $(".menu_sub").find(".menu_sub_item");
                barTotal = barlis.length;
                if(barTotal == 0){
                    barTotal = 1;
                }
                for (var page = 1; page <= barTotal; page++) {
                    if(barTotal >= 2){
                        $("li[data-tab-index='"+ page +"']").click();
                    }
                    $(".j-list-wrap").find("li").each(function () {
                        var a = $(this).find("a");
                        var markText = $(this).find(".tips_yu");
                        if (markText.length == 0 && !!a ) {
                            var name = $(this).attr("data-order");
                            var href = a.attr("href");
                            var title = a.attr("data-title");
                            if (!!name && !!href) {
                                href = "https" + href;
                                episodeList.push({
                                    "name": name,
                                    "href": href,
                                    "description": title
                                });
                                //console.log({"name":name, "href":href, "description":title});
                            }
                        }
                    });
                }
                selectedList(episodeList);
            }
        }
    }

    //屏蔽网站广告 或 广告插件屏蔽广告后的优化
    switch (host) {
        case 'www.iqiyi.com':
            method3(); //视频广告加速
            setInterval(() => {
                if (document.getElementsByClassName("cupid-public-time")[0] != null) {
                    $(".skippable-after").css("display", "block");
                    document.getElementsByClassName("skippable-after")[0].click(); //屏蔽广告
                }
                $(".qy-player-vippay-popup").css("display", "none"); //移除会员登录提示
            }, 500);
            break
        case 'v.qq.com':
            qq(); //视频广告加速
            setInterval(() => {
                var txp_btn_volume = $(".txp_btn_volume"); //打开声音
                if (txp_btn_volume.attr("data-status") === "mute") {
                    $(".txp_popup_volume").css("display", "block");
                    txp_btn_volume.click();
                    $(".txp_popup_volume").css("display", "none");
                }
                $("txpdiv[data-role='hd-ad-adapter-adlayer']").attr("class", "txp_none"); //屏蔽广告
                $(".mod_vip_popup").css("display", "none"); //移除会员登录提示
                $(".tvip_layer").css("display", "none"); //遮罩层
                $("#mask_layer").css("display", "none"); //遮罩层

            }, 500);
            break
        case 'v.youku.com':
            youku(); //视频广告加速
            setInterval(() => {
                var H5 = $(".h5-ext-layer").find("div")
                if(H5.length != 0){
                    $(".h5-ext-layer div").remove(); //屏蔽广告
                    var control_btn_play = $(".control-left-grid .control-play-icon"); //自动播放
                    if (control_btn_play.attr("data-tip") === "播放") {
                        $(".h5player-dashboard").css("display", "block"); //显示控制层
                        control_btn_play.click();
                        $(".h5player-dashboard").css("display", "none"); //隐藏控制层
                    }
                }
                $(".information-tips").css("display", "none"); //信息提示
            }, 500);
            break
        case 'www.mgtv.com':
            break
        case 'tv.sohu.com':
            setInterval(() => {
                $(".x-video-adv").css("display", "none");//屏蔽广告
                $(".x-player-mask").css("display", "none");//广告提示
                $("#player_vipTips").css("display", "none");//移除会员登录提示
            }, 500);
            break
        case 'film.sohu.com':
            break
        case 'www.le.com':
            break
        case 'video.tudou.com':
            break
        case 'v.pptv.com':
            break
        case 'vip.pptv.com':
            break
        case 'www.wasu.cn':
            break
        case 'www.fun.tv':
            setInterval(() => {
                var control_btn_play = $(".fxp-controlbar .btn-toggle"); //自动播放
                if (control_btn_play.is('.btn-play')) {
                    control_btn_play.click();
                }
            }, 500);
            break
        case 'www.acfun.cn':
            break
        case 'www.bilibili.com':
            break
        case 'vip.1905.com':
            break
        case 'www.56.com':
            break
        default:
            break
    }
})();