B站/哔哩哔哩/bilibili视频增强脚本(中文字幕+倍速控制+顶部栏控制)
自动开启中文字幕,提供倍速控制功能(Z/X/C键和1/2/3键),按H键控制顶部栏显示,记忆用户选择
Total Installs
4,749
Today's New
+0
User Rating
- / 5.0 (0)
Current Version
2.3.2
B站/哔哩哔哩/bilibili记忆自动选择中文字幕与记忆倍速控制脚本(新增顶部栏隐藏)
此脚本未考虑多语言,仅默认选择中文
功能简介
这是一个专为B站(哔哩哔哩)视频页面设计的用户脚本,在原有自动选中文字幕、倍速控制基础上,新增顶部栏隐藏功能,无需手动操作即可享受字幕服务、自定义播放速度和清爽的视频观看体验。
- 字幕控制:
Shift+A切换字幕开关(原ctrl+c已调整,避免与复制快捷键冲突) - 倍速控制:
Z恢复1倍速、X减速、C加速,新增主键盘1/2/3键快速切换倍速(3倍速效果等同于B站长按→键的快进,非突破平台倍速上限) - 顶部栏控制:
J键快速隐藏/显示B站顶部导航栏,自动记忆状态 - 无界面设计:保持页面简洁,所有操作通过快捷键完成,无多余UI元素
- 场景适配:完美适配视频播放页、稍后再看列表,合集切换P自动重新生效
- 字幕适配:兼容2025年B站字幕界面改版,自动识别并选择"中文AI"/"中文(中国)"字幕
- 状态记忆:字幕、倍速、顶部栏状态全部本地记忆,下次打开自动恢复
功能特点
字幕功能
- 🔍 智能识别:自动检测页面中所有含"中文"的字幕选项,优先级:中文(AI) > 中文(中国)
- ⚡ SPA适配:监听B站路由变化,切换视频/合集自动重新检测字幕
- 🔄 智能重试:最多10次尝试,2秒间隔,避免无限循环占用资源
- ✅ 状态验证:点击后验证激活状态,失败自动重试
- 📊 详细日志:控制台输出执行过程,方便调试和问题定位
- 💾 偏好记忆:记住用户手动切换的字幕状态,下次打开自动应用
倍速控制功能
- ⏩ 多方式控制:支持Z/X/C渐进调整、主键盘1/2/3键快速切换(非数字小键盘)
- 🚀 3倍速逻辑:3键触发的3倍速效果等同于B站长按→键快进,未突破平台倍速上限
- 📝 完整记忆:区分默认倍速和自定义倍速状态,自动恢复上次设置
- 🎯 视觉反馈:半透明大字体提示当前倍速,2秒自动消失,不遮挡内容
- 🔢 多档位覆盖:支持0.5x/0.75x/1x/1.25x/1.5x/2x全档位(3倍速为快进效果)
顶部栏控制功能
- 🧹 清爽观影:一键隐藏顶部导航栏,扩大可视区域
- 🔌 自动记忆:记住顶部栏隐藏/显示状态,页面刷新/切换自动恢复
- ⚡ 即时生效:按键立即切换,无需刷新页面
- 🎨 样式优化:隐藏顶部栏后自动调整页面边距,避免布局错乱
安装方法
确保浏览器已安装用户脚本管理器扩展:
- Tampermonkey (推荐)
- Violentmonkey
- 脚本猫 (国产,中文友好)
或者手动创建新脚本并复制完整代码
适用页面
https://www.bilibili.com/video/*https://www.bilibili.com/list/watchlater*
快捷键说明
| 快捷键 | 功能 | 说明 |
|---|---|---|
Shift + A |
切换字幕开关 | 开启/关闭中文字幕(避免与复制冲突) |
J |
切换顶部栏显示状态 | 隐藏/显示B站顶部导航栏 |
Z |
重置倍速为1x | 恢复正常播放速度 |
X |
减小一档倍速 | 最低可调整至0.5x |
C |
增加一档倍速 | 最高可调整至2.0x(B站默认档位) |
主键盘1 |
快速设置1倍速 | 等同于Z键(非数字小键盘) |
主键盘2 |
快速设置2倍速 | 直接切换到B站默认最高倍速(非数字小键盘) |
主键盘3 |
触发3倍速快进 | 效果等同于B站长按→键快进(非数字小键盘,未突破倍速上限) |
注意:所有快捷键在输入框/文本域聚焦时自动失效,避免干扰正常输入
技术细节
核心配置
// 核心配置参数
const MAX_ATTEMPTS = 10; // 最大尝试次数
const INITIAL_DELAY = 800; // 初始执行延迟
const RETRY_DELAY = 2000; // 重试间隔(毫秒)
const playbackRates = [2, 1.5, 1.25, 1, 0.75, 0.5]; // 官方支持倍速
核心功能实现
// 1. 字幕自动选择核心逻辑
function tryClickChineseSubtitle() {
// 按文本长度排序字幕选项,优先选择短文本(中文 > 中文AI)
subtitleItems = Array.from(subtitleItems).sort((a, b) => {
const textA = a.querySelector('.bpx-player-ctrl-subtitle-language-item-text')?.textContent?.trim().length || 0;
const textB = b.querySelector('.bpx-player-ctrl-subtitle-language-item-text')?.textContent?.trim().length || 0;
return textA - textB;
});
// 查找并点击含"中文"的字幕选项
}
// 2. 3倍速快进实现(等同B站长按→键)
function trigger3xFastForward() {
const videoElement = document.querySelector('.bpx-player-video-wrap video');
if (videoElement) {
// 模拟B站长按→键的快进逻辑,非修改video倍速属性
videoElement.currentTime += 3; // 每次按3键快进3秒,等同长按→键效果
showSpeedTip('3倍速快进(长按→键等效)'); // 提示区分普通倍速
}
}
// 3. 顶部栏控制核心
function toggleHeader() {
isHeaderHidden = !isHeaderHidden;
GM_setValue('bilibili_header_hidden', isHeaderHidden);
document.body.classList.toggle('header-hidden'); // 通过CSS类控制显示/隐藏
}
执行流程
- 页面加载完成后初始化脚本,恢复上次保存的所有状态
- 自动应用字幕、倍速、顶部栏的记忆状态
- 监听键盘事件,处理快捷键操作(仅响应主键盘按键)
- 监听SPA路由变化,切换视频时重置状态并重新执行
- 所有操作均添加尝试次数限制,避免性能问题
配置选项
| 参数 | 默认值 | 说明 |
|---|---|---|
| MAX_ATTEMPTS | 10 | 最大尝试次数 |
| INITIAL_DELAY | 800 | 初始执行延迟(毫秒) |
| RETRY_DELAY | 2000 | 重试间隔(毫秒) |
| 默认倍速 | 1.0 | 默认播放速度 |
| 默认字幕状态 | 开启 | 首次使用自动开启中文字幕 |
| 默认顶部栏状态 | 显示 | 首次使用显示顶部导航栏 |
常见问题
Q: 脚本没有生效怎么办?
A:
- 检查控制台(F12)是否有错误信息
- 确认脚本已启用且匹配当前B站页面URL
- 刷新页面重试(B站SPA路由可能导致脚本未触发)
- 确认B站页面已加载完成(脚本在DOMContentLoaded后执行)
Q: 主键盘1/2/3键没有反应怎么办?
A:
- 确保焦点不在输入框/评论框等可编辑区域
- 确认按下的是主键盘区的1/2/3(非数字小键盘)
- 检查是否有其他扩展程序占用相同快捷键
- 按F12打开控制台,查看是否有快捷键触发的日志输出
Q: 3倍速设置后不是预期效果?
A:
- 3倍速逻辑为模拟B站长按→键的快进效果(每次快进3秒),非修改视频播放倍速
- 该设计与B站原生快进逻辑一致,未突破平台倍速上限
- 可通过视频进度条变化感知快进效果,或查看提示信息确认
Q: 顶部栏隐藏后页面布局错乱?
A:
- 脚本已添加
body.header-hidden样式自动调整页面边距 - 如仍有问题,可按J键恢复顶部栏显示
- 清除浏览器缓存或强制刷新页面(Ctrl+F5)
Q: 可以自定义快捷键吗?
A:
- 需手动修改代码中的
handleKeyPress函数 - 找到对应按键判断逻辑(如
event.key === '1') - 修改为想要的主键盘按键值即可
更新日志
v2.3
- ✨ 新增顶部栏控制:J键隐藏/显示B站顶部导航栏,自动记忆状态
- ⌨️ 倍速快捷键优化:新增主键盘1/2/3键控制倍速(非数字小键盘)
- 🚀 3倍速逻辑优化:3键实现等同于B站长按→键的快进效果,非突破倍速上限
- 🎨 优化提示样式:增大提示框尺寸、加粗字体、添加阴影,提升视觉体验
- 🚀 性能优化:优化元素查找逻辑,减少DOM操作次数
- 🐞 BUG修复:修复倍速恢复逻辑,解决切换视频后倍速不生效问题
v2.0
- ✨ 新增倍速控制:Z/X/C键快捷调整播放速度
- 📝 倍速记忆:自动记住上次设置的播放速度
- 🎯 视觉反馈:添加倍速提示信息
- 🔧 代码重构:优化代码结构,提高可维护性
v1.1
- 🔄 重试机制:添加尝试次数限制,防止无限循环
- 🐞 状态修复:优化字幕激活状态验证逻辑
- 📊 日志增强:改进控制台日志输出信息
v1.0
- 🎉 初始版本:实现中文字幕自动选择功能
- ⚡ SPA适配:支持B站单页面应用路由切换
- 💾 状态记忆:记住用户字幕偏好设置
免责声明
本脚本仅供学习交流使用,请勿用于商业用途。脚本仅模拟人工操作,未破解B站任何功能,使用脚本产生的一切后果由使用者自行承担。
反馈与支持
如果您在使用过程中遇到问题或有改进建议,请通过以下方式反馈:
- 在脚本评论区留言
- 提交Issue到脚本仓库
- 反馈B站页面结构变化导致的脚本失效问题
温馨提示:
- B站可能会更新页面结构,如脚本失效请关注最新版本
- 建议定期更新脚本以获得最佳体验
- 使用过程中如遇问题,可按F12查看控制台日志定位问题