抖音直播弹幕抓取免费方案:DouyinBarrageGrab数据采集全流程指南
【免费下载链接】DouyinBarrageGrab基于系统代理的抖音弹幕wss抓取程序,能够获取所有数据来源,包括chrome,抖音直播伴侣等,可进行进程过滤项目地址: https://gitcode.com/gh_mirrors/do/DouyinBarrageGrab
DouyinBarrageGrab 是一款基于系统代理的抖音弹幕抓取程序,能够同时监听浏览器、抖音客户端与直播伴侣三条数据链路,把弹幕、礼物、关注、进场等九类直播消息实时解析并对外推送。它免费开源、开箱即用,是搭建直播间数据分析与弹幕互动应用时的实用底座,也是目前绕开繁琐协议逆向、最快拿到实时消息流的方案之一。
直播数据采集,为什么这么麻烦?
想做直播间数据分析、弹幕互动游戏,或者语音播报,第一道坎就是数据从哪来。
人工盯屏显然不现实。直播间每分钟几十条弹幕,靠眼睛根本记不过来。市面上倒是有第三方数据平台,可要么收费不菲,要么延迟明显,而且很少提供可自由定制的原始消息流。
自己动手逆向抖音的弹幕协议?门槛更高。WebSocket 握手、加密字段、消息分帧,任何一环出错都前功尽弃,绝大多数人卡在这一步就放弃了。
其实可以换个思路:与其想尽办法拿到直播间的"内部"数据,不如在数据必经之路上"旁听"。DouyinBarrageGrab 走的就是这条路。
一个"旁听者",如何把弹幕请回家
DouyinBarrageGrab 的核心原理并不神秘——它在电脑上搭了一个本地代理服务器,把自己挂在系统网络链路的必经位置上。抖音页面、客户端与服务器之间的流量,都会先经过这层代理。
真正聪明的地方在于,它不去破解这些加密内容,而是只盯住握手之后建立起的 WebSocket 弹幕流。一旦弹幕消息从服务器发往客户端,代理就把它"复述"一遍,再整理成统一的 JSON 格式输出。整个过程中,直播播放不受影响,观看体验与平时别无二致。
简单来说:程序就像装在网络链路里的一支录音笔,直播照常进行,它只是把经过的弹幕流逐条记下来。
这种"旁听"方式还带来一个天然优势——对数据来源有很强的兼容性。凡是走系统代理的抖音弹幕流量,理论上都能被捕捉到,这也引出了项目最实用的能力:多来源覆盖。
一次部署,覆盖三类数据来源
不少同类工具只支持浏览器,DouyinBarrageGrab 则把采集范围拉得更开,主要覆盖三种来源:
- 浏览器进程:Chrome、Edge、QQ 浏览器、Firefox 等常见浏览器的直播间页面;
- 抖音客户端:Windows 桌面版抖音里看直播产生的弹幕;
- 抖音直播伴侣:主播端工具,连开播、下播这类伴侣事件也能捕捉。
三条链路加在一起,意味着无论是观众视角还是主播视角,弹幕数据都能被同一套程序收纳。配合processFilter进程过滤机制,你还可以告诉程序"只听谁的",把无关进程隔离开。
九类消息,直播间里发生的事它都能复述
能抓只是第一步,抓得全才是关键。程序支持九种消息类型,基本覆盖直播间里的全部互动动作:
| 类型编号 | 含义 | 典型字段 |
|---|---|---|
| 1 | 普通弹幕 | 文本内容、发送者昵称与性别 |
| 2 | 点赞消息 | 本次点赞数、累计总赞 |
| 3 | 进入直播间 | 用户信息、当前在线人数 |
| 4 | 关注消息 | 关注者信息 |
| 5 | 礼物消息 | 礼物名称、数量、抖币价值 |
| 6 | 直播间统计 | 在线人数、累计观看 |
| 7 | 粉丝团消息 | 加入/升级、粉丝团等级 |
| 8 | 直播间分享 | 分享到的目标平台 |
| 9 | 下播 | 直播结束事件 |
以礼物消息为例,推送的数据里不仅包含送了什么、送了几个,还带出礼物的抖币价值,做礼物收入统计时可以直接使用。
图:控制台里弹幕、点赞、礼物、进房等消息按类型配色滚动输出,直播间动态一目了然
每个类型的字段注释都写在源码的BarrageGrab/Modles/JsonEntity/BarrageMessages.cs里,对字段含义拿不准时,这是最权威的参考资料。
跑起来之前:先备好三样东西
动手前先确认环境,要求其实很低:
- 一台 Windows 电脑:项目基于 .NET 框架,主流 Windows 系统都能直接跑;
- 一个浏览器:Chrome 或 Edge 优先,兼容性最好;
- 管理员权限:首次启动需要安装自签名证书、注册系统代理,这一步绕不开。
获取源码执行以下命令即可:
git clone https://gitcode.com/gh_mirrors/do/DouyinBarrageGrab建议直接使用发行版,解压后无需安装额外运行库。发行版的配置文件在根目录下的WssBarrageService.exe.config,源码里对应的则是BarrageGrab/AppConfig.json。
三步启动,第一次看到弹幕滚动
启动流程很短,但先后顺序很关键,请按下面的顺序操作:
第 1 步:以管理员身份运行程序。首次启动会弹出安装自签名证书的提示,确认安装。证书的作用是让代理能"看见"HTTPS 流量,这是后续抓包的前提。
第 2 步:把程序挂在后台,再打开任意一个抖音直播间。顺序不能反——程序必须在进入直播间之前已经运行,因为它只能监听建立连接之后的弹幕流,中途开启是听不到此前内容的。
第 3 步:回到程序控制台观察输出。看到按颜色区分的弹幕、礼物、进房等消息持续滚动,说明采集已生效。控制台标题栏还会显示 WebSocket 推送地址(默认是ws/0.0.0.0:8888),这个地址对接自己的应用时会用到。
贴心提示:如果第 3 步没有任何输出,先别急着改配置,回头确认一下"程序是否在进直播间之前启动"——八成是顺序错了。
给浏览器指条路:SwitchyOmega 的配置方法
默认情况下程序会接管系统代理,浏览器无需任何设置。但如果关闭了系统代理开关,就需要手动给浏览器指定代理地址,用 SwitchyOmega 这类代理切换扩展最省事,以 Edge 为例:
第 1 步:安装扩展。打开扩展商店,搜索并安装 Proxy SwitchyOmega。
图:在扩展商店搜索 switchyomega,找到代理管理扩展并安装
第 2 步:新建"弹幕代理"情景模式。在"新建情景模式"弹窗里,名称随意填写,类型选择"代理服务器"。
图:选择"代理服务器"类型,创建专用于弹幕采集的情景模式
第 3 步:填入代理地址。代理服务器填127.0.0.1,端口填8827(程序默认的代理端口,注意别与 WebSocket 推送端口 8888 混淆),保存并应用选项。
图:代理地址填本地回环地址,端口为程序默认的 8827
第 4 步:进入直播间前,把扩展切换为"弹幕代理"模式。回到程序控制台,弹幕应该已经开始滚动了。
图:扩展已切换为弹幕代理,直播间与抓取控制台同步工作
进阶配置:让采集规则贴合你的场景
默认配置已经能跑通全流程,但真实使用中,每个人需要的数据都不一样。配置文件里提供了大量开关,下面挑几个高频项说明:
processFilter(进程过滤):用逗号分隔要监听的进程名,例如直播伴侣,douyin,chrome,msedge。只想听浏览器的弹幕,就把其他进程名删掉;pushFilter/printFilter/logFilter(类型过滤):分别控制"推送给外部应用"、"控制台打印"、"写入日志"的消息类型,留空表示不过滤,只要礼物和弹幕就填1,5;wsListenPort(推送端口):默认 8888,被占用时可修改;listenAny决定是监听本机还是局域网内所有 IP;forcePolling(轮询模式):默认走 WebSocket 实时流,若直播间连接不稳定、频繁断连,开启此开关改用轮询拉取,牺牲一点响应速度换取稳定,pollingInterval可调轮询间隔(默认 3000 毫秒,不建议低于 1000,容易触发风控);barrageFileLog(文件日志):开启后弹幕会落入logs/弹幕日志目录,方便事后回溯;hideConsole(隐藏控制台):让程序在后台静默运行时开启;comPort(串口转发):需要联动硬件设备时填写,格式如COM1:9600,开启后会自动生成过滤模板scripts/comPortFilter.js,可按需定制转发报文;liveCompanHookSwitch(免代理监听伴侣):关闭系统代理也能直接监听直播伴侣,适合代理与伴侣进程冲突的场景。
对应到配置文件,核心结构大致如下(此处以源码中的AppConfig.json为例):
{ "app": { "network": { "proxy": { "port": 8827, "enabled": true }, "websocket": { "listenPort": 8888, "listenAny": true } }, "filtering": { "processFilter": "直播伴侣,douyin,chrome,msedge", "webRoomIds": "" }, "barrage": { "printFilter": "", "pushFilter": "", "logFilter": "1,2,4,5,6,7,8", "polling": { "enabled": false, "interval": 3000 } } } }所有配置修改后都需要重启程序才生效。这一点记牢,排查问题时会少走很多弯路。
把数据接到自己的应用里
采集到的弹幕最终要服务于业务,而 DouyinBarrageGrab 的对外出口就是一个 WebSocket 服务。第三方程序只要连上ws://127.0.0.1:8888,就能实时收到结构化的 JSON 消息。
每条推送都带Type字段标记消息类型(对应前文的 1~9),Data字段存放具体内容。仓库里内置了两种语言的对接示例:
- Python 示例:
Demos/Python/main.py(依赖见Demos/Python/requirements.txt); - Node.js 示例:
Demos/NodeJS/main.js。
以 Python 为例,核心逻辑只有两步——连接 WebSocket、按Type分发处理:
import asyncio, json, websockets async def main(): async with websockets.connect("ws://127.0.0.1:8888") as ws: while True: msg = json.loads(await ws.recv()) if msg["Type"] == 5: # 礼物消息 data = json.loads(msg["Data"]) print(f"{data['User']['Nickname']} 送出 {data['GiftCount']} 个 {data['GiftName']}") asyncio.run(main())官方示例还附带性别统计、累计点赞统计、下播汇总这类逻辑,稍加改造就能当弹幕互动游戏的输入源,或者接到语音播报、大屏展示上。
另外,程序支持通过 WebSocket 下发控制指令(数据格式见BarrageGrab/Modles/JsonEntity/Command.cs),例如远程关闭、隐藏或显示控制台、启用或关闭系统代理,远程管理采集节点相当方便。
避坑指南:五类高频问题一次说清
结合老用户的反馈,问题大多集中在下面五类,提前看一眼能省不少时间。
1. 启动后一条弹幕都抓不到。按优先级排查:浏览器进程名是否在processFilter列表里 → 系统代理是否被安全软件拦截 → 是否管理员身份启动 → 是否在进直播间前启动程序 → 代理端口是否被占用。
2. 打开程序直接报错。最常见的是"以一种访问权限不允许的方式做了访问套接字的尝试",多半是 8888 端口被占用,换个端口即可。另外杀毒软件和 Windows 防火墙有时会拦截代理注册,必要时先关闭再试。
3. 弹幕跑一会儿就断。优先换 Chrome 或 Edge,部分国产浏览器兼容性欠佳;仍不稳定就开启forcePolling轮询模式,连接韧性会明显改善。
4. 程序退出后浏览器上不了网。程序运行时会占用系统代理,异常退出可能导致代理未还原。前往"设置 → 网络和 Internet → 代理"关掉"使用代理服务器",或者管理员运行项目根目录的关闭代理.bat一键恢复。
5. 直播伴侣的弹幕抓不到。确认C:\ProgramData\Microsoft\Windows\Start Menu\Programs\直播伴侣.lnk存在(程序靠它定位伴侣进程),必要时用liveCompanPath显式指定 exe 路径;若伴侣更新后程序失效,把伴侣安装目录下resources\app\index.js.bak还原回index.js,并关闭liveCompanHookSwitch等待版本更新。
写在最后:谁是它的理想用户
DouyinBarrageGrab 不是那种"装了就放一边"的工具,它的价值取决于你的使用场景:
- 想做直播间数据分析,它提供了现成的数据入口;
- 想开发弹幕互动游戏、语音播报,它把最难的协议解析环节替你完成了;
- 想对主播账号做轻量观察,多来源采集加进程过滤能帮你精准圈定数据范围。
还有一点需要说透:这套方案拿到的是"到达你客户端"的弹幕,被抖音服务器过滤掉的发言天然拿不到,这保证了采集行为本身是克制的。请把它用在学习研究与合理的个人分析上,不要用于骚扰、牟利或侵害他人权益。
一句话总结:当你需要一份免费、实时、可自由定制的抖音直播消息流时,DouyinBarrageGrab 是值得先试的方案。从 Clone 到跑通全流程,通常用不了半小时——现在就可以动手了。
【免费下载链接】DouyinBarrageGrab基于系统代理的抖音弹幕wss抓取程序,能够获取所有数据来源,包括chrome,抖音直播伴侣等,可进行进程过滤项目地址: https://gitcode.com/gh_mirrors/do/DouyinBarrageGrab
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考