上一主题 下一主题
ScriptCat,新一代的脚本管理器脚本站,与全世界分享你的用户脚本油猴脚本开发指南教程目录
返回列表 发新帖

B站弹幕统计开发踩坑

[复制链接]
  • TA的每日心情
    郁闷
    2026-1-24 02:09
  • 签到天数: 68 天

    [LV.6]常住居民II

    6

    主题

    14

    回帖

    73

    积分

    初级工程师

    积分
    73

    新人报道油中3周年

    发表于 前天 01:17 | 显示全部楼层 | 阅读模式

    本帖最后由 啦la啦 于 2026-4-16 11:03 编辑

    脚本B站弹幕统计 v3.0.0 开发踩坑

    原版 bilibili 视频弹幕统计|下载|查询发送者 是我第一次写油猴脚本,原本只是想写个看看谁发刷屏弹幕的小功能,结果越写越臃肿,成了一坨石山,于是下定决心重构项目。非常感谢脚本站的教程 🙏

    技术路线

    重构项目踩坑

    • 从原本ElementPlus转向NaiveUI,支持切换主题色

      切换主题色是次要的,主要是因为ElementPlus不支持Shadow DOMNaiveUI 使用Shadow DOM也有坑,但还能解决。Naive UI 还有个优势就是样式是js动态注入的,不需要引入css

    • 大幅提升打开面板速度
      • B站本身也有用Vue,必须隔离脚本。之前使用iframe,每次打开都要加载库,因此很慢
      • 现在使用@require加载库,油猴会缓存。

        有个我很久才弄明白的事情,脚本发布 GreasyFork 的话,对@require 的cdn有比较严格的限制。对于jsdelivr来说,npm源需要@具体版本号,github源需要@具体某次的commit的SHA

      • @require Vue的话,需要赋给window,不然naive-ui用不了。参考教程 Vue的引用
    • B站本身有很多奇奇怪怪的bug,需要@grant沙盒隔离脚本,ShadowDOM隔离样式。
      • 在沙盒环境echarts.wordcloud 画的奇慢无比,问ai说是因为油猴沙盒本质是对window的Proxy代理,词云绘制时需要大量频繁使用window方法,被Proxy拖慢了速度。因此echarts和wordcloud还是通过 \<script> 直接插入页面。
      • B站还会导致 html2canvas 截图卡很久,问ai问冒烟了都没解决,实在没招了。现在方案是先打开外部页面,在外部页面截图。(也试过使用html-to-image。问题是 html-to-image 截图时不同步滚动条,虚拟列表如果滚动了,还截最上面那就成空白了)
    • jsdelivr 国内访问不稳定,因此脚本猫版本使用 jsdmirror 。脚本猫好像不怎么检查 @require

    感谢

    • bilibili-API-collect 几乎收集了B站大部分的API,可惜就在今年被B站发律师函了,可以在github搜别人fork的
    • BiliBili 弹幕hash极速反查 反查hash的代码来自这
    • 感谢chatgpt、gemini的大力栽培,没有你们就没有我的脚本

    legend

  • TA的每日心情
    开心
    昨天 18:34
  • 签到天数: 1201 天

    [LV.10]以坛为家III

    107

    主题

    571

    回帖

    1167

    积分

    高级专家

    脚本猫首席体验官

    积分
    1167

    油中2周年生态建设者新人报道油中3周年挑战者 lv2喜迎中秋

    发表于 前天 12:42 | 显示全部楼层
    ggnb!
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2026-4-6 21:19
  • 签到天数: 226 天

    [LV.7]常住居民III

    317

    主题

    5227

    回帖

    4820

    积分

    管理员

    积分
    4820

    管理员荣誉开发者油中2周年生态建设者喜迎中秋油中3周年挑战者 lv2

    发表于 前天 14:16 | 显示全部楼层
    感谢分享!这个webpack插件确实没vite monkey好用,而且也没怎么维护
    上不慕古,下不肖俗。为疏为懒,不敢为狂。为拙为愚,不敢为恶。
    回复

    使用道具 举报

  • TA的每日心情
    郁闷
    2026-1-24 02:09
  • 签到天数: 68 天

    [LV.6]常住居民II

    6

    主题

    14

    回帖

    73

    积分

    初级工程师

    积分
    73

    新人报道油中3周年

    发表于 前天 23:09 | 显示全部楼层
    王一之 发表于 2026-4-15 14:16
    感谢分享!这个webpack插件确实没vite monkey好用,而且也没怎么维护

    太感谢大佬们的教程和工具了orz. webpack插件其实没啥问题,主要是vue项目用vite确实有优势
    回复

    使用道具 举报

    发表回复

    本版积分规则