@@ -134,7 +134,7 @@ curl -G 'https://app.bilibili.com/x/v2/splash/brand/list' \
|
||||
|
||||
如id=11的图片为:
|
||||
|
||||

|
||||
<img src="https://i0.hdslb.com/bfs/archive/fe737da5cdedf9dad038e5fd30e957be8a063bc2.png" referrerpolicy="no-referrer" />
|
||||
|
||||
|
||||
## 获取APP端开屏幕广告信息
|
||||
@@ -564,4 +564,4 @@ curl -X GET 'https://app.bilibili.com/x/v2/splash/list' \
|
||||
}
|
||||
}
|
||||
```
|
||||
</details>
|
||||
</details>
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
# 相簿操作
|
||||
|
||||
<details>
|
||||
<summary>功能已下线</summary>
|
||||
|
||||
## ~~点赞相簿~~
|
||||
|
||||
> https://api.vc.bilibili.com/link_draw/v2/Vote/operate
|
||||
@@ -167,4 +170,5 @@ curl 'https://api.vc.bilibili.com/user_plus/v1/Fav/delete' \
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
</details>
|
||||
</details>
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
# 相簿活动列表
|
||||
|
||||
<details>
|
||||
<summary>功能已下线</summary>
|
||||
|
||||
## 获取相簿热门活动列表
|
||||
|
||||
> https://api.vc.bilibili.com/photo_activity/v2/Activity/list
|
||||
@@ -145,4 +148,5 @@ curl -G 'https://api.vc.bilibili.com/photo_activity/v2/Activity/list' \
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
</details>
|
||||
</details>
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
# 相簿基本信息
|
||||
|
||||
<details>
|
||||
<summary>功能已下线</summary>
|
||||
|
||||
## 获取相簿详细信息
|
||||
|
||||
>https://api.vc.bilibili.com/link_draw/v1/doc/detail
|
||||
@@ -242,4 +245,5 @@ curl -G 'https://api.vc.bilibili.com/link_draw/v1/doc/detail' \
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
</details>
|
||||
</details>
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
# 相簿列表
|
||||
|
||||
<details>
|
||||
<summary>功能已下线</summary>
|
||||
|
||||
## 获取画友首页列表
|
||||
|
||||
> https://api.vc.bilibili.com/link_draw/v2/Doc/index
|
||||
@@ -2431,4 +2434,5 @@ curl -G 'https://api.vc.bilibili.com/link_draw/v1/doc/others' \
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
</details>
|
||||
</details>
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
# 相簿推荐作者
|
||||
|
||||
<details>
|
||||
<summary>功能已下线</summary>
|
||||
|
||||
## 获取摄影推荐作者
|
||||
|
||||
> https://api.vc.bilibili.com/link_draw/v2/Photo/uper
|
||||
@@ -163,4 +166,4 @@ curl -G 'https://api.vc.bilibili.com/link_draw/v2/Doc/drawer' \
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
</details>
|
||||
|
||||
@@ -384,7 +384,7 @@ func main() {
|
||||
|
||||
|
||||
### C++
|
||||
```c++
|
||||
```cpp
|
||||
#include <algorithm>
|
||||
#include <cassert>
|
||||
#include <print>
|
||||
@@ -497,9 +497,7 @@ int main() {
|
||||
|
||||
### 编程实现
|
||||
|
||||
使用 [Python](#Python) [C](#C) [TypeScript](#TypeScript) [Java](#Java) [Kotlin](#Kotlin) [Golang](#Golang) [Rust](#Rust) 等语言作为示例,欢迎社区提交更多例程
|
||||
|
||||
注: 新算法只提供了 [Python](#Python) 和 [Rust](#Rust) 版本
|
||||
使用 Python C TypeScript Java Kotlin Golang Rust 等语言作为示例,欢迎社区提交更多例程
|
||||
|
||||
#### Python
|
||||
|
||||
|
||||
@@ -34,32 +34,31 @@
|
||||
|
||||
https://i1.hdslb.com/bfs/archive/e5fff1472bad1c0c6bcb3004205f9be23b58ffc0.jpg
|
||||
|
||||

|
||||
<img src="https://i1.hdslb.com/bfs/archive/e5fff1472bad1c0c6bcb3004205f9be23b58ffc0.jpg" referrerpolicy="no-referrer" />
|
||||
|
||||
高度限制为100
|
||||
|
||||
https://i1.hdslb.com/bfs/archive/e5fff1472bad1c0c6bcb3004205f9be23b58ffc0.jpg@100h
|
||||
|
||||

|
||||
<img src="https://i1.hdslb.com/bfs/archive/e5fff1472bad1c0c6bcb3004205f9be23b58ffc0.jpg@100h" referrerpolicy="no-referrer" />
|
||||
|
||||
宽度限制为100
|
||||
|
||||
https://i1.hdslb.com/bfs/archive/e5fff1472bad1c0c6bcb3004205f9be23b58ffc0.jpg@100w
|
||||
|
||||

|
||||
<img src="https://i1.hdslb.com/bfs/archive/e5fff1472bad1c0c6bcb3004205f9be23b58ffc0.jpg@100w" referrerpolicy="no-referrer" />
|
||||
|
||||
转换格式为webp
|
||||
|
||||
https://i1.hdslb.com/bfs/archive/e5fff1472bad1c0c6bcb3004205f9be23b58ffc0.jpg@.webp
|
||||
|
||||

|
||||
<img src="https://i1.hdslb.com/bfs/archive/e5fff1472bad1c0c6bcb3004205f9be23b58ffc0.jpg@.webp" referrerpolicy="no-referrer" />
|
||||
|
||||
转换为webp图片质量为1%
|
||||
|
||||
https://i1.hdslb.com/bfs/archive/e5fff1472bad1c0c6bcb3004205f9be23b58ffc0.jpg@1q.webp
|
||||
|
||||

|
||||
|
||||
<img src="https://i1.hdslb.com/bfs/archive/e5fff1472bad1c0c6bcb3004205f9be23b58ffc0.jpg@1q.webp" referrerpolicy="no-referrer" />
|
||||
</details>
|
||||
|
||||
## avg_color格式说明
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
|
||||
## Demo
|
||||
|
||||
该 Demo 提供 [Python](#Python)、[Java](#Java)、[TS/JS](#TypeScript/JavaScript)、[Swift](#Swift)、[C++](#CplusPlus) 语言例程
|
||||
该 Demo 提供 [Python](#python)、[Java](#java)、[TS/JS](#typescript-javascript)、[Swift](#swift)、[C++](#cplusplus) 语言例程
|
||||
|
||||
使用 appkey = `1d8b6e7d45233436`, appsec = `560c52ccd288fed045859ed18bffd973` 对如下 `params` 参数进行签名
|
||||
|
||||
|
||||
@@ -6,12 +6,14 @@
|
||||
|
||||
`v_voucher` 结构为字符串 `voucher_` 尾随一串以 `-` 为分隔符的小写 UUID
|
||||
|
||||
`v_voucher` 可用于申请 captcha 验证码, 根据验证结果使用 `validate` 接口获取 `grisk_id` 作为被风控接口的 `gaia_vtoken` 与 Cookie 中的 `x-bili-gaia-vtoken` 即可恢复正常访问
|
||||
`v_voucher` 可用于申请 captcha 验证码, 若无意外发生, 根据验证结果使用 `validate` 接口获取 `grisk_id` 作为被风控接口的 `gaia_vtoken` 与 Cookie 中的 `x-bili-gaia-vtoken`, 即可恢复正常访问
|
||||
|
||||
若该情况出现在使用 Wbi 签名的接口中, 建议先检查 Wbi 签名是否正确. 若已检查 Wbi 签名或无需签名, 检查请求头中 `User-Agent` `Referer` 是否正常, 以及 `Cookie` 中 [`bili_ticket`](bili_ticket.md) [`b_nut` `buvid3` `buvid4`](../buvid3_4.md) 等是否存在. 使用 captcha 是最后的选择, 因为 captcha 验证需要用户操作<!--, 且这几天做验证码做的真的要疯了喵-->
|
||||
|
||||
参见 [#1067](https://github.com/SocialSisterYi/bilibili-API-collect/issues/1067)
|
||||
|
||||
**注意: 不是所有风控都可以使用本方式通过 captcha 解决**
|
||||
|
||||
## 操作流程
|
||||
|
||||
1. 快速以不正确的姿势请求接口, 直到返回 `v_voucher` 字段如下. 若 `data` 中没有 `v_voucher` 字段, 则检查响应头 `x-bili-gaia-vvoucher`
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
自 2023 年 3 月起,Bilibili Web 端部分接口开始采用 WBI 签名鉴权,表现在 REST API 请求时在 Query param 中添加了 `w_rid` 和 `wts` 字段。WBI 签名鉴权独立于 [APP 鉴权](APP.md) 与其他 Cookie 鉴权,目前被认为是一种 Web 端风控手段。
|
||||
|
||||
经持续观察,大部分查询性接口都已经或准备采用 WBI 签名鉴权,请求 WBI 签名鉴权接口时,若签名参数 `w_rid` 与时间戳 `wts` 缺失、错误,会返回 `v_voucher`,如:
|
||||
经持续观察,大部分查询性接口都已经或准备采用 WBI 签名鉴权,请求 WBI 签名鉴权接口时,若签名参数 `w_rid` 与时间戳 `wts` 缺失、错误,会返回 [`v_voucher`](v_voucher.md),如:
|
||||
|
||||
```json
|
||||
{"code":0,"message":"0","ttl":1,"data":{"v_voucher":"voucher_******"}}
|
||||
@@ -12,6 +12,8 @@
|
||||
|
||||
细节更新:[#885](https://github.com/SocialSisterYi/bilibili-API-collect/issues/885)。
|
||||
|
||||
最新进展: [#919](https://github.com/SocialSisterYi/bilibili-API-collect/issues/919)
|
||||
|
||||
## WBI 签名算法
|
||||
|
||||
1. 获取实时口令 `img_key`、`sub_key`
|
||||
@@ -30,6 +32,7 @@
|
||||
`img_key`、`sub_key` 全站统一使用,观测知应为**每日更替**,使用时建议做好**缓存和刷新**处理。
|
||||
|
||||
特别地,发现部分接口将 `img_key`、`sub_key` 硬编码进 JavaScript 文件内,如搜索接口 `https://s1.hdslb.com/bfs/static/laputa-search/client/assets/index.1ea39bea.js`,暂不清楚原因及影响。
|
||||
同时, 部分页面会在 SSR 的 `__INITIAL_STATE__` 包含 `wbiImgKey` 与 `wbiSubKey`, 具体可用性与区别尚不明确
|
||||
|
||||
2. 打乱重排实时口令获得 `mixin_key`
|
||||
|
||||
@@ -78,9 +81,9 @@
|
||||
|
||||
```javascript
|
||||
{
|
||||
foo: '114',
|
||||
bar: '514',
|
||||
zab: 1919810
|
||||
foo: '114',
|
||||
bar: '514',
|
||||
zab: 1919810
|
||||
}
|
||||
```
|
||||
|
||||
@@ -97,17 +100,17 @@
|
||||
}
|
||||
```
|
||||
|
||||
随后按键名升序排序后编码 URL Query,拼接前面得到的 `mixin_key`,如 `bar=514&foo=114&wts=1702204169&zab=1919810ea1db124af3c7062474693fa704f4ff8`,计算其 MD5 即为 `w_rid`。
|
||||
随后按键名升序排序后百分号编码 URL Query,拼接前面得到的 `mixin_key`,如 `bar=514&foo=114&wts=1702204169&zab=1919810ea1db124af3c7062474693fa704f4ff8`,计算其 MD5 即为 `w_rid`。
|
||||
|
||||
需要注意的是:如果参数值含中文或特殊字符等,编码字符字母应当**大写** (部分库会编码为小写字母),空格应当编码为 `%20`(部分库按 `application/x-www-form-urlencoded` 约定编码为 `+`)。
|
||||
需要注意的是:如果参数值含中文或特殊字符等,编码字符字母应当**大写** (部分库会错误编码为小写字母),空格应当编码为 `%20`(部分库按 `application/x-www-form-urlencoded` 约定编码为 `+`), 具体正确行为可参考 [encodeURIComponent 函数](https://tc39.es/ecma262/multipage/global-object.html#sec-encodeuricomponent-uricomponent)
|
||||
|
||||
例如:
|
||||
|
||||
```javascript
|
||||
{
|
||||
foo: 'one one four',
|
||||
bar: '五一四',
|
||||
baz: 1919810
|
||||
foo: 'one one four',
|
||||
bar: '五一四',
|
||||
baz: 1919810
|
||||
}
|
||||
```
|
||||
|
||||
@@ -121,7 +124,7 @@
|
||||
|
||||
## Demo
|
||||
|
||||
含 [Python](#python)、[JavaScript](#javascript)、[Golang](#golang)、[C#](#csharp)、[Java](#java)、[Kotlin](#kotlin)、[Swift](#swift)、[C++](#cplusplus)、[Rust](#rust)、[Haskell](#haskell) 语言编写的 Demo 。
|
||||
含 [Python](#python)、[JavaScript](#javascript)、[Golang](#golang)、[C#](#csharp)、[Java](#java)、[Kotlin](#kotlin)、[Swift](#swift)、[C++](#cplusplus)、[Rust](#rust)、[Haskell](#haskell) 语言编写的 Demo
|
||||
|
||||
### Python
|
||||
|
||||
|
||||
@@ -610,7 +610,7 @@ curl -G 'https://api.bilibili.com/x/web-interface/view' \
|
||||
|
||||
https://i1.hdslb.com/bfs/archive/ea0dd34bf41e23a68175680a00e3358cd249105f.jpg
|
||||
|
||||

|
||||
<img src="https://i1.hdslb.com/bfs/archive/ea0dd34bf41e23a68175680a00e3358cd249105f.jpg" referrerpolicy="no-referrer" />
|
||||
|
||||
## 获取视频超详细信息(web端)
|
||||
|
||||
|
||||
@@ -280,7 +280,7 @@ curl -G 'https://api.bilibili.com/pvideo' \
|
||||
|
||||
示例拼版图片url:http://i0.hdslb.com/bfs/videoshot/49075258.jpg
|
||||
|
||||

|
||||
<img src="https://i0.hdslb.com/bfs/videoshot/49075258.jpg" referrerpolicy="no-referrer" />
|
||||
|
||||
## bin格式截取时间表
|
||||
|
||||
|
||||
Reference in New Issue
Block a user