-
Notifications
You must be signed in to change notification settings - Fork 218
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
【BUG】直播间相关请求数据被限制 #372
Comments
库版本? pip show bilibili-api-python |
Version: 15.3.1 |
同样获取的 |
15.3.1 |
user.User.get_user_info() 的问题可以更新库解决 pip install bilibili-api-python --upgrade 直播间相关问题还在研究 |
收到 如果需要相关数据我这里都可以提供 |
是b站搞的新机制,解决办法是使用 cred = Credential(sessdata="", bili_jct="")
room = live.LiveDanmaku(21452505, credential=cred) |
好高的效率!我试一下还会不会出现类似情况 |
好像没用呀 还是会被限制 |
确实不行,我再研究下 |
加油! |
也许可以参考 SocialSisterYi/bilibili-API-collect#732 |
与现在的方案冲突了 #373 |
说起来,这应该是对未登录用户的限制,为什么使用 credential 模拟登录后的用户不能解决问题呢…… |
因为现在的认证包中并未发送 bilibili-api/bilibili_api/live.py Lines 1065 to 1077 in 86f6882
#373 修改后加上了 |
所以现在更新版本就可以了嘛 |
等release |
需要登录任意账号还是需要登录主播账号 |
测试对未登录申请,5分钟后会模糊uid和弹幕信息,可否添加定时申请弹幕流,但是又会有丢失弹幕的风险 |
不是 #373 已经修复了,只要等新release就行了 |
大概需要多久呢大佬 |
今天发现直播弹幕的获取会漏掉一部分,我启动两个程序监听同一个直播间,都存在漏弹幕,而且漏的内容不同。不知道是不是有频率限制。15.3.1版本的 |
确定是漏了弹幕吗,有没有可能是两个程序打印弹幕的顺序不一样误以为遗漏?或者是真的有遗漏,这种情况通常发生于每秒弹幕量超过20条时。 |
确实是遗漏,而且某个机器遗漏80%,加不加cre都会漏,没有明显的用户等级/粉丝牌特征。程序唯一的改动就是昨天加了每5分钟重连。
|
你是说在断开和重新连接的过程中会丢失弹幕吗,这个过程就是应该丢失的呀。 |
不是,是整个过程都会漏。我连其他直播间也是这样。 |
刚一直在测试,用不同的账号的cre,访问不同分区的直播间,都有漏弹幕的情况。然后等到5分钟后用户信息失效后,弹幕就都不漏了。(15.3.1) 测试代码: import asyncio
from bilibili_api import live, Credential, Danmaku, sync
from bilibili_api.live import LiveRoom, LiveDanmaku
credential = Credential(
sessdata="xxx",
bili_jct="xxx"
)
BLIBILI_ROOM = LiveDanmaku('xxx', credential=credential)
@BLIBILI_ROOM.on('DANMU_MSG')
async def _on_danmu_msg(event):
content: str = event["data"]["info"][1].strip().replace(" ", "").lower() # 获取弹幕内容
user_name = event["data"]["info"][2][1] # 获取发送弹幕的用户昵称
uid = event["data"]["info"][2][0] # 获取发送弹幕的用户UID
print(f"接受消息{user_name} {uid} {content}")
async def main():
await asyncio.gather(BLIBILI_ROOM.connect())
if __name__ == '__main__':
asyncio.run(main()) |
emmm,这下好像不是一会儿能发 release 的了...
|
无论登录状态都会在前五分钟漏弹幕?而且后五分钟就不会? 漏弹幕是两个程序相互对照的话,有可能是B站自身接口超过一定阈值后随机漏点弹幕 建议考虑对照 WEB 端看下会不会漏 =。=
|
无论登不登陆都漏,随机漏,过了5分钟之后就不会了。我目前换成了blivedm没有漏和星号的问题。 |
什么叫登不登录都漏,现在的LiveDanmaku压根就没有登录,就算你传了cred进去也是没登。你参考 #373 中对 live.py 的修改,改下你本地的bilibili-api库再试试漏不漏 |
|
|
快发!等不及了! |
发呗,要是不确定能不能正确解决问题你版本号就写 |
在改 |
|
不管了,我没 pypi 权限去删了重发,就这样吧
|
我看了看 https://semver.org/lang/zh-CN 可能 |
两天内没别的毛病我去发 v15.5.2 |
还有多久发release捏,这个b站限制功能是真的离谱 |
发了啊…15.5.1b0 |
@main_room.on('DANMU_MSG') # 弹幕消息事件回调函数
user_name = event["data"]["info"][2][1] # 获取用户昵称
经过一段时间后 user_name获取到的都是不完整的 以*号填充的名字
另外通过user.User.get_user_info()请求不到数据
The text was updated successfully, but these errors were encountered: