拯救B站的弹幕体验!
GPL-3.0 License
Bot releases are visible (Hide)
pakku 2024.7.1 版本主要包括对播放器增强功能的改进,以及用户脚本等高级功能的改进和 bug 修复。
以下是 2024.7.1 版本相比于 2024.6.1 的变化。
从 2024.7.1 版本起,弹幕信息显示框可以识别弹幕中的时间戳、AV/BV号、用户名等信息,点击即可跳转到对应内容:
从 2024.6.3 版本起,弹幕密度分析图将以数字形式显示弹幕密度:
此数字与自动减小字号、自动弹幕优选等功能的弹幕密度计算方法相同,可以用作设置这些功能强度的参考。
另外,2024.6.3 版本改进了部分 UI 样式,增加了圆角边框、磨砂背景、阴影等效果,并略微增大了文字间距,使其样式与播放器更协调。
受浏览器限制,pakku 的每个设置项均不能超过 8KB,因此无法存储过多的正则表达式规则或过长的用户脚本。
从 2024.7.1 版本起,pakku 会对设置项进行 deflate 压缩,从而在 8KB 的限制下容纳更多(一般可以到 50%~150%)内容。
另外,从 2024.7.1 版本起,pakku 会从网页的 localStorage
读取额外的用户脚本和屏蔽词。因此如果你有大量的屏蔽词难以导入B站播放器,或者需要编写大于 8KB 的用户脚本,可以将它们存储在 www.bilibili.com 域的 localStorage
中。以下是相应的示例:
localStorage['pakku_extra_blacklist'] = JSON.stringify([{type: 1, filter: '^.{1,6}[天时点分钟秒]前', opened: true, id: 0}]);
(格式与B站播放器导出的 JSON 格式相同)localStorage['pakku_extra_userscript'] = 'tweak_before_pakku(chunk=>{})';
(将被拼接到其他用户脚本的末尾)请注意 localStorage
中存储的内容可能会在清除浏览器缓存后丢失。对于大多数用户,依然建议优先将用户脚本保存在 pakku 设置中(跟随浏览器的登录账号同步)、将屏蔽词导入B站播放器(跟随B站账号同步)。
另外,用户脚本可以利用 importScripts
函数通过 URL 引入外部文件,这也是一种绕过代码长度限制的方法。用户脚本文档 已经增加了相应的示例。
Published by xmcp 5 months ago
pakku 2024.6.1 版本主要增加了一些高级用户可能会用到的新功能,以及一些性能提升和 bug 修复。
以下是 2024.6.1 版本相比于 2024.5.1 的变化。
在此前的版本中,弹幕密度分析图并不会显示有多少弹幕被删除了(包括命中播放器屏蔽词和被自动弹幕优选功能删除的弹幕)。从 2024.6.1 版本起,弹幕密度分析图会把被删除弹幕的密度显示为一个独立的部分。
如下图所示,图中的蓝色、黄色、红色部分分别对应实际显示的、被合并的、被删除的弹幕密度。因此之前版本的红色对应现在的黄色。
另外,2024.6.1 版本还调整了弹幕密度分析图的密度计算公式,使其与 pakku 其他功能的计算方式相同。
从 2024.6.1 版本起,用户脚本新增 tweak_proto_view
API,可以修改播放器获取到的弹幕元信息(api.bilibili.com/x/v2/dm/web/view),详见 用户脚本文档。
由于这是 B 站播放器的私有 API,pakku 不保证此接口的稳定性,也无法解释每个字段的准确含义。可以在播放器页面的 console 里搜索 “pakku protobuf api: got view” 来看看它的具体内容。
以下是一些利用此 API 可以实现的功能:
tweak_proto_view(view=>{
// 删除视频中的一键三连按钮
view.commandDms = view.commandDms.filter(d => d.command!=='#ATTENTION#');
// 禁用表情弹幕,如 “OHH”
view.expressions = [];
// 删除偶尔出现的贴片广告,如 “云视听小电视”
view.activityMetas = [];
view.maskWalls = [];
view.postPanel = [];
view.postPanelV2 = [];
// 非硬核会员启用 “硬核会员弹幕模式” 选项
view.dmSetting.seniorModeSwitch = 3;
});
pakku 的设置页面中有很多数值类型的选项,但仅能在几个预设值(禁用、轻微、中等、强力)中选择一个。从 2024.6.1 版本起,勾选了 “我是高级用户” 后,可以选择 “自定义” 然后输入其他数值:
另外,从 2024.6.1 版本起,“自动弹幕优选" 功能的阈值预设从 240、160、100 调整为 150、100、70。更新后将保持原来设置的数值,因此原先设置为 “中等 (>160)” 将在更新后显示为 “自定义 (>160)”。
await
以缓解处理弹幕时主线程被播放器阻塞D
,以便用 console 调试
Published by xmcp 6 months ago
经历了 ManifestV3 重构后,经过半个多月的测试,恶性 bug 基本修复完毕。在此发布 pakku 2024.5.1 功能更新,这也将是 pakku 首个上架 Edge 商店的 ManifestV3 版本。为什么四月就发布了 2024.5.1 版本?因为等 Edge 商店审核通过了就该到五月了。
以下是 2024.5.1 版本相比于 2024.4.1 的变化。
有些视频可能会出现激烈争吵、讨论、版聊等情况,导致弹幕合并之后的密度仍然过高,影响观看体验。
从 2024.5.1 版本起,新增自动弹幕优选功能,在瞬时弹幕密度过高时,将按比例删除云屏蔽权重为 1 且未被合并的弹幕,从而使弹幕密度大致不超过一个上限。
此功能默认禁用,可以在选项中设置强度:
在图中可以看到,从 2024.5.1 版本起,“自动减小字号” 功能也可以调节强度了(原先功能开启时的强度对为现在的中等档位)。
以视频 小米SU7,全国首撞!(BV1PE421u7UV) 为例,以下是自动弹幕优选功能设置为不同强度时的弹幕密度,可见弹幕密度过高的情况得到了缓解:
从 2024.4.3 版本起,点击 pakku 弹窗的 “弹幕 xxx → xxx” 文字进入弹幕处理结果页面后,增加了保存按钮,可以将处理结果保存为 XML 或 Pakku Debug 格式:
其中 Pakku Debug 格式为使用 JSON(输出时带单行注释和末尾逗号)存储的 DanmuObject[]
类型,在 用户脚本文档 中有相关类型定义。
从 2024.4.3 版本起,优化了与 Bilibili-Evolved 共同使用的体验。当 pakku 开启时,Bilibili-Evolved 的下载弹幕组件(v2.8.10 或更新版本)将下载 pakku 处理后的弹幕。
从 2024.4.3 版本起,新增批量处理本地弹幕功能 (#274),可以使用 pakku 处理本地存储的 XML 或 Pakku Debug 格式弹幕:
从 2024.4.4 版本起,可以右键点击 pakku 图标展开菜单,进入此功能:
pakku 会默认读取播放器屏蔽词,在合并弹幕之前先按屏蔽词过滤一遍弹幕,从而使数量标记和弹幕密度计算更准确,并避免数量标记影响正则匹配。
从 2024.4.3 版本起,可以在统计信息面板中查看每个屏蔽词的命中次数:
从 2024.5.1 版本起,如果不需要读取播放器屏蔽词,可以在设置中关闭此功能:
此版本已经上架 Chrome Web Store 和 Mozilla Add-Ons。因此除 Edge 用户外,无需任何操作,等待浏览器自动更新即可。
Published by xmcp 7 months ago
此前的 v2024.3.1 在大型重构后确实引入了亿些bug。此版本带来了bug修复和其他优化,建议v2024.3.1用户现在更新,旧版用户可以等待浏览器自动更新。
Chrome平台目前已对10%用户灰度发布,Firefox平台已全量发布,Edge平台暂未发布,将在测试稳定后发布。
Chrome或Edge用户可以下载CRX安装包提前更新到最新版。此前在Firefox中安装了2024.3.1版本的用户需要卸载后安装正式版。
Published by xmcp 7 months ago
这是 pakku 的一次大型重构,目前在 Chrome Web Store 上发布了 1% 用户的灰度测试,将在一段时间后全量发布。
主要更新内容如下:
year.month.rev
格式命名版本号,因为之前的 major.minor.rev
格式没什么意义,反正浏览器会自动升级扩展程序
要想现在手动更新到此版本,请下载下方的 .crx
或 .xpi
安装包。如果遇到 bug 请在 GitHub 上反馈。请注意 Firefox 版的安装包不支持自动更新,你需要在后续正式发布后卸载此版本并重新安装正式版。Chrome 版无此问题。