您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
In just one page, you can now download your favorite videos on YouTube
当前为
// ==UserScript== // @name YouTube™ Video Downloader (1440p Update) // @description In just one page, you can now download your favorite videos on YouTube // @namespace http://tampermonkey.net/ // @version 1.0 // @author LazymanzoidYT (Design by Anpkal_Zuev) // @match https://www.youtube.com/* // @icon https://www.google.com/s2/favicons?domain=youtube.com // @grant GM_xmlhttpRequest // @compatible chrome // @compatible firefox // @compatible opera // @compatible edge // @compatible brave // @connect googuu.xyz // @connect loader.to // @connect oceansaver.in // @license MIT // ==/UserScript== // Copyright (c) 2021 Anpkal Zuev, LazymanzoidYT and others // Permission is hereby granted, free of charge, to any person obtaining // a copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, sublicense, and/or sell copies of the Software, and to // permit persons to whom the Software is furnished to do so, subject to // the following conditions: // The above copyright notice and this permission notice shall be // included in all copies or substantial portions of the Software. // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. window.onload = function() { var dark = !!document.getElementsByTagName("html")[0].getAttribute("dark"); var downloadIcon = `<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="#000000" style="margin-top: 5px;"><path d="M0 0h24v24H0V0z" fill="none"></path><path d="M13 5v6h1.17L12 13.17 9.83 11H11V5h2m2-2H9v6H5l7 7 7-7h-4V3zm4 15H5v2h14v-2z"></path></svg>`; if(dark){ downloadIcon = `<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="#FFFFFF"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M19 9h-4V3H9v6H5l7 7 7-7zm-8 2V5h2v6h1.17L12 13.17 9.83 11H11zm-6 7h14v2H5z"/></svg>` } var programSTATUS = 0; function startload(){ var format= document.getElementById("formatus").value; var f= format; if(f=="8k"||f=="4k"||f=="1080"||f=="720"||f=="480"||f=="360"){ f="mp4"; } getFORMVIDEO(format,f); } function updatepos(one,two){ var reproz = 100/two; var ttproz = reproz*one; document.getElementById("download21").innerText = "Downloaded: "+Math.trunc(ttproz*10)/10+"%"; if(Math.trunc(ttproz*10)/10 == 100){ document.getElementById("download21").innerText="Download" } } function getFORMVIDEO(format,fff){ var link = `https://loader.to/ajax/download.php?start=1&end=1&format=`+format+`&url=`+encodeURI(window.location.href); GM_xmlhttpRequest({ method: 'GET', url: link, responseType:"json", onload: function() { var ide = this.response.id; var gtitle = this.response.title checkStatus(); function checkStatus(){ GM_xmlhttpRequest({ method: 'GET', url: "https://loader.to/ajax/progress.php?id="+ide, responseType:"json", onload: function() { document.getElementById("download21").innerText="Downloading video from server: " + ""+this.response.progress/10+"%"; if(this.response.text != "Downloaded."){ setTimeout(()=>{checkStatus();},800); }else{ download(this.response.download_url,gtitle,fff) } } }); } } }); } function download(link,name,type){ window.location.href = link; programSTATUS=0; document.getElementById("download21").innerText="Convert and Download ⬇️"; /* GM_xmlhttpRequest({ method: 'GET', url: link, responseType:"blob", onload: function() { console.log(1); save([this.response], name+"."+type); }, onprogress:function(r) { updatepos(r.loaded,r.totalSize) } }); */ } var save = (function () { var a = document.createElement("a"); document.body.appendChild(a); a.style = "display: none"; return function (data, name) { programSTATUS=0; var blob = new Blob(data, {type: "octet/stream"}), url = window.URL.createObjectURL(blob); a.href = url; a.download = name; a.click(); window.URL.revokeObjectURL(url); if(document.getElementById("ON125374").checked){ showsettingsd(); localStorage.setItem('ACLOSE154658', '1'); } }; }()); var menu15 = ` <div style=" width: 250px; height: 89px; background-color: white; margin-left: calc(100vw/2 - 250px/2); margin-top: calc(100vh/2 - 89px/2); outline: 2px solid #000; padding: 0px; "><div style="height: 19px;"> <div style=" width: 84px; float: left; margin-left: 4px; margin-top: 2px; ">YouTube™ Video Downloader by Lazymanzoid</div><div style=" width: 50px; float: left; margin-left: 4px; margin-top: 2px; margin-left: 46px; ">auto close</div><input type="checkbox" id="ON125374" style=" margin-left: -1px; "><button id="slaves" style=" border-radius: 0px; float: right; border-width: 2px; border: 0px; height: 19px; background-color: #e91e63; "> X </button></div><div style=" height: 17px; "><select id="formatus" style=" width: 250px; border-width: 0px; background-color: #fff; "><optgroup label="Audio"> <option value="mp3">MP3</option> <option value="m4a">M4A</option> <option value="webm">WEBM</option> <option value="aac">AAC</option> <option value="flac">FLAC</option> <option value="opus">OPUS</option> <option value="ogg">OGG</option> <option value="wav">WAV</option> </optgroup><optgroup label="Video"> <option value="360">MP4 (360 px)</option> <option value="480">MP4 (480 px)</option> <option value="720">MP4 (720p)</option> <option value="1080" selected="selected">MP4 (1080p)</option> <option value="1440">MP4 (1440p)</option> <option value="4k">WEBM (4K)</option> <option value="8k">WEBM (8K)</option></optgroup></select></div><button id="download21" style=" border-radius: 0px; float: right; border-width: 2px; width: 100%; height: 53px; border: 0; ">Convert and Download ⬇️</button></div> `; function showsettingsd(){ var lay = document.getElementsByClassName("15674821765123")[0]; var pos = lay.style.display; lay.style.display = ( pos=="none" ? "block" : "none"); } setListener(); function setListener(){ try{ document.getElementById("slaves").onclick = function() { showsettingsd(); }; document.getElementsByClassName("14221212455")[0].onclick = function() { showsettingsd(); }; document.getElementById("download21").onclick = function() { if(!programSTATUS){ startload(); programSTATUS=1; }else{ alert("The video is still loading..") } }; document.getElementById("ON125374").onclick= function() { if(document.getElementById("ON125374").checked){ localStorage.setItem('ACLOSE154658', '1'); }else{ localStorage.setItem('ACLOSE154658', '0'); } }; }catch{setTimeout(()=>{setListener();},500)} } let div = document.createElement("div"); div.className = "14221212455"; div.innerHTML = downloadIcon; try{setTimeout(()=>{document.getElementsByClassName("style-scope ytd-video-primary-info-renderer")[8].append(div);},1000);} catch{ try{setTimeout(()=>{document.getElementsByClassName("style-scope ytd-video-primary-info-renderer")[8].append(div);},1000);} catch{ setTimeout(()=>{document.getElementsByClassName("style-scope ytd-video-primary-info-renderer")[8].append(div);},1000); } } let div1 = document.createElement('div'); div1.className = "15674821765123"; div1.innerHTML = menu15; div1.style = `width: 100vw;background-color: #00000024;height: 100vh;position: fixed;right: 5px;display: none;z-index:99999999;`; document.body.prepend(div1); if(!!Number(localStorage.getItem("ACLOSE154658"))){ document.getElementById("ON125374").click(); } }