当前位置:   article > 正文

【晚风摇叶之其他】抖音直播弹幕解析,连接websocket解析弹幕内容_抖音wss弹幕解析

抖音wss弹幕解析

目录

一.生成websocket的url

1.查看网络面板拿到url,分析url

2.分析url

1.获取room_id,user_unique_id

2.获取signature

3.拼接url

二.连接websocket解析弹幕内容

1.查找消息体序列化方式

2.编写proto对象信息

3.python连接websocket

问题1:cookie问题

问题2:连上不久自动断开了

4.完整测试连接代码


一.生成websocket的url

1.查看网络面板拿到url,分析url

打开一个直播间,F12查看网络面板,可以看到websocket的url,简单分析三个关键参数room_id,user_unique_id,signature,如下图

2.分析url

1.获取room_id,user_unique_id

这两个参数都在房间号首页请求的html里,直接正则表达式获取就行了,如下图

然而postman直接get首页,却返回的一段加密的html,还有两个cookie:__ac_nonce和ttwid,如下图

尝试寻找原因:浏览器无痕模式保留日志跟踪一下请求,发现访问了两次首页,如下图

        第一次返回加密的html,返回了两个的Cookie:__ac_nonce和ttwid

        第二次返回了真实房间数据,请求时,发送了__ac_nonce和__ac_signature两个Cookie,很明显,应该是第一次返回的html有相关的js,生成了__ac_signature这个cookie

查看加密的html里的js,果然是根据__ac_nonce生成__ac_signature的cookie,如下图。

关键就是解密window.byted_acrawler.sign()函数计算结果值就可以了。__ac_nonce应该是个随机数,实测用一个固定值就行,但每次生成的__ac_signature不一样

2.获取signature

js里查找生成signature的代码,如下图,简单概括:e里存着数据,t是数组,循环t从e里按顺序取值然后拼接一个字符串o,用o进行MD5得到a,然后调用window.byted_acrawler.frontierSign()函数计算出signature的值

其中数组t的值如下,关键值room_id,user_unique_id在上面已经已经获取到,很容易生成MD5
["live_id", "aid", "version_code"

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/725444
推荐阅读
相关标签
  

闽ICP备14008679号