Greasy Fork is available in English.

视频跳过广告和 VIP 视频解析

也许是风格最贴近原视频网站的 VIP 视频解析脚本了,添加的解析按钮样式跟原视频网站已有的按钮一致,不会产生突兀感,支持腾讯视频、爱奇艺、优酷、土豆、芒果 TV、搜狐视频、乐视视频等,支持多个解析接口切换,支持站内站外解析

Version au 05/11/2018. Voir la dernière version.

// ==UserScript==
// @name              视频跳过广告和 VIP 视频解析
// @name:en           Kill ADs and Watch VIP Videos
// @namespace         http://mofiter.com/
// @version           0.7
// @description       也许是风格最贴近原视频网站的 VIP 视频解析脚本了,添加的解析按钮样式跟原视频网站已有的按钮一致,不会产生突兀感,支持腾讯视频、爱奇艺、优酷、土豆、芒果 TV、搜狐视频、乐视视频等,支持多个解析接口切换,支持站内站外解析
// @description:en    maybe it's the most similar VIP videos script to origin website
// @author            mofiter
// @create            2018-10-05
// @lastmodified      2018-11-05
// @require           https://cdn.bootcss.com/jquery/1.12.4/jquery.min.js
// @match             http*://v.qq.com/x/cover/*
// @match             http*://v.qq.com/x/page/*
// @match             http*://www.iqiyi.com/v*
// @match             http*://v.youku.com/v_show/*
// @match             http*://www.mgtv.com/b/*
// @match             http*://tv.sohu.com/v/*
// @match             http*://film.sohu.com/album/*
// @match             http*://www.le.com/ptv/vplay/*
// @match             http*://video.tudou.com/v/*
// @grant             unsafeWindow
// @grant             GM_openInTab
// ==/UserScript==

