// ==UserScript== // @name VIP视频解析 // @namespace xiaosu // @version 1.0.0 // @description 全网VIP视频解析 // @author xiaosu ,基于Biuabc的版本做了一些解析入口调整 // @license xiaosu // @include *v.youku.com/v_* // @include *m.youku.com/v* // @include *m.youku.com/a* // @include *v.qq.com/x/* // @include *v.qq.com/play* // @include *v.qq.com/cover* // @include *v.qq.com/tv/* // @include *film.sohu.com/album/* // @include *tv.sohu.com/* // @include *.iqiyi.com/v_* // @include *.iqiyi.com/w_* // @include *.iqiyi.com/a_* // @include *.le.com/ptv/vplay/* // @include *.tudou.com/listplay/* // @include *.tudou.com/albumplay/* // @include *.tudou.com/programs/view/* // @include *.tudou.com/v* // @include *.mgtv.com/b/* // @include *.acfun.cn/v/* // @include *.bilibili.com/video/* // @include *.bilibili.com/anime/* // @include *.bilibili.com/bangumi/play/* // @include *.pptv.com/show/* // @include *://*.baofeng.com/play/* // @downloadURL none // ==/UserScript== (function() { /* * 自定义区域 * 变量值可自行更改 */ // 主颜色(图标整体颜色,如方框颜色) const mianColor = "#1E1E28"; // 副颜色(图标层次颜色,如字体颜色) const secondColor = "#f3f1e7"; // 图标右边框距离 const iconMarginLeft = 2; // 图标上边框距离 const iconMarginTop = 150; // 图标宽(最小30) var iconWidth = 45; // 图标高(图标大小) const iconHeight = 35; // 图标圆角比例(当高、宽一致时,0.5为圆圈) const iconFilletPercent = 0.3; // 解析接口菜单框展开的高度 var developMenuHeight = 220; // 解析接口菜单框展开的速度(如果展开动画卡顿请设置0,单位是秒) var developMenuSecond = 0; // 解析接口(可多个) const parseInterfaces =[ {"name":"百域","url":"https://jx.618g.com/?url="}, {"name":"全民","url":"https://jx.quanmingjiexi.com/?url="}, {"name": "天翼", "type": "1,3", "url": "https://jsap.attakids.com/?url="}, {"name": "xixicai", "type": "3", "url": "https://laisoyiba.com/mov/s/?sv=3&url="}, {"name": "综合/B站", "type": "1,3", "url": "https://jx.bozrc.com:4433/player/?url="}, {"name": "m1907", "type": "1,2", "url": "https://z1.m1907.cn/?jx="}, {"name": "Player-JY", "type": "1,3", "url": "https://jx.playerjy.com/?url="}, {"name": "虾米", "type": "1,3", "url": "https://jx.xmflv.com/?url="}, {"name": "OK解析", "type": "1,3", "url": "https://okjx.cc/?url="}, {"name": "乐多", "type": "1,3", "url": "https://api.leduotv.com/wp-api/ifr.php?isDp=1&vid="}, {"name": "yparse", "type": "1,2", "url": "https://jx.yparse.com/index.php?url="}, {"name": "MAO", "type": "1,3", "url": "https://www.mtosz.com/m3u8.php?url="}, {"name": "诺讯", "type": "1,3", "url": "https://www.nxflv.com/?url="}, {"name": "M3U8TV", "type": "1,3", "url": "https://jx.m3u8.tv/jiexi/?url="}, {"name": "爱豆", "type": "1,3", "url": "https://jx.aidouer.net/?url="}, {"name": "夜幕", "type": "1,3", "url": "https://www.yemu.xyz/?url="}, {"name": "BL", "type": "1,3", "url": "https://svip.bljiex.cc/?v="}, {"name": "七彩", "type": "1,3", "url": "https://www.xymav.com/?url="}, {"name": "人人迷", "type": "1,3", "url": "https://jx.blbo.cc:4433/?url="}, {"name": "七哥", "type": "1,3", "url": "https://jx.mmkv.cn/tv.php?url="}, {"name": "铭人云", "type": "1,3", "url": "https://parse.123mingren.com/?url="}, {"name": "江湖云", "type": "1,3", "url": "https://api.jhdyw.vip/?url="}, {"name": "4kdv", "type": "1,3", "url": "https://jx.4kdv.com/?url="}, {"name": "1717", "type": "1,3", "url": "https://ckmov.ccyjjd.com/ckmov/?url="}, {"name": "8090", "type": "1,3", "url": "https://www.8090g.cn/?url="}, {"name": "qianqi", "type": "1,3", "url": "https://api.qianqi.net/vip/?url="}, {"name": "laobandq", "type": "1,3", "url": "https://vip.laobandq.com/jiexi.php?url="}, {"name": "playm3u8", "type": "1,3", "url": "https://www.playm3u8.cn/jiexi.php?url="}, {"name": "无名小站", "type": "1,3", "url": "https://www.administratorw.com/video.php?url="}, {"name": "CK", "type": "1,3", "url": "https://www.ckplayer.vip/jiexi/?url="}, {"name": "盖世", "type": "1,3", "url": "https://www.gai4.com/?url="}, {"name": "盘古", "type": "1,3", "url": "https://go.yh0523.cn/y.cy?url="}, {"name": "Blbo", "type": "1,3", "url": "https://jx.blbo.cc:4433/?url="} ]; /* * 非自定义区域 * 以下代码勿动 * 以下代码勿动 * 以下代码勿动 */ // 视频网站(规则已定,不可随意更改) const videoSites = [ "v.qq.com", "tv.sohu.com", "iqiyi.com", "youku.com", "mgtv.com", "m.iqiyi.com", "m.le.com", "www.le.com", "1905.com", "pptv.com", "bilibili.com" ]; const currentUrl = document.location.href; // 判断是否加载后续代码 if (self != top) { return; } var result = videoSites.some(site=>{ if (currentUrl.match(site)) { return true; } return false; }) if(!result){ return; } // 图标宽度最小值判断(小于30默认30) if(iconWidth<30){ iconWidth=30; } // 解析接口框高度判断(小于30默认30) if(developMenuHeight<(iconWidth*2.6)){ developMenuHeight=iconWidth*2.6; } // 判断PC、移动端 var uaLogo="pc"; if(/Android|webOS|iPhone|iPod|BlackBerry/i.test(navigator.userAgent)) { uaLogo="mobile"; } // 图标整体定位样式 const globalStyle = "cursor:pointer;position:fixed;left:"+iconMarginLeft+"px;top:"+iconMarginTop+"px;z-index:2147483647;"; // 主图标(矩形)样式 const mainIconStyle = "height:"+iconHeight+"px;width:"+iconWidth+"px;background:"+mianColor+";border-radius:"+(iconFilletPercent*iconWidth)+"px;box-sizing:border-box;box-shadow:-4px 4px 4px 0px rgba(0,0,0,0.4);"; // 副图标(三角形)样式 const triangleStyle = "border-left:"+(iconWidth*0.3)+"px solid "+secondColor+";border-top:"+(iconHeight*0.2)+"px solid transparent;border-bottom:"+(iconHeight*0.2)+"px solid transparent;position:absolute;right:31%;top:30%;"; // 副图标(正方形)样式 const squareStyle = "background:"+secondColor+";width:"+(iconWidth*0.26)+"px;height:"+(iconWidth*0.26)+"px;position:absolute;right:37%;top:37%;"; // 菜单框外层样式 const inMenuBoxStyle = "width:110%;height:110%;overflow-y:scroll;overflow-x:hidden;"; // 菜单框里层样式 const outMenuBoxStyle = "background:"+mianColor+";height:0px;overflow:hidden;font-size:"+(iconWidth*0.2)+"px;width:"+(iconWidth*2)+"px;position:absolute;left:0px;top:"+iconHeight+"px;box-shadow:-4px 4px 4px 0px rgba(0,0,0,0.4);border-radius:13px 0 1px 13px;transition:height "+developMenuSecond+"s;-moz-transition:height "+developMenuSecond+"s;-webkit-transition:height "+developMenuSecond+"s;-o-transition:height "+developMenuSecond+"s;"; // 菜单项样式 const MenuItemsStyle = "color:"+secondColor+";display: block;padding:"+(iconWidth*0.12)+"px "+(iconWidth*0.12)+"px "+(iconWidth*0.12)+"px "+(iconWidth*0.2)+"px ;width:"+(iconWidth*3)+"px;"; // Iframe样式 const IframeStyle = "frameborder='no' width='100%' height='100%' allowfullscreen='true' allowtransparency='true' frameborder='0' scrolling='no';"; // 视频播放框类ID var classAndIDMap = { "pc": { "v.qq.com":"mod_player|tenvideo_player", "iqiyi.com":"flashbox", "youku.com":"ykPlayer", "mgtv.com":"mgtv-player-wrap", "sohu.com":"x-player", "le.com":"fla_box", "1905.com":"player", "pptv.com":"pplive-player", "bilibili.com":"bilibili-player-video-wrap|player-limit-mask"}, "mobile":{ "v.qq.com":"mod_player|tenvideo_player", "iqiyi.com":"m-box", "youku.com":"h5-detail-player", "mgtv.com":"video-area", "sohu.com":"player-view", "le.com":"playB", "1905.com":"player", "pptv.com":"pp-details-video", "bilibili.com":"bilibiliPlayer|player-wrapper"} }; // 创建图标 createIcon(); // 判断页面加载完成以后图标是否存在 document.onreadystatechange = function(){ if(document.readyState == 'complete'){ if(!document.getElementById("mainIcon")){ createIcon(); } } } function createIcon(){ try{ var div = document.createElement("div"); div.style.cssText = globalStyle; div.setAttribute("id","mainIcon"); var html = "