您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
cool
// ==UserScript== // @name movie/tv site direct link redirector/downloader // @namespace http://tampermonkey.net/ // @version 2.93 // @description cool // @author You // @match *://*/* // @grant none // @run-at document-start // ==/UserScript== (async function() { 'use strict'; //in order to download hydrax videos, you must use a header changing extension //i recommend simple-modify-header: //firefox: https://addons.mozilla.org/en-US/firefox/addon/simple-modify-header //chrome: https://chrome.google.com/webstore/detail/gjgiipmpldkpbdfjkgofildhapegmmic //import this config: https://pastebin.com/dl/VfZGYwJW //and press the start button //then you can change the below variable to true :) //!!NOTE!!: make sure you turn off the header changer extension because it currently wildcards ALL .monster domains var justDownloadHydrax=false;//UPDATE: i recommend to instead just right click video->"Save video as..." (works in firefox, not yet tested in chrome) //var corsproxy="https://proxy.iamcdn.net/sub?url="; var corsproxy="https://api.allorigins.win/raw?url="; var gdriveplayerhosts=["database.gdriveplayer.me","databasegdriveplayer.me","database.gdriveplayer.io","databasegdriveplayer.io","database.gdriveplayer.us","databasegdriveplayer.us","databasegdriveplayer.xyz","databasegdriveplayer.co"], movcloudhosts=["www.movcloud.net","movcloud.net","www.cloud9.to","cloud9.to"], vidcloudhosts=["vidembed.cc","streamani.net","animeid.to","asianload1.com","asianload.me","vidcloud9.com","k-vid.co","asianload.io","vidnext.net","gogo-play.net","vidnode.net","gogo-stream.com","gogo-play.tv","vidembed.net","vidstreaming.io"], vidcloudver=["streamani.net","gogo-play.net","gogo-stream.com","gogo-play.tv","vidstreaming.io","asianload.cc","k-vid.co","asianload.io"], hydraxhosts=["www.playhydrax.com","play.hydracdn.network"]; if(!((gdriveplayerhosts.includes(window.location.hostname)&&(window.location.pathname=="/google.php"||window.location.pathname=="/player.php"))||(movcloudhosts.includes(window.location.hostname)&&window.location.pathname.startsWith("/embed/"))||((vidcloudhosts.includes(window.location.hostname)||vidcloudhosts.map(a=>"www."+a).includes(window.location.hostname))&&(window.location.pathname.startsWith("/videos/")||window.location.pathname=="/streaming.php"||window.location.pathname=="/load.php"))||hydraxhosts.includes(window.location.hostname)))return; async function sleep(t){ return await new Promise(r=>setTimeout(r,t)); } if(window.location.hostname=='playhydrax.com'||window.location.hostname.endsWith('.playhydrax.com')/*window.location.hostname=='play.hydracdn.network'||window.location.hostname.endsWith('.play.hydracdn.network')*/){ document.cookie="isNoAds=true;path=/"; if(top.location==self.location){ document.close(); document.open(); document.write(`<body bgcolor="black"><iframe src="${window.location.href}" style="position:fixed;top:0;left:0;right:0;bottom:0;width:100%;height:100%;padding:0;margin:0;border:0;z-index:99999;"></iframe></body>`); document.close(); return; } var vidEl=document.querySelector("video"); for(var i=0;i<10000&&(!vidEl||!vidEl.hasAttribute("src"));i++){ vidEl=document.querySelector("video"); await sleep(1); } var vidUrl=vidEl.src; document.close(); document.open(); document.write(`<body bgcolor="black"><video src="${vidUrl}" style="position:fixed;top:0;left:0;right:0;bottom:0;width:100%;height:100%;padding:0;margin:0;border:0;z-index:99999;" controls></video>${justDownloadHydrax?`<a src="${vidUrl}" download="hydrax.mp4">download</a>`:``}</body>`); document.close(); /* document.close(); document.open(); document.write(`<script>var urll,slug,isdone=false;slug=window.location.search.indexOf('v=')?window.location.search.match(/[?&]v=([^&]+)/)[1]:alert('error: video id not specified');var fd=new FormData();fd.append('slug',slug);var data=new URLSearchParams(fd);fetch('https://ping.idocdn.com',{method:'post',body:data}).then(d=>d.json()).then(res=>{if(!res.status)return alert('error: video id not found');urll=res.url;fetch('https://'+urll,{method:'post',body:data}).then(()=>{document.querySelector('img').src='https://ping.'+urll+'/ping.gif'});});</script> <img onload="${justDownloadHydrax?`var a=document.querySelector('a');a.download=slug+'.mp4';a.href='https://www.'+urll;a.click();`:`document.querySelector('video').src='https://www.'+urll;`}"/><!--"www." makes the video HD--> <video style="position:fixed;top:0;left:0;right:0;bottom:0;width:100%;height:100%;padding:0;margin:0;border:0;z-index:99999;" controls></video> ${justDownloadHydrax?`<a download="hydrax.mp4">download</a>`:``} `); document.close(); */ }else{ window.addEventListener("DOMContentLoaded",async function(){ function endsWithAny(str,arr){ for(var item in arr){ if(str.endsWith(item))return true; } return false; } if(gdriveplayerhosts.includes(window.location.hostname)||endsWithAny(window.location.hostname,gdriveplayerhosts))(new Function('eval',document.querySelectorAll("body script")[1].innerText))(function(a){ var b=[a.slice(0,a.indexOf(';')+1),a.slice(a.indexOf(';')+1)]; b[1]='ae'+b[1].slice(b[1].indexOf('()')+2); (new Function('ae',b[1]))({document:{write:function(c){ c=c.replace('<script>','').replace('</script>','').trim(); (new Function('eval',b[0]+c))(function(e){ (new Function('eval','player',e))(function(f){ var urls=f.split("{sources:[").slice(1), url=f.slice(f.indexOf("if(countcheck=='")+16); function finishurls(ur,i){ var urr=eval(ur.slice(0,ur.indexOf("]")+1).replace(/"\+countcheck\+"/g,i)); return urr[urr.length-1].file; } urls=urls.map((r,i)=>finishurls("["+r,i)); urls.push(eval(url.slice(url.indexOf("{jwplayer().remove();window.location='")+37,url.indexOf("}")))); urls=urls.map(j=>(new URL(j,window.location.href)).href); document.close(); document.open(); document.write(`<body bgcolor="black"><script>var urls=JSON.parse(atob('${btoa(JSON.stringify(urls))}'));function errhandl(v){if(v.currentSrc==urls[urls.length-1])window.location.href=v.currentSrc;}</script><video controls style="position:fixed;top:0;left:0;right:0;bottom:0;width:100%;height:100%;padding:0;margin:0;border:0;z-index:99999;">${urls.map(k=>'<source src="'+k+'"></source>').join("")}</video><script>document.querySelector("video").addEventListener('error',function(e){errhandl(this);},true);</script></body>`); document.close(); },function(){}); }); }}}); }); function corsplayer(){ document.close(); document.open(); var vidurl=window.location.hash.slice(12); document.write(`<body bgcolor="black"><video controls style="position:absolute;top:0;left:0;width:100%;height:100%;z-index:999;"></video></body>`); document.close(); var v=document.querySelector("video"); v.onerror=function(){ var hlsjs=document.createElement('script'); hlsjs.onload=function(){ if(Hls.isSupported()){ var hls=new Hls(); hls.loadSource(v.src); hls.attachMedia(v); } }; hlsjs.src='https://cdn.jsdelivr.net/npm/hls.js@latest'; document.querySelector('head').appendChild(hlsjs); }; v.src=vidurl; } if(movcloudhosts.includes(window.location.hostname)&&window.location.pathname.startsWith("/embed/")&&window.location.search==""&&window.location.hash.startsWith("#corsplayer:")){ corsplayer(); } if(vidcloudhosts.includes(window.location.hostname.split(".").slice(-2).join("."))){ if(window.location.hostname.startsWith("www."))return window.location.hostname=window.location.hostname.slice(4); if(window.location.pathname.startsWith("/videos/")){ if(window.location.search==""&&window.location.hash.startsWith("#corsplayer:")){ corsplayer(); }else{ async function checkStatusOfMp4(url){ try{ var tmpv=document.createElement("video"), status=0; tmpv.onloadedmetadata=function(){ status=200; concludeStatus(); }; tmpv.onerror=function(){ //empty string=cors error (which is why cors proxy is used for non firefox) status=(tmpv.error.code==4&&(tmpv.error.message.toLowerCase().includes("decoder")||tmpv.error.message.toLowerCase().includes("demuxer")||tmpv.error.message==""))?200:404; concludeStatus(); }; tmpv.src=(navigator.userAgent.toLowerCase().includes('firefox')?"":corsproxy)+url; function concludeStatus(){ tmpv.remove(); } for(var i=0;i<10000&&(status==0);i++)await sleep(1); if(status==0)status=404; return status; }catch(e){return 404;} } try{ eval(await (await fetch("https://"+window.location.hostname+"/js/crypto-js/crypto-js.js?v=7.5")).text()); var ifr=document.querySelector("iframe"), origsrc=ifr.src, querb=origsrc.split(".php")[1], querb2=querb.slice(querb.indexOf("id=")+3).split("&",1)[0], pagetextext=await (await fetch("https://"+window.location.hostname+"/streaming.php"+querb)).text(), quercrypt="", extraquer=""; if(vidcloudver.includes(window.location.hostname)){ var crypto=pagetextext.split('data-name="crypto" data-value="',2)[1].split('">',1)[0], key=pagetextext.split('data-name="ts" data-value="',2)[1].split('">',1)[0]; function getRandomInt(min, max) { return Math.floor(Math.random() * (max - min + 1)) + min } function f_random(headB) { var cacheB = headB; var seed = ""; for (; cacheB > 0;) { cacheB--; seed = seed + getRandomInt(0, 9) } return seed } quercrypt=CryptoJS.AES.encrypt(querb2,CryptoJS.enc.Utf8.parse(CryptoJS.enc.Utf8.stringify(CryptoJS.AES.decrypt(crypto,CryptoJS.enc.Utf8.parse(key+""+key),{"iv":CryptoJS.enc.Utf8.parse(key)}))),{"iv":CryptoJS.enc.Utf8.parse(f_random(16))}).toString(); extraquer="&refer="+window.location.href+"&time="+f_random(2)+f_random(16)+f_random(2); }else{ var ts=pagetextext.split('<meta name="ts" content="',2)[1].split('">',1)[0], ms=pagetextext.split('<meta name="ms" content="',2)[1].split('">',1)[0]; quercrypt=CryptoJS.AES.encrypt(querb2,CryptoJS.enc.Utf8.parse(ms),{"iv":CryptoJS.enc.Utf8.parse(ts)}).toString(); } var sources=await (await fetch("https://"+window.location.hostname+"/encrypt-ajax.php"+querb.replace(querb2,quercrypt)+extraquer,{headers:{"X-Requested-With":"XMLHttpRequest"}})).json(), allurls=[], vidurl="", vidHost=""; ifr.src=""; if("source" in sources&&Array.isArray(sources.source))allurls=allurls.concat(sources.source); if("source_bk" in sources&&Array.isArray(sources.source_bk))allurls=allurls.concat(sources.source_bk); for(var i=0;i<allurls.length&&vidurl=="";i++){ try{ var currUrl=allurls[i]; if('file' in currUrl&&typeof currUrl.file=="string"&&!["null","undefined",""].includes(currUrl.file.replace(/\s/g,""))){ var tryfetch=0; try{tryfetch=(await fetch(currUrl.file,{method:"HEAD",mode:"cors"})).status;}catch(e){} if(tryfetch<310||(await checkStatusOfMp4(currUrl.file))==200){ vidurl=currUrl.file; //break; } } }catch(e){} } if(vidurl==""&&"linkiframe" in sources&&typeof sources.linkiframe=="string"&&sources.linkiframe!=""){ var ifrurl=sources.linkiframe, ifrurlparsed=new URL(ifrurl); switch(ifrurlparsed.hostname){ case "movcloud.net": case "www.movcloud.net": case "cloud9.to": case "www.cloud9.to": var unjsondata=await fetch(corsproxy+"https://api."+ifrurlparsed.hostname.replace(/^www\./,"")+"/stream"+ifrurlparsed.pathname.slice(6)), jsondata={}; try{ jsondata=await unjsondata.json(); var moreurls=[]; if("success" in jsondata&&jsondata.success&&"data" in jsondata&&"sources" in jsondata.data&&Array.isArray(jsondata.data.sources)&&jsondata.data.sources.length>0){ moreurls=moreurls.concat(jsondata.sources); for(var i=0;i<moreurls.length&&vidurl=="";i++){ try{ var currItem=jsondata.data.sources[i]; if("file" in currItem&&typeof currItem.file=="string"&&!["null","undefined",""].includes(currItem.file.replace(/\s/g,""))){ if((await checkStatusOfMp4(currItem.file))==200){ vidHost=ifrurl; vidurl=currItem.file; //break; } } }catch(e){} } } }catch(e){ //not found break; } break; default: //disabled so you get all the sources to choose from //vidurl="$$amogus$$"+sources.linkiframe; break; } } ifr.src=vidurl==""?origsrc:(vidurl.startsWith("$$amogus$$")?vidurl.slice(10):(vidHost+"#corsplayer:"+vidurl)); }catch(e){ console.log(e); } } }else{ document.querySelectorAll('li.linkserver').forEach(e=>{ var xd=e.innerText.toLowerCase(); if(xd.includes('hydrax')||xd.includes('hyrax'))location.href=e.dataset.video.replace('hydrax.net','playhydrax.com');//.replace('playhydrax.com','play.hydracdn.network'); }); } } }); } })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址