Pakku.js Versions Save

拯救B站的弹幕体验!

2024.5.1

3 weeks ago

经历了 ManifestV3 重构后,经过半个多月的测试,恶性 bug 基本修复完毕。在此发布 pakku 2024.5.1 功能更新,这也将是 pakku 首个上架 Edge 商店的 ManifestV3 版本。为什么四月就发布了 2024.5.1 版本?因为等 Edge 商店审核通过了就该到五月了。

以下是 2024.5.1 版本相比于 2024.4.1 的变化。

新功能

自动弹幕优选

有些视频可能会出现激烈争吵、讨论、版聊等情况,导致弹幕合并之后的密度仍然过高,影响观看体验。

从 2024.5.1 版本起,新增自动弹幕优选功能,在瞬时弹幕密度过高时,将按比例删除云屏蔽权重为 1 且未被合并的弹幕,从而使弹幕密度大致不超过一个上限。

此功能默认禁用,可以在选项中设置强度:

image

在图中可以看到,从 2024.5.1 版本起,“自动减小字号” 功能也可以调节强度了(原先功能开启时的强度对为现在的中等档位)。

以视频 小米SU7,全国首撞!(BV1PE421u7UV) 为例,以下是自动弹幕优选功能设置为不同强度时的弹幕密度,可见弹幕密度过高的情况得到了缓解:

image

保存并处理本地弹幕

从 2024.4.3 版本起,点击 pakku 弹窗的 “弹幕 xxx → xxx” 文字进入弹幕处理结果页面后,增加了保存按钮,可以将处理结果保存为 XML 或 Pakku Debug 格式:

image

其中 Pakku Debug 格式为使用 JSON(输出时带单行注释和末尾逗号)存储的 DanmuObject[] 类型,在 用户脚本文档 中有相关类型定义。

从 2024.4.3 版本起,优化了与 Bilibili-Evolved 共同使用的体验。当 pakku 开启时,Bilibili-Evolved 的下载弹幕组件(v2.8.10 或更新版本)将下载 pakku 处理后的弹幕。

