B站/哔哩哔哩/bilibili视频增强脚本(中文字幕+倍速控制+顶部栏控制)

Created at 5 months ago
Updated at 3 hours ago
自动开启中文字幕,提供倍速控制功能(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
Script Details

B站/哔哩哔哩/bilibili记忆自动选择中文字幕与记忆倍速控制脚本(新增顶部栏隐藏)

TampermonkeyViolentmonkey脚本猫版本

此脚本未考虑多语言,仅默认选择中文

功能简介

这是一个专为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倍速为快进效果)

顶部栏控制功能

  • 🧹 清爽观影:一键隐藏顶部导航栏,扩大可视区域
  • 🔌 自动记忆:记住顶部栏隐藏/显示状态,页面刷新/切换自动恢复
  • 即时生效:按键立即切换,无需刷新页面
  • 🎨 样式优化:隐藏顶部栏后自动调整页面边距,避免布局错乱

安装方法

  1. 确保浏览器已安装用户脚本管理器扩展:

  2. 点击下方链接安装脚本:
    安装脚本

  3. 或者手动创建新脚本并复制完整代码

适用页面

  • 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类控制显示/隐藏
}

执行流程

  1. 页面加载完成后初始化脚本,恢复上次保存的所有状态
  2. 自动应用字幕、倍速、顶部栏的记忆状态
  3. 监听键盘事件,处理快捷键操作(仅响应主键盘按键)
  4. 监听SPA路由变化,切换视频时重置状态并重新执行
  5. 所有操作均添加尝试次数限制,避免性能问题

配置选项

参数 默认值 说明
MAX_ATTEMPTS 10 最大尝试次数
INITIAL_DELAY 800 初始执行延迟(毫秒)
RETRY_DELAY 2000 重试间隔(毫秒)
默认倍速 1.0 默认播放速度
默认字幕状态 开启 首次使用自动开启中文字幕
默认顶部栏状态 显示 首次使用显示顶部导航栏

常见问题

Q: 脚本没有生效怎么办?

A:

  1. 检查控制台(F12)是否有错误信息
  2. 确认脚本已启用且匹配当前B站页面URL
  3. 刷新页面重试(B站SPA路由可能导致脚本未触发)
  4. 确认B站页面已加载完成(脚本在DOMContentLoaded后执行)

Q: 主键盘1/2/3键没有反应怎么办?

A:

  1. 确保焦点不在输入框/评论框等可编辑区域
  2. 确认按下的是主键盘区的1/2/3(非数字小键盘)
  3. 检查是否有其他扩展程序占用相同快捷键
  4. 按F12打开控制台,查看是否有快捷键触发的日志输出

Q: 3倍速设置后不是预期效果?

A:

  1. 3倍速逻辑为模拟B站长按→键的快进效果(每次快进3秒),非修改视频播放倍速
  2. 该设计与B站原生快进逻辑一致,未突破平台倍速上限
  3. 可通过视频进度条变化感知快进效果,或查看提示信息确认

Q: 顶部栏隐藏后页面布局错乱?

A:

  1. 脚本已添加body.header-hidden样式自动调整页面边距
  2. 如仍有问题,可按J键恢复顶部栏显示
  3. 清除浏览器缓存或强制刷新页面(Ctrl+F5)

Q: 可以自定义快捷键吗?

A:

  1. 需手动修改代码中的handleKeyPress函数
  2. 找到对应按键判断逻辑(如event.key === '1'
  3. 修改为想要的主键盘按键值即可

更新日志

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站页面结构变化导致的脚本失效问题

温馨提示

  1. B站可能会更新页面结构,如脚本失效请关注最新版本
  2. 建议定期更新脚本以获得最佳体验
  3. 使用过程中如遇问题,可按F12查看控制台日志定位问题