(function() {
    'use strict';
    var $ = $ || window.$;
    var log_count = 1;

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

    function innerParse(id,url){
        if(id == "sigu-jiexi"){
            $("#iframe-player").attr("src","https://api.bbbbbb.me/jx/?url=" + url);
        }else if(id == "927-jiexi"){
            $("#iframe-player").attr("src","https://api.927.la/vip/?url=" + url);
        }else if(id == "yunbofang-jiexi"){
            $("#iframe-player").attr("src","https://cdn.yangju.vip/k/?url=" + url);
        }
    }

    setTimeout(function(){
        var parseList = "<ul><li id='927-jiexi'>927解析(站内)</li><li id='yunbofang-jiexi'>云播放解析(站内)</li><li id='sigu-jiexi'>思古解析(站内)</li><li id='biaoge-jiexi'>大表哥解析(站外)</li><li id='baiyug-jiexi'>百域学院解析(站外)</li><li id='m1907-jiexi'>m1907解析(站外)</li><li id='1717yun-jiexi'>1717云解析(站外)</li></ul>";
        var videoPlayer = $("<div id='iframe-div' style='width:100%;height:100%;z-index:2147483647;'><iframe id='iframe-player' frameborder='0' width='100%' height='100%'></iframe></div>");
        var fullScreenBtn = $("<span style='position:absolute;bottom:10px;right:20%;color:white;cursor:pointer;display:none;'>全屏</span>");
        videoPlayer.append(fullScreenBtn);
        fullScreenBtn.click(()=>{
            var el = document.getElementById("iframe-div");
            var rfs = el.requestFullScreen || el.webkitRequestFullScreen || el.mozRequestFullScreen || el.msRequestFullscreen;
            if(typeof rfs != "undefined" && rfs) {
                rfs.call(el);
            };
            return;
        });
        $(videoPlayer).mouseenter(function(){
            fullScreenBtn.show();
            setTimeout(()=>{
                fullScreenBtn.hide();
            },3000);
        });
        if (location.href.indexOf("www.iqiyi.com") > -1){
            var qy_flash_func = $(".qy-flash-func");
            var iqiyi_jiexi = $("<article class='func-item' style='margin-top:9px;'><span class='func-inner fn-iqiyi-jiexi-text'><span class='func-name'>解析</span></span>" +
                                "<div class='qy-func-jiexi-pop fn-iqiyi-jiexi' style='display:none;position:absolute;top:34px;left:-50px;width:120px;text-align:center;line-height:25px;'><div class='qy-popup-box'><div class='popup-box-arrow'><span class='popup-box-arrowOut'><i class='popup-box-arrowIn'></i></span></div>" +
                                parseList + "</div></div></article>");
            qy_flash_func.prepend(iqiyi_jiexi);
            iqiyi_jiexi.on("mouseover",()=>{
                $(".qy-func-jiexi-pop").show();
            });
            iqiyi_jiexi.on("mouseout",()=>{
                $(".qy-func-jiexi-pop").hide();
            });
            $(".fn-iqiyi-jiexi-text").click(()=>{
                if(document.getElementById("iframe-player") == null){
                    document.getElementById("nav_LR").querySelector("a").click();
                    var flashbox = $("#flashbox");
                    flashbox.attr("z-index","400");
                    flashbox.empty();
                    flashbox.append(videoPlayer);
                }
                innerParse("927-jiexi",location.href);
            });
            $(".fn-iqiyi-jiexi li").each((index,item)=>{
                $(item).on('mouseover',()=>{
                    $(item).css('cursor','pointer');
                    $(item).css('color','#01be07');
                });
                $(item).on('mouseout',()=>{
                    $(item).css('color','#000000');
                });
                $(item).on('click',()=>{
                    if(item.id == "sigu-jiexi" || item.id == "927-jiexi" || item.id == "yunbofang-jiexi"){
                        if(document.getElementById("iframe-player") == null){
                            document.getElementById("nav_LR").querySelector("a").click();
                            var flashbox = $("#flashbox");
                            flashbox.attr("z-index","400");
                            flashbox.empty();
                            flashbox.append(videoPlayer);
                        }
                        innerParse(item.id,location.href);
                    }
                });
            });
            var iqiyi_jiexi_new = $("<div style='float:left;color:#999;cursor:pointer;'><span class='func-name'>解析</span></div>");
            var funcRight = $(".funcRight");
            funcRight.prepend(iqiyi_jiexi_new);
            iqiyi_jiexi_new.click(()=>{
                var vipFloatbgCls = $(".vipFloatbgCls").parent();
                $(vipFloatbgCls).css("display","none");
                $(".J_play-underFrame").css("display","none");
                document.getElementsByClassName("usrTx-register")[0].querySelector("a").click()
                $("#flashbox").empty();
                $("#flashbox").append(videoPlayer);
            });
            iqiyi_jiexi_new.on("mouseover",()=>{
                iqiyi_jiexi_new.css("color","#6ba430");
            });
            iqiyi_jiexi_new.on("mouseout",()=>{
                iqiyi_jiexi_new.css("color","#999");
            });
            setInterval(()=>{
                if($(".qy-player-vippay-popup") != null){
                    var qy_player_vippay_popup = $(".qy-player-vippay-popup").parent();
                    $(qy_player_vippay_popup).css("display","none");
                }
                var div = $("body").children("div");
                div.each((index,item)=>{
                    try{
                        if($(item).css("position") === "fixed"){
                            $(item).remove();
                        }
                    }catch(err){
                        mylog(err);
                    }
                });
            },500);
        }else if(location.href.indexOf("v.qq.com") > -1){
            var type_name = unsafeWindow.COVER_INFO.type_name;
            var vipPage = unsafeWindow.COVER_INFO.vipPage;
            var mod_player;
            if(type_name === "电影"){
                var list_item = $(".mod_figure_list .list_item");
                list_item.each(function(index,item){
                    item.addEventListener('click',()=>{
                        setTimeout(()=>{
                            location.reload();
                        },1000);
                    });
                });
            }else if(type_name === "电视剧" || type_name === "动漫"){
                var select_items = $('.mod_episode .item');
                select_items.each(function(index,item){
                    item.addEventListener('click',()=>{
                        setTimeout(()=>{
                            location.reload();
                        },1000);
                    });
                });
                var mod_episode_filter = $(".mod_episode_filter");
                mod_episode_filter.click(()=>{
                    var select_items = $('.mod_episode .item');
                    select_items.each(function(index,item){
                        item.addEventListener('click',()=>{
                            setTimeout(()=>{
                                location.reload();
                            },1000);
                        });
                    });
                });
            }
            var action_wrap = $(".action_wrap");
            var qq_jiexi = $("<div class='action_item' style='position:relative;'><a class='action_title fn-qq-jiexi-text'><span>解析</span></a><div class='mod_pop_action fn-qq-jiexi' style='background-color:#fff;width:120px;left:-50px;text-align:center;line-height:25px;'>" +
                             parseList + "</div></div>");
            action_wrap.append(qq_jiexi);
            qq_jiexi.on("mouseover",()=>{
                $(".fn-qq-jiexi").show();
            });
            qq_jiexi.on("mouseout",()=>{
                $(".fn-qq-jiexi").hide();
            });
            $(".fn-qq-jiexi-text").click(()=>{
                if(document.getElementById("iframe-player") == null){
                    var mod_player;
                    var txp_ad_skip_text = $(".txp_ad_inner .txp_ad_skip_text");
                    if(txp_ad_skip_text.text() === "VIP可关闭广告"){
                        txp_ad_skip_text.click();
                        mod_player = $("#mod_player");
                        mod_player.empty();
                        mod_player.append(videoPlayer);
                    }else if(txp_ad_skip_text.text() === "关闭广告"){
                        txp_ad_skip_text.click();
                    }else if(vipPage === true){
                        var txp_btn_play = $(".txp_left_controls .txp_btn_play");
                        if(txp_btn_play.attr("data-status") === "pause"){
                            txp_btn_play.click();
                        }
                        mod_player = $("#mod_player");
                        mod_player.empty();
                        mod_player.append(videoPlayer);
                    }
                }
                innerParse("927-jiexi",location.href);
            });
            $(".fn-qq-jiexi li").each((index,item)=>{
                $(item).on('mouseover',()=>{
                    $(item).css('cursor','pointer');
                    $(item).css('color','#fe6527');
                });
                $(item).on('mouseout',()=>{
                    $(item).css('color','#999999');
                });
                $(item).on('click',()=>{
                    if(item.id == "sigu-jiexi" || item.id == "927-jiexi" || item.id == "yunbofang-jiexi"){
                        if(document.getElementById("iframe-player") == null){
                            var mod_player;
                            var txp_ad_skip_text = $(".txp_ad_inner .txp_ad_skip_text");
                            if(txp_ad_skip_text.text() === "VIP可关闭广告"){
                                txp_ad_skip_text.click();
                                mod_player = $("#mod_player");
                                mod_player.empty();
                                mod_player.append(videoPlayer);
                            }else if(txp_ad_skip_text.text() === "关闭广告"){
                                txp_ad_skip_text.click();
                            }else if(vipPage === true){
                                var txp_btn_play = $(".txp_left_controls .txp_btn_play");
                                if(txp_btn_play.attr("data-status") === "pause"){
                                    txp_btn_play.click();
                                }
                                mod_player = $("#mod_player");
                                mod_player.empty();
                                mod_player.append(videoPlayer);
                            }
                        }
                        innerParse(item.id,location.href);
                    }
                });
            });
            setInterval(()=>{
                $(".tvip_layer").css("display","none");
                $("#mask_layer").css("display","none");
            },500);
        }else if(location.href.indexOf("v.youku.com") > -1){
            setInterval(()=>{
                $(".yk-dmtxtbox").css("width","300px");
            },1000);
            var bpmodule_playpage_paction = $("#bpmodule-playpage-paction .play-fn");
            var youku_jiexi = $("<li class='fn-download fn-youku-jiexi'><span class='fn-title'><i class='fn-icon'></i></span><span class='text fn-youku-jiexi-text'>解析</span>" +
                                "<div class='fn-panel'><ul><li id='927-jiexi'>----------927解析(站内)----------</li><li id='yunbofang-jiexi'>---------云播放解析(站内)---------</li>" +
                                "<li id='sigu-jiexi'>----------思古解析(站内)----------</li><li id='biaoge-jiexi'>---------大表哥解析(站外)---------</li>" +
                                "<li id='baiyug-jiexi'>--------百域学院解析(站外)--------</li><li id='m1907-jiexi'>---------m1907解析(站外)---------</li><li id='1717yun-jiexi'>---------1717云解析(站外)---------</li></ul></div></li>");
            bpmodule_playpage_paction.append(youku_jiexi);
            $(".fn-youku-jiexi-text").click(()=>{
                if(document.getElementById("iframe-player") == null){
                    var ykPlayer = $("#ykPlayer");
                    ykPlayer.empty();
                    ykPlayer.append(videoPlayer);
                    $("#module_basic_player").css("height","100%");
                    var player = $("#player");
                    player.css("height","100%");
                    player.empty();
                    player.append(videoPlayer);
                }
                innerParse("927-jiexi",location.href);
            });
            $(".fn-youku-jiexi li").each((index,item)=>{
                $(item).on('mouseover',()=>{
                    $(item).css('cursor','pointer');
                    $(item).css('color','#2592ff');
                });
                $(item).on('mouseout',()=>{
                    $(item).css('color','#333');
                });
                $(item).on('click',()=>{
                    if(item.id == "sigu-jiexi" || item.id == "927-jiexi" || item.id == "yunbofang-jiexi"){
                        if(document.getElementById("iframe-player") == null){
                            var ykPlayer = $("#ykPlayer");
                            ykPlayer.empty();
                            ykPlayer.append(videoPlayer);
                            $("#module_basic_player").css("height","100%");
                            var player = $("#player");
                            player.css("height","100%");
                            player.empty();
                            player.append(videoPlayer);
                        }
                        innerParse(item.id,location.href);
                    }
                });
            });
        }else if(location.href.indexOf("www.mgtv.com") > -1){
            var v_panel_box = $(".v-panel-box");
            var mgtv_jiexi = $("<div class='v-panel-mod fn-mgtv-jiexi' style='cursor:pointer;'><a class='v-panel-submod fn-mgtv-jiexi-text'>解析</a>" +
                               "<div class='extend' style='top:-5px;left:-50px;width:120px;text-align:center;position:relative;'><div class='v-panel-extend'><div class='fn-panel'>" +
                               parseList + "</div></div></div></div>");
            v_panel_box.append(mgtv_jiexi);
            mgtv_jiexi.on("mouseover",()=>{
                $(".fn-mgtv-jiexi .extend").show();
            });
            mgtv_jiexi.on("mouseout",()=>{
                $(".fn-mgtv-jiexi .extend").hide();
            });
            $(".fn-mgtv-jiexi-text").click(()=>{
                if(document.getElementById("iframe-player") == null){
                    var mgtv_player_wrap = $("#mgtv-player-wrap");
                    mgtv_player_wrap.empty();
                    mgtv_player_wrap.append(videoPlayer);
                }
                innerParse("927-jiexi",location.href);
            });
            $(".fn-mgtv-jiexi li").each((index,item)=>{
                $(item).on('mouseover',()=>{
                    $(item).css('color','#ff6f00');
                });
                $(item).on('mouseout',()=>{
                    $(item).css('color','#666');
                });
                $(item).on('click',()=>{
                    if(item.id == "sigu-jiexi" || item.id == "927-jiexi" || item.id == "yunbofang-jiexi"){
                        if(document.getElementById("iframe-player") == null){
                            var mgtv_player_wrap = $("#mgtv-player-wrap");
                            mgtv_player_wrap.empty();
                            mgtv_player_wrap.append(videoPlayer);
                        }
                        innerParse(item.id,location.href);
                    }
                });
            });
            var selected_items = $(".aside-tabbox li");
            selected_items.each(function(index,item){
                item.addEventListener('click',()=>{
                    setTimeout(()=>{
                        location.reload();
                    },1000);
                });
            });
        }else if(location.href.indexOf("tv.sohu.com") > -1){
            var vBox_right = $(".vBox-right");
            var sohu_jiexi = $("<div class='vBox vBox-play'><a class='vbtn'>解析</a><div class='vCont fn-sohu-jiexi' style='padding:0;'><ul style='line-height:25px;text-align:center;'>" +
                               "<li id='927-jiexi'>-------------927解析(站内)-------------</li><li id='yunbofang-jiexi'>-----------云播放解析(站内)-----------</li><li id='sigu-jiexi'>-------------思古解析(站内)-------------</li><li id='biaoge-jiexi'>-----------大表哥解析(站外)-----------</li>" +
                               "<li id='baiyug-jiexi'>----------百域学院解析(站外)----------</li><li id='m1907-jiexi'>-----------m1907解析(站外)-----------</li><li id='1717yun-jiexi'>-----------1717云解析(站外)-----------</li></ul></div></div>");
            vBox_right.prepend(sohu_jiexi);
            sohu_jiexi.click(()=>{
                $(".fn-sohu-jiexi").toggle();
            });
            $(".fn-sohu-jiexi li").each((index,item)=>{
                $(item).on('mouseover',()=>{
                    $(item).css('cursor','pointer');
                    $(item).css('color','#e33c30');
                });
                $(item).on('mouseout',()=>{
                    $(item).css('color','#a1a1a1');
                });
                $(item).on('click',()=>{
                    if(item.id == "sigu-jiexi" || item.id == "927-jiexi" || item.id == "yunbofang-jiexi"){
                        if(document.getElementById("iframe-player") == null){
                            var player_vipTips = $("#player_vipTips");
                            player_vipTips.css("display","none");
                            if(document.querySelector("#menu") == null){
                                var sohuplayer = $("#sohuplayer");
                                sohuplayer.empty();
                                sohuplayer.append(videoPlayer);
                            }else{
                                var player = $("#player");
                                player.empty();
                                player.append(videoPlayer);
                            }
                        }
                        innerParse(item.id,location.href);
                    }
                });
            });
        }else if(location.href.indexOf("film.sohu.com") > -1){
            var player_content_info = $(".player-content-info");
            var sohu_film_jiexi = $("<div class='action-item'><a class='action-title fn-sohu-jiexi-text'><span class='ico-text'>解析</span><i class='ico-down'></i></a><div class='hover-content fn-sohu-jiexi' style='width:120px;line-height:25px;text-align:center;margin-left:-61px;'>" +
                                    parseList + "</div></div>");
            player_content_info.prepend(sohu_film_jiexi);
            sohu_film_jiexi.on("mouseover",()=>{
                $(".fn-sohu-jiexi").show();
            });
            sohu_film_jiexi.on("mouseout",()=>{
                $(".fn-sohu-jiexi").hide();
            });
            $(".fn-sohu-jiexi-text").click(()=>{
                if(document.getElementById("iframe-player") == null){
                    var playerWrap = $("#playerWrap");
                    playerWrap.empty();
                    playerWrap.append(videoPlayer);
                }
                innerParse("927-jiexi",location.href);
            });
            $(".fn-sohu-jiexi li").each((index,item)=>{
                $(item).on('mouseover',()=>{
                    $(item).css('cursor','pointer');
                    $(item).css('color','#ee3c3a');
                });
                $(item).on('mouseout',()=>{
                    $(item).css('color','#090909');
                });
                $(item).on('click',()=>{
                    if(item.id == "sigu-jiexi" || item.id == "927-jiexi" || item.id == "yunbofang-jiexi"){
                        if(document.getElementById("iframe-player") == null){
                            var playerWrap = $("#playerWrap");
                            playerWrap.empty();
                            playerWrap.append(videoPlayer);
                        }
                        innerParse(item.id,location.href);
                    }
                });
            });
        }else if(location.href.indexOf("www.le.com") > -1){
            var interact_area = $(".interact_area");
            var le_jiexi = $("<li><a class='fn-le-jiexi-text'><span>解析</span></a><div class='fn-le-jiexi' style='display:none;width:120px;background-color:#fff;position:absolute;top:45px;left:-40px;border-top:2px solid #E42112;box-shadow:0 2px 6px 0 rgba(0,0,0,.1);'>" +
                             parseList + "</div></li>");
            interact_area.prepend(le_jiexi);
            le_jiexi.on("mouseover",()=>{
                $(".fn-le-jiexi").show();
            });
            le_jiexi.on("mouseout",()=>{
                $(".fn-le-jiexi").hide();
            });
            $(".fn-le-jiexi-text").click(()=>{
                if(document.getElementById("iframe-player") == null){
                    var le_playbox = $("#le_playbox");
                    le_playbox.empty();
                    le_playbox.append(videoPlayer);
                }
                innerParse("927-jiexi",location.href);
            });
            $(".fn-le-jiexi li").each((index,item)=>{
                $(item).css('height','25px');
                $(item).css('padding','0 5px');
                $(item).on('mouseover',()=>{
                    $(item).css('color','#e42013');
                });
                $(item).on('mouseout',()=>{
                    $(item).css('color','#999999');
                });
                $(item).on('click',()=>{
                    if(item.id == "sigu-jiexi" || item.id == "927-jiexi" || item.id == "yunbofang-jiexi"){
                        if(document.getElementById("iframe-player") == null){
                            var le_playbox = $("#le_playbox");
                            le_playbox.empty();
                            le_playbox.append(videoPlayer);
                        }
                        innerParse(item.id,location.href);
                    }
                });
            });
        }else if(location.href.indexOf("video.tudou.com") > -1){
            var td_interactbox = $(".td-interactbox__fn--right");
            var tudou_jiexi = $("<div class='td-interactbox__fn__item'><div class='dropdown'><div class='tudou-jiexi-text' style='cursor:pointer;color:#fff;'>解析</div><div class='dropdown__panel fn-tudou-jiexi' style='width:150px;text-align:center;line-height:25px;left:-60px;'>" +
                                "<div class='dropdown__panel__pointer' style='right:50%;'></div>" + parseList + "</div></div></div>");
            td_interactbox.prepend(tudou_jiexi);
            tudou_jiexi.on("mouseover",()=>{
                $(".tudou-jiexi-text").css("color","#ef6f2e");
                $(".fn-tudou-jiexi").show();
            });
            tudou_jiexi.on("mouseout",()=>{
                $(".tudou-jiexi-text").css("color","#fff");
                $(".fn-tudou-jiexi").hide();
            });
            $(".tudou-jiexi-text").click(()=>{
                if(document.getElementById("iframe-player") == null){
                    var js_player = $(".td-playbox");
                    js_player.empty();
                    js_player.append(videoPlayer);
                }
                innerParse("927-jiexi",location.href);
            });
            $(".fn-tudou-jiexi li").each((index,item)=>{
                $(item).on('mouseover',()=>{
                    $(item).css('cursor','pointer');
                    $(item).css('color','#ef6f2e');
                });
                $(item).on('mouseout',()=>{
                    $(item).css('color','#666666');
                });
                $(item).on('click',()=>{
                    if(item.id == "sigu-jiexi" || item.id == "927-jiexi" || item.id == "yunbofang-jiexi"){
                        if(document.getElementById("iframe-player") == null){
                            var js_player = $(".td-playbox");
                            js_player.empty();
                            js_player.append(videoPlayer);
                        }
                        innerParse(item.id,location.href);
                    }
                });
            });
        }
        $("#biaoge-jiexi").click(()=>{
            GM_openInTab('http://jx.biaoge.tv/index.php?url=' + location.href,{active:true});
        });
        $("#baiyug-jiexi").click(()=>{
            GM_openInTab('http://app.baiyug.cn:2019/vip/?url=' + location.href,{active:true});
        });
        $("#m1907-jiexi").click(()=>{
            GM_openInTab('https://z1.m1907.cn/?jx=' + location.href,{active:true});
        });
        $("#1717yun-jiexi").click(()=>{
            GM_openInTab('http://www.1717yun.com/jx/ty.php?url=' + location.href,{active:true});
        });
    },3000);
})();