B 站自动字幕用户脚本:快捷键开启 + 切 P 自动开启字幕(2025 新版适配)
一、脚本介绍
该用户脚本旨在解决 B 站观看视频时手动开启字幕繁琐及切换分 P 后字幕未自动开启的问题。
功能特性:
- 快捷键控制:按
C键快速开启字幕 - 切 P 自动开启:切换分 P 时自动打开字幕
- 2025 新版适配:完全适配 B 站最新播放器布局
- :不占用额外资源,不影响原页面功能
B 站 PC 端视频自动开启字幕脚本通过 Tampermonkey 或 Violentmonkey 运行,支持快捷键开启、切换分 P 自动开启及首次进入自动开启。利用 DOM 查询定位播放器按钮并模拟点击,适配 2025 年新版播放器布局。解决了手动操作繁琐的问题,兼容普通视频页及播放列表页。
该用户脚本旨在解决 B 站观看视频时手动开启字幕繁琐及切换分 P 后字幕未自动开启的问题。
功能特性:
C 键快速开启字幕https://www.bilibili.com/video/*https://www.bilibili.com/list/*支持普通视频页、番剧页、播放列表页等常见场景。
推荐使用 Tampermonkey 或 Violentmonkey。
通过以下链接安装脚本文件: GitHub 仓库
安装后,脚本会在符合条件的 B 站页面自动运行。
C 键即可开启字幕。脚本使用复合选择器查询字幕按钮,兼容多种播放器布局:
function querySubtitleBtn() {
return document.querySelector([
'.bpx-player-ctrl-subtitle>button', // 新版 bpx
'.bpx-player-ctrl-btn[aria-label*="字幕"]',
'.bpx-player-ctrl-btn[aria-label*="CC"]',
'.squirtle-subtitle-wrap>button', // 番剧播放器
'.bpui-btn[title*="字幕"]' // 旧版
].join(','));
}
脚本不仅点击字幕按钮,还会展开菜单并选择第一个语言选项:
setTimeout(() => {
const langItem = document.querySelector(
'.bpx-player-ctrl-subtitle-language-item[data-lan]'
);
if (langItem) {
langItem.click();
console.log('[B 站自动字幕] 已选择语言,字幕已开启');
}
}, 150);
通过定时检查 URL 参数 p 的变化来判断是否切换分 P:
setInterval(() => {
const nowP = new URLSearchParams(location.search).get('p');
if (nowP !== lastP) {
lastP = nowP;
setTimeout(clickSubtitle, 1500);
}
}, 1000);
www.bilibili.com/video/ 和 www.bilibili.com/list/ 开头的页面。@match 规则。本项目开源在 GitHub,欢迎提交 Issue 或 Pull Request:
MIT License,可自由使用、修改和分发。

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
查找任何按下的键的javascript键代码、代码、位置和修饰符。 在线工具,Keycode 信息在线工具,online
JavaScript 字符串转义/反转义;Java 风格 \uXXXX(Native2Ascii)编码与解码。 在线工具,Escape 与 Native 编解码在线工具,online
使用 Prettier 在浏览器内格式化 JavaScript 或 HTML 片段。 在线工具,JavaScript / HTML 格式化在线工具,online
Terser 压缩、变量名混淆,或 javascript-obfuscator 高强度混淆(体积会增大)。 在线工具,JavaScript 压缩与混淆在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online