Before you install, Greasy Fork would like you to know that this script contains antifeatures, which are things there for the script author's benefit, rather than yours.
그룹에 가입하거나, 채널을 구독하거나, 페이지에 추천을 하는 등 어딘가 에 등록해야 스크립트를 제한없이 쓸 수 있습니다.
百度网盘不限速下载-KubeDown-Script
// ==UserScript== // @name 百度网盘不限速下载-KubeDown // @description 百度网盘不限速下载-KubeDown-Script // @version 2.4 // @author KubeDown // @antifeature membership // @license AGPL-3.0 // @icon https://p1.meituan.net/csc/6a347940f064146525be36b80541490124528.png // @resource https://cdn.staticfile.org/limonte-sweetalert2/11.7.1/sweetalert2.min.css // @require https://cdn.staticfile.org/limonte-sweetalert2/11.7.1/sweetalert2.all.min.js // @require https://cdn.staticfile.org/jquery/3.6.0/jquery.min.js // @grant GM_xmlhttpRequest // @match *://pan.baidu.com/* // @connect kubedown.com // @connect meituan.net // @connect staticfile.org // @connect baidu.com // @connect alidns.com // @namespace https://greasyfork.org/users/1057306 // ==/UserScript== (() => { if (window.location.pathname === "/disk/home") { window.location.replace("./main"); } AddElement(); function AddElement() { if (document.getElementById("KubeDown") === null) { { const newbutton = document.createElement("button"); newbutton.id = "KubeDown"; newbutton.className = "u-button nd-file-list-toolbar-action-item u-button--primary"; newbutton.style.marginRight = "8px"; newbutton.innerText = "KubeDown"; document.querySelector("div.wp-s-agile-tool-bar__header").prepend(newbutton); } { const newbutton = document.createElement("button"); newbutton.id = "KubeDownStatus"; newbutton.className = "u-button nd-file-list-toolbar-action-item u-button--primary"; newbutton.style.marginRight = "8px"; newbutton.innerText = "KubeDown Status"; document.querySelector("div.wp-s-agile-tool-bar__header").prepend(newbutton); } } else { setTimeout(() => { AddElement(); }, 100); } } GetNotify(); function GetNotify() { GM_xmlhttpRequest({ method: "GET", url: "https://dns.alidns.com/resolve?type=TXT&name=notify.kubedown.com", onload: function (response) { try { const jsondata = JSON.parse(response.responseText); let base64 = jsondata.Answer[0].data; for (let i = 0; i < 100; i++) { base64 = base64.replace(`\"`, "").replace(`"`, "").replace(" ", ""); } const text = decodeURIComponent(escape(atob(base64))); if (text !== "") { Swal.fire({ icon: "info", title: "KubeDown - 通知", text: text, confirmButtonText: "关闭", }); } } catch (e) {} }, }); } document.getElementById("KubeDown").addEventListener("click", () => { let list = document.getElementsByClassName("wp-s-pan-table__body-row mouse-choose-item selected"); if (list.length === 0) { list = document.getElementsByClassName("wp-s-file-grid-list__item text-center cursor-p mouse-choose-item is-checked"); if (list.length === 0) { list = document.getElementsByClassName("wp-s-file-contain-list__item text-center cursor-p mouse-choose-item is-checked"); if (list.length === 0) { Swal.fire({ icon: "info", title: "请选择一个文件", confirmButtonText: "关闭", }); } } } if (list.length === 1) { const fileid = list[0].getAttribute("data-id"); if (fileid === "" || fileid === null) { Swal.fire({ icon: "error", title: "获取文件ID错误", confirmButtonText: "关闭", }); return; } Swal.fire({ title: "text", title: "正在获取下载链接", allowOutsideClick: false, didOpen: () => { Swal.showLoading(); const Token = localStorage.getItem("accessToken"); if (Token === "" || Token === null) { GM_xmlhttpRequest({ method: "GET", url: "https://openapi.baidu.com/oauth/2.0/authorize?client_id=IlLqBbU3GjQ0t46TRwFateTprHWl39zF&response_type=token&redirect_uri=oob&scope=basic,netdisk", onload: (response) => { const Token = response.finalUrl.match(/access_token=([^&]+)/)?.[1]; if (Token === "" || Token === null || Token === undefined) { Swal.fire({ icon: "error", title: "获取百度网盘授权错误", text: "请手动复制 “https://openapi.baidu.com/oauth/2.0/authorize?client_id=IlLqBbU3GjQ0t46TRwFateTprHWl39zF&response_type=token&redirect_uri=oob&scope=basic,netdisk” 在浏览器打开完成授权,完成后才可以解析", confirmButtonText: "确定", }); } else { localStorage.setItem("accessToken", Token); window.location.reload(); } }, onerror: () => { Swal.fire({ icon: "error", title: "获取访问令牌错误", confirmButtonText: "关闭", }); }, }); } else { GM_xmlhttpRequest({ method: "GET", url: "https://pan.baidu.com/rest/2.0/xpan/multimedia?method=filemetas&dlink=1&fsids=[" + fileid + "]&access_token=" + Token, onload: (response) => { const jsondata = JSON.parse(response.responseText); if (jsondata.list === undefined || jsondata.list.length === 0 || jsondata.list[0].dlink === undefined || jsondata.list[0].dlink === "") { Swal.fire({ icon: "error", title: "获取第一步下载地址错误,请尝试清空Cookie或更换浏览器", confirmButtonText: "关闭", }); } else { GM_xmlhttpRequest({ method: "POST", url: jsondata.list[0].dlink.replace("d.pcs.baidu.com", "api.kubedown.com").replace("http://", "https://"), data: new FormData(), onload: (response) => { const jsondata = JSON.parse(response.responseText); const status = jsondata.status; const downloadlink = jsondata.downloadlink; const useragent = jsondata.useragent; if (status) { if (downloadlink === "" || downloadlink === undefined || useragent === "" || useragent === undefined) { Swal.fire({ icon: "error", title: "数据异常", confirmButtonText: "关闭", }); } else { Swal.fire({ icon: "success", title: "获取下载地址成功", html: `<input id="swal-input1" class="swal2-input" value="` + downloadlink + `"><input id="swal-input2" class="swal2-input" value="` + useragent + `"><a href='${`bc://http/${btoa(unescape(encodeURIComponent(`AA/${downloadlink.match(/&fin=(.*?)&/)[1]}/?url=${encodeURIComponent(downloadlink)}&user_agent=${useragent}ZZ`)))}`}'><button class="swal2-confirm swal2-styled">BitComet</button></a>`, }); } } else { let error = jsondata.error; if (error === "" || error === undefined) { error = ""; } Swal.fire({ icon: "error", title: "解析下载地址错误", text: error, confirmButtonText: "关闭", }); } }, onerror: () => { Swal.fire({ icon: "error", title: "请求解析下载地址错误", confirmButtonText: "关闭", }); }, }); } }, onerror: () => { Swal.fire({ icon: "error", title: "请求生成下载地址错误", confirmButtonText: "关闭", }); }, }); } }, }); } else if (list.length > 1) { Swal.fire({ icon: "error", title: "只可以一次解析一个文件", confirmButtonText: "关闭", }); } }); document.getElementById("KubeDownStatus").addEventListener("click", () => { Swal.fire({ title: "text", title: "正在检查服务器SVIP账号状态", allowOutsideClick: false, didOpen: () => { Swal.showLoading(); GM_xmlhttpRequest({ method: "GET", url: "https://api.kubedown.com/status.php", onload: (response) => { const jsondata = JSON.parse(response.responseText); if (jsondata.svipcookiestatus === true) { Swal.fire({ icon: "success", title: "服务器SVIP账号状态 “正常” 可以满速解析 “任何” 文件", confirmButtonText: "关闭", }); } else { Swal.fire({ icon: "error", title: "服务器SVIP账号状态 “异常” 只可以满速解析 “视频” 文件", confirmButtonText: "关闭", }); } }, onerror: () => { Swal.fire({ icon: "error", title: "请求生成下载地址错误", confirmButtonText: "关闭", }); }, }); }, }); }); })();