xfgryujk / blivedm

获取bilibili直播弹幕,使用WebSocket协议,支持web端和B站直播开放平台两种接口
MIT License
1.05k stars 225 forks source link

弹幕丢失率很高 #33

Closed xqe2011 closed 1 year ago

xqe2011 commented 1 year ago

几乎无法接收到新弹幕,换了多个IP和携带ClientSession登陆态也无法解决。 版本 28645d5

xfgryujk commented 1 year ago

这个库不负责解决一次爬多个直播间的风控策略,自己想办法

xqe2011 commented 1 year ago

谢谢你的回复,但我不是一次爬多个直播间,我测试的IP只打开了一个直播间

xqe2011 commented 1 year ago

这个是今天开始的

xfgryujk commented 1 year ago

你测试一下是不是消息处理耗时太多了

xqe2011 commented 1 year ago

消息处理函数只print也会这样,blivechat/blivedm都出现了相同的问题

sparanoid commented 1 year ago

Related:

xqe2011 commented 1 year ago

我自己尝试更换了代码里的UA并无用,并不只是blivedm,其他使用bilibili-api的项目也出现了一样的问题,是B站是不是更新了什么认证包算法

xfgryujk commented 1 year ago

还真复现了,部分直播间没有登录时接收弹幕会被限流

xqe2011 commented 1 year ago

我测试了如果携带uid+bvuid,然后使用浏览器访问接口获取Key合成认证包就能避免限流,目前尚未明确是获取Key接口携带什么Headers导致返回的key可能限流

xqe2011 commented 1 year ago

提供一个临时修复方案,测试了一下基本没问题,携带Cookie,携带UID,就应该可以解决

xfgryujk commented 1 year ago

好像uid不能乱填了,现在uid和token不匹配有可能被限流。填0就没被限流,并且能连上broadcastlv.chat.bilibili.com之外的服务器。但是填0会导致无法获取弹幕昵称和uid

reitowo commented 1 year ago

别多想了,老老实实登陆态了

xfgryujk commented 1 year ago

添加了使用cookie连接的方法演示。后续会加上开放平台接口

reitowo commented 1 year ago

添加了使用cookie连接的方法演示。后续会加上开放平台接口

开放平台是不是必须要code了啊,v1的那个我请求就是应用无效

xqe2011 commented 1 year ago

开放平台不是需要AK和SK吗

z0z0r4 commented 1 year ago

开放平台可还行,有门槛的吧我记得

建议老实登录,和反爬斗没意义,没性价比

Akegarasu commented 1 year ago

经测试,如果token不是携带cookie获取的,只在enter packet携带buvid仍然丢失率很高。还有测试疑似和不同的弹幕服务器有关,broadcastlv比较严格

xfgryujk commented 1 year ago

经测试,如果token不是携带cookie获取的,只在enter packet携带buvid仍然丢失率很高。还有测试疑似和不同的弹幕服务器有关,broadcastlv比较严格

其他服务器uid和token不匹配大概率就断开连接了

xfgryujk commented 1 year ago

接口差不多就改成这样了,目前没条件测试,有人帮忙测试吗

why0209 commented 1 year ago

接口差不多就改成这样了,目前没条件测试,有人帮忙测试吗

单个很稳定,如果量大的话还是存在收不到弹幕的现象

reitowo commented 1 year ago

有没有人测试下同一个Cookie连接大量不同房间,以及同一个Cookie多次连接相同房间,是否会造成其他连接被中断掉呀

why0209 commented 1 year ago

有没有人测试下同一个Cookie连接大量不同房间,以及同一个Cookie多次连接相同房间,是否会造成其他连接被中断掉呀

我是第一种

xfgryujk commented 1 year ago

接口差不多就改成这样了,目前没条件测试,有人帮忙测试吗

单个很稳定,如果量大的话还是存在收不到弹幕的现象

不是,我想测的是开放平台接口

why0209 commented 1 year ago

接口差不多就改成这样了,目前没条件测试,有人帮忙测试吗

单个很稳定,如果量大的话还是存在收不到弹幕的现象

不是,我想测的是开放平台接口

呜呜 没有key

c-basalt commented 1 year ago

那个开放平台好像只开放给企业申请吧,文档里直接说的“暂未开通个人开发者的申请入驻”,感觉大部分主播估计很难用的上 是计划会内置一个appkey之类的吗

xfgryujk commented 1 year ago

那个开放平台好像只开放给企业申请吧,文档里直接说的“暂未开通个人开发者的申请入驻”,感觉大部分主播估计很难用的上 是计划会内置一个appkey之类的吗

现在个人可以申请了,我已经通过了。blivechat的话应该做成没有key的时候把请求转发到我的服务器

why0209 commented 1 year ago

那个开放平台好像只开放给企业申请吧,文档里直接说的“暂未开通个人开发者的申请入驻”,感觉大部分主播估计很难用的上 是计划会内置一个appkey之类的吗

现在个人可以申请了,我已经通过了。blivechat的话应该做成没有key的时候把请求转发到我的服务器

大佬,直接创建项目不创建开发版本的话appid可以供多人使用吗

xfgryujk commented 1 year ago

那个开放平台好像只开放给企业申请吧,文档里直接说的“暂未开通个人开发者的申请入驻”,感觉大部分主播估计很难用的上 是计划会内置一个appkey之类的吗

现在个人可以申请了,我已经通过了。blivechat的话应该做成没有key的时候把请求转发到我的服务器

大佬,直接创建项目不创建开发版本的话appid可以供多人使用吗

没上线的项目只能用在自己的直播间

reitowo commented 1 year ago

OPEN_LIVE的事件缺的东西蛮多的,不如直接让主播扫码登陆吧

falcomzwei commented 1 year ago

那个开放平台好像只开放给企业申请吧,文档里直接说的“暂未开通个人开发者的申请入驻”,感觉大部分主播估计很难用的上 是计划会内置一个appkey之类的吗

现在个人可以申请了,我已经通过了。blivechat的话应该做成没有key的时候把请求转发到我的服务器

请问要怎么申请,页面上看还是只有企业可以注册

xfgryujk commented 1 year ago

那个开放平台好像只开放给企业申请吧,文档里直接说的“暂未开通个人开发者的申请入驻”,感觉大部分主播估计很难用的上 是计划会内置一个appkey之类的吗

现在个人可以申请了,我已经通过了。blivechat的话应该做成没有key的时候把请求转发到我的服务器

请问要怎么申请,页面上看还是只有企业可以注册

Read The Fucking Fine Documentation: https://open-live.bilibili.com/document/849b924b-b421-8586-3e5e-765a72ec3840