ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

抖音直播数据采集不抓瞎:用DouyinBarrageGrab免费抓全弹幕、礼物与观众行为

抖音直播数据采集不抓瞎:用DouyinBarrageGrab免费抓全弹幕、礼物与观众行为 抖音直播数据采集不抓瞎用DouyinBarrageGrab免费抓全弹幕、礼物与观众行为【免费下载链接】DouyinBarrageGrab基于系统代理的抖音弹幕wss抓取程序能够获取所有数据来源包括chrome抖音直播伴侣等可进行进程过滤项目地址: https://gitcode.com/gh_mirrors/do/DouyinBarrageGrab想给抖音直播间做数据分析却连弹幕数据都拿不到别急着去逆向协议DouyinBarrageGrab这个开源工具就能把这件事变得很简单——它是一款基于系统代理的抖音弹幕 wss 抓取程序能同时捕获浏览器、抖音客户端、抖音直播伴侣等所有来源的弹幕、礼物、关注、进房等互动数据全程免费还能对接你自己的程序。事情还得从上个月说起。一场让我怀疑人生的直播分析需求朋友开了个带货直播间想复盘一场三小时的直播弹幕高峰出现在哪个时间点刷礼物的都是谁进来的人男女比例如何他找到我意思很明确——帮我把数据抓下来。我一开始想得挺天真F12 打开控制台找网络请求不就行了结果发现抖音的弹幕走的是加密的 wss 长连接数据还是 protobuf 二进制流根本没法直接读。自己逆向光是研究那个握手逻辑和加密参数就够我熬好几个通宵。就在我准备放弃的时候一个做直播运营的老哥甩给我一个开源项目链接说了句装上试试我之前跑过能出数据。于是就有了这篇文。它的原理其实就像小区门口的快递中转站先说结论DouyinBarrageGrab 干的事用一句话概括把电脑上所有通往抖音直播间的数据顺手抄一份副本再解析成能读懂的 JSON 推给你。怎么抄靠的是系统代理。你可以把系统代理想象成小区门口的快递中转站——以前你的浏览器、抖音客户端都是直接把数据送到抖音服务器装了它之后所有请求都得先经过这个中转站。中转站在放行之前顺便拆开包裹看一眼哦这是条弹幕那是条送礼记录复制一份存下来。数据该去哪还去哪完全不影响你正常看直播。那 HTTPS 加密怎么办不用担心程序第一次启动时会自动安装一个自签名证书相当于给中转站办了一张检查证加密流量也能看。至于抖音的弹幕本身就是靠 WebSocket 长连接实时推送的中转站转发的同时做一次解析把二进制的 protobuf 消息还原成人类能看懂的结构化数据。打开控制台你就能看到这样的实时输出上手只要四步五分钟跑通你不需要写任何代码下载发行版解压就能跑。流程就四步以管理员身份启动程序。这一步很关键因为程序要安装证书、接管系统代理普通权限会被拦住。程序挂在后台不要关打开浏览器进入任意抖音直播间。切回程序控制台看有没有彩色的消息滚动出来。有数据就说明已经通了接下来你想干嘛都行。注意一个顺序问题必须先启动监听程序再进入直播间。它只能捕获建立连接之后的弹幕流你先进了直播间再开程序等于错过前情提要什么都抓不到。跑通之后的样子大概是这样——左边是抖音直播间右边是弹幕监听窗口进场、点赞、送礼一条条往外冒不想接管全局代理用扩展给浏览器单独指路如果你不喜欢程序接管整个系统的代理设置也有更干净的办法用浏览器扩展只给浏览器单独指定代理地址。以 SwitchyOmega 为例整个过程三步搞定。先到扩展商店搜索并安装 SwitchyOmega然后新建一个情景模式类型选代理服务器名字随意比如就叫弹幕代理最后填上代理参数——程序默认的代理端口是8827地址填本机127.0.0.1记得别填成 8888 那个 WebSocket 推送端口那俩不是一回事保存后在直播页点一下应用代理数据照样哗哗地来。数据到手之后怎么变成你自己的东西真正让这个工具好用的是它内置了一个 WebSocket 推送服务默认监听ws://127.0.0.1:8888。这意味着你完全不用碰抓包那些脏活累活只要连上这个地址就能收到格式化好的 JSON 数据。每条消息都带一个Type字段对应不同的消息类型1 是普通弹幕、2 是点赞、3 是进直播间、4 是关注、5 是礼物、6 是直播间统计、7 是粉丝团、8 是分享、9 是下播。后面挂着一个Data字段装的是这条消息的详细内容。项目里附带了现成的对接示例想用哪种语言都行Python 示例Demos/Python/main.pyNode.js 示例Demos/NodeJS/main.js字段定义参考BarrageGrab/Modles/JsonEntity/BarrageMessages.cs拿 Python 来说核心逻辑其实就十几行import asyncio, json, websockets async def listen(): uri ws://127.0.0.1:8888 async with websockets.connect(uri, ping_intervalNone) 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(listen())连上之后你想做弹幕互动游戏、语音播报、礼物榜单、观众画像都是水到渠成的事了。进阶玩法这个工具比你想的能折腾用熟之后配置里还有不少开关值得挖掘。配置文件在程序根目录的WssBarrageService.exe.config改完重启生效。进程过滤processFilter默认已经覆盖了chrome、msedge、douyin、直播伴侣等进程你也可以按需增删只监听你想要的数据来源。消息过滤pushFilter控制推送给你的消息类型printFilter控制控制台打印的内容logFilter控制写日志的类型三者互不干扰想只收礼物消息就填个5。隐藏控制台hideConsoletrue可以后台静默运行适合挂机场景。弹幕文件日志barrageFileLogtrue会把弹幕按天落盘到logs/弹幕日志目录回看历史数据很方便。强制轮询模式如果直播间弹幕老断连把forcePolling设为true程序会改用 HTTP 轮询拉取稳定性好很多代价是响应速度稍慢。串口转发填comPort比如COM1:9600程序能把弹幕转成串口报文推给外部硬件有人拿它接语音播报器、接灯牌控制玩法相当野。启用后会自动生成过滤器模板scripts/comPortFilter.js报文格式可以自己改。局域网共享listenAnytrue时 WebSocket 监听在0.0.0.0同一局域网里其他机器也能来拉数据。踩坑总结帮你少走弯路这段时间用下来我也踩了几个坑替大家提前排雷权限和杀毒程序需要管理员身份运行杀毒软件或防火墙可能会拦它装证书、改代理被拦了第一反应先关掉杀软再试。端口冲突启动时报以一种访问权限不允许的方式访问套接字十有八九是 8888 或 8827 被占了去配置里换一个端口就行。断连问题优先用 Chrome 和 Edge个别浏览器比如 360容易出现连接一段时间后收不到弹幕的情况再不行就开轮询模式兜底。关掉程序后上不了网程序退出时没还原系统代理就会这样去系统设置里手动关掉代理即可也可以管理员运行仓库里的关闭代理.bat一键修复。只能抓看得到的弹幕被抖音服务器过滤掉的弹幕本来就到不了客户端这种数据谁来了也抓不到不是工具的问题。最后说一句直播数据这东西看着很高大上真上手了发现也就一层窗户纸。DouyinBarrageGrab 把最难的抓包、解密、协议解析全替你干了剩下的就是把数据接出去玩出你自己的花样。无论是做数据分析、互动游戏还是接第三方系统它都能当那块最省心的底座。我是亲测真香你呢【免费下载链接】DouyinBarrageGrab基于系统代理的抖音弹幕wss抓取程序能够获取所有数据来源包括chrome抖音直播伴侣等可进行进程过滤项目地址: https://gitcode.com/gh_mirrors/do/DouyinBarrageGrab创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表