bilibili-API-collect
bilibili-API-collect copied to clipboard
游客获取 `buvid3`/`buvid4`
GET https://api.bilibili.com/x/frontend/finger/spi
{
"code": 0,
"data": {
"b_3": "7CD33A68-44A3-CD36-E673-9E2BA37DA0FE65095infoc",
"b_4": "7CD783BE-C11C-0A7D-F97D-E7A97CA2A5EF65095-023082418-Pk1O31qDhl72PWBbOdWFow322IXICu3XsGWvXg7QG+Q02pcHIJbzyQ=="
},
"message": "ok"
}
正常第一次访问页面的话buvid3
是返回头set-cookie
内携带
正常第一次访问页面的话
buvid3
是返回头set-cookie
内携带
http 接口方便一点
接口的貌似不能用。
接口的貌似不能用。
可以的我记得
http 接口方便一点
确实,不过我记得头部的话,还有个参数
b_nut
,虽然目前没看到有什么意义,而且,测试了几个接口,buvid3
和buvid4
甚至乱写都可以,只要非空?
有的接口不能乱写,比如放映室,b_nut
没人分析不知道,在这问没用...
http 接口方便一点
确实,不过我记得头部的话,还有个参数
b_nut
,虽然目前没看到有什么意义,而且,测试了几个接口,buvid3
和buvid4
甚至乱写都可以,只要非空?有的接口不能乱写,比如放映室,
b_nut
没人分析不知道,在这问没用...
Math.floor(Date.now() / 1e3).toString()
GET https://api.bilibili.com/x/frontend/finger/spi
{ "code": 0, "data": { "b_3": "7CD33A68-44A3-CD36-E673-9E2BA37DA0FE65095infoc", "b_4": "7CD783BE-C11C-0A7D-F97D-E7A97CA2A5EF65095-023082418-Pk1O31qDhl72PWBbOdWFow322IXICu3XsGWvXg7QG+Q02pcHIJbzyQ==" }, "message": "ok" }
这个接口好像没有了
GET https://api.bilibili.com/x/frontend/finger/spi
{ "code": 0, "data": { "b_3": "7CD33A68-44A3-CD36-E673-9E2BA37DA0FE65095infoc", "b_4": "7CD783BE-C11C-0A7D-F97D-E7A97CA2A5EF65095-023082418-Pk1O31qDhl72PWBbOdWFow322IXICu3XsGWvXg7QG+Q02pcHIJbzyQ==" }, "message": "ok" }
这个接口好像没有了
GET https://api.bilibili.com/x/frontend/finger/spi
{ "code": 0, "data": { "b_3": "7CD33A68-44A3-CD36-E673-9E2BA37DA0FE65095infoc", "b_4": "7CD783BE-C11C-0A7D-F97D-E7A97CA2A5EF65095-023082418-Pk1O31qDhl72PWBbOdWFow322IXICu3XsGWvXg7QG+Q02pcHIJbzyQ==" }, "message": "ok" }
这个接口好像没有了
哦哦,我抓包的时候没这个
EDIT:游客获取鸭,打扰了(doge)
我使用这种方式获取的buvid来调用视频点赞的API有点问题
$ curl "https://api.bilibili.com/x/web-interface/archive/like?bvid=xxx&like=1&csrf=xxx" \
-H "Cookie: SESSDATA=xxx; buvid3=60CFFD2A-5D28-97BC-A6FD-75838D5CD72330730infoc" \
-X POST
Object {
"code": Number(-403),
"message": String("账号异常,操作失败"),
"ttl": Number(1),
}
使用浏览器里copy的没有问题。
只需要SESSDATA的其他API也没问题,csrf也没问题,就是buvid不太对。
EDIT:游客获取鸭,打扰了(doge)
我使用这种方式获取的buvid来调用视频点赞的API有点问题
$ curl "https://api.bilibili.com/x/web-interface/archive/like?bvid=xxx&like=1&csrf=xxx" \ -H "Cookie: SESSDATA=xxx; buvid3=60CFFD2A-5D28-97BC-A6FD-75838D5CD72330730infoc" \ -X POST Object { "code": Number(-403), "message": String("账号异常,操作失败"), "ttl": Number(1), }
使用浏览器里copy的没有问题。
只需要SESSDATA的其他API也没问题,csrf也没问题,就是buvid不太对。
是不是游客无所谓的...已登录删 buvid 也是调 spi
@z0z0r4
我看 #933 的意思似乎是 buvid 还需要激活。 但是我激活了,也没成功用它完成点赞API的调用。可能是我犯了其他低级错误。
如果确实可以直接用请求到的buvid调用点赞API的话,麻烦帮我再确认一下(🙏ˊᗜˋ*),我好继续排查。
如果有兴趣,也可以帮我康康 code
我看不懂rs,但看起来是这个流程,不确定 headers 之类的风控你没搞错
但是 spi 拿到的 buvid 对于点赞是不需要激活的,我这还没激活就可以用
>>> from bilibili_api import video, Credential, sync
>>> c = Credential(sessdata="", bili_jct="")
>>> v = video.Video(bvid="BV1EK4y1z7St", credential=c)
>>> sync(v.like())
>>> sync(v.has_liked())
1
EDIT:游客获取鸭,打扰了(doge)
我使用这种方式获取的buvid来调用视频点赞的API有点问题
$ curl "https://api.bilibili.com/x/web-interface/archive/like?bvid=xxx&like=1&csrf=xxx" \ -H "Cookie: SESSDATA=xxx; buvid3=60CFFD2A-5D28-97BC-A6FD-75838D5CD72330730infoc" \ -X POST Object { "code": Number(-403), "message": String("账号异常,操作失败"), "ttl": Number(1), }
使用浏览器里copy的没有问题。
只需要SESSDATA的其他API也没问题,csrf也没问题,就是buvid不太对。
虽然我不知道你那边有啥问题,但是我直接在 cmd 里面是可以 POST 上去的...
@z0z0r4
确实。
我测试用的 BVID是 BV1GQ4y177Dv
。
{
"code": Number(-403),
"message": String("账号异常,操作失败"),
"ttl": Number(1),
}
换了 BV1aT4y1h71M
就可以了。
{
"code": Number(65006),
"message": String("已赞过"),
"ttl": Number(1),
}
居然是Up主的账号异常。。。。。。。。太逆天了……
Edit:离谱的是从浏览器复制的 cookie 对两个视频都是可以成功点赞的。🤔 Edit: 有的能赞,有的不能赞,不知道为啥。。。