DouyinBarrageGrab
基于系统代理的抖音弹幕wss抓取程序,能够获取所有数据来源,包括chrome,抖音直播伴侣等,可进行进程过滤
Install / Use
/learn @ape-byte/DouyinBarrageGrabREADME
📺 抖音弹幕监听器
<p style="text-align:center">- 小白不圆 -</p>🔉前文提要
- Github(受网络影响,更新很可能不及时)大佬请移步 Gitee ,参与Issues讨论,QQ技术讨论群:<br>
- 群1: 819927029
- 群2: 789875441
- 注: (进群前请先⭐Star,并填入答案,用于排除行外人员,特殊原因请私聊我),之前因满员踢掉的群员可申请群2。
- 发行版下载地址在这里,别下成源码包了!!,决定下载使用前请先仔细阅读文档,不要进群提问已经介绍到的问题
- 💭 需要抖音日常操作协议化,包括多直播间超长稳定连接、自动私信(支持群组,单发,支持多账号切换),私信监听、自动关注、粉丝群、作品点赞评论及监听、直播间发弹幕、获取直播间榜单、直播间更多消息事件、作品评论(支持图片)、发布作品 等功能的可以找我(Q1083092844)提供一些技术支持 (注:主要面向个人直播自动化,不面向恶意j流、水jun等,不支持匿名直播间,想搞他人直播间匿名采集的勿扰,加群也不会有人支持)
- 支持接单、定制等,dy相关优先,其他方面也可以找我帮忙转发定制
- 如果好用,请<a href="#user-content-支持一下">捐赠</a>个仨瓜俩枣,白某谢过各位老板
⛳近期更新
2025-04-15 v2.7.9(beta)
- 大幅优化了程序的体积大小
- 默认移除了Script目录,以及其他不必要的文件,但如果开启了串口推送开关,则会自动生成过滤器模板文件
- 添加了应用图标
2025-04-09 v2.7.8
- 修复页面无操作检测拦截失效的问题,因为更新了脚本
- 修复弹幕日志因主播昵称的特殊字符导致无法写入的问题
2025-02-11 v2.7.7
- 添加
Appid字段(疑似用户看直播的APP标识) 和EnterTipType字段(用于获知用户进入直播间的方式,已知0为普通进入,6为通过分享进入) - User字段新增
IsAdmin和IsAnchor字段,用于区分是否为管理员或者主播的消息 - web在中途监听弹幕,且直播间弹幕链接已降级为轮询的情况下,解决
webroomid以及房间信息丢失问题 - 修复直播伴侣更新后,无法定位到exe位置的问题
- 优化部分其他已知问题
2024-09-28 v2.7.6(beta)
- [重要更新] 支持免系统代理监听直播伴侣,需要在配置文件关闭
useproxy选项以及打开liveCompanHookSwitch选项,配置后监听web直播间可参考<a href="#user-content-实践指南">实践指南</a>新部分 - 修复了 挂机检测Js拦截逻辑
- 默认关闭 禁用JS文件缓存 配置项,提高网页加载速度
- 礼物计数相关代码有一小处调整
- 整合了dll为单个exe文件
2024-05-16 v2.7.5
- [重要修复] 修复了弹幕轮询响应解析Payload读取报错的问题
- 修复了在记录弹幕日志房间实例存在空引用导致弹幕丢失的问题
- 修复了窗体初始化因控件可能导致的句柄出错的问题
- 修复在使用窗体的情况下,因跨线程调用抛出异常导致的弹幕断连问题
🖼️控制台截图
😎介绍及配置
介绍
- 基于系统代理抓包打造的抖音弹幕服务推送程序,它能够获取电脑上所有抖音弹幕来源数据,主要包括三种来源:浏览器进程 ,抖音客户端,抖音直播伴侣。它可以监听弹幕,点赞,关注,送礼,进入直播间,直播间统计,粉丝团系列消息,你可使用它做自己的直播间数据分析,以及弹幕互动游戏,语音播报等。
- 程序含WebSocket服务,若需要对接自己的应用,或者扩展功能,可以进行接入
<a id="tag1">配置文件</a>
- 程序中有基本的配置可以过滤弹幕进程,弹幕数据通过Websocket服务推送,其他程序只需接入ws服务器就能接收到到弹幕数据消息
- 若下载发行版,则该配置文件在根目录下的 WssBarrageService.exe.config 可自主配置,配置后需要重新启动程序
<!--配置更改后重启才能生效-->
<appSettings>
<!--过滤Websocket数据源进程,可用','进行分隔,程序将会监听以下进程的弹幕信息-->
<add key="processFilter" value="直播伴侣,douyin,chrome,msedge,QQBrowser,360se,firefox,2345explorer,iexplore" />
<!--Websocket监听端口-->
<add key="wsListenPort" value="8888" />
<!--true:监听在0.0.0.0,接受任意Ip连接,false:监听在127.0.0.1,仅接受本机连接-->
<add key="listenAny" value="true" />
<!--系统代理端口-->
<add key="proxyPort" value="8827" />
<!--是否启用系统代理,若设置为false 则需要在程序手动指定代理地址 -->
<add key="sysProxy" value="true" />
<!--上游代理地址,例如开启了系统代理,但是需要将其他无关请求转发到VPN工具中,例如:127.0.0.1:11223,不要带http://-->
<add key="upstreamProxy" value="" />
<!--在控制台输出弹幕-->
<add key="printBarrage" value="true" />
<!--要在控制台打印的弹幕类型,多个使用','分隔,(空代表不过滤) 1[普通弹幕],2[点赞消息],3[进入直播间],4[关注消息],5[礼物消息],6[统计消息],7[粉丝团消息],8[直播间分享],9[下播]-->
<add key="printFilter" value="" />
<!--要推送的弹幕消息类型,多个使用','分隔,同上-->
<add key="pushFilter" value="" />
<!--要日志记录的弹幕消息类型,多个使用','分隔,同上-->
<add key="logFilter" value="1,2,4,5,6,7,8" />
<!--要进行过滤的Web房间ID,多个使用','分隔,根据缓存来过滤的,直播伴侣不支持 -->
<add key="webRoomIds" value="" />
<!--开启内置的域名过滤,设置为false会解包所有https请求,cpu占用很高,建议在无法获取弹幕数据时调整 -->
<add key="filterHostName" value="true" />
<!--已知的弹幕域名列表 ','分隔 用作过滤规则中,凡是webcast开头的域名程序都会自动列入白名单-->
<add key="hostNameFilter" value="" />
<!--隐藏控制台-->
<add key="hideConsole" value="false" />
<!--弹幕文件日志-->
<add key="barrageFileLog" value="false" />
<!--显示窗体-->
<add key="showWindow" value="false" />
<!--进入直播间自动暂停播放-->
<add key="autoPause" value="true" />
<!--强制启用轮询模式获取弹幕 (对于容易断开连接或者更加追求稳定的直播间,可以启用这个开关,虽然响应速度不如WebSocket,但是绝对稳定!)-->
<add key="forcePolling" value="false" />
<!--弹幕轮询间隔,当 forcePolling 为 true 时生效 (毫秒,1000毫秒=1秒,不建议小于1000毫秒,太小可能会被封IP,值越小,弹幕流越丝滑,对于观众多的直播间可以改小)-->
<add key="pollingInterval" value="3000" />
<!--禁用直播页浏览器脚本缓存 (如果需要确保脚本每次能够正常匹配替换,则启用它,可能会损失一定的页面加载速度)-->
<add key="disableLivePageScriptCache" value="false" />
<!-- 指定要发送的COM串口 格式:'COM1:9600' 代表用COM1发送,波特率9600,若不需要使用串口抄送服务请留空,(启用后程序会自动生成过滤器模板文件到 scripts/comPortFilter.js) -->
<add key="comPort" value="" />
<!--直播伴侣exe文件位置(除非程序找不到,否则请留空)-->
<add key="liveCompanPath" value="" />
<!--直播伴侣进程代理开关-->
<add key="liveCompanHookSwitch" value="false" />
</appSettings>
使用方法
-
管理员身份启动本程序,第一次启动会提示安装自签名证书,程序启动后挂在后台不要关,程序无法中途监听已经建立连接的弹幕流
-
打开浏览器进入任何直播间,然后观察程序控制台中是否有弹幕滚动
-
如果有请往下看,否则请参考诊断排查
-
启动后程序控制台标题会显示 ws连接地址,如果需要对接自己的应用程序,请先了解 WebSocket ,然后使用自己的程序进行对接,可前往在线测试网站进行连接测试
-
对于字段不理解,请参考 实体类源码文件 的注释,或者加群询问
<a id="user-content-串口转发"></a>
🔌 串口转发</i>
- 配置串口:见<a href="#tag1">配置文件</a>
comPort,配置发送串口以及波特率,不填则不启用 - 串口报文自定义:配置串口后,程序会自动生成配置模板文件
scripts/comPortFilter.js, 可根据自己的需求配置转发报文,提供了一定的Bit转换函数,详见其注释
👨⚕️ 诊断排查
-
启动后无法获取,排查清单
- 先判断自己的浏览器进程名称是否在<a href="#tag1">配置文件</a>列表中
- 程序启动后,检查系统代理有无正常打开,有可能修改注册表被其他杀毒软件拦截
- 检查程序是否以管理员身份启动
- 注意程序启动先后顺序(很重要),必须保证在进入直播间之前监听程序已在运行
- 检查代理端口是否与其他端口冲突,可尝试修改
-
打开报错,排查清单
-
通用处理方法:
- 关闭杀毒软件,杀毒软件可能会阻止注册系统代理,访问端口号
- 关闭Windows网络防火墙(设置-搜索) ,可能会阻止访问端口号
-
以一种访问权限不允许的方式做了一个访问套接字的尝试
- 可能是端口被占用了,请尝试前往<a href="#tag1">配置文件</a>将8888端口号修改为别的号码(1000~65535)
- 关杀毒
-
尝试执行未经授权的操作
- 关杀毒
-
-
弹幕断连
-
如果浏览器总是连接一段时间后,就在在控制台看不到弹幕了,优先使用Chrome 和 Edge 浏览器,其他浏览器(例如360浏览器) 可能会存在该问题
-
尝试打开配置文件
forcePolling选项,情况获取会有所改善 -
其他可能是网络原因,或者直播间断连导致,正在想办法优化解决中。。。需要长时间连接可以找我使用其他方式,支持直连和轮询获取方式
-
-
程序关闭后无法上网
- 这是因为本程序运行时会占用系统代理,不正确的关闭方式可能会导致系统代理未能正确关闭,请前往找到 系统设置-网络和Internet-代理-使用代理服务器 并关闭它即可,也可管理员运行关闭代理.bat
-
未开系统代理,但是无法监听到直播伴侣弹幕
- 之前可以突然不行,且刚刚升级直播伴侣,请重监听启程序和直播伴侣再次尝试
- 如果一次都没成功,则需要检查启动菜单是否有直播伴侣的快捷方式,换言之则必须确保
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\直播伴侣.lnk文件存在,否则请前往配置文件显式指定直播伴侣.exe文件存储路径,见配置项liveCompanPath
-
直播伴侣打开显示文件损坏等字样
- 这可能是因为直播伴侣更新后脚本内容有所变更,从而导致程序检测拦截失效导致的,请前往
(exe所在位置)\resources\app将index.js.bak文件内容还原到index.js中,并关闭配置文件中的liveCompanHookSwitch选项,并上报问题后等待更新
- 这可能是因为直播伴侣更新后脚本内容有所变更,从而导致程序检测拦截失效导致的,请前往
<a id="user-content-实践指南"></a>
🎲 实践指南
日常使用
- 隐藏控制台:见配置文件
hideConsole<br><br> - 远程控制程序:例如远程关闭,隐藏/显示控制台,启用/关闭系统代理,可发送Json数据包
{"Cmd":xx,"Data":xx}到ws推送地址,数据格式详见: Command.cs<br><br> - 启用弹幕文件日志:见配置文件
barrageFileLog,启用后,抓到弹幕会记录在根目录 logs/弹幕日志 文件夹中,支持类型过滤,见logFilter配置项<br><br> - UI界面: 见配置文件
showWindow(做的仓促,功能简陋)<br><br> - 上游代理:一般用于自己有 代理工具/代理服务器,希望在使用本程序时访问外网不受到影响,见配置文件项
upstreamProxy将它改为你代理工具的代理地址<br><br> - 局域代理: (请优先参考下文 浏览器代理切换扩展) 可创建一个浏览器快捷方式,打开属性,并在exe文件路径后附加启动参数,
--proxy-server=127.0.0.1:8827,例如:"C:\\xxx\chrome.exe" --proxy-server=127.0.0.1:8827<br><br> - 直播间区分: 推送包含
Onwer字段,用户描述主播基本信息,客户端可以优先使用其中的SecUid或者Uid作为直播间标识,若使用WebRoomid则需要注意直播伴侣进程需要特殊处理,因为直播伴侣推送的WebRoomid是用户的抖音号。RoomId只能作为场次标识,每次开播都会不一样,不可用作直播间唯一区分<br><br> - 直播间地址: 冷知识,使用
https://live.douyin.com/<抖音号>也可以进入主播直播间
浏览器代理切换扩展
若关闭了usedProxy开关,浏览器需要通过显示指定代理地址完成代理指向操作,此时可以通过浏览器扩展很好的完成这项功能,以Edge为例
-
前往扩展商店 搜索
switchyomega安装 -
添加弹幕代理
<img src="./imgs/proxy2.png" alt="pA1SCOs.png" style="zoom:50%;" />
-
配置代理地址,并保存,不要配置为ws服务端口地址,程序默认代理端口是8827
-
进入直播页,应用代理,完成!
-
Chrome 用户请自行百度搜索扩展安装方法
⚠️特别注意
-
程序只能监听到握手之后的ws数据包,例如先进入直播间或开启直播再打开本程序是无法监听到的,所以请保持程序后台运行
-
由于打开系统代理需要自动检查/生成证书,所以程序需要管理员身份运行
-
只有到达客户端的弹幕数据才能被接收,被抖音服务器过滤的弹幕是抓不到的
-
关闭程序后若有无法上网的情况请检查: 网络和internet设置-->代理-->使用代理服务器 ,关闭即可,也可管理员运行关闭代理.bat
📢鸣谢
-
请施舍一个 ⭐Start ,请及时订阅更新
-
如果你也是开发者,欢迎提交你所擅长的语言的对接Demo,照拂新手朋友
⚖️免责声明
- 本程序仅供学习参考,不得用于商业用途,不得用于恶意搜集他人直播间用户信息!
- 请详细阅读免责声明条款后进行使用
<a id="user-content-支持一下" class="anchor"></a>
🍻支持一下?
开源不易
<p> <img src="./imgs/微信.png" alt="微信支付" style="zoom:70%;border-radius: 5px;" /> </p>Related Skills
node-connect
348.5kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
109.1kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
348.5kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
348.5kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。

