对 Bilibili 视频播放界面的一系列快捷键补充
// ==UserScript==
// @name ❀ 浮岚 Bilibili 快捷键补充
// @name:zh-TW ❀ 浮嵐 Bilibili 快捷鍵補充
// @name:ja ❀ 浮嵐 Bilibili ショートカット補充
// @name:ko ❀ 부람 Bilibili 단축키 보충
// @name:en ❀ Fulan Bilibili Shortcut Enhancer
// @description 对 Bilibili 视频播放界面的一系列快捷键补充
// @description:zh-TW 對 Bilibili 影片播放介面的一系列快捷鍵補充
// @description:ja Bilibili 動画再生画面のショートカットを追加
// @description:ko Bilibili 동영상 재생 화면의 단축키 보조
// @description:en Additional shortcuts for the Bilibili video playback interface
// @version 1.2
// @author 嵐 @ranburiedbyacat
// @namespace https://bento.me/ranburiedbyacat
// @license CC-BY-NC-SA-4.0
// @match *://*.bilibili.com/*
// @compatible Safari
// @compatible Firefox
// @compatible Chrome
// @icon https://www.bilibili.com/favicon.ico
// @grant none
// @run-at document-idle
// ==/UserScript==
(function () {
'use strict';
// 检测用户是否正在输入
function isTyping() {
var active = document.activeElement;
return (
active &&
(active.tagName === 'INPUT' ||
active.tagName === 'TEXTAREA' ||
active.isContentEditable)
);
}
// 模拟点击
function simulateClick(selector) {
var btn = document.querySelector(selector);
if (btn) btn.click();
}
// 切换画中画
function togglePIP() {
var video = document.querySelector('video');
if (!video) return;
if (document.pictureInPictureElement) {
document.exitPictureInPicture().catch(function(err){
console.warn('退出画中画失败:', err);
});
} else {
video.requestPictureInPicture().catch(function(err){
console.warn('进入画中画失败:', err);
});
}
}
// 设置播放速度
function setPlaybackRate(rate) {
var video = document.querySelector('video');
if (!video) return;
video.playbackRate = rate;
console.log('已设置播放速度为', rate, '倍速');
}
// 快捷键监听
document.addEventListener('keydown', function(e) {
if (isTyping()) return;
if (e.repeat) return;
// T:宽屏
if (e.key === 't' || e.key === 'T') {
e.preventDefault();
simulateClick('.bpx-player-ctrl-wide, .bilibili-player-video-btn-widescreen');
}
// Y:网页全屏
if (e.key === 'y' || e.key === 'Y') {
e.preventDefault();
simulateClick('.bpx-player-ctrl-web, .bilibili-player-video-web-fullscreen');
}
// P:画中画
if (e.key === 'p' || e.key === 'P') {
e.preventDefault();
togglePIP();
}
// 使用 e.code 判断物理按键,确保跨键盘布局
// Shift + 数字3 → 3倍速
if (e.shiftKey && e.code === 'Digit3') {
e.preventDefault();
setPlaybackRate(3);
}
// Shift + Q → 0.5倍速
if (e.shiftKey && e.code === 'KeyQ') {
e.preventDefault();
setPlaybackRate(0.5);
}
// Shift + W → 1.5倍速
if (e.shiftKey && e.code === 'KeyW') {
e.preventDefault();
setPlaybackRate(1.5);
}
// Shift + E → 2.5倍速
if (e.shiftKey && e.code === 'KeyE') {
e.preventDefault();
setPlaybackRate(2.5);
}
});
})();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址