迅雷云盘获取直链

获取迅雷云盘的直接下载链接,生成txt文件,可利用其他工具下载(如idman。。)

当前为 2021-08-23 提交的版本,查看 最新版本

// ==UserScript==
// @name         迅雷云盘获取直链
// @namespace    http://tampermonkey.net/
// @version      1.0
// @description  获取迅雷云盘的直接下载链接,生成txt文件,可利用其他工具下载(如idman。。)
// @author       bleu
// @match        https://pan.xunlei.com/*
// @grant        none
// @require      https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.min.js
// ==/UserScript==
(function () {
    'use strict';
    const originFetch = fetch;
    var reqHeaders, filesURL;
    Object.defineProperty(window, "fetch", {
        configurable: true,
        enumerable: true,
        // writable: true,
        get() {
            return (url, options) => {
                if (url.indexOf('https://api-pan.xunlei.com/drive/v1/files?limit') === 0) {
                    filesURL = url;
                    reqHeaders = options.headers;
                    //console.log(reqHeaders)
                }
                return originFetch(url, options)
            }
        }
    })
    var fileArry = [];
    var filetxt = [];
    var main = {
        addButtonEvent() {
            let $BleuButton = $('<div id="bleu_btn" class="pan-list-menu-item pan-list-menu-item__active"><span>获取直链</span></div>');
            $('div.pan-list-menu').prepend($BleuButton);
            $BleuButton.on('click', async function () {
                alert('获取直链中,点击继续');
                fileArry = [];
                filetxt = [];
                await main.getFileSign();
                //console.log(fileArry);
                for (let index = 0; index < fileArry.length; index++) {
                    if (fileArry[index]) {
                        if (fileArry[index].kind === 'drive#file') {
                            await main.getDirectLink(fileArry[index].id);
                        }
                    }

                }
                console.log(filetxt);
                main.downloadFile();
            })
        },

        getFileSign() {
            return new Promise((resolve, reject) => {
                $.ajax({
                    type: "get",
                    timeout: 10000, // 超时时间 10 秒
                    headers: reqHeaders,
                    url: filesURL,
                    dataType: "json",
                    success: function (data, textStatus) {
                        console.log("**获取文件列表成功**");
                        data.files.forEach((item) => {
                            let temp = {
                                'kind': item.kind,
                                'id': item.id
                            };
                            fileArry.push(temp);
                        });
                        $('li.pan-list-item').each((index, item) => {
                            if (item.getAttribute('class') === 'pan-list-item') {
                                delete(fileArry[index]);
                            }
                        });
                        resolve(textStatus);
                    },
                    error: function (err) {
                        console.log("**获取文件列表失败**");
                        reject(err);
                    }
                });
            });
        },

        getDirectLink(sign) {
            return new Promise((resolve, reject) => {
                $.ajax({
                    type: "get",
                    timeout: 10000, // 超时时间 10 秒
                    headers: reqHeaders,
                    url: `https://api-pan.xunlei.com/drive/v1/files/${sign}`,
                    dataType: "json",
                    success: function (data, textStatus) {
                        console.log("**获取文件信息成功**");
                        let temp = {
                            'name': data.name,
                            'link': data.web_content_link
                        };
                        filetxt.push(temp);
                        resolve(textStatus);
                    },
                    error: function (err) {
                        console.log("**获取文件信息失败**");
                        reject(err);
                    }
                });
            });

        },

        _downFlie(fnmae, data) {
            var elementA = document.createElement('a');
            elementA.download = fnmae;
            elementA.style.display = 'none';
            var blob = new Blob([data]);
            elementA.href = URL.createObjectURL(blob);
            document.body.appendChild(elementA);
            elementA.click();
            document.body.removeChild(elementA);
        },

        downloadFile() {
            let idmDown = '';
            let nameLink = '';
            let path = 'D:\test';
            filetxt.forEach((item) => {
                idmDown += `idman /d "${item.link}" /f ${item.name} /a&`;
                nameLink += `${item.name}\n${item.link}\n`;
            });
            this._downFlie(`idm下载${(new Date()).valueOf()}.txt`, idmDown);
            this._downFlie(`迅雷直链${(new Date()).valueOf()}.txt`, nameLink);
        },

        init() {
            this.addButtonEvent();
        }
    }

    function initUI() {
        let counter = 20;
        let listener = setInterval(function () {
            counter--;
            if (document.querySelector('.pan-list-item')) {
                clearInterval(listener);
                main.init();
            }
            counter === 0 && clearInterval(listener);
        }, 200);
    }
    initUI();
})();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址