这回它绝对是拯救B站弹幕体验的Chrome扩展

这回它绝对是拯救B站弹幕体验的Chrome扩展

一键跳转到下载地址

(2017.9更新:我们现在支持 Firefox 了,Firefox 用户也点上面的链接下载吧)

三个月之前,我搞了一个 Chrome 扩展程序叫 pakku,可以把B站视频里刷屏的重复弹幕合并。当时我在知乎上说,这可能是拯救B站弹幕体验的Chrome扩展

当时的版本号还是 2.0,pakku 的功能还比较简陋,作用仅仅是把完全相同的弹幕合并到一起,对于错别字、标点符号不一样什么的情况完全没有处理。不过倒是广受好评就是了。

经过三个月的迭代,pakku的版本号已经迭代到了 <del>5.x</del> update: 7.x(像Chrome一样飙版本号就是爽呀23333),效果也获得了极大的提升。到现在,我有底气说,这绝对是拯救B站弹幕体验的Chrome扩展

恩,这里似乎应该来几张截图,让大家有一个感性的认识。

首先是对照组 ↓ (为什么这图老自己消失呀?知乎前端吃枣药丸)

看啊,满眼望去全是橙色。这么一来确实很令人感动,但我上B站的目的是看小姐姐跳舞,而不是看LLer传教的呀。不行不行,弹幕挡画面是不行的。

然后我们上 pakku v1.0,看看把相同弹幕都合并到一块的效果:


恩?你说毫无区别?你看到弹幕后面的那些 [x72]、[x6]、[x2] 了吗?这就是我们在努力地清洗刷屏弹幕。虽说效果还是非常差,因为这些奇迹橙弹幕并不是完全一样的(个别字眼有区别,所以没被识别到)。

然后经过 v2.0 没有什么卵用的更新之后,v3.0 正式加入了编辑距离的判断机制,可以识别内容相似的弹幕。v3.0 的效果如下:


我们已经能够透过125个奇迹橙弹幕看到果皇的美颜了,可喜可贺 可喜可贺。

然后又经过 v4.0 这个没什么卵用的更新之后,我们终于来到了现在的 v5.0 版本。经过 GitHub 上 紧张刺激的讨论,pakku 获得了“按词频向量合并”这个高级功能。

如果你懂点算法的话,我解释起来可能会方便一点:把两个字符串的 2-gram 拿出来,求频率向量的夹角,如果余弦在阈值以上就认为是相似的,合并掉。另外我还采用了特殊的卡常技巧,把原来实现得很奇怪的分块+BKTree 彻底扔掉了,改成了贪心的单调队列+暴力枚举,但由于优美的常数,速度并没有怎么减慢,但效果比原来不知好到哪里去了。

如果你看不懂上面那段话,你就记住 pakku v5.0 的效果超好就行了。上截图你们感受一下:


停,放大再放大,哈哈快看,每根毛都看得清清楚楚——(诶,好像放错音轨了)

对于 [中日歌词] Snow halation - μ&#x27;s (03.31/特效版) 这个视频,pakku v5.0 竟然能在弹幕池的 1000 条 弹幕中识别出 835 条 重复的弹幕,这个效果是非常可观的。(肉眼查了一下,基本没有完全不同的弹幕被误伤的情况)

在番剧区、动画区、鬼畜区的其他各种各样的视频中,v5.0 版的 pakku 都能非常有效地合并刷屏弹幕。

作为个人开发者,我做这么一个 Chrome 扩展程序并不是为了利益,你要是觉得 pakku 特别棒,把它安利给你的小伙伴们就是对我最大的支持。

不管你用的是 Chrome、Chromium、Firefox 还是某种 Chrome 内核的国产浏览器,点我把 pakku 添加到你的浏览器中 吧!

对于不求利益的个人开发者来说,你们都来下载安装、在 Chrome Web Store 给五星好评、给这个文章点赞、贴吧微博票圈转发一波走,就是对我的最大支持。

