弹幕用户名打码功能跟进
sparanoid opened this issue · 17 comments
似乎是因为portover=3?
观察了一段时间,WS 连接超过一段时间后(大概 5 分钟,但这个似乎是灰度,有时候未登录状态下很长时间也还是正常的)会出现如下事件,之后的用户名开始打码:
{
"cmd": "LOG_IN_NOTICE",
"data": {
"notice_msg": "为保护用户隐私,未注册登陆用户将无法查看他人昵称",
"image_web": "http://i0.hdslb.com/bfs/dm/75e7c16b99208df259fe0a93354fd3440cbab412.png",
"image_app": ""
}
}
相关问题 xfgryujk/blivedm#28
目前观测下来,完整的构建建立连接的请求可以进行规避,即:额外传入 uid
、buvid
、key
即可绕过限制。另外现在官方已经不传 clientver
字段了
buvid
:可通过https://data.bilibili.com/v/
的set-cookie
头获取,目前buvid2
与buvid3
是一样的key
:可通过https://api.live.bilibili.com/xlive/web-room/v1/index/getDanmuInfo?id=${room_id}
获取
但是由于以上两个请求都有 CORS,因此不适用于 client-side 应用,加上最近哔哩哔哩频繁对验证进行改动,可以考虑支持传入任意对象(或者直接用 authBody
?),这样可以通过第三方渠道来获取这些字段,也更方便日后扩展
额外传入
uid
、buvid
、key
这个后续会跟进嘛
似乎有效的办法
xfgryujk/blivedm#29
目前来说就直接传入一个authBody罢(还好之前留了这个参数
@simon300000 authBody
理论上也需要用 encoder
做一次编码才可以?目前是没有这么做的:
bilibili-live-ws/src/common.ts
Lines 77 to 86 in 1c70a53
哦确实,这样不太好用
@CottnCor 从代码逻辑来看是需要的,另外根据 xfgryujk/blivedm#29 的描述,目前似乎只额外传入 uid
就可以了
刚刚移除了 clientver,加入了 uid 和 buvid 的选项,typeof autoBody === object
的 autoBody 会被 encode 再发出去,应该不会影响开放平台🤔
bilibili-live-ws@6.3.0
似乎可用的方法又增加了
似乎可用的方法又增加了
这个 blivechat 作者试过,给我回复了似乎 key 和 ip 绑定,只能本地用,目前直接在 Auth 时填 uid 就有效
问个问题,https://github.com/simon300000/bilibili-live-ws#class-livews--livetcp--keeplivews--keeplivetcp 创建实例的时候有没有可以pass cookie的地方(具体我不清楚需要哪个cookie)?我觉得有一个方式直接pass cookie会比较方便点?
问个问题,https://github.com/simon300000/bilibili-live-ws#class-livews--livetcp--keeplivews--keeplivetcp 创建实例的时候有没有可以pass cookie的地方(具体我不清楚需要哪个cookie)?我觉得有一个方式直接pass cookie会比较方便点?
目前可以自己用api通过http拿token/key然后填key,uid,buvid
我记得只需要这三个
有个uid的问题想问一下:
- 当我传入9位uid的时候,用户名和弹幕都可以正常获取显示
- 但是当我传入16位uid的时候,弹幕和用户名一个都获取不到了
是不是uid(int类型,2^32 = 4294967296 )范围有限制?