LAPLACE Chat
可用于 OBS 和主播控制台的哔哩哔哩直播弹幕机。其中 20% 的代码由 ChatGPT 编写
- 一个程序,两种模式,纯 web 实现。可用于 OBS 组件,也可用于读弹幕谢礼物。无需下载客户端,自动更新
- 基于 web 的特性可以实现很多客户实现起来很困难的功能:比如弹幕复制、自动识别 av/BV 链接、弹幕搜索、查成分
- 支持云端事件获取:该功能可在未打开弹幕机时持续监控直播间事件,并周期同步至本地,真正做到不错过任何礼物(默认只支持部分主播,未支持的直播间可由技术人员自行配置,配置方法请参考「开发者」标签)
- 超高性能,低 GPU 占用。测试通过 3 倍原神直播间弹幕量、运行数天不卡顿、无内存泄漏
- 支持弹幕联动:可将多个直播间的弹幕聚合显示在一个弹幕列表中
- 高可定制性,所有元素均提供语义化命名,方便设计师定制样式
OBS 模式用于直播间弹幕展示,也可用于任意支持网页源的直播推流软件(例如哔哩哔哩官方直播姬)
选择连接方式
选择弹幕的连接方式,具体区别请参考下方的「连接方式对比」
设置需要监控的直播间
在本页面下方将需要监控的直播间链接或房间号粘贴进来。如果您使用的是「开放平台(幻星)」的连接方式,请将「身份码」粘贴进来,您的「身份码」可在 哔哩哔哩幻星 首页的右下角找到
修改配置
如果对默认的样式和配置不满意,可在本页面修改相应的设置,右边会有测试数据的预览,也可以查看实时直播间预览
复制弹幕机链接
在修改完配置后,请点击页面最下方的复制链接,或者手动选择输入框中的链接进行复制
添加到 OBS
打开 OBS,在 OBS 中添加来源:浏览器。在弹出的窗口中将刚刚复制的 URL 粘贴进输入框。然后调整高宽,建议为 600 宽 800 高(可根据实际需求自行调整尺寸)。最后如果有自定义 CSS,将其粘贴至对应的输入框
每次在本配置页面修改设置之后,都需要手动在 OBS 中粘贴新的链接
控制台模式可用于主播读弹幕、读醒目留言(SuperChat)、以及谢礼物环节
前期准备:
- Google Chrome、Edge、或基于 Chromium 内核(建议内核版本大于等于 108)的浏览器,不推荐使用 Firefox
选择连接方式
选择弹幕的连接方式,具体区别请参考下方的「连接方式对比」
设置需要监控的直播间
在本页面下方将需要监控的直播间链接或房间号粘贴进来。如果您使用的是「开放平台(幻星)」的连接方式,请将「身份码」粘贴进来,您的「身份码」可在 哔哩哔哩幻星 首页的右下角找到
修改配置
如果对默认的配置不满意,可在本页面修改相应的设置
开始使用
点击页面最下方的「打开控制台」即可使用

