websocket存档B站直播数据包分析连载(20181211更新/20200412废止)小赤石的CodeSpace

封包由头部和数据组成,字节序均为大端模式头部格式:

示意图:

H5播放器使用的弹幕连接是wss://broadcastlv.chat.bilibili.com/sub,桌面版的会使用CDN的连接,每次都不一样,没有测试过是否每次连接都可用。我使用桌面版的时候就出现过:wss://tx-live-dmcmt-sel-01.chat.bilibili.com/subwss://tx-tokyo-live-comet-01.chat.bilibili.com/subplayer.js中定义的默认服务器则是ws://broadcastlv.chat.bilibili.com:2244/sub

连接上ws以后,第一件事情就是发认证包,截获的数据大致如下:

#Server.2|Binaryx0x1x2x3x4x5x6x7x8x9xAxBxCxDxExF===========================================================0000000x|00000010001000010000000800000001-----------------------------------------------------------操作码为08,服务器发来的心跳包,表示服务器在线。

每隔30s需要向服务器发送心跳包保持在线状态。从浏览器中截获的心跳包如下:

#Client.3|Binaryx0x1x2x3x4x5x6x7x8x9xAxBxCxDxExF===========================================================0000000x|0000001F0010000100000002000000010000001x|5B6F626A656374204F626A6563745D-----------------------------------------------------------[objectObject]===========================================================MASK:26-E1-EC-F2NOTES:很奇怪为什么心跳包的主体是[objectObject]文本,感觉似乎是调用了什么的toString,准备尝试一下使用无主体的心跳包试试,日后更新这个部分。UPDATE1:player.js中有一行vart=this.convertToArrayBuffer({},r.a.WS_OP_HEARTBEAT);用于生成心跳包,貌似传入的是一个空的对象。服务器通常会返回一个带有人气值的数据包

#Server.4|Binaryx0x1x2x3x4x5x6x7x8x9xAxBxCxDxExF===========================================================0000000x|000000140010000100000003000000010000001x|00000001---------------------------------------------------------操作码为3,人气值数据,主体部分是一个四字节的整数。

这个部分可能涉及到的内容比较多,也是比较核心的部分。大概包括以下部分:

这些数据包的操作码都是恒定为5。很奇怪的是,这些数据包的版本位定义是0,sequence常数也是0。

#Server.7|Binaryx0x1x2x3x4x5x6x7x8x9xAxBxCxDxExF===========================================================0000000x|0000002F0010000000000005000000000000001x|7B22636D64223A224C495645222C22720000002x|6F6F6D6964223A343536383739367D---------------------------------------------------------{"cmd":"LIVE","roomid":4568796}=========================================================操作码为5,主体的cmd定义为LIVE,roomid表示对应直播间的id。

#Server.23|Binaryx0x1x2x3x4x5x6x7x8x9xAxBxCxDxExF===========================================================0000000x|000000360010000000000005000000000000001x|7B22636D64223A22505245504152494E0000002x|47222C22726F6F6D6964223A223435360000003x|38373936227D---------------------------------------------------------{"cmd":"PREPARING","roomid":"4568796"}=========================================================操作码为5,主体的cmd定义为PREPARING,roomid表示对应直播间的id。

#Server.19|Binaryx0x1x2x3x4x5x6x7x8x9xAxBxCxDxExF===========================================================0000000x|000000C70010000000000005000000000000001x|7B22696E666F223A5B5B302C312C32350000002x|2C31363737373231352C3135343430380000003x|313737312C3933363537353932392C300000004x|2C223832636161343139222C302C305D0000005x|2C22E596B5222C5B32373332323435360000006x|2C22E586B0E59D9754694F32222C302C0000007x|302C302C31303030302C312C22225D2C0000008x|5B5D2C5B312C302C393836383935302C0000009x|223E3530303030225D2C5B5D2C302C30000000Ax|2C7B22756E616D655F636F6C6F72223A000000Bx|22227D5D2C22636D64223A2244414E4D000000Cx|555F4D5347227D---------------------------------------------------------{"info":[[0,1,25,16777215,1544081771,936575929,0,"82caa419",0,0],"喵",[27322456,"冰块TiO2",0,0,0,10000,1,""],[],[1,0,9868950,">50000"],[],0,0,{"uname_color":""}],"cmd":"DANMU_MSG"}=========================================================cmd定义为DANMU_MSG,另一个字段为info,是一个很杂的数组,我们来分析一下他:

THE END
1.免费追剧神器苹果手机免费看剧app推荐首先,我们要明确一点,免费看剧的app有很多,但是这些app的质量参差不齐,有的可能会涉及到广告、会员等收费项目,这可能会让姐妹们觉得不太满意。因此,在这里,我为大家推荐几个苹果手机上免费又好用的看剧app。 1. 哔哩哔哩(B站) 哔哩哔哩(B站)是一个非常受年轻人欢迎的综合性视频网站,上面有很多免费的电视剧、https://cloud.tencent.com/developer/news/1206039
2.(新)B站视频播放源地址获取及B站视频下载突然之间,我们的B站视频播放失效了。之前直接使用的ibilibili,发现它的低清版本视频无法正常加载了。后来"head_cover": "http://i0.hdslb.com/bfs/archive/3a8bc72ebc670579a0b97b68b973d8e5ed495b24https://blog.csdn.net/ucsheep/article/details/102529604
3.chrome过滤B站的刷屏弹幕 这个扩展https://chrome.google.com/webstore/detail/pakku%EF%BC%9A%E5%93%94%E5%93%A9%E5%93%94%E5%93%A9%E5%BC%B9%E5%B9%95%E8%BF%87%E6%BB%A4%E5%99%A8/jklfcpboamajpiikgkbjcnnnnooefbhh,瞬间过滤B站的刷屏弹幕,还你清爽的弹幕视频体验。 上网时间统计 这个扩展可以统计你https://github.com/sushengbuhuo/chrome_extension/blob/main/README.md
4.如何轻松在B站找到并观看免费在线直播视频内容在这个信息爆炸的时代,越来越多的人选择在网上观看视频内容。而B站作为一个知名的在线视频平台,自然成为了许多人关注的对象。那么,如何才能方便地在B站上找到并观看免费的在线直播呢?下面,我将为你详细介绍如何在B站上找到和观看免费的在线直播。 首先,如果你已经成功登录了自己的B站账号,你可以直接访问个人中心,查看https://www.sohu.com/a/757321633_121894855
5.B站最近都快成窑子了,直播啊视频啊尺步行街主干道搜我想看 打开APPB站最近都快成窑子了,直播啊视频啊尺度大的雅痞虎扑JR1414900696 2023-04-20 17:16 关注 我有的时候真的以为自己进错APP了 步行街主干道 发布于湖南阅读575915这些回复亮了 懒得起名字的刘兔2023-04-20 确实,我一个女的,阿b天天给我推大胸妹各种擦边直播 亮了(3023) 查看回复(98) 回复 https://m.hupu.com/bbs/59476023.html
6.UP?电影?学习?追番?B站有啥好玩的?51CTO博客https://search.bilibili.com/all?keyword=Python%E6%95%99%E7%A8%8B 比如: 视频剪辑教程 https://search.bilibili.com/all?keyword=%E8%A7%86%E9%A2%91%E5%89%AA%E8%BE%91%E6%95%99%E7%A8%8B 除了上面提到的几大板块, B站 还有 数码评测, 舞蹈, 游戏攻略, 直播, https://blog.51cto.com/zhaoolee/3179189