🏠 Home 

Greasy Fork is available in English.

VIP视频破解

解析并破解各大视频站的VIP权限


安装此脚本?
  1. // ==UserScript==
  2. // @name VIP视频破解
  3. // @name:en VIP Video Cracker
  4. // @namespace hoothin
  5. // @version 1.8.7
  6. // @description 解析并破解各大视频站的VIP权限
  7. // @description:en Crack VIP permissions of some chinese video sites
  8. // @author hoothin
  9. // @include *://v.qq.com/x/*
  10. // @include *://m.v.qq.com/*
  11. // @include *://*.mgtv.com/*b/*
  12. // @include *://*.le.com/ptv/vplay/*
  13. // @include *://m.le.com/*
  14. // @include *://v.youku.com/v_show/*
  15. // @include *://m.youku.com/video/*
  16. // @include *://*.iqiyi.com/v_*
  17. // @include *://*.iqiyi.com/dianying/*
  18. // @include *://*.tudou.com/albumplay/*
  19. // @include *://*.tudou.com/listplay/*
  20. // @include *://*.tudou.com/programs/view/*
  21. // @include *://*.wasu.cn/*Play/show/id/*
  22. // @include *://*tv.sohu.com/*
  23. // @include *://*film.sohu.com/album/*
  24. // @include *://ddp.vip.pptv.com/vod_detail/*
  25. // @include *://*.pptv.com/show/*
  26. // @include *://*.acfun.cn/v/*
  27. // @include *://*.fun.tv/vplay/*
  28. // @include *://vip.1905.com/play/*
  29. // @include *://vip.pptv.com/show/*
  30. // @include *://v.yinyuetai.com/video/*
  31. // @include *://v.yinyuetai.com/playlist/*
  32. // @include *://*.bilibili.com/video/*
  33. // @exclude *?url=*
  34. // @exclude *?qt=*
  35. // @exclude *?v=*
  36. // @grant GM_setValue
  37. // @grant GM_getValue
  38. // @grant GM_openInTab
  39. // @grant unsafeWindow
  40. // @grant GM_xmlhttpRequest
  41. // @license MIT License
  42. // @connect cache.video.qiyi.com
  43. // ==/UserScript==
  44. (function() {
  45. 'use strict';
  46. var cracks=[
  47. {name:"47影视云(s)",url:"https://api.47ks.com/webcloud/?v=%s",title:"首选"},
  48. {name:"无名小站",url:"http://www.wmxz.wang/video.php?url=%s",title:"次选"},
  49. {name:"石头解析(s)",url:"https://jiexi.071811.cc/jx.php?url=%s"},
  50. {name:"最小品(s)",url:"https://www.zuixiaopin.com/api/cloudVideo?url=%s"},
  51. {name:"妹儿云(s)",url:"https://www.yymeier.com/api.php?url=%s"},
  52. {name:"那片(s)",url:"https://jxapi.nepian.com/ckparse/?url=%s"},
  53. {name:"FlvSP(s)",url:"https://api.flvsp.com/?url=%s"},
  54. {name:"海播",url:"http://www.0335haibo.com/tong.php?url=%s"},
  55. {name:"眼睛会下雨",url:"http://www.vipjiexi.com/yun.php?url=%s",title:"域名改成海播了,https证书也没了"},
  56. {name:"小海解析(s)",url:"https://ckplaer.duapp.com/hai2.php?url=%s",title:"播放器放在百度开发者##"},
  57. {name:"#看TV",url:"http://aikan-tv.com/?url=%s"},
  58. {name:"噗噗电影",url:"http://pupudy.com/webcloud/index.php?url=%s"},
  59. {name:"米沃",url:"http://jx.mihatv.com/miwo1.php?url=%s"},
  60. {name:"速度牛",url:"http://api.wlzhan.com/tong/?url=%s"},
  61. {name:"资源#",url:"http://www.ziyuand.cn/jx1/jx.php?url=%s"},
  62. {name:"旋风解析",url:"http://api.xfsub.com/index.php?url=%s"},
  63. {name:"Relon",url:"http://yyygwz.com/index.php?url=%s"},
  64. {name:"SO视频",url:"http://parse.colaparse.cc/?url=%s"},
  65. {name:"5奇异",url:"http://www.jiexi.cx/5qiyi/?url=%s"},
  66. {name:"Moondown",url:"http://moon.moondown.net/?url=%s"},
  67. {name:"选片网",url:"http://jx.xuanpianwang.com/parse?url=%s"},
  68. {name:"云上",url:"http://www.ou522.cn/t2/1.php?url=%s"},
  69. {name:"强强卷",url:"http://000o.cc/jx/ty.php?url=%s"},
  70. {name:"Lewei369",url:"http://s1y2.com/?url=%s"},
  71. {name:"紫狐云",url:"http://yun.zihu.tv/api.php?url=%s"},
  72. {name:"土豪网",url:"http://www.tuhao13.com/yunparse/index.php?url=%s"},
  73. {name:"舞动秋天",url:"http://qtzr.net/s/?qt=%s"},
  74. {name:"97在线看",url:"http://www.97zxkan.com/jiexi/97zxkanapi.php?url=%s"},
  75. {name:"百域阁",url:"http://api.svip.baiyug.cn/svip/index.php?url=%s",title:"会检测是否frame,只能跳转不能嵌"},
  76. {name:"言朋影院",url:"http://vip.yingyanxinwen.cn/vip/index.php?url=%s",title:"会检测是否frame,只能跳转不能嵌"},
  77. {name:"迷失之梦",url:"http://mt2t.com/yun?url=%s",title:"这个解析站似乎不大稳定"},
  78. {name:"无名小站源",url:"http://www.sfsft.com/admin.php?url=%s",title:"无名小站的源"},
  79. {name:"VIP看看",url:"http://2.jx.72du.com/video.php?url=%s",title:"嵌了无名小站的服务"},
  80. {name:"歪歪电影",url:"http://www.yydy8.com/common/?url=%s",title:"嵌了47影视云的服务"},
  81. {name:"梦中人",url:"http://www.wpswan.com/mzr/vipparse/index.php?url=%s",title:"嵌了47影视云的服务"},
  82. {name:"71ki解析",url:"http://jx.71ki.com/tong.php?url=%s"},
  83. {name:"CloudParse",url:"http://api.cloudparse.com/?url=%s"},
  84. {name:"10号影院",url:"http://player.gakui.top/?url=%s"},
  85. {name:"PPYPP",url:"http://www.ppypp.com/yunparse/?url=%s"},
  86. {name:"疯狂解析",url:"http://vip.ifkdy.com/?url=%s",title:"仅是简单嵌了47影视云、小海解析等几个解析站"},
  87. ],video,videoWidth,videoHeight,i=0;
  88. var isMobile=function() {
  89. var userAgentInfo = navigator.userAgent.toLowerCase();
  90. var Agents=["android", "iphone",
  91. "symbianos", "windows phone",
  92. "ipad", "ipod" ,"midp" ,"ucweb"];
  93. var flag=false;
  94. for (var v=0; v < Agents.length; v++) {
  95. if (userAgentInfo.indexOf(Agents[v]) > 0) {
  96. flag=true;
  97. break;
  98. }
  99. }
  100. return flag;
  101. }();
  102. var iqiyi=location.hostname.indexOf("iqiyi.com")!=-1;
  103. var vipVideoCrackJump=GM_getValue(location.hostname+"_vipVideoCrackJump");
  104. var vipVideoCrackEmbed=GM_getValue("vipVideoCrackEmbed");
  105. var vipVideoCrackUrl=GM_getValue("vipVideoCrackUrl");
  106. var iframe=document.createElement("iframe");
  107. iframe.style.border="0";
  108. var selectStyle=document.createElement("style");
  109. selectStyle.innerHTML=".crackJump{font-size:12px;margin-left:5px;color:white;text-shadow:#000 1px 0 0,#000 0 1px 0,#000 -1px 0 0,#000 0 -1px 0;-webkit-text-shadow:#000 1px 0 0,#000 0 1px 0,#000 -1px 0 0,#000 0 -1px 0;-moz-text-shadow:#000 1px 0 0,#000 0 1px 0,#000 -1px 0 0,#000 0 -1px 0;*filter: Glow(color=#000, strength=1);}.crackJump input{vertical-align:middle;}.vipSelect{background:black;color:white;font-size:12px;border:none;}.crackArea{position:absolute;z-index:999999;left:0px;top:0px;opacity:0.50;filter:alpha(opacity=50);transition:opacity 0.3s ease,width 0.3s ease;width:18px;height:18px;overflow:hidden;white-space:nowrap;border:1px solid #666;background:black;}.crackArea:hover{opacity:1;filter:alpha(opacity=100);width:230px;}.crackArea>p{display:block;font-size:13px;text-align:center;float:left;position:absolute;top:0px;background-color:black;width:100%;height:100%;margin:0 auto}.crackArea:hover>p{display:none;}.crackArea>label{display:none;}.crackArea:hover>label{display:initial;}";
  110. document.getElementsByTagName("head")[0].appendChild(selectStyle);
  111. var placeholder=document.createElement("div");
  112. placeholder.style.cssText="width:100%;height:100%;text-align:center;font-size:x-large;cursor:pointer;color:#666;";
  113. placeholder.innerHTML="点击恢复视频播放";
  114. placeholder.addEventListener("click",function(){
  115. if(placeholder.parentNode){
  116. placeholder.parentNode.replaceChild(video,placeholder);
  117. }
  118. });
  119. var select=document.createElement("select");
  120. select.className="vipSelect";
  121. select.innerHTML="<option value=''>? VIP解析</option>";
  122. if(!GM_getValue("hacgGodTurnVisited")){
  123. select.innerHTML+="<option value='https://greasyfork.org/scripts/23316/code/hacg.user.js'>\u2605\u4e0a\u8f66\u2605</option>";
  124. }
  125. cracks.forEach(function(item){
  126. var optionStr="<option value='"+item.url+"'"+(item.title?"title='"+item.title+"'":"")+">"+item.name+"</option>";
  127. select.innerHTML+=optionStr;
  128. });
  129. select.onchange=function(){
  130. var value=select.options[select.options.selectedIndex].value;
  131. if(value){
  132. var url=value.replace("%s",(iqiyi&&location.href.indexOf("#")!=-1?decodeURIComponent(document.querySelector(".sns-icon>li>a").href.replace(/.*url=(.*)%3Fsrc.*/,"$1")):location.href));
  133. if(value.indexOf("hacg.user.js")!=-1){
  134. GM_setValue("hacgGodTurnVisited",true);
  135. select.options.remove(select.options.selectedIndex);
  136. }else{
  137. vipVideoCrackUrl=value;
  138. GM_setValue("vipVideoCrackUrl",vipVideoCrackUrl);
  139. if(video.parentNode)video.parentNode.replaceChild(placeholder,video);
  140. }
  141. if(!vipVideoCrackEmbed || !embedCrack(url)){
  142. unsafeWindow.open(url);
  143. }
  144. select.options.selectedIndex=0;
  145. }
  146. };
  147. var quickAccess=document.createElement("label");
  148. quickAccess.className="crackJump";
  149. quickAccess.title="立即利用上次选择的接口破解";
  150. quickAccess.innerHTML="<input type='checkbox'>立即破解";
  151. var jumpCheck=quickAccess.querySelector("input");
  152. jumpCheck.onclick=function(){
  153. vipVideoCrackJump=jumpCheck.checked;
  154. GM_setValue(location.hostname+"_vipVideoCrackJump",vipVideoCrackJump);
  155. crackJump();
  156. };
  157. var embedLabel=document.createElement("label");
  158. embedLabel.className="crackJump";
  159. embedLabel.title="能嵌入当前站点的接口就直接嵌入页面";
  160. embedLabel.innerHTML="<input type='checkbox'>能嵌就嵌";
  161. var embedCheck=embedLabel.querySelector("input");
  162. embedCheck.onclick=function(){
  163. vipVideoCrackEmbed=embedCheck.checked;
  164. GM_setValue("vipVideoCrackEmbed",vipVideoCrackEmbed);
  165. crackJump();
  166. };
  167. var showP=document.createElement("p");
  168. showP.innerHTML="?";
  169. var crackArea=document.createElement("div");
  170. crackArea.className="crackArea";
  171. crackArea.appendChild(select);
  172. crackArea.appendChild(showP);
  173. crackArea.appendChild(quickAccess);
  174. crackArea.appendChild(embedLabel);
  175. function crackJump(){
  176. if(vipVideoCrackJump){
  177. var value=vipVideoCrackUrl?vipVideoCrackUrl:cracks[0].url;
  178. var url=value.replace("%s",(iqiyi?location.href.replace(/#.*/,""):location.href));
  179. if(!vipVideoCrackEmbed || !embedCrack(url)){
  180. GM_openInTab(url,false);
  181. if(video.parentNode)video.parentNode.replaceChild(placeholder,video);
  182. }
  183. }
  184. }
  185. function embedCrack(url){
  186. var canEmbed=false;
  187. if(/^https/.test(url)){
  188. url=location.protocol+url.slice(6);
  189. canEmbed=true;
  190. }else if(location.protocol=="http:"){
  191. canEmbed=true;
  192. }
  193. var htmlVideo=document.querySelector("video");
  194. if(htmlVideo){
  195. var vi=setInterval(function(){
  196. if(htmlVideo.src){
  197. setTimeout(function() {
  198. htmlVideo.click();
  199. },1000);
  200. clearInterval(vi);
  201. }
  202. },500);
  203. }
  204. if(canEmbed){
  205. if(iqiyi){
  206. var plgcontainer=document.querySelector('[data-player-hook=plgcontainer]');
  207. var videoLoading=document.querySelector('[data-player-hook=videoLoading]');
  208. var isi=setInterval(function(){
  209. var jplayUnderFrame=document.querySelector('.J_play-underFrame');
  210. if(jplayUnderFrame){
  211. clearInterval(isi);
  212. var flashArea_paypop=document.querySelector('#flashArea_paypop');
  213. if(flashArea_paypop)flashArea_paypop.parentNode.parentNode.removeChild(flashArea_paypop.parentNode);
  214. jplayUnderFrame.parentNode.removeChild(jplayUnderFrame);
  215. }
  216. },500);
  217. if(plgcontainer)plgcontainer.parentNode.removeChild(plgcontainer);
  218. if(videoLoading)videoLoading.parentNode.removeChild(videoLoading);
  219. }
  220. iframe.width=videoWidth;
  221. iframe.height=videoHeight;
  222. iframe.src=url;
  223. if(!iframe.parentNode){
  224. if(video.parentNode){
  225. video.parentNode.replaceChild(iframe,video);
  226. }else{
  227. placeholder.parentNode.replaceChild(iframe,placeholder);
  228. }
  229. video=iframe;
  230. }
  231. }
  232. return canEmbed;
  233. }
  234. if(isMobile){
  235. crackArea.style.position="fixed";
  236. document.body.appendChild(crackArea);
  237. }else{
  238. var si=setInterval(function(){
  239. [].every.call(document.querySelectorAll("object,embed,video"),function(item){
  240. var style=unsafeWindow.getComputedStyle(item, null);
  241. if(style.width.replace("px","")>100 && style.height.replace("px","")>100){
  242. video=item;
  243. return false;
  244. }
  245. return true;
  246. });
  247. if(video){
  248. clearInterval(si);
  249. var videoStyle=unsafeWindow.getComputedStyle(video, null);
  250. videoWidth=videoStyle.width;
  251. videoHeight=videoStyle.height;
  252. var videoParent=video.parentNode;
  253. videoParent.appendChild(crackArea);
  254. placeholder.style.lineHeight=unsafeWindow.getComputedStyle(videoParent).height;
  255. if(location.hostname.indexOf("v.yinyuetai.com")!=-1){
  256. if (!/^https?:\/\/v\.yinyuetai\.com\/video\/h5\//.test(location.href)) {
  257. unsafeWindow.location.href = unsafeWindow.location.href.replace(/^https?:\/\/v\.yinyuetai\.com\/video\//,"http://v.yinyuetai.com/video/h5/");
  258. }else{
  259. videoParent.parentNode.style.position="absolute";
  260. setTimeout(function(){
  261. videoStyle=unsafeWindow.getComputedStyle(video, null);
  262. videoWidth=videoStyle.width;
  263. videoHeight=videoStyle.height;
  264. },1000);
  265. }
  266. }else if(location.hostname.indexOf("v.youku.com")!=-1){
  267. if(vipVideoCrackEmbed)videoHeight="580px";
  268. }else if(location.hostname.indexOf("le.com")!=-1){
  269. document.querySelector('.juji_cnt').addEventListener('click', function(e){
  270. if(!vipVideoCrackJump)return;
  271. var target=e.target;
  272. if(target.tagName!="A")return;
  273. location.href="http://www.le.com/ptv/vplay/"+target.getAttribute("data-vid")+".html";
  274. });
  275. }else if(iqiyi){
  276. document.querySelector('#widget-dramaseries').addEventListener('click', function(e){
  277. if(!vipVideoCrackJump)return;
  278. 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);
  279. if(target.tagName!="LI")return;
  280. GM_xmlhttpRequest({
  281. method: 'GET',
  282. url: "http://cache.video.qiyi.com/jp/vi/"+target.dataset.videolistTvid+"/"+target.dataset.videolistVid+"/?callback=crackIqiyi",
  283. onload: function(r###lt) {
  284. var crackIqiyi=function(d){
  285. location.href=d.vu;
  286. };
  287. eval(r###lt.responseText);
  288. }
  289. });
  290. });
  291. unsafeWindow.addEventListener("hashchange",function(){
  292. crackJump();
  293. });
  294. }
  295. if(vipVideoCrackJump){
  296. jumpCheck.checked=true;
  297. }
  298. if(vipVideoCrackEmbed){
  299. embedCheck.checked=true;
  300. }
  301. crackJump();
  302. unsafeWindow.eval(`
  303. var pushState = window.history.pushState;
  304. window.history.pushState=function(a){
  305. window.postMessage("pushState","*");
  306. return pushState.apply(history, arguments);
  307. };
  308. var replaceState = window.history.pushState;
  309. window.history.replaceState=function(a){
  310. window.postMessage("replaceState","*");
  311. return pushState.apply(history, arguments);
  312. };`);
  313. unsafeWindow.addEventListener('message',function(e) {
  314. if(e.data=="pushState" || e.data=="replaceState"){
  315. setTimeout(function(){crackJump();},1);
  316. }
  317. });
  318. }
  319. },500);
  320. setTimeout(function(){
  321. clearInterval(si);
  322. },20000);
  323. }
  324. })();