Greasy Fork

Greasy Fork is available in English.

柒灵全能视频下载器

(目前仅支持)哔哩哔哩(bilibili)/优酷网(youku)视频批量下载

当前为 2020-11-04 提交的版本,查看 最新版本

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name         柒灵全能视频下载器
// @namespace    https://weibo.com/guoxuebiji/profile?is_all=1
// @version      1.8
// @description  (目前仅支持)哔哩哔哩(bilibili)/优酷网(youku)视频批量下载
// @author       东风
// @date         2020-4-25
// @modified     2020-11-04
// @match        http*://*.bilibili.com/video/*
// @match        http*://*.bilibili.com/bangumi/play/*
// @match        http*://*.bilibili.com/*/favlist*
// @match        http*://v.youku.com/v_show/*
// @match        http*://m.youku.com/alipay_video/*
// @icon         https://space.bilibili.com/favicon.ico
// @license      BSD 3-Clause License
// @grant        unsafeWindow
// @grant        GM_setClipboard
// @grant        GM_info
// @grant        GM_download
// @grant        GM_registerMenuCommand
// @grant        GM_xmlhttpRequest
// @grant        GM.xmlHttpRequest
// @grant        GM_openInTab
// @grant        GM.openInTab
// @grant        GM_getValue
// @grant        GM.getValue
// @grant        GM_setValue
// @grant        GM.setValue
// ==/UserScript==

