我开发了个抖音直播弹幕采集工具
看直播时总想知道观众都在聊啥,于是用C#撸了个实时采集工具
🎯 为啥要做这个
作为一个经常看直播的程序员,我发现弹幕里其实藏着不少有价值的信息。有时候弹幕刷得太快,眼睛根本跟不上,更别说想要分析数据了。市面上的采集工具要么太复杂,要么功能太简单,于是我决定自己动手,用 .NET 8.0 和 WinForms 撸一个。
说实话,选择WinForms可能有人会觉得老土,但对于这种工具类的桌面应用,够用就行,没必要搞那些花里胡哨的。
🙏 站在巨人的肩膀上
我这个项目是受到了 @saermart/DouyinLiveWebFetcher 的启发。这个大佬用Python写了一个类似的工具,而且把抖音的协议分析得很透彻。
我主要是觉得:
- Python版本虽然功能强大,但对普通用户来说部署有点麻烦
- Windows用户用exe文件更方便
所以就借鉴了他的思路,用C#重新实现了一遍。特别是那个复杂的JavaScript签名算法,我直接"借用"了他们的 sign.js
文件,毕竟不要重复造轮子嘛 😄
特别感谢:
- @saermart - 原始Python版本的作者,协议分析做得很棒
- JavaScript签名算法 - 直接用了他们项目的
sign.js
文件
✨ 主要功能
🚀 技术选择
- .NET 8.0
- WebSocket
- JavaScript引擎
- SQLite
- WinForms
🎯 核心功能
📡 实时抓取 - 弹幕、礼物、点赞、进场,一个不漏
💾 本地存储 - SQLite保存,断网也不怕数据丢失
🔍 智能过滤 - 可以关注特定用户,看大佬们都在说啥
📊 数据导出
🎨 界面友好
🏗️ 项目结构
DouyinDanmu/
├── Models/ # 数据模型,就是那些实体类
├── Services/ # 核心业务逻辑
│ ├── DouyinLiveFetcher.cs # 主力干活的
│ ├── DatabaseService.cs # 数据库CRUD
│ ├── ProtobufParser.cs # 解析数据
│ └── SignatureGenerator.cs # 处理签名
├── UI/ # 界面代码
└── build-scripts/ # 一键打包脚本
📦 打包发布
写了几个bat脚本,一键打包四个版本:
@echo off
echo 🚀 开始打包...
REM 最小版本 - 给懂技术的人用
dotnet publish -c Release -r win-x64 --self-contained false -o "output\Minimal"
REM 单文件版本 - 给朋友分享最方便
dotnet publish -c Release -r win-x64 --self-contained true -p:PublishSingleFile=true -o "output\SingleFile"
REM 精简版本 - 日常使用推荐
dotnet publish -c Release -r win-x64 --self-contained true -p:PublishTrimmed=true -o "output\Trimmed"
REM 快速启动版本 - 追求极致性能
dotnet publish -c Release -r win-x64 --self-contained true -p:PublishReadyToRun=true -o "output\FastStart"
echo ✅ 打包完成!
各版本对比:
版本 | 大小 | 启动速度 | 适用场景 |
---|---|---|---|
最小版 | ~10MB | 一般 | 有.NET环境的开发者 |
单文件版 | ~100MB | 快 | 发给朋友最省事 |
精简版 | ~60MB | 快 | 日常使用推荐 |
快速启动版 | ~140MB | 最快 | 性能强迫症专用 |
🎮 使用方法
三步上手
-
下载运行
选个版本 → 解压 → 双击exe
-
连接直播间
输入直播间ID → 点连接 → 等几秒
-
开始使用
看弹幕 → 右键关注用户 → 导出数据
💡 欢迎围观和贡献
代码已经开源了,欢迎各位大佬:
- 发现bug:直接提Issue,我看到就修
- 功能建议:有好想法尽管说
- 代码贡献:欢迎PR,但请保持代码简洁
- 使用反馈:告诉我哪里做得不好
🎉 总结
这个项目从想法到实现花了我不少业余时间,但还是很有收获的:
- 技术方面:WebSocket、异步编程、性能优化都练手了
- 产品方面:学会了从用户角度思考问题
- 开源精神:代码分享出来大家一起改进
说白了就是解决了一个实际问题,顺便练了练手。如果你也对直播数据感兴趣,或者想学习C#实时数据处理,这个项目应该能给你一些参考。
项目地址:https://github.com/LiukerSun/DouyinDanmu
欢迎Star、Fork,有问题随时找我!
写代码不易,且写且珍惜 🤘
🏷️ 标签
#我的项目
#CSharp
#实时数据采集
#WebSocket
#开源项目
#直播技术
#桌面应用
评论区