// ==UserScript== // @name 破解VIP会员视频集合【更新维护版】 // @namespace maintenance_code_huahuacat // @version 4.2.7 // @description 一键破解[爱奇艺|腾讯|优酷||乐视|芒果|AB站|音悦台]等VIP或会员视频,普通视频去广告快速播放。解析接口贵精不贵多,每一个都精心测试挑选,绝对够用。详细方法看说明和图片。支持[Tampermonkey | Violentmonkey | Greasymonkey 4.0+][只想做一个纯纯的视频解析脚本][原作者为黄盐,此版本为日常更新维护版]【个人以为这是最好用的VIP视频解析脚本了】 // @author 黄盐,爱画画的猫 // require https://greasemonkey.github.io/gm4-polyfill/gm4-polyfill.js // @noframes // @match *://*.youku.com/v_* // @match *://*.iqiyi.com/v_* // @match *://*.iqiyi.com/w_* // @match *://*.iqiyi.com/a_* // @match *://v.qq.com/x/cover/* // @match *://v.qq.com/x/page/* // @match *://*.le.com/ptv/vplay/* // @match *://*.tudou.com/listplay/* // @match *://*.tudou.com/albumplay/* // @match *://*.tudou.com/programs/view/* // @match *://*.mgtv.com/b/* // @match *://film.sohu.com/album/* // @match *://tv.sohu.com/v/* // @match *://*.acfun.cn/v/* // @match *://*.bilibili.com/video/* // @match *://*.bilibili.com/anime/* // @match *://*.bilibili.com/bangumi/play/* // @match *://*.baofeng.com/play/* // @match *://vip.pptv.com/show/* // @match *://v.pptv.com/show/* // @exclude *://*.bilibili.com/blackboard/* // @grant GM.getValue // @grant GM.setValue // @grant GM_getValue // @grant GM_setValue // @grant unsafeWindow // @grant GM_xmlhttpRequest // @grant GM.xmlHttpRequest // @grant GM_openInTab // @grant GM.openInTab // @downloadURL https://update.greasyfork.icu/scripts/402744/%E7%A0%B4%E8%A7%A3VIP%E4%BC%9A%E5%91%98%E8%A7%86%E9%A2%91%E9%9B%86%E5%90%88%E3%80%90%E6%9B%B4%E6%96%B0%E7%BB%B4%E6%8A%A4%E7%89%88%E3%80%91.user.js // @updateURL https://update.greasyfork.icu/scripts/402744/%E7%A0%B4%E8%A7%A3VIP%E4%BC%9A%E5%91%98%E8%A7%86%E9%A2%91%E9%9B%86%E5%90%88%E3%80%90%E6%9B%B4%E6%96%B0%E7%BB%B4%E6%8A%A4%E7%89%88%E3%80%91.meta.js // ==/UserScript== (() => { 'use strict'; const YoukuIcon = ''; const VQQIcon = ''; const ALLIcon = ''; const ONEIcon = ''; const FASTIcon = ''; var tMscript = document.createElement('script'); tMscript.innerText = `q = function(cssSelector){return document.querySelector(cssSelector);};qa = function(cssSelector){return document.querySelectorAll(cssSelector);};`; document.head.appendChild(tMscript); window.q = function(cssSelector) {return document.querySelector(cssSelector);}; window.qa = function(cssSelector) {return document.querySelectorAll(cssSelector);}; window.makeEl = function(tag){return document.createElement(tag);}; /* 兼容 Tampermonkey | Violentmonkey | Greasymonkey 4.0+ */ function GMaddStyle(cssText){ let a = document.createElement('style'); a.textContent = cssText; let doc = document.head || document.documentElement; doc.appendChild(a); } /* 兼容 Tampermonkey | Violentmonkey | Greasymonkey 4.0+ * 为了兼容GreasyMonkey 4.0 获取结构化数据,比如 json Array 等, * 应当先将字符串还原为对象,再执行后续操作 * GMgetValue(name,defaultValue).then((result)=>{ * let result = JSON.parse(result); * // other code... * }; */ function GMgetValue(name, defaultValue) { if (typeof GM_getValue === 'function') { return new Promise((resolve, reject) => { resolve(GM_getValue(name, defaultValue)); // reject(); }); } else { return GM.getValue(name, defaultValue); } } /* 兼容 Tampermonkey | Violentmonkey | Greasymonkey 4.0+ * 为了兼容GreasyMonkey 4.0 储存结构化数据,比如 json Array 等, * 应当先将对象字符串化, * GMsetValue(name, JSON.stringify(defaultValue)) */ function GMsetValue(name, defaultValue) { if (typeof GM_setValue === 'function') { GM_setValue(name, defaultValue); } else { GM.setValue(name, defaultValue); } } function GMxmlhttpRequest(obj){ if (GM_xmlhttpRequest === "function") { GM_xmlhttpRequest(obj); } else{ GM.xmlhttpRequest(obj); } } var replaceRaw, /*是否嵌入当前页面*/ episodes, /*是否启用爱奇艺正确选集*/ userApisOn; /*是否加载自定义解析接口*/ GMaddStyle(` /*TMHY:TamperMonkeyHuanYan*/ #TMHYvideoContainer{z-index:999998;background:rgba(0,0,0,.7);position:fixed;top:7em;left:5em;height:65%;width:65%;resize:both;overflow:auto;box-shadow:2px 2px 5px 5px rgba(255,255,0,.8);} /*TMHYVideoContainer*/ #TMHYvideoContainer button{top:.1em;cursor:pointer;visibility:hidden;font-size:3em;color:#fff;background:transparent;border:0;} #TMHYvideoContainer:hover button{visibility:visible;} #TMHYvideoContainer:hover button:hover{color:#ff0;} #TMHYiframe{height:100%;width:100%;overflow:auto;position:absolute;top:0;left:0;margin:auto;border:0;box-shadow:0 0 3em rgba(0,0,0,.4);z-index:-1;} /*TMHYIframe*/ #TMHYul{position:fixed;top:5em;left:0;padding:0;z-index:999999;} #TMHYul li{list-style:none;} #TMHYul svg{float:right;} .TM1{opacity:0.3;position:relative;padding-right:.5em;width:1.5em;cursor:pointer;} .TM1:hover{opacity:1;} .TM1 span{display:block;border-radius:0 .3em .3em 0;background-color:#ffff00;border:0;font:bold 1em "微软雅黑"!important;color:#ff0000;margin:0;padding:1em .3em;} .TM3{position:absolute;top:0;left:1.5em;display:none;border-radius:.3em;margin:0;padding:0;} .TM3 li{float:none;width:6em;margin:0;font-size:1em;padding:.15em 1em;cursor:pointer;color:#3a3a3a!important;background:rgba(255,255,0,0.8);} .TM3 li:hover{color:white!important;background:rgba(0,0,0,.8);} .TM3 li:last-child{border-radius:0 0 .35em .35em;} .TM3 li:first-child{border-radius:.35em .35em 0 0;} .TM1:hover .TM3{display:block;} /*自定义解析接口,本页播放窗口设置*/ .TMHYp {position:fixed;top:20%;left:20%;z-index:999999;background:yellow;padding:30px 20px 10px 20px;border-radius:10px;text-align:center;}/*TMHYpanel*/ .TMHYp * {font-size:16px;background:rgba(255,255,0,1);font-family:'微软雅黑';color:#3a3a3a;border-radius:10px;} #tMuserDefine li {margin:5px;width:100%;list-style-type:none;} .TMHYp input[type=text] {border-radius:5px !important;border:1px solid #3a3a3a;margin:2px 10px 2px 5px;padding:2px 5px;} .TMHYlti {width:350px;}/*TMHYlongTextInput*/ .TMHYmti {width:160px;}/*TMHYmti*/ .idelete {float: left; display: inline-block; color: red; padding: 0 20px !important; cursor: pointer;} .iname {padding-right:10px;} li:hover .idelete,li:hover .ilink,li:hover .iname {background:rgba(224,175,17,0.62);} .TMHYp button {border:1px solid #3a3a3a;border-radius:5px;cursor:pointer;padding: 2px 10px;margin:10px 20px 0 20px;} .TMHYp button:hover {background:#3a3a3a;color:yellow;} .TMHYClose {position:absolute;top:0;left:0;margin:0!important;} .TMHYp fieldset {margin:0;padding:10px;} .TMHYp legend {padding:0 10px;} .TMHYp label {display:inline-block;} .TMHYspan80 {display:inline-block;text-align:right;width:80px;} .TMHYspan120 {display:inline-block;text-align:right;width:120px;} #inTabSettingSave {position:relative;margin-top:10px;padding:3px 20px;} `); var defaultapi = { title: "KIWI解析,失效请更换接口", url: "http://kiwi8.top/mov/s?url=" }; //apis name:显示的文字 url:接口 title:提示文字 intab:是否适合内嵌(嵌入判断:GMgetValue("replaceRaw",false)值||intab值) var apis =[ {name:"组合解析"+ALLIcon,url:"http://kiwi8.top/mov/s?url=",title:"KIWI解析,组合型解析,站长会维护排名",intab:0}, {name:"纯净线路"+ONEIcon,url:"https://z1.m1907.cn/?jx=",title:"纯净线路,没有广告,资源丰富,但是速度不是太快",intab:1}, {name:"黑云解析"+FASTIcon,url:"http://jiexi.380k.com/?url=",title:"速度块,好用",intab:0}, {name:"石头解析",url:"https://jiexi.071811.cc/jx.php?url=",title:"手动点播放",intab:0}, {name:"小童影视",url:"http://www.hb23888.vip/jxurl.php?url=",title:"速度勉强,需要手动点播放",intab:1}, {name:"千叶解析",url:"https://yi29f.cn/vip.php?url=",title:"手动点播放",intab:1}, {name:"927解析",url:"https://api.927jx.com/vip/?url=",title:"手动点播放",intab:1}, {name:"星空解析",url:"https://jx.fo97.cn/?url=",title:"手动点播放",intab:1}, {name:"无名小站",url:"http://www.sfsft.com/admin.php?url=",title:"无名小站同源",intab:0}, {name:"无名小站2",url:"http://www.wmxz.wang/video.php?url=",title:"转圈圈就换线路",intab:0}, {name:"人人发布",url:"http://v.renrenfabu.com/jiexi.php?url=",title:"综合,多线路",intab:0}, {name:"二度解析",url:"https://jx.du2.cc/?url=",title:"手动点播放",intab:1}, ]; //嵌入页面播放 function openInTab(evt) { // 找到支持的方法, 使用需要全屏的 element 调用 function launchFullScreen(element) { if(element.requestFullscreen) { element.requestFullscreen(); } else if(element.mozRequestFullScreen) { element.mozRequestFullScreen(); } else if(element.webkitRequestFullscreen) { element.webkitRequestFullscreen(); } else if(element.msRequestFullscreen) { element.msRequestFullscreen(); } } if(evt.target.dataset.intab === '1'){ //如果页面有播放窗口,只需更新播放窗口的 src, 如果没有播放窗口,读取播放窗口位置信息,新建一个播放窗 if(q('#TMHYiframe') === null){ GMgetValue('intabSize','{"height":"","width":"","left":"","top":""}').then((position)=>{ var sty = JSON.parse(position); sty = 'height:'+sty.height+';width:'+sty.width+';left:'+sty.left+';top:'+sty.top+';'; var a = makeEl('div'); a.id = 'TMHYvideoContainer'; a.setAttribute('style', sty); a.innerHTML = ''; document.body.appendChild(a); var b=makeEl('iframe'); b.id='TMHYiframe'; b.src=evt.target.dataset.url + location.href; q('#TMHYvideoContainer').appendChild(b); q('#TMHYIframeClose').addEventListener('click', ()=>{document.body.removeChild(q('#TMHYvideoContainer'));}, false); q('#TMHYfullScreen').addEventListener('click', ()=>{launchFullScreen(q('#TMHYiframe'));}, false); }); } else{ q('#TMHYiframe').src=evt.target.dataset.url + location.href; } } else{ //不适合页内播放的,打开新标签 window.open(evt.target.dataset.url + location.href); } } //保存嵌入页面大小位置设置 function saveInTabSetting(){ var intabSize = { height:q('#TMpH').value, width:q('#TMpW').value, left:q('#TMpL').value, top:q('#TMpT').value }; GMsetValue('intabSize', JSON.stringify(intabSize)); setTimeout('document.body.removeChild(q("#TMHYSetting"));', 30); } //生成"嵌入页面大小位置设置"面板 function intabSetting(){ var intabSize = GMgetValue('intabSize','{"height":"","width":"","left":"","top":""}') .then((ag)=>{ var a = makeEl('div'); a.id='TMHYSetting'; a.setAttribute('class', 'TMHYp'); a.innerHTML = `
`; document.body.appendChild(a); q('#intabSettingSave').addEventListener('click', saveInTabSetting, false); }); } //检查是否勾选页内解析 function noNewTabCheck() { var x, arr = qa(".TM4 li"); replaceRaw = q("#intabChekbx").checked; GMsetValue("replaceRaw", replaceRaw); for (x = 0; x < arr.length; x++) { if (replaceRaw) { arr[x].addEventListener("click", openInTab, false); arr[x].setAttribute('onclick', ''); } else { arr[x].removeEventListener("click", openInTab, false); arr[x].setAttribute('onclick', 'window.open(this.dataset.url + location.href)'); } } } /* 爱奇艺正确选集 */ function rightEpsLinkCheck() { episodes = q("#realLinkChekbx").checked; GMsetValue("episodes", episodes); try { if (episodes) { q('#widget-dramaseries').addEventListener('click', function getLink(e) { //-------------iqiyi剧集真实播放页面方法 Begin------------------ //Code piece infomation: //License:MIT Author:hoothin Homepage: http://hoothin.com Email: rixixi@gmail.com var target = e.target.parentNode.tagName == "LI" ? e.target.parentNode : (e.target.parentNode.parentNode.tagName == "LI" ? e.target.parentNode.parentNode : e.target.parentNode.parentNode.parentNode); if (target.tagName != "LI") return; GMxmlhttpRequest({ method: 'GET', url: "http://cache.video.qiyi.com/jp/vi/" + target.dataset.videolistTvid + "/" + target.dataset.videolistVid + "/?callback=crackIqiyi", onload: function(result) { var crackIqiyi = function(d) { location.href = d.vu; }; eval(result.responseText); } }); }); //-------------iqiyi剧集真实播放页面方法 End------------------ } else { q('#widget-dramaseries').removeEventListener('click', getLink); } } catch(e) {} } /* 勾选自定义接口 */ function addApiCheck() { userApisOn = q('#addApiChekBx').checked; GMsetValue('userApisOn', userApisOn); if(userApisOn) { selfDefine(); setTimeout(showAddApiPanel, 200); } } /* 执行 */ var div = makeEl("div"); div.id = "TMHYd"; var txt = '', i = 0; /*提供的接口列表*/ for (i in apis) { txt += `