从 2024.4.3 版本起,新增批量处理本地弹幕功能 (#274),可以使用 pakku 处理本地存储的 XML 或 Pakku Debug 格式弹幕:

image

从 2024.4.4 版本起,可以右键点击 pakku 图标展开菜单,进入此功能:

image

读取播放器屏蔽词

pakku 会默认读取播放器屏蔽词,在合并弹幕之前先按屏蔽词过滤一遍弹幕,从而使数量标记和弹幕密度计算更准确,并避免数量标记影响正则匹配。

从 2024.4.3 版本起,可以在统计信息面板中查看每个屏蔽词的命中次数:

image

从 2024.5.1 版本起,如果不需要读取播放器屏蔽词,可以在设置中关闭此功能:

image

性能提升

  • (2024.4.5) hook 了播放器的 view 请求,使得加载完成时间提前大约几百毫秒
  • (2024.5.1) 提前加载第一个分片,使得第一个分片上屏时间提前大约几百毫秒
  • (2024.5.1) 线程数量设置为 1 时将依然使用 Web Worker 来避免阻塞页面(设置为 0 来完全禁用 Web Worker)
  • (2024.5.1) 对没有弹幕的分片不进行合并,节省 Web Worker 通信开销

其他改进

  • (2024.5.1) 在 “正在下载/处理弹幕” 提示语后增加进度信息
  • (2024.5.1) 改进了分块边界几秒钟的弹幕密度计算准确度
  • 改进了多处异常处理和错误提示
  • 调整了设置页面的编排逻辑
  • 完成了全部残留代码的 TypeScript 和 ES6 重构

Bug 修复

  • (2024.4.2) Firefox 平台少数情况下无法工作 (#272)
  • (2024.4.6) Chrome 99-110 版本下无法工作 (#278)
  • (2024.4.5) “阻止弹幕动态更新” 功能会导致直播弹幕不显示
  • (2024.4.3) 播放器屏蔽用户被识别为屏蔽词 (#275)
  • (2024.5.1) Chrome 94(如搜狗浏览器和 QQ 浏览器)安装时报错,目前可以安装,但部分功能不可用且设置页面会出现警告
  • (2024.4.7) 播放器屏蔽词正则表达式存在语法错误时无法工作 (#279)
  • (2024.5.1) 处理本地弹幕功能输出 Debug 格式时结果可能不全
  • (2024.5.1) 在搜索结果和个人空间页面鼠标悬停在视频预览时会加载全量弹幕
  • (2024.4.5) 弹幕数量极多时弹幕处理结果页面无法工作
  • (2024.4.4) 播放器换P后统计页面显示不正常
  • (2024.4.4) 页面刷新后角标文本没有清空
  • (2024.4.4) 切换工作状态后会再次下载弹幕
  • (2024.4.6) 解析特殊弹幕 JSON 和屏蔽词的行为与播放器有差异
  • (2024.4.4) Chrome 平台的用户脚本和处理本地弹幕功能依赖于 crbug.com/1504703
  • (2024.5.1) 旧版残余的选项没有清理

此版本已经上架 Chrome Web Store 和 Mozilla Add-Ons。因此除 Edge 用户外,无需任何操作,等待浏览器自动更新即可。

2024.4.1

1 month ago

此前的 v2024.3.1 在大型重构后确实引入了亿些bug。此版本带来了bug修复和其他优化,建议v2024.3.1用户现在更新,旧版用户可以等待浏览器自动更新。

Chrome平台目前已对10%用户灰度发布,Firefox平台已全量发布,Edge平台暂未发布,将在测试稳定后发布。

修复的bug

  • 删除强制合并规则会导致设置损坏
  • 弹幕密度计算错误导致弹幕密度过大时减小字号功能异常
  • iframe中的播放器无法加载弹幕
  • 在换P后弹幕信息面板找不到弹幕详情
  • 按住ctrl时可能会显示多余的弹幕
  • 没有使用出现次数最多的文本
  • 更改阻止弹幕动态更新设置后没有立刻生效
  • 在首页或播放器页面鼠标移过其他视频缩略图时预览弹幕会误触发合并
  • 大会员彩色弹幕被点赞后样式异常
  • 弹幕分片编号显示错误

其他优化

  • 改善了首个分片的加载性能
  • 调整了弹幕密度计算公式
  • 改善了忽略多余空格选项对中文的支持
  • 改善了Firefox平台的用户脚本错误提示
  • 调整了部分默认设置
  • 改善了部分界面的文案和文档

Chrome或Edge用户可以下载CRX安装包提前更新到最新版。此前在Firefox中安装了2024.3.1版本的用户需要卸载后安装正式版

2024.3.1

1 month ago

这是 pakku 的一次大型重构,目前在 Chrome Web Store 上发布了 1% 用户的灰度测试,将在一段时间后全量发布。

主要更新内容如下:

新功能

  • 用户脚本功能 可以使用 JavaScript 代码深度自定义 pakku 的功能,从而一举关闭了很多 Feature Request
  • 并行处理: pakku 现在使用 Web Worker 并行处理弹幕,可以大幅提升弹幕多、时间长的视频的处理性能,例如对于具有 13 万弹幕、51 分钟的 哔哩哔哩2020拜年祭(P1),在使用 3 个线程时(此为默认值,可以在选项中调整为 1 ~ 6 个),完整处理时间从 8 秒降低至 3 秒

功能改进

  • pakku 将自动读取播放器的黑名单,而不需要在设置页面手动导入
  • 支持了大会员彩色弹幕
  • 移除了常驻后台的背景页面,在不访问B站时可节省大约 40MB 内存
  • 其他界面优化
  • 其他代码质量优化(使用了 TypeScript、async functions、ES modules 等现代特性)
  • 以后将以 year.month.rev 格式命名版本号,因为之前的 major.minor.rev 格式没什么意义,反正浏览器会自动升级扩展程序

功能移除

  • 不再支持【弹幕黑名单】选项,因为现在将自动读取播放器的黑名单
  • 不再支持【眼不见心不烦模式】选项(不显示重复数量大于 x 的弹幕),此功能可通过用户脚本实现
  • 不再支持【设置云同步 (beta)】选项,现在将始终使用浏览器提供的同步功能