您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
我本人在哔哩哔哩看视频的专用工具,内置多个功能,可以设置倍速,音量,全屏等,详情见图片.本脚本永久开源,永久免费。本脚本不得被用于任何的非法用途,仅能被合法的学习和使用。如果您安装了本脚本,产生的一切后果均由您承担,本人概不负责。本脚本的后续更新与否只取决于本人的心情。
当前为
// ==UserScript== // @name myBilibiliVideoTools.USER.JS // @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 我本人在哔哩哔哩看视频的专用工具,内置多个功能,可以设置倍速,音量,全屏等,详情见图片.本脚本永久开源,永久免费。本脚本不得被用于任何的非法用途,仅能被合法的学习和使用。如果您安装了本脚本,产生的一切后果均由您承担,本人概不负责。本脚本的后续更新与否只取决于本人的心情。 // @license MIT // @version 0.0.1.20220416055812 // ==/UserScript== "use strict" function _typeof(e) { "@babel/helpers - typeof" return (_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) { return typeof e } : function(e) { return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e })(e) }~ function() { function e(t) { var n = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : !1 unsafeWindow.vedio = t, t.addEventListener("ended", function() { _.click() }), t.addEventListener("loadeddata", function() { c(!0, !0, !0) }), t.addEventListener("myqualitychange", function() { var t = unsafeWindow.vedio, n = setInterval(function() { var i, l, a = document.querySelector("video") a && (i = t.src, l = a.src, l != i && "" != l && (clearInterval(n), t.dispatchEvent(new CustomEvent("myqualitychanged"), { detail: { newV: a } }), e(a, !0))) }, 1e3) }), t.addEventListener("myqualitychanged", function(e) { unsafeWindow.vedio = e.detail.newV }), n && c(!1, !1, !1) } function t() { return !(!document.fullscreen && !document.mozFullScreen) } function n() { var e = setInterval(function() { var t = document.querySelector("span.like") t && (t.className.indexOf("on") < 0 ? (clearInterval(e), t.click()) : clearInterval(e)) }, 3e3) } function i(e) { return Function("return " + e)() } function l(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: L.click() } } function a() { var e = +GM_getValue("qualifyFlag", 64), t = document.createDocumentFragment(), n = document.querySelector(".bui-select-list"), i = n.children i.forEach(function(n) { var i = document.createElement("option") i.innerText = n.children[0].innerHTML, i.value = n.dataset.value, i.value == e && (i.selected = 1), t.append(i) }), H.innerHTML = "", H.append(t) } function c() { var e, t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : !0, i = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : !0, c = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : !0, o = +GM_getValue("myScreenFlag", 1) E.click(), l(o), 1 == t && n(), i && a(), c && (e = document.querySelector("ul.bilibili-player-video-btn-menu").children.length, e ? k.style.display = "block" : k.style.display = "none") } function o(e) { e.requestFullscreen() } var u, r, d, m, s, v, b, p, f, y, g, E, w, k, h, _, S, L, M, q, x, T, N, W, G, V, F, H, R, I for (unsafeWindow.GM_addStyle = GM_addStyle, unsafeWindow.GM_setValue = GM_setValue, unsafeWindow.GM_getValue = GM_getValue, GM_addStyle("\ndiv.bilibili-player-video-btn-widescreen{\ndisplay:none !important;\n}.myRadiosOnRate{\n scale:1.5\n}.mbvt_div{\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}"), u = document.createElement("div"), u.id = "myDiv0", u.className = "mbvt_div", u.innerText = "按N隐藏", r = document.createElement("div"), r.innerText = "my develop zone", r.className = "mbvt_div", d = document.createElement("div"), m = document.createElement("button"), m.className = "mbvt_items", m.innerHTML = "myInit", m.addEventListener("click", c), s = document.createElement("button"), s.className = "mbvt_items", s.innerHTML = "rate1X", s.addEventListener("click", function() { unsafeWindow.vedio.playbackRate = 1 }), v = document.createElement("div"), v.id = "mySubDiv1", b = document.createElement("button"), b.className = "mbvt_items", b.innerHTML = "setRate:", b.addEventListener("click", function() { var e = p.value unsafeWindow.vedio.playbackRate = e, GM_setValue("myPlaybackRateFlag", e) }), p = document.createElement("input"), p.className = "mbvt_items", p.placeholder = "0-4", p.value = GM_getValue("myPlaybackRateFlag", 2), f = document.createElement("div"), y = document.createElement("div"), g = document.createElement("div"), E = document.createElement("button"), E.className = "mbvt_items", E.addEventListener("click", function() { var e = w.value document.querySelector("video").playbackRate = e / 100, unsafeWindow.vedio.volume = e / 100, b.click(), GM_setValue("volumeFlag", e) }), E.innerHTML = "setVolume:", w = document.createElement("input"), w.className = "mbvt_items", w.placeholder = "0-100", w.value = GM_getValue("volumeFlag", 100), k = document.createElement("div"), h = document.createElement("button"), h.innerHTML = "preEpisode", h.className = "mbvt_items", h.onclick = function() { document.querySelector(".bilibili-player-active").previousSibling.click() }, _ = document.createElement("button"), _.innerHTML = "nextEpisode", _.className = "mbvt_items", _.onclick = function() { document.querySelector(".bilibili-player-active").nextSibling.click() }, S = document.createElement("button"), S.innerHTML = "web全屏", S.setAttribute("class", "mbvt_items2"), S.addEventListener("mouseover", function() { document.querySelector("#bilibiliPlayer").getAttribute("class").indexOf("mode-webfullscreen") < 0 ? document.querySelector("button.bilibili-player-iconfont-web-fullscreen-off").click() : t() && setTimeout(function() { document.querySelector("button.bilibili-player-iconfont-web-fullscreen-on").click() }, 500), M.removeAttribute("disabled"), unsafeWindow.player.play() }), L = document.createElement("button"), L.innerHTML = "fullscreen", L.className = "mbvt_items", L.addEventListener("click", function() { o(unsafeWindow.vedio), unsafeWindow.vedio.focus() }), M = document.createElement("button"), M.innerHTML = " exit全屏 ", M.className = "mbvt_items", M.addEventListener("click", function() { document.querySelector("#bilibiliPlayer").getAttribute("class").indexOf("webfullscreen") > 0 ? document.querySelector("div.bilibili-player-video-web-fullscreen").click() : t() && document.exitFullscreen(), unsafeWindow.vedio.focus() }), q = document.createElement("div"), x = document.createElement("div"), T = document.createElement("div"), N = document.createElement("button"), N.innerHTML = "myDanmuku", N.className = "mbvt_items", N.addEventListener("click", function() { document.querySelector('input.bui-switch-input[aria-label="弹幕"]').click() }), W = [], G = 0; 2 > G;) V = document.createElement("input"), V.type = "radio", V.className = V.name = "myRadiosOnRate", V.value = G += .5, V.addEventListener("change", function(e) { var t = e.target, n = t.value unsafeWindow.vedio.playbackRate = n, t.parentElement.nextElementSibling.lastElementChild.value = n, GM_setValue("myPlaybackRateFlag", n), e.target.blur() }), W.push(V) F = document.createElement("button"), F.innerHTML = "get快照", F.className = "mbvt_items", F.addEventListener("click", function() { open("https://i0.hdslb.com/bfs/videoshot/" + unsafeWindow.cid + ".jpg", "_blank") }), document.onkeydown = function(e) { 78 == e.keyCode && ("none" == u.style.display ? u.style.display = "block" : u.style.display = "none") }, H = document.createElement("select"), H.className = "mbvt_items", H.addEventListener("change", function() { var e, t = H.options[H.selectedIndex] t.selected = 1, e = t.value, i("document.querySelector('.bui-select-item[data-value=\"" + e + "\"]').click()"), GM_setValue("qualifyFlag", e), unsafeWindow.vedio.dispatchEvent(new CustomEvent("myqualitychange"), { detail: { key: "v" }, bubbles: !0, cancelable: !0 }) }), R = document.createElement("select"), R.className = "mbvt_items", R.addEventListener("change", function() { var e, t = R.options[R.selectedIndex] t.selected = 1, e = t.value, GM_setValue("myScreenFlag", e), l(e) }), d.append(H, m), v.append(b, p), g.append(E, w), f.append(R, N), q.append(L, S), x.append(M, F), unsafeWindow.count = 1, function A() { var t, n, i, l, c, o, r = document.querySelector(".bilibili-player-video-info") if (!r) return unsafeWindow.count++, setTimeout(A, 1e3) t = document.querySelector("video"), n = +GM_getValue("myScreenFlag", 1), a(), i = { "default": 0, "小屏": 0, "web全屏": 1, "全屏": 2 }, l = i.length for (c in i) o = document.createElement("option"), o.innerText = c, o.value = i[c], o.value == n && (o.selected = 1), R.appendChild(o) W.forEach(function(e) { T.append(e), e.insertAdjacentText("afterend", e.value + "X") }), document.querySelector("ul.bilibili-player-video-btn-menu").children.length && k.append(h, _), u.append(d, T, v, g, f, y, q, x, k), document.body.append(u), e(t, !0), unsafeWindow.count = 0 }(), I = function(e, t) { var n return ["webkit", "moz", "ms", "o", ""].forEach(function(i) { if (!n) { "" === i && (t = t.slice(0, 1).toLowerCase() + t.slice(1)) var l = _typeof(e[i + t]) l + "" != "undefined" && (n = "function" === l ? e[i + t]() : e[i + t]) } }), n } }()
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址