找回密码
 立即注册
搜索
2

[技术教程] dy网页直播间弹幕实时获取逻辑分析9.27

[复制链接]
125 2
雪儿 2026-9-27 17:01:14 | 显示全部楼层 |阅读模式
目标:模拟浏览器访问抖音网页直播间,调用抖音内部 IM 长轮询接口,抓取直播间弹幕、礼物、用户进房消息。

操作过程:
先打开直播间并开启抓包工具,发现直播间消息并非 WebSocket(wss://ws.)形式

直接请求弹幕接口地址:
游客,如果您要查看本帖隐藏内容请回复

6.jpg

抖音直播接口返回的不是 JSON,是二进制 protobuf 协议数据,编写通用解析器,把任意 protobuf 拆成 [(字段号, 类型, 值)] 的列表
该接口可返回完整消息类型,解析后包括:ChatMessage(评论弹幕)、MemberMessage(用户进场)、LikeMessage(点赞)

分析实时流量,判断抖音网页直播间的评论消息不使用 WebSocket 推送,而是采用 HTTP 轮询机制
通过直播间短 ID(web_rid)获取房间真实 room_id,循环调用 /webcast/im/fetch/ 接口,依靠 cursor 游标增量拉取消息,再自行解析 protobuf 二进制数据,从中提取弹幕、礼物、用户进场等各类消息

要如何本地模拟这个过程?

  • 创建 http 会话,访问直播间页面获取 cookie 鉴权信息 ttwid
  • 调用直播间 enter 接口,把 web_rid 转换成接口需要的 room_id
  • 用 room_id + cursor 游标请求 im/fetch 接口,拿到 protobuf 二进制
  • 手写 protobuf 解析器解析二进制,解压 gzip 消息体,提取弹幕、礼物、进房消息
  • 消息 ID 去重,识别评论消息,控制台打印,可选写入 jsonl
  • 更新 cursor 游标,sleep 一段时间,继续下一轮拉取


实测代码效果


7.jpg

C:\Users\admin\PyCharmMiscProject\.venv\Scripts\python.exe C:\Users\admin\PyCharmMiscProject\ceshi2222222\test03.py  直播间 821428769544 | ttwid=1%7CmNlhIm5w2vs2Cu-Xmu3v... room_id = 7689900503156722473
[04:55:14] 评论  A九夜(绝味龙虾坊,椒麻鸡): 1000000000000000
[04:55:14] 评论  嘿嘿: 1
[04:55:14] 评论  JD: 你这个技能为什么能原地就
[04:55:14] 评论  长书省: 1
[04:55:14] 评论  @: 111111
[04:55:14] 评论  小碴粥子: 1
[04:55:14] 评论  理智¹⁷⁰¹成为农村拓哉(蓄发版): 我是假人
[04:55:14] 评论  🌈低调王小李: 我是人机一号
[04:55:19] 评论  居士: 2
[04:55:20] 评论  棷椰拿铁: 2
[04:55:22] 评论  知行合一: 我是家人
[04:55:26] 评论  花海: 这个点都不想发弹幕很正常,大家都累
[04:55:27] 评论  80岁老头爱飘柔: 3 结束:共收到 64 条消息,其中评论 13 条,耗时 16 秒

进程已结束,退出代码为 0
----------------------------------------------------------------------------------------------------
代码整体流程:
1,初始化模拟浏览器(带 Cookie 容器、UA)
2,访问直播间页面,拿到 Cookie(ttwid 关键 Cookie)
3,通过 web_rid(直播间网页 ID)调用 /webcast/room/web/enter/,拿到真实房间 ID room_id
4,循环调用 /webcast/im/fetch/ 拉取直播间消息(轮询)
5,接口返回 protobuf 二进制数据,脚本自己实现 protobuf 解析,拆出消息列表
6,区分消息类型:弹幕WebcastChatMessage、礼物WebcastGiftMessage、进场消息WebcastMemberMessage
7,去重(msg_id),控制台打印弹幕,可选保存到 jsonl 文件

8,持续采集指定秒数后停止
-------------------------------------------------------------------------------
python代码:
游客,如果您要查看本帖隐藏内容请回复



有事请点发送消息私信我!有事请点发送消息私信我!有事请点发送消息私信我!
回复帖子不一定看的来,请点发送消息私信我!
xiaohuai 2026-9-27 17:14:17 | 显示全部楼层
楼主的帖子真是前无古人,后无来者
乔大仙 2026-10-1 00:54:06 | 显示全部楼层
楼主的帖子真是前无古人,后无来者
快捷回复: 换一换
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    手机版|破走论坛

    本站资源来自互联网用户收集发布,如有侵权请邮件与我们联系处理:pozou@qq.com

    Copyright © 2018-2026 破走论坛. Powered by 破走论坛!