(function () {
    'use strict';
    //==========utils=====================================================================
    //加载css文件
    function addCSS(href) {
        var link = document.createElement('link');
        link.type = 'text/css';
        link.rel = 'stylesheet';
        link.href = href;
        document.getElementsByTagName("head")[0].appendChild(link);
    }
    //加载js文件
    function addJS(src, cb) {
        var script = document.createElement("script");
        script.type = "text/javascript";
        script.src = src;
        document.getElementsByTagName('head')[0].appendChild(script);
        script.onload = typeof cb === "function" ? cb : function () {};
    }

    //由于@require方式引入jquery时layer使用异常,故引用cdn中jquery v1.10.1;加载完成后引用又拍云中layer v3.1.1
    addJS("https://cdn.bootcss.com/jquery/3.0.0/jquery.min.js", function () {
        $.noConflict();
        // addJS("https://static.saintic.com/cdn/layer/3.1.1/layer.js");
        addJS("https://www.layuicdn.com/layui-v2.5.6/layui.js");
        addCSS("https://www.layuicdn.com/layui-v2.5.5/css/layui.css");
    });

    function GetFileName(url) {
        var Business=url.split("/");
        return Business[Business.length-1];
    }

    // String.prototype.TextFilter=function(){
    //     var pattern=new RegExp("[`~%!@#^=''?~!@#¥……&——‘”“'?*()(),,。.、]"); //[]内输入你要过滤的字符
    //     var rs="";
    //     for(var i=0;i<this.length;i++){
    //         rs+=this.substr(i,1).replace(pattern,'');
    //     }
    //     return rs;
    // }

    // 把空格和斜杠转换成下划线
    function Trim(str)
    {
        // str = str.TextFilter()
        var result = str.replace(/\s/g,"_");
        result = result.replace(/\//g,"_");
        result = result.replace(/\\/g,"_");
        return result;
    }

    // 去掉标题后缀
    function FormatTitle(str)
    {
        var title = Trim(document.title)
        var n = title.lastIndexOf(str);
        if (n >= 0) {
            title = title.substring(0,n);
        }
        return title;
    }   

    function ShowTips(str) {
        layui.use('layer', function(){
          var layer = layui.layer;
            layer.msg(str, {
                icon: 1
            });
        }); 
    }
    //字符串是否包含子串
    function isContains(str, substr) {
        //str是否包含substr
        return str.indexOf(substr) >= 0;
    }

    // 把网页获取的对象转换成数组
    function objToArray(x) {
        var list = [];
        console.log(x)
        for (var i = 0; i < x.length; i++) {
            list[i] = x[i];
        }
        return list
    }
    //==========以下是与下载器通讯=====================================================================
    var host = '127.0.0.1'
    ,port = '5678';
    
    function wsmessage(evt) 
    { 
        console.log(evt);
        var received_msg = evt.data;
        console.log("收到服务器的信息",received_msg);
        // ws.send(JSON.stringify(["https://www.bilibili.com/video/BV19E411D78Q?p=6","https://www.bilibili.com/video/BV19E411D78Q?p=3"]));
        // console.log(JSON.parse(received_msg));
        // 发送成功{id: 2333333, jsonrpc: "2.0", result: "a6ff40d33524229a"}
        // 开始下载{jsonrpc: "2.0", method: "aria2.onDownloadStart", params: [[gid: "a6ff40d33524229a"]]}
        // 下载完成{jsonrpc: "2.0", method: "aria2.onDownloadComplete", params: [[gid: "a6ff40d33524229a"]]}
        // 下载出错{jsonrpc: "2.0", method: "aria2.onDownloadError", params: [[gid: "a6ff40d33524229a"]]}

        ShowTips("任务发送成功");
    };
        
    function wsclose() 
    { 
        console.log("连接关闭");
        // layui.use('layer', function(){
        //   var layer = layui.layer;
        //     layer.msg("连接关闭", {
        //         icon: 1
        //     });
        // }); 
    };

    function Download(url, out, dir)
    {
        // var json = MakeSendData(url, out, dir)
        var ws = new WebSocket("ws://" + host + ":" + port + "/jsonrpc");

        function wsopen()
        {
            console.log("连接下载服务器");
            // var json = MakeSendData("http://aria2c.com/usage.html", "test.html", "./dow")
            // ws.send(JSON.stringify(["https://www.bilibili.com/video/BV19E411D78Q?p=5","https://www.bilibili.com/video/BV19E411D78Q?p=3"]));
            ws.send(JSON.stringify(url));

            setTimeout(function() {
                ws.close()
            }, 10000)
            
        };

        setTimeout(function() {
            if (ws.readyState===1) {
                //连接成功什么事情都不用处理
            }else{
                ShowTips("连接下载器失败,请确认开启下载器");
            }
        }, 1000)

        ws.onopen =  wsopen;
        ws.onmessage = wsmessage;
        ws.onclose =  wsclose;
    };

    //===============================================================================




    // 拷贝我的收藏视频网址
    function CopyFavlistUrls() {

        var title = "我的收藏"

        var x = document.getElementsByClassName("fav-video-list clearfix content")[0].children;
        console.log(title)

        var list = [];
        console.log(x)
        for (var i = 0; i < x.length; i++) {
            console.log(i,x[i].attributes["class"].nodeValue)
            if (x[i].attributes["class"].nodeValue != "small-item disabled") {
                list[i] = x[i];
            }
        }

        console.log(list)
        // zoomfile
        if (list) {

            GM_setClipboard( list.map(function (pin) {
                return "https:" + pin.children[0].attributes["href"].nodeValue + "\r\n";
            }).join(""));

            return list.map(function (pin) {
                var item = {"url": "https:" + pin.children[0].attributes["href"].nodeValue};
                item.folder = "我的收藏"
                item.islist = false;
                return item;
            })
        }else
        {
            ShowTips("找不到视频");
        }
    }

    // 拷贝播放列表视频网址
    function CopyVedioUrls() {
        var title = Trim(document.querySelector('meta[property="og:title"]').getAttribute('content'));//FormatTitle("_哔哩哔哩(゜-゜)つロ干杯~-bilibili")

        var list_box = document.getElementsByClassName("list-box")
        if (list_box.length == 0) {
            return [{"url": window.location.href,"islist": false}]
        }

        var x = document.getElementsByClassName("list-box")[0].children;
        console.log(title)

        var list = [];
        console.log(x)
        for (var i = 0; i < x.length; i++) {
            list[i] = x[i];
        }

        console.log(list)
        // zoomfile
        if (list) {

            GM_setClipboard( list.map(function (pin) {
                return "https://www.bilibili.com" + pin.children[0].attributes["href"].nodeValue + "\r\n";
            }).join(""));

            return list.map(function (pin) {
                var item = {"url": "https://www.bilibili.com" + pin.children[0].attributes["href"].nodeValue}
                item.folder = Trim(title)
                item.islist = false;
                return item;
            })
        }else
        {
            ShowTips("找不到视频");
        }
    }
    // 拷贝番剧播放列表视频网址
    function CopyBangumiUrls() {
        jQuery.ajax({
            url: window.location.href,
            async: false,
            success: function (res) {
                // console.log(res);
                var info = res

                var n = info.lastIndexOf("<script>window.__INITIAL_STATE__");
                if (n >= 0) {
                    info = info.substring(n+"<script>window.__INITIAL_STATE__=".length);
                    var n2 = info.indexOf(";(function(){var s;(s=document.currentScript||document.scripts[document.scripts.length-1]).parentNode.removeChild(s);}());</script>");
                    // console.log("1111",n, n2,info)
                    info = info.substring(0,n2);
                }
                var bili_state = JSON.parse(info)
                if (bili_state) {

                    console.log(bili_state)
                    var epList = bili_state.epList 
                    var title = bili_state.mediaInfo.title
                    var ssType = bili_state.ssType 
                    // console.log(bili_state.epList)
                    // console.log("epList =", epList, "mediaInfo = ", mediaInfo)
                    // for (var i = 0; i < epList.length; i++) {
                    //     console.log(i, epList[i])
                    // }

                    // if (ssType==1) { //番剧

                        var urls = epList.map(function (ep) {
                            var item = {
                                "url": "https://www.bilibili.com/bangumi/play/ep"+ ep.id, 
                                "titleFormat":Trim(ep.titleFormat), 
                                "longTitle":Trim(ep.longTitle),
                                "fileName":Trim(ep.titleFormat+"_"+ep.longTitle)
                            }
                            if (ep.longTitle == "") {
                                item.fileName = Trim(ep.titleFormat)
                            }
                            item.folder = Trim(title)
                            item.islist = false;
                            return item;
                        })
                        Download(urls)
                    // }else
                    // {// 电影
                    //     DownloadSelf(title, false)
                    // }
                }else
                {
                    var title = document.querySelector('meta[property="og:title"]').getAttribute('content');
                    DownloadSelf(title, true)
                }
            },
            omplete: function (data) {
                if (data.status === 200) {
                }
                else {
                    ShowTips("系统错误:暂时无法连接服务器")
                    var title = document.querySelector('meta[property="og:title"]').getAttribute('content');
                    DownloadSelf(title, true)
                }
            }
        });
    }

    // function CopyBangumiUrlsEx() {
    //     var title = document.querySelector('meta[property="og:title"]').getAttribute('content');//FormatTitle("_番剧_bilibili_哔哩哔哩")
    //     console.log(title)

    //     //进度
    //     var progress = document.getElementsByClassName("ep-list-progress");
    //     // console.log(progress[0])
    //     var arrprogress = progress[0].innerText.split('/')
    //     var index = parseInt(arrprogress[0])-1;
    //     var total = parseInt(arrprogress[1]);
    //     console.log("当前第"+index+"集")

    //     var arrUrl = window.location.pathname.split('/');
    //     // console.log("arrUrl = ", arrUrl);
    //     var preVideoID = arrUrl[3].substring(0,2)
    //     var videoID = parseInt(arrUrl[3].substring(2))-index
    //     console.log(preVideoID , "videoID = ", videoID)

    //     var list = [];
    //     // console.log(x)
    //     for (var i = 0; i < total; i++) {
    //         list[i] = videoID + i;
    //     }

    //     console.log(list)
    //     // zoomfile
    //     if (list) {

    //         GM_setClipboard( list.map(function (pin) {
    //             return "https://www.bilibili.com/bangumi/play/"+ preVideoID + pin + "\r\n";
    //         }).join(""));

    //         var item = {"url": window.location.href}
    //         item.folder = title;
    //         item.islist = true;
    //         return [item]
    //     }else
    //     {
    //         ShowTips("找不到视频");
    //     }
    // }

    function DownloadSelf(title, islist) {
        var item = {"url": window.location.href}
        item.folder = Trim(title); // 不能有空格,有时候下载失败是因为有空格
        item.islist = islist;
        Download([item])
    }

    // 解析bilibili网站
    function ParseBilibiliUrl() {
        var arrUrl = window.location.pathname.split('/');
        console.log("arrUrl = ", arrUrl);
        if(!arrUrl[1]) return;
        if (arrUrl[1] == "video") 
            return CopyVedioUrls();
        else if (arrUrl[1] == "bangumi") 
            return CopyBangumiUrls();
        else if (arrUrl[2] == "favlist") 
            return CopyFavlistUrls();
        else
        {
            var title = Trim(document.title)
            DownloadSelf(title, false)
            // var item = {"url": window.location.href,"islist": false}
            // return [item]
        }
    }

    // 解析优酷网站
    function ParseYoukuUrl() {
        var arrUrl = window.location.pathname.split('/');
        console.log("arrUrl = ", arrUrl);

        if(!arrUrl[1]) return;
        if (arrUrl[1] == "v_show") 
        {
            var title = Trim(document.querySelector('meta[name="irAlbumName"]').getAttribute('content')); 
            var x = document.getElementsByClassName("anthology-content")[0].children;
            var list = objToArray(x)
            if (list) {
                return list.map(function (pin) {
                    var item = {"url": pin.children[0].attributes["href"].nodeValue}
                    item.saveFileName = Trim(pin.title) //优酷下载的名称没有第几集, 所以需要重命名
                    item.folder = Trim(title)
                    item.islist = false;
                    return item;
                })
            }else
            {
                ShowTips("找不到视频");
            }            
        }
        else
        {
            var title = Trim(document.title)
            DownloadSelf(title, false)
        }
    }

    //获取可使用域名
    function getEffectiveHost() {
        var host = window.location.host;
        if (!host) {
            host = document.domain;
        }
        if (!host) {
            host = "bilibili.com";
        }
        if (isContains(host, "bilibili")) {
            host = "bilibili";
        } else if (isContains(host, "youku")) {
            host = "youku";
        } else {
            host = "bilibili";
        }
        return host;
    }

    function ParseUrl() {
        var host = getEffectiveHost()
        if (host == "bilibili") {
            return ParseBilibiliUrl()
        } else if (host == "youku") {
            return ParseYoukuUrl()
        }
        else {
            var title = Trim(document.title)
            DownloadSelf(title, false)            
        }
        
    }

    /*
        主入口,分出不同模块:用户、画板,监听并刷新URL
    */
    window.onload =function() {

        function GMaddStyleString(css) {
            var myStyle = document.createElement('style');
            myStyle.textContent = css;
            var doc = document.head || document.documentElement;
            doc.appendChild(myStyle);
        }


        // var int=self.setInterval(function (){
            // console.log("Interval---------------");

            // var user_text = "拷贝下载链接";
            // var tmpHtml = '<button type="button" class="CopyPicUrls" style="  height:30px;width:100px;color:white;border-radius: 4px;background-color: #008CBA; font-size: 16px; text-align:center" id="CopyPicUrls" >拷贝下载链接</button>'

            // var btn = document.getElementsByClassName("CopyPicUrls")
            // // console.log(btn,"-======")
            // if (btn.length > 0) {
            //     btn.innerHTML = tmpHtml
            //     return
            // }

            // var gelement = document.getElementsByClassName("nav-search-box")
            // // console.log(gelement,"----------", gelement.length, gelement[0]);
            // var pab = document.getElementsByClassName("nav-search-box")[0];
            // // console.log(pab,"----------222");
            
            // // console.log(pab);
            // pab.insertAdjacentHTML('afterEnd', tmpHtml);
            // //监听用户点击下载事件
            // document.getElementById("CopyPicUrls").onclick = function () {
            //     ParseUrl();
            // };

            var btn = document.getElementsByClassName("btnDownload")
            if (btn.length > 0) {
                // btn.innerHTML = tmpHtml
                return
            }

            GMaddStyleString(`#download_movie_box {cursor:pointer; position:fixed; top:` + 60 + `px; left:` + 0 + `px; width:0px; background-color:#2E9AFE; z-index:2147483647; font-size:20px; text-align:left;}
                #download_movie_box .item_text {width:28px; padding:4px 0px; text-align:center;}
                #download_movie_box .item_text img {width:35px; height:35px; display:inline-block; vertical-align:middle;}
                `);

            // var $ = $ || window.$;
            var ImgBase64Data = "data:image/png;base64,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"

            var html = 
            `<div id='download_movie_box' class="btnDownload">
                <div class='item_text'>
                    <img src='`+ ImgBase64Data +`' title='下载视频' id="downloadVideos"/>
                </div>
            </div>`;

            document.body.insertAdjacentHTML('afterEnd', html);

            document.getElementById("downloadVideos").onclick = function () {
                var urls = ParseUrl();
                console.log("urls = ",urls)
                if (urls) {
                    Download(urls)
                }
            };
        // },3000)
    }


})();