mirror of
https://github.com/SocialSisterYi/bilibili-API-collect.git
synced 2025-03-23 14:50:06 +08:00
Merge remote-tracking branch 'upstream/master' into patch-1
This commit is contained in:
commit
4dea795ed6
@ -1,5 +1,5 @@
|
||||
<p align="center">
|
||||
<img src="./assets/img/logo.png" width="250" height="200">
|
||||
<img src="./assets/img/logo.png" width="250" height="200" />
|
||||
</p>
|
||||
<h1 align="center">哔哩哔哩 - API 收集整理</h1>
|
||||
<p align="center" class="shields">
|
||||
@ -112,7 +112,7 @@ B站 API 采用 C/S 结构,大多数接口为 REST API 和 gRPC,少部分接
|
||||
- [ ] [视频](docs/video)
|
||||
- [x] [视频分区一览 (分区代码)](docs/video/video_zone.md)
|
||||
- [x] [基本信息](docs/video/info.md)
|
||||
- [x] [状态数](docs/video/status_number.md)
|
||||
- [x] [状态数](docs/video/status_number.md) (已失效)
|
||||
- [x] [快照](docs/video/snapshot.md)
|
||||
- [x] [点赞 & 投币 & 收藏 & 分享](docs/video/action.md)
|
||||
- [ ] [TAG](docs/video/tags.md)
|
||||
@ -313,7 +313,7 @@ ProtoBuf 序列格式:[传送门](https://www.jianshu.com/p/a24c88c0526a)
|
||||
|
||||
## 💦交流
|
||||
|
||||
<img src="https://avatars.githubusercontent.com/u/45892418" width="100" height="100">
|
||||
<img src="https://avatars.githubusercontent.com/u/45892418" width="100" height="100" />
|
||||
|
||||
⚠注意:开源社群欢迎交流探讨,**拒绝**咨询、**不支持**合作,**黑产号**一经发现立即拉黑并举报相关 SRC
|
||||
|
||||
@ -328,7 +328,7 @@ ProtoBuf 序列格式:[传送门](https://www.jianshu.com/p/a24c88c0526a)
|
||||
|
||||
WeChat & Alipay:
|
||||
|
||||
<img src="./assets/img/sponsorQR.jpg" width="300" height="300">
|
||||
<img src="./assets/img/sponsorQR.jpg" width="300" height="300" />
|
||||
|
||||
OR Aifadian:[https://afdian.net/@ShakaiAneE](https://afdian.net/@ShakaiAneE)
|
||||
|
||||
|
@ -1,23 +1,113 @@
|
||||
# 获取最新 APP 版本
|
||||
|
||||
## 获取版本信息
|
||||
|
||||
> https://app.bilibili.com/x/v2/version
|
||||
|
||||
*请求方法: GET*
|
||||
|
||||
<!--{
|
||||
"from": {
|
||||
"url": "https://app.bilibili.com/"
|
||||
}
|
||||
}-->
|
||||
|
||||
**URL参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| mobi_app | str | 目标客户端类型 | 不必要 | 留空为最新有更新的平台<br />android: Android 版<br />iphone: iPhone 版<br />ipad: iPad HD 版<br />win: UWP 版<br />android_tv_yst: TV 版<br />android_car: 车机版<br />pc_client: PC 客户端 |
|
||||
|
||||
**JSON回复:**
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| --- | --- | --- | --- |
|
||||
| code | int | 返回值 | 0: 成功 |
|
||||
| message | str | 错误信息 | 默认为 `0` |
|
||||
| ttl | int | 1 | |
|
||||
| data | array | 版本信息列表 | |
|
||||
|
||||
`data` 数组中的对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| --- | --- | --- | --- |
|
||||
| plat | int | 平台 | 0: Android<br />1: iPhone<br />2: iPad HD<br />3: UWP<br />12: TV 版<br />35: 车机版<br />40: PC 客户端 |
|
||||
| desc | str | 版本描述 | |
|
||||
| version | str | 版本号 | |
|
||||
| build | int | 内部版本号 | |
|
||||
|
||||
**示例:**
|
||||
|
||||
```shell
|
||||
curl -G 'https://app.bilibili.com/x/v2/version' \
|
||||
--url-query'mobi_app=android'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1,
|
||||
"data": [
|
||||
{
|
||||
"plat": 0,
|
||||
"desc": "-修复了一些bug,切了个大西瓜~",
|
||||
"version": "8.9.0",
|
||||
"build": 8090300,
|
||||
"ptime": 1723612377
|
||||
},
|
||||
// ...
|
||||
{
|
||||
"plat": 0,
|
||||
"desc": "[修正]横屏状态下,视频列表加载失败的问题\n[修正]超过48kHz采样率的音频无法播放的问题\n[修正]部分系统黑屏的问题\nPS:帮下面的同学祈祷早日上架",
|
||||
"version": "2.0.4",
|
||||
"build": 0,
|
||||
"ptime": 1382630400
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 版本升级
|
||||
|
||||
> https://app.bilibili.com/x/v2/version/fawkes/upgrade
|
||||
|
||||
*请求方式: GET*
|
||||
|
||||
鉴权方式(非必须):[APP API 签名与鉴权](../misc/sign/APP.md)
|
||||
|
||||
**URL参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| - | - | - | - | - |
|
||||
| appkey | str | APP 密钥 | 不必要 | |
|
||||
| build | int | 当前 APP 版本号 | 必要 | 将会影响是否有新版本 |
|
||||
| mobi_app | str | 目标客户端类型 | 必要 | 如 `android` |
|
||||
| nt | str | 任意非空串 | 必要 | 默认为 `1` |
|
||||
| ov | str | 任意非空串 | 必要 | 默认为 `22` |
|
||||
| platform | str | 设备平台 | 必要 | 任意非空串即可, 如 `android` |
|
||||
| sn | int | 设备序列号? | 必要 | 任意数字即可, 如 `4462369` |
|
||||
| vn | str | 当前版本号 | 必要 | 任意非空串即可, 如 `6.13.0` |
|
||||
| abi | str | 设备 CPU ABI | 不必要 | 如 `arm64-v8a` |
|
||||
| appid | str | 客户端类型 | 不必要 | 如 `tv.danmaku.bili` |
|
||||
| brand | str | 设备品牌 | 不必要 | 如 `google` |
|
||||
| build | int | 当前 APP 版本号 | 必要 | 如 `8000200` |
|
||||
| channel | str | APP 分发渠道 | 必要 | 如 `master` |
|
||||
| deviceid | str | 设备唯一 ID | 不必要 | 即 XU-Prefixed BUVID,见 [device_identity](../misc/device_identity.md) |
|
||||
| env | str | APP 分发环境 | 不必要 | 默认 `prod` |
|
||||
| iv | int | 当前 APP innerVer | 不必要 | 如 `8000210` |
|
||||
| mobi_app | str | APP mobi_app | 必要 | 如 `android` |
|
||||
| model | str | 设备型号 | 不必要 | 如 `Pixel 2 XL` |
|
||||
| nt | str | - | 必要 | 默认 `1` |
|
||||
| ov | str | 设备 OS 版本 | 必要 | 安卓即 API Level,如 Android 11 为 `30` |
|
||||
| platform | str | 设备平台 | 不必要 | 如 `android` |
|
||||
| screen | str | 设备屏幕参数 | 不必要 | 如 `2712_1440@537.882_537.882`
|
||||
| sn | int | 当前 APP SN | 必要 | 如 `15088473` |
|
||||
| vn | str | 当前 APP 版本名称 | 必要 | 如 `8.0.0` |
|
||||
|
||||
**标头参数(Headers):**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| - | - | - | - | - |
|
||||
| app-key | str | APPKey 名称 | 必要 | 大体等同于 [`mobi_app`](../misc/sign/APPKey.md)。特别地:64 位版本粉版客户端应为 `android64` |
|
||||
| buvid | str | BUVID | 必要 | XU-Prefixed BUVID,见 [device_identity](../misc/device_identity.md) |
|
||||
|
||||
**JSON回复:**
|
||||
|
||||
@ -36,8 +126,8 @@
|
||||
| - | - | - | - |
|
||||
| title | str | 标题 | |
|
||||
| content | str | 内容 | |
|
||||
| version | str | 最新版本号 | |
|
||||
| version_code | int | 最新版本号 | build |
|
||||
| version | str | 最新版本名称 | |
|
||||
| version_code | int | 最新版本号 | 即 `build` |
|
||||
| url | str | 下载地址 | |
|
||||
| size | int | 大小 | 单位字节 |
|
||||
| md5 | str | MD5 值 | |
|
||||
@ -50,7 +140,7 @@
|
||||
|
||||
**示例:**
|
||||
|
||||
```curl
|
||||
```shell
|
||||
curl -G 'https://app.bilibili.com/x/v2/version/fawkes/upgrade' \
|
||||
--url-query 'build=1145141' \
|
||||
--url-query 'channel=apt' \
|
||||
@ -67,24 +157,25 @@ curl -G 'https://app.bilibili.com/x/v2/version/fawkes/upgrade' \
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1,
|
||||
"data": {
|
||||
"title": "升级提醒",
|
||||
"content": "-修复了一些bug,并优化了一些搜索和播放体验~\n-让我们举起双手,把力量借给备考的小伙伴们!",
|
||||
"version": "7.81.0",
|
||||
"version_code": 7810200,
|
||||
"url": "https://dl.hdslb.com/mobile/pack/android/15013586/iBiliPlayer-apinkRelease-7.81.0-b15013586.apk",
|
||||
"size": 138723520,
|
||||
"md5": "60f83fb828bc05aefdac67504ba72ea9",
|
||||
"silent": 0,
|
||||
"upgrade_type": 1,
|
||||
"cycle": 4,
|
||||
"policy": 0,
|
||||
"policy_url": "",
|
||||
"ptime": 1717554395
|
||||
}
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1,
|
||||
"data": {
|
||||
"title": "升级提醒",
|
||||
"content": "-修复了一些bug,并吃了一桶冰淇凌~\n-记得检查暑假作业哦!",
|
||||
"version": "8.10.0",
|
||||
"version_code": 8100300,
|
||||
"url": "https://dl.hdslb.com/mobile/pack/android64/15793300/iBiliPlayer-apinkRelease-8.10.0-b15793300.apk",
|
||||
"size": 132432843,
|
||||
"md5": "f196c0ea68ff894dab0cf380cafad802",
|
||||
"silent": 0,
|
||||
"upgrade_type": 1,
|
||||
"cycle": 4,
|
||||
"policy": 0,
|
||||
"policy_url": "",
|
||||
"is_gray": 0,
|
||||
"ptime": 1724207041
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
|
@ -9,7 +9,7 @@
|
||||
**URL参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| - | - | - | - | - | - | - |
|
||||
| - | - | - | - | - |
|
||||
| sid | num | 活动 id | 必要 | |
|
||||
| bvid | str | 来源视频 bvid | 非必要 | |
|
||||
|
||||
|
@ -28,6 +28,8 @@
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | ---- | -------- | ------ | ---- |
|
||||
| sid | num | 音频auid | 必要 | |
|
||||
| quality | num | 2 | 不必要 | |
|
||||
| privilege | num | 2 | 不必要 | |
|
||||
|
||||
**json回复:**
|
||||
|
||||
@ -35,8 +37,9 @@
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | -------- | ----------------------------------------------------------- |
|
||||
| code | num | 返回值 | 0:成功<br />7201006:未找到或已下架<br />72000000:请求错误 |
|
||||
| msg | str | 错误信息 | 默认为success |
|
||||
| code | num | 返回值 | 0: 成功<br />4511006: 已跳过无法播放的歌曲<br />7201006:未找到或已下架<br />72000000:请求错误 |
|
||||
| message | str | 返回值 | 字符串形式的 code |
|
||||
| msg | str | 返回信息 | 成功为 success |
|
||||
| data | obj | 数据本体 | |
|
||||
|
||||
`data`对象:
|
||||
@ -45,27 +48,26 @@
|
||||
| --------- | ----- | --------- | --------------------------------------- |
|
||||
| sid | num | 音频auid | |
|
||||
| type | num | 音质标识 | -1:试听片段(192K)<br />1:192K |
|
||||
| info | str | 空 | **作用尚不明确** |
|
||||
| info | str | 空 | |
|
||||
| timeout | num | 有效时长 | 单位为秒<br />一般为3h |
|
||||
| size | num | 文件大小 | 单位为字节<br />当`type`为-1时`size`为0 |
|
||||
| cdns | array | 音频流url | |
|
||||
| qualities | null | - | |
|
||||
| title | null | - | |
|
||||
| cover | null | - | |
|
||||
| qualities | null | | |
|
||||
| title | str | 空 | |
|
||||
| cover | str | 空 | |
|
||||
|
||||
`data`对象的`cdns`数组:
|
||||
|
||||
|
||||
| 项 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | ------------- | ---- |
|
||||
| 0 | str | 音频流url | |
|
||||
| 1 | str | 备用音频流url | |
|
||||
| 1 | str | 备用音频流url | 可能不存在 |
|
||||
|
||||
**示例:**
|
||||
|
||||
```shell
|
||||
curl -G 'https://www.bilibili.com/audio/music-service-c/web/url' \
|
||||
--data-urlencode 'sid=sid=15664'
|
||||
--data-urlencode 'sid=777180'
|
||||
```
|
||||
|
||||
<details>
|
||||
@ -73,22 +75,22 @@ curl -G 'https://www.bilibili.com/audio/music-service-c/web/url' \
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"msg": "success",
|
||||
"data": {
|
||||
"sid": 15664,
|
||||
"type": 1,
|
||||
"info": "",
|
||||
"timeout": 10800,
|
||||
"size": 4853263,
|
||||
"cdns": [
|
||||
"https://upos-sz-mirrorkodo.bilivideo.com/ugaxcode/7bf6a3a3e94421ccc653f005457b1e8c-192k.m4a?deadline=1595331310&gen=uga&os=kodobv&uparams=deadline,gen,os&upsig=0ecd3c7a8d9539f260239d8fa4c093db",
|
||||
"https://upos-sz-mirrorks3.bilivideo.com/ugaxcode/7bf6a3a3e94421ccc653f005457b1e8c-192k.m4a?deadline=1595331310&gen=uga&os=ks3bv&uparams=deadline,gen,os&upsig=f3fe53aff56655b1b7264ae4ab65872e"
|
||||
],
|
||||
"qualities": null,
|
||||
"title": null,
|
||||
"cover": null
|
||||
}
|
||||
"code": 0,
|
||||
"data": {
|
||||
"sid": 777180,
|
||||
"title": "",
|
||||
"cover": "",
|
||||
"type": 1,
|
||||
"info": "",
|
||||
"timeout": 10800,
|
||||
"size": 5579903,
|
||||
"cdns": [
|
||||
"https://upos-sz-mirrorcos.bilivideo.com/ugaxcode/m190314ws1dikiap1oivtapctuj1agjc-192k.m4a?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1725013547&gen=playurlv2&os=cosbv&oi=1746706124&trid=493923009cef4225ab8e1b9bda42c635B&mid=0&platform=pc&og=cos&upsig=043779511e2770cf6c3da04ed8a89f25&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform,og&bvc=vod&nettype=0&orderid=0,1&logo=00000000"
|
||||
],
|
||||
"qualities": null
|
||||
},
|
||||
"message": "0",
|
||||
"msg": "success"
|
||||
}
|
||||
```
|
||||
|
||||
@ -176,7 +178,7 @@ curl -G 'https://www.bilibili.com/audio/music-service-c/web/url' \
|
||||
Cookie方式:
|
||||
|
||||
```shell
|
||||
curl -G 'https://api.bilibili.com/audio/music-service-c/url
|
||||
curl -G 'https://api.bilibili.com/audio/music-service-c/url' \
|
||||
--data-urlencode 'songid=682118' \
|
||||
--data-urlencode 'quality=3' \
|
||||
--data-urlencode 'privilege=2' \
|
||||
@ -188,7 +190,7 @@ curl -G 'https://api.bilibili.com/audio/music-service-c/url
|
||||
APP方式:
|
||||
|
||||
```shell
|
||||
curl -G 'https://api.bilibili.com/audio/music-service-c/url
|
||||
curl -G 'https://api.bilibili.com/audio/music-service-c/url' \
|
||||
--data-urlencode 'access_key=xxx' \
|
||||
--data-urlencode 'songid=682118' \
|
||||
--data-urlencode 'quality=3' \
|
||||
@ -262,17 +264,16 @@ curl -G 'https://api.bilibili.com/audio/music-service-c/url
|
||||
|
||||
## 音频流的获取
|
||||
|
||||
将`data`.`cdns`.`[0]`或`data`.`cdns`.`[1]`中的内容作为url进行GET操作
|
||||
将 `data.cdns[n]` 作为 URL 进行 GET 操作
|
||||
|
||||
需要验证请求`user-agent` 不为空
|
||||
需要验证请求头 `User-Agent` 不为空且不含敏感字串, 且 `Referer` 必须在 `.bilibili.com` 下
|
||||
|
||||
**user-agent错误并且referer不在`*.bilibili.com`域名下的情况下会导致403 Forbidden,故无法获取**
|
||||
**示例:**
|
||||
|
||||
**以上述音频url为例:**
|
||||
使用 cURL + FFPlay 直接从音频流播放
|
||||
|
||||
```shell
|
||||
wget 'https://upos-sz-mirrorkodo.bilivideo.com/ugaxcode/m190102ws2pzf6jitbem841vq2x0du5x-flac.flac?deadline=1595332269&gen=uga&os=kodobv&uparams=deadline,gen,os&upsig=ac2284d97a61ef8758681eccf621c56d' \
|
||||
-O 'Download_music.flac'
|
||||
curl -G "https://upos-sz-mirrorcos.bilivideo.com/ugaxcode/7bf6a3a3e94421ccc653f005457b1e8c-192k.m4a?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1725013121&gen=playurlv2&os=cosbv&oi=1823807031&trid=1a4703f1e7344bb891691c5857e8cfb9B&mid=0&platform=pc&og=cos&upsig=e3a9fba59b46ab2720c8b1807844e9f3&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform,og&bvc=vod&nettype=0&orderid=0,1&logo=00000000" \
|
||||
--referer 'https://www.bilibili.com/' -A 'Mozilla/5.0' \
|
||||
--output - | ffplay -
|
||||
```
|
||||
|
||||
响应正文将返回一个flac文件
|
||||
|
@ -712,7 +712,7 @@ curl -G 'https://api.bilibili.com/x/credit/jury/caseList' \
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ------ | -------- | ------------------------------------------------- |
|
||||
| code | num | 返回值 | 0:成功;<br>-400:`ps`参数大于可允许的最大值`20` |
|
||||
| code | num | 返回值 | 0:成功;<br />-400:`ps`参数大于可允许的最大值`20` |
|
||||
| message | str | 信息 | 默认为0 |
|
||||
| ttl | num | 1 | 作用尚不明确 |
|
||||
| data | object | 数据本体 | |
|
||||
|
@ -862,8 +862,6 @@ curl -G 'https://api.bilibili.com/x/v2/reply' \
|
||||
|
||||
*请求方式:GET*
|
||||
|
||||
认证方式:Cookie(SESSDATA)或APP
|
||||
|
||||
鉴权方式:[Wbi 签名](../misc/sign/wbi.md)
|
||||
|
||||
注: Wbi 签名错误时返回 -403 而非 -352
|
||||
@ -876,6 +874,7 @@ curl -G 'https://api.bilibili.com/x/v2/reply' \
|
||||
| type | num | 评论区类型代码 | 必要 | [类型代码见表](readme.md#评论区类型代码) |
|
||||
| oid | num | 目标评论区 id | 必要 | |
|
||||
| mode | num | 排序方式 | 非必要 | 默认为 3<br />0 3:仅按热度<br />1:按热度+按时间<br />2:仅按时间 |
|
||||
| next | num | 翻页 | 非必要 | 不推荐, 已弃用, 优先级比 `pagination_str` 高 |
|
||||
| pagination_str | obj | 分页信息 | 非必要 | 见下 |
|
||||
| plat | num | 平台类型 | 非必要 | 如 `1` |
|
||||
| seek_rpid | str | 空 | 非必要 | 当获取第一页评论时存在 |
|
||||
@ -892,7 +891,7 @@ curl -G 'https://api.bilibili.com/x/v2/reply' \
|
||||
| 参数名 | 类型 | 内容 | 备注 |
|
||||
| ----- | ---- | -- | - |
|
||||
| type | num | 类型 | 当 URL 参数 mode 为 2 时, 此项为 3<br />当 URL 参数 mode 为 3 时, 此项为 1 |
|
||||
| direction | num | 1 | |
|
||||
| direction | num | 方向 | 1: 正序(默认)<br />2: 倒序 |
|
||||
| data | obj | 分页数据 | 当 type 为 1 时存在 |
|
||||
| Data | obj | 分页数据 | 当 type 为 3 时存在 |
|
||||
<!--not typo here-->
|
||||
@ -1054,8 +1053,7 @@ curl -G 'https://api.bilibili.com/x/v2/reply/wbi/main' \
|
||||
--data-urlencode 'type=1' \
|
||||
--data-urlencode 'mode=2' \
|
||||
--data-urlencode 'w_rid=xxx' \
|
||||
--data-urlencode 'wts=xxx' \
|
||||
-b 'SESSDATA='
|
||||
--data-urlencode 'wts=xxx'
|
||||
```
|
||||
|
||||
<details>
|
||||
|
@ -54,7 +54,7 @@
|
||||
| count | num | 二级评论条数 | |
|
||||
| rcount | num | 回复评论条数 | |
|
||||
| floor | num | 评论楼层号 | **注:若不支持楼层则无此项** |
|
||||
| state | num | (?) | |
|
||||
| state | num | 评论状态 | 0: 正常<br />17: 被阿瓦隆系统隐藏 (无法被别人看到, 只能自己看到) |
|
||||
| fansgrade | num | 是否具有粉丝标签 | 0:无<br />1:有 |
|
||||
| attr | num | 某属性位? | |
|
||||
| ctime | num | 评论发送时间 | 时间戳 |
|
||||
|
@ -143,7 +143,7 @@ JavaScript (Node.js) 请求[示例](https://gist.github.com/SessionHu/5e47a3a1a3
|
||||
curl -X POST --url 'https://member.bilibili.com/x/vupre/web/archive/types/predict' \
|
||||
--url-query 'csrf=d51eadf05ba3bc6c5f76def7fbcc0185' \
|
||||
--data-urlencode 'filename=' \
|
||||
-b '
|
||||
-b 'SESSDATA=xxx; bili_jct=xxx'
|
||||
```
|
||||
|
||||
<details>
|
||||
|
@ -370,7 +370,7 @@ curl 'https://api.bilibili.com/x/v2/dm/command/post' \
|
||||
`data`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- |
|
||||
| ---- | ---- | ---- | ---- |
|
||||
| dmid | num | 弹幕dmid | |
|
||||
| dmid_str | str | 弹幕dmid | 字串形式 |
|
||||
| visible | bool | 是否可见 | |
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
**注意关键字不一定顺序匹配,如最后示例**
|
||||
|
||||
> https://api.vc.bilibili.com/dynamic_mix/v1/dynamic_mix/at_search
|
||||
> https://api.bilibili.com/x/polymer/web-dynamic/v1/mention/search
|
||||
|
||||
*请求方式:GET*
|
||||
|
||||
@ -10,28 +10,26 @@
|
||||
|
||||
**url参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------- | ---- | ---------- | ------ | ---- |
|
||||
| uid | num | 自己的mid | 必要 | |
|
||||
| keyword | str | 搜索关键字 | 必要 | |
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------- | ---- | ---------- | ------ | ---------------------------------- |
|
||||
| keyword | str | 搜索关键字 | 非必要 | 若无此项,则返回所有关注用户的信息 |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | --------------------------------------------------------------------------------------------- |
|
||||
| code | num | 返回值 | 0:成功<br />1024:系统开小差了<br />2001:关键字不合法<br />7600001:参数出错了,请输入正确参数<br />7600008:`uid`参数与自己的mid不匹配 |
|
||||
| msg | str | 错误信息 | 成功时为空文本 |
|
||||
| message | str | 错误信息 | 同`msg` |
|
||||
| data | obj | 数据本体 | |
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | ----------------------------- |
|
||||
| code | num | 返回值 | 0:成功<br />-101:账号未登录 |
|
||||
| message | str | 错误信息 | 成功时为 `0` |
|
||||
| ttl | num | 1 | |
|
||||
| data | obj | 数据本体 | |
|
||||
|
||||
`data`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------ | ----- | -------- | -------------------------------------------- |
|
||||
| groups | array | 用户分组 | 根据是否关注该用户来分组,未找到用户时无此项 |
|
||||
| \_gt\_ | num | 0 | **作用尚不明确** |
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------ | ----- | -------- | ---------------------------------------------- |
|
||||
| groups | array | 用户分组 | 根据是否关注该用户来分组,未找到用户时为空数组 |
|
||||
|
||||
`groups`数组:
|
||||
|
||||
@ -45,8 +43,8 @@
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ---------- | ----- | ---------------- | ------------------------ |
|
||||
| group_type | num | 分组类型 | 2:我的关注<br />4:其他 |
|
||||
| group_name | str | 分组名称 | `我的关注`或`其他` |
|
||||
| group_type | num | 分组类型 | 2:我的关注<br />4:其他 |
|
||||
| items | array | 搜索到的用户信息 | 按照认证状态与粉丝数排序 |
|
||||
|
||||
`items`数组:
|
||||
@ -61,19 +59,18 @@
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| -------------------- | ---- | ------------ | ---------------------------------------- |
|
||||
| uid | num | 用户mid | |
|
||||
| uname | str | 用户昵称 | |
|
||||
| face | str | 用户头像url | |
|
||||
| fans | num | 用户粉丝数 | |
|
||||
| name | str | 用户昵称 | |
|
||||
| official_verify_type | num | 用户认证状态 | -1:无<br />0:个人认证<br />1:机构认证 |
|
||||
| uid | str | 用户mid | |
|
||||
|
||||
**示例:**
|
||||
|
||||
搜索关键字为`社会易`的用户
|
||||
|
||||
```shell
|
||||
curl -G 'https://api.vc.bilibili.com/dynamic_mix/v1/dynamic_mix/at_search' \
|
||||
--data-urlencode 'uid=15858903' \
|
||||
curl -G 'https://api.bilibili.com/x/polymer/web-dynamic/v1/mention/search' \
|
||||
--data-urlencode 'keyword=社会易' \
|
||||
-b 'SESSDATA=xxx'
|
||||
```
|
||||
@ -84,143 +81,156 @@ curl -G 'https://api.vc.bilibili.com/dynamic_mix/v1/dynamic_mix/at_search' \
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"msg": "",
|
||||
"message": "",
|
||||
"message": "0",
|
||||
"ttl": 1,
|
||||
"data": {
|
||||
"groups": [
|
||||
{
|
||||
"group_type": 2,
|
||||
"group_name": "我的关注",
|
||||
"group_type": 2,
|
||||
"items": [
|
||||
{
|
||||
"uid": 293793435,
|
||||
"uname": "社会易姐QwQ",
|
||||
"face": "https://i0.hdslb.com/bfs/face/aebb2639a0d47f2ce1fec0631f412eaf53d4a0be.jpg",
|
||||
"fans": 3578,
|
||||
"official_verify_type": -1
|
||||
"fans": 3613,
|
||||
"name": "社会易姐QwQ",
|
||||
"official_verify_type": -1,
|
||||
"uid": "293793435"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"group_type": 4,
|
||||
"group_name": "其他",
|
||||
"group_type": 4,
|
||||
"items": [
|
||||
{
|
||||
"uid": 484031754,
|
||||
"uname": "社会易老师",
|
||||
"face": "https://i0.hdslb.com/bfs/face/dbc456bdec5e7a4806c9d0311d95ebcc6be674cf.jpg",
|
||||
"fans": 21169,
|
||||
"official_verify_type": -1
|
||||
"fans": 23464,
|
||||
"name": "社会易老师",
|
||||
"official_verify_type": -1,
|
||||
"uid": "484031754"
|
||||
},
|
||||
{
|
||||
"face": "https://i1.hdslb.com/bfs/face/5497859a550a017d0a51c640d232c539c2f48991.jpg",
|
||||
"fans": 11,
|
||||
"name": "栄禧貿易株式会社",
|
||||
"official_verify_type": -1,
|
||||
"uid": "4991467"
|
||||
},
|
||||
{
|
||||
"uid": 442101413,
|
||||
"uname": "社会李易儒",
|
||||
"face": "https://i2.hdslb.com/bfs/face/311cecf9298158b8a5f47ed3e641328ab5c0cfcd.jpg",
|
||||
"fans": 10,
|
||||
"official_verify_type": -1
|
||||
"name": "社会李易儒",
|
||||
"official_verify_type": -1,
|
||||
"uid": "442101413"
|
||||
},
|
||||
{
|
||||
"uid": 3546589855484501,
|
||||
"uname": "日本国立貿易株式会社",
|
||||
"face": "https://i2.hdslb.com/bfs/face/2dad05e4748b5e91e1ec5d3c5d4f0904a5bcdaf0.jpg",
|
||||
"fans": 7,
|
||||
"official_verify_type": -1
|
||||
"fans": 8,
|
||||
"name": "日本国立貿易株式会社",
|
||||
"official_verify_type": -1,
|
||||
"uid": "3546589855484501"
|
||||
},
|
||||
{
|
||||
"uid": 250129011,
|
||||
"uname": "社会小伙肖子易",
|
||||
"face": "https://i0.hdslb.com/bfs/face/2ae12d7f71173baa8e00c4cfe97acb5a3de31566.jpg",
|
||||
"face": "http://i0.hdslb.com/bfs/face/2ae12d7f71173baa8e00c4cfe97acb5a3de31566.jpg",
|
||||
"fans": 6,
|
||||
"official_verify_type": -1
|
||||
"name": "社会小伙肖子易",
|
||||
"official_verify_type": -1,
|
||||
"uid": "250129011"
|
||||
},
|
||||
{
|
||||
"uid": 486568790,
|
||||
"uname": "社会主义接班人小易",
|
||||
"face": "https://i2.hdslb.com/bfs/face/1ebb0d4aa8e2c4b532f82983503ec38b62a1820f.jpg",
|
||||
"fans": 4,
|
||||
"official_verify_type": -1
|
||||
"name": "社会主义接班人小易",
|
||||
"official_verify_type": -1,
|
||||
"uid": "486568790"
|
||||
},
|
||||
{
|
||||
"uid": 497214639,
|
||||
"uname": "社会你易易",
|
||||
"face": "https://i0.hdslb.com/bfs/face/dccb52f3c15ba1bb99aac3c86e9825842cc95295.jpg",
|
||||
"face": "http://i0.hdslb.com/bfs/face/dccb52f3c15ba1bb99aac3c86e9825842cc95295.jpg",
|
||||
"fans": 2,
|
||||
"official_verify_type": -1
|
||||
"name": "社会你易易",
|
||||
"official_verify_type": -1,
|
||||
"uid": "497214639"
|
||||
},
|
||||
{
|
||||
"uid": 457675287,
|
||||
"uname": "易社会",
|
||||
"face": "https://i0.hdslb.com/bfs/face/632bf9dd17f4e9f2f12be2c0ad00cdacd2d825fa.jpg",
|
||||
"face": "https://i1.hdslb.com/bfs/face/1902cc0b07ab4a5de6110f5adb2691cbf7051f2b.jpg",
|
||||
"fans": 1,
|
||||
"official_verify_type": -1
|
||||
"name": "社会打工不容易",
|
||||
"official_verify_type": -1,
|
||||
"uid": "3546742186314202"
|
||||
},
|
||||
{
|
||||
"face": "https://i0.hdslb.com/bfs/face/19ee1b5975969a47ba085cd1f628d86a479b9950.jpg",
|
||||
"fans": 0,
|
||||
"name": "社会交易",
|
||||
"official_verify_type": -1,
|
||||
"uid": "3493291412687622"
|
||||
},
|
||||
{
|
||||
"uid": 1602175830,
|
||||
"uname": "不谦易会社恐",
|
||||
"face": "https://i0.hdslb.com/bfs/face/de6afbda484e114b7cedeb621c3cbbaef7800988.jpg",
|
||||
"fans": 0,
|
||||
"official_verify_type": -1
|
||||
"name": "不谦易会社恐",
|
||||
"official_verify_type": -1,
|
||||
"uid": "1602175830"
|
||||
},
|
||||
{
|
||||
"uid": 155817540,
|
||||
"uname": "社会易总",
|
||||
"face": "https://i0.hdslb.com/bfs/face/member/noface.jpg",
|
||||
"face": "http://i0.hdslb.com/bfs/face/member/noface.jpg",
|
||||
"fans": 8,
|
||||
"official_verify_type": -1
|
||||
"name": "社会易总",
|
||||
"official_verify_type": -1,
|
||||
"uid": "155817540"
|
||||
},
|
||||
{
|
||||
"uid": 3546578331634371,
|
||||
"uname": "社会存在与社会易逝",
|
||||
"face": "https://i0.hdslb.com/bfs/face/member/noface.jpg",
|
||||
"fans": 0,
|
||||
"official_verify_type": -1
|
||||
"name": "社会存在与社会易逝",
|
||||
"official_verify_type": -1,
|
||||
"uid": "3546578331634371"
|
||||
},
|
||||
{
|
||||
"uid": 1983403996,
|
||||
"uname": "社会易姐QAQ",
|
||||
"face": "https://i0.hdslb.com/bfs/face/member/noface.jpg",
|
||||
"face": "http://i0.hdslb.com/bfs/face/member/noface.jpg",
|
||||
"fans": 0,
|
||||
"official_verify_type": -1
|
||||
"name": "社会易姐QAQ",
|
||||
"official_verify_type": -1,
|
||||
"uid": "1983403996"
|
||||
},
|
||||
{
|
||||
"uid": 408471763,
|
||||
"uname": "社会易大佬人狠话不多",
|
||||
"face": "https://i1.hdslb.com/bfs/face/510cde8f4e3eb27aa50177d619a4200bb501797b.jpg",
|
||||
"face": "http://i1.hdslb.com/bfs/face/510cde8f4e3eb27aa50177d619a4200bb501797b.jpg",
|
||||
"fans": 0,
|
||||
"official_verify_type": -1
|
||||
"name": "社会易大佬人狠话不多",
|
||||
"official_verify_type": -1,
|
||||
"uid": "408471763"
|
||||
},
|
||||
{
|
||||
"uid": 384672256,
|
||||
"uname": "社会易轩",
|
||||
"face": "https://i1.hdslb.com/bfs/face/7324adb53362527a1bf5f20141a6ae4307011ea7.jpg",
|
||||
"face": "http://i1.hdslb.com/bfs/face/7324adb53362527a1bf5f20141a6ae4307011ea7.jpg",
|
||||
"fans": 0,
|
||||
"official_verify_type": -1
|
||||
"name": "社会易轩",
|
||||
"official_verify_type": -1,
|
||||
"uid": "384672256"
|
||||
},
|
||||
{
|
||||
"uid": 284984452,
|
||||
"uname": "社会易哥",
|
||||
"face": "https://i0.hdslb.com/bfs/face/member/noface.jpg",
|
||||
"face": "http://i0.hdslb.com/bfs/face/member/noface.jpg",
|
||||
"fans": 0,
|
||||
"official_verify_type": -1
|
||||
"name": "社会易哥",
|
||||
"official_verify_type": -1,
|
||||
"uid": "284984452"
|
||||
},
|
||||
{
|
||||
"uid": 249112673,
|
||||
"uname": "社会易姐",
|
||||
"face": "https://i0.hdslb.com/bfs/face/member/noface.jpg",
|
||||
"face": "http://i0.hdslb.com/bfs/face/member/noface.jpg",
|
||||
"fans": 0,
|
||||
"official_verify_type": -1
|
||||
"name": "社会易姐",
|
||||
"official_verify_type": -1,
|
||||
"uid": "249112673"
|
||||
},
|
||||
{
|
||||
"uid": 167967213,
|
||||
"uname": "社会易大佬",
|
||||
"face": "https://i0.hdslb.com/bfs/face/member/noface.jpg",
|
||||
"face": "http://i0.hdslb.com/bfs/face/member/noface.jpg",
|
||||
"fans": 0,
|
||||
"official_verify_type": -1
|
||||
"name": "社会易大佬",
|
||||
"official_verify_type": -1,
|
||||
"uid": "167967213"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"_gt_": 0
|
||||
]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
@ -1,49 +1,64 @@
|
||||
# 获取动态详情
|
||||
|
||||
## 动态详情
|
||||
|
||||
> https://api.bilibili.com/x/polymer/web-dynamic/v1/detail
|
||||
|
||||
请求方式:`GET`
|
||||
*请求方式: GET*
|
||||
|
||||
是否需要登录:`否`
|
||||
认证方式: Cookie (SESSDATA) (非必要)
|
||||
|
||||
## URL参数
|
||||
鉴权方式: Cookie (User-Agent) (必要), [Wbi 签名](../misc/sign/wbi.md) (非必要)
|
||||
|
||||
| 参数名 | 类型 | 必填 | 内容 | 备注 |
|
||||
|-----------------|-----|-----|--------|-----|
|
||||
| timezone_offset | num | | `-480` | |
|
||||
| id | num | √ | 动态id | |
|
||||
**URL参数:**
|
||||
|
||||
## Json回复
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| id | num | 动态 ID | 必要 | |
|
||||
| timezone_offset | num | -480 | 非必要 | |
|
||||
| platform | str | 平台 | 非必要 | `web` |
|
||||
| gaia_source | str | 来源 | 非必要 | `main_web` |
|
||||
| features | str | 功能 | 非必要 | `itemOpusStyle,opusBigCover,onlyfansVote,endFooterHidden,decorationCard,onlyfansAssetsV2,ugcDelete,onlyfansQaCard,commentsNewVersion` |
|
||||
| web_location | str | `333.1368` | 非必要 | |
|
||||
| x-bili-device-req-json | obj | 设备信息? | 非必要 | `{"platform":"web","device":"pc"}` |
|
||||
| x-bili-web-req-json | obj | 请求信息? | 非必要 | `{"spm_id":"333.1368"}` |
|
||||
| w_rid | str | Wbi 签名 | 不必要 | 参见 [Wbi 签名](../misc/sign/wbi.md) |
|
||||
| wts | num | UNIX 秒级时间戳 | 不必要 | 参见 [Wbi 签名](../misc/sign/wbi.md) |
|
||||
|
||||
### 根对象
|
||||
**JSON回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段名 | 类型 | 内容 | 备注 |
|
||||
|---------|-----|------|--------------------------|
|
||||
| code | num | 响应码 | 0:成功<br/>4101139:4101139 |
|
||||
| code | num | 响应码 | 0: 成功<br/>-352: 风控校验失败<br />4101139: 4101139 |
|
||||
| message | str | | |
|
||||
| ttl | num | 1 | |
|
||||
| data | obj | 信息本体 | |
|
||||
|
||||
### `data`对象
|
||||
`data`对象:
|
||||
|
||||
| 字段名 | 类型 | 内容 | 备注 |
|
||||
|------|-----|-----|-----|
|
||||
| item | obj | | |
|
||||
|
||||
### `data`对象 -> `item`对象
|
||||
`data.item`对象:
|
||||
|
||||
参照 [获取动态列表](./all.md#获取动态列表)
|
||||
|
||||
## 请求示例
|
||||
**示例:**
|
||||
|
||||
```shell
|
||||
curl -L -X GET 'https://api.bilibili.com/x/polymer/web-dynamic/v1/detail?id=724328028268658744'
|
||||
curl -G 'https://api.bilibili.com/x/polymer/web-dynamic/v1/detail' \
|
||||
-A 'Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/115.0' \
|
||||
-b 'SESSDATA=xxxxxx' \
|
||||
--url-query 'id=967717348014293017' \
|
||||
--url-query 'w_rid=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' \
|
||||
--url-query 'wts=1724986186'
|
||||
```
|
||||
|
||||
## 响应示例
|
||||
|
||||
<details>
|
||||
<summary>点击查看</summary>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
@ -53,65 +68,137 @@ curl -L -X GET 'https://api.bilibili.com/x/polymer/web-dynamic/v1/detail?id=7243
|
||||
"data": {
|
||||
"item": {
|
||||
"basic": {
|
||||
"comment_id_str": "724328028268658744",
|
||||
"comment_type": 17,
|
||||
"comment_id_str": "326122895",
|
||||
"comment_type": 11,
|
||||
"like_icon": {
|
||||
"action_url": "",
|
||||
"end_url": "",
|
||||
"id": 0,
|
||||
"start_url": ""
|
||||
},
|
||||
"rid_str": "724328032624443401"
|
||||
"rid_str": "326122895"
|
||||
},
|
||||
"id_str": "724328028268658744",
|
||||
"id_str": "967717348014293017",
|
||||
"modules": {
|
||||
"module_author": {
|
||||
"face": "https://i2.hdslb.com/bfs/face/876bf5dfa8c583acb5f8689fc923077f6a2aba23.jpg",
|
||||
"avatar": {
|
||||
"container_size": {
|
||||
"height": 1.35,
|
||||
"width": 1.35
|
||||
},
|
||||
"fallback_layers": {
|
||||
"is_critical_group": true,
|
||||
"layers": [
|
||||
{
|
||||
"general_spec": {
|
||||
"pos_spec": {
|
||||
"axis_x": 0.675,
|
||||
"axis_y": 0.675,
|
||||
"coordinate_pos": 2
|
||||
},
|
||||
"render_spec": {
|
||||
"opacity": 1
|
||||
},
|
||||
"size_spec": {
|
||||
"height": 1,
|
||||
"width": 1
|
||||
}
|
||||
},
|
||||
"layer_config": {
|
||||
"is_critical": true,
|
||||
"tags": {
|
||||
"AVATAR_LAYER": {},
|
||||
"GENERAL_CFG": {
|
||||
"config_type": 1,
|
||||
"general_config": {
|
||||
"web_css_style": {
|
||||
"borderRadius": "50%"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"resource": {
|
||||
"res_image": {
|
||||
"image_src": {
|
||||
"placeholder": 6,
|
||||
"remote": {
|
||||
"bfs_style": "widget-layer-avatar",
|
||||
"url": "https://i2.hdslb.com/bfs/face/77906db03b1eefac02613de184afad03f7bc58d7.jpg"
|
||||
},
|
||||
"src_type": 1
|
||||
}
|
||||
},
|
||||
"res_type": 3
|
||||
},
|
||||
"visible": true
|
||||
}
|
||||
]
|
||||
},
|
||||
"mid": "645769214"
|
||||
},
|
||||
"decorate": {
|
||||
"card_url": "https://i0.hdslb.com/bfs/vip/a9e3d993c7a15e88ce0bf714a142f7d2b44121e2.png",
|
||||
"fan": {
|
||||
"color": "",
|
||||
"color_format": null,
|
||||
"is_fan": false,
|
||||
"num_prefix": "",
|
||||
"num_str": "",
|
||||
"number": 0
|
||||
},
|
||||
"id": 28,
|
||||
"jump_url": "https://www.bilibili.com/h5/mall/equity-link/collect-home?item_id=28&isdiy=0&part=card&from=post&f_source=garb&vmid=645769214&native.theme=1&navhide=1",
|
||||
"name": "2233娘",
|
||||
"type": 1
|
||||
},
|
||||
"face": "https://i2.hdslb.com/bfs/face/77906db03b1eefac02613de184afad03f7bc58d7.jpg",
|
||||
"face_nft": false,
|
||||
"following": null,
|
||||
"jump_url": "//space.bilibili.com/11357018/dynamic",
|
||||
"jump_url": "//space.bilibili.com/645769214/dynamic",
|
||||
"label": "",
|
||||
"mid": 11357018,
|
||||
"name": "动画魂-Anitama",
|
||||
"mid": 645769214,
|
||||
"name": "Session小胡",
|
||||
"official_verify": {
|
||||
"desc": "",
|
||||
"type": 0
|
||||
"type": -1
|
||||
},
|
||||
"pendant": {
|
||||
"expire": 0,
|
||||
"image": "",
|
||||
"image_enhance": "",
|
||||
"image_enhance_frame": "",
|
||||
"n_pid": 0,
|
||||
"name": "",
|
||||
"pid": 0
|
||||
},
|
||||
"pub_action": "",
|
||||
"pub_location_text": "",
|
||||
"pub_time": "2022-11-03 22:02",
|
||||
"pub_ts": 1667484162,
|
||||
"pub_time": "2024年08月20日 19:17",
|
||||
"pub_ts": 1724152653,
|
||||
"type": "AUTHOR_TYPE_NORMAL",
|
||||
"vip": {
|
||||
"avatar_subscript": 1,
|
||||
"avatar_subscript": 0,
|
||||
"avatar_subscript_url": "",
|
||||
"due_date": 1685808000000,
|
||||
"due_date": 1665158400000,
|
||||
"label": {
|
||||
"bg_color": "#FB7299",
|
||||
"bg_style": 1,
|
||||
"bg_color": "",
|
||||
"bg_style": 0,
|
||||
"border_color": "",
|
||||
"img_label_uri_hans": "",
|
||||
"img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png",
|
||||
"img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/d7b702ef65a976b20ed854cbd04cb9e27341bb79.png",
|
||||
"img_label_uri_hant": "",
|
||||
"img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png",
|
||||
"label_theme": "annual_vip",
|
||||
"img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/KJunwh19T5.png",
|
||||
"label_theme": "",
|
||||
"path": "",
|
||||
"text": "年度大会员",
|
||||
"text_color": "#FFFFFF",
|
||||
"text": "",
|
||||
"text_color": "",
|
||||
"use_img_label": true
|
||||
},
|
||||
"nickname_color": "#FB7299",
|
||||
"status": 1,
|
||||
"nickname_color": "",
|
||||
"status": 0,
|
||||
"theme_type": 0,
|
||||
"type": 2
|
||||
"type": 1
|
||||
}
|
||||
},
|
||||
"module_dynamic": {
|
||||
@ -119,151 +206,538 @@ curl -L -X GET 'https://api.bilibili.com/x/polymer/web-dynamic/v1/detail?id=7243
|
||||
"desc": {
|
||||
"rich_text_nodes": [
|
||||
{
|
||||
"orig_text": "恭喜 @羽希plume @晕乎菌 中奖,已私信联系。——全天加码放水,红包力度很大,打开手淘搜“我爱你红包”,红包每天可以领,积少成多。 ——明天早上9点开另外一则抽奖,有打扰请多保函。\n",
|
||||
"text": "恭喜 @羽希plume @晕乎菌 中奖,已私信联系。——全天加码放水,红包力度很大,打开手淘搜“我爱你红包”,红包每天可以领,积少成多。 ——明天早上9点开另外一则抽奖,有打扰请多保函。\n",
|
||||
"orig_text": "今天因为Linux被骂, 决定放弃支持 Windows. 而且明天要开始军训了, 将停更若干时间, 遂发此动态, 望不知.",
|
||||
"text": "今天因为Linux被骂, 决定放弃支持 Windows. 而且明天要开始军训了, 将停更若干时间, 遂发此动态, 望不知.",
|
||||
"type": "RICH_TEXT_NODE_TYPE_TEXT"
|
||||
}
|
||||
],
|
||||
"text": "恭喜 @羽希plume @晕乎菌 中奖,已私信联系。——全天加码放水,红包力度很大,打开手淘搜“我爱你红包”,红包每天可以领,积少成多。 ——明天早上9点开另外一则抽奖,有打扰请多保函。\n"
|
||||
"text": "今天因为Linux被骂, 决定放弃支持 Windows. 而且明天要开始军训了, 将停更若干时间, 遂发此动态, 望不知."
|
||||
},
|
||||
"major": {
|
||||
"draw": {
|
||||
"id": 326122895,
|
||||
"items": [
|
||||
{
|
||||
"height": 1080,
|
||||
"size": 1005.29,
|
||||
"src": "http://i0.hdslb.com/bfs/new_dyn/0f6f939334104ddc347566514fa4bfa7645769214.jpg",
|
||||
"tags": [],
|
||||
"width": 1440
|
||||
}
|
||||
]
|
||||
},
|
||||
"type": "MAJOR_TYPE_DRAW"
|
||||
},
|
||||
"major": null,
|
||||
"topic": null
|
||||
},
|
||||
"module_more": {
|
||||
"three_point_items": [
|
||||
{
|
||||
"label": "举报",
|
||||
"type": "THREE_POINT_REPORT"
|
||||
"label": "删除",
|
||||
"modal": {
|
||||
"cancel": "取消",
|
||||
"confirm": "确认删除",
|
||||
"content": "动态删除后将无法恢复,请谨慎操作",
|
||||
"title": "要删除动态吗?"
|
||||
},
|
||||
"params": {
|
||||
"dyn_id_str": "967717348014293017",
|
||||
"dyn_type": 2,
|
||||
"rid_str": "326122895"
|
||||
},
|
||||
"type": "THREE_POINT_DELETE"
|
||||
}
|
||||
]
|
||||
},
|
||||
"module_stat": {
|
||||
"comment": {
|
||||
"count": 5,
|
||||
"count": 34,
|
||||
"forbidden": false
|
||||
},
|
||||
"forward": {
|
||||
"count": 1,
|
||||
"count": 2,
|
||||
"forbidden": false
|
||||
},
|
||||
"like": {
|
||||
"count": 170,
|
||||
"count": 65,
|
||||
"forbidden": false,
|
||||
"status": false
|
||||
"status": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"orig": {
|
||||
"basic": {
|
||||
"comment_id_str": "",
|
||||
"comment_type": 0,
|
||||
"like_icon": {
|
||||
"action_url": "",
|
||||
"end_url": "",
|
||||
"id": 0,
|
||||
"start_url": ""
|
||||
},
|
||||
"rid_str": ""
|
||||
},
|
||||
"id_str": "720590749615259664",
|
||||
"modules": {
|
||||
"module_author": {
|
||||
"face": "https://i2.hdslb.com/bfs/face/876bf5dfa8c583acb5f8689fc923077f6a2aba23.jpg",
|
||||
"face_nft": false,
|
||||
"following": null,
|
||||
"jump_url": "//space.bilibili.com/11357018/dynamic",
|
||||
"label": "",
|
||||
"mid": 11357018,
|
||||
"name": "动画魂-Anitama",
|
||||
"official_verify": {
|
||||
"desc": "",
|
||||
"type": 0
|
||||
},
|
||||
"pendant": {
|
||||
"expire": 0,
|
||||
"image": "",
|
||||
"image_enhance": "",
|
||||
"image_enhance_frame": "",
|
||||
"name": "",
|
||||
"pid": 0
|
||||
},
|
||||
"pub_action": "",
|
||||
"pub_time": "",
|
||||
"pub_ts": 1666614008,
|
||||
"type": "AUTHOR_TYPE_NORMAL",
|
||||
"vip": {
|
||||
"avatar_subscript": 1,
|
||||
"avatar_subscript_url": "",
|
||||
"due_date": 1685808000000,
|
||||
"label": {
|
||||
"bg_color": "#FB7299",
|
||||
"bg_style": 1,
|
||||
"border_color": "",
|
||||
"img_label_uri_hans": "",
|
||||
"img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png",
|
||||
"img_label_uri_hant": "",
|
||||
"img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png",
|
||||
"label_theme": "annual_vip",
|
||||
"path": "",
|
||||
"text": "年度大会员",
|
||||
"text_color": "#FFFFFF",
|
||||
"use_img_label": true
|
||||
},
|
||||
"nickname_color": "#FB7299",
|
||||
"status": 1,
|
||||
"theme_type": 0,
|
||||
"type": 2
|
||||
}
|
||||
},
|
||||
"module_dynamic": {
|
||||
"additional": null,
|
||||
"desc": {
|
||||
"rich_text_nodes": [
|
||||
{
|
||||
"orig_text": "双11天猫红包,超大力度提前发放\n活动很猛,红包很大,加额加量!\n打开手淘搜“我爱你红包”\n打开手淘搜“我爱你红包”\n打开手淘搜“我爱你红包”\n最高可领取28888元\n\n一天可领3次,今天红包额度最大\n越早领取得现金概率越大!\n抽奖=转发+关注",
|
||||
"text": "双11天猫红包,超大力度提前发放\n活动很猛,红包很大,加额加量!\n打开手淘搜“我爱你红包”\n打开手淘搜“我爱你红包”\n打开手淘搜“我爱你红包”\n最高可领取28888元\n\n一天可领3次,今天红包额度最大\n越早领取得现金概率越大!\n抽奖=转发+关注",
|
||||
"type": "RICH_TEXT_NODE_TYPE_TEXT"
|
||||
},
|
||||
{
|
||||
"jump_url": "//search.bilibili.com/all?keyword=%23%E4%BA%92%E5%8A%A8%E6%8A%BD%E5%A5%96%23",
|
||||
"orig_text": "#互动抽奖#",
|
||||
"text": "#互动抽奖#",
|
||||
"type": "RICH_TEXT_NODE_TYPE_TOPIC"
|
||||
},
|
||||
{
|
||||
"orig_text": "\n转+评,留言你领到多少红包\n评论区随机抽取2位,每人补贴50零花钱 ",
|
||||
"text": "\n转+评,留言你领到多少红包\n评论区随机抽取2位,每人补贴50零花钱 ",
|
||||
"type": "RICH_TEXT_NODE_TYPE_TEXT"
|
||||
}
|
||||
],
|
||||
"text": "双11天猫红包,超大力度提前发放\n活动很猛,红包很大,加额加量!\n打开手淘搜“我爱你红包”\n打开手淘搜“我爱你红包”\n打开手淘搜“我爱你红包”\n最高可领取28888元\n\n一天可领3次,今天红包额度最大\n越早领取得现金概率越大!\n抽奖=转发+关注#互动抽奖#\n转+评,留言你领到多少红包\n评论区随机抽取2位,每人补贴50零花钱 "
|
||||
},
|
||||
"major": {
|
||||
"draw": {
|
||||
"id": 210334026,
|
||||
"items": [
|
||||
{
|
||||
"height": 672,
|
||||
"size": 134.85938,
|
||||
"src": "https://i0.hdslb.com/bfs/new_dyn/37c21f8864e47cbeeb7c3e3a66bb250b11357018.jpg",
|
||||
"tags": [],
|
||||
"width": 576
|
||||
}
|
||||
]
|
||||
},
|
||||
"type": "MAJOR_TYPE_DRAW"
|
||||
},
|
||||
"topic": null
|
||||
}
|
||||
},
|
||||
"type": "DYNAMIC_TYPE_DRAW",
|
||||
"visible": true
|
||||
},
|
||||
"type": "DYNAMIC_TYPE_FORWARD",
|
||||
"type": "DYNAMIC_TYPE_DRAW",
|
||||
"visible": true
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
</details>
|
||||
|
||||
## 动态赞与转发列表
|
||||
|
||||
> https://api.bilibili.com/x/polymer/web-dynamic/v1/detail/reaction
|
||||
|
||||
*请求方式: GET*
|
||||
|
||||
认证方式: Cookie (SESSDATA)
|
||||
|
||||
注: 登录任意账号即可, 若不登录则返回数为 0
|
||||
|
||||
**URL参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| id | num | 动态 id | 必要 | |
|
||||
| offset | obj | 偏移量 | 非必要 | 用于翻页, 即响应的 `data.offset` |
|
||||
| web_location | str | 333.1369 | 非必要 | |
|
||||
|
||||
**JSON回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| --- | --- | --- | --- |
|
||||
| code | num | 返回值 | 0: 成功 |
|
||||
| message | str | 错误信息 | 默认为 0 |
|
||||
| ttl | num | 1 | |
|
||||
| data | obj | 信息本体 | |
|
||||
|
||||
`data` 对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| --- | --- | --- | --- |
|
||||
| has_more | bool | 是否有更多 | |
|
||||
| items | array | 赞与转发列表 | |
|
||||
| offset | str | 偏移量 | 套了一层字符串的 JSON 对象, 用于下次请求 |
|
||||
| total | num | 总数 | |
|
||||
|
||||
`data` 对象中的 `items` 数组中的对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| --- | --- | --- | --- |
|
||||
| action | str | 操作类型 | 赞了/转发了 |
|
||||
| attend | num | 参与数 | 1: 对方仅关注了发送者<br />2: 发送者关注了对方 |
|
||||
| desc | str | 描述 | |
|
||||
| face | str | 头像 URL | |
|
||||
| mid | num | 用户 mid | |
|
||||
| name | str | 用户名 | |
|
||||
|
||||
**示例:**
|
||||
|
||||
获取动态 `967717348014293017` 的赞与转发列表
|
||||
|
||||
```shell
|
||||
curl -G 'https://api.bilibili.com/x/polymer/web-dynamic/v1/detail/reaction' \
|
||||
--url-query 'id=967717348014293017' \
|
||||
-b 'SESSDATA=xxx'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1,
|
||||
"data": {
|
||||
"has_more": true,
|
||||
"items": [
|
||||
{
|
||||
"action": "赞了",
|
||||
"attend": 2,
|
||||
"desc": "",
|
||||
"face": "https://i0.hdslb.com/bfs/face/aebb2639a0d47f2ce1fec0631f412eaf53d4a0be.jpg",
|
||||
"mid": "293793435",
|
||||
"name": "社会易姐QwQ"
|
||||
},
|
||||
{
|
||||
"action": "转发了",
|
||||
"attend": 2,
|
||||
"desc": "",
|
||||
"face": "https://i1.hdslb.com/bfs/face/a8c0d532c19085ff14385abb51450d9c32afe93f.jpg",
|
||||
"mid": "662407339",
|
||||
"name": "XhuOffice"
|
||||
},
|
||||
{
|
||||
"action": "赞了",
|
||||
"attend": 2,
|
||||
"desc": "",
|
||||
"face": "https://i1.hdslb.com/bfs/face/a8c0d532c19085ff14385abb51450d9c32afe93f.jpg",
|
||||
"mid": "662407339",
|
||||
"name": "XhuOffice"
|
||||
},
|
||||
{
|
||||
"action": "转发了",
|
||||
"attend": 2,
|
||||
"desc": "",
|
||||
"face": "https://i1.hdslb.com/bfs/face/2c506dcf0b6507041b0bfafea7505cb1badf6ccd.jpg",
|
||||
"mid": "616368979",
|
||||
"name": "淡紫玲儿"
|
||||
},
|
||||
{
|
||||
"action": "赞了",
|
||||
"attend": 2,
|
||||
"desc": "",
|
||||
"face": "https://i1.hdslb.com/bfs/face/2c506dcf0b6507041b0bfafea7505cb1badf6ccd.jpg",
|
||||
"mid": "616368979",
|
||||
"name": "淡紫玲儿"
|
||||
},
|
||||
{
|
||||
"action": "赞了",
|
||||
"attend": 2,
|
||||
"desc": "",
|
||||
"face": "https://i2.hdslb.com/bfs/face/77906db03b1eefac02613de184afad03f7bc58d7.jpg",
|
||||
"mid": "645769214",
|
||||
"name": "Session小胡"
|
||||
},
|
||||
{
|
||||
"action": "赞了",
|
||||
"attend": 0,
|
||||
"desc": "共同关注了3个Up主",
|
||||
"face": "https://i0.hdslb.com/bfs/face/2ac46bacfdedebf9aecf6415b95dd58636b1e22a.jpg",
|
||||
"mid": "340463550",
|
||||
"name": "折耳喵之心"
|
||||
},
|
||||
{
|
||||
"action": "赞了",
|
||||
"attend": 0,
|
||||
"desc": "",
|
||||
"face": "https://i1.hdslb.com/bfs/face/ec855a27a42e174521399d7508cece6c0c02c6ff.jpg",
|
||||
"mid": "628114249",
|
||||
"name": "at白日梦想家"
|
||||
},
|
||||
{
|
||||
"action": "赞了",
|
||||
"attend": 0,
|
||||
"desc": "共同关注了3个Up主",
|
||||
"face": "https://i1.hdslb.com/bfs/face/81362ba3f99b2702b9746ca7fe67ffc76d3a97c4.jpg",
|
||||
"mid": "198175",
|
||||
"name": "傲娇金发黑丝双马尾"
|
||||
},
|
||||
{
|
||||
"action": "赞了",
|
||||
"attend": 0,
|
||||
"desc": "",
|
||||
"face": "https://i2.hdslb.com/bfs/face/df1c9bc7d79c84b7227486a944d7a748093fbb31.jpg",
|
||||
"mid": "1007349302",
|
||||
"name": "用户9420594"
|
||||
},
|
||||
{
|
||||
"action": "赞了",
|
||||
"attend": 0,
|
||||
"desc": "",
|
||||
"face": "https://i0.hdslb.com/bfs/face/f17befd18cab5e157844ab986bd6c60d58d74738.jpg",
|
||||
"mid": "1180456113",
|
||||
"name": "人工智能小冰_yoyo"
|
||||
},
|
||||
{
|
||||
"action": "赞了",
|
||||
"attend": 0,
|
||||
"desc": "共同关注了2个Up主",
|
||||
"face": "https://i0.hdslb.com/bfs/face/f1b0ebdf19c2f4b768c5a3e57cbd50e404ad9549.jpg",
|
||||
"mid": "273008643",
|
||||
"name": "LV1渡劫失败降到"
|
||||
},
|
||||
{
|
||||
"action": "赞了",
|
||||
"attend": 0,
|
||||
"desc": "",
|
||||
"face": "https://i0.hdslb.com/bfs/face/a7732df2624c6a0b6e5856ceb27f3c96598a2fd4.jpg",
|
||||
"mid": "452290620",
|
||||
"name": "评论永远比视频精彩"
|
||||
},
|
||||
{
|
||||
"action": "赞了",
|
||||
"attend": 0,
|
||||
"desc": "",
|
||||
"face": "https://i0.hdslb.com/bfs/face/cc2ea9088f066b33f24d39434d23aa68cb8ab761.png",
|
||||
"mid": "91671246",
|
||||
"name": "樱樱之雪"
|
||||
},
|
||||
{
|
||||
"action": "赞了",
|
||||
"attend": 0,
|
||||
"desc": "共同关注了3个Up主",
|
||||
"face": "http://i1.hdslb.com/bfs/face/d20eae4d6339cef2267b36c1c262ae6466395b64.jpg",
|
||||
"mid": "340632388",
|
||||
"name": "天神永恒hb"
|
||||
},
|
||||
{
|
||||
"action": "赞了",
|
||||
"attend": 0,
|
||||
"desc": "共同关注了21个Up主",
|
||||
"face": "https://i0.hdslb.com/bfs/face/368b2a33eed5dc146bd9ab8bf62bc9667653a350.jpg",
|
||||
"mid": "38120922",
|
||||
"name": "vgwik"
|
||||
},
|
||||
{
|
||||
"action": "赞了",
|
||||
"attend": 0,
|
||||
"desc": "共同关注了2个Up主",
|
||||
"face": "https://i2.hdslb.com/bfs/face/efbd8bb841ea6340f39854b82d9741f47cb3351e.jpg",
|
||||
"mid": "691494413",
|
||||
"name": "熬夜肝不好"
|
||||
},
|
||||
{
|
||||
"action": "赞了",
|
||||
"attend": 0,
|
||||
"desc": "",
|
||||
"face": "https://i1.hdslb.com/bfs/face/c46fe783ac7a5291dac4773744b3d35d7cebd77f.jpg",
|
||||
"mid": "1486540726",
|
||||
"name": "o_90"
|
||||
},
|
||||
{
|
||||
"action": "赞了",
|
||||
"attend": 0,
|
||||
"desc": "",
|
||||
"face": "https://i1.hdslb.com/bfs/face/fece6f971d14fddbddcede65a42edc63d01884d4.jpg",
|
||||
"mid": "34474963",
|
||||
"name": "Neko_vecter"
|
||||
},
|
||||
{
|
||||
"action": "赞了",
|
||||
"attend": 0,
|
||||
"desc": "共同关注了8个Up主",
|
||||
"face": "https://i0.hdslb.com/bfs/face/e1d66345bdb6f8c75b782ed5c4b93440860c894d.jpg",
|
||||
"mid": "88466370",
|
||||
"name": "没有钱的首富"
|
||||
},
|
||||
{
|
||||
"action": "赞了",
|
||||
"attend": 0,
|
||||
"desc": "共同关注了15个Up主",
|
||||
"face": "https://i0.hdslb.com/bfs/face/f8a6e77e5839e64a7448ddeb7112af86eb47aa48.jpg",
|
||||
"mid": "14625981",
|
||||
"name": "龙凌洛"
|
||||
},
|
||||
{
|
||||
"action": "赞了",
|
||||
"attend": 0,
|
||||
"desc": "",
|
||||
"face": "https://i2.hdslb.com/bfs/face/18c0bb87fbc8f9fde0d7f92ab88917e517e53df1.jpg",
|
||||
"mid": "36708269",
|
||||
"name": "alcoholmole"
|
||||
},
|
||||
{
|
||||
"action": "赞了",
|
||||
"attend": 0,
|
||||
"desc": "",
|
||||
"face": "https://i0.hdslb.com/bfs/face/39f0e0ec39e6828b01afc28ad001471d1efa8c66.jpg",
|
||||
"mid": "52874964",
|
||||
"name": "黑暗战师"
|
||||
},
|
||||
{
|
||||
"action": "赞了",
|
||||
"attend": 1,
|
||||
"desc": "对方关注了你",
|
||||
"face": "https://i0.hdslb.com/bfs/face/07d73f7d01c8e8cfb9173d8fe6e40a0c8cb5713d.jpg",
|
||||
"mid": "702368712",
|
||||
"name": "-御帝哥哥-"
|
||||
},
|
||||
{
|
||||
"action": "赞了",
|
||||
"attend": 0,
|
||||
"desc": "共同关注了22个Up主",
|
||||
"face": "http://i0.hdslb.com/bfs/face/member/noface.jpg",
|
||||
"mid": "398095475",
|
||||
"name": "meipeter"
|
||||
},
|
||||
{
|
||||
"action": "赞了",
|
||||
"attend": 0,
|
||||
"desc": "",
|
||||
"face": "https://i1.hdslb.com/bfs/face/a4a1566d7218307839345a079651bf58a69a028f.jpg",
|
||||
"mid": "101358808",
|
||||
"name": "香香软软的小阿芙"
|
||||
}
|
||||
],
|
||||
"offset": "{\"page\":2,\"like\":101358808,\"repost\":-1}",
|
||||
"total": 65
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 动态抽奖详情
|
||||
|
||||
> https://api.vc.bilibili.com/lottery_svr/v1/lottery_svr/lottery_notice
|
||||
|
||||
*请求方法: GET*
|
||||
|
||||
**URL参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ----- | ---- | -------- | ------ | ---- |
|
||||
| business_id | num | 动态 id | 必要 | |
|
||||
| bussiness_type | num | 业务类型? | 必要 | 1: 动态抽奖 |
|
||||
| csrf | str | CSRF Token (即 Cookie 中 bili_jct 字段) | 不必要 | |
|
||||
| web_location | str | 333.1330 | 不必要 | |
|
||||
|
||||
<details>
|
||||
<summary>旧版参数:</summary>
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ----- | ---- | -------- | ------ | ---- |
|
||||
| dynamic_id | num | 动态 id | 必要 | |
|
||||
|
||||
</details>
|
||||
|
||||
**JSON回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段名 | 类型 | 内容 | 备注 |
|
||||
| - | - | - | - |
|
||||
| code | num | 返回值 | 0: 成功<br />-9999: 服务系统错误 |
|
||||
| message | str | 错误信息 | 无则为空串 |
|
||||
| msg | str | 错误信息 | 无则为空串 |
|
||||
| data | obj | 信息本体 | 错误时为空对象 |
|
||||
|
||||
`data`对象:
|
||||
|
||||
| 字段名 | 类型 | 内容 | 备注 |
|
||||
| - | - | - | - |
|
||||
| lottery_id | num | 抽奖 id | |
|
||||
| sender_uid | num | 发送者 mid | |
|
||||
| business_type | num | 业务类型 | 1: 动态抽奖 |
|
||||
| business_id | num | 业务 id | 可能与请求参数不同 |
|
||||
| status | num | 抽奖状态 | 0: 未开奖<br />2: 已开奖 |
|
||||
| lottery_time | num | 开奖时间 | UNIX 秒级时间戳 |
|
||||
| lottery_at_num | num | at 人数? | |
|
||||
| lottery_feed_limit | num | 转发限制? | |
|
||||
| need_post | num | 是否需要发布? | |
|
||||
| pay_status | num | 支付状态? | |
|
||||
| first_prize | num | 一等奖数量 | |
|
||||
| second_prize | num | 二等奖数量 | |
|
||||
| third_prize | num | 三等奖数量 | |
|
||||
| ts | num | 发布时间 | UNIX 秒级时间戳 |
|
||||
| participants | num | 参与人数 | |
|
||||
| has_charge_right | bool | 是否有充值权? | |
|
||||
| participated | bool | 是否参与过? | |
|
||||
| followed | bool | 是否关注过 | |
|
||||
| reposted | bool | 是否转发过 | |
|
||||
| lottery_detail_url | str | 抽奖详情页 URL? | |
|
||||
| first_prize_cmt | str | 一等奖奖品名称 | |
|
||||
| third_prize_cmt | str | 三等奖奖品名称 | |
|
||||
| first_prize_pic | str | 一等奖奖品图片 URL | |
|
||||
| second_prize_pic | str | 二等奖奖品图片 URL | |
|
||||
| third_prize_pic | str | 三等奖奖品图片 URL | |
|
||||
| vip_batch_sign | str | ? | |
|
||||
| prize_type_first | obj | 一等奖奖品类型 | |
|
||||
| prize_type_second | obj | 二等奖奖品类型 | 无则不存在 |
|
||||
| prize_type_third | obj | 三等奖奖品类型 | 无则不存在 |
|
||||
| lottery_result | obj | 抽奖结果 | 无则不存在 |
|
||||
|
||||
`data`对象中的`prize_type_first`对象:
|
||||
|
||||
| 字段名 | 类型 | 内容 | 备注 |
|
||||
| - | - | - | - |
|
||||
| type | num | 奖品类型? | 0 |
|
||||
| value | obj | 奖品价值? | |
|
||||
|
||||
`prize_type_first`对象中的`value`对象:
|
||||
|
||||
| 字段名 | 类型 | 内容 | 备注 |
|
||||
| - | - | - | - |
|
||||
| stype | num | 子奖品类型? | 0 |
|
||||
|
||||
`data`对象中的`prize_type_second`对象:
|
||||
|
||||
与 `prize_type_first` 格式相同
|
||||
|
||||
`data`对象中的`prize_type_third`对象:
|
||||
|
||||
与 `prize_type_first` 格式相同
|
||||
|
||||
`data`对象中的`lottery_result`对象:
|
||||
|
||||
| 字段名 | 类型 | 内容 | 备注 |
|
||||
| - | - | - | - |
|
||||
| first_prize_result | array | 一等奖结果 | |
|
||||
| second_prize_result | array | 二等奖结果 | 无则不存在 |
|
||||
| third_prize_result | array | 三等奖结果 | 无则不存在 |
|
||||
|
||||
`lottery_result`对象中的`first_prize_result`数组:
|
||||
|
||||
| 项名 | 类型 | 内容 | 备注 |
|
||||
| - | - | - | - |
|
||||
| uid | num | 中奖者 mid | |
|
||||
| name | str | 中奖者名称 | |
|
||||
| face | str | 中奖者头像 URL | |
|
||||
| hongbao_money | num | 奖品金额? | |
|
||||
|
||||
`lottery_result`对象中的`second_prize_result`数组:
|
||||
|
||||
与 `first_prize_result` 格式相同
|
||||
|
||||
`lottery_result`对象中的`third_prize_result`数组:
|
||||
|
||||
与 `first_prize_result` 格式相同
|
||||
|
||||
**示例:**
|
||||
|
||||
```shell
|
||||
curl -G 'https://api.vc.bilibili.com/lottery_svr/v1/lottery_svr/lottery_notice' \
|
||||
--url-query 'business_id=969916293954142214' \
|
||||
--url-query 'business_type=1'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"data": {
|
||||
"lottery_id": 314834,
|
||||
"sender_uid": 36081646,
|
||||
"business_type": 1,
|
||||
"business_id": 969916293954142214,
|
||||
"status": 2,
|
||||
"lottery_time": 1724860800,
|
||||
"lottery_at_num": 0,
|
||||
"lottery_feed_limit": 1,
|
||||
"need_post": 0,
|
||||
"pay_status": 0,
|
||||
"first_prize": 1,
|
||||
"second_prize": 0,
|
||||
"third_prize": 0,
|
||||
"ts": 1724922650,
|
||||
"participants": 9230,
|
||||
"has_charge_right": false,
|
||||
"participated": false,
|
||||
"followed": false,
|
||||
"reposted": false,
|
||||
"lottery_detail_url": "",
|
||||
"first_prize_cmt": "S档门票",
|
||||
"third_prize_cmt": "",
|
||||
"first_prize_pic": "",
|
||||
"second_prize_pic": "",
|
||||
"third_prize_pic": "",
|
||||
"vip_batch_sign": "",
|
||||
"prize_type_first": {
|
||||
"type": 0,
|
||||
"value": {
|
||||
"stype": 0
|
||||
}
|
||||
},
|
||||
"lottery_result": {
|
||||
"first_prize_result": [
|
||||
{
|
||||
"uid": 1014634854,
|
||||
"name": "lty世界第一吃货殿下",
|
||||
"face": "https://i0.hdslb.com/bfs/face/c746083b15f6761ea75c602661123e68784c6b1c.jpg",
|
||||
"hongbao_money": 0
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"message": "",
|
||||
"msg": ""
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
@ -92,7 +92,7 @@
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
|----------|-----|-----|-------------------------------------------|
|
||||
| name | str | 类型 | v_person: 个人认证(黄) <br> v_company: 企业认证(蓝) |
|
||||
| name | str | 类型 | v_person: 个人认证(黄) <br /> v_company: 企业认证(蓝) |
|
||||
| position | num | 位置 | |
|
||||
| value | str | 值 | |
|
||||
| desc | str | 描述 | |
|
||||
@ -529,6 +529,8 @@ curl -G 'https://api.live.bilibili.com/live_user/v1/Master/info' \
|
||||
|
||||
*请求方式: GET*
|
||||
|
||||
注: 亦可用于批量获取
|
||||
|
||||
<!--{
|
||||
"gh": [745]
|
||||
}-->
|
||||
@ -707,7 +709,7 @@ curl -G 'https://api.live.bilibili.com/xlive/web-room/v1/index/getRoomBaseInfo'
|
||||
| room_id | num | 直播间房间号 | 直播间实际房间号 |
|
||||
| uid | num | 主播mid | |
|
||||
| online | num | 直播间在线人数 | |
|
||||
| live_time | num | 直播持续时长 | |
|
||||
| live_time | num | 开播时间戳,单位秒,未开播时为0 | |
|
||||
| live_status | num | 直播间开播状态 | 0:未开播<br />1:正在直播<br />2:轮播中 |
|
||||
| short_id | num | 直播间房间号 | 直播间短房间号,常见于签约主播 |
|
||||
| area | num | 直播间分区id | |
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -22,7 +22,7 @@
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | ------------------------------------------------- |
|
||||
| code | num | 返回值 | 0:成功<br>-1002002:参数异常<br>-500:服务器异常 |
|
||||
| code | num | 返回值 | 0:成功<br />-1002002:参数异常<br />-500:服务器异常 |
|
||||
| message | str | 错误信息 | 默认为 "0" |
|
||||
| ttl | num | 1 | |
|
||||
| data | obj | 信息本体 | |
|
||||
@ -44,7 +44,7 @@
|
||||
| guard_level | num | | |
|
||||
| guard_medal_title | str | 加成状态 | |
|
||||
| intimacy | num | 当前已得亲密度 | |
|
||||
| is_lighted | num | 是否点亮 | 0:未点亮<br>1:点亮 |
|
||||
| is_lighted | num | 是否点亮 | 0:未点亮<br />1:点亮 |
|
||||
| level | num | 勋章等级 | |
|
||||
| medal_name | str | 勋章名 | |
|
||||
| medal_color_border | num | 勋章边框颜色信息 | 颜色数值为 10 进制的 16 进制值(下同) |
|
||||
@ -195,7 +195,7 @@ _请求方式:GET_
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | ---------------------- |
|
||||
| code | num | 返回值 | 0:成功<br>1:参数错误 |
|
||||
| code | num | 返回值 | 0:成功<br />1:参数错误 |
|
||||
| ttl | num | 1 | |
|
||||
| message | str | 错误信息 | 默认为当日签到奖励内容 |
|
||||
| data | obj | 信息本体 | 默认为空 |
|
||||
@ -225,7 +225,7 @@ _请求方式:GET_
|
||||
| ----------------- | ----- | ---------------------------- | ---------------------- |
|
||||
| text | str | 今日签到奖励信息 | 默认为空 |
|
||||
| specialText | str | 连续签到奖励信息 | 默认为空 |
|
||||
| status | num | 签到状态 | 0:未签到<br>1:已签到 |
|
||||
| status | num | 签到状态 | 0:未签到<br />1:已签到 |
|
||||
| allDays | num | 当月天数 | |
|
||||
| curMonth | num | 当前月 | |
|
||||
| curYear | num | 当前年 | |
|
||||
|
@ -111,7 +111,7 @@ PEM 格式:
|
||||
|
||||
### 相关Demo
|
||||
|
||||
该 Demo 提供 [JavaScript](#JavaScript)、[Python](#Python) 以及 [Vercel 云函数](#vercel云函数),感谢 [#524](https://github.com/SocialSisterYi/bilibili-API-collect/issues/524) 提供
|
||||
该 Demo 提供 [JavaScript](#javascript) [Python](#python) [Kotlin](#kotlin) [Java](#java) [Go](#go) 以及 [Vercel 云函数](#vercel云函数),感谢 [#524](https://github.com/SocialSisterYi/bilibili-API-collect/issues/524) 提供
|
||||
|
||||
#### JavaScript
|
||||
|
||||
@ -138,7 +138,7 @@ const ts = Date.now()
|
||||
console.log(await getCorrespondPath(ts))
|
||||
```
|
||||
|
||||
```
|
||||
```text
|
||||
b77f21ab5b7ce7879c410b2311dd6e7ea1a2cd1cd941073db067f4c3279fdabca3a06dfa744168ee14ad050b9f4889bd4edb8e76eb597fdd18c16804d82566b55c6dba8e225d838aa93d8e5b31cf7c56720db8244d92373f4944e0561f6ca5bf721a36ac079786060fc853605ccd1ddcb33f54617de6aedd44e3b9850d13b45f
|
||||
```
|
||||
|
||||
@ -170,7 +170,7 @@ ts = round(time.time() * 1000)
|
||||
print(getCorrespondPath(ts))
|
||||
```
|
||||
|
||||
```
|
||||
```text
|
||||
47bbd615f333d6a2c597bbb46ad47a6e59752a305a2f545d3ba5d49ca055309347796f80d257613696d36170c57443a0e9dea2b47f83b0b4224d431e46124fadd9a24c8fa468147e8bf2d2501eaacae43310e19bf58fc4a728d80c90b9401afcfc1536ba9a2f6438ea53c0b2652f8b8d01c87355dd5a5da51de998b1a35d519a
|
||||
```
|
||||
|
||||
@ -219,7 +219,7 @@ fun getCorrespondPath(timestamp: Long): String {
|
||||
}
|
||||
```
|
||||
|
||||
```
|
||||
```text
|
||||
1428cbd14605ae42a0b42e22662cfe51d8e5034eeaffb36a46db46bd2f93216cbfd4d150cca2de44395add7c664b40acf44424ee8d634fc821b909423665a34d18bd7f4e77ea5388a2b612daf875e2fe8df62990e14b64a465898b0707bc1288586b68f9f4f2f20bea5cb1cada296beb8009e91bc8fb57a4b81b8923299b6eb7
|
||||
```
|
||||
|
||||
@ -274,11 +274,12 @@ JNrRuoEUXpabUzGB8QIDAQAB
|
||||
}
|
||||
```
|
||||
|
||||
```
|
||||
```text
|
||||
97759947aa357ed5d88cf9bf1172737570b7bba2d6788d39006f082b2b25ddf53b581f1f0c61ed8573317485ef525d2789faa25a277b4602a4b9cbf837681093a03e96cb9773a11df4bb1e20f1587180b3e958194de922d7dd94d0a2f0b9b0ef74e426e8041f99b99e7c02407ef4ab38040e61be81e4fdfbdb73461e3a2ad810
|
||||
```
|
||||
|
||||
### Java
|
||||
|
||||
```Java
|
||||
import javax.crypto.Cipher;
|
||||
import javax.crypto.spec.OAEPParameterSpec;
|
||||
@ -336,7 +337,7 @@ public class CookieRefresh {
|
||||
}
|
||||
```
|
||||
|
||||
```
|
||||
```text
|
||||
f87666152da692735123f4e49053e5a98c16854673b2e632f31a3ff0c029640772873661a9a8412db6be447a0bfa03a295d15548cbfd2bb35634e98ba5f25b1205519d6e6119b483f4c516c1e106d45b04ff98c73560949d379d3edaf3c0ecd10a1d46134fb9ca443122ab33c16d1dd48280496f949ed960a2fbcd65f10935e
|
||||
```
|
||||
|
||||
|
@ -486,7 +486,7 @@ public class Test3 {
|
||||
|
||||
### 简述
|
||||
|
||||
有时 [登录操作(web端)](#登录操作web端) (APP 端可能也有类似操作) 会返回如下内容, 此时需要进行手机号验证或绑定
|
||||
有时使用密码登录时, 无论使用网页端还是手机端接口, 由于 请求头缺失/请求频率高/请求IP 等原因, 会返回如下内容, 此时需要进行手机号验证或绑定
|
||||
|
||||
```json
|
||||
{
|
||||
|
@ -156,7 +156,7 @@ curl 'https://api.bilibili.com/x/member/web/exp/reward' \
|
||||
| ------- | ---- | -------------------- | ----------- |
|
||||
| code | num | 返回值 | 0:成功 |
|
||||
| message | str | 错误信息 | 默认为0 |
|
||||
| number | num | 每日投币所奖励的经验 | 上限为50<br |
|
||||
| number | num | 每日投币所奖励的经验 | 上限为50 |
|
||||
|
||||
**示例:**
|
||||
|
||||
|
@ -1,5 +1,52 @@
|
||||
# 获取 buvid3 / buvid4 / b_nut
|
||||
|
||||
## 仅获取 buvid3
|
||||
|
||||
> https://api.bilibili.com/x/web-frontend/getbuvid
|
||||
|
||||
*请求方式: GET*
|
||||
|
||||
<!--{
|
||||
"gh": [338]
|
||||
}-->
|
||||
|
||||
**JSON回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | -------- |
|
||||
| code | num | 返回值 | 0:成功 |
|
||||
| data | obj | 数据本体 | |
|
||||
|
||||
`data`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | ------ | ---- |
|
||||
| buvid | str | buvid3 | 需手动存放至 cookie 中 |
|
||||
|
||||
**示例:**
|
||||
|
||||
注: 不要复制
|
||||
|
||||
```shell
|
||||
curl -G 'https://api.bilibili.com/x/web-frontend/getbuvid'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"data": {
|
||||
"buvid": "54E5EFC1-3C8F-F690-2261-439E4F6A20A979439infoc"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 接口获取 buvid3 / buvid4
|
||||
|
||||
> https://api.bilibili.com/x/frontend/finger/spi
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
## 简述
|
||||
|
||||
当同一接口在短时间内被同一用户/IP/UA多次请求或异常时, 会触发风控, 如接口返回 `code` 为 `-352` 即 `风控校验失败`, 同时 `data` 中出现 `v_voucher` 字段
|
||||
当同一接口在短时间内被同一用户/IP/UA多次请求或异常时, 会触发风控, 如接口返回 `code` 为 `-352` 即 `风控校验失败`, 同时 `data` 中出现 `v_voucher` 字段, 响应头出现 `x-bili-gaia-vvoucher`
|
||||
|
||||
`v_voucher` 结构为字符串 `voucher_` 尾随一串以 `-` 为分隔符的小写 UUID
|
||||
|
||||
@ -14,7 +14,7 @@
|
||||
|
||||
## 操作流程
|
||||
|
||||
1. 快速以不正确的姿势请求接口, 直到返回 `v_voucher` 字段如下
|
||||
1. 快速以不正确的姿势请求接口, 直到返回 `v_voucher` 字段如下. 若 `data` 中没有 `v_voucher` 字段, 则检查响应头 `x-bili-gaia-vvoucher`
|
||||
|
||||
```json
|
||||
{
|
||||
@ -31,9 +31,9 @@
|
||||
|
||||
3. 按照 [验证captcha验证码](../../login/login_action/readme.md#验证captcha验证码) 进行验证, 记下验证结果的 `validate` 与 `seccode`
|
||||
|
||||
4. [请求 `validate` 接口](#从验证结果获取-grisk_id), 请求体传入 `challenge` `token` `validate` `seccode` `csrf`, 该接口返回 `grisk_id` 即 `gaia_vtoken`
|
||||
4. [请求 `validate` 接口](#从验证结果获取-grisk_id), 请求体传入 `challenge` `token` `validate` `seccode` `csrf`, 该接口返回 `grisk_id` 即 `gaia_vtoken` 与 `x-bili-gaia-vtoken`
|
||||
|
||||
5. 重新请求原接口, 原 URL 参数加入 `gaia_vtoken`, 即恢复正常
|
||||
5. 重新请求原接口, 原 URL 参数加入 `gaia_vtoken`, Cookie 加入 `x-bili-gaia-vtoken`, 即恢复正常
|
||||
|
||||
## 接口列表
|
||||
|
||||
|
@ -382,7 +382,7 @@ bar=514&baz=1919810&foo=114&wts=1684805578&w_rid=bb97e15f28edf445a0e4420d36f0157
|
||||
|
||||
需要 `github.com/tidwall/gjson` 作为依赖
|
||||
|
||||
```golang
|
||||
```go
|
||||
package main
|
||||
|
||||
import (
|
||||
@ -731,9 +731,64 @@ public class WbiTest {
|
||||
|
||||
### Kotlin
|
||||
|
||||
说明: 为了便于使用和缓存, 重新编写为实体类形式, 并拆分了多个文件. 使用官方的JSON序列化. (可以根据需要换成其他的)
|
||||
|
||||
WbiParams.kt
|
||||
|
||||
```kotlin
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.json.JsonElement
|
||||
import kotlinx.serialization.json.JsonObject
|
||||
import kotlinx.serialization.json.jsonPrimitive
|
||||
|
||||
private fun JsonElement?.get(): String {
|
||||
check(this != null) { "No contents found" }
|
||||
return this.jsonPrimitive.content.split('/').last().removeSuffix(".png")
|
||||
}
|
||||
|
||||
private val mixinKeyEncTab = intArrayOf(
|
||||
46, 47, 18, 2, 53, 8, 23, 32, 15, 50, 10, 31, 58, 3, 45, 35, 27, 43, 5, 49,
|
||||
33, 9, 42, 19, 29, 28, 14, 39, 12, 38, 41, 13, 37, 48, 7, 16, 24, 55, 40,
|
||||
61, 26, 17, 0, 1, 60, 51, 30, 4, 22, 25, 54, 21, 56, 59, 6, 63, 57, 62, 11,
|
||||
36, 20, 34, 44, 52
|
||||
)
|
||||
|
||||
@Serializable
|
||||
data class WbiParams(
|
||||
val imgKey: String,
|
||||
val subKey: String,
|
||||
) {
|
||||
// 此处整合了切分参数(直接传入{img_url:string, sub_url:string}即可), 不需要可以删掉
|
||||
constructor(wbiImg: JsonObject) : this(wbiImg["img_url"].get(), wbiImg["sub_url"].get())
|
||||
|
||||
private val mixinKey: String
|
||||
get() = (imgKey + subKey).let { s ->
|
||||
buildString {
|
||||
repeat(32) {
|
||||
append(s[mixinKeyEncTab[it]])
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 创建对象(GET获取或者读缓存, 比如Redis)之后, 直接调用此函数处理
|
||||
fun enc(params: Map<String, Any?>): String {
|
||||
val sorted = params.filterValues { it != null }.toSortedMap()
|
||||
return buildString {
|
||||
append(sorted.toQueryString())
|
||||
val wts = System.currentTimeMillis() / 1000
|
||||
sorted["wts"] = wts
|
||||
append("&wts=")
|
||||
append(wts)
|
||||
append("&w_rid=")
|
||||
append((sorted.toQueryString() + mixinKey).toMD5())
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Extensions.kt
|
||||
|
||||
```kotlin
|
||||
import java.net.URLEncoder
|
||||
import java.nio.charset.StandardCharsets
|
||||
import java.security.MessageDigest
|
||||
|
||||
private val hexDigits = "0123456789abcdef".toCharArray()
|
||||
@ -751,53 +806,13 @@ fun String.toMD5(): String {
|
||||
return digest.toHexString()
|
||||
}
|
||||
|
||||
private val mixinKeyEncTab = intArrayOf(
|
||||
46, 47, 18, 2, 53, 8, 23, 32, 15, 50, 10, 31, 58, 3, 45, 35, 27, 43, 5, 49,
|
||||
33, 9, 42, 19, 29, 28, 14, 39, 12, 38, 41, 13, 37, 48, 7, 16, 24, 55, 40,
|
||||
61, 26, 17, 0, 1, 60, 51, 30, 4, 22, 25, 54, 21, 56, 59, 6, 63, 57, 62, 11,
|
||||
36, 20, 34, 44, 52
|
||||
)
|
||||
|
||||
fun getMixinKey(imgKey: String, subKey: String): String {
|
||||
val s = imgKey + subKey
|
||||
return buildString {
|
||||
repeat(32) {
|
||||
append(s[mixinKeyEncTab[it]])
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun Any.encodeURIComponent() =
|
||||
URLEncoder.encode(this.toString(), StandardCharsets.UTF_8).replace("+", "%20")
|
||||
|
||||
fun encWbi(params: Map<String, Any>, imgKey: String, subKey: String): String {
|
||||
val mixinKey = getMixinKey(imgKey, subKey)
|
||||
val s = params.toSortedMap().let {
|
||||
it["wts"] to System.currentTimeMillis() / 1000
|
||||
it.entries.joinToString("&") { (k, v) ->
|
||||
"${k.encodeURIComponent()}=${v.encodeURIComponent()}"
|
||||
}
|
||||
}
|
||||
return "$s&w_rid=${(s + mixinKey).toMD5()}"
|
||||
}
|
||||
|
||||
fun main() {
|
||||
val imgKey = "653657f524a547ac981ded72ea172057"
|
||||
val subKey = "6e4909c702f846728e64f6007736a338"
|
||||
val mixinKey = getMixinKey(imgKey, subKey)
|
||||
println(mixinKey) // 72136226c6a73669787ee4fd02a74c27
|
||||
|
||||
// 需要加签的参数
|
||||
val param = mapOf(
|
||||
"foo" to "one+one four",
|
||||
"bar" to "五一四",
|
||||
"baz" to 1919810,
|
||||
)
|
||||
|
||||
println(encWbi(param, imgKey, subKey))
|
||||
fun Map<String, Any?>.toQueryString() = this.filterValues { it != null }.entries.joinToString("&") { (k, v) ->
|
||||
"${k.encodeURIComponent()}=${v!!.encodeURIComponent()}"
|
||||
}
|
||||
```
|
||||
|
||||
获取和使用案例略
|
||||
|
||||
### PHP
|
||||
|
||||
来自[SocialSisterYi/bilibili-API-collect#813](https://github.com/SocialSisterYi/bilibili-API-collect/issues/813)
|
||||
|
@ -10,9 +10,7 @@
|
||||
|
||||
*方式:GET*
|
||||
|
||||
认证方式:Cookie(SESSDATA)
|
||||
|
||||
鉴权方式:[Wbi 签名](../misc/sign/wbi.md)
|
||||
鉴权方式:[Wbi 签名](../misc/sign/wbi.md), Cookie 中含有 [`buvid3`](../misc/buvid3_4.md) 字段
|
||||
|
||||
返回和关键字相关的20条信息
|
||||
|
||||
@ -611,7 +609,7 @@ curl -G 'https://api.bilibili.com/x/web-interface/search/all/v2' \
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | --------------------------- |
|
||||
| code | num | 返回值 | 0:成功<br />-400:请求错误<br/>-412:请求被拦截 |
|
||||
| code | num | 返回值 | 0: 成功<br />-400: 请求错误<br/>-412: 请求被拦截<br />-1200: 被降级过滤的请求(搜索目标类型不存在) |
|
||||
| message | str | 错误信息 | 默认为0 |
|
||||
| ttl | num | 1 | |
|
||||
| data | obj | 信息本体 | |
|
||||
|
@ -51,7 +51,7 @@
|
||||
| target_icon | str | 主播头像 URL | |
|
||||
| link | str | 主播主页 URL | |
|
||||
| live_status | num | 直播状态 | 0: 未直播<br />1: 正在直播<br />2: 轮播中 |
|
||||
| offical | num | 主播认证类型 | 参见 [用户认证类型一览](offical_role.md) |
|
||||
| offical | num | 主播认证类型 | 参见 [用户认证类型一览](official_role.md) |
|
||||
| uinfo_medal | str | 用户勋章信息 | |
|
||||
|
||||
`list` 数组中的对象中的 `medal_info` 对象:
|
||||
@ -64,7 +64,7 @@
|
||||
| medal_color_start | num | 勋章开始颜色 | 十进制(自行转换为16进制) |
|
||||
| medal_color_end | num | 勋章结束颜色 | 同上 |
|
||||
| medal_color_border | num | 勋章边框颜色 | 同上 |
|
||||
| guard_level | num | 守护等级? | |
|
||||
| guard_level | num | 守护等级? | 1: 总督<br />2: 提督<br />3: 舰长 |
|
||||
| wearing_status | num | 佩戴状态 | 0: 未佩戴<br />1: 佩戴中 |
|
||||
| medal_id | num | 勋章 ID | |
|
||||
| intimacy | num | 当前亲密度 | |
|
||||
@ -80,17 +80,17 @@
|
||||
| ---- | ---- | ---- | ---- |
|
||||
| name | str | 勋章名称 | |
|
||||
| level | num | 勋章等级 | |
|
||||
| color_start | num | 勋章开始颜色 | 十进制(自行转换为16进制) |
|
||||
| color_end | num | 勋章结束颜色 | 同上 |
|
||||
| color_start | num | 勋章渐变开始颜色 | 十进制(自行转换为16进制) |
|
||||
| color_end | num | 勋章渐变结束颜色 | 同上 |
|
||||
| color_border | num | 勋章边框颜色 | 同上 |
|
||||
| color | num | 勋章文本色? | 同上 |
|
||||
| color | num | 勋章颜色 | 同上 |
|
||||
| id | num | 勋章 ID | |
|
||||
| typ | num | 勋章类型? | |
|
||||
| is_light | num | 勋章亮色? | |
|
||||
| is_light | num | 是否点亮? | |
|
||||
| ruid | num | 主播 mid | |
|
||||
| guard_level | num | 守护等级? | |
|
||||
| guard_level | num | 大航海等级 | 1: 总督<br />2: 提督<br />3: 舰长 |
|
||||
| score | num | 勋章分数? | |
|
||||
| guard_icon | str | 守护徽章图标 URL? | |
|
||||
| guard_icon | str | 大航海图标 URL? | 粉丝牌左边的图标 |
|
||||
| honor_icon | str | 荣誉徽章图标 URL? | |
|
||||
| v2_medal_color_start | str | 勋章开始颜色 | 16进制 |
|
||||
| v2_medal_color_end | str | 勋章结束颜色 | 同上 |
|
||||
|
@ -60,7 +60,7 @@ curl 'https://passport.bilibili.com/web/sms/general/v2/send' \
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | ----------------------------------------------- |
|
||||
| code | num | 返回值 | 0:成功<br>1005:验证码错误<br>1007:验证码过期 |
|
||||
| code | num | 返回值 | 0:成功<br />1005:验证码错误<br />1007:验证码过期 |
|
||||
| message | str | 错误信息 | 成功时无此字段 |
|
||||
| data | obj | 信息本体 | 只在成功时存在 |
|
||||
|
||||
|
@ -842,8 +842,8 @@ curl 'https://api.bilibili.com/x/space/notice/set' \
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------ | ------------------- | -------- | ---- |
|
||||
| status | bool | 用户是否存在 | true:存在<br>false:不存在 |
|
||||
| data | 用户存在时:obj<br>用户不存在时:str| 用户存在时:信息本体<br>用户不存在时:错误信息 | |
|
||||
| status | bool | 用户是否存在 | true:存在<br />false:不存在 |
|
||||
| data | 用户存在时:obj<br />用户不存在时:str| 用户存在时:信息本体<br />用户不存在时:错误信息 | |
|
||||
|
||||
`data`对象:
|
||||
|
||||
@ -859,7 +859,7 @@ curl 'https://api.bilibili.com/x/space/notice/set' \
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ----------- | ---- | -------------- | ------------------------------ |
|
||||
| bangumi | num | 追番及追剧 | 0:隐藏<br>1:公开<br>**下同** |
|
||||
| bangumi | num | 追番及追剧 | 0:隐藏<br />1:公开<br />**下同** |
|
||||
| bbq | num | 轻视频 | |
|
||||
| channel | num | 频道 | |
|
||||
| coins_video | num | 最近投币的视频 | |
|
||||
@ -876,7 +876,7 @@ curl 'https://api.bilibili.com/x/space/notice/set' \
|
||||
|
||||
| 项 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | --------- | -------------------------------------------- |
|
||||
| 0 | obj | 板块1 | 根据板块布局顺序排序<br>先左侧布局后右侧布局 |
|
||||
| 0 | obj | 板块1 | 根据板块布局顺序排序<br />先左侧布局后右侧布局 |
|
||||
| n | obj | 板块(n+1) | |
|
||||
| …… | obj | …… | …… |
|
||||
|
||||
@ -3066,739 +3066,184 @@ curl -G 'https://api.vc.bilibili.com/link_draw/v1/doc/doc_list' \
|
||||
|
||||
</details>
|
||||
|
||||
### 查询用户投稿音频明细
|
||||
|
||||
> https://api.bilibili.com/audio/music-service/web/song/upper
|
||||
|
||||
*请求方法: GET*
|
||||
|
||||
<!--{
|
||||
"from": {
|
||||
"url": "https://space.bilibili.com/8047632/audio",
|
||||
"selector": ".be-tab-inner"
|
||||
}
|
||||
"gh": [442]
|
||||
}-->
|
||||
|
||||
**URL参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| mid | num | 用户 mid | 必要 | |
|
||||
| pn | num | 页码 | 必要 | 默认为 1 |
|
||||
| ps | num | 每页项数 | 必要 | 默认为 30 |
|
||||
| order | str | 排序方式 | 必要 | 1: 最新发布<br />2: 最多播放<br />3: 最多收藏 |
|
||||
|
||||
**JSON回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| --- | --- | --- | --- |
|
||||
| code | num | 返回值 | 0: 成功<br />72000000: 缺少参数 |
|
||||
| msg | str | 返回信息 | 成功为 `success` |
|
||||
| data | str | 数据本体 | 失败时不存在 |
|
||||
|
||||
`data` 对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| --- | --- | --- | --- |
|
||||
| curPage | num | 当前页码 | |
|
||||
| pageCount | num | 总页数 | |
|
||||
| totalSize | num | 总计数 | |
|
||||
| pageSize | num | 每页项数 | |
|
||||
| data | array | 音频列表 | |
|
||||
|
||||
`data` 对象中的 `data` 数组中的对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| --- | --- | --- | --- |
|
||||
| id | num | 音频 AU 号 | |
|
||||
| uid | num | 用户 mid | |
|
||||
| uname | str | 用户名 | |
|
||||
| author | null | | |
|
||||
| title | str | 音频标题 | |
|
||||
| cover | str | 音频封面图片 URL | |
|
||||
| intro | null | | |
|
||||
| lyric | str | 音频歌词 URL | |
|
||||
| crtype | num | 1 | |
|
||||
| duration | num | 音频时长 | 单位为 秒 |
|
||||
| passtime | num | 发布时间 | UNIX 秒级时间戳 |
|
||||
| curtime | num | 0 | |
|
||||
| aid | null | | |
|
||||
| cid | null | | |
|
||||
| msid | null | | |
|
||||
| attr | null | | |
|
||||
| limit | null | | |
|
||||
| activityId | null | | |
|
||||
| limitdesc | null | | |
|
||||
| ctime | num | 发布时间 | UNIX 毫秒时间戳 |
|
||||
| statistic | obj | 统计数 | |
|
||||
| coin_num | num | 硬币数量 | |
|
||||
| is_cooper | null | | |
|
||||
|
||||
`data` 数组中的对象中的 `statistic` 对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| --- | --- | --- | --- |
|
||||
| sid | num | 音频 AU 号 | |
|
||||
| play | num | 播放数 | |
|
||||
| collect | num | 收藏数 | |
|
||||
| comment | num | 评论数 | |
|
||||
| share | num | 分享数 | |
|
||||
|
||||
**示例:**
|
||||
|
||||
```shell
|
||||
curl -G 'https://api.bilibili.com/audio/music-service/web/song/upper' \
|
||||
--url-query 'uid=8047632' \
|
||||
--url-query 'pn=1' \
|
||||
--url-query 'ps=30' \
|
||||
--url-query 'order=2'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"msg": "success",
|
||||
"data": {
|
||||
"curPage": 1,
|
||||
"pageCount": 1,
|
||||
"totalSize": 2,
|
||||
"pageSize": 30,
|
||||
"data": [
|
||||
{
|
||||
"id": 257709,
|
||||
"uid": 8047632,
|
||||
"uname": "哔哩哔哩弹幕网",
|
||||
"author": null,
|
||||
"title": "【2018拜年祭单品】与你同行~B With U~",
|
||||
"cover": "http://i0.hdslb.com/bfs/music/0f890889c8e1101f37317def0c4c555068054c88.jpg",
|
||||
"intro": null,
|
||||
"lyric": "http://i0.hdslb.com/bfs/music/1519959250257709.lrc",
|
||||
"crtype": 1,
|
||||
"duration": 301,
|
||||
"passtime": 1519878405,
|
||||
"curtime": 0,
|
||||
"aid": null,
|
||||
"cid": null,
|
||||
"msid": null,
|
||||
"attr": null,
|
||||
"limit": null,
|
||||
"activityId": null,
|
||||
"limitdesc": null,
|
||||
"ctime": 1519875632000,
|
||||
"statistic": {
|
||||
"sid": 257709,
|
||||
"play": 845264,
|
||||
"collect": 21978,
|
||||
"comment": 1983,
|
||||
"share": 1685
|
||||
},
|
||||
"coin_num": 13368,
|
||||
"is_cooper": null
|
||||
},
|
||||
{
|
||||
"id": 378521,
|
||||
"uid": 8047632,
|
||||
"uname": "哔哩哔哩弹幕网",
|
||||
"author": null,
|
||||
"title": "《B TOGETHER》-bilibili九周年主题曲",
|
||||
"cover": "http://i0.hdslb.com/bfs/music/109136c63e16d83fbad5ec9282a6fb96498d8144.jpg",
|
||||
"intro": null,
|
||||
"lyric": "http://i0.hdslb.com/bfs/music/1529979007378521.lrc",
|
||||
"crtype": 1,
|
||||
"duration": 261,
|
||||
"passtime": 1529928347,
|
||||
"curtime": 0,
|
||||
"aid": null,
|
||||
"cid": null,
|
||||
"msid": null,
|
||||
"attr": null,
|
||||
"limit": null,
|
||||
"activityId": null,
|
||||
"limitdesc": null,
|
||||
"ctime": 1529928235000,
|
||||
"statistic": {
|
||||
"sid": 378521,
|
||||
"play": 123264,
|
||||
"collect": 5501,
|
||||
"comment": 1591,
|
||||
"share": 535
|
||||
},
|
||||
"coin_num": 3640,
|
||||
"is_cooper": null
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 频道
|
||||
|
||||
<img src="../../assets/img/channel.svg" width="100" height="100" />
|
||||
|
||||
### 查询用户频道列表
|
||||
|
||||
> https://api.bilibili.com/x/space/channel/list
|
||||
|
||||
*请求方式:GET*
|
||||
|
||||
**url参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | ---- | ----------- | ------ | ---- |
|
||||
| mid | num | 目标用户mid | 必要 | |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | -------- |
|
||||
| code | num | 返回值 | 0:成功 |
|
||||
| message | str | 错误信息 | 默认为0 |
|
||||
| ttl | num | 1 | |
|
||||
| data | obj | 信息本体 | 无则为空 所有频道内均无视频则为空,此时code为0 |
|
||||
|
||||
`data`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ----- | ------ | ---------- | ---- |
|
||||
| count | num | 总计频道数 | |
|
||||
| list | array | 频道列表 | |
|
||||
|
||||
`data`中的`list`数组:
|
||||
|
||||
| 项 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | ----------- | --------------------- |
|
||||
| 0 | obj | 频道1 | |
|
||||
| n | obj | 频道(n+1) | 项数取决于`count`的值 |
|
||||
| …… | obj | …… | …… |
|
||||
|
||||
`data`中的`list`数组中的对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ----- | ---- | -------------- | -------- |
|
||||
| cid | num | 频道id | |
|
||||
| count | num | 频道内含视频数 | |
|
||||
| cover | str | 封面图片url | |
|
||||
| intro | str | 简介 | 无则为空 |
|
||||
| mid | num | 创建用户mid | |
|
||||
| mtime | num | 创建时间 | 时间戳 |
|
||||
| name | str | 标题 | |
|
||||
|
||||
**示例:**
|
||||
|
||||
查询用户`mid=53456`的频道列表
|
||||
|
||||
```shell
|
||||
curl -G 'https://api.bilibili.com/x/space/channel/list' \
|
||||
--data-urlencode 'mid=53456'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1,
|
||||
"data": {
|
||||
"count": 6,
|
||||
"list": [{
|
||||
"cid": 100249,
|
||||
"mid": 53456,
|
||||
"name": "【实况】动物之森",
|
||||
"intro": "",
|
||||
"mtime": 1579898830,
|
||||
"count": 2,
|
||||
"cover": "http://i1.hdslb.com/bfs/archive/6a7ed9483c34e839dfca981b9e2b94cd4c4efa0a.jpg"
|
||||
}, {
|
||||
"cid": 79323,
|
||||
"mid": 53456,
|
||||
"name": "忆雨",
|
||||
"intro": "忆雨出现过的视频",
|
||||
"mtime": 1562535222,
|
||||
"count": 7,
|
||||
"cover": "http://i2.hdslb.com/bfs/archive/1783e4f03042b282495799adda1cb56270cea647.jpg"
|
||||
}, {
|
||||
"cid": 79322,
|
||||
"mid": 53456,
|
||||
"name": "大画家",
|
||||
"intro": "",
|
||||
"mtime": 1562535122,
|
||||
"count": 6,
|
||||
"cover": "http://i0.hdslb.com/bfs/archive/9c85a14e805c6c23cb7a42e1dbef97821bb68960.jpg"
|
||||
}, {
|
||||
"cid": 77758,
|
||||
"mid": 53456,
|
||||
"name": "灭火器",
|
||||
"intro": "",
|
||||
"mtime": 1561270856,
|
||||
"count": 4,
|
||||
"cover": "http://i2.hdslb.com/bfs/archive/0073208d086b4ebe9cdc540e7664aa74b483aeb6.jpg"
|
||||
}, {
|
||||
"cid": 75696,
|
||||
"mid": 53456,
|
||||
"name": "沃玛小剧场",
|
||||
"intro": "",
|
||||
"mtime": 1559129460,
|
||||
"count": 5,
|
||||
"cover": "http://i2.hdslb.com/bfs/archive/db2b20ecdb6ed013fc3780b0e741ea88d46b5b40.jpg"
|
||||
}, {
|
||||
"cid": 170,
|
||||
"mid": 53456,
|
||||
"name": "爆炸电台",
|
||||
"intro": "闲聊的电台",
|
||||
"mtime": 1503298893,
|
||||
"count": 7,
|
||||
"cover": "http://i2.hdslb.com/bfs/archive/73d77bc6bb0d44b239fd4f5a2682fe3144e81692.jpg"
|
||||
}]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
|
||||
|
||||
### 查询用户频道中的视频
|
||||
|
||||
> https://api.bilibili.com/x/space/channel/video
|
||||
|
||||
*请求方式:GET*
|
||||
|
||||
**url参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | ---- | ----------- | ------ | --------- |
|
||||
| mid | num | 目标用户mid | 必要 | |
|
||||
| cid | num | 目标频道id | 必要 | |
|
||||
| pn | num | 页码 | 非必要 | 默认为1 |
|
||||
| ps | num | 每页项数 | 非必要 | 默认为100 |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | ------------------------------------------------------- |
|
||||
| code | num | 返回值 | 0:成功<br />-400:请求错误<br />-404:无用户对应的频道 |
|
||||
| message | str | 错误信息 | 默认为0 |
|
||||
| ttl | num | 1 | |
|
||||
| data | obj | 信息本体 | |
|
||||
|
||||
`data`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | -------- | ---- |
|
||||
| list | obj | 频道信息 | |
|
||||
| page | obj | 页面信息 | |
|
||||
|
||||
`data`中的`list`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| -------- | ------ | -------------- | -------- |
|
||||
| archives | array | 包含的视频列表 | |
|
||||
| cid | num | 频道id | |
|
||||
| count | num | 频道内含视频数 | |
|
||||
| cover | str | 封面图片url | |
|
||||
| intro | str | 简介 | 无则为空 |
|
||||
| mid | num | 创建用户mid | |
|
||||
| mtime | num | 创建时间 | 时间戳 |
|
||||
| name | str | 标题 | |
|
||||
|
||||
`list`中的`archives`数组:
|
||||
|
||||
| 项 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | ----------- | --------------------- |
|
||||
| 0 | obj | 视频1 | |
|
||||
| n | obj | 视频(n+1) | 项数取决于`count`的值 |
|
||||
| …… | obj | …… | …… |
|
||||
|
||||
`list`中的`archives`数组中的对象:
|
||||
|
||||
基本同「[视频详细信息](https://github.com/SocialSisterYi/bilibili-API-collect/blob/master/video/info.md#视频详细信息(avid/bvid互转))」中的data对象
|
||||
|
||||
`data`中的`page`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ----- | ---- | ---------- | ---- |
|
||||
| count | num | 总计视频数 | |
|
||||
| num | num | 当前页码 | |
|
||||
| size | num | 每页项数 | |
|
||||
|
||||
**示例:**
|
||||
|
||||
查询用户`mid=53456`的频道`170`中的视频
|
||||
|
||||
```shell
|
||||
curl -G 'https://api.bilibili.com/x/space/channel/video' \
|
||||
--data-urlencode 'mid=53456' \
|
||||
--data-urlencode 'cid=170' \
|
||||
--data-urlencode 'ps=2' \
|
||||
--data-urlencode 'pn=1'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1,
|
||||
"data": {
|
||||
"list": {
|
||||
"cid": 170,
|
||||
"mid": 53456,
|
||||
"name": "爆炸电台",
|
||||
"intro": "闲聊的电台",
|
||||
"mtime": 1503298893,
|
||||
"count": 7,
|
||||
"cover": "http://i2.hdslb.com/bfs/archive/73d77bc6bb0d44b239fd4f5a2682fe3144e81692.jpg",
|
||||
"archives": [{
|
||||
"aid": 87673204,
|
||||
"videos": 1,
|
||||
"tid": 21,
|
||||
"tname": "日常",
|
||||
"copyright": 1,
|
||||
"pic": "http://i0.hdslb.com/bfs/archive/5387bdcbbe4d5551adbf0ee2e607e4b7d3d8f2f0.jpg",
|
||||
"title": "【warma爆炸电台】迟来的自我介绍【第八期】",
|
||||
"pubdate": 1581244539,
|
||||
"ctime": 1581244540,
|
||||
"desc": "时隔半年的新的一期爆炸电台来啦,这是我的一系列杂谈聊天电台,这次因为多了很多新关注的朋友们,所以来做个自我介绍吧!\n画师:Dr-H_喵_ 动画:K_Lacid\n结尾提到的壁纸稍后在动态发原图,动态壁纸在steam那个壁纸软件的创意工坊里搜warma能找到\n\n往期的电台:\n第一期:av6786024 \n第三期:av13619263\n第四期:av18862091\n第五期:av25092410\n第六期:av42492515\n第七期:av62910468",
|
||||
"state": 0,
|
||||
"attribute": 16512,
|
||||
"duration": 2388,
|
||||
"rights": {
|
||||
"bp": 0,
|
||||
"elec": 0,
|
||||
"download": 0,
|
||||
"movie": 0,
|
||||
"pay": 0,
|
||||
"hd5": 0,
|
||||
"no_reprint": 1,
|
||||
"autoplay": 1,
|
||||
"ugc_pay": 0,
|
||||
"is_cooperation": 0,
|
||||
"ugc_pay_preview": 0,
|
||||
"no_background": 0
|
||||
},
|
||||
"owner": {
|
||||
"mid": 53456,
|
||||
"name": "Warma",
|
||||
"face": "http://i1.hdslb.com/bfs/face/c1bbee6d255f1e7fc434e9930f0f288c8b24293a.jpg"
|
||||
},
|
||||
"stat": {
|
||||
"aid": 87673204,
|
||||
"view": 1383542,
|
||||
"danmaku": 88908,
|
||||
"reply": 9237,
|
||||
"favorite": 32929,
|
||||
"coin": 68849,
|
||||
"share": 5140,
|
||||
"now_rank": 0,
|
||||
"his_rank": 52,
|
||||
"like": 116164,
|
||||
"dislike": 0
|
||||
},
|
||||
"dynamic": "来做个自我介绍吧! #warma##沃玛##爆炸电台#",
|
||||
"cid": 149793525,
|
||||
"dimension": {
|
||||
"width": 1920,
|
||||
"height": 1080,
|
||||
"rotate": 0
|
||||
},
|
||||
"bvid": "BV1D7411t7Be",
|
||||
"inter_video": false
|
||||
}, {
|
||||
"aid": 62910468,
|
||||
"videos": 1,
|
||||
"tid": 21,
|
||||
"tname": "日常",
|
||||
"copyright": 1,
|
||||
"pic": "http://i2.hdslb.com/bfs/archive/4bd598f71a144d4505e259b143c0de0bf27968b2.jpg",
|
||||
"title": "【warma爆炸电台】居然收到了几千条问题!【第七期】",
|
||||
"pubdate": 1565345410,
|
||||
"ctime": 1565338559,
|
||||
"desc": "时隔半年的爆炸电台第七期终于来啦!在这一期里回答了很多问题,祝看得开心!此外,就在昨天,50万订阅了…真的谢谢大家!\n也欢迎来看往期的电台:\n第一期:av6786024 (2016年10月)\n第二期:av10373352(2017年5月)\n第三期:av13619263(2017年8月)\n第四期:av18862091(2018年1月)\n第五期:av25092410(2018年6月)\n第六期:av42492515(2019年2月)",
|
||||
"state": 0,
|
||||
"attribute": 16512,
|
||||
"duration": 1987,
|
||||
"mission_id": 11740,
|
||||
"rights": {
|
||||
"bp": 0,
|
||||
"elec": 0,
|
||||
"download": 0,
|
||||
"movie": 0,
|
||||
"pay": 0,
|
||||
"hd5": 0,
|
||||
"no_reprint": 1,
|
||||
"autoplay": 1,
|
||||
"ugc_pay": 0,
|
||||
"is_cooperation": 0,
|
||||
"ugc_pay_preview": 0,
|
||||
"no_background": 0
|
||||
},
|
||||
"owner": {
|
||||
"mid": 53456,
|
||||
"name": "Warma",
|
||||
"face": "http://i1.hdslb.com/bfs/face/c1bbee6d255f1e7fc434e9930f0f288c8b24293a.jpg"
|
||||
},
|
||||
"stat": {
|
||||
"aid": 62910468,
|
||||
"view": 455277,
|
||||
"danmaku": 19383,
|
||||
"reply": 2108,
|
||||
"favorite": 10507,
|
||||
"coin": 19422,
|
||||
"share": 1208,
|
||||
"now_rank": 0,
|
||||
"his_rank": 0,
|
||||
"like": 31515,
|
||||
"dislike": 0
|
||||
},
|
||||
"dynamic": "爆炸电台 第七期 来啦!",
|
||||
"cid": 109284065,
|
||||
"dimension": {
|
||||
"width": 1920,
|
||||
"height": 1080,
|
||||
"rotate": 0
|
||||
},
|
||||
"bvid": "BV1gt411K7Ga",
|
||||
"inter_video": false
|
||||
}]
|
||||
},
|
||||
"page": {
|
||||
"count": 7,
|
||||
"num": 1,
|
||||
"size": 2
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
### 创建频道
|
||||
|
||||
> https://api.bilibili.com/x/space/channel/add
|
||||
|
||||
*请求方式:POST*
|
||||
|
||||
认证方式:Cookie(SESSDATA)
|
||||
|
||||
创建成功后会返回新建频道的id
|
||||
|
||||
**正文参数( application/x-www-form-urlencoded ):**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | ---- | ------------------------ | ------ | ---- |
|
||||
| name | str | 频道名 | 必要 | |
|
||||
| intro | str | 频道简介 | 非必要 | |
|
||||
| csrf | str | CSRF Token(位于cookie) | 必要 | |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | ------------------------------------------------------------ |
|
||||
| code | num | 返回值 | 0:成功<br />-101:账号未登录<br />-111:csrf校验失败<br />-400:请求错误<br />53001:频道名字数超过限制<br />53002:频道简介字数超过限制<br />53004:创建的频道已经满额<br />53007:频道名称已经存在<br />53024:编辑内容命中敏感信息 |
|
||||
| message | str | 错误信息 | 默认为0 |
|
||||
| ttl | num | 1 | |
|
||||
| data | obj | 数据本体 | 成功有此项 |
|
||||
|
||||
`data`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | ------ | ---- |
|
||||
| cid | num | 频道id | |
|
||||
|
||||
**示例:**
|
||||
|
||||
创建名为`test1`的频道,简介为空
|
||||
|
||||
```shell
|
||||
curl 'https://api.bilibili.com/x/space/channel/add' \
|
||||
--data-urlencode 'name=test1' \
|
||||
--data-urlencode 'intro=' \
|
||||
--data-urlencode 'csrf=xxx' \
|
||||
-b 'SESSDATA=xxx'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1,
|
||||
"data": {
|
||||
"cid": 138996
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
### 修改频道
|
||||
|
||||
> https://api.bilibili.com/x/space/channel/edit
|
||||
|
||||
*请求方式:POST*
|
||||
|
||||
认证方式:Cookie(SESSDATA)
|
||||
|
||||
**正文参数( application/x-www-form-urlencoded ):**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | ---- | ------------------------ | ------ | ---- |
|
||||
| cid | num | 频道id | 必要 | |
|
||||
| name | str | 频道名 | 必要 | |
|
||||
| intro | str | 频道简介 | 非必要 | |
|
||||
| csrf | str | CSRF Token(位于cookie) | 必要 | |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | ------------------------------------------------------------ |
|
||||
| code | num | 返回值 | 0:成功<br />-101:账号未登录<br />-111:csrf校验失败<br />-400:请求错误<br />53001:频道名字数超过限制<br />53002:频道简介字数超过限制<br />53007:频道名称已经存在<br />53024:编辑内容命中敏感信息 |
|
||||
| message | str | 错误信息 | 默认为0 |
|
||||
| ttl | num | 1 | |
|
||||
|
||||
**示例:**
|
||||
|
||||
修改频道`138996`名称为`测试`,简介为`123456`
|
||||
|
||||
```shell
|
||||
curl 'https://api.bilibili.com/x/space/channel/edit' \
|
||||
--data-urlencode 'cid=138996' \
|
||||
--data-urlencode 'name=测试' \
|
||||
--data-urlencode 'intro=123456' \
|
||||
--data-urlencode 'csrf=xxx' \
|
||||
-b 'SESSDATA=xxx'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
### 删除频道
|
||||
|
||||
> https://api.bilibili.com/x/space/channel/del
|
||||
|
||||
*请求方式:POST*
|
||||
|
||||
认证方式:Cookie(SESSDATA)
|
||||
|
||||
**正文参数( application/x-www-form-urlencoded ):**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | ---- | ------------------------ | ------ | ---- |
|
||||
| cid | num | 需要删除的频道id | 必要 | |
|
||||
| csrf | str | CSRF Token(位于cookie) | 必要 | |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | ------------------------------------------------------------ |
|
||||
| code | num | 返回值 | 0:成功<br />-101:账号未登录<br />-111:csrf校验失败<br />-400:请求错误 |
|
||||
| message | str | 错误信息 | 默认为0 |
|
||||
| ttl | num | 1 | |
|
||||
|
||||
**示例:**
|
||||
|
||||
删除频道`138996`
|
||||
|
||||
```shell
|
||||
curl 'https://api.bilibili.com/x/space/channel/del' \
|
||||
--data-urlencode 'cid=138996' \
|
||||
--data-urlencode 'csrf=xxx' \
|
||||
-b 'SESSDATA=xxx'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
### 频道添加视频
|
||||
|
||||
> https://api.bilibili.com/x/space/channel/video/add
|
||||
|
||||
*请求方式:POST*
|
||||
|
||||
认证方式:Cookie(SESSDATA)
|
||||
|
||||
仅能添加自己是UP主的视频
|
||||
|
||||
如添加多个视频,仅会添加正确的
|
||||
|
||||
**注:完成后需要使用接口「查询用户频道中的视频」刷新**
|
||||
|
||||
**正文参数( application/x-www-form-urlencoded ):**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | ---- | ------------------------ | ------ | ---------------------- |
|
||||
| cid | num | 频道id | 必要 | |
|
||||
| aids | nums | 要添加的目标稿件avid | 必要 | 多个使用","(%2C)分隔 |
|
||||
| csrf | str | CSRF Token(位于cookie) | 必要 | |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ----- | ---------------- | ------------------------------------------------------------ |
|
||||
| code | num | 返回值 | 0:成功<br />-101:账号未登录<br />-111:csrf校验失败<br />-400:请求错误<br />-404:无此项<br />53003:本频道里的视频已满<br />53006:提交视频已失效或频道里有(非该视频UP主) |
|
||||
| message | str | 错误信息 | 默认为0 |
|
||||
| ttl | num | 1 | |
|
||||
| data | array | 出错稿件avid列表 | |
|
||||
|
||||
`data`数组:
|
||||
|
||||
| 项 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | ------------------- | ---- |
|
||||
| 0 | num | 出错稿件avid1 | |
|
||||
| n | num | 出错稿件avid(n+1) | |
|
||||
| …… | num | …… | …… |
|
||||
|
||||
**示例:**
|
||||
|
||||
向频道`138995`中添加视频`av583785685`和`av243322853`
|
||||
|
||||
```shell
|
||||
curl 'https://api.bilibili.com/x/space/channel/video/add' \
|
||||
--data-urlencode 'cid=138995' \
|
||||
--data-urlencode 'aids=583785685,243322853' \
|
||||
--data-urlencode 'csrf=xxx' \
|
||||
-b 'SESSDATA=xxx'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1,
|
||||
"data": []
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
### 频道删除视频
|
||||
|
||||
> https://api.bilibili.com/x/space/channel/video/del
|
||||
|
||||
*请求方式:POST*
|
||||
|
||||
认证方式:Cookie(SESSDATA)
|
||||
|
||||
**注:完成后需要使用接口「查询用户频道中的视频」刷新**
|
||||
|
||||
**正文参数( application/x-www-form-urlencoded ):**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | ---- | ------------------------ | ------ | ---- |
|
||||
| cid | num | 频道id | 必要 | |
|
||||
| aid | num | 要删除的目标稿件avid | 必要 | |
|
||||
| csrf | str | CSRF Token(位于cookie) | 必要 | |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | ------------------------------------------------------------ |
|
||||
| code | num | 返回值 | 0:成功<br />-101:账号未登录<br />-111:csrf校验失败<br />-400:请求错误<br />-404:无此项<br />53008:频道内没有视频<br />53009:频道内没有该视频 |
|
||||
| message | str | 错误信息 | 默认为0 |
|
||||
| ttl | num | 1 | |
|
||||
|
||||
**示例:**
|
||||
|
||||
删除频道`138995`中的视频`av583785685`
|
||||
|
||||
```shell
|
||||
curl 'https://api.bilibili.com/x/space/channel/video/del' \
|
||||
--data-urlencode 'cid=138995' \
|
||||
--data-urlencode 'aid=583785685' \
|
||||
--data-urlencode 'csrf=xxx' \
|
||||
-b 'SESSDATA=xxx'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
### 调整频道视频排序
|
||||
|
||||
> https://api.bilibili.com/x/space/channel/video/sort
|
||||
|
||||
*请求方式:POST*
|
||||
|
||||
认证方式:Cookie(SESSDATA)
|
||||
|
||||
**正文参数( application/x-www-form-urlencoded ):**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | ---- | ------------------------ | ------ | ------------------------------------------------------------ |
|
||||
| cid | num | 频道id | 必要 | |
|
||||
| aid | num | 要移动的目标稿件avid | 必要 | |
|
||||
| to | num | 视频排序倒数位置 | 非必要 | 默认为1<br />1为列表底部,视频总数为首端<br />与显示顺序恰好相反 |
|
||||
| csrf | str | CSRF Token(位于cookie) | 必要 | |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | ------------------------------------------------------------ |
|
||||
| code | num | 返回值 | 0:成功<br />-101:账号未登录<br />-111:csrf校验失败<br />-400:请求错误 |
|
||||
| message | str | 错误信息 | 默认为0 |
|
||||
| ttl | num | 1 | |
|
||||
|
||||
**示例:**
|
||||
|
||||
调整`138995`中的视频`av583785685`位置为倒数第2
|
||||
|
||||
```shell
|
||||
curl 'https://api.bilibili.com/x/space/channel/video/sort' \
|
||||
--data-urlencode 'cid=138995' \
|
||||
--data-urlencode 'aid=583785685' \
|
||||
--data-urlencode 'to=2' \
|
||||
--data-urlencode 'csrf=xxx' \
|
||||
-b 'SESSDATA=xxx'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
### 检查频道中有无失效视频
|
||||
|
||||
> https://api.bilibili.com/x/space/channel/video/check
|
||||
|
||||
*请求方式:GET*
|
||||
|
||||
认证方式:Cookie(SESSDATA)
|
||||
|
||||
**url参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | ---- | ---------- | ------ | ---- |
|
||||
| cid | num | 目标频道id | 必要 | |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | ------------------------------------------------------------ |
|
||||
| code | num | 返回值 | 0:成功<br />-101:账号未登录<br />-400:请求错误<br />-404:无此项<br />53005:频道内有失效视频 |
|
||||
| message | str | 错误信息 | 默认为0 |
|
||||
| ttl | num | 1 | |
|
||||
|
||||
**示例:**
|
||||
|
||||
检查频道`138995`
|
||||
|
||||
```shell
|
||||
curl -G 'https://api.bilibili.com/x/space/channel/video/check
|
||||
--data-urlencode 'cid=138995' \
|
||||
-b 'SESSDATA=xxx'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
[所有旧接口](https://github.com/SocialSisterYi/bilibili-API-collect/blob/7d89ece2ac46425810647c4ac92acf5f3721cb68/docs/user/space.md#%E9%A2%91%E9%81%93) 已弃用, 现可用接口参见 [合集和视频列表信息](../video/collection.md)
|
||||
|
||||
## 课程
|
||||
|
||||
|
@ -843,13 +843,19 @@ curl 'https://app.bilibili.com/x/v2/view/like/triple' \
|
||||
|
||||
*请求方式:POST*
|
||||
|
||||
鉴权方式: Cookie (buvid3)
|
||||
|
||||
**正文参数( application/x-www-form-urlencoded ):**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | ---- | ------------------------- | ------------ | --------------------- |
|
||||
| aid | num | 稿件 avid | 必要(可选) | avid 与 bvid 任选一个 |
|
||||
| bvid | str | 稿件 bvid | 必要(可选) | avid 与 bvid任 选一个 |
|
||||
| csrf | str | CSRF Token(位于 Cookie) | 必要 | |
|
||||
| aid | num | 稿件 aid | 必要 (可选) | aid 与 bvid 任选一个 |
|
||||
| bvid | str | 稿件 bvid | 必要 (可选) | aid 与 bvid 任选一个 |
|
||||
| csrf | str | CSRF Token (即 Cookie 中 bili_jct) | 不必要 | |
|
||||
| eab_x | num | 2 | 不必要 | 作用尚不明确 |
|
||||
| ramval | num | 0 | 不必要 | 作用尚不明确 |
|
||||
| source | str | web_normal | 不必要 | |
|
||||
| ga | num | 1 | 不必要 | 可能与风控有关? |
|
||||
|
||||
**json回复:**
|
||||
|
||||
@ -857,12 +863,11 @@ curl 'https://app.bilibili.com/x/v2/view/like/triple' \
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | ---------- | ------------------------------------------------------------------------- |
|
||||
| code | num | 返回值 | 0:成功<br />-101:账号未登录<br />-111:csrf校验失败<br />-400:请求错误 |
|
||||
| code | num | 返回值 | 0: 成功<br />-101: 账号未登录<br />-111: csrf校验失败<br />-400: 请求错误<br />403: 账号异常,操作失败<br />71000: 重复分享 |
|
||||
| message | str | 错误信息 | 默认为0 |
|
||||
| ttl | num | 1 | |
|
||||
| data | num | 当前分享数 | |
|
||||
|
||||
|
||||
**示例:**
|
||||
|
||||
分享视频`BV1oA411776z`
|
||||
|
@ -40,7 +40,7 @@
|
||||
| remark | str | 类型备注 | |
|
||||
| ctime | str | | 意义不明 |
|
||||
| mtime | str | | 意义不明 |
|
||||
| controls | 拥有时:array<br>没有时:null | 详细信息填写提示 | |
|
||||
| controls | 拥有时:array<br />没有时:null | 详细信息填写提示 | |
|
||||
|
||||
`controls`数组中的对象:
|
||||
|
||||
|
@ -4,6 +4,8 @@
|
||||
|
||||
## attribute字段值(稿件属性位)
|
||||
|
||||
该字段前端已弃用, 相关接口返回恒为 `0`, 参见 [验证视频属性字段,实锤B站视频限流](https://shakaianee.top/archives/9/)
|
||||
|
||||
该字段为二进制标志位,多个标志请用`OR`运算叠加
|
||||
|
||||
| 位 | 内容 | 备注 |
|
||||
@ -64,5 +66,6 @@
|
||||
| -20 | 创建未提交 | |
|
||||
| -30 | 创建已提交 | |
|
||||
| -40 | 定时发布 | |
|
||||
| -50 | 仅UP主可见 | |
|
||||
| -100 | 用户删除 | |
|
||||
|
||||
|
@ -26,7 +26,7 @@
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
|---------|-----|------|------------------------------------------------------------------------------------|
|
||||
| code | num | 返回值 | 0:成功<br />-400:请求错误<br />-403:权限不足<br />-404:无视频<br />62002:稿件不可见<br />62004:稿件审核中 |
|
||||
| code | num | 返回值 | 0:成功<br />-400:请求错误<br />-403:权限不足<br />-404:无视频<br />62002:稿件不可见<br />62004:稿件审核中<br />62012:仅UP主自己可见 |
|
||||
| message | str | 错误信息 | 默认为0 |
|
||||
| ttl | num | 1 | |
|
||||
| data | obj | 信息本体 | |
|
||||
@ -60,17 +60,24 @@
|
||||
| cid | num | 视频1P cid | |
|
||||
| dimension | obj | 视频1P分辨率 | |
|
||||
| premiere | | null | |
|
||||
| teenage_mode | num | | |
|
||||
| teenage_mode | num | | 用于青少年模式 |
|
||||
| is_chargeable_season | bool | | |
|
||||
| is_story | bool | | |
|
||||
| no_cache | bool | | 作用尚不明确 |
|
||||
| is_story | bool | 是否可以在 Story Mode 展示? | |
|
||||
| is_upower_exclusive | bool | 是否为充电专属 | |
|
||||
| is_upower_pay | bool | | |
|
||||
| is_upower_show | bool | | |
|
||||
| no_cache | bool | 是否不允许缓存? | |
|
||||
| pages | array | 视频分P列表 | |
|
||||
| subtitle | obj | 视频CC字幕信息 | |
|
||||
| staff | array | 合作成员列表 | 非合作视频无此项 |
|
||||
| is_season_display | bool | | |
|
||||
| user_garb | obj | 用户装扮信息 | |
|
||||
| honor_reply | obj | | |
|
||||
| like_icon | str | | |
|
||||
| like_icon | str | 空串 | |
|
||||
| need_jump_bv | bool | 需要跳转到BV号? | |
|
||||
| disable_show_up_info | bool | 禁止展示UP主信息? | |
|
||||
| is_story_play | bool | 是否为 Story Mode 视频? | |
|
||||
| is_view_self | bool | 是否为自己投稿的视频? | |
|
||||
| argue_info | obj | 争议/警告信息 | |
|
||||
|
||||
`data`中的`desc_v2`数组:
|
||||
@ -83,7 +90,7 @@
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
|----------|-----|------|-----|
|
||||
| raw_text | str | 简介内容 |type=1时显示原文<br>type=2时显示'@'+raw_text+' '并链接至biz_id的主页|
|
||||
| raw_text | str | 简介内容 |type=1时显示原文<br />type=2时显示'@'+raw_text+' '并链接至biz_id的主页|
|
||||
| type | num | 类型 |1:普通,2:@他人|
|
||||
| biz_id | num |被@用户的mid|=0,当type=1|
|
||||
|
||||
@ -170,7 +177,7 @@
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
|--------------|-------|----------|-----|
|
||||
| allow_submit | bool | 是否允许提交字幕 | |
|
||||
| list | array | 字幕列表 | |
|
||||
| list | array | 字幕列表 | 未登录为空 |
|
||||
|
||||
`subtitle`对象中的`list`数组:
|
||||
|
||||
@ -233,7 +240,10 @@
|
||||
|------------|-----|--------|---------------------------|
|
||||
| type | num | 成员会员类型 | 0:无<br />1:月会员<br />2:年会员 |
|
||||
| status | num | 会员状态 | 0:无<br />1:有 |
|
||||
| due_date | num | 到期时间 | UNIX 毫秒时间戳 |
|
||||
| vip_pay_type | num | | |
|
||||
| theme_type | num | 0 | |
|
||||
| label | obj | | |
|
||||
|
||||
`staff`数组中的对象中的`official`对象:
|
||||
|
||||
@ -343,20 +353,20 @@ curl -G 'https://api.bilibili.com/x/web-interface/view' \
|
||||
},
|
||||
"owner": {
|
||||
"mid": 66606350,
|
||||
"name": "Crazy_Bucket_陈楒潼",
|
||||
"name": "陈楒潼桶桶桶",
|
||||
"face": "https://i2.hdslb.com/bfs/face/c9af3b32cf74baec5a4b65af8ca18ae5ff571f77.jpg"
|
||||
},
|
||||
"stat": {
|
||||
"aid": 85440373,
|
||||
"view": 2353489,
|
||||
"danmaku": 12026,
|
||||
"reply": 2648,
|
||||
"favorite": 58761,
|
||||
"coin": 72088,
|
||||
"share": 9539,
|
||||
"view": 2387699,
|
||||
"danmaku": 12146,
|
||||
"reply": 2671,
|
||||
"favorite": 58591,
|
||||
"coin": 72578,
|
||||
"share": 9598,
|
||||
"now_rank": 0,
|
||||
"his_rank": 55,
|
||||
"like": 159350,
|
||||
"like": 160683,
|
||||
"dislike": 0,
|
||||
"evaluation": "",
|
||||
"vt": 0
|
||||
@ -379,6 +389,7 @@ curl -G 'https://api.bilibili.com/x/web-interface/view' \
|
||||
"is_story": false,
|
||||
"is_upower_exclusive": false,
|
||||
"is_upower_play": false,
|
||||
"is_upower_preview": false,
|
||||
"enable_vt": 0,
|
||||
"vt_display": "",
|
||||
"no_cache": false,
|
||||
@ -400,44 +411,19 @@ curl -G 'https://api.bilibili.com/x/web-interface/view' \
|
||||
],
|
||||
"subtitle": {
|
||||
"allow_submit": false,
|
||||
"list": [
|
||||
{
|
||||
"id": 1061981378473780000,
|
||||
"lan": "ai-zh",
|
||||
"lan_doc": "中文(自动生成)",
|
||||
"is_lock": false,
|
||||
"subtitle_url": "",
|
||||
"type": 1,
|
||||
"id_str": "1061981378473779968",
|
||||
"ai_type": 0,
|
||||
"ai_status": 2,
|
||||
"author": {
|
||||
"mid": 0,
|
||||
"name": "",
|
||||
"sex": "",
|
||||
"face": "",
|
||||
"sign": "",
|
||||
"rank": 0,
|
||||
"birthday": 0,
|
||||
"is_fake_account": 0,
|
||||
"is_deleted": 0,
|
||||
"in_reg_audit": 0,
|
||||
"is_senior_member": 0
|
||||
}
|
||||
}
|
||||
]
|
||||
"list": []
|
||||
},
|
||||
"staff": [
|
||||
{
|
||||
"mid": 66606350,
|
||||
"title": "UP主",
|
||||
"name": "Crazy_Bucket_陈楒潼",
|
||||
"name": "陈楒潼桶桶桶",
|
||||
"face": "https://i2.hdslb.com/bfs/face/c9af3b32cf74baec5a4b65af8ca18ae5ff571f77.jpg",
|
||||
"vip": {
|
||||
"type": 2,
|
||||
"status": 1,
|
||||
"due_date": 1706112000000,
|
||||
"vip_pay_type": 0,
|
||||
"due_date": 1737820800000,
|
||||
"vip_pay_type": 1,
|
||||
"theme_type": 0,
|
||||
"label": {
|
||||
"path": "",
|
||||
@ -459,7 +445,11 @@ curl -G 'https://api.bilibili.com/x/web-interface/view' \
|
||||
"avatar_subscript_url": "",
|
||||
"tv_vip_status": 0,
|
||||
"tv_vip_pay_type": 0,
|
||||
"tv_due_date": 0
|
||||
"tv_due_date": 0,
|
||||
"avatar_icon": {
|
||||
"icon_type": 1,
|
||||
"icon_resource": {}
|
||||
}
|
||||
},
|
||||
"official": {
|
||||
"role": 1,
|
||||
@ -467,18 +457,18 @@ curl -G 'https://api.bilibili.com/x/web-interface/view' \
|
||||
"desc": "",
|
||||
"type": 0
|
||||
},
|
||||
"follower": 650859,
|
||||
"follower": 629775,
|
||||
"label_style": 0
|
||||
},
|
||||
{
|
||||
"mid": 53456,
|
||||
"title": "曲绘",
|
||||
"name": "Warma",
|
||||
"face": "https://i2.hdslb.com/bfs/face/c1bbee6d255f1e7fc434e9930f0f288c8b24293a.jpg",
|
||||
"face": "https://i2.hdslb.com/bfs/face/87c0b7e4d3eedf04c458a82b9271013beaa4bc59.jpg",
|
||||
"vip": {
|
||||
"type": 2,
|
||||
"status": 1,
|
||||
"due_date": 1738339200000,
|
||||
"due_date": 1770480000000,
|
||||
"vip_pay_type": 0,
|
||||
"theme_type": 0,
|
||||
"label": {
|
||||
@ -501,7 +491,11 @@ curl -G 'https://api.bilibili.com/x/web-interface/view' \
|
||||
"avatar_subscript_url": "",
|
||||
"tv_vip_status": 1,
|
||||
"tv_vip_pay_type": 1,
|
||||
"tv_due_date": 1721145600
|
||||
"tv_due_date": 1753286400,
|
||||
"avatar_icon": {
|
||||
"icon_type": 1,
|
||||
"icon_resource": {}
|
||||
}
|
||||
},
|
||||
"official": {
|
||||
"role": 1,
|
||||
@ -509,13 +503,13 @@ curl -G 'https://api.bilibili.com/x/web-interface/view' \
|
||||
"desc": "",
|
||||
"type": 0
|
||||
},
|
||||
"follower": 4223581,
|
||||
"follower": 4600968,
|
||||
"label_style": 0
|
||||
}
|
||||
],
|
||||
"is_season_display": false,
|
||||
"user_garb": {
|
||||
"url_image_ani_cut": "https://i0.hdslb.com/bfs/garb/item/311b29b795eb3f09ed0401a56eddf5c90b8fbfd6.bin"
|
||||
"url_image_ani_cut": ""
|
||||
},
|
||||
"honor_reply": {
|
||||
"honor": [
|
||||
@ -541,7 +535,9 @@ curl -G 'https://api.bilibili.com/x/web-interface/view' \
|
||||
},
|
||||
"like_icon": "",
|
||||
"need_jump_bv": false,
|
||||
"disable_show_up_info": false
|
||||
"disable_show_up_info": false,
|
||||
"is_story_play": 1,
|
||||
"is_view_self": false
|
||||
}
|
||||
}
|
||||
```
|
||||
@ -605,7 +601,7 @@ https://i1.hdslb.com/bfs/archive/ea0dd34bf41e23a68175680a00e3358cd249105f.jpg
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
|---------|-----|------|------------------------------------------------------------------------------------|
|
||||
| code | num | 返回值 | 0:成功<br />-400:请求错误<br />-403:权限不足<br />-404:无视频<br />62002:稿件不可见<br />62004:稿件审核中 |
|
||||
| code | num | 返回值 | 0:成功<br />-400:请求错误<br />-403:权限不足<br />-404:无视频<br />62002:稿件不可见<br />62004:稿件审核中<br />62012:仅UP主自己可见 |
|
||||
| message | str | 错误信息 | 默认为0 |
|
||||
| ttl | num | 1 | |
|
||||
| data | obj | 信息本体 | |
|
||||
|
@ -4,44 +4,94 @@
|
||||
|
||||
web 播放器的信息接口,提供正常播放需要的元数据,包括:智能防挡弹幕、字幕、章节看点等。
|
||||
|
||||
> https://api.bilibili.com/x/player/wbi/v2
|
||||
> https://api.bilibili.com/x/player/wbi/v2
|
||||
> https://api.bilibili.com/x/player/v2
|
||||
|
||||
*请求方式:GET*
|
||||
|
||||
**url 参数:**
|
||||
**URL参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | ---- | --------- | ----------- | ----------------- |
|
||||
| aid | num | 稿件 avid | 必要 (可选) | aid 与 bvid 任选 |
|
||||
| bvid | str | 稿件 bvid | 必要 (可选) | aid 与 bvid 任选 |
|
||||
| cid | num | 稿件 cid | 必要 | |
|
||||
| season_id | num | 番剧 season_id | 不必要 | |
|
||||
| ep_id | num | 剧集 ep_id | 不必要 | |
|
||||
| w_rid | str | WBI 签名 | 不必要 | |
|
||||
| wts | num | 当前 unix 时间戳 | 不必要 | |
|
||||
|
||||
**json 回复:**
|
||||
**JSON回复:**
|
||||
|
||||
根对象:
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | --------------------------- |
|
||||
| code | num | 返回值 | 0:成功<br />-400:请求错误 |
|
||||
| code | num | 返回值 | 0: 成功<br />-400: 请求错误 |
|
||||
| message | str | 错误信息 | 默认为 0 |
|
||||
| ttl | num | 1 | |
|
||||
| data | obj | 数据本体 | |
|
||||
|
||||
`data` 对象:
|
||||
`data` 对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| --------- | ----- | -------- | ---- |
|
||||
|aid | num | 视频 aid | |
|
||||
|bvid | str | 视频 bvid | |
|
||||
|cid | num | 视频 cid | |
|
||||
|dm_mask | obj | | webmask 信息(如果没有这一项,说明这个视频没有防挡功能) |
|
||||
|subtitle | obj | | 字幕信息(需要登录,不登录此项内容为 `[]` )|
|
||||
|view_points| array | | 章节看点信息 |
|
||||
| 其他 | ... | | 主要是观看记录、使用者等级权限、背景音乐等信息 |
|
||||
| aid | num | 视频 aid | |
|
||||
| bvid | str | 视频 bvid | |
|
||||
| allow_bp | bool | | |
|
||||
| no_share | bool | 禁止分享? | |
|
||||
| cid | num | 视频 cid | |
|
||||
| dm_mask | obj | webmask 防挡字幕信息 | 若无则没有防挡功能 |
|
||||
| subtitle | obj | 字幕信息 | 若无则没有字幕, 若不登陆则为空 |
|
||||
| view_points | array | | 章节看点信息 |
|
||||
| ip_info | obj | 请求 IP 信息 | |
|
||||
| login_mid | num | 登录用户 mid | |
|
||||
| login_mid_hash | str | | |
|
||||
| is_owner | bool | 是否为该视频 UP 主 | |
|
||||
| name | str | | |
|
||||
| permission | num | | |
|
||||
| level_info | obj | 登录用户等级信息 | |
|
||||
| vip | obj | 登录用户 VIP 信息 | |
|
||||
| answer_status | num | 答题状态 | |
|
||||
| block_time | num | 封禁时间? | |
|
||||
| role | str | | |
|
||||
| last_play_time | num | 上次观看时间? | |
|
||||
| last_play_cid | num | 上次观看 cid? | |
|
||||
| now_time | num | 当前 UNIX 秒级时间戳 | |
|
||||
| online_count | num | 在线人数 | |
|
||||
| need_login_subtitle | bool | 是否必须登陆才能查看字幕 | 是的 |
|
||||
| preview_toast | str | `为创作付费,购买观看完整视频|购买观看` | |
|
||||
| options | obj | | |
|
||||
| guide_attention | any | | |
|
||||
| jump_card | any | | |
|
||||
| operation_card | any | | |
|
||||
| online_switch | obj | | |
|
||||
| fawkes | obj | 播放器相关信息? | |
|
||||
| show_switch | obj | | |
|
||||
| bgm_info | obj | 背景音乐信息 | |
|
||||
| toast_block | bool | | |
|
||||
| is_upower_exclusive | bool | 充电专属? | |
|
||||
| is_upower_play | bool | | |
|
||||
| is_ugc_pay_preview | bool | | |
|
||||
| elec_high_level | obj | | |
|
||||
| disable_show_up_info | bool | | |
|
||||
|
||||
`dm_mask`对象(如果有):
|
||||
`data` 对象中的 `options` 对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | --- | --- |
|
||||
| is_360 | bool | 是否 360 全景视频 | |
|
||||
| without_vip | bool | | |
|
||||
|
||||
`data` 对象中的 `bgm_info` 对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| --- | --- | --- | --- |
|
||||
| music_id | str | 音乐 id | |
|
||||
| music_title | str | 音乐标题 | |
|
||||
| jump_url | str | 跳转 URL | |
|
||||
|
||||
`data` 对象中的 `dm_mask` 对象 (如果有):
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| --------- | ----- | -------- | ---- |
|
||||
@ -53,7 +103,8 @@ web 播放器的信息接口,提供正常播放需要的元数据,包括:
|
||||
|
||||
解析 webmask 请看 [智能防挡弹幕](../danmaku/webmask.md)
|
||||
|
||||
`subtitle`对象:
|
||||
`data` 对象中的 `subtitle` 对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| --------- | ----- | -------- | ---- |
|
||||
|allow_submit|bool | true | |
|
||||
@ -61,7 +112,7 @@ web 播放器的信息接口,提供正常播放需要的元数据,包括:
|
||||
|lan_doc | str | "" | |
|
||||
|subtitles| array | | 不登录为 `[]` |
|
||||
|
||||
`subtitles` 数组内的元素:
|
||||
`subtitle` 对象中的 `subtitles` 数组内的元素:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| --------- | ----- | -------- | ---- |
|
||||
@ -75,8 +126,8 @@ web 播放器的信息接口,提供正常播放需要的元数据,包括:
|
||||
|subtitle_url|str| 资源 url 地址 | |
|
||||
|type| num | 0 | |
|
||||
|
||||
`view_point` 数组内的元素:
|
||||
|
||||
`view_point` 数组内的元素:
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| --------- | ----- | -------- | ---- |
|
||||
| content | num | 章节名 | |
|
||||
@ -86,69 +137,299 @@ web 播放器的信息接口,提供正常播放需要的元数据,包括:
|
||||
| imgUrl | str | 图片资源地址 | |
|
||||
| logoUrl | str | "" | |
|
||||
|
||||
示例:
|
||||
**示例:**
|
||||
|
||||
未登录, `aid=1906473802`
|
||||
|
||||
```shell
|
||||
curl -G "https://api.bilibili.com/x/player/wbi/v2?aid=515345690&cid=825851971"
|
||||
curl -G 'https://api.bilibili.com/x/player/wbi/v2' \
|
||||
--url-query 'bvid=BV1MU411S7iJ' \
|
||||
--url-query 'aid=1906473802' \
|
||||
--url-query 'cid=1625992822'
|
||||
```
|
||||
|
||||
```jsonc
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1,
|
||||
"data": {
|
||||
"aid": 515345690,
|
||||
"bvid": "BV1Fg411D7Jy",
|
||||
... // 省略
|
||||
"dm_mask": {
|
||||
"cid": 825851971,
|
||||
"plat": 0,
|
||||
"fps": 30,
|
||||
"time": 0,
|
||||
"mask_url": "//upos-sz-staticcos-cmask.bilivideo.com/cmaskboss/825851971_30_0.webmask?trid=219266863a1442baa05086b4285ba923B&orderid=0,1&logo=00000000"
|
||||
},
|
||||
"view_points": [
|
||||
{
|
||||
"type": 2,
|
||||
"from": 0,
|
||||
"to": 27,
|
||||
"content": "狗啃的",
|
||||
"imgUrl": "http://i0.hdslb.com/bfs/vchapter/825851971_0.jpg",
|
||||
"logoUrl": ""
|
||||
},
|
||||
{
|
||||
"type": 2,
|
||||
"from": 27,
|
||||
"to": 63,
|
||||
"content": "椒牌泡菜",
|
||||
"imgUrl": "http://i0.hdslb.com/bfs/vchapter/825851971_27.jpg",
|
||||
"logoUrl": ""
|
||||
}, ... // 省略
|
||||
],
|
||||
"subtitle": {
|
||||
"allow_submit": true,
|
||||
"lan": "",
|
||||
"lan_doc": "",
|
||||
"subtitles": [], // 未登录,下面是登录的版本
|
||||
"subtitles":[
|
||||
{
|
||||
"id": 1042985852759993300,
|
||||
"lan": "ai-zh",
|
||||
"lan_doc": "中文(自动生成)",
|
||||
"is_lock": false,
|
||||
"subtitle_url": "//aisubtitle.hdslb.com/bfs/ai_subtitle/prod/5153456908258519712094280c7c2884b77929bab82f64530f?auth_key=1714795727-a8eb254b60bc4a73bc8662da51005340-0-1c305894e48e959979b163636461fb8f",
|
||||
"type": 1,
|
||||
"id_str": "1042985852759993344",
|
||||
"ai_type": 0,
|
||||
"ai_status": 2
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1,
|
||||
"data": {
|
||||
"aid": 1906473802,
|
||||
"bvid": "BV1MU411S7iJ",
|
||||
"allow_bp": false,
|
||||
"no_share": false,
|
||||
"cid": 1625992822,
|
||||
"max_limit": 1000,
|
||||
"page_no": 1,
|
||||
"has_next": false,
|
||||
"ip_info": {
|
||||
"ip": "104.28.152.138",
|
||||
"zone_ip": " 10.163.150.25",
|
||||
"zone_id": 29409280,
|
||||
"country": "美国",
|
||||
"province": "加利福尼亚州",
|
||||
"city": "东洛杉矶"
|
||||
},
|
||||
"login_mid": 0,
|
||||
"login_mid_hash": "",
|
||||
"is_owner": false,
|
||||
"name": "",
|
||||
"permission": "0",
|
||||
"level_info": {
|
||||
"current_level": 0,
|
||||
"current_min": 0,
|
||||
"current_exp": 0,
|
||||
"next_exp": 0,
|
||||
"level_up": 0
|
||||
},
|
||||
"vip": {
|
||||
"type": 0,
|
||||
"status": 0,
|
||||
"due_date": 0,
|
||||
"vip_pay_type": 0,
|
||||
"theme_type": 0,
|
||||
"label": {
|
||||
"path": "",
|
||||
"text": "",
|
||||
"label_theme": "",
|
||||
"text_color": "",
|
||||
"bg_style": 0,
|
||||
"bg_color": "",
|
||||
"border_color": "",
|
||||
"use_img_label": false,
|
||||
"img_label_uri_hans": "",
|
||||
"img_label_uri_hant": "",
|
||||
"img_label_uri_hans_static": "",
|
||||
"img_label_uri_hant_static": ""
|
||||
},
|
||||
"avatar_subscript": 0,
|
||||
"nickname_color": "",
|
||||
"role": 0,
|
||||
"avatar_subscript_url": "",
|
||||
"tv_vip_status": 0,
|
||||
"tv_vip_pay_type": 0,
|
||||
"tv_due_date": 0,
|
||||
"avatar_icon": {
|
||||
"icon_resource": {}
|
||||
}
|
||||
},
|
||||
"answer_status": 0,
|
||||
"block_time": 0,
|
||||
"role": "",
|
||||
"last_play_time": 0,
|
||||
"last_play_cid": 0,
|
||||
"now_time": 1725002188,
|
||||
"online_count": 1,
|
||||
"need_login_subtitle": false,
|
||||
"view_points": [],
|
||||
"preview_toast": "为创作付费,购买观看完整视频|购买观看",
|
||||
"options": {
|
||||
"is_360": false,
|
||||
"without_vip": false
|
||||
},
|
||||
"guide_attention": [],
|
||||
"jump_card": [],
|
||||
"operation_card": [],
|
||||
"online_switch": {
|
||||
"enable_gray_dash_playback": "500",
|
||||
"new_broadcast": "1",
|
||||
"realtime_dm": "1",
|
||||
"subtitle_submit_switch": "1"
|
||||
},
|
||||
"fawkes": {
|
||||
"config_version": 30787,
|
||||
"ff_version": 21289
|
||||
},
|
||||
"show_switch": {
|
||||
"long_progress": false
|
||||
},
|
||||
"bgm_info": {
|
||||
"music_id": "MA436038343856245020",
|
||||
"music_title": "Unwelcome school",
|
||||
"jump_url": "https://music.bilibili.com/h5/music-detail?music_id=MA436038343856245020&cid=1625992822&aid=1906473802"
|
||||
},
|
||||
"toast_block": false,
|
||||
"is_upower_exclusive": false,
|
||||
"is_upower_play": false,
|
||||
"is_ugc_pay_preview": false,
|
||||
"elec_high_level": {
|
||||
"privilege_type": 0,
|
||||
"title": "",
|
||||
"sub_title": "",
|
||||
"show_button": false,
|
||||
"button_text": "",
|
||||
"jump_url": "",
|
||||
"intro": "",
|
||||
"new": false
|
||||
},
|
||||
"disable_show_up_info": false
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
已登陆, `aid=60977932`
|
||||
|
||||
```shell
|
||||
curl -G 'https://api.bilibili.com/x/player/v2' \
|
||||
--url-query 'aid=60977932' \
|
||||
--url-query 'cid=106101299' \
|
||||
-b 'SESSDATA=xxx'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1,
|
||||
"data": {
|
||||
"aid": 60977932,
|
||||
"bvid": "BV1Jt411P77c",
|
||||
"allow_bp": false,
|
||||
"no_share": false,
|
||||
"cid": 106101299,
|
||||
"max_limit": 1000,
|
||||
"page_no": 1,
|
||||
"has_next": true,
|
||||
"ip_info": {
|
||||
"ip": "108.181.22.55",
|
||||
"zone_ip": " 172.27.132.5",
|
||||
"zone_id": 29409296,
|
||||
"country": "美国",
|
||||
"province": "加利福尼亚州",
|
||||
"city": "洛杉矶"
|
||||
},
|
||||
"login_mid": 616368979,
|
||||
"login_mid_hash": "445e7035",
|
||||
"is_owner": false,
|
||||
"name": "淡紫玲儿",
|
||||
"permission": "10000,1001",
|
||||
"level_info": {
|
||||
"current_level": 3,
|
||||
"current_min": 1500,
|
||||
"current_exp": 2962,
|
||||
"next_exp": 4500,
|
||||
"level_up": -62135596800
|
||||
},
|
||||
"vip": {
|
||||
"type": 1,
|
||||
"status": 0,
|
||||
"due_date": 1665417600000,
|
||||
"vip_pay_type": 0,
|
||||
"theme_type": 0,
|
||||
"label": {
|
||||
"path": "",
|
||||
"text": "",
|
||||
"label_theme": "",
|
||||
"text_color": "",
|
||||
"bg_style": 0,
|
||||
"bg_color": "",
|
||||
"border_color": "",
|
||||
"use_img_label": true,
|
||||
"img_label_uri_hans": "",
|
||||
"img_label_uri_hant": "",
|
||||
"img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/d7b702ef65a976b20ed854cbd04cb9e27341bb79.png",
|
||||
"img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/KJunwh19T5.png"
|
||||
},
|
||||
"avatar_subscript": 0,
|
||||
"nickname_color": "",
|
||||
"role": 0,
|
||||
"avatar_subscript_url": "",
|
||||
"tv_vip_status": 0,
|
||||
"tv_vip_pay_type": 0,
|
||||
"tv_due_date": 0,
|
||||
"avatar_icon": {
|
||||
"icon_resource": {}
|
||||
}
|
||||
},
|
||||
"answer_status": 0,
|
||||
"block_time": 0,
|
||||
"role": "0",
|
||||
"last_play_time": 0,
|
||||
"last_play_cid": 0,
|
||||
"now_time": 1725003260,
|
||||
"online_count": 1,
|
||||
"need_login_subtitle": false,
|
||||
"subtitle": {
|
||||
"allow_submit": true,
|
||||
"lan": "zh-CN",
|
||||
"lan_doc": "中文(中国)",
|
||||
"subtitles": [
|
||||
{
|
||||
"id": 13643112644608002,
|
||||
"lan": "zh-Hans",
|
||||
"lan_doc": "中文(简体)",
|
||||
"is_lock": true,
|
||||
"subtitle_url": "//aisubtitle.hdslb.com/bfs/subtitle/c49b18a284739d99df1e3723cdf72c0c82db98e0.json?auth_key=1725003260-5d0391a07f4f47f6960f60cf5045dff3-0-fc16c1f67a6b41edcb2a89d5e0c9bfdd",
|
||||
"type": 0,
|
||||
"id_str": "13643112644608002",
|
||||
"ai_type": 0,
|
||||
"ai_status": 0
|
||||
},
|
||||
{
|
||||
"id": 13643200114196484,
|
||||
"lan": "en-US",
|
||||
"lan_doc": "英语(美国)",
|
||||
"is_lock": true,
|
||||
"subtitle_url": "//aisubtitle.hdslb.com/bfs/subtitle/2b38bc0f5d7671176964d4c3de441ed37568500c.json?auth_key=1725003260-5f709a74aa884751b77f86b6f6a48078-0-9b2fc3c18b99b1bf0cc7c7e63d18f686",
|
||||
"type": 0,
|
||||
"id_str": "13643200114196484",
|
||||
"ai_type": 0,
|
||||
"ai_status": 0
|
||||
}
|
||||
]
|
||||
},
|
||||
"view_points": [],
|
||||
"preview_toast": "为创作付费,购买观看完整视频|购买观看",
|
||||
"options": {
|
||||
"is_360": false,
|
||||
"without_vip": false
|
||||
},
|
||||
"guide_attention": [],
|
||||
"jump_card": [],
|
||||
"operation_card": [],
|
||||
"online_switch": {
|
||||
"enable_gray_dash_playback": "500",
|
||||
"new_broadcast": "1",
|
||||
"realtime_dm": "1",
|
||||
"subtitle_submit_switch": "1"
|
||||
},
|
||||
"fawkes": {
|
||||
"config_version": 30787,
|
||||
"ff_version": 21289
|
||||
},
|
||||
"show_switch": {
|
||||
"long_progress": false
|
||||
},
|
||||
"bgm_info": null,
|
||||
"toast_block": false,
|
||||
"is_upower_exclusive": false,
|
||||
"is_upower_play": false,
|
||||
"is_ugc_pay_preview": false,
|
||||
"elec_high_level": {
|
||||
"privilege_type": 0,
|
||||
"title": "",
|
||||
"sub_title": "",
|
||||
"show_button": false,
|
||||
"button_text": "",
|
||||
"jump_url": "",
|
||||
"intro": "",
|
||||
"new": false
|
||||
},
|
||||
"disable_show_up_info": false
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 播放反馈
|
||||
|
||||
> https://app.bilibili.com/x/resource/laser2
|
||||
|
@ -96,8 +96,8 @@ curl 'https://api.bilibili.com/x/v2/history/report' \
|
||||
| w_video_duration | num | 参见请求正文同名无`w_`前缀参数 | 非必要 | 单位 秒 |
|
||||
| w_last_play_progress_time | num | 参见请求正文同名无`w_`前缀参数 | 非必要 | 单位 秒 |
|
||||
| web_location | num | 网页位置 | 非必要 | 视频详情页播放器: 1315873 |
|
||||
| w_rid | num | WBI 签名 | 非必要 | 参见[WBI 签名](docs/misc/sign/wbi.md) |
|
||||
| wts | num | UNIX 秒级时间戳 | 非必要 | 参见[WBI 签名](docs/misc/sign/wbi.md) |
|
||||
| w_rid | num | WBI 签名 | 非必要 | 参见[WBI 签名](../misc/sign/wbi.md) |
|
||||
| wts | num | UNIX 秒级时间戳 | 非必要 | 参见[WBI 签名](../misc/sign/wbi.md) |
|
||||
|
||||
**正文参数( application/x-www-form-urlencoded ):**
|
||||
|
||||
@ -191,8 +191,8 @@ curl 'https://api.bilibili.com/x/click-interface/web/heartbeat' \
|
||||
| w_stime | num | 开始播放时间戳? | 不必要 | UNIX 秒级时间戳 |
|
||||
| w_type | num | 视频类型 | 不必要 | 见[上报视频播放心跳(web端)](#上报视频播放心跳web端) |
|
||||
| web_location | num | 网页位置? | 不必要 | 1315873 |
|
||||
| w_rid | num | WBI 签名 | 不必要 | 参见[WBI 签名](docs/misc/sign/wbi.md) |
|
||||
| wts | num | UNIX 秒级时间戳 | 不必要 | 参见[WBI 签名](docs/misc/sign/wbi.md) |
|
||||
| w_rid | num | WBI 签名 | 不必要 | 参见[WBI 签名](../misc/sign/wbi.md) |
|
||||
| wts | num | UNIX 秒级时间戳 | 不必要 | 参见[WBI 签名](../misc/sign/wbi.md) |
|
||||
|
||||
**正文参数 (application/x-www-form-urlencoded):**
|
||||
|
||||
|
@ -1,9 +1,11 @@
|
||||
# 视频状态数
|
||||
|
||||
本页接口均已失效
|
||||
|
||||
## 视频状态数(仅avid)
|
||||
|
||||
<details>
|
||||
<summary>该接口已失效</summary>
|
||||
<summary>该接口已弃用 (HTTP 403)</summary>
|
||||
|
||||
> https://api.bilibili.com/archive_stat/stat
|
||||
|
||||
@ -87,6 +89,9 @@ curl -G 'https://api.bilibili.com/archive_stat/stat' \
|
||||
|
||||
## 视频状态数(bvid/avid)
|
||||
|
||||
<details>
|
||||
<summary>该接口已失效 (HTTP 404)</summary>
|
||||
|
||||
> https://api.bilibili.com/x/web-interface/archive/stat
|
||||
|
||||
*请求方式:GET*
|
||||
@ -201,3 +206,5 @@ curl -G 'https://api.bilibili.com/x/web-interface/archive/stat' \
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
</details>
|
||||
|
@ -112,7 +112,7 @@
|
||||
| fnval | num | 视频流格式标识 | 非必要 | 默认值为`1`(MP4 格式)<br />含义见 [上表](#fnval视频流格式标识) |
|
||||
| fnver | num | 0 | 非必要 | |
|
||||
| fourk | num | 是否允许 4K 视频 | 非必要 | 画质最高 1080P:0(默认)<br />画质最高 4K:1 |
|
||||
| session | str | | 非必要 | 从视频播放页的 HTML 中获取 |
|
||||
| session | str | | 非必要 | 从视频播放页的 HTML 中设置 window.\_\_playinfo\_\_ 处获取,或者通过 buvid3 + 当前UNIX毫秒级时间戳 经过md5获取 |
|
||||
| otype | str | | 非必要 | 固定为`json` |
|
||||
| type | str | | 非必要 | 目前为空 |
|
||||
| platform | str | | 非必要 | pc:web播放(默认值,视频流存在 referer鉴权)<br />html5:移动端 HTML5 播放(仅支持 MP4 格式,无 referer 鉴权可以直接使用`video`标签播放) |
|
||||
|
@ -747,9 +747,9 @@ cac@^6.7.14:
|
||||
integrity sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==
|
||||
|
||||
caniuse-lite@^1.0.30001517, caniuse-lite@^1.0.30001520:
|
||||
version "1.0.30001527"
|
||||
resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001527.tgz#813826554828245ccee776c850566dce12bdeaba"
|
||||
integrity sha512-YkJi7RwPgWtXVSgK4lG9AHH57nSzvvOp9MesgXmw4Q7n0C3H04L0foHqfxcmSAm5AcWb8dW9AYj2tR7/5GnddQ==
|
||||
version "1.0.30001653"
|
||||
resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001653.tgz"
|
||||
integrity sha512-XGWQVB8wFQ2+9NZwZ10GxTYC5hk0Fa+q8cSkr0tgvMhYhMHP/QC+WTgrePMDBWiWc/pV+1ik82Al20XOK25Gcw==
|
||||
|
||||
chalk@^5.0.0, chalk@^5.3.0:
|
||||
version "5.3.0"
|
||||
|
Loading…
Reference in New Issue
Block a user