LAPLACE Chat
固执己见的可用于 OBS 和主播控制台的哔哩哔哩直播弹幕机。其中 29.93% 的代码由 ChatGPT 编写
- 一个程序,两种模式,纯 web 实现。可用于 OBS 组件,也可用于读弹幕谢礼物。无需下载客户端,自动更新
- 基于 web 的特性可以实现很多客户实现起来很困难的功能:比如弹幕复制、弹幕搜索、数据导出、查成分
- 支持云端事件同步:该功能可在未打开弹幕机时持续监控直播间事件,并周期同步至本地,真正做到不错过任何礼物
- 超高性能,低 GPU 占用。测试通过 3 倍原神直播间弹幕量、运行数天不卡顿、无内存泄漏
- 支持弹幕联动:可将多个直播间的弹幕聚合显示在一个弹幕列表中
- 高可定制性,所有元素均提供语义化命名,方便设计师定制样式
OBS 模式用于直播间弹幕展示,也可用于任意支持网页源的直播推流软件(例如哔哩哔哩官方直播姬)
选择连接方式
选择弹幕的连接方式,具体区别请参考下方的「连接方式对比」
设置需要监控的直播间
在本页面下方将需要监控的直播间链接或房间号粘贴进来。如果您使用的是「开放平台(幻星)」的连接方式,请将「身份码」粘贴进来,您的「身份码」可在 哔哩哔哩幻星 首页的右下角找到
修改配置
如果对默认的样式和配置不满意,可在本页面修改相应的设置,右边会有测试数据的预览,也可以查看实时直播间预览
复制弹幕机链接
在修改完配置后,请点击页面最下方的复制链接,或者手动选择输入框中的链接进行复制
添加到 OBS
打开 OBS,在 OBS 中添加来源:浏览器。在弹出的窗口中将刚刚复制的 URL 粘贴进输入框。然后调整高宽,建议为 600 宽 800 高(可根据实际需求自行调整尺寸)。最后如果有自定义 CSS,将其粘贴至对应的输入框
每次在本配置页面修改设置之后,都需要手动在 OBS 中粘贴新的链接
控制台模式可用于主播读弹幕、读醒目留言(SuperChat)、以及谢礼物环节
前期准备:
- Google Chrome、Edge、或基于 Chromium 内核(建议内核版本大于等于 108)的浏览器,不推荐使用 Firefox
选择连接方式
选择弹幕的连接方式,具体区别请参考下方的「连接方式对比」
设置需要监控的直播间
在本页面下方将需要监控的直播间链接或房间号粘贴进来。如果您使用的是「开放平台(幻星)」的连接方式,请将「身份码」粘贴进来,您的「身份码」可在 哔哩哔哩幻星 首页的右下角找到
修改配置
如果对默认的配置不满意,可在本页面修改相应的设置
开始使用
点击页面最下方的「打开控制台」即可使用
![demo](/_next/image?url=%2Fdemo%2Fscene-switching.gif&w=828&q=75)
如果您的 OBS 中包含多个场景,例如一个浅色背景的场景,用于杂谈;一个深色背景的场景,用于游戏,那么通常的做法是在 OBS 中添加两个弹幕机源,一个设为浅色模式、一个深色。但这么做会有两个弊端:
- OBS 中相当于开了两个弹幕机,增加额外的资源占用,如果您有两个以上的场景,那么资源占用更多
- 在切换场景时,弹幕机的显示会不连贯、不够顺滑
因此,本项目引入一个新的特性,可以直接调用 OBS 浏览器源的 API,自动判断场景的类型,自动对弹幕机的颜色进行切换,具体使用方法为:
- 按上方的使用方法常规添加一个弹幕机,但是在「页面权限」一项中,将权限修改为「用户信息的读取权限(当前场景集合、转场)」
- 右键点击弹幕机源,选择「复制」
- 新建场景,或切换到其他场景中,在「来源」空白处右键,选择「粘贴(引用)」,此时两个场景中均会出现一个弹幕机,但是以类似指针的形式,都指向的同一个浏览器源
- 选定需要将弹幕机改为深色的场景,单击右键,然后重命名,在场景名称中添加
[dark]
字段。位置任意,推荐放在最后,例如全屏游戏 [dark]
- 之后切换场景时将自动根据您添加的标记,自动调整弹幕机的配色
与上方的自动切换「深色模式」功能类似,上述方法可以拓展到自定义场景中
- 保持刚才设置的浏览器源权限
- 选定需要自定义的场景,单击右键,然后重命名,在场景名称中添加
[scene:name]
字段。name
为要添加的场景名,建议使用纯英文,不要带空格等特殊字符,例如全屏游戏 [dark] [scene:gaming]
- 完成设置后,再次切换场景,该场景下的弹幕机则会自动应用上全局的 CSS 样式
.scene-gaming
,此时可根据此样式重新定义当前场景下所有属性 - 如果您你是样式作者,你可以在「样式」标签页中输入「OBS 场景」,用来模拟 OBS 中自定义场景的情况
自 2023-09-01 起,哔哩哔哩开始对匿名弹幕连接进行限制,匿名连接将无法获取弹幕中的用户名,会被官方打码处理。如果弹幕的用户名对您很重要,请在「进阶」标签页下选择浏览器扩展同步,或选择「开放平台(幻星)」的连接方式
功能 | 浏览器同步 | 匿名直连 | 开放平台(幻星) |
---|---|---|---|
获取用户 UID | 支持 | 不支持 | 2024-03 之后不支持 |
获取用户 Open ID | 不支持 | 不支持 | 支持 |
用户弹幕 | 支持 | 打码(明***) | 支持 |
显示用户头像 | 支持 | 部分事件支持 | 支持 |
显示用户头像框 | 支持 | 支持 | 不支持 |
显示粉丝勋章 | 支持 | 支持 | 部分,只显示当前主播 |
显示用户 UL 等级 | 支持 | 支持 | 不支持 |
显示荣耀等级 | 支持 | 支持 | 不支持 |
显示弹幕回复(@用户) | 支持 | 打码(@明***) | 不支持 |
高亮主播弹幕 | 支持 | 支持 | 2024-03 之后不支持 |
表情包弹幕 | 支持 | 支持 | 部分,不支持「b豆」 |
房管标记 | 支持 | 支持 | 不支持 |
排行榜标记(榜1/2/3) | 支持 | 支持 | 不支持 |
礼物事件 | 支持 | 支持 | 支持 |
大航海事件 | 支持 | 支持 | 支持 |
守护圣殿礼物事件 | 支持 | 支持 | 不支持 |
醒目留言事件 | 支持 | 支持 | 支持 |
醒目留言日文翻译 | 支持 | 支持 | 不支持 |
红包事件 | 支持 | 支持 | 不支持 |
天选时刻事件 | 支持 | 支持 | 不支持 |
用户进场事件 | 支持 | 打码(明***) | 不支持 |
禁言事件 | 支持 | 支持 | 不支持 |
全局禁言事件 | 支持 | 支持 | 不支持 |
直播间被警告事件 | 支持 | 支持 | 不支持 |
用户点赞 | 支持 | 支持 | 支持 |
用户关注 | 支持 | 支持 | 不支持 |
用户分享直播间 | 支持 | 支持 | 不支持 |
直播间标题变更 | 支持 | 支持 | 不支持 |
控制台实时高能榜 | 支持 | 支持 | 不支持 |
目前市面上的弹幕机主要分为两大类,一类基于 web 的 blivechat 及其衍生版本,通常作为 OBS 组件(widget)出现;一类基于 Unity 或其他语言实现的客户端版本,通常用于主播读弹幕。这两类都有相似的功能以及各自的优缺点,但为什么没有集成两种形式优点于一身的弹幕机呢?于是这个轮子就出现了
出于部署便捷性以及隐私考虑,本站目前架设在境外,如访问困难可尝试通过代理访问,或通过下方的合作节点尝试访问,目前已知的节点:
- chat.laplace.live - 美国 CDN
- chat.vrp.moe - 美国 Cloudflare CDN
- lchat.vupgo.com - 腾讯云 CDN,由「纸片人计划」赞助
- chat-dev.laplace.live - 新加坡机房 + CF CDN(开发节点)
对于绝大多数直播间,所呈现的弹幕通常都在一分钟以内,所以给每条弹幕增加时间戳的意义不大。如果想显示时间,请在直播间中展示独立的时钟,可使用 LAPLACE Clock 项目来实现
- OBS 模式下:是的。本项目在中、低端机器上都可以流畅运行,稳定 60 帧,并且没有任何内存泄漏问题,可稳定用于生产环境
- 控制台模式下:看情况。控制台因为包含更多功能,因此会优先保证流畅的前提下占用更多的资源,控制台需要对礼物做额外处理,因此礼物量越大,占用的资源也越多
以下是一场中、大型直播,运行时长 5 小时左右的实测数据:
- 测试机配置:i7-13900K,64 GB 内存
- 控制台模式的内存占用会在 300 MB 至 700 MB 徘徊。平均占用在 400 MB 左右,CPU 占用 3%-10% 浮动
- OBS 模式的内存占用会在 40 MB 至 200 MB 徘徊。平均占用在 100 MB 左右,CPU 占用 1%-3% 浮动
在某些特殊情况下,例如某场超大型直播中,单场弹幕数量达到百万或每分钟弹幕数超过 5,000 的情况下(目前没有真实遇到过,只在模拟实验中进行过测试,参考原神版本更新直播间弹幕量在每分钟 2,000 左右)。此时会达到浏览器 IndexedDB 数据库的性能瓶颈(该瓶颈通常与机器性能以及浏览器版本有关),控制台模式下的实时弹幕滚动速度会受限(IDB 写入性能下降),但不会影响右侧的 SC 和礼物部分。OBS 组件不受任何性能影响
因为本地的数据库会越来越大。每位主播的礼物量和需求都不相同,因此本站不会自动清除本地的礼物,如果您使用本站超过一定时间(例如一个月),本地可能存有大量礼物 ,这时候可以通过控制台右上角的「系统设置 - 删除旧事件/清空」来精简数据库。删除旧事件会清除超过 72 小时的礼物事件;清空则会直接删除所有本地的礼物事件
可以。您享有全部的主题/模版定价权,并且收益 100% 归您所有,本人不会参与任何基于本项目进行盈利的商业活动
- 本站无需登录、无需下载客户端、无需开会员、无需提供手机号、无需上传浏览器 WebGL 指纹、无需前台展示使用者 IP 属地、无需获取用户 IMEI 地址、也不需要提供支付方式、特定功能也不需要强制用户下载客户端、不会通过 WebRTC 来偷偷利用浏览器当 PCDN、更不需要摄像头扫脸认证以开通使用权限,即可免费的、无限制使用时长的自由使用。所有的选项均保存在浏览器本地,不会被上传至服务器或提供给第三方
- 因为本人的代码和测试写的太好了,生产环境也完全不会遇到未知的错误,因此本网站未使用任何 Sentry、BugSnag 等错误汇报服务,因此不会统计 IP 地址等 PII 信息
- 本网站未使用任何 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
- Tsuk1ko/bilibili-live-chat - 开源/免费
如果您有重要的直播活动,请务必选择一个 standby 方案可供随时切换
目前不开源,如果后续无法继续稳定维护,会考虑开源给社区
- 前端
- 框架:React、Next.js
- 数据库:IndexedDB (Dexie.js)
- 状态管理:Zustand
- UI 库:Mantine、Kladenets
- 后端
- 框架:Hono
- 数据库:PostgreSQL (Drizzle ORM)
- 运行时:Bun
- Serverless 平台:Vercel Edge Functions
- 同构弹幕库:bilibili-live-ws
- 浏览器扩展:laplace-login-sync
为什么不叫弹幕先生/弹幕先辈/弹幕君/弹幕鸡/大母鸡/大母基?
疑问、意见或建议可通过 Discord 反馈
载入日志…
基础元素控制
置顶礼物条
事件类型控制
事件条件切换
事件显示控制
浏览器同步登录
如果你既想要规避哔哩哔哩的匿名打码政策,又不想用阉割版的开放平台(幻星),那么您可以通过在浏览器中安装一个扩展程序来同步你浏览器中的登录状态,同步后弹幕机即可模拟登录状态进行登录
登录哔哩哔哩
确保将要安装扩展应用的浏览器中已登录哔哩哔哩
安装浏览器扩展应用
根据您的浏览器,选择下方的按钮安装 LAPLACE Login Sync 扩展应用
开启同步
安装好后,在浏览器扩展应用栏打开 LAPLACE Login Sync,点击「拷贝密钥」,然后点击「保存并同步」
配置弹幕机
打开弹幕机配置器(本页面),切换到「进阶」标签页,将密钥粘贴至上方的「同步密钥」中
检查是否工作正常
打开控制台或添加到 OBS 组件,查看弹幕事件是否正常显示
- 本功能会通过浏览器扩展将您本地的哔哩哔哩登录状态(cookies)加密并同步至云端服务器,同步的数据采用端到端 AES 加密,本站不会也无法解密您同步至云端的内容。本站会尽最大可能保障用户上传数据的安全,但无法保证不存在未知漏洞,如发现漏洞,本站会第一时间进行公示。但本站不会对因为漏洞或其他不可抗力造成的登录状态泄漏导致的任何经济损失进行赔偿。如果您不信任此功能,请勿使用
- 由于 Chromium 与 Firefox 的 cookie 格式并不一致,加上 OBS CEF 的限制,您无法通过 Firefox 浏览器进行同步
- 请勿将同步密钥分享给陌生人,如意外泄漏,请在浏览器扩展中重新生成密钥
如果您不信任本站的同步服务器。可采用自建服务器的方案。本站同步服务器基于 CookieCloud,您可以自行搭建同步服务器,并使用 CookieCloud 的官方浏览器扩展。具体方法如下
- 访问 CookieCloud 项目,根据项目的说明自行搭建 CookieCloud 服务器,请注意,您的 CookieCloud 服务器必须提供有效的 HTTPS 连接,并且可以通过公网正常访问
- 安装 CookieCloud 浏览器扩展程序
- 在 CookieCloud 浏览器扩展程序中,输入您自行搭建的服务器地址
- 生成用户 key 和端到端密码,同步时间选择 5 分钟;域名关键词输入
bilibili.com
;同步 Local Storage 选择否,其他选项不变 - 保存并点击「手动同步」
- 返回到本站配置器,以
用户 key
+@
+端到端密码
拼接的形式将其拼在一起,并粘贴到同步密钥一栏 - 在下方输入您自己的 CookieCloud 服务器地址
- 请注意,当您使用自行搭建的服务器时,所有服务器安全相关问题将全权由您自行负责。本站不会也无法提供任何技术支持
云端事件同步
直播中突发网络中断?开播后发现忘开弹幕机?该功能可在未打开弹幕机时持续监控直播间事件,并周期同步至本地,真正做到不错过任何礼物。云端事件同步只适用于控制台模式
- 云端事件可获取最近 72 小时(可配置)内的所有付费礼物事件
- 在控制台中会每 5 分钟自动与云端同步
此功能的配置需要具有一定的计算机基础,如果您是主播,请将此文档移交给社团/公会内相应的技术人员
前置条件
- 了解容器的基本原理
- 熟悉 Docker 的基本操作
- 熟悉 Linux 操作系统
本地服务器要求
- linux/amd64
- CPU:至少 0.5 核
- 内存:至少 128 MB,推荐 256 MB 或更多。内存需求根据监控直播间数量线性增长
- 服务器可长时间稳定与哔哩哔哩弹幕服务器建立连接,推荐日本、新加坡、或中国(域名需备案)节点的服务器
- PostgreSQL
Serverless 要求
- 目前测试通过 Koyeb/Vercel + Supabase/Neon/Render 的排列组合
安装方法
- 请访问下方链接查看如何通过容器进行安装:laplace-event-fetcher
- 设置公网访问:需要支持 HTTPS 访问,可通过 Traefik、Nginx、Caddy、或 Serverless 云服务进行配置
- 输入 API:配置好后,请在上方输入对应的 API 地址
TTS 语音播报
尚未开发
对特定事件进行语音播报
头像获取
本站已内置头像获取,会尽最大可能获取头像。默认会从弹幕事件中获取,如果失败则从本站内置 API 获取,如依然失败则返回默认头像,头像缓存 30 分钟
自定义头像 API 需直接返回头像图片链接,支持 301、302、307、308 跳转。请确保
<api_base>5440?size=54
可直接返回头像图片;请设置正确的 ETag
以优化缓存,API 需授权
的 CORS 访问本站内置的头像获取功能已相当稳定,通常情况下不需要进行配置
基础样式
高级 CSS 编辑器
载入编辑器模块…
请注意,此处仅提供预览,不会直接应用到 OBS,设计完后需要将上方样式复制到 OBS 的「自定义 CSS」中方可生效
设置向导
关于
Make the web fun again