一个基于 Python 开发的直播弹幕抓取工具,支持实时获取直播间弹幕、礼物、点赞、进场、关注等消息,并带有图形化界面,方便调试和展示。
✨ 功能特性
-
✅ 实时抓取直播间弹幕消息
-
✅ 支持礼物消息解析(含连击礼物处理)
-
✅ 点赞、进场、关注消息实时显示
-
✅ 直播间状态监控(开播/下播)
-
✅ 观众人数统计(实时+累计)
-
✅ 粉丝团消息解析
-
✅ 图形化界面(Tkinter),支持日志颜色分类
-
✅ 自动保存日志文件,按日期分类
-
✅ 支持断线重连机制
-
✅ 开箱即用,不用安装多余依赖
🛠 技术栈
-
语言: Python 3.7+
-
网络通信: WebSocket + HTTP
-
界面框架: Tkinter
-
协议解析: Protobuf(自定义
.proto
结构) -
JS 逆向: 使用
py_mini_racer
执行签名算法 -
异步处理:
asyncio
+ 多线程 -
数据压缩: Gzip
-
日志管理: 队列异步写入 + 文件存储
📦 核心依赖库
python
websocket-client # WebSocket 通信 requests # HTTP 请求 protobuf # Proto 消息解析 py_mini_racer # JS 执行环境(签名算法) asyncio # 异步消息处理 gzip # 数据解压缩 tkinter # 图形界面
🧠 实现亮点
1. WebSocket 实时通信
通过逆向直播间的 WebSocket 协议,建立长连接接收实时消息流,并处理心跳包、ACK 确认等机制。
2. Protobuf 消息解析
自定义 douyin.proto
结构,解析二进制消息流,提取弹幕、礼物、点赞等结构化信息。
3. 签名算法破解
使用 py_mini_racer
执行前端混淆后的 JavaScript 签名算法,生成 WebSocket 连接所需的 signature
参数。
4. 多线程 + 异步处理
主线程负责 UI,子线程处理网络 I/O,异步任务处理消息回调,保证界面不卡顿。
5. 礼物连击处理
针对连击礼物进行去重和计数处理,准确显示实际送出数量。
6. 日志系统
支持颜色分类显示 + 本地文件存储,便于后续分析和调试。
🚀 使用场景
-
直播数据分析(用户行为、互动热度)
-
弹幕互动游戏、抽奖插件开发
-
直播间自动化管理(欢迎语、关键词回复)
-
教学演示:网络协议逆向、实时数据处理
📸 界面预览
⚠️ 声明
本工具仅用于学习交流和技术研究,请勿用于商业用途或任何违反平台规则的行为。使用者需自行承担相关责任。
🌟 计划扩展功能设计
-
websocket、tcp连接后端,配合游戏实现整蛊
-
绿幕播放、键盘绑定等,一键配置绿幕触发
-
输出给外部硬件,配合硬件实现弹幕整蛊玩法
-
连接数据库保存直播弹幕、礼物、观看人数等信息
如果觉得对您有帮助欢迎三连!
如需定制功能请私信作者“弹幕功能定制”!