Bilibili-Evolved 哔哩哔哩增强脚本教程用油猴组件自由装配 B 站【免费下载链接】Bilibili-Evolved强大的哔哩哔哩增强脚本项目地址: https://gitcode.com/gh_mirrors/bi/Bilibili-EvolvedBilibili-Evolved 是一个运行在 Tampermonkey / Violentmonkey 里的哔哩哔哩增强脚本解决B 站页面长什么样、顶栏有什么、下载下来是什么格式你说了不算的问题它本身不带功能所有能力以组件、插件、样式三种单元按你的意愿装配。本文覆盖安装跑通、能力分布、核心机制拆解、一次可验证的改动、避坑表和后续路线文中路径均可直接对照源码。核心能力速览按场景找入口功能全部放在 registry/lib/components/ 下按feeds / live / style / touch / utils / video六大类组织每个功能一个目录统一是index.ts元数据与入口index.md自动注入的描述文档 可选的Widget.vue设置面板里的选项组件。首页与动态整理动态过滤器和首页重构feeds/filter/的动态过滤器按类型或关键词过滤动态流并可移除侧边卡片feeds/copy-link/、feeds/del-feeds/处理链接复制与批量删除。更激进的是style/home-redesign/内含fresh与minimal两套首页重构方案把信息流重排成卡片布局registry/lib/components/style/home-redesign/fresh/layouts/。style/custom-navbar/可以整条替换顶栏内部拆成home / search / user-info / settings等 15 个以上子模块支持透明填充、背景模糊等选项。视频播放与下载DASH 直连和弹幕六件套video/download/的下载视频组件直接对接 B 站 DASH 流可单独下载音频、控制扩展名与回退编码video/danmaku/把弹幕拆成airborne / converter / download / expand / merger / unescape六个子模块覆盖过滤、展开、下载与格式转换video/player/是仓库最大的子目录集中播放器层面的增强。直播与外观弹幕收发和夜间模式直播间的前后台音量、礼物盒子、弹幕面板适配、去水印都在live/下配合src/components/live/live-socket.ts的 WebSocket 封装做弹幕收发。外观侧最重的组件是夜间模式style/dark-mode/目录里从 2018 年遗留 CSSold/dark-slice-*.css到现行分片 SCSS 并存registry/lib/components/style/dark-mode/README.md给出一份完整的配色规范和选择器约束改样式前先看它。工具类签到助手和评论增强签到助手utils/check-in-center/的index.ts只有十几行widget.condition里判断getUID()未登录就不渲染。评论增强src/components/utils/comment/实现评论区域管理器与 VNode 折叠数据层靠src/core/spin-query.ts的轮询器等待异步元素。最短路径跑通10 分钟装好并验证注入前提最新版 Chrome 或 FirefoxSafari 官方标注理论上能运行没测试过脚本管理器用 Tampermonkey 5.0 或 Violentmonkey 2.18。README 明确标注 Greasemonkey 与 AdGuard不兼容套壳类浏览器不保证稳定。步骤装好脚本管理器后从 README 的安装链接装正式版脚本刷新任意 B 站页面页面左侧中央出现功能面板和设置面板入口——到这一步安装就算成功打开设置面板 → 左下组件/插件/样式管理四个入口批量逐行粘贴功能直链一次装完、浏览载入本地功能文件、在线打开在线仓库窗口、底部输入框粘贴单个链接安装选一个组件装上刷新页面生效。验证打开页面控制台输入window.bilibiliEvolved有对象输出即正常——脚本在src/client/init.ts里把对外 API 挂到了unsafeWindow.bilibiliEvolved。关键认知全新安装的脚本一个功能都没有。除设置面板、启动栏、自动更新等 7 个内置组件src/components/built-in-components.ts外其余全部要手动装配。v1 老用户可装v1 设置迁移组件registry/lib/components/utils/v1-migrate/它会自动把旧设置对应的新组件批量拉下来。一个机制讲透组件之间靠数据注入而不是 import遇到什么问题组件要能独立安装、独立开关就不能互相import——A 组件引用了 BB 一卸载 A 就崩。但现实里组件确实需要协作比如下载弹幕往下载视频的下载列表里加一个选项。方案src/plugins/data.ts提供一套数据注入 API。接收方用registerData(key, ...data)交出可被修改的对象提供方用addData(key, provider)提交修改getData时一次性应用。addData是单向累加的——只能git commit不能git reset所以卸载提供方只是少一次累加不会破坏数据。关键代码registry/lib/components/video/danmaku/download/index.ts的plugin部分plugin: { displayName: 下载视频 - 下载弹幕支持, setup: ({ addData }) { addData(downloadVideo.assets, async (assets: DownloadVideoAssets[]) { assets.push({ name: downloadDanmaku, displayName: 下载弹幕, // getAssets 负责把弹幕转成可下载文件 // component 指向设置面板里的选项 Widget }) }) }, },装上下载弹幕后下载视频的资产列表里凭空多出一项卸载后消失。两边代码互不认识。另一条通道是src/plugins/hook.ts的addHook/getHookbefore/after 两段式典型用途是自动更新组件挂在userComponents.add钩子上记录安装来源。对你意味着什么任何组件都可以放心装/放心卸它影响不了别的组件的代码路径只会增删自己的那一份数据。跟着改一次换个 DASH 回退编码用开发者模式看耗时改哪里下载组件的选项定义在 registry/lib/components/video/download/index.tsconst options defineOptionsMetadata({ dashVideoExtension: { defaultValue: DefaultDashExtensions.video, displayName: DASH 视频扩展名 }, dashAudioExtension: { defaultValue: DefaultDashExtensions.audio, displayName: DASH 普通音频扩展名 }, dashFlacAudioExtension: { defaultValue: DefaultDashExtensions.flacAudio, displayName: DASH FLAC 音频扩展名 }, dashCodecFallback: { defaultValue: DashCodec.Avc, dropdownEnum: DashCodec, displayName: DASH 回退编码 }, })dashCodecFallback默认AVC部分播放环境解不了 HEVC/AV1回退到 AVC 能保证下载的 DASH 流被播放器识别。怎么改设置面板 → 组件管理 → 下载视频 → DASH 回退编码下拉框换成 HEVC 或 AV1。设置持久化在脚本存储里每个组件一段{ enabled, options }在关于面板可以整体导出/导入备份。怎么验证两件事其一下一个视频看产物编码与扩展名是否符合预期其二把settingsPanel的devMode开发者模式打开再刷新控制台会输出components block time: xx ms for N items这类按组件分组的耗时日志src/core/performance/stats.ts的logStats每行是组件名 毫秒数 百分比。找到占比最高的组件考虑停用或调整加载时机——这是官方内置的逐组件剖析比浏览器性能面板省事。避坑速查现象原因处置装完脚本什么都没发生设计如此默认不预装任何组件进设置面板装功能装完刷新功能面板不显示、效果时好时坏用了 Greasemonkey / AdGuardREADME 标注不兼容浏览器是套壳版或脚本默认不对未登录状态做适配换最新版 Chrome/Firefox Tampermonkey/Violentmonkey先确认已登录弹脚本试图访问跨域资源用链接安装组件或把下载任务发到外部服务器时的已知提示README 注意事项确认来源后选始终允许页面明显变卡综合性脚本README 直说对性能有较大影响最低要求 8GB 内存 / 1920×1080开devMode定位耗时大户改加载模式或停用装得克制是长期流畅的前提升级后旧版出问题或设置错乱官方策略新版本一旦正式发布就不再对旧版本做任何技术支持升级前在关于面板导出设置必须留旧版参考 doc/rollback.md 回退指南弹幕下载出来的 ASS 里缺弹幕文档明确ASS 弹幕下载不会包含高级弹幕、字幕弹幕等registry/lib/components/video/danmaku/download/index.md预期行为不是 bug安全提醒README 隐私声明写得很直白——本仓库组件完全匿名、数据只落本地但任何组件对用户数据都有完全访问能力。装外部来源的组件前先看它的index.md和代码里的网络请求统一走src/core/ajax.ts封装便于审查。你的下一步日常用户只做三件事装上下载视频、夜间模式这类高频组件并保持克制把关于面板导出设置当成升级前的固定动作src/components/settings-panel/sub-pages/AboutPage.vue关注 CHANGELOG.md新版本发布后及时跟进旧版不再受支持。重度定制用户读一遍src/core/life-cycle.tsheadLoaded/contentLoaded/fullLoaded三个时机和src/core/loading-mode.ts延后/同时两个模式各 60 行以内理解组件何时被激活按devMode的性能日志调整每个组件的加载时机或停用动样式之前先读registry/lib/components/style/dark-mode/README.md的分片规范再碰dark-slice-*避免重蹈 2018 年选择器太宽泛的老路。想写功能的克隆仓库git clone https://gitcode.com/gh_mirrors/bi/Bilibili-Evolved后pnpm installregistry/下再装一次依赖pnpm tsx dev-tools/dev-server/index.ts启动开发服务默认 23333 端口在registry/lib/components/类别/下建目录index.ts用defineComponentMetadata导出index.md写描述把http://localhost:23333/registry/dist/components/id.js粘进组件管理面板即装即调改码热更新写跨功能协作时优先addData/addHook提交前跑pnpm run lint-check和pnpm run typepackage.json的 scripts 里都有。Bilibili-Evolved 把油猴脚本从一个成品还原成了一套装配规则核心层保证稳定组件层承载功能插件层负责互通连 doc/features/features.md 的功能清单和dev-tools/pr-check/的 PR 检查都是同一套生成式工具链的产物。它最有迁移价值的不是某个具体功能而是元数据 懒加载 数据注入的组合——换一个站、换一个场景这套工程化写法几乎可以原样搬走。【免费下载链接】Bilibili-Evolved强大的哔哩哔哩增强脚本项目地址: https://gitcode.com/gh_mirrors/bi/Bilibili-Evolved创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
阅读完成 · 觉得有帮助?