bilibili-API-collect icon indicating copy to clipboard operation
bilibili-API-collect copied to clipboard

游客获取 `buvid3`/`buvid4`

Open z0z0r4 opened this issue 1 year ago • 15 comments

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"
}

z0z0r4 avatar Aug 24 '23 10:08 z0z0r4

正常第一次访问页面的话buvid3是返回头set-cookie内携带

GOOD-AN avatar Aug 27 '23 02:08 GOOD-AN

正常第一次访问页面的话buvid3是返回头set-cookie内携带

http 接口方便一点

z0z0r4 avatar Aug 27 '23 05:08 z0z0r4

接口的貌似不能用。

titxue avatar Sep 15 '23 07:09 titxue

接口的貌似不能用。

可以的我记得

z0z0r4 avatar Sep 15 '23 14:09 z0z0r4

http 接口方便一点

确实,不过我记得头部的话,还有个参数b_nut,虽然目前没看到有什么意义,而且,测试了几个接口,buvid3buvid4甚至乱写都可以,只要非空?

有的接口不能乱写,比如放映室,b_nut 没人分析不知道,在这问没用...

z0z0r4 avatar Oct 29 '23 09:10 z0z0r4

http 接口方便一点

确实,不过我记得头部的话,还有个参数b_nut,虽然目前没看到有什么意义,而且,测试了几个接口,buvid3buvid4甚至乱写都可以,只要非空?

有的接口不能乱写,比如放映室,b_nut 没人分析不知道,在这问没用...

Math.floor(Date.now() / 1e3).toString()

kaosaa avatar Nov 10 '23 03:11 kaosaa

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"
}

这个接口好像没有了

Edge-Wind avatar Jan 22 '24 07:01 Edge-Wind

图片

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"
}

这个接口好像没有了

z0z0r4 avatar Jan 23 '24 09:01 z0z0r4

图片

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"
}

这个接口好像没有了

哦哦,我抓包的时候没这个

Edge-Wind avatar Jan 24 '24 07:01 Edge-Wind

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不太对。

kingwingfly avatar Jan 27 '24 15:01 kingwingfly

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 avatar Jan 28 '24 01:01 z0z0r4

@z0z0r4

我看 #933 的意思似乎是 buvid 还需要激活。 但是我激活了,也没成功用它完成点赞API的调用。可能是我犯了其他低级错误。

如果确实可以直接用请求到的buvid调用点赞API的话,麻烦帮我再确认一下(🙏ˊᗜˋ*),我好继续排查。

如果有兴趣,也可以帮我康康 code

kingwingfly avatar Jan 28 '24 04:01 kingwingfly

我看不懂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

z0z0r4 avatar Jan 28 '24 08:01 z0z0r4

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 上去的...

image

z0z0r4 avatar Jan 28 '24 08:01 z0z0r4

@z0z0r4 确实。 我测试用的 BVID是 BV1GQ4y177Dv

{
    "code": Number(-403),
    "message": String("账号异常,操作失败"),
    "ttl": Number(1),
}

换了 BV1aT4y1h71M 就可以了。

{
    "code": Number(65006),
    "message": String("已赞过"),
    "ttl": Number(1),
}

居然是Up主的账号异常。。。。。。。。太逆天了……

Edit:离谱的是从浏览器复制的 cookie 对两个视频都是可以成功点赞的。🤔 Edit: 有的能赞,有的不能赞,不知道为啥。。。

kingwingfly avatar Jan 28 '24 09:01 kingwingfly