当前位置: 首页 > news >正文

【抖音直播间弹幕】protobuf协议分析

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
将Uint8Array变成 PushFrame格式,里面的payload就存放着弹幕消息
在这里插入图片描述
点进去就可以看到其定义的proto结构
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
headers是一个自定义类型

在这里插入图片描述
在这里插入图片描述

将测试数据保存一下,等下做对比

在这里插入图片描述
先将PushFrame的 payload 内容进行gzip解压
在这里插入图片描述
然后再解析为响应
在这里插入图片描述
可以看到里面有对应的消息类型和数据
对应好解析就可以了

# 原始数据
original_message = [8,20,16,239,205,165,211,157,198,241,206,102,24,184,69,32,8,42,21,10,13,99,111,109,112,114,101,115,115,95,116,121,112,101,18,4,103,122,105,112,42,111,10,15,105,109,45,105,110,116,101,114,110,97,108,95,101,120,116,18,92,105,110,116,101,114,110,97,108,95,115,114,99,58,112,117,115,104,115,101,114,118,101,114,124,102,105,114,115,116,95,114,101,113,95,109,115,58,49,55,51,49,51,50,48,52,49,54,55,50,51,124,119,115,115,95,109,115,103,95,116,121,112,101,58,114,124,119,114,100,115,95,118,58,55,52,51,53,57,54,52,53,56,55,48,57,49,57,53,52,55,55,54,42,58,10,9,105,109,45,99,117,114,115,111,114,18,45,116,45,49,55,51,49,51,50,48,52,50,53,56,51,49,95,114,45,55,52,51,53,57,54,52,54,48,52,50,55,49,56,51,56,55,50,48,95,100,45,49,95,117,45,49,42,23,10,6,105,109,45,110,111,119,18,13,49,55,51,49,51,50,48,52,50,53,56,51,49,42,25,10,14,105,109,45,108,105,118,101,95,99,117,114,115,111,114,18,7,100,45,49,95,117,45,49,50,2,112,98,58,3,109,115,103,66,240,10,31,139,8,0,0,0,0,0,0,255,236,90,77,108,19,71,27,102,188,86,178,204,23,17,127,75,69,23,168,42,43,81,47,145,156,236,159,189,107,159,130,77,2,36,4,210,56,1,194,161,163,93,123,236,44,177,215,203,238,218,198,252,169,84,42,144,210,74,17,135,22,168,64,52,165,66,74,69,69,83,85,74,77,213,34,164,74,128,84,113,41,82,127,232,161,146,137,83,46,149,80,91,169,151,170,74,226,88,13,49,4,163,164,45,100,199,199,153,121,222,153,119,159,121,230,125,52,134,63,174,135,207,237,196,74,68,54,173,46,156,84,176,209,133,77,83,142,99,42,191,30,222,92,89,185,207,117,225,254,231,195,199,190,254,253,84,156,190,248,246,177,47,38,134,126,59,21,103,64,240,205,149,240,121,85,203,200,9,53,138,6,113,14,233,9,57,130,7,82,137,40,54,168,250,3,76,32,109,98,227,144,123,226,236,7,133,252,209,117,171,224,202,70,69,138,77,55,247,48,209,112,139,36,255,71,213,193,218,70,41,212,38,182,183,187,135,137,81,112,133,132,227,36,121,172,80,179,174,102,226,157,243,77,77,77,29,55,0,220,62,96,89,186,25,104,105,209,121,79,118,102,113,205,209,84,58,167,106,186,26,105,142,164,146,45,106,50,222,82,234,105,49,147,114,34,129,54,226,216,134,140,108,201,70,179,174,197,15,91,122,34,227,73,41,123,154,213,164,28,199,176,187,12,200,178,139,130,72,173,127,196,216,166,218,198,13,188,24,18,67,163,224,48,220,93,93,104,13,103,209,84,18,81,220,144,163,24,37,112,6,39,80,134,69,82,133,69,208,46,183,155,1,193,117,52,217,176,102,242,173,247,39,71,135,138,151,134,138,249,139,82,49,127,241,238,137,19,197,15,207,143,129,255,147,71,104,215,29,192,17,28,199,4,156,60,35,242,121,112,29,48,228,25,160,44,253,210,70,192,43,112,71,85,223,82,206,226,36,70,186,156,43,5,225,246,33,47,242,87,10,80,231,174,99,192,53,0,33,217,80,3,157,228,10,106,197,101,130,184,71,252,203,9,31,118,130,17,103,137,201,55,157,155,186,194,66,118,235,158,109,92,103,71,16,169,59,185,110,83,205,164,123,197,109,57,37,230,239,219,191,37,149,238,231,213,173,162,174,248,80,71,79,103,71,38,228,243,197,248,29,219,19,86,135,222,199,191,108,118,120,148,93,41,126,119,95,36,114,223,121,194,1,95,119,144,53,212,171,142,165,220,31,236,175,234,99,85,3,77,189,244,88,179,22,206,48,5,106,70,90,107,216,233,182,25,116,131,93,195,215,29,199,1,113,21,156,166,168,249,74,178,232,7,127,209,181,105,33,37,105,11,134,218,66,109,182,146,216,74,98,43,201,210,41,9,253,137,167,27,156,4,255,76,121,243,244,139,210,70,223,212,207,22,37,91,148,108,81,90,58,81,58,3,156,110,174,213,49,6,86,195,85,88,179,176,129,44,85,71,86,78,199,20,96,232,178,65,131,63,113,144,42,121,184,173,234,32,158,117,119,87,57,56,185,182,82,143,235,203,143,46,92,126,99,158,183,27,91,251,112,241,91,93,22,191,3,108,192,180,12,85,139,31,154,39,128,223,209,243,5,240,43,26,94,163,103,4,176,120,246,189,103,198,223,181,5,219,216,169,170,108,241,8,43,46,29,97,43,65,47,76,88,113,14,97,107,231,18,86,44,19,118,20,252,2,96,95,117,57,136,201,154,25,73,164,149,217,96,62,196,50,149,182,223,91,213,246,31,19,149,114,47,52,129,169,13,190,64,213,54,182,79,55,26,54,212,23,199,134,10,227,103,239,190,59,50,123,237,212,147,71,128,203,73,3,14,8,1,130,229,252,121,112,131,96,106,207,128,2,88,14,116,24,1,63,128,165,186,248,224,206,234,242,247,216,192,84,195,194,83,102,111,221,159,9,56,65,184,32,13,26,190,37,224,55,128,116,80,183,158,53,142,195,63,1,233,164,254,0,80,121,178,248,83,52,145,163,25,89,139,224,40,82,228,104,28,35,150,65,251,146,122,165,61,70,158,48,117,213,4,161,154,171,155,206,220,25,185,114,247,178,99,186,170,178,85,252,30,177,236,84,252,30,113,218,177,124,217,207,63,58,57,51,133,254,76,197,86,46,244,187,247,239,146,132,120,34,219,35,109,234,52,44,37,182,163,183,71,222,179,165,23,247,115,253,93,234,230,78,181,163,39,20,22,196,120,60,147,106,23,194,62,169,111,111,56,179,17,115,221,251,50,251,153,116,118,96,144,31,188,239,188,228,92,236,66,255,105,61,113,240,156,131,172,163,108,10,62,148,130,148,163,166,174,108,133,26,214,144,96,55,85,24,207,23,198,175,76,156,188,84,124,237,179,201,79,207,21,242,71,187,193,113,0,174,130,73,210,229,164,71,111,129,166,103,209,107,204,190,37,217,103,198,246,26,182,215,176,189,198,83,199,113,219,107,216,94,195,246,26,203,151,253,182,215,176,189,198,127,155,130,115,188,70,208,225,2,138,211,253,98,171,131,46,63,148,80,30,203,195,138,60,203,115,140,192,121,37,150,71,134,71,20,120,175,223,39,248,24,129,19,89,137,151,68,142,65,81,15,139,210,30,214,125,251,251,95,111,127,204,53,93,112,168,154,133,13,77,78,32,211,136,4,244,180,57,96,98,35,131,141,131,49,213,48,45,100,224,189,40,105,6,74,200,44,227,99,24,254,96,214,52,81,210,140,79,63,244,4,140,131,89,35,106,162,193,140,25,40,61,228,108,209,122,82,169,100,80,214,180,242,159,245,60,155,140,84,214,26,8,165,146,201,148,54,211,19,78,43,225,156,22,233,196,57,79,25,93,242,250,121,158,97,188,28,139,74,88,83,72,61,178,54,56,139,83,26,202,176,94,206,47,72,60,235,21,248,191,15,13,91,178,101,62,48,86,224,88,206,231,227,37,86,18,216,185,99,13,44,39,55,68,101,221,146,45,53,165,61,56,141,149,88,129,227,69,63,235,245,183,214,111,6,127,1,0,0,255,255,1,0,0,255,255,253,82,25,129,165,40,0,0]original_byte_message = bytes(original_message)
# print(original_byte_message)# 解析为PushFrame对象
push_frame = PushFrame().parse(original_byte_message)
# print(push_frame)# 对PushFrame的 payload 内容进行gzip解压
push_frame_payload = gzip.decompress(push_frame.payload)# 解析为Response对象
response = Response().parse(push_frame_payload)# 遍历Response对象里面的消息
for message in response.messages:message_method = message.methodmessage_payload = message.payloadprint(f"需要解析的消息类型:{message_method}")# print(message_payload)

