Greasy Fork is available in English.
B站快捷键扩展,笔记功能全面增强,适合学习类视频.包括自动宽屏 低亮度模式 黑暗模式h 2倍速c 减速x 1倍速z 后退3秒(笔记)alt+j 暂停/播放(笔记)alt+k 前进3秒(笔记)alt+l 插入视频截图(笔记)alt+, 插入时间标记(笔记)alt+.
当前为
// ==UserScript==
// @name BiliAuto
// @version 1.1.1
// @author mishi321
// @description B站快捷键扩展,笔记功能全面增强,适合学习类视频.包括自动宽屏 低亮度模式 黑暗模式h 2倍速c 减速x 1倍速z 后退3秒(笔记)alt+j 暂停/播放(笔记)alt+k 前进3秒(笔记)alt+l 插入视频截图(笔记)alt+, 插入时间标记(笔记)alt+.
// @match https://www.bilibili.com/video/*
// @grant GM_getValue
// @grant GM_setValue
// @grant GM_registerMenuCommand
// @grant GM_unregisterMenuCommand
// @namespace http://greasyfork.icu/scripts/428878
// ==/UserScript==
(function () {
if (window.location.href.includes('note=open')) {
window.location.href = window.location.href.replace('note=open', 'note=');
return;
}
let speedIndex = 3;
let lightOn = false, two2one = true;
let filterOn = GM_getValue('filterOn'), widescreenOn = GM_getValue('widescreenOn');
GM_registerMenuCommand("自动宽屏:" + widescreenOn, () => {
GM_setValue('widescreenOn', !widescreenOn);
window.location.reload();
});
let id1 = GM_registerMenuCommand("低亮度模式:" + filterOn, filter);
let hevcOn = window.localStorage.getItem("bilibili_player_codec_prefer_type");
GM_registerMenuCommand("HEVC:" + (hevcOn - 2 ? "true" : "false"), () => {
window.localStorage.setItem("bilibili_player_codec_prefer_type", String(-hevcOn + 3));
window.location.reload();
});
if (hevcOn == "3") {
window.localStorage.setItem("bilibili_player_codec_prefer_type", "2");
}
const ob = new MutationObserver(() => {
if (filterOn === true && (two2one = !two2one)) {
document.getElementsByClassName('bilibili-player-video')[0].style.cssText = "filter:brightness(0.6834);";
}
})
let video;
if (document.getElementsByTagName('bwp-video')[0] || document.getElementsByTagName('video')[0]) {
video = document.getElementsByTagName('bwp-video')[0] || document.getElementsByTagName('video')[0];
console.log(video);
filterOn && (document.getElementsByClassName('bilibili-player-video')[0].style.cssText = "filter:brightness(0.6834);") && ob.observe(video, { attributes: true });
widescreenOn && video.addEventListener('play', () => document.getElementsByClassName('bilibili-player-video-btn-widescreen')[0]?.click(), { once: true });
document.getElementsByClassName('list-box')[0] && video.addEventListener('ended', () => document.getElementsByClassName('bilibili-player-video-btn-next')[0].click());
} else {
const init = new MutationObserver(() => {
video = document.getElementsByTagName('bwp-video')[0] || document.getElementsByTagName('video')[0];
filterOn && (document.getElementsByClassName('bilibili-player-video')[0].style.cssText = "filter:brightness(0.6834);") && ob.observe(video, { attributes: true });
widescreenOn && video.addEventListener('play', () => document.getElementsByClassName('bilibili-player-video-btn-widescreen')[0]?.click(), { once: true });
document.getElementsByClassName('list-box')[0] && video.addEventListener('ended', () => document.getElementsByClassName('bilibili-player-video-btn-next')[0].click());
init.disconnect();
});
init.observe(document.getElementsByClassName('bilibili-player-video')[0], {childList : true});
}
document.body.addEventListener('keydown', (e) => {
if (e.altKey) {
switch (e.key) {
case 'j':
video.currentTime -= 3;
break;
case 'l':
video.currentTime += 3;
break;
case 'k':
if (video.paused) {
video.play();
} else {
video.pause();
}
break;
case ',':
document.getElementsByClassName('ql-capture-btn ql-bar')[0]?.click();
break;
case '.':
document.getElementsByClassName('ql-tag-btn ql-bar-btn')[0]?.click();
break;
default:
break;
}
}
if (e.target.nodeName !== 'BODY') return;
if (e.ctrlKey === false) {
switch (e.key) {
case 'c':
document.getElementsByClassName('bilibili-player-video-btn-speed-menu-list')[speedIndex = 0].click();
break;
case 'x':
speedIndex < 5 && ++speedIndex;
document.getElementsByClassName('bilibili-player-video-btn-speed-menu-list')[speedIndex].click();
break;
case 'z':
document.getElementsByClassName('bilibili-player-video-btn-speed-menu-list')[speedIndex = 3].click();
break;
case 'h':
if (lightOn = !lightOn) {
document.body.classList.add('player-mode-blackmask');
document.getElementById('heimu').style.display = 'block';
document.getElementById('bilibiliPlayer').classList.add('mode-light-off');
} else {
document.body.classList.remove('player-mode-blackmask');
document.getElementById('heimu').style.display = 'none';
document.getElementById('bilibiliPlayer').classList.remove('mode-light-off');
}
break;
default:
break;
}
}
});
function filter() {
if (filterOn = !filterOn) {
GM_setValue('filterOn', filterOn);
document.getElementsByClassName('bilibili-player-video')[0].style.cssText = "filter:brightness(0.6834);";
ob.observe(video, { attributes: true });
} else {
GM_setValue('filterOn', filterOn);
document.getElementsByClassName('bilibili-player-video')[0].style.cssText = "";
}
GM_unregisterMenuCommand(id1);
id1 = GM_registerMenuCommand("低亮度模式:" + filterOn, filter);
}
})();