如果您的 OBS 中包含多个场景,例如一个浅色背景的场景,用于杂谈;一个深色背景的场景,用于游戏,那么通常的做法是在 OBS 中添加两个弹幕机源,一个设为浅色模式、一个深色。但这么做会有两个弊端:
- OBS 中相当于开了两个弹幕机,增加额外的资源占用,如果您有两个以上的场景,那么资源占用更多
- 在切换场景时,弹幕机的显示会不连贯、不够顺滑
因此,本项目引入一个新的特性,可以直接调用 OBS 浏览器源的 API,自动判断场景的类型,自动对弹幕机的颜色进行切换,具体使用方法为:
- 按上方的使用方法常规添加一个弹幕机,但是在「页面权限」一项中,将权限修改为「用户信息的读取权限(当前场景集合、转场)」
- 右键点击弹幕机源,选择「复制」
- 新建场景,或切换到其他场景中,在「来源」空白处右键,选择「粘贴(引用)」,此时两个场景中均会出现一个弹幕机,但是以类似指针的形式,都指向的同一个浏览器源
- 选定需要将弹幕机改为深色的场景,单击右键,然后重命名,在场景名称中添加
[dark]
字段。位置任意,推荐放在最后,例如全屏游戏 [dark]
- 之后切换场景时将自动根据您添加的标记,自动调整弹幕机的配色
与上方的自动切换「深色模式」功能类似,上述方法可以拓展到自定义场景中
- 保持刚才设置的浏览器源权限
- 选定需要自定义的场景,单击右键,然后重命名,在场景名称中添加
[scene:name]
字段。name
为要添加的场景名,建议使用纯英文,不要带空格等特殊字符,例如全屏游戏 [dark] [scene:gaming]
- 完成设置后,再次切换场景,该场景下的弹幕机则会自动应用上全局的 CSS 样式
.scene-gaming
,此时可根据此样式重新定义当前场景下所有属性
自 2023-09-01 起,哔哩哔哩开始对匿名弹幕连接进行限制,匿名连接将无法获取弹幕中的用户名,会被官方打码处理。如果弹幕的用户名对您不重要,您可以继续选择「匿名直连」,然后在 OBS 中选择一款不显示用户名的模版样式(例如「简约气泡(复刻)」);如果用户名对您很重要,请选择官方的开放平台连接方式
功能 | 匿名直连 | 开放平台(幻星) |
---|---|---|
显示弹幕用户名 | 打码显示(明***) | 支持 |
显示用户头像 | 支持 | 支持 |
显示用户头像框 | 支持 | 不支持 |
显示粉丝勋章 | 支持,并显示其他主播的粉丝勋章 | 部分支持,只显示当前主播 |
显示用户 UL 等级 | 支持 | 不支持,无法基于 UL 屏蔽弹幕 |
显示荣耀等级 | 支持 | 不支持 |
显示弹幕回复(@用户) | 打码显示(@明***) | 不支持 |
高亮主播弹幕 | 支持 | 支持 |
房管标记 | 支持 | 不支持 |
当前排行榜标记(榜1/2/3) | 支持 | 不支持 |
礼物事件 | 支持,用户名正常显示 | 支持 |
上舰事件 | 支持,用户名正常显示 | 部分支持,无法获取舰长价格 |
守护圣殿礼物事件 | 支持,用户名正常显示 | 不支持 |
醒目留言事件 | 支持,用户名正常显示 | 支持 |
醒目留言日文翻译 | 支持 | 不支持 |
用户进场事件 | 打码显示(明*** 进入直播间) | 不支持 |
系统消息(禁言、直播间被警告、直播间切断) | 支持 | 不支持 |
互动事件(点赞、关注、分享) | 支持,用户名正常显示 | 部分支持,仅点赞 |
目前市面上的弹幕机主要分为两大类,一类基于 web 的 blivechat 及其衍生版本,通常作为 OBS 组件(widget)出现;一类基于 Unity 或其他语言实现的客户端版本,通常用于主播读弹幕。这两类都有相似的功能以及各自的优缺点,但为什么没有集成两种形式优点于一身的弹幕机呢?于是这个轮子就出现了
出于部署便捷性以及隐私考虑,本站目前架设在境外,如访问困难可尝试通过代理访问,或通过下方的合作节点尝试访问,目前已知的节点:
- chat.laplace.live - 美国 Vercel CDN
- chat.vrp.moe - 美国 Cloudflare CDN
- lchat.vupgo.com - 腾讯云 CDN,由「纸片人计划」赞助
- chat-dev.laplace.live - 新加坡 Linode + CF CDN
对于绝大多数直播间,所呈现的弹幕通常都在一分钟以内,所以给每条弹幕增加时间戳的意义不大。如果想显示时间,请在直播间中展示独立的时钟,可使用 LAPLACE Clock 项目来实现
- OBS 模式下:是的。本项目在中、低端机器上都可以流畅运行,稳定 60 帧,并且没有任何内存泄漏问题,可稳定用于生产环境
- 控制台模式下:看情况。控制台因为包含更多功能,因此会优先保证流畅的前提下占用更多的资源,控制台需要对礼物做额外处理,因此礼物量越大,占用的资源也越多
以下是一场中、大型直播,运行时长 5 小时左右的实测数据:
- 测试机配置:i7-13700K,64 GB 内存
- 控制台模式的内存占用会在 500 MB 至 2 GB 徘徊。平均占用在 1 GB 左右,CPU 占用 3%-10% 浮动
- OBS 模式的内存占用会在 40 MB 至 200 MB 徘徊。平均占用在 100 MB 左右,CPU 占用 1%-3% 浮动
在某些特殊情况下,例如某场超大型直播中,单场弹幕数量达到百万或每分钟弹幕数超过 5,000 的情况下(目前没有真实遇到过,只在模拟实验中进行过测试,参考原神版本更新直播间弹幕量在每分钟 2,000 左右)。此时会达到浏览器 IndexedDB 数据库的性能瓶颈(该瓶颈通常与机器性能以及浏览器版本有关),控制台模式下的实时弹幕滚动速度会受限(IDB 写入性能下降),但不会影响右侧的 SC 和礼物部分。OBS 组件不受任何性能影响
因为本地的数据库会越来越大。每位主播的礼物量和需求都不相同,因此本站不会自动清除本地的礼物,如果您使用本站超过一定时间(例如一个月),本地可能存有大量礼物 ,这时候可以通过控制台右上角的「系统设置 - 删除旧事件/清空」来精简数据库。删除旧事件会清除超过 72 小时的礼物事件;清空则会直接删除所有本地的礼物事件
可以。您享有全部的主题/模版定价权,并且收益 100% 归您所有,本人不会参与任何基于本项目进行盈利的商业活动
- 本站无需登录、无需下载客户端、无需开会员、无需提供手机号、无需上传浏览器指纹、也不需要提供支付方式、更不需要摄像头扫脸认证以开通使用权限,即可免费的、无限制使用时长的自由使用。所有的选项均保存在浏览器本地,不会被上传至服务器或提供给第三方
- 本网站未使用第三方统计例如 Google Analytics、Cloudflare Analytics 等统计工具,不会将访问数据提供给第三方
- 本站基于 Vercel、Cloudflare 等 serverless 平台搭建,由于上游并没有提供 SLA,因此本站也不承诺任何在线可用率
- 但根据本站历史的在线可用率来看,本站可提供大致 99.95% 的在线可用率,即停机时间不大于:
- 每年:4.38 小时
- 每季度:65.7 分钟
- 每月:21.92 分钟
- 每周:5.04 分钟
- 每天(24 小时):43.20 秒
- 您可以在本页面最上方查看当前服务器在线状态
- 因为本站维护、离线等无法访问的原因间接导致您直播产生的经济损失,本站不承担任何责任。具体请查看下方的「免责声明?」
本站完全免费使用,不会参与到任何相关的盈利活动中,包括但不限于:
- 售卖样式模板
- 有偿提供二次开发
- 有偿搭建云端事件服务端
- 协助他人黑进哔哩哔哩服务器
- 出售弹幕相关数据给第三方公司
- 盗取他人哔哩哔哩账号并提取直播收益
- 协助成年人进行未成年退款并按比例收取手续费
由于本站完全免费使用,我不会从你那获得任何好处,因此你也不会从我这获得任何技术支持以及可能受到的经济损失的赔偿:包括但不限于:
- 我用了你的弹幕机,但是直播间里有人发不和谐弹幕,导致直播间被封,我要你负责!
- 正确做法:找哔哩哔哩客服
- 我从某人那购买的你这个弹幕机样式,但是现在它突然不工作了,样式不对了,我要找你进行售后!
- 正确做法:找出售给你弹幕机样式的人
- 我正在进行非常关键的周年庆/生日回/联动,弹幕机突然刷不出来,导致直播间互动率变低/没有感谢老板的礼物,我要你赔我个总督!
- 正确做法:先使用其他备用方案
如果因为任何原因导致您无法正常使用本站,您可以尝试下列备选方案:
- xfgryujk/blivechat - 原版 blivechat,开源/免费
- DoodleBears/blivechat - DoodleBears 修改版,开源/免费
- 咩播 - 咩播直播插件,闭源/商业/freemium
- copyliu/bililive_dm - 开源/免费
- Tsuk1ko/bilibili-live-chat - 开源/免费
如果您有重要的直播活动,请务必选择一个 standby 方案可供随时切换
目前不开源,如果后续无法继续稳定维护,会考虑开源给社区
- 前端:TypeScript
- 框架:React、Next.js
- 数据库:IndexedDB (Dexie.js)
- 状态管理:Zustand
- UI 库:Mantine、Kladenets
- 后端:Node.js
- 框架:Fastify、Hono
- 数据库:PostgreSQL (Prisma)
- Serverless 平台:Vercel Edge Functions
- 同构弹幕库:bilibili-live-ws
- 访问统计:Umami
疑问、意见或建议可通过 s@laplace.live 反馈
载入日志…
基础元素控制
置顶礼物条
事件类型控制
事件条件切换
事件显示控制
TTS 语音播报
WIP
对特定事件进行语音播报
基础样式
高级 CSS 编辑器
载入编辑器模块…
请注意,此处仅提供预览,不会直接应用到 OBS,设计完后需要将上方样式复制到 OBS 的「自定义 CSS」中方可生效
云端事件获取
直播中突发网络中断?开播后发现忘开弹幕机?该功能可在上述情形中帮助您持续监控直播间事件,并周期同步至本地。云端事件获取只适用于控制台模式
- 云端事件可获取最近 72 小时(3 天)内的所有付费礼物事件
- 在控制台中会每 5 分钟自动与云端同步
此功能的配置需要具有一定的计算机基础,如果您是主播,请将此文档移交给社团/公会内相应的技术人员
前置条件
- 了解容器的基本原理
- 熟悉 Docker 的基本操作
- 熟悉 Linux 操作系统
本地服务器要求
- linux/amd64
- CPU:至少 0.5 核
- 内存:至少 128 MB,推荐 256 MB 或更多。内存需求根据监控直播间数量线性增长
- 服务器可长时间稳定与哔哩哔哩弹幕服务器建立连接,推荐日本、新加坡、或中国(域名需备案)节点的服务器
- PostgreSQL
Serverless 要求
- 目前测试通过 Koyeb + Supabase/Neon 组合
安装方法
- 安装容器:请访问下方链接查看如何安装容器,在运行容器时传入
ROOMS
来监控指定直播间,多个直播间用半角逗号分隔,详细安装方法请查看:laplace-event-fetcher at Docker Hub - 设置公网访问:需要支持 HTTPS 访问,可通过 Traefik、Nginx、Caddy、或 Serverless 云服务进行配置
- 输入 API:配置好后,请在上方输入对应的 API 地址
头像获取
本站已内置头像获取,会尽最大可能获取头像。默认会从弹幕事件中获取,如果失败则从本站内置 API 获取,如依然失败则返回默认头像,头像缓存 30 分钟
自定义头像 API 需直接返回头像图片链接,支持 302、301 跳转。请确保
<api_base>5440?size=54
可直接返回头像图片;请设置正确的 ETag
以优化缓存,API 需授权
的 CORS 访问本站内置的头像获取功能已相当稳定,通常情况下不需要进行配置
设置向导
关于
Make the web fun again