结尾点题:这绝对是拯救B站弹幕体验的Chrome扩展


=========================

顺便说一下 v6.0 的新操作,就是可以根据弹幕密度实时调整字号:

(↓同屏弹幕较少时字号正常)


(↓ 五秒钟之后弹幕突然密集,字号自动变小,缓解遮挡画面的情况)


(↓ 十秒钟之后刷屏结束,字号又回来了)


(↓ 如果你不喜欢字号变小,可以关掉这个功能,关掉之后的画风大概长这样)


每个弹幕的字号都会根据它周围弹幕的多少动态改变,具体来说,弹幕x的字号会被除以:

max(1,min(2,\sqrt{\sum_{|time_y-time_x|<3} \sqrt{length_y}} / \sqrt{70}))

(直观理解一下公式:如果弹幕x旁边的弹幕很少,那x的字号就不会变;如果超级多,会变为原来的50%;介于两者之间的情况,字号缩小的比例就会在1到2之间)

========================= FAQ的分割线

常见问题:

  • Q: 我记得B站有屏蔽重复弹幕的功能呀?
    A: 你一定是在说B站的安卓客户端。网页版真的是没有这个功能的。
  • Q: 它不工作呀?我看到的弹幕完全没有被合并呀?
    A: pakku 不支持B站的 Flash 播放器,切换到 HTML5 播放器就行了。如果还有问题,欢迎 在 GitHub 上反映,或者知乎私信我。另外,pakku 只会过滤打开视频前已经存在的弹幕,那些在观看过程中即时产生的弹幕,pakku 是无能为力的。
  • Q: 我用 Edge / Safari 看B站,你出个 Edge / Safari 版吧。
    A: 由于这两个浏览器的移植还有些难度,所以目前没有支持 Edge 和 Safari 的打算。不过你可以试试这个油猴脚本:github.com/fanthos/pakk(非官方)。
  • Q: 我用手机 / 平板 / UWP客户端看B站,你出个手机 / 平板 / UWP 版吧。
    A: 技术上做不到。
  • Q: 我不看B站,看A站 / N站 / 土豆网,你出个A站 / N站 / 土豆版吧。
    A: 哪凉快待哪去。
  • Q: 这么好的功能,B站官方怎么不支持?
    A: 有一个自称B站员工的人是这么说的:(反正就是不想支持咯)

我觉得 pakku 合并相同弹幕的方式比起B站官方“弹幕密度”选项有一个好处,就是 pakku 的做法只降低了弹幕数量,几乎没有降低弹幕的信息量。试想有100个“23333333”和一个精彩的吐槽,如果你只是把弹幕密度调低,你很可能就错过了精彩的吐槽。但把100个233合并到一起之后,你就不会错过吐槽了。

  • Q: 我根本不开弹幕 / 我在刷屏严重的地方会把弹幕关掉 / 我二周目才开弹幕 / 关掉弹幕不就好了?
    A: (如果你在评论里问类似的问题,请在结尾注明“我看完FAQ了”,否则直接删除) 我尊重你的选择,但我认为B站有些弹幕还是很有趣的,因为刷屏就直接把弹幕关掉就有点得不偿失了。pakku 起到的作用就是让你可以无视这些刷屏的部分,而不错过有意思的弹幕。
  • Q: 有好多明明不一样的弹幕都被你合并了,这不对。
    A: 误判是无法避免的,不过你可以在 pakku 的选项里调节屏蔽力度,找到一个平衡点。


  • Q: 弹幕刷屏多爽啊,我就是想被刷屏。
    A: 那你可以不用呀。ps. pakku 有一个设置,可以把一个 [xN] (N>10) 的弹幕的文字大小变成 lg(N)倍,可以满足各位的恶趣味(划掉:



最后再来一波传送门:pakku 安装地址 ,谢谢各位捧场。

编辑于 2017-10-25