V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
xmcp
V2EX  ›  分享创造

pakku:拯救 B 站弹幕体验!

  •  8
     
  •   xmcp ·
    xmcp · 2017-10-10 22:09:09 +08:00 · 9991 次点击
    这是一个创建于 2629 天前的主题,其中的信息可能已经有所发展或是发生改变。

    http://s.xmcp.ml/pakkujs

    https://github.com/xmcp/pakku.js

    ↑ 链接在这

    大概就是个 Chrome 扩展(也移植到了 Firefox 上),可以在 B 站视频的弹幕中,把里面内容相似的都合并到一起,对刷屏的遏制效果完胜弹幕屏蔽(而且不会误伤)。用过的人都说好:

    “ B 站观看水平提升一个档次”

    “终于找到这种插件了,太感谢 UP 主了!”

    “东西不错,应该对很多人会有用”

    ……

    其实今年三月的时候有人在 V2EX 上帮我安利过,最近我在 Chrome Web Store 后台上看到用户量有迷之下滑的趋势,所以我就再来宣传一波。

    当然,从三月份到现在,pakku 也是有大幅升级的,主要是:

    • 用了“给字符串的 2-Gram 算向量夹角”的奇技淫巧实现了效果拔群的相似内容识别能力(要想再改进,也许就得上机器学习了 23333 )
    • 加了一些花边功能,比如“当同屏弹幕突然特别多的时候减小字号”,总之我觉得很爽的功能都加进去了
    • 整合了 Bilibili 工具箱 的反查弹幕发送者功能

    求各位 dalao 下载安装、广而告之、五星好评、star watch follow 一波走啊~

    再放一边链接:

    http://s.xmcp.ml/pakkujs

    https://github.com/xmcp/pakku.js

    47 条回复    2017-10-17 16:16:35 +08:00
    misaka19000
        1
    misaka19000  
       2017-10-10 22:34:15 +08:00
    littleylv
        2
    littleylv  
       2017-10-10 22:35:29 +08:00
    感谢,已安装。


    @misaka19000 #1 github 和楼主 id 都是 xmcp 你说呢
    xmcp
        3
    xmcp  
    OP
       2017-10-10 22:37:02 +08:00
    @misaka19000 对的,感谢资磁~ 话说这个 logo 是我从 [RE:0 官网盗的图]( http://re-zero-anime.jp/character.html),并不是我画的(捂脸
    kslr
        4
    kslr  
       2017-10-10 23:16:52 +08:00 via Android
    Nice
    zhu921020
        5
    zhu921020  
       2017-10-10 23:26:33 +08:00
    同谢,已安装了
    takanasi
        6
    takanasi  
       2017-10-10 23:38:28 +08:00   ❤️ 3
    最佳方法,直接关掉弹幕
    whwq2012
        7
    whwq2012  
       2017-10-11 00:30:47 +08:00 via Android
    重复弹幕无所谓,烦人的某些小学生知识都没学完就在那里对角色指点江山,如果能做成云屏蔽低素质用户,那我会考虑用的。或者按用户等级屏蔽弹幕
    maemolee
        8
    maemolee  
       2017-10-11 01:11:19 +08:00
    能移植到 safari 上吗。不是 chrome 用户。
    terence4444
        9
    terence4444  
       2017-10-11 01:23:20 +08:00 via iPhone
    看到已经是 js 了 应该任意一只猴子都可以用了
    Love4Taylor
        10
    Love4Taylor  
       2017-10-11 07:50:31 +08:00
    资慈了
    cigarzh
        11
    cigarzh  
       2017-10-11 08:11:41 +08:00 via Android
    谁能维护一份云屏蔽用户列表就好了
    kindjeff
        12
    kindjeff  
       2017-10-11 08:25:43 +08:00
    A 站一直支持合并相同弹幕,B 站刷弹幕的这么多,官方还不出这个功能,不知道为啥。
    fy
        13
    fy  
       2017-10-11 09:37:25 +08:00
    可以可以 资瓷
    MartinWu
        14
    MartinWu  
       2017-10-11 10:25:30 +08:00
    牛逼啊作者,我很好奇呢,究竟是怎么识别那些高级弹幕的?
    fakeJas0n
        15
    fakeJas0n  
       2017-10-11 10:35:03 +08:00
    安装支持一下
    YzSama
        16
    YzSama  
       2017-10-11 11:07:38 +08:00
    如果有油猴的方式提供,我觉得更棒。毕竟我现在装了很多谷歌应用。
    7654
        17
    7654  
       2017-10-11 11:21:51 +08:00
    cnzz 统计为的什么?
    evlos
        18
    evlos  
       2017-10-11 12:04:54 +08:00
    功能好全啊,已感谢
    hei1000
        19
    hei1000  
       2017-10-11 13:52:23 +08:00
    支持支持
    Niphor
        20
    Niphor  
       2017-10-11 15:17:32 +08:00
    支持楼主 不过从不看弹幕...
    Tink
        21
    Tink  
       2017-10-11 15:22:07 +08:00
    能否做成油猴脚本
    BBCCBB
        22
    BBCCBB  
       2017-10-11 15:49:44 +08:00
    铁锅炖主播, 游艇刷起来,双击 666, 给你
    tinytin
        23
    tinytin  
       2017-10-11 15:51:42 +08:00
    赞一个!可惜很少在电脑上看 B 站
    ihainan
        24
    ihainan  
       2017-10-11 16:04:30 +08:00
    看了设置觉得楼主非常用心,支持!!
    zoujun3281
        25
    zoujun3281  
       2017-10-11 16:18:10 +08:00
    弄个 douyu 版本的啊
    luoyuhui
        26
    luoyuhui  
       2017-10-11 16:31:53 +08:00
    谢谢楼主,先收藏!
    cuebyte
        27
    cuebyte  
       2017-10-11 16:46:49 +08:00
    楼主申请个专利吧,免得被比利比利抄了去(斜眼笑
    xmcp
        28
    xmcp  
    OP
       2017-10-11 16:56:13 +08:00   ❤️ 1
    @maemolee @YzSama @Tink

    有一个油猴移植版,虽然不是我弄的: https://github.com/fanthos/pakku.user.js

    这个油猴版大概移植于 v5.0,所以一些花哨的功能会有些缺失,不过主要功能可以凑合用。
    (另外他还把选项页面去掉了,所以你看到脚本里一堆常数可能会懵逼一会 23333 )
    xmcp
        29
    xmcp  
    OP
       2017-10-11 16:59:29 +08:00
    @7654 主要是因为 Chrome Web Store 后台的用户数量统计得不准(其实 Firefox 更不准),每天都会上下飘好几百人(一共才 2k+个用户),而且数据会有一天的延迟,更何况在墙内的用户都统计不到。所以我就自己加了个 CNZZ 的统计代码。
    xmcp
        30
    xmcp  
    OP
       2017-10-11 17:04:12 +08:00
    @kindjeff @cuebyte
    http://link.acg.tv/forum.php?mod=redirect&goto=findpost&ptid=7365&pid=25717&fromuid=10119345
    https://zhuanlan.zhihu.com/p/25559657 (底下的“精选评论”第一条)

    B 站的一些人员表示过这个功能应该不会官方支持。
    不过为了防止他们直接抄我的代码,我从 3.0 开始就上了 GPL (笑)
    AsherG
        31
    AsherG  
       2017-10-11 17:05:13 +08:00 via iPhone
    听起来不错,先 Mark 一下
    Loafer
        32
    Loafer  
       2017-10-11 17:09:23 +08:00
    這樣屏蔽掉不就沒了彈幕的氣氛了嗎?

    我挺喜歡這個滿屏彈幕的氛圍誒。
    miss1123
        33
    miss1123  
       2017-10-11 17:09:34 +08:00
    感觉不错,有时候滚动弹幕屏蔽掉就一点感觉都没了
    xmcp
        34
    xmcp  
    OP
       2017-10-11 17:12:29 +08:00
    @MartinWu 对高级弹幕的处理在 core/core.js 里面的 `ext_special_danmu` 函数。

    简单来说,B 站的高级弹幕在 XML 文件里,分为 “一般的高级弹幕(应该是 Legacy Code )” 和 “ JSON 的高级弹幕” 两种。分别举例如下:

    <d p="3.2000000476837,7,25,10053222,1310171183,1,9bd49c01,837839828">炮姐是我一生的最爱,我会守护你直到永远!</d>

    <d p="193.14500427246,7,36,16711935,1406557037,0,81b42747,535255625">
    [0,0,"1-1",5,"炮姐是我一生的最爱,我会守护你直到永远!",0,0,110,420,1000,0,true,"楷体",1]
    </d>

    参数里面逗号分隔的第二个数字是弹幕模式,7 就是高级弹幕,里面的东西 JSON.parse 一下就行了(如果抛异常就说明是第一种格式)
    MartinWu
        35
    MartinWu  
       2017-10-11 17:51:38 +08:00
    @xmcp 原来如此。。。。我已经脑补着你的插件在分析重复弹幕的分布来区分了。。 谢谢回复。
    ytlm
        36
    ytlm  
       2017-10-11 18:08:26 +08:00
    看弹幕不爽或者有刷屏的不是应该直接关闭弹幕吗
    Thiece
        37
    Thiece  
       2017-10-11 18:47:51 +08:00
    @xmcp 关于正则部分,我几年前有一个类似的想法但是没有坚持下去的项目,可以提供给你参考,这些正则可以过滤一部分没有营养弹幕。https://github.com/Thiece/bilibili-safe/blob/master/tv.bilibili.player.xml
    xmcp
        38
    xmcp  
    OP
       2017-10-11 18:57:56 +08:00   ❤️ 1
    @Thiece 巧了,正则表达式屏蔽列表我也有一个,https://github.com/xmcp/bilibili-ban-list/blob/master/tv.bilibili.player.xml ,但弄了 pakku 就没怎么管了。

    因为我意识到屏蔽词是治标不治本的:真正的需求其实不是“我不想看内容为 xxx 的弹幕”,而是“我不想看一堆内容一样的弹幕”。因为前者顶多就是内容 ky 让人不爽,大量重复内容的刷屏才会对观影体验造成很大影响
    Thiece
        39
    Thiece  
       2017-10-11 19:58:13 +08:00
    @xmcp 对的,今天看到你的 pakku 之后意识到,这就是我想要的东西!
    sola97
        40
    sola97  
       2017-10-11 20:25:42 +08:00 via Android
    @xmcp 能不能查看那些不显示的弹幕?我把自己的正则列表加进去了,想知道到底屏蔽了哪些。然后像那些刷 前排,第一,第二,来了 之类的屏蔽规则,感觉可以内置
    rbe
        41
    rbe  
       2017-10-11 21:01:59 +08:00
    支持一下,用了很久了。
    用鼠标频繁点开关弹幕太麻烦了,确实是很好的插件啊,帮了很多忙~
    xmcp
        42
    xmcp  
    OP
       2017-10-11 21:07:45 +08:00
    @rbe 哈哈,感谢捧场。另外 https://github.com/jeayu/bilibili-quickdo 这个脚本挺不错的,用快捷键切换弹幕、全屏,调整播放速度什么的,非常轻松愉快。
    AshesFish
        43
    AshesFish  
       2017-10-12 10:44:27 +08:00
    真是一个好思路啊,我之前一直觉得提升弹幕质量只有一条路,就是根据用户等级确立分级制度来着。

    LZ 这个方法还真不错,对于个人来说实现起来方便多了
    Haiwx
        44
    Haiwx  
       2017-10-13 11:49:51 +08:00
    Firefox 用户感谢
    lazzzis
        45
    lazzzis  
       2017-10-14 03:50:05 +08:00
    表示一下支持,用了一个月了(可能更久?)。算是我的 chrome 必装扩展之一了,很大程度上改善了弹幕体验。
    rayray314
        46
    rayray314  
       2017-10-14 18:26:52 +08:00 via Android
    可以做一个斗鱼版?配个斗鱼 html5 插件
    rswl
        47
    rswl  
       2017-10-17 16:16:35 +08:00
    这个有用
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2788 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 12:02 · PVG 20:02 · LAX 04:02 · JFK 07:02
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.