// ==UserScript== // @name 全网vip视频破解 // @namespace https://ss.aiz5.com/vip-video.js // @version 0.0.4 // @description 一键破解[优酷|腾讯|乐视|爱奇艺|芒果|AB站|音悦台]等VIP或会员视频,解析接口贵精不贵多,绝对够用。详细方法看说明和图片。 // @author arno // @noframes // @match *://*.iqiyi.com/* // @match *://*.youku.com/* // @match *://*.le.com/* // @match *://*.letv.com/* // @match *://v.qq.com/* // @match *://*.tudou.com/* // @match *://*.mgtv.com/* // @match *://film.sohu.com/* // @match *://tv.sohu.com/* // @match *://*.acfun.cn/v/* // @match *://*.bilibili.com/* // @match *://vip.1905.com/play/* // @match *://*.pptv.com/* // @match *://v.yinyuetai.com/video/* // @match *://v.yinyuetai.com/playlist/*å // @match *://*.fun.tv/vplay/* // @match *://*.wasu.cn/Play/show/* // @match *://*.56.com/* // @exclude *://*.bilibili.com/blackboard/* // @grant GM.getValue // @grant GM.setValue // @grant GM_getValue // @grant GM_setValue // @grant unsafeWindow // @grant GM_xmlhttpRequest // @grant GM_openInTab // @downloadURL none // ==/UserScript== (() => { 'use strict'; 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); return new Promise((resolve, reject) => { resolve(); reject(); }); } else { return GM.setValue(name, defaultValue); } } var replaceRaw/*是否嵌入当前页面*/, episodes/*是否启用爱奇艺正确选集*/, userApisOn/*是否加载自定义解析接口*/; GMaddStyle(` /*TMHY:TamperMonkeyHuanYan*/ #TMHYd{z-index:999999; position:absolute; left:0px; top:0px; width:100px; height:auto; border:0; margin:0;}/*TMHYdiv*/ #TMHYvc{z-index: 999998; background: rgba(0, 0, 0, .7); position: fixed; top: 15%; left:5%; height: 65%; width: 65%;resize:both;overflow:auto; box-shadow: 2px 2px 5px 5px rgba(255,255,0,.8)}/*TMHYVideoContainer*/ #TMHYvc button{position:absolute;top:2px;font-family:Arial;cursor:pointer;visibility:hidden;font-size:35px;color:#fff;background:transparent;border:0;text-shadow:0 0 2px #000;} #TMHYvc:hover button{visibility:visible;} #TMHYvc:hover button:hover{color:#ff0;} #TMHYi{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:80px; left:0px;} #TMHYul li{list-style:none;} .TM1{opacity:0.3; position:relative;padding: 0 7px 0 0; min-width: 19px; cursor:pointer;} .TM1:hover{opacity:1;} .TM1 span{display:block; border-radius:0 5px 5px 0; background-color:#ffff00; border:0; font:bold 15px "微软雅黑" !important; color:#ff0000; margin:0; padding:15px 2px;} .TM3{position:absolute; top:0; left:19px; display:none; border-radius:5px; margin:0; padding:0;} .TM3 li{float:none; width:80px; margin:0; font-size:14px; padding:3px 10px 2px 15px; 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 5px 5px;} .TM3 li:first-child{border-radius: 5px 5px 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: "龙轩脚本的接口,默认用浮空解析,失效请更换接口", url: "http://ss.aiz5.com/video.php?url=" }; //apis name:显示的文字 url:接口 title:提示文字 intab:是否适合内嵌(嵌入判断:GMgetValue("replaceRaw",false)值||intab值) var apis =[ {name:"免费ss",url:"http://ss.aiz5.com/video.php?url=",title:"支持腾讯",intab:1}, ]; //嵌入页面播放 function openInTab(evt) { if(evt.target.dataset.intab === '1'){ if(q('#TMHYi') === null){ GMgetValue('intabSize','{"height":"","width":"","left":"","top":""}').then((ag)=>{ var sty = JSON.parse(ag); sty = 'height:'+sty.height+';width:'+sty.width+';left:'+sty.left+';top:'+sty.top+';'; var a = makeEl('div'); a.id = 'TMHYvc'; a.setAttribute('style', sty); a.innerHTML = ''; document.body.appendChild(a); var b=makeEl('iframe'); b.id='TMHYi'; b.src=evt.target.dataset.url + location.href; q('#TMHYvc').appendChild(b); }); } else{ q('#TMHYi').src=evt.target.dataset.url + location.href; } } else{ window.open(evt.target.dataset.url + location.href); } } //保存嵌入页面大小位置设置 function saveInTabSetting(){ var intabSize = { height:q('#TMiframeHeight').value, width:q('#TMiframeWidth').value, left:q('#TMiframeLeft').value, top:q('#TMiframeTop').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); 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; GM_xmlhttpRequest({ 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); } } /* 勾选自定义接口 */ function addApiCheck() { userApisOn = q('#addApiChekBx').checked; GMsetValue('userApisOn', userApisOn); selfDefine(); if (userApisOn) { showAddApiPanel(); } } /* 执行 */ var div = makeEl("div"); div.id = "TMHYd"; var txt = '', i = 0; /*提供的接口列表*/ for (i in apis) { txt += `