侧边栏壁纸
博主头像
可乐呢o3o博主等级

少些比较,多些谦虚。

  • 累计撰写 53 篇文章
  • 累计创建 67 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

抖音直播弹幕实时采集工具

Evan
2025-05-30 / 0 评论 / 0 点赞 / 5 阅读 / 4606 字

我开发了个抖音直播弹幕采集工具

看直播时总想知道观众都在聊啥,于是用C#撸了个实时采集工具

🎯 为啥要做这个

作为一个经常看直播的程序员,我发现弹幕里其实藏着不少有价值的信息。有时候弹幕刷得太快,眼睛根本跟不上,更别说想要分析数据了。市面上的采集工具要么太复杂,要么功能太简单,于是我决定自己动手,用 .NET 8.0WinForms 撸一个。

说实话,选择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最快性能强迫症专用

🎮 使用方法

三步上手

  1. 下载运行

    选个版本 → 解压 → 双击exe
    
  2. 连接直播间

    输入直播间ID → 点连接 → 等几秒
    
  3. 开始使用

    看弹幕 → 右键关注用户 → 导出数据
    

💡 欢迎围观和贡献

代码已经开源了,欢迎各位大佬:

  1. 发现bug:直接提Issue,我看到就修
  2. 功能建议:有好想法尽管说
  3. 代码贡献:欢迎PR,但请保持代码简洁
  4. 使用反馈:告诉我哪里做得不好

🎉 总结

这个项目从想法到实现花了我不少业余时间,但还是很有收获的:

  • 技术方面:WebSocket、异步编程、性能优化都练手了
  • 产品方面:学会了从用户角度思考问题
  • 开源精神:代码分享出来大家一起改进

说白了就是解决了一个实际问题,顺便练了练手。如果你也对直播数据感兴趣,或者想学习C#实时数据处理,这个项目应该能给你一些参考。

项目地址https://github.com/LiukerSun/DouyinDanmu

欢迎Star、Fork,有问题随时找我!


写代码不易,且写且珍惜 🤘

🏷️ 标签

#我的项目 #CSharp #实时数据采集 #WebSocket #开源项目 #直播技术 #桌面应用

0

评论区