2017/2/10: 截止目前的文章版本已经回退到最初版本,不一定会继续填坑。相关协议将会于未来开源的biliapi(python)中实现。

最近因为一些原因,所以在研究B站直播间相关的内容。结合逆向的Android客户端源码,我得以更深的了解B站直播间的协议。早些时候有dalao就解析过这个协议(链接),但是dalao是分析弹幕姬的,所以有很多疏漏或不清楚的地方。

目前,本文的内容尚未补全。

协议头

一般的,一个B站的直播间数据包的协议头为16字节。协议头的大致结构如下:00000000: 00 00 00 35 00 10 00 01 00 00 00 07 00 00 00 01

1-4个字节:整数,数据包大小

5-6个字节:短整数,固定值16(推测是协议头长度)

7-8个字节:短整数,推测是使用设备(安卓端写死为0,dalao文章中固定为1)

9-12个字节:整数,数据包类型

13-16个字节:整数,推测是使用设备(和7-8个字节相同)

无论是发送数据还是返回数据,一般来说都是需要附上数据头。数据包类型已知的有以下几种:

请求:2(心跳包)、7(用户进入房间)

响应:1,2,3(人数包,1、2是dalao文章中提到的,实际并未发现)、5(弹幕、礼物等等数据)

对于响应包,客户端显示4、6、7都是无效的数据包类型(参见com.bilibili.cfu)。而com.bilibili.cfw显示0、2-7似乎都是有效的值。

请求

进入房间、心跳包

这两个数据包的正文相同,都是json格式的:{"roomid ":0,"uid":0}

心跳包30s左右发送一次。

响应

弹幕、送礼、进入提示、开始直播、准备直播

这些数据包的数据包类型是相同的(都是5),而返回格式大体相同:{"cmd":"...","info":xxx}

其中,cmd允许的值有:

LIVE                             – 开始直播

PREPARING            – 准备直播

DANMU_MSG        – 弹幕信息

SEND_GIFT             – 送礼信息

WELCOME               – 进入房间信息(如姥爷进入房间有提示)

具体数据格式有待更新。

直播人数

直播人数包的数据类型为3。这个包一般在客户端发送心跳包以后返回。正文部分只有一个整数,就是直播间当前人数。

分享到

喜欢二次元的程序员,喜欢发发教程,或者偶尔开坑。(←然而并不打算填)

B站服务器数据协议,B站直播间协议指南相关推荐

  1. B站服务器数据协议,阴阳师手游数据互通 B站服务器合服公告一览

    阴阳师手游数据互通 B站服务器合服公告一览,阴阳师手游B站服务器合服公告内容带给大家,包括了亲密无间.情深谊长.情意相投.两心无间这四个服务器进行数据互通,下面是补偿奖励和注意事项. 为提升部分服务器 ...

  2. 挂站服务器什么意思?挂站服务器可以挂多少网站?

    挂站服务器是什么?怎么选择挂站服务器?网站通常需要租用相应的服务器,来提供互联网运行基础,同时也是用户访问的基础,下面我们就简单的聊聊什么是挂站服务器以及该怎么选择挂站服务器配置. 挂站服务器是什么? ...

  3. c 服务器 数据协议,基于C/S结构的数据协议转发系统服务器的实现

    摘 要:根据电力企业现场总线的特点以及企业对设备运行数据进行远程采集管理的需求,实现了一种在嵌入式软硬件平台下开发的系统--数据采集协议转发管理系统. 关键词:总线协议:数据转发:服务器 嵌入式系统技 ...

  4. b站服务器的硬盘,B站崩了,只因服务器机房发生故障!

    7 月 13 日 23 时许,B站客户端和网页端均出现访问故障,无法打开,页面提示"正在玩命加载数据". △ 崩溃界面 难道是各位用户热情太高涨,视频刷太多,把哔哩哔哩整崩了? 逐 ...

  5. b站服务器的硬盘,B站崩了,多大点事儿?

    .. 7 月 13 日 23 时许,B站客户端和网页端均出现访问故障,无法打开,页面提示"正在玩命加载数据". △ 崩溃界面 难道是各位用户热情太高涨,视频刷太多,把哔哩哔哩整崩了 ...

  6. b站服务器故障修复,“B站崩了”官方回应:服务器机房故障!现已恢复!

    余烬风暴时装属性可以叠加吗 余烬风暴不同部位的时装属性是可以叠加的,但相同部位的时装属性无法叠加.在这之中,为保证属性叠加收益最大化,尽可能选择更高品质的.属性加成效果强势的时装装备,如此可以获得最大 ...

  7. 低配服务器的个人建站爬坑之路

    @低配服务器的个人建站爬坑之路 低配服务器的个人建站爬坑之路 本文纯手打,转载请说明来源:https://blog.csdn.net/sqm1995/article/details/89374500 ...

  8. B站排行榜数据可视化案例——python

    目录 一.前言 二.简介 三.主要内容 1."踩点",爬取网页 2.数据提取.重新组织 3.数据分析 视频标题词云图: 播放量和评论量折线图: 一.前言 本篇博客记录自己学习pyt ...

  9. 建站服务器还是虚拟主机,建站服务器还是虚拟主机

    建站服务器还是虚拟主机 内容精选 换一换 本章主要介绍了如何使用AMH搭建网站.该指导具体操作以搭建DEDECMS系统为例.如果需要用IP访问,将IP地址填在域名栏里即可添加虚拟主机01本示例上传的是 ...

最新文章

  1. 被京东和腾讯赶走的中年白领,不会有人同情
  2. ESP32-S的UART2的初始化需要注意的问题
  3. 并发模拟的四种方式 + 工具,超级实用!
  4. 【Android 逆向】arm 汇编 ( 使用 IDA 解析 arm 架构的动态库文件 | 分析 malloc 函数的 arm 汇编语言 )
  5. ASP操作MSQL类
  6. [Oracle]使用滚动游标
  7. 反射--获取当前子类父类的泛型类型
  8. !!统计字符(处理字符串)(getline函数使用)
  9. java下载zip文件
  10. Mip-NeRF:抗混叠的多尺度神经辐射场ICCV2021
  11. stata面板数据:xtserial下载问题解决
  12. MAC-MAC-MAC-MAC
  13. 火山视窗文件框基本操作介绍
  14. 万物皆可炒:一只玩具熊能换一套房?
  15. Matlab代码 多时间尺度优化调度 MATLAB程序含冰蓄冷空调的冷热电联供型微网多时间尺度优化调度
  16. HCIP:rip综合实验
  17. Java实现抓取百度识图结果的实现和思路-2-Json的处理
  18. 可以办理软件著作权的部门有哪些
  19. 《狼图腾》作者:姜戎
  20. 华为很好,但我不愿再回去

热门文章

  1. Android开发究竟该如何学习,跳槽薪资翻倍
  2. 吊死在code一棵树上
  3. 微粒贷如何还款?微粒贷多种还款方式流程解析
  4. img文件的生存 和 打开
  5. 笔记本电池应该怎样维护保养
  6. 巧用NotePad++ 做文本处理
  7. 波动光学:光的衍射计算
  8. Sql语句、多个字段模糊查询、
  9. 谈一款MOBA类游戏《码神联盟》的服务端架构设计与实现(更新优化思路)
  10. 网络工程201306114136张文雅实验四