在这里插入图片描述
然后再解析对应的消息类型就可以

在这里插入图片描述
所有的都在这个文件里

相关文章:

【抖音直播间弹幕】protobuf协议分析

将Uint8Array变成 PushFrame格式,里面的payload就存放着弹幕消息 点进去就可以看到其定义的proto结构 headers是一个自定义类型 将测试数据保存一下,等下做对比 先将PushFrame的 payload 内容进行gzip解压 然后再解析为响应 可以看到里面有对应的消…...

Swift 开发教程系列 - 第11章:内存管理和 ARC(Automatic Reference Counting)

在 Swift 中,内存管理由 ARC(自动引用计数)机制自动处理。ARC 通过追踪和管理对象的引用计数来确保分配的内存得到有效释放。尽管 ARC 在大多数情况下能够高效地管理内存,但理解其工作原理仍然十分重要,因为不当的引用…...

C#中 layout的用法

在C#中,layout并不是一个直接用于C#语言本身的关键字或特性。然而,layout在与C#紧密相关的某些上下文中确实有其用途,特别是在涉及用户界面(UI)设计和数据展示时。以下是几个常见的与layout相关的用法场景:…...

【编程概念基础知识】

、编程基础 一、面向对象的三大特性 1、封装: 盒子、零件、按钮 隐藏对象 的内部状态,并且只通过对象的方法来访问数据 想象你有一个小盒子(这个盒子就是一个类),里面装着一些零件(这些零件就是数据&a…...

【React】深入理解 JSX语法

🌈个人主页: 鑫宝Code 🔥热门专栏: 闲话杂谈| 炫酷HTML | JavaScript基础 ​💫个人格言: "如无必要,勿增实体" 文章目录 深入理解 JSX语法1. JSX 简介2. JSX 的基本语法2.1 基本结构2.2 与普通 JavaScr…...

【Linux】从零开始使用多路转接IO --- 理解EPOLL的 LT水平触发模式 与 ET边缘触发模式

当你偶尔发现语言变得无力时, 不妨安静下来, 让沉默替你发声。 --- 里则林 --- 从零开始认识多路转接 1 EPOLL优缺点2 EPOLL工作模式 1 EPOLL优缺点 poll 的优点(和 select 的缺点对应) 接口使用方便:虽然拆分成了三个函数,…...

QtLua

描述 QtLua 库旨在使用 Lua 脚本语言使 Qt4/Qt5 应用程序可编写脚本。它是 QtScript 模块的替代品。 QtLua 不会为 Qt 生成或使用生成的绑定代码。相反,它提供了有用的 C 包装器类,使 C 和 lua 对象都可以从 lua 和 C 访问。它利用 Qt 元对象系统将 QOb…...

c++-有关计数、双变量累加、半衰、阶乘、变量值互换的基础知识

C是一种非常强大和灵活的编程语言,它包含了许多重要的概念和技巧。在本文中,我们将重点讨论五个主题:计数、双变量累加、半衰、阶乘和变量值的互换。我们将介绍这些概念的定义、用法、题目、答案和解释,以帮助读者更好地理解和运用…...

MyBatis3-获取参数值的方式、查询功能及特殊SQL执行

目录 准备工作 获取参数值的方式(重点) 查询功能 查询一个实体类对象 查询一个list集合 查询单个数据 查询一条数据为map集合 查询多条数据为map集合 特殊SQL执行 模糊查询 批量删除 动态设置表名 添加功能获取自增的主键 准备工作 模块My…...

web——[SUCTF 2019]EasySQL1——堆叠注入

这个题主要是讲述了堆叠注入的用法,来复现一下 什么是堆叠注入 堆叠注入:将多条SQL语句放在一起,并用分号;隔开。 1.查看数据库的名称 查看数据库名称 1;show databases; 发现有名称为ctftraining的数据库 2.对表进行查询 1;show tabl…...

【Ubuntu学习】Ubuntu无法使用vim命令编辑

问题 在VMware首次安装Ubuntu,使用vi指令对文件进行编辑,按i键后无法更改文件内容。 原因 由于Ubuntu中预装的是vim-tiny,平时开发中需要使用vim-full。 解决方案 卸载预装vim sudo apt-get remove vim-common安装vim-full sudo apt-get …...

UniAPP u-popup 禁止背景滑动

增加class .NoScroll {overflow: hidden;position: fixed; }在外层div上增加该class判断条件...

F5全新报告揭示AI时代API安全面临严峻挑战

F5 《2024年应用策略现状报告:API安全》揭示了 API 保护中的漏洞以及对全面安全措施的迫切需求 西雅图,2024年11月11日 – F5(NASDAQ: FFIV)日前发布《2024年应用策略现状报告:API 安全》(以下简称为“报告”),揭示了跨行业API安全面临的严峻现状。该报告强调了企业API保护方面…...

使用C语言进行信号处理:从理论到实践的全面指南

1. 引言 在现代操作系统中,信号是一种进程间通信机制,它允许操作系统或其他进程向一个进程发送消息。信号可以用来通知进程发生了一些重要事件,如用户请求终止进程、硬件异常、定时器超时等。掌握信号处理技术对于开发健壮、高效的系统程序至…...

什么是工单管理系统?全面认识指南

在现代企业中,客户服务和支持是业务成功的关键因素之一。为了有效地管理客户请求和问题,许多公司采用了工单管理系统。本文将深入探讨工单管理系统的定义、功能、优势。 一、工单管理系统的定义 工单管理系统是一种软件工具,旨在帮助企业管…...

集群化消息服务解决方案

目录 集群化消息服务解决方案项目概述架构图使用说明服务端通过API接口推送消息给客户端调用方式 请求参数返回参数 客户端推送消息连接websocket或发送消息 接收消息项目地址作者信息 集群化消息服务解决方案 项目概述 集群化消息服务解决方案是一种用于处理大量消息的高可用…...

python数据结构操作与可视化的应用

Python具有丰富的数据结构操作和可视化库,可以进行各种数据结构的创建、编辑和分析,并将结果可视化。以下是几个常见的Python数据结构操作和可视化的应用示例: 1. 列表(List)操作和可视化: - 创建列表&a…...

【基于轻量型架构的WEB开发】课程 作业4 AOP

一. 单选题(共7题,38.5分) 1 (单选题)下列选项中,用于通知/增强处理的是( )。 A. Joinpoint B. Pointcut C. Aspect D. Advice 正确答案:D 答案解析:在面向切面编程&#xff…...

跨境独立站新手,如何用DuoPlus云手机破局海外社媒引流?

独立站作为电商领域的一个重要组成部分,其发展在最近几年里确实令人瞩目,对于想要进入跨境赛道的新手卖家来说,手上握着有优势的货源,建立小型的DTC独立站确实会比入驻第三方平台具有更大的灵活性。本文将给跨境卖家们总结独立站和…...

【Android、IOS、Flutter、鸿蒙、ReactNative 】标题栏

Android 标题栏 参考 Android Studio版本 配置gradle镜像 阿里云 Android使用 android:theme 显示标题栏 添加依赖 dependencies {implementation("androidx.appcompat:appcompat:1.6.1")implementation("com.google.android.material:material:1.9.0")…...

浏览器访问 AWS ECS 上部署的 Docker 容器(监听 80 端口)

✅ 一、ECS 服务配置 Dockerfile 确保监听 80 端口 EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]或 EXPOSE 80 CMD ["python3", "-m", "http.server", "80"]任务定义(Task Definition&…...

Linux简单的操作

ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...

家政维修平台实战20:权限设计

目录 1 获取工人信息2 搭建工人入口3 权限判断总结 目前我们已经搭建好了基础的用户体系,主要是分成几个表,用户表我们是记录用户的基础信息,包括手机、昵称、头像。而工人和员工各有各的表。那么就有一个问题,不同的角色&#xf…...

spring:实例工厂方法获取bean

spring处理使用静态工厂方法获取bean实例,也可以通过实例工厂方法获取bean实例。 实例工厂方法步骤如下: 定义实例工厂类(Java代码),定义实例工厂(xml),定义调用实例工厂&#xff…...

在鸿蒙HarmonyOS 5中使用DevEco Studio实现录音机应用

1. 项目配置与权限设置 1.1 配置module.json5 {"module": {"requestPermissions": [{"name": "ohos.permission.MICROPHONE","reason": "录音需要麦克风权限"},{"name": "ohos.permission.WRITE…...

全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比

目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...

Rapidio门铃消息FIFO溢出机制

关于RapidIO门铃消息FIFO的溢出机制及其与中断抖动的关系,以下是深入解析: 门铃FIFO溢出的本质 在RapidIO系统中,门铃消息FIFO是硬件控制器内部的缓冲区,用于临时存储接收到的门铃消息(Doorbell Message)。…...

Python基于历史模拟方法实现投资组合风险管理的VaR与ES模型项目实战

说明:这是一个机器学习实战项目(附带数据代码文档),如需数据代码文档可以直接到文章最后关注获取。 1.项目背景 在金融市场日益复杂和波动加剧的背景下,风险管理成为金融机构和个人投资者关注的核心议题之一。VaR&…...

【笔记】WSL 中 Rust 安装与测试完整记录

#工作记录 WSL 中 Rust 安装与测试完整记录 1. 运行环境 系统:Ubuntu 24.04 LTS (WSL2)架构:x86_64 (GNU/Linux)Rust 版本:rustc 1.87.0 (2025-05-09)Cargo 版本:cargo 1.87.0 (2025-05-06) 2. 安装 Rust 2.1 使用 Rust 官方安…...

jmeter聚合报告中参数详解

sample、average、min、max、90%line、95%line,99%line、Error错误率、吞吐量Thoughput、KB/sec每秒传输的数据量 sample(样本数) 表示测试中发送的请求数量,即测试执行了多少次请求。 单位,以个或者次数表示。 示例:…...