您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Greasy Fork is available in English.
我本人在哔哩哔哩看视频的专用工具,内置多个功能,可以设置倍速,音量,全屏等,详情见图片.本脚本永久开源,永久免费。本脚本不得被用于任何的非法用途,仅能被合法的学习和使用。如果您安装了本脚本,产生的一切后果均由您承担,本人概不负责。本脚本的后续更新与否只取决于本人的心情。警告:如果使用了此脚本后,切换清晰度就用这个,而不要用原始的,否则可能有未知问题;如果使用脚本途中切换网络,也会造成脚本失效,需要f5刷新网页.
当前为
// ==UserScript== // @name myBilibiliVideoTools.USER.JS-ones5-onuglifyjs2 // @简称 mbvt // @namespace http://tampermonkey.net/ // @match https://www.bilibili.com/video/* // @icon http://bilibili.com/favicon.ico // @noframes // @run-at document-start // @grant GM_setValue // @grant GM_getValue // @grant GM_addStyle // @compatible firefox // @description 我本人在哔哩哔哩看视频的专用工具,内置多个功能,可以设置倍速,音量,全屏等,详情见图片.本脚本永久开源,永久免费。本脚本不得被用于任何的非法用途,仅能被合法的学习和使用。如果您安装了本脚本,产生的一切后果均由您承担,本人概不负责。本脚本的后续更新与否只取决于本人的心情。警告:如果使用了此脚本后,切换清晰度就用这个,而不要用原始的,否则可能有未知问题;如果使用脚本途中切换网络,也会造成脚本失效,需要f5刷新网页. // @license MIT // @version 0.0.1.20220507124135 // ==/UserScript== -function() { var e = document.createElement("script"); e.src = "http://greasyfork.icu/scripts/435697-myutils/code/myUtils.js?version=1044590", document.head.append(e), e.onload = function() { function e() { return !(!document.fullscreen && !document.mozFullScreen); } function n() { var e = setInterval(function() { var n = document.querySelector("span.like"); n && (n.className.indexOf("on") < 0 ? (n.click(), clearInterval(e)) : clearInterval(e)); }, 3e3); } function t(e) { return Function("return " + e)(); } function i(e) { e.requestFullscreen(); } var o = unsafeWindow, l = GM_setValue, a = GM_getValue, c = GM_addStyle; c("div.bilibili-player-video-btn-widescreen{\n display:none !important;\n }#mbvt_div0{\n position: fixed;\n top: 30% !important;\n right: 0 !important;\n z-index: 9999999;\n background: black;\n color: white;\n }.mbvt_items{\n width: 60px;\n color:initial;\n }.mbvt_items2 {\n width: 60px;\n background: black;\n color: white;\n }.bilibili-player-video-info{\n position: fixed;z-index:9999999;\n top:50% !important;\n left: 0 !important;\n width: 120px!important;\n text-align: left!important;\n display:table!important;\n }.r-con{\n width: 420px !important;\n margin: 0 !important;\n padding: 0 !important;\n }.bilibili-player-video-btn-menu-wrap {\n width: 1000px !important;\n }"), o.count = 1, function d() { var c = document.querySelector(".bilibili-player-video-info"); if (c) { for (var r = function U(e) { var n = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : !1; o.vedio = e, e.addEventListener("ended", function() { R.click(); }), e.addEventListener("loadeddata", function() { s(!0, !0, !0); }), e.addEventListener("myqualitychange", function() { var e = o.vedio, n = setInterval(function() { var t = document.querySelector("video"); if (t) { var i = e.src, o = t.src; o != i && "" != o && (clearInterval(n), e.dispatchEvent(new CustomEvent("myqualitychanged"), { detail: { newV: t } }), U(t, !0)); } }, 1e3); }), e.addEventListener("myqualitychanged", function(e) { o.vedio = e.detail.newV; }), n && s(!1, !1, !1); }, u = function(e) { switch (e) { case 1: document.querySelector("#bilibiliPlayer").getAttribute("class").indexOf("webfullscreen") > 0 ? (document.querySelector("div.bilibili-player-video-web-fullscreen").click(), setTimeout(document.querySelector("button.bilibili-player-iconfont-web-fullscreen-on").click(), 500)) : document.querySelector("button.bilibili-player-iconfont-web-fullscreen-on").click(); break; case 2: C.click(); } }, m = function() { var e = +a("qualifyFlag", 64), n = document.createDocumentFragment(), t = document.querySelector(".bui-select-list"), i = t.children; i.forEach(function(t) { var i = my.domAppendSon("option", n, t.children[0].innerHTML, "value", t.dataset.value); i.value == e && (i.selected = 1); }), M.innerHTML = "", M.append(n); }, s = function() { var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : !0, t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : !0, i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : !0, o = +a("myScreenFlag", 1); if (x.click(), u(o), e && n(), t && m(), i) { var l = document.querySelector("ul.bilibili-player-video-btn-menu").children.length; l ? h.style.display = "block" : h.style.display = "none"; } }, p = my.domAppendBro("div", document.body, "按N隐藏", "id", "mbvt_div0"), v = my.domAppendSon("div", p), b = my.domAppendSon("div", p), y = my.domAppendSon("div", p), f = my.domAppendSon("div", p), g = my.domAppendSon("div", p), S = my.domAppendSon("div", p), k = my.domAppendSon("div", p), h = my.domAppendSon("div", p), A = my.domAppendSon("div", p), E = (my.domAppendSon("div", p), my.domAppendSon("button", v, "myInit", "class", "mbvt_items")), q = my.domAppendSon("button", k, "rate1X", "class", "mbvt_items"), w = my.domAppendSon("button", y, "setRate", "class", "mbvt_items"), _ = my.domAppendSon("input", y, "setRate:", "class", "mbvt_items", "placeholder", "0-4", "value", a("myPlaybackRateFlag", 2)), x = my.domAppendSon("button", f, "setVolume:", "class", "mbvt_items"), L = my.domAppendSon("input", f, "", "class", "mbvt_items", "placeholder", "0-100", "value", a("volumeFlag", 100)), F = my.domAppendSon("button", null, "preEpisode", "class", "mbvt_items"), R = my.domAppendSon("button", null, "nextEpisode", "class", "mbvt_items"), I = my.domAppendSon("button", A, "exit全屏", "class", "mbvt_items"), T = my.domAppendSon("button", S, "web全屏", "class", "mbvt_items2"), C = my.domAppendSon("button", S, "fullscreen", "class", "mbvt_items"), O = my.domAppendSon("button", g, "danmuku", "class", "mbvt_items"), P = my.domAppendSon("button", A, "get快照", "class", "mbvt_items"), M = my.domAppendSon("select", v, "", "class", "mbvt_items"), V = my.domAppendSon("select", g, "", "class", "mbvt_items"), j = my.domAppendSon("button", k, "getCover", "class", "mbvt_items"), z = [], G = 0; 2 > G; ) { var H = my.domAppendSon("input", null, "", "type", "radio", "class", "myRadiosOnRate", "name", "myRadiosOnRate", "value", G += .5); H.addEventListener("change", function(e) { var n = e.target, t = n.value; o.vedio.playbackRate = t, n.parentElement.nextElementSibling.lastElementChild.value = t, l("myPlaybackRateFlag", t), e.target.blur(); }), z.push(H); } document.onkeydown = function(e) { e.altKey || 78 != e.keyCode || ("none" == p.style.display ? p.style.display = "block" : p.style.display = "none"); }, document.querySelector("ul.bilibili-player-video-btn-menu").children.length && h.append(F, R); var N = document.querySelector("video"), X = +a("myScreenFlag", 1); m(); var B = { "default": 0, "小屏": 0, "web全屏": 1, "全屏": 2 }; B.length; for (var D in B) { var K = document.createElement("option"); K.innerText = D, K.value = B[D], K.value == X && (K.selected = 1), V.appendChild(K); } return z.forEach(function(e) { b.append(e), e.insertAdjacentText("afterend", e.value + "X"); }), E.addEventListener("click", s), q.addEventListener("click", function() { o.vedio.playbackRate = 1; }), w.addEventListener("click", function() { var e = _.value; o.vedio.playbackRate = e, l("myPlaybackRateFlag", e); }), x.addEventListener("click", function() { var e = L.value; document.querySelector("video").playbackRate = e / 100, o.vedio.volume = e / 100, w.click(), l("volumeFlag", e); }), F.addEventListener("click", function() { document.querySelector(".bilibili-player-active").previousSibling.click(); }), R.addEventListener("click", function() { document.querySelector(".bilibili-player-active").nextSibling.click(); }), T.addEventListener("mouseover", function() { document.querySelector("#bilibiliPlayer").getAttribute("class").indexOf("mode-webfullscreen") < 0 ? document.querySelector("button.bilibili-player-iconfont-web-fullscreen-off").click() : e() && setTimeout(function() { document.querySelector("button.bilibili-player-iconfont-web-fullscreen-on").click(); }, 500), I.removeAttribute("disabled"), o.player.play(); }), C.addEventListener("click", function() { i(o.vedio), o.vedio.focus(); }), I.addEventListener("click", function() { document.querySelector("#bilibiliPlayer").getAttribute("class").indexOf("webfullscreen") > 0 ? document.querySelector("div.bilibili-player-video-web-fullscreen").click() : e() && document.exitFullscreen(), o.vedio.focus(); }), O.addEventListener("click", function() { document.querySelector('input.bui-switch-input[aria-label="弹幕"]').click(); }), P.addEventListener("click", function() { open("https://i0.hdslb.com/bfs/videoshot/" + o.cid + ".jpg", "_blank"); }), M.addEventListener("change", function() { var e = M.options[M.selectedIndex], n = e.value; e.selected = 1, t("document.querySelector('.bui-select-item[data-value=\"" + n + "\"]').click()"), l("qualifyFlag", n), o.vedio.dispatchEvent(new CustomEvent("myqualitychange", { detail: {}, bubbles: !0, cancelable: !0 })); }), V.addEventListener("change", function() { var e = V.options[V.selectedIndex], n = e.value; e.selected = 1, l("myScreenFlag", n), u(n); }), j.addEventListener("click", function() { o.open(o.vd.pic, "_blank"); }), n() & r(N, !0), console.log("load completed, totally tried:" + o.count); } return console.log("not loaded, retry after 1000ms..."), o.count++, setTimeout(d, 1e3); }(); }; }();