返回首頁 

Greasy Fork is available in English.

柒灵全能视频下载器

(目前支持)哔哩哔哩(bilibili)/优#网(youku)/腾讯视频(qq)/#奇艺(iqiyi)/##大学慕课网(www.icourse163.org)视频批量下载, 加速下载, 随时随地想看就看. 支持微元素/花瓣网图片批量下载


ติดตั้งสคริปต์นี้?
// ==UserScript==// @name         柒灵全能视频下载器// @namespace    https://weibo.com/guoxuebiji/profile?is_all=1// @version      2.6.9// @description  (目前支持)哔哩哔哩(bilibili)/优#网(youku)/腾讯视频(qq)/#奇艺(iqiyi)/##大学慕课网(www.icourse163.org)视频批量下载, 加速下载, 随时随地想看就看. 支持微元素/花瓣网图片批量下载// @author       东风// @date         2020-04-25// @modified     2023-09-27// @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/*// @match        http*://v.qq.com/x/cover/*// @match        http*://m.v.qq.com/x/cover/*// @match        http*://v.qq.com/x/page/*// @match        http*://m.v.qq.com/x/page/*// @match        http*://m.v.qq.com/*// @match        http*://www.iqiyi.com/v*// @match        http*://m.iqiyi.com/*// @match        http*://www.iqiyi.com/*// @match        http*://m.iqiyi.com/kszt/*// @match        http*://www.iqiyi.com/kszt/*// @match        http*://www.element3ds.com/*// @match        https://basic.smartedu.cn/syncClassroom*// @match        https://weibo.com/*tabtype=album// @match        http*://huaban.com/boards/*// @match        http*://huaban.com/user/*// @match        http*://mp.weixin.qq.com/*// @match        https://www.icourse163.org/learn/*?tid=*// @icon         http*://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, onerror ) {var script = document.createElement("script");script.type = "text/javascript";script.src = src;console.log("addJS",script)document.getElementsByTagName('head')[0].appendChild(script);script.onload = typeof cb === "function" ? cb : function () {};script.onerror = typeof onerror === "function" ? onerror : function () {};}// 加载css字符串function GMaddStyleString(css) {var myStyle = document.createElement('style');myStyle.textContent = css;var doc = document.head || document.documentElement;doc.appendChild(myStyle);}function AddHtml(html) {document.body.insertAdjacentHTML('afterEnd', html);}// 改用ZUI //https://www.openzui.com/// 百度 CDN//     <script src="https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>// ## CDN//     <script src="https://lib.sinaapp.com/js/jquery/2.0.2/jquery-2.0.2.min.js"></script>// 又拍云 CDN//     <script src="https://upcdn.b0.upaiyun.com/libs/jquery/jquery-2.0.2.min.js"></script>addJS("https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js", function () {console.log("-------------------load jq-------------------")window.$ = $.noConflict();addJS("https://cdnjs.cloudflare.com/ajax/libs/jszip/3.1.5/jszip.min.js")addJS("https://cdnjs.cloudflare.com/ajax/libs/FileSaver.js/1.3.8/FileSaver.min.js")// addCSS("https://cdn.bootcdn.net/ajax/libs/zui/1.9.2/css/zui.min.css");// addJS("https://cdn.bootcdn.net/ajax/libs/zui/1.9.2/js/zui.min.js", function () {addCSS("https://lib.baomitu.com/zui/1.9.2/css/zui.min.css");addJS("https://lib.baomitu.com/zui/1.9.2/js/zui.min.js", function () {console.log("-------------------load bootcdn zui.min.js-------------------")})});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, limit){// str = str.TextFilter()console.log(str)var r###lt = str.replace(/\s+/g,"_");r###lt = r###lt.replace(/\//g,"-");r###lt = r###lt.replace(/\\/g,"_");r###lt = r###lt.replace(/&/g,"-");r###lt = r###lt.replace(/"/g,"");r###lt = r###lt.replace(/:/g,"_");r###lt = r###lt.replace(/%/g,"_");r###lt = r###lt.replace(/\|/g,"_");if (limit) {r###lt=r###lt.substring(0,limit);}console.log(r###lt)return r###lt;}// 去掉标题后缀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) {new $.zui.Messager(str, {type: 'success', // 定义颜色主题time:2000}).show();}function ShowDialog(str) {// (new $.zui.ModalTrigger({custom: str})).show();// console.log("ShowDialog"+str)alert(str)}//字符串是否包含子串function isContains(str, substr) {//str是否包含substrreturn 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}// 补零function PrefixZero(num, n) {return (Array(n).join(0) + num).slice(-n);}// 文件加前缀function AddPreFilename(fileName, index, max) {var len = (max+"").lengthreturn "P"+PrefixZero(index,len)+"."+fileName}function ShowSelect(senddata) {window.g_senddata = senddataconsole.log("ShowSelect", JSON.stringify(senddata))var select_window = $("#select_window")console.log(select_window)console.log("解决插件冲突", $(".cssobj-jiangxiaobai"))var ocss = $(".cssobj-jiangxiaobai").removeClass(".cssobj-jiangxiaobai")for (var i = 0; i < ocss.length; i++) {ocss[i].innerHTML = ""}if (!select_window[0]) {var html =`<div class="modal fade" id="select_window" style="z-index:10000"><div class="modal-dialog modal-lg"><div class="modal-content"><div class="modal-header"><button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span><span class="sr-only">关闭</span></button><h4 class="modal-title">请选择要下载的视频</h4></div><div class="modal-body"><form id='select_form' class="layui-form" action="" lay-filter="example"></form></div><div class="modal-footer center"><div class="select" style="width:100px;display:inline-block;display:none"><select class="form-control"><option value="">清晰度</option><option value="80">1080p</option><option value="64">720p</option><option value="32">480p</option><option value="16">360p</option></select></div><div class="switch" style="width:100px;display:inline-block"><input type="checkbox" id='checkbox_index'><label>添加序号</label></div><button type="button" class="btn btn-primary" id="btn_download_all">下载选中</button><button type="button" class="btn btn-primary" id="btn_select_all">取消/全选</button><button type="button" class="btn btn-primary" id="btn_download_self">仅下载本视频</button><button type="button" class="btn btn-default" data-dismiss="modal" >关闭</button></div></div></div></div>`AddHtml(html)//style="display:none"// select_form = $("#select_form")// $(function() {//     $("#checkbox_index").click(function(){//         // var obj = $("#checkbox_index")//         // if(obj.checked){//         //     console.log("selected");//         // }else{//         //     console.log("unselected");//         // }//         $("#select_window").hide()//         Download(senddata)//     });// });$(function() {$("#btn_download_self").click(function(){RealDownload(DownloadSelfInfo())});});$(function() {$("#btn_download_all").click(function(){var list = $("[id='listItem']:checkbox")var checkbox = $("#checkbox_index")[0]console.log("checkbox_index",checkbox.checked)var res = []for (var i = 0; i < list.length; i++) {if (list[i].checked) {if (checkbox.checked) {window.g_senddata[i].fileName = AddPreFilename(window.g_senddata[i].fileName, i+1, list.length)}res.push(window.g_senddata[i])}}console.log(res)RealDownload(res)});});$(function() {$("#btn_select_all").click(function(){var list = $("[id='listItem']:checkbox")var flag = trueif (list[0] && list[0].checked) {flag = false}console.log("flag" , flag)console.log(list)for (var i = 0; i < list.length; i++) {list[i].checked = flag}});});}else{if ($("#select_window").is(":visible")) {$("#select_window").hide()// alert("存在")return}}var select_form = $("#select_form")//弹出表格var s_content = `<form class="layui-form" action="" lay-filter="example"><div class="layui-form-item" pane=""><label class="layui-form-label">视频列表</label>`for (var i = 0; i < senddata.length; i++) {if (senddata[i]) {senddata[i].id = i+1var checkboxid = "select_checkbox_id"+is_content = s_content + `<div class="checkbox-primary"><input type="checkbox" checked="checked" id="listItem"><label for="`+checkboxid+`">`+ senddata[i].fileName +`</label></div>`}}s_content = s_content + `</div></form>`console.log(s_content)select_form[0].innerHTML = s_contentconsole.log($('#select_window'))$('#select_window').modal({scrollInside : true,moveable : "inside",show     : true})}function Download(urls){ShowSelect(urls)};function WebGet(url, success, headers) {jQuery.ajax({url: url,async: false,success: success,headers: headers,omplete: function (data) {if (data.status === 200) {}else {ShowTips("系统错误:暂时无法连接服务器")}}});}function WebPost(url, data, success) {console.log("WebPost", url, data)$.ajaxSettings.async = false; //设置为同步$.post(url, data, success)$.ajaxSettings.async = true;}//获取指定名称的cookie的值function getcookie(objname){var arrstr = document.cookie.split("; ");for(var i = 0;i < arrstr.length;i ++){var temp = arrstr[i].split("=");if(temp[0] == objname) return unescape(temp[1]);}}//获取get参数function GetRequest() {var url = location.search; //获取url中"?"符后的字串var theRequest = new Object();if (url.indexOf("?") != -1) {var str = url.substr(1);console.log("--------------", url, str)var strs = str.split("&");for(var i = 0; i < strs.length; i ++) {theRequest[strs[i].split("=")[0]]=decodeURI(strs[i].split("=")[1]);}}return theRequest;}//==========以下是与下载器通讯=====================================================================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", r###lt: "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 RealDownload(url, out, dir){console.log("RealDownload",url)console.log(JSON.stringify(url))// 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 CreateWs(cb) {var ws = new WebSocket("ws://" + host + ":" + port + "/jsonrpc");function wsopen(){console.log("连接下载服务器");if (cb) {cb()}// 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() {if (ws.readyState===1) {//连接成功什么事情都不用处理}else{ShowTips("连接下载器失败,请确认开启下载器");}}, 1000)ws.onopen =  wsopen;ws.onmessage = wsmessage;ws.onclose =  wsclose;return ws}function SendMsg(ws, data, isclose) {console.log("SendMsg readyState",ws.readyState)if (ws.readyState != 1) {ws = CreateWs(function() {SendMsg(ws, data, isclose)})return}ws.send(JSON.stringify(data));if (isclose) {setTimeout(function() {ws.close()}, 1000)}}var g_ws = CreateWs()//===============================================================================// 拷贝我的收藏视频网址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];list.push(x[i])}}console.log(list)// zoomfileif (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[1].attributes["href"].nodeValue};item.folder = "我的收藏"item.islist = false;item.fileName=Trim(pin.children[1].title)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) {var list_box = document.getElementsByClassName("video-sections-content-list") // sectionsif (list_box.length > 0) {//需要读页面信息console.log("------list_box.length---------")CopySeasonUrls()return}else{return DownloadSelfInfo()}}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)if (list) {return list.map(function (pin,index) {var item = {"url": "https://www.bilibili.com" + pin.children[0].attributes["href"].nodeValue}item.folder = Trim(title, 30)item.fileName = Trim(pin.children[0].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 = resvar 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.epListvar title = bili_state.mediaInfo.titlevar 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, 30)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)}}});}// vedio 中的seasonfunction CopySeasonUrls() {jQuery.ajax({url: window.location.href,async: false,success: function (res) {// console.log(res);var info = resvar 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 sectionsInfo = bili_state.sectionsInfovar title = sectionsInfo.titlevar sections = bili_state.sectionsvar urls = [];console.log(sections, "-----sections---")for (var i = 0; i < sections.length; i++) {var episodes = sections[i].episodesfor (var j = 0; j < episodes.length; j++) {var ep = episodes[j]console.log(i, ep)var item = {"url": "https://www.bilibili.com/video/"+ ep.bvid,"fileName":Trim(ep.title)}item.folder = Trim(title, 30)item.islist = false;urls.push(item)}}console.log(urls)Download(urls)}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 DownloadSelf(title, islist, youtube) {Download(DownloadSelfInfo(title, islist, youtube))}function DownloadSelfInfo(title, islist, youtube) {var item = {"url": window.location.href.replace(/&/g, '%26')}// item.folder = Trim(title); // 不能有空格,有时候下载失败是因为有空格if (!title) {title = Trim(document.title)}if (!islist) {islist = false}item.fileName = Trim(title)item.islist = islist;var host = getEffectiveHost()if (host == "youku" || host=="eduyun") {item.youtube = true}return [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{return DownloadSelfInfo()}}// 解析优#网站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 l = document.getElementsByClassName("anthology-content")if (l.length == 2) {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.fileName = Trim(item.saveFileName)item.folder = Trim(title, 30)item.islist = false;item.youtube = truereturn item;})}}}return DownloadSelfInfo(null, false, true)}// 解析腾讯视频网站function ParseQQUrl() {var arrUrl = window.location.pathname.split('/');console.log("arrUrl = ", arrUrl);if(!arrUrl[1]) return;if (arrUrl[1] == "x"){var player_title = document.getElementsByClassName("player_title")if (player_title.length==0) {}else{var xvar title = Trim(document.getElementsByClassName("player_title")[0].children[0].text); //player_titlevar items = document.getElementsByClassName("figure_list _hot_wrapper")var item_detail_half = document.getElementsByClassName("item_detail_half")var mod_episode = document.getElementsByClassName("mod_episode")if (items.length>0) {x = items[0].children;var list = objToArray(x)// console.log(list)if (list) {return list.map(function (pin) {// console.log(pin)var item = {"url": "https://v.qq.com" + pin.children[0].attributes["href"].nodeValue}item.fileName = Trim(pin.attributes["data-title"].nodeValue)item.folder = Trim(title,30)item.islist = false;return item;})}}if(item_detail_half.length>0){x = document.getElementsByClassName("item_detail_half")var list = objToArray(x)// console.log(list)if (list) {return list.map(function (pin) {console.log(pin)var item = {"url": "https://v.qq.com" + pin.children[0].attributes["href"].nodeValue}item.fileName = Trim(pin.children[0].attributes["title"].nodeValue)item.folder = Trim(title,30)item.islist = false;return item;})}}if (mod_episode.length>0) {x = mod_episode[0].children;var list = objToArray(x)// console.log(list)if (list) {return list.map(function (pin) {// console.log(pin)if (pin.children[0].attributes["href"]) {var item = {"url": "https://v.qq.com" + pin.children[0].attributes["href"].nodeValue}item.fileName = "第"+Trim(pin.innerText) +"集"item.folder = Trim(title,30)item.islist = false;return item;}})}}// innerText}}return DownloadSelfInfo()}// 解析#奇艺网站function ParseIqiyiUrl() {var title = Trim(document.querySelector('meta[name="irAlbumName"]').getAttribute('content'));var x = document.getElementsByClassName("select-title"); //专辑var list = objToArray(x)if (list.length > 0) {return list.map(function (pin) {var item = {"url": "https:" + pin.children[1].attributes["href"].nodeValue}item.saveFileName = Trim(pin.children[0].innerText+"_"+pin.children[1].text)item.fileName = Trim(item.saveFileName)item.folder = Trim(title,30)item.islist = false;return item;})}else{return DownloadSelfInfo()}}function GetEduyunCaseObj(caseCode) {// var obj2 = eval(xueduanJson);var caseobj = eval(caseJson);var caseobjlen = caseobj.clist.length;for(var a =0 ;a<caseobjlen;a++){var caseobjcode = caseobj.clist[a].caseCode;if(caseobjcode == caseCode){return caseobj.clist[a]}}}function GetEduyunM3u8(config) {console.log(config)var video_extend = config.video_extend;console.log(video_extend)var bestid = 0;var bestquality = 1;for (var i = 0; i < video_extend.files.length; i++) {var item = video_extend.files[i];if (item.height >= bestquality) {bestquality = item.height;bestid = i;}}return video_extend.urls[bestid].urls[0]}// 解析国家中小学网络云课堂网站function ParseEduyunUrl() {var urlParm = GetRequest();console.log(urlParm);var url = "https://s-file-2.ykt.cbern.com.cn/zxx/ndrv2/national_lesson/resources/details/" + urlParm.activityId +".json"// // 视频信息// var url = "https://s-file-1.ykt.cbern.com.cn/zxx/s_course/v1/x_class_hour_activity/" + urlParm.activityId +".json"// WebGet(url, function(res) {// 	console.log(res)// 	WebGet("https://s-file-1.ykt.cbern.com.cn/zxx/s_course/v1/x_class_hour_activity/" + urlParm.activityId +"/resources.json",// 		function(res2) {// 			console.log(res2)// 			for (var i = 0; i < res2.length; i++) {// 				var it = res2[i];// 				if (it.resource_type == "video") {// 					console.log("----", it)// 					var urls = []// 					var item = {"url":GetEduyunM3u8(it)}// 					item.saveFileName = Trim(res.name)// 					item.fileName = Trim(item.saveFileName)// 					item.folder = Trim(res.activity_set_name)// 					item.islist = false;// 					item.m3u8 = true// 					urls.push(item)// 					console.log(urls)// 					Download(urls)// 				}// 			}// 	})//WebGet 2// })//WebGet 1WebGet("https://r1-ndr-private.ykt.cbern.com.cn/edu_product/65/video/17b0594b547a11eb96b8fa20200c3759/158bfc80999d1a8a01c504fce1012e6b.1920.1080.false/158bfc80999d1a8a01c504fce1012e6b.1920.1080.m3u8",function(res){console.log("-----private----",res)}, {"x-nd-auth": 'MAC id="7F938B205F876FC3A30551F3A4931383757DAFBA42F543C27D4FAAD9900F58A908688DD0730726915939914BD846259C990406ECD76F1590",nonce="1689319206522:3JWAHCSX",mac="bRyywGyMJ7nn9HZE1piMfV6KL11l0X5wOJ+exMyXEDY="'})}// 解析微元素function ParseElement3ds() {var json = {};var title = document.titlevar n = title.lastIndexOf("-微元素");if (n >= 0) {title = title.substring(0,n);var n2 = title.lastIndexOf("-");if (n2 >= 0) {title = title.substring(0,n2);}}// title = "#title:" + title + "\n"var x = document.getElementsByClassName("zoom");console.log(title)var list = objToArray(x)console.log(list)if (list) {var res= list.map(function (pin) {var url = pin.attributes["zoomfile"].nodeValuevar n = url.lastIndexOf("?");if (n >= 0) {url = url.substring(0,n);}var item = {"url": url}item.saveFileName = Trim(GetFileName(url))item.fileName = Trim(item.saveFileName)item.folder = Trim(title,30)item.islist = false;item.image = truereturn item;})RealDownload(res) // 图片直接下载就是了, 不提供选择ShowDialog("获取到"+res.length+"张图片,已经发送到下载器")}else{ShowTips("找不到图片")}}function packageImages(list, index){// $('#status').text('处理中。。。。。');var imgsSrc = [];var imgBase64 = [];var imag###ffix = [];//图片后缀var zip = new JSZip();// zip.file("readme.txt", "案件详情资料\n");var img = zip.folder("images");for(var i=0;i<list.length;i++){var src = list[i];var suffix = src.substring(src.lastIndexOf("."));imag###ffix.push(suffix);getBase64(list[i]).then(function(base64){imgBase64.push(base64.substring(22));},function(err){console.log(err);//打印异常信息});}function tt(){setTimeout(function(){if(list.length == imgBase64.length){for(var i=0;i<list.length;i++){img.file(i+imag###ffix[i], imgBase64[i], {base64: true});}zip.generateAsync({type:"blob"}).then(function(content) {saveAs(content, "images"+index+".zip");});$('#status').text('处理完成。。。。。');}else{$('#status').text('已完成:'+imgBase64.length+'/'+list.length);tt();}},100);}tt();}function packageImages2(list, index){// $('#status').text('处理中。。。。。');var imgsSrc = [];var imgBase64 = [];var imag###ffix = [];//图片后缀var zip = new JSZip();// zip.file("readme.txt", "案件详情资料\n");var img = zip.folder("images");for(var i=0;i<list.length;i++){var src = list[i];var suffix = src.substring(src.lastIndexOf("."));imag###ffix.push(suffix);getBase64(list[i]).then(function(base64){imgBase64.push(base64.substring(22));},function(err){console.log(err);//打印异常信息});}function tt(){setTimeout(function(){if(list.length == imgBase64.length){for(var i=0;i<list.length;i++){img.file(i+".jpeg", imgBase64[i], {base64: true});}zip.generateAsync({type:"blob"}).then(function(content) {saveAs(content, "images"+index+".zip");});$('#status').text('处理完成。。。。。');}else{$('#status').text('已完成:'+imgBase64.length+'/'+list.length);tt();}},100);}tt();}//传入图片路径,返回base64function getBase64(img){function getBase64Image(img,width,height) {var canvas = document.createElement("canvas");canvas.width = width ? width : img.width;canvas.height = height ? height : img.height;var ctx = canvas.getContext("2d");ctx.drawImage(img, 0, 0, canvas.width, canvas.height);var dataURL = canvas.toDataURL();return dataURL;}var image = new Image();image.crossOrigin = 'Anonymous';image.src = img;var deferred=$.Deferred();if(img){image.onload =function (){deferred.resolve(getBase64Image(image));}return deferred.promise();}}// 解析微博相册function ParseWeiboPhoto() {console.log("--------------------")// // $GLOBAL_INFO.owner_uid //拥有者id// // $GLOBAL_DETAIL.page_album_id //相册id// // $GLOBAL_DETAIL.album_info.count.photos //图片数量// var count = $GLOBAL_DETAIL.album_info.count.photos// var page = Math.floor(count/30+1)// var owner_data = $GLOBAL_INFO.owner_data// var totalcount = 0// function download(i){// 	setTimeout(function() {// 		var t = new Date().getTime()// 		var url = "https://photo.weibo.com/photos/get_all?uid="+$GLOBAL_INFO.owner_uid+"&album_id="+$GLOBAL_DETAIL.page_album_id+"&count=30&page="+i+"&type=3&__rnd="+t// 		console.log(url)// 		WebGet(url, function(res) {// 			console.log(res)// 			if (res.code == 0) {// 				var list = res.data.photo_list// 				var arr= list.map(function (pin) {// 					// var node = pin.children[0].href// 					var url = "https://wx3.sinaimg.cn/large/" + pin.pic_name// 					var item = {"url": url}// 					item.saveFileName = pin.pic_name// 					item.fileName = Trim(item.saveFileName)// 					item.folder = Trim(owner_data.name+"-"+$GLOBAL_DETAIL.album_info.caption,30)// 					item.islist = false;// 					item.image = true// 					return item;// 				})// 				// console.log(arr)// 				totalcount = totalcount + arr.length// 				// console.log("----------------------------------------------", i, totalcount, arr.length)// 				// RealDownload(arr) // 图片直接下载就是了, 不提供选择// 				SendMsg(g_ws, arr)// 				if (i+1 == page) {// 					ShowDialog("获取到"+totalcount+"张图片,已经发送到下载器")// 				}// 			}//if (res.code == 0)// 		})//WebGet// 	}, 1000*i)//setTimeout// }// for (var i = 0; i < page; i++) {// 	//https://photo.weibo.com/photos/get_all?uid=5538396801&album_id=3814561462485240&count=30&page=2&type=3&__rnd=1621934381145// 	// https://photo.weibo.com/photos/get_all?uid=5538396801&album_id=3814561462485240&count=30&page=11&type=3&__rnd=1621998700612// 	download(i+1)// }var x = document.getElementsByClassName("woo-picture-square");var list = [];console.log(x)for (var i = 0; i < x.length; i++) {// console.log(i,x[i].attributes["class"].nodeValue)if (x[i].children[0].attributes["src"].nodeValue) {// console.log(i, x[i].children[0].attributes["src"].nodeValue)// https://wx1.sinaimg.cn/orj360/005E6opCgy1h7ivrosiucj33402c0kjm.jpg// https://wx3.sinaimg.cn/mw2000/005E6opCgy1gf963ss9i1j30qo0g275o.jpg// https://wx1.sinaimg.cn/webp720/005E6opCgy1h7ivrosiucj33402c0kjm.jpgvar url = x[i].children[0].attributes["src"].nodeValueurl = url.replace(/orj360/g,"mw2000");list.push(url)}}console.log("list",list)// zoomfileif (list) {GM_setClipboard("["+ list.map(function (url) {return "\""+url+"\"";}).join(",\n")+"]");var pnum = parseInt(list.length/50 + 1)for (var i = 0; i < pnum; i++) {var plist = []for (var j = 0; j < 50; j++) {var index = i*50+jif (index<list.length) {plist.push(list[index])}}packageImages(plist, i);}// return list.map(function (url) {// 	var arrUrl = url.split('/');// 	var item = {"url": url};// 	item.folder = "我的收藏"// 	item.islist = false;// 	item.fileName=arrUrl[arrUrl.length-1]// 	return item;// })}else{ShowTips("相册空空");}}// 微信function ParseWeixinPhoto() {console.log("--------ParseWeixinPhoto------------")var x = document.getElementsByClassName("rich_pages wxw-img js_insertlocalimg");var list = [];console.log(x)for (var i = 0; i < x.length; i++) {console.log(i,x[i].attributes["src"].nodeValue)var url = x[i].attributes["data-src"].nodeValuelist.push(url)}console.log("list",list)// zoomfileif (list) {var i= 0;var res=  list.map(function (pin) {i++;var item = {"url": pin}item.fileName = i+".jpeg"item.saveFileName = i+".jpeg"item.folder = Trim(document.title,30)item.islist = false;item.image = truereturn item;})RealDownload(res) // 图片直接下载就是了, 不提供选择}else{ShowTips("相册空空");}}// 解析花瓣function ParseHuabanPhoto() {var arrUrl = window.location.pathname.split('/');console.log("arrUrl = ", arrUrl);if(!arrUrl[1]) return;if (arrUrl[1] == "boards")return ParseHuabanBoards(arrUrl[2]);else if (arrUrl[1] == "user")return ParseHuabanUser(arrUrl[2]);}function cbGetBoardsFirst(res, board_id) {console.log(res, res.hasOwnProperty('board'));var limit = 100var board_data = res.board,title=board_data.title,//画板图片总数pin_number = board_data.pin_count,board_pins = res.pins,user_id = board_data.user.urlname,username = board_data.user.username,//尝试向上取整,计算加载完画板图片需要的最大次数retry = board_pins.length < pin_number ? Math.ceil(pin_number / limit) : 0console.log('Current board <' + board_id + '> pins number is ' + pin_number +', first pins number is ' +board_pins.length +', retry is ' + retry )var bf = setInterval(function () {if (retry > 0) {//说明没有加载完画板图片,需要ajax请求//get ajax pin datavar last_pin = board_pins[board_pins.length - 1].pin_idvar board_next_url = "https://api.huaban.com/boards/" + board_id + "/pins?max="+last_pin+"&limit="+limitWebGet(board_next_url, function (res) {console.log(res);var board_next_data = resboard_pins = board_pins.concat(board_next_data.pins)console.debug( 'ajax load board with pin_id ' + last_pin + ', get pins number is ' +board_next_data.pins.length + ', merged')if (board_next_data.pins.length ===0) {retry = 0return false}last_pin = board_next_data.pins[board_next_data.pins.length - 1].pin_id})retry--} else {console.log( '画板' + board_id + '共抓取' + board_pins.length + '个pin')var pins = board_pins.map(function (pin) {var suffix = !pin.file.type? 'png': pin.file.type.split('/')[1]return {url:window.location.protocol +'//hbimg.huabanimg.com/' +pin.file.key,pic_name: pin.pin_id + '.' + suffix}})clearInterval(bf)cbGetBoardsData(board_id, pins, title, username)}}, 200)}function cbGetBoardsData(board_id, pins, title, username) {console.log("获取到的数据",board_id, pins, title, username)var list = pinsvar arr= list.map(function (pin) {var item = {"url": pin.url}item.saveFileName = pin.pic_nameitem.fileName = item.saveFileNameitem.folder = username+"/"+titleitem.islist = false;item.image = truereturn item;})// console.log(arr)// console.log("----------------------------------------------", i, totalcount, arr.length)// RealDownload(arr) // 图片直接下载就是了, 不提供选择SendMsg(g_ws, arr)ShowDialog("获取画板["+title+"]图片"+arr.length+"张图片")}// 解析花瓣画板function ParseHuabanBoards(board_id) {console.group('花瓣网下载-当前画板:' + board_id)var limit = 100,url = "https://api.huaban.com/boards/" + board_id + "/pins?limit=" + limit// loadingLayer = layer.load(0, {// 	time: 5000// })//get first pin dataWebGet(url,function (res) {cbGetBoardsFirst(res, board_id)})console.groupEnd()}// 解析花瓣个人页面function ParseHuabanUser(user_id) {// https://api.huaban.com/xntnsowysb/boards?limit=30&order_by_updated=0// https://api.huaban.com/xntnsowysb/boards?max=70779717&limit=30&order_by_updated=0console.log("获取用户画板列表", user_id)var url = "https://api.huaban.com/"+ user_id +"/boards?limit=30&order_by_updated=0"WebGet(url, function(res){console.log(res)var user_data = res.user,board_number = user_data.board_count,board_ids = res.boards,limit=30,retry = board_ids.length < board_number? Math.ceil(board_number / limit): 0console.debug('Current user <' +user_id +'> boards number is ' +board_number +', first boards number is ' +board_ids.length +', retry is' +retry)var uf = setInterval(function () {if (retry > 0) {var last_board = board_ids[board_ids.length - 1].board_id//get ajax board datavar user_next_url = "https://api.huaban.com/"+user_id+"/boards?max="+last_board+"&limit="+limit+"&order_by_updated=0"WebGet(user_next_url, function (res) {console.log(res);var user_next_data = res.boardsboard_ids = board_ids.concat(user_next_data)console.debug('ajax load user with board_id ' +last_board +', get boards number is ' +user_next_data.length +', merged')if (user_next_data.length === 0) {retry = 0return false}last_board =user_next_data[user_next_data.length - 1].board_id})retry--} else {console.log('用户' +user_id +'共抓取' +board_ids.length +'个board')var boards = board_ids.map(function (board) {return board.board_id})clearInterval(uf)cbGetUserData(boards)}}, 200)})}function cbGetUserData(boards) {console.log("获取到的数据",boards)var length = boards.lengthvar index = 0var uf = setInterval(function () {ParseHuabanBoards(boards[index])++index;if (index>=length) {clearInterval(uf)}}, 200)}// ##大学慕课网function ParseMooc() {console.log("----------ParseMooc--------------")Function.prototype.constructor = function(){} // 使用调试var urlParm = GetRequest();console.log(urlParm);console.log(getcookie("NTESSTUDYSI"), urlParm.tid)// 1.获取列表var url = "https://www.icourse163.org/web/j/courseBean.getLastLearnedMocTermDto.rpc?csrfKey="+getcookie("NTESSTUDYSI");var list = [];WebPost(url, {"termId":urlParm.tid}, function(res){console.log("----------WebPost--------------")console.log(res)if (res.code == 0) {var courseName = res.r###lt.mocTermDto.courseNamevar chapters = res.r###lt.mocTermDto.chaptersconsole.log(res.r###lt.mocTermDto.chapters)for (var i = 0; i < chapters.length; i++) {var item = chapters[i]var chapter_name = item.namevar lessons = item.lessons // 数组if (!lessons) {continue;}for (var j = 0; j < lessons.length; j++) {var units = lessons[j].units //数组var name = lessons[j].namefor (var k = 0; k < units.length; k++) {var lesson = units[k]var file_name = lesson.name//var chapterId = lesson.chapterIdvar contentId = lesson.contentIdvar id = lesson.idvar contentType = lesson.contentType// 1视频 3pdf 6老师课堂交流区if (contentType==1) {list.push({"id":id, "contentId":contentId, "contentType":contentType,"bizType":contentType,"name":chapter_name+"_"+file_name, "folder":chapter_name})}// GetMoocResourceInfo(id, contentId, contentType, contentType)}}}}console.log("list = ", list)var urls=[]for (var i = 0; i < list.length; i++) {GetMoocResourceInfo(list[i])}console.log("list = ", list)})var title = Trim(document.title)var res= list.map(function (pin) {var item = {"url": pin.url}item.saveFileName = Trim(pin.name)item.fileName = item.saveFileNameitem.folder = Trim(title,30)item.islist = false;//item.video = true;if (isContains(pin.url, ".m3u8")) {item.m3u8 = true;}return item;})return res// https://www.icourse163.org/web/j/resourceRpcBean.getResourceToken.rpc?csrfKey=7c1bc0e4212b467e972e7be9f8b5d34f// post// bizId: 550645// bizType: 1// contentType: 1}function GetMoocResourceInfo(data) {var bizId       = data.idvar contentId   = data.contentIdvar bizType     = data.bizTypevar contentType = data.contentTypevar folder      = data.foldervar url = "https://www.icourse163.org/web/j/resourceRpcBean.getResourceToken.rpc?csrfKey="+getcookie("NTESSTUDYSI");if(contentType != 1) return;// 获取tokenWebPost(url, {"bizId":bizId,"bizType":bizType,"contentType":contentType }, function(res){console.log("----------GetMoocResourceInfo--------------")console.log(res)// var list = [];if (res.code == 0) {// 真正获取信息var signature = res.r###lt.videoSignDto.signature;var name = res.r###lt.videoSignDto.name;var url2 = "https://vod.study.163.com/eds/api/v1/vod/video?videoId="+contentId+"&signature="+signature+"&clientType=1"WebGet(url2, function(res2) {console.log("----------GetMoocResourceInfo2--------------", url2)console.log(res2)var videos = res2.r###lt.videosvar resource_url = videos[0].videoUrl;var size = 0;// 找到品种最佳的视频下载for (var i = 0; i < videos.length; i++) {var item = videos[i]if (item.size > size) {size = item.size;resource_url = item.videoUrl;}}console.log("resource_url = ", resource_url)data.url = resource_url})}// console.log("list = ", list)})}//获取可使用域名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 if (isContains(host, "iqiyi")) {host = "iqiyi";} else if (isContains(host, "weixin.qq.com")) {host = "weixin";} else if (isContains(host, "qq.com")) {host = "qq";} else if (isContains(host, "element3ds")) {host = "element3ds";} else if (isContains(host, "basic.smartedu.cn")) {host = "eduyun";} else if (isContains(host, "weibo.com")) {host = "photo_weibo";} else if (isContains(host, "huaban")) {host = "huaban";} else if (isContains(host, "icourse163")) {host = "icourse163";}else {host = "bilibili";}return host;}function ParseUrl() {// console.log("----------------------222222",$.fn.jquery)var host = getEffectiveHost()console.log("host = ",host)if (host == "bilibili") {return ParseBilibiliUrl()} else if (host == "youku") {return ParseYoukuUrl()} else if (host == "iqiyi") {return ParseIqiyiUrl()} else if (host == "qq") {return ParseQQUrl()} else if (host == "element3ds") {return ParseElement3ds()} else if (host == "eduyun") {return ParseEduyunUrl()} else if (host == "photo_weibo") {return ParseWeiboPhoto()} else if (host == "huaban") {return ParseHuabanPhoto()} else if (host == "weixin") {return ParseWeixinPhoto()} else if (host == "icourse163") {return ParseMooc()}else {return DownloadSelfInfo()}}var isInit = 0;function DoInit() {// isInit ++;// if (isInit != 2 ) {return}// console.log("----------------DoInit-------------")var btn = document.getElementsByClassName("btnDownload")if (btn.length > 0) {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,iVBORw0KGgoAAAANSUhEUgAAAEAAAAA+CAYAAACbQR1vAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABmJLR0QAAAAAAAD5Q7t/AAAACXBIWXMAAABkAAAAZAAPlsXdAAAAB3RJTUUH5AoYAw863c7vwQAAC59JREFUaN7tmnt0VNW9xz97nzmTmWSSkIxJJjAhAgFDkYAiwUoBRUp9YerCR7330tti77W3D9pSXVRd9fqo9+q63i5pq0VrS2tZVdpKKbW0ECi1Cy9UFiAI8ggSQgIJ5D2ZyUxm5ux9/ziTZYQk5DFJzKrftc4fs+Z3ztnf79n799obPsY/NkSSn+cGsgAz8VsBLUDbSBMdSgFcQAlwY+IqBJxdBKgD3gb+BOwBGkeadDIFmAM8ANwohMhKy/KSmTcOd3omALFImNZzZwk21ROPRSPAu8CPgN8A4ZEmPxgB3MDXgW9Jw+GbVDqfa5Z8jvEl15CZOxbT5QYEKh4l2NRA3YkjHPrLHziwZSPtrU0dwO+BR4ATo1GAdOAp4Cs5/kJj6YqHmbfkTrK82WgNKEVMaUIWtMU0MS1ASKxYlMr9uyhf8wzvvflnsJfDfdizYsRg9NPeBJ4AvnnlrFL56PM/46bby8jxuPBIjcfQeByQaQqyUwTZToFbQtRSxLTAWzCR4rmLiMeiVB/aN05rdTWwHdtRjgoBvgA8Xlxylfn4ml8wbeZVaKW6NRSAU0K6KchKEQgBoZjCTPVQVDqfSDBA1cE9fiAb2ArEPuoCTAKevywv3/fI6heZPrsUy1J9utEQMMYpMKWgLaYQppPCktmcPXKAhtPvTwUOAYc/6gJ8Byj7569+i7Jly1Gqb+S7It0hcEhBS1ThTE0na2wB75ZvMmIdkVxgA3bY9AFFQDGQh73sYgzRDJF9tPMBt4yfNJnb7v38gF+mgVyXwOcSKCtOYclsiubMByhNCPxL4E1gG3besDXxexNwP+Dx+i/npfejSRPA0Ue7GUDRtQsX458waUBfvxMSyHdLWqIWYcPNJ+++j+O7drgjwcBDKakevAWXM8bnJyMnn/ZAs6ultiajsbpyfCTUdt2UOQvOHdlZvvFrV44ZdgFukIbhmnntXKQhsOJ6wC/UgNuAPLekMmhxxdxFLPvfV2isPom/eDpjp1yJMy0daTpR8TjRcDsNp0/QWH3KVfypRc/uf2N96WuPfrUZWAs0DIcABjDB5XLj84+3GSQBWU7BOQcIh8lNS8pIMyFFgNaaqKUIWxCImbQ5M0mdPpvCklJATwo0nn8o8Ygi4NtAcKgFcAJ5qR4PmdleO9kZJDpnwdQMA0OAKdWHMzKH/cvSgpao5mxY0RrTCCG49q4vcnLv/3F0Z/mXgArg2cGMpS9OUAOWUgrLig+efRe4DTDlBy+58JICvCmCKzIkPpcArcnKL6Bs1dNcNn6iBL6MHZ6HVIAO4Ex7sI2WhgZEX+NGH5Xti41TwgSPxOcWKMvC/4mZfPLu+0iQH3hY6qMAGni/IxKh5tTJ5LHvp1BSwPg0SaYp0Foz86aleAsmAHwG8Az02X11glVa61jFoYOmHngEHDRMAf5UwdGAwuu/nMKS2TRWVxYB/wqMxU6r48BB7GLrGJcou3sTQADXASuABYDp8xckv4fUD2ggwxSkm4JWaTLxmk+xb/NvvGi9WkhpOEwnSimsWFQDTdiNmOewCy6rJ5LdwYVd7z/ocDhyps++lk/fcTc33/VPZGRlo5MRCgYIAVS3a6pCmnCwlb2bXqX1fC2+oqlk5ubT0R7ifOVxKnbt4PjuHcQi4VZgDXYJ39bd8y6EA7vkfWD###vM5StXsfDWMsZkZ6OUHlHynQNujWmOBRRSCFymXc4oBOG4xkoMLxIKcGznNra88F9UH9qngeeBVUB71+d1VwwtA56cPG2669EX1nLDLbeRkuJCqZEl3hVOQzDGKchzSXwpkOOEy0xNpqlxCkXUUmjDSf6UaUwuXcD5ymOi4fTJWdhJ01u9CeADXsjOyfU/8tyLlM6bjxUfQa/XAwSQIgWmBCHsSwpwJYTJckriWtMeVXi8ufinzuD4ru0y1NJUjF1g1fckwL3A8jvv+w9x5/L7k/bVhRBIKRFC9Hoh7GRnsDCl3X+Ia2iLKjJy84lHoxzdWZ6B7Qe2ddp2jQJOYEmaJ11ef2sZUgosa/CDEUIQagsQaGnu3VCD4XCQnZOLwzQH5Ws0dhOmME0SsRStccWVC2/lr2tX01JXsxAYQ6IN11WAbGBynr+AgolFSfn6Ukoqjx/hf1Z9kxNHDvec+gkBGkynyZJ7l7H82w/jMM1+vas7dOYNwYAme9zlFM4opaWuJg/I6E6AFCDVP2ESGWOykubt//jaOnb/ZSs3zptGXm4mFydSFtoKgVa8/U4Nr774QxbccjtTr5qF6mPLrSdoIMMhyHBomrSTdG/ORTYXJULKspJGXgMtjQ2MyXDx7BPLmDl9wsWkdBQVrsQgzqqnt/P9n+0lGAggkpRwSWE3ZptidDsDu9YC7UCguvJ9WpubEMmqehIO0OEwQArkRZdESoEwBA5DIhBJI98JlwHxjjDNddW9CtAMHDl3ppqTRw8j+9sw7w29TSitP6h/hwimw6C+8jhVB/YAnKHLPkRXAeLAhkh7e2zr6+uJRqJ2aBrtEBC1NAe2biTYVA+wGQh0JwDAFmD3ltdfY+uG9UiZiM2jGNKQHPjbNt5a/zLAUWDdh/6/wL4ZeDLcHqr7wWMPsWXDr1HxONKQo2s2JPwOwK7t5ax5ZAWB87Uh4GngVFfT7srhcmBlfe2Z1U9+/d9y3v7rdpZ+8X7GF03GnZqGkD07RwEopbpkdwxIOCGkfa/svyPWWtMRbqeu5jRv/OoVNr7yMs2NDe3AY1zw9XsSAOBVoCHUFnhsw89fum7HG7+jsOgKCiZOIsXl7vYGpRTFM67ijs9/iYojh/n9L39KPBZj31t/Qxp9JCIgHoux7vnvs/V369EDSMbisRhnqio5VXGM+tozAO8B3wN+Szc9gd4aIuXYW9d3NDfUf7a5ob7knd07M+i5hyCzc/IOL/rsXS+/umb1jE3r1v4L9hIzcy7L6Ov+A6B4c/OmDuxtsoEihL3eN2JvuVX2ZHipgdUBPwZ+AYwHcnsRQDTVnzujta7YtG6tB3ubywBWoinrx+A7sOv2vfR/97oTTUAVXbz9QAXoRHtC0aOXMrxxYg58uO6+p5+DVwnyOwdIvl9IYpO7RwwkfCQzDRtxAT7SGA4BBpLkWgO4Z0Doh3fuE0xgOna93Znhj7u0DLZpogiVwKzEH51LoRI4PRoEuA34CZDWhbLpdjtJS0vpvt0lDISZBVKRl5cLdl/iGT4IgxLYDdxJErbDh1oAL+D1pLkou/kaMtNTkVJw/dxPUDDWC6oHAZx5IAT3LP0M4WgKVVWnUgwRZ//hOnbtqwF7FqUkm/xQCLAJuCvSEVs8Y1ohD664HRB2HLhUd0dr8n3ZPPSNxdBRQ21tE/d8bQNAFPgBdhmbdCQ73ISAd5TSN+w9UJkzeaKPqcX+S5MHWygVho4zBINBHnhqG5vKj4O9ofHfDJFjHIp4ex44HY5EF+0/WJk2d/YU8sd6L93u1nF0tBYrFmT12j0899O/o7TeDKxkCE+bD1XCcRzQTc3BhUcrzsqbF87Ak+7uJRJodPQ8QrXy+p+O8sD3yol0xI8B/84F5etoEQBgP+CrqmmY1dQcZPH1JZhm9y5Hx5oRqpG/76/hyw9v5lxDqBn79Mdb/XnhR02AOHZOf/XhYzUTcrzpzLm66AITgbZCiFgdtedaWPGfW9j7bm0Mu3Z/ZajJD7UAYK/dg0qpRW/vO5FdMq2QoqKxH/gDFYXoWToi7Tz8zA5+/cZ7YB9/ezwh4KgXAOySujociS4+cKjKPX9OMbm+bFC200OF+NHP9/DsS7uxLLUN+0BGy3CQHy4BwD6qIs83BOafOl1vLJo3DU9KEGE184dtFTz41DbaQh3HsNd9xXCRH26kYvfk9Fe+ME/HTn5Xv7v1fj1lQrbG/uJLR3qAwwE/sDPV5dBPrFygb7mhSGMnON9hRE8fDS+uA6oMKTqrxXUM4pjbaMXdwEngz9iz4h8OBlCAfSbhY3yMEcT/A6q1RBVTwonOAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDIwLTA5LTMwVDAxOjIwOjQ2KzAwOjAw4yX7LwAAACV0RVh0ZGF0ZTptb2RpZnkAMjAyMC0wOS0zMFQwMToyMDo0NiswMDowMJJ4Q5MAAAAgdEVYdHNvZnR3YXJlAGh0dHBzOi8vaW1hZ2VtYWdpY2sub3JnvM8dnQAAABh0RVh0VGh1bWI6OkRvY3VtZW50OjpQYWdlcwAxp/+7LwAAABh0RVh0VGh1bWI6OkltYWdlOjpIZWlnaHQANTY2x6EBXwAAABd0RVh0VGh1bWI6OkltYWdlOjpXaWR0aAA1ODe91EwaAAAAGXRFWHRUaHVtYjo6TWltZXR5cGUAaW1hZ2UvcG5nP7JWTgAAABd0RVh0VGh1bWI6Ok1UaW1lADE2MDE0Mjg4NDYDgXzHAAAAEnRFWHRUaHVtYjo6U2l6ZQA0MDU0NELIVd5gAAAAWnRFWHRUaHVtYjo6VVJJAGZpbGU6Ly8vZGF0YS93d3dyb290L3d3dy5lYXN5aWNvbi5uZXQvY2RuLWltZy5lYXN5aWNvbi5jbi9maWxlcy8xMjkvMTI5MTI2Mi5wbmc00KRyAAAAAElFTkSuQmCC"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)}};}/*主入口,分出不同模块:用户、画板,监听并刷新URL*/window.onload =function() {DoInit()}// GM_setValue("mytset","mytset---------------------------")// console.log(GM_getValue("mytset"))})();