抖音弹幕获取的另一种方式
背景需求
公司最近需要做一个直播尝试,需要获取抖音弹幕的信息,没想到抖音的直播开放平台没有相关的接口开放出来,感觉这个绝对是有问题的,作为开发者,获取自己直播间的相关信息,是个很正常的需求。
然后诉诸网络,有人做了付费的服务来获取弹幕,比较贵,不过感觉挺厉害的,好像就是破解了算法,接口信息很详细,不过抖音也会换算法,这个接口估计也得跟着改,所以人家这个付费好像也能够理解。
实现思路
所以公司考虑自己做,然后我就上场了 .第一步github找思路,发现都是广告,没有可利用的,不过在大量的信息中还是能够了解到只鳞片爪的,大家的思路基本是硬钢算法。
.分析抖音的网页直播间的请求,发现弹幕信息是个定时请求,返回数据是protobuf形式的,没有加密,只要protobuf序列化即可。
然后请求的关键在于请求中需要计算signature,还有什么x-xx啥的字段,然后结合github,发现还是么法找出前端的加密算法。
不过找到了protobuf的定义获取方式,这个还是比较关键的,有所了解的同学会方向,定义的proto 中的顺序是要相同的,也就是需要做到前后端的proto一致,才能拿到对应的数据,否则会偏差。
Protobuf 定义
1 | syntax = "proto3"; |
实现代码
1 | import { |
优缺点分析
优点:
- 避免了签名困扰
- 实现简单直接
- 可扩展性强
缺点:
- 可能遗漏信息
- 不如算法破解准确
- 需要维护浏览器实例
总结
这个思路的优点就是避免的了签名困扰。其实这个完善下去,基本你想获取啥都可以。缺点就是可能遗漏一些信息,不如算法破解来的准确。
用了微软的playwright,还是蛮好用的,这个接口挺丰富。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 !


