服务在线 · 等待启动监控

B站直播
实时弹幕看板

直连 B 站弹幕网关,实时采集弹幕与互动事件,聚合六大指标, 以清爽的浅色卡片看板实时呈现——一套代码,桌面端与服务器端通用。

◆FastAPI ◆WebSocket ◆ECharts ◆SQLite ◆jieba 热词 ◆Docker
当前监控房间
-
ROOM ID
在线人气
-
LIVE POPULARITY · 30秒刷新
弹幕速率
-
DANMAKU / MIN
近60分钟人气曲线
SPARKLINE

六大实时指标

弹幕协议解析 → 事件归一化 → 内存聚合 → 每 5 秒推送到看板

💬

实时弹幕流

WebSocket 直连 B 站弹幕服务器,断线自动重连、丢包计数;昵称按账号着色生成首字头像,礼物 / SC / 舰长流水单独成列。

op=2/5/7/8 协议
📈

在线人气趋势

每 30 秒轮询官方接口获取真实在线人数(心跳值已废弃),保留 60 分钟曲线,过万自动以「万」显示。

近60分钟
🍩

事件构成

弹幕 / 进场 / 礼物 / SC / 舰长 / 观看实时计数,环形图呈现近 5 分钟事件结构。

近5分钟
🏆

活跃观众 Top10

近 5 分钟发言榜,识别直播间核心互动用户。

发言榜
🎁

礼物流水

礼物(含 V2 通道)、醒目留言、舰长开通实时落库,按时间倒序呈现。

SEND_GIFT / SC / GUARD
🔥

热词 Top20

jieba 分词 + 停用词过滤,近 5 分钟弹幕热词实时排行。

jieba 分词

系统架构

采集 → 归一化 → 存储 → 聚合 → 推送,单进程即可承载

📡
B站弹幕网关
wss · zlib/brotli
→
🛰️
采集客户端
鉴权 · 心跳 · 断线重连
→
🧩
事件归一化
DANMU / GIFT / INTERACT…
→
🗄️
SQLite 落库
全量事件持久化
→
📊
内存聚合 Hub
人气序列 · 热词 · Top榜
→
🖥️
看板
WS 实时推送 · ECharts

技术栈与部署

一套代码,两种形态

技术要点

  • ▍协议层 16字节大端包头,op2心跳 / op7鉴权 / op5业务事件,zlib、brotli 递归解包
  • ▍服务层 FastAPI + WebSocket 广播,监控生命周期可动态启停、切换房间
  • ▍数据层 SQLite 全量落库 + 内存环形聚合(人气 120 点 / 热词 / Top10)
  • ▍展示层 ECharts 浅色主题,玫红卡片化 UI,数据每 5 秒一推
  • ▍双形态 桌面端 pywebview 单 exe;服务器端 Docker / uvicorn 部署,支持子路径反代共存

服务器一键启动

# 方式一:Docker Compose
docker compose up -d --build

# 方式二:直接运行(可选配账号凭证)
BILI_SESSDATA=你的凭证 python web_server.py --room 5050

# 环境变量:BILI_ROOM / BILI_SESSDATA / BILI_HOST / BILI_PORT / BILI_DB

凭证(SESSDATA)仅由服务端持有,前端与 API 均拿不到明文;数据持久化在 ./data/。

实时效果,眼见为实

进入看板,输入任意直播间号即可开始监控

进入实时看板 →