mirror of
https://github.com/SocialSisterYi/bilibili-API-collect.git
synced 2024-12-25 20:10:06 +08:00
feat: 各种接口补充与错误修正 (#1066)
* fix(video/collection.md): unclosed xml tags * feat(video/report.md): uuid not really random * feat: b23.tv short link * feat: login/moral/exp log * feat: v_voucher * feat: upload video cover & post * feat(creativecenter/upload.md): upload octet-stream * feat(creativecenter/upload.md): update some notes * feat(clientinfo/ip.md): another from live * feat: live web heartbeat * feat: update popular series & precious * fix(creativecenter/upload.md): mistakes in example * feat: merge duplicate fav info * feat(README.md): missing link to webmask * feat(search/hot.md): word_type * feat(login/login_action): recovery old api * feat(video/collection.md): series operation * feat: video season operation * feat: add & mod some links * feat(search/suggest.md): up to date * feat: web home header image * feat(misc/sign/bili_ticket.md): demo for nodejs * feat(creativecenter/upload.md): x-upos-auth validity period * feat: add referer & buvid3 to request header * feat: customer service message heartbeat & upload * feat(customerservice/msg.md): upload code 1200201 * feat(video/report.md): click/web/h5 * feat(video/report.md): view count desc * feat: laser2 * feat: wbi_key in bili_ticket * fix: typo & unclosed XML tags * feat(misc/sign/v_voucher): cookie x-bili-gaia-vtoken * feat(search/hot.md): square * feat(video/status_number.md): fold archive_stat/stat * feat(fav/info.md): resource/infos invalid type 21 * feat: /x/activity/subject/info * feat: lottery * feat(docs/misc/b23.tv): remove some unnecessary fields * feat(creativecenter/upload.md): types/predict * fix(video/collection.md): invalid end tag * feat: app version upgrade * feat(creativecenter/upload.md): tag/recommend #528 * feat(user/status_number.md): navnum * feat: /x/activity/page/list * feat(comment/list.md): desc about pagination_str * feat(comment/list.md): update example * feat(dynamic/all.md): #1082 * fix(comment/list.md): -352 not -412 * feat: #700 * feat(video/video_stream.md): #606 & cv949156 * feat(message/private_msg.md): single_unread freq * feat: getUserWallet * fix: broken form * feat(Layout.vue): copyright to 2024 * feat: /x/topic/pub/rcmd/search * feat: #425 * feat(misc/time_stamp.md): rtc/getTimestamp * fix(misc/time_stamp.md): missing end tag * feat: #745 * feat(dynamic/all.md): update feed/all * feat(danmaku/action.md): #220 * feat(live/info.md): gethistory from cv8186413 * fix(danmaku/action.md): missing end tag
This commit is contained in:
parent
f7599fb693
commit
60a0c5d1a2
@ -2,7 +2,7 @@
|
||||
<ParentLayout>
|
||||
<template #page-bottom>
|
||||
<footer style="text-align: center">
|
||||
Copyright © 2020-2023
|
||||
Copyright © 2020-2024
|
||||
<a href="https://github.com/SocialSisterYi/">SocialSisterYi</a> |
|
||||
<a
|
||||
href="https://github.com/SocialSisterYi/bilibili-API-collect/blob/master/LICENSE"
|
||||
|
42
README.md
42
README.md
@ -68,12 +68,15 @@ B站 API 采用 C/S 结构,大多数接口为 REST API 和 gRPC,少部分接
|
||||
- [x] [已知的 APPKey](docs/misc/sign/APPKey.md)
|
||||
- [x] [Wbi 签名](docs/misc/sign/wbi.md)(`wts`与`w_rid`)
|
||||
- [ ] [bili_ticket](docs/misc/sign/bili_ticket.md)
|
||||
|
||||
- [x] [公共错误码](docs/misc/errcode.md)
|
||||
- [x] [图片格式化](docs/misc/picture.md)
|
||||
- [x] [bvid 说明](docs/misc/bvid_desc.md)
|
||||
- [ ] [设备唯一标识BUVID](docs/misc/device_identity.md)
|
||||
- [ ] [获取 buvid3 / buvid4 / b_nut](docs/misc/buvid3_4.md)
|
||||
- [ ] [v_voucher 验证](docs/misc/sign/v_voucher.md)
|
||||
- [ ] [杂项](docs/misc)
|
||||
- [x] [获取当前时间戳](docs/misc/time_stamp.md)
|
||||
- [x] [公共错误码](docs/misc/errcode.md)
|
||||
- [x] [图片格式化](docs/misc/picture.md)
|
||||
- [x] [bvid 说明](docs/misc/bvid_desc.md)
|
||||
- [ ] [设备唯一标识BUVID](docs/misc/device_identity.md)
|
||||
- [ ] [获取 buvid3 / buvid4 / b_nut](docs/misc/buvid3_4.md)
|
||||
- [ ] [b23.tv 短链](docs/misc/b23tv.md)
|
||||
- [ ] [gRPC API 接口定义](grpc_api)
|
||||
- [ ] [登录](docs/login)
|
||||
- [x] [登录操作 (人机认证)](docs/login/login_action)
|
||||
@ -99,6 +102,7 @@ B站 API 采用 C/S 结构,大多数接口为 REST API 和 gRPC,少部分接
|
||||
- [x] [用户注册](docs/user/register.md)
|
||||
- [x] [用户认证类型一览](docs/user/official_role.md)
|
||||
- [ ] [加入老粉计划](docs/user/contract.md)
|
||||
- [x] [所有粉丝勋章](docs/user/medals.md)
|
||||
- [ ] [大会员](docs/vip)
|
||||
- [ ] [大会员基本信息](docs/vip/info.md)
|
||||
- [ ] [大会员中心](docs/vip/center.md)
|
||||
@ -122,6 +126,7 @@ B站 API 采用 C/S 结构,大多数接口为 REST API 和 gRPC,少部分接
|
||||
- [ ] [稿件投诉](docs/video/appeal.md)
|
||||
- [ ] [视频状态数](docs/video/status_number.md)
|
||||
- [ ] [视频合集](docs/video/collection.md)
|
||||
- [ ] [播放器](docs/video/player.md)
|
||||
- [ ] [剧集 (番剧、影视)](docs/bangumi)
|
||||
- [ ] [基本信息](docs/bangumi/info.md)
|
||||
- [ ] [播放&下载地址(视频流)](docs/bangumi/videostream_url.md)
|
||||
@ -138,7 +143,7 @@ B站 API 采用 C/S 结构,大多数接口为 REST API 和 gRPC,少部分接
|
||||
- [ ] [弹幕操作](docs/danmaku/action.md)
|
||||
- [ ] 高级弹幕
|
||||
- [ ] 屏蔽管理
|
||||
- [ ] 智能防挡弹幕
|
||||
- [ ] [智能防挡弹幕](docs/danmaku/webmask.md)
|
||||
- [x] [弹幕个人配置修改](docs/danmaku/config.md)
|
||||
- [x] [名词解释](docs/danmaku/buzzword.md)
|
||||
- [x] [点赞查询](docs/danmaku/thumbup.md)
|
||||
@ -183,9 +188,12 @@ B站 API 采用 C/S 结构,大多数接口为 REST API 和 gRPC,少部分接
|
||||
- [x] [表情及表情包信息](docs/emoji/list.md)
|
||||
- [x] [操作](docs/emoji/action.md)
|
||||
- [ ] [创作中心](docs/creativecenter)
|
||||
- [ ] [投稿](docs/creativecenter/upload.md)
|
||||
- [ ] [统计与数据](docs/creativecenter/statistics&data.md)
|
||||
- [ ] 列表查询相关
|
||||
- [x] [电磁力数据](docs/creativecenter/railgun.md)
|
||||
- [ ] [合集管理](docs/creativecenter/season.md)
|
||||
- [ ] [视频相关杂项](docs/creativecenter/videos.md)
|
||||
- [x] [实时广播(通讯协议)](docs/broadcast)
|
||||
- [x] [视频内广播](docs/broadcast/video_room.md)
|
||||
- [ ] [充电](docs/electric)
|
||||
@ -201,8 +209,9 @@ B站 API 采用 C/S 结构,大多数接口为 REST API 和 gRPC,少部分接
|
||||
- [ ] [动态基本信息](docs/dynamic/basicInfo.md)
|
||||
- [ ] [动态详细信息字段](docs/dynamic/card_info.md)
|
||||
- [ ] [获取动态详情](docs/dynamic/detail.md)
|
||||
- [ ] [动态类型](docs/dynamic/dynamic_enum.md)
|
||||
- [ ] [动态类型对照](docs/dynamic/dynamic_enum.md)
|
||||
- [ ] [动态信息](docs/dynamic/content.md)
|
||||
- [ ] [话题搜索](docs/dynamic/topic.md)
|
||||
- [ ] [发送 & 转载动态](docs/dynamic/publish.md)
|
||||
- [ ] [根据关键字搜索用户(at 别人时的填充列表)](docs/dynamic/atlist.md)
|
||||
- [ ] [操作](docs/dynamic/action.md)
|
||||
@ -210,7 +219,7 @@ B站 API 采用 C/S 结构,大多数接口为 REST API 和 gRPC,少部分接
|
||||
- [x] [特定话题动态列表](docs/dynamic/tag_dynamics.md)
|
||||
- [ ] [动态内容](docs/dynamic/get_dynamic_detail.md)
|
||||
- [ ] [导航栏动态](docs/dynamic/nav.md)
|
||||
- [ ] [相簿](docs/album)
|
||||
- [ ] [相簿](docs/album) (已下线)
|
||||
- [x] [基本信息](docs/album/info.md)
|
||||
- [x] [相簿列表](docs/album/list.md)
|
||||
- [x] [推荐作者](docs/album/recommend_author.md)
|
||||
@ -241,6 +250,10 @@ B站 API 采用 C/S 结构,大多数接口为 REST API 和 gRPC,少部分接
|
||||
- [ ] [直播间用户实用 API](docs/live/user.md)
|
||||
- [x] [直播间禁言相关](docs/live/silent_user_manage.md)
|
||||
- [ ] [关注UP直播情况](docs/live/follow_up_live.md)
|
||||
- [ ] [直播心跳上报](docs/live/report.md)
|
||||
- [ ] [活动](docs/activity)
|
||||
- [ ] [活动列表](docs/activity/list.md)
|
||||
- [ ] [活动主题信息](docs/activity/info.md)
|
||||
- [ ] [转正答题](docs/newbie_exam)
|
||||
- [x] [查询信息](docs/newbie_exam/info.md)
|
||||
- [x] [拉取题目](docs/newbie_exam/fetch.md)
|
||||
@ -249,8 +262,8 @@ B站 API 采用 C/S 结构,大多数接口为 REST API 和 gRPC,少部分接
|
||||
- [x] [青少年模式](docs/teenager/teenager_mode.md)
|
||||
- [ ] 亲子平台
|
||||
- [ ] 课堂模式
|
||||
- [ ] B币钱包
|
||||
- [ ] 基本信息
|
||||
- [ ] [B币钱包](docs/wallet/)
|
||||
- [ ] [基本信息](docs/wallet/info.md)
|
||||
- [ ] B币充值
|
||||
- [ ] 贝壳相关
|
||||
- [ ] [哔哩哔哩漫画](docs/manga)
|
||||
@ -267,16 +280,19 @@ B站 API 采用 C/S 结构,大多数接口为 REST API 和 gRPC,少部分接
|
||||
- [ ] 哔哩哔哩游戏
|
||||
- [ ] [终端网络查询](docs/clientinfo)
|
||||
- [x] [基于 ip 的地理位置查询](docs/clientinfo/ip.md)
|
||||
- [ ] [其他](docs/misc)
|
||||
- [x] [获取当前时间戳](docs/misc/time_stamp.md)
|
||||
- [ ] [客服中心](docs/customerservice)
|
||||
- [ ] [客服消息](docs/customerservice/msg.md)
|
||||
- [ ] [web端组件](docs/web_widget)
|
||||
- [x] [分区当日投稿数](docs/web_widget/zone_upload.md)
|
||||
- [x] [404 页漫画收集](docs/web_widget/404_manga.md)
|
||||
- [ ] [首页横幅头图](docs/web_widget/header.md)
|
||||
- [ ] [APP端组件](docs/APP_widget)
|
||||
- [x] [开屏图片 + 恰饭珍贵录像](docs/APP_widget/splash.md)
|
||||
- [ ] [获取最新 APP 版本](docs/APP_widget/ver.md)
|
||||
- [ ] [个性装扮](docs/garb)
|
||||
- [x] [APP 主题](docs/garb/skin.md)
|
||||
- [x] [主题色](docs/garb/color.md)
|
||||
- [ ] [装扮/收藏集](docs/garb/lottery.md)
|
||||
|
||||
## ✨鸣谢
|
||||
|
||||
|
91
docs/APP_widget/ver.md
Normal file
91
docs/APP_widget/ver.md
Normal file
@ -0,0 +1,91 @@
|
||||
# 获取最新 APP 版本
|
||||
|
||||
## 版本升级
|
||||
|
||||
> https://app.bilibili.com/x/v2/version/fawkes/upgrade
|
||||
|
||||
*请求方式: GET*
|
||||
|
||||
**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` |
|
||||
|
||||
**JSON回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| - | - | - | - |
|
||||
| code | int | 返回值 | 0: 成功<br />-304: 木有改动<br />-400: 请求异常 |
|
||||
| message | str | 错误信息 | 默认为 `0` |
|
||||
| ttl | int | 1 | |
|
||||
| data | obj | 信息本体 | |
|
||||
|
||||
`data` 对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| - | - | - | - |
|
||||
| title | str | 标题 | |
|
||||
| content | str | 内容 | |
|
||||
| version | str | 最新版本号 | |
|
||||
| version_code | int | 最新版本号 | build |
|
||||
| url | str | 下载地址 | |
|
||||
| size | int | 大小 | 单位字节 |
|
||||
| md5 | str | MD5 值 | |
|
||||
| silent | int | 是否静默安装? | |
|
||||
| upgrade_type | int | 升级类型? | |
|
||||
| cycle | int | 升级周期? | |
|
||||
| policy | int | 升级策略? | |
|
||||
| policy_url | str | 升级策略链接? | |
|
||||
| ptime | int | 发布时间 | |
|
||||
|
||||
**示例:**
|
||||
|
||||
```curl
|
||||
curl -G 'https://app.bilibili.com/x/v2/version/fawkes/upgrade' \
|
||||
--url-query 'build=1145141' \
|
||||
--url-query 'channel=apt' \
|
||||
--url-query 'mobi_app=android' \
|
||||
--url-query 'nt=awa' \
|
||||
--url-query 'ov=qwq' \
|
||||
--url-query 'platform=archlinux' \
|
||||
--url-query 'sn=919810' \
|
||||
--url-query 'vn=!!!'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```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
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
93
docs/activity/info.md
Normal file
93
docs/activity/info.md
Normal file
@ -0,0 +1,93 @@
|
||||
# 活动主题信息
|
||||
|
||||
## 主题信息
|
||||
|
||||
> https://api.bilibili.com/x/activity/subject/info
|
||||
|
||||
*请求方式: GET*
|
||||
|
||||
**URL参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| - | - | - | - | - | - | - |
|
||||
| sid | num | 活动 id | 必要 | |
|
||||
| bvid | str | 来源视频 bvid | 非必要 | |
|
||||
|
||||
**JSON回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| - | - | - | - |
|
||||
| code | num | 返回值 | 0: 成功<br />-400: 请求错误 |
|
||||
| message | str | 错误信息 | 默认为 0 |
|
||||
| ttl | num | 1 | |
|
||||
| data | obj | 数据本体 | |
|
||||
|
||||
`data` 对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| - | - | - | - |
|
||||
| id | num | 活动 id | |
|
||||
| oid | num | 0 | |
|
||||
| type | num | 13 | |
|
||||
| state | num | 1 | |
|
||||
| stime | num | 开始时间 | UNIX 秒级时间戳 |
|
||||
| etime | num | 结束时间 | UNIX 秒级时间戳 |
|
||||
| ctime | num | 创建时间 | UNIX 秒级时间戳 |
|
||||
| mtime | num | 修改时间 | UNIX 秒级时间戳 |
|
||||
| name | str | 活动名称 | |
|
||||
| act_url | str | 活动链接 | |
|
||||
| lstime | num | ? | 作用尚不明确 |
|
||||
| letime | num | ? | 作用尚不明确 |
|
||||
| cover | str | 封面图片 | |
|
||||
| dic | str | 简介 | |
|
||||
| h5_cover | str | H5 封面 | |
|
||||
| android_url | str | Android 端活动链接 | |
|
||||
| ios_url | str | iOS 端活动链接 | |
|
||||
| child_sids | str | 子活动 id? | |
|
||||
| calendar | str | 日历? | 空 或 `{}`? |
|
||||
| lid | num | ? | 仅在传入 bvid 时存在 |
|
||||
|
||||
**示例:**
|
||||
|
||||
```shell
|
||||
curl -G --url 'https://api.bilibili.com/x/activity/subject/info' \
|
||||
--url-query 'sid=4017552' \
|
||||
--url-query 'bvid=BV1mKY4e8ELy'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1,
|
||||
"data": {
|
||||
"id": 4017552,
|
||||
"oid": 0,
|
||||
"type": 13,
|
||||
"state": 1,
|
||||
"stime": 1720540800,
|
||||
"etime": 1728575999,
|
||||
"ctime": 1720439769,
|
||||
"mtime": 1720591285,
|
||||
"name": "科技猎手2024第2季",
|
||||
"act_url": "https://www.bilibili.com/blackboard/era/kejilieshou2PC.html",
|
||||
"lstime": 1720540800,
|
||||
"letime": 1728575999,
|
||||
"cover": "https://i0.hdslb.com/bfs/activity-plat/static/98bc38873cc71e154019070975cd20a0/fLOEOStVUV.jpg",
|
||||
"dic": "科技猎手召集中!投稿赢奖金>>",
|
||||
"h5_cover": "https://i0.hdslb.com/bfs/activity-plat/static/98bc38873cc71e154019070975cd20a0/PTIFsXkV0o.jpg",
|
||||
"android_url": "https://www.bilibili.com/blackboard/era/kejilieshou2H5.html",
|
||||
"ios_url": "https://www.bilibili.com/blackboard/era/kejilieshou2H5.html",
|
||||
"child_sids": "",
|
||||
"calendar": "",
|
||||
"lid": 294258214
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
213
docs/activity/list.md
Normal file
213
docs/activity/list.md
Normal file
@ -0,0 +1,213 @@
|
||||
# 活动列表
|
||||
|
||||
## 获取活动列表
|
||||
|
||||
> https://api.bilibili.com/x/activity/page/list
|
||||
|
||||
*请求方式: GET*
|
||||
|
||||
**URL参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | ---- | -------- | ------ | ---- |
|
||||
| plat | str | 活动平台类型? | 必要 | 可选范围 [1, 3], 以半角逗号分隔, 默认 `1,3` |
|
||||
| mold | int | 0 | 非必要 | |
|
||||
| http | int | 3 | 非必要 | |
|
||||
| pn | int | 目标页码 | 非必要 | 默认为 `1` |
|
||||
| ps | int | 每页条数 | 非必要 | 默认为 `15` |
|
||||
|
||||
**JSON回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| - | - | - | - |
|
||||
| code | int | 返回值 | 0:成功<br />-400:请求错误 |
|
||||
| message | str | 错误信息 | 默认为 0 |
|
||||
| ttl | int | 1 | |
|
||||
| data | obj | 信息本体 | |
|
||||
|
||||
`data` 对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| - | - | - | - |
|
||||
| list | array | 活动列表 | |
|
||||
| num | int | 当前页码 | |
|
||||
| size | int | 每页条数 | |
|
||||
| total | int | 总条数 | |
|
||||
|
||||
`list` 数组中的对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| - | - | - | - |
|
||||
| id | int | 活动 ID | |
|
||||
| state | int | 1 | |
|
||||
| stime | int | 开始时间 | UNIX 秒级时间戳 |
|
||||
| etime | int | 结束时间 | UNIX 秒级时间戳 |
|
||||
| ctime | int | 创建时间? | UNIX 秒级时间戳, 可能为 0 |
|
||||
| mtime | int | 修改时间? | UNIX 秒级时间戳, 可能为 0 |
|
||||
| name | str | 活动名称 | |
|
||||
| author | str | 空 ||
|
||||
| pc_url | str | 空 ||
|
||||
| rank | int | 0 | |
|
||||
| h5_url | str | 活动链接 | |
|
||||
| pc_cover | str | 空 | |
|
||||
| h5_cover | str | 活动封面 | |
|
||||
| page_name | str | 页面名称 | |
|
||||
| plat | int | 活动平台类型? | 即 URL 中 `plat` 参数 |
|
||||
| desc | str | 活动描述 | |
|
||||
| click | int | 0 | |
|
||||
| type | int | 0 | |
|
||||
| mold | int | 0 | |
|
||||
| series | int | 0 | |
|
||||
| dept | int | 0 | |
|
||||
| reply_id | int | 0 | |
|
||||
| tp_id | int | 0 | |
|
||||
| ptime | int | 0 | |
|
||||
| catalog | int | 0 | |
|
||||
| creator | str | 空 | |
|
||||
| spm_id | str | 空 | |
|
||||
|
||||
**示例:**
|
||||
|
||||
```shell
|
||||
curl -G 'https://api.bilibili.com/x/activity/page/list' \
|
||||
--url-query 'plat=1,2,3' \
|
||||
--url-query 'ps=4'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1,
|
||||
"data": {
|
||||
"list": [
|
||||
{
|
||||
"id": 207,
|
||||
"state": 1,
|
||||
"stime": 1723262400,
|
||||
"etime": 1724774399,
|
||||
"ctime": 0,
|
||||
"mtime": 0,
|
||||
"name": "原神fes2024",
|
||||
"author": "",
|
||||
"pc_url": "",
|
||||
"rank": 0,
|
||||
"h5_url": "https://www.bilibili.com/blackboard/era/DK8i0NS7fxwcLBgm.html",
|
||||
"pc_cover": "",
|
||||
"h5_cover": "https://i0.hdslb.com/bfs/activity-plat/static/d32c2bb79f59192cb072d7bf79b61c6d/In2tYOLFTZ.png",
|
||||
"page_name": "原神fes2024",
|
||||
"plat": 2,
|
||||
"desc": "",
|
||||
"click": 0,
|
||||
"type": 0,
|
||||
"mold": 0,
|
||||
"series": 0,
|
||||
"dept": 0,
|
||||
"reply_id": 0,
|
||||
"tp_id": 0,
|
||||
"ptime": 0,
|
||||
"catalog": 0,
|
||||
"creator": "",
|
||||
"spm_id": ""
|
||||
},
|
||||
{
|
||||
"id": 210,
|
||||
"state": 1,
|
||||
"stime": 1723219200,
|
||||
"etime": 1725983999,
|
||||
"ctime": 0,
|
||||
"mtime": 0,
|
||||
"name": "暗区突围端游海外版全员夺金冲榜挑战赛",
|
||||
"author": "",
|
||||
"pc_url": "",
|
||||
"rank": 0,
|
||||
"h5_url": "https://www.bilibili.com/blackboard/era/UP8CZSTfboDVZuGr.html",
|
||||
"pc_cover": "",
|
||||
"h5_cover": "https://i0.hdslb.com/bfs/activity-plat/static/f9a67e268d55d029e6b27d81246fc59a/LPN9dlcRlW.png",
|
||||
"page_name": "暗区突围端游海外版全员夺金冲榜挑战赛",
|
||||
"plat": 2,
|
||||
"desc": "",
|
||||
"click": 0,
|
||||
"type": 0,
|
||||
"mold": 0,
|
||||
"series": 0,
|
||||
"dept": 0,
|
||||
"reply_id": 0,
|
||||
"tp_id": 0,
|
||||
"ptime": 0,
|
||||
"catalog": 0,
|
||||
"creator": "",
|
||||
"spm_id": ""
|
||||
},
|
||||
{
|
||||
"id": 199,
|
||||
"state": 1,
|
||||
"stime": 1723089600,
|
||||
"etime": 1725897599,
|
||||
"ctime": 0,
|
||||
"mtime": 0,
|
||||
"name": "剑与远征:启程公测创作者激励",
|
||||
"author": "",
|
||||
"pc_url": "",
|
||||
"rank": 0,
|
||||
"h5_url": "https://www.bilibili.com/blackboard/era/HkHatvvW9nJZXEMh.html",
|
||||
"pc_cover": "",
|
||||
"h5_cover": "https://i0.hdslb.com/bfs/activity-plat/static/7785e7ecb0434c85530b92e3586f32ff/CgKENr0ftC.jpeg",
|
||||
"page_name": "剑与远征:启程公测创作者激励",
|
||||
"plat": 2,
|
||||
"desc": "",
|
||||
"click": 0,
|
||||
"type": 0,
|
||||
"mold": 0,
|
||||
"series": 0,
|
||||
"dept": 0,
|
||||
"reply_id": 0,
|
||||
"tp_id": 0,
|
||||
"ptime": 0,
|
||||
"catalog": 0,
|
||||
"creator": "",
|
||||
"spm_id": ""
|
||||
},
|
||||
{
|
||||
"id": 203,
|
||||
"state": 1,
|
||||
"stime": 1723089600,
|
||||
"etime": 1724255999,
|
||||
"ctime": 0,
|
||||
"mtime": 0,
|
||||
"name": "王者荣耀新英雄少司缘创作激励",
|
||||
"author": "",
|
||||
"pc_url": "",
|
||||
"rank": 0,
|
||||
"h5_url": "https://www.bilibili.com/blackboard/era/g0gn2j4ZENrCLYLn.html",
|
||||
"pc_cover": "",
|
||||
"h5_cover": "https://i0.hdslb.com/bfs/activity-plat/static/a99ba278036e9fbfa81b9100d13d9e7e/9UHZg6r0Y5.jpg",
|
||||
"page_name": "王者荣耀新英雄少司缘创作激励",
|
||||
"plat": 2,
|
||||
"desc": "",
|
||||
"click": 0,
|
||||
"type": 0,
|
||||
"mold": 0,
|
||||
"series": 0,
|
||||
"dept": 0,
|
||||
"reply_id": 0,
|
||||
"tp_id": 0,
|
||||
"ptime": 0,
|
||||
"catalog": 0,
|
||||
"creator": "",
|
||||
"spm_id": ""
|
||||
}
|
||||
],
|
||||
"num": 1,
|
||||
"size": 4,
|
||||
"total": 5391
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
@ -3,6 +3,8 @@
|
||||
## 根据请求IP确定属地
|
||||
|
||||
> https://api.bilibili.com/x/web-interface/zone
|
||||
>
|
||||
> https://api.live.bilibili.com/xlive/web-room/v1/index/getIpInfo
|
||||
|
||||
*请求方式:GET*
|
||||
|
||||
@ -28,8 +30,8 @@
|
||||
| isp | str | 运营商名 | |
|
||||
| latitude | num | 纬度 | |
|
||||
| longitude | num | 经度 | |
|
||||
| zone_id | num | ip数据库id | |
|
||||
| country_code | num | 国家/地区代码 | |
|
||||
| zone_id | num | ip数据库id | 第二个接口无 |
|
||||
| country_code | num | 国家/地区代码 | 第二个接口无 |
|
||||
|
||||
**示例:**
|
||||
|
||||
@ -66,7 +68,7 @@ curl 'https://api.bilibili.com/x/web-interface/zone'
|
||||
> https://api.live.bilibili.com/ip_service/v1/ip_service/get_ip_addr
|
||||
> https://api.live.bilibili.com/client/v1/Ip/getInfoNew
|
||||
|
||||
注: 两接口等效
|
||||
注: 以上接口等效
|
||||
|
||||
*请求方式:GET*
|
||||
|
||||
@ -90,7 +92,7 @@ curl 'https://api.bilibili.com/x/web-interface/zone'
|
||||
|
||||
`data`对象:
|
||||
|
||||
与[根据请求IP确定地理位置](#根据请求ip确定地理位置)回复的`data`对象基本相同, 但无 `country_code` 字段
|
||||
与[根据请求IP确定地理位置](#根据请求ip确定地理位置)回复的`data`对象基本相同, 但无 `zone_id` `country_code` 字段
|
||||
|
||||
**示例:**
|
||||
|
||||
|
3206
docs/comment/list.md
3206
docs/comment/list.md
File diff suppressed because it is too large
Load Diff
730
docs/creativecenter/season.md
Normal file
730
docs/creativecenter/season.md
Normal file
@ -0,0 +1,730 @@
|
||||
# 合集管理
|
||||
|
||||
关于用户空间的合集及视频列表参见 [合集和视频列表信息](../video/collection.md)
|
||||
|
||||
## 获取合集列表
|
||||
|
||||
> https://member.bilibili.com/x2/creative/web/seasons
|
||||
|
||||
*请求方式: GET*
|
||||
|
||||
认证方式: Cookie (SESSDATA)
|
||||
|
||||
**URL参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | ---- | --------- | ----------- | ----------------- |
|
||||
| pn | num | 页码 | 必要 | 默认为 1 |
|
||||
| ps | num | 每页数量 | 必要 | 默认为 30 |
|
||||
| order | str | 排序方式 | 不必要 | 创建时间: ctime<br />修改时间: mtime |
|
||||
| sort | str | 排序方式 | 不必要 | 创建时间: asc<br />修改时间: desc |
|
||||
| draft | num | 1 | 不必要 | 作用尚不明确 |
|
||||
|
||||
**JSON回复:**
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | ---- |
|
||||
| code | num | 返回值 | 0:成功 |
|
||||
| message | str | 错误信息 | |
|
||||
| ttl | num | 1 | |
|
||||
| data | obj | 信息本体 | |
|
||||
|
||||
`data`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| --------- | ---- | ------------ | ---- |
|
||||
| seasons | arr | 合集列表 | |
|
||||
| tip | obj | 内容 `title` `url` 均为空 | |
|
||||
| total | num | 合集总数 | |
|
||||
| play_type | num | 1 | 作用尚不明确 |
|
||||
|
||||
`seasons`数组中的对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| --------- | ---- | ------------ | ---- |
|
||||
| season | obj | 合集信息 | |
|
||||
| course | null | | |
|
||||
| checkin | obj | 审核信息? | |
|
||||
| seasonStat | obj | 合集统计信息 | |
|
||||
| sections | obj | 小节列表 | |
|
||||
| part_episodes | arr | 合集视频列表 | |
|
||||
|
||||
`seasons`数组中的对象中的`season`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| --------- | ---- | ------------ | ---- |
|
||||
| id | num | 合集 ID | |
|
||||
| title | str | 合集标题 | |
|
||||
| desc | str | 合集描述 | |
|
||||
| cover | str | 合集封面 URL | |
|
||||
| isEnd | num | 是否已完结? | 0: 未完结 |
|
||||
| mid | num | 合集作者 ID | |
|
||||
| isAct | num | 是否为活动合集? | 0: 否 |
|
||||
| is_pay | num | 是否付费? | 0: 否 |
|
||||
| state | num | 合集状态? | 0: 正常显示<br />-6: 正在审核 |
|
||||
| partState | num | 合集分段状态? | 0 |
|
||||
| signState | num | 合集签名状态? | 0 |
|
||||
| rejectReason | str | 合集拒绝原因? | |
|
||||
| ctime | num | 创建时间 | |
|
||||
| mtime | num | 修改时间 | |
|
||||
| no_section | num | 是否设小节 | 1: 不设小节 |
|
||||
| forbid | num | 合集是否禁止? | 0: 否 |
|
||||
| protocol_id | str | 空 | |
|
||||
| ep_num | num | 0 | |
|
||||
| season_price | num | 合集价格? | 0: 免费 |
|
||||
| is_opened | num | 是否公开? | 1: 公开 |
|
||||
| has_charging_pay | num | 是否充电付费? | 0: 否 |
|
||||
|
||||
`seasons`数组中的对象中的`checkin`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| --------- | ---- | ------------ | ---- |
|
||||
| status | num | 状态? | 0: 正常显示 |
|
||||
| status_reason | str | 状态原因? | |
|
||||
| season_status | num | 合集审核状态? | 1: 审核通过 |
|
||||
|
||||
`seasons`数组中的对象中的`seasonStat`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| --------- | ---- | ------------ | ---- |
|
||||
| view | num | 播放量 | |
|
||||
| danmaku | num | 弹幕数 | |
|
||||
| reply | num | 评论数 | |
|
||||
| fav | num | 收藏数 | |
|
||||
| coin | num | 硬币数 | |
|
||||
| share | num | 分享数 | |
|
||||
| nowRank | num | 当前排名? | |
|
||||
| hisRank | num | 历史最高排名? | |
|
||||
| like | num | 点赞数 | |
|
||||
| subscription | num | 订阅数 | |
|
||||
| vt | num | 0 | |
|
||||
|
||||
`seasons`数组中的对象中的`sections`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| --------- | ---- | ------------ | ---- |
|
||||
| sections | arr | 小节列表 | 套了个娃 |
|
||||
|
||||
`seasons`数组中的对象中的`sections`数组中的对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| --------- | ---- | ------------ | ---- |
|
||||
| id | num | 小节 ID | |
|
||||
| type | num | 1 | |
|
||||
| seasonId | num | 合集 ID | |
|
||||
| title | str | 小节标题 | |
|
||||
| order | num | 排序 | |
|
||||
| state | num | 状态? | 0: 正常 |
|
||||
| partState | num | 合集分段状态? | 0: 正常 |
|
||||
| rejectReason | str | 拒绝原因? | |
|
||||
| ctime | num | 创建时间 | |
|
||||
| mtime | num | 修改时间 | |
|
||||
| epCount | num | 视频数量 | |
|
||||
| cover | str | 封面 URL | |
|
||||
| has_charging_pay | num | 是否充电付费? | 0: 否 |
|
||||
| Episodes | null | | |
|
||||
|
||||
`seasons`数组中的对象中的`part_episodes`数组中的对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| --------- | ---- | ------------ | ---- |
|
||||
| id | num | 合集内视频 ID | |
|
||||
| title | str | 视频标题 | |
|
||||
| aid | num | 视频 aid | |
|
||||
| bvid | str | 视频 bvid | |
|
||||
| cid | num | 视频 cid | |
|
||||
| seasonId | num | 合集 ID | |
|
||||
| sectionId | num | 小节 ID | |
|
||||
| order | num | 排序编号 | |
|
||||
| videoTitle | str | 空 | |
|
||||
| archiveTitle | str | 空 | |
|
||||
| archiveState | num | 0 | |
|
||||
| rejectReason | str | 拒绝理由? | |
|
||||
| state | num | 0 | |
|
||||
| cover | str | 封面 URL | |
|
||||
| is_free | num | 是否免费? | 0: 免费 |
|
||||
| aid_owner | bool | false | |
|
||||
| charging_pay | num | 充电付费? | 0: 否 |
|
||||
|
||||
**示例:**
|
||||
|
||||
```shell
|
||||
curl -G 'https://member.bilibili.com/x2/creative/web/seasons' \
|
||||
--data-urlencode 'pn=1' \
|
||||
--data-urlencode 'ps=30' \
|
||||
-b "SESSDATA=xxx"
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1,
|
||||
"data": {
|
||||
"seasons": [
|
||||
{
|
||||
"season": {
|
||||
"id": 3541247,
|
||||
"title": "🍥Debian",
|
||||
"desc": "这里是泽生折腾 Debian GNU/Linux 的珍贵影像记录喵~",
|
||||
"cover": "https://archive.biliimg.com/bfs/archive/ec51de61b53159c5e2430cf963f5f97e692baeaf.jpg",
|
||||
"isEnd": 0,
|
||||
"mid": 645769214,
|
||||
"isAct": 0,
|
||||
"is_pay": 0,
|
||||
"state": 0,
|
||||
"partState": 0,
|
||||
"signState": 0,
|
||||
"rejectReason": "",
|
||||
"ctime": 1722573640,
|
||||
"mtime": 1722577206,
|
||||
"no_section": 1,
|
||||
"forbid": 0,
|
||||
"protocol_id": "",
|
||||
"ep_num": 0,
|
||||
"season_price": 0,
|
||||
"is_opened": 1,
|
||||
"has_charging_pay": 0
|
||||
},
|
||||
"course": null,
|
||||
"checkin": {
|
||||
"status": 0,
|
||||
"status_reason": "",
|
||||
"season_status": 1
|
||||
},
|
||||
"seasonStat": {
|
||||
"view": 6793,
|
||||
"danmaku": 21,
|
||||
"reply": 93,
|
||||
"fav": 64,
|
||||
"coin": 26,
|
||||
"share": 12,
|
||||
"nowRank": 0,
|
||||
"hisRank": 0,
|
||||
"like": 141,
|
||||
"subscription": 0,
|
||||
"vt": 0
|
||||
},
|
||||
"sections": {
|
||||
"sections": [
|
||||
{
|
||||
"id": 3954033,
|
||||
"type": 1,
|
||||
"seasonId": 3541247,
|
||||
"title": "正片",
|
||||
"order": 1,
|
||||
"state": 0,
|
||||
"partState": 0,
|
||||
"rejectReason": "",
|
||||
"ctime": 1722573640,
|
||||
"mtime": 1722577206,
|
||||
"epCount": 2,
|
||||
"cover": "http://i2.hdslb.com/bfs/archive/b76c0b574862f5a8e8eb133f5f33fcbcd602401a.jpg",
|
||||
"has_charging_pay": 0,
|
||||
"Episodes": null
|
||||
}
|
||||
]
|
||||
},
|
||||
"part_episodes": [
|
||||
{
|
||||
"id": 77260687,
|
||||
"title": "Linux小寄巧: 原地卸载内核然后尝试救活!",
|
||||
"aid": 1906473802,
|
||||
"bvid": "BV1MU411S7iJ",
|
||||
"cid": 1625992822,
|
||||
"seasonId": 3541247,
|
||||
"sectionId": 3954033,
|
||||
"order": 1,
|
||||
"videoTitle": "",
|
||||
"archiveTitle": "",
|
||||
"archiveState": 0,
|
||||
"rejectReason": "",
|
||||
"state": 0,
|
||||
"cover": "http://i2.hdslb.com/bfs/archive/b76c0b574862f5a8e8eb133f5f33fcbcd602401a.jpg",
|
||||
"is_free": 0,
|
||||
"aid_owner": false,
|
||||
"charging_pay": 0
|
||||
},
|
||||
{
|
||||
"id": 77260688,
|
||||
"title": "十多年前的电脑运行Debian12的启动过程",
|
||||
"aid": 1956170305,
|
||||
"bvid": "BV1Ay411i7Ph",
|
||||
"cid": 1607067247,
|
||||
"seasonId": 3541247,
|
||||
"sectionId": 3954033,
|
||||
"order": 2,
|
||||
"videoTitle": "",
|
||||
"archiveTitle": "",
|
||||
"archiveState": 0,
|
||||
"rejectReason": "",
|
||||
"state": 0,
|
||||
"cover": "http://i0.hdslb.com/bfs/archive/0bff6624fdfcbf3326fba1837fef093d455c846a.jpg",
|
||||
"is_free": 0,
|
||||
"aid_owner": false,
|
||||
"charging_pay": 0
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"season": {
|
||||
"id": 3541327,
|
||||
"title": "BACollect",
|
||||
"desc": "",
|
||||
"cover": "https://archive.biliimg.com/bfs/archive/77906db03b1eefac02613de184afad03f7bc58d7.jpg",
|
||||
"isEnd": 0,
|
||||
"mid": 645769214,
|
||||
"isAct": 0,
|
||||
"is_pay": 0,
|
||||
"state": 0,
|
||||
"partState": 0,
|
||||
"signState": 0,
|
||||
"rejectReason": "",
|
||||
"ctime": 1722574656,
|
||||
"mtime": 1722574658,
|
||||
"no_section": 1,
|
||||
"forbid": 0,
|
||||
"protocol_id": "",
|
||||
"ep_num": 0,
|
||||
"season_price": 0,
|
||||
"is_opened": 1,
|
||||
"has_charging_pay": 0
|
||||
},
|
||||
"course": null,
|
||||
"checkin": {
|
||||
"status": 0,
|
||||
"status_reason": "",
|
||||
"season_status": 0
|
||||
},
|
||||
"seasonStat": {
|
||||
"view": 0,
|
||||
"danmaku": 0,
|
||||
"reply": 0,
|
||||
"fav": 0,
|
||||
"coin": 0,
|
||||
"share": 0,
|
||||
"nowRank": 0,
|
||||
"hisRank": 0,
|
||||
"like": 0,
|
||||
"subscription": 0,
|
||||
"vt": 0
|
||||
},
|
||||
"sections": {
|
||||
"sections": [
|
||||
{
|
||||
"id": 3954127,
|
||||
"type": 1,
|
||||
"seasonId": 3541327,
|
||||
"title": "正片",
|
||||
"order": 1,
|
||||
"state": 0,
|
||||
"partState": 0,
|
||||
"rejectReason": "",
|
||||
"ctime": 1722574656,
|
||||
"mtime": 1722574656,
|
||||
"epCount": 0,
|
||||
"cover": "http://static.hdslb.com/images/transparent.gif",
|
||||
"has_charging_pay": 0,
|
||||
"Episodes": null
|
||||
}
|
||||
]
|
||||
},
|
||||
"part_episodes": null
|
||||
}
|
||||
],
|
||||
"tip": {
|
||||
"title": "",
|
||||
"url": ""
|
||||
},
|
||||
"total": 2,
|
||||
"play_type": 1
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 创建合集
|
||||
|
||||
> ttps://member.bilibili.com/x2/creative/web/season/add
|
||||
|
||||
*请求方式: POST*
|
||||
|
||||
认证方式: Cookie (SESSDATA)
|
||||
|
||||
注: 有人工审核
|
||||
|
||||
**正文参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | ---- | -------- | ------ | ---- |
|
||||
| title | str | 合集标题 | 必要 | |
|
||||
| desc | str | 合集简介 | 不必要 | |
|
||||
| cover | str | 封面图 | 必要 | 从 [上传封面](upload.md#上传封面) 处获取 |
|
||||
| season_price | num | 0 | 不必要 | 作用尚不明确 |
|
||||
| csrf | str | CSRF Token (即 Cookies 中 bili_jct ) | 必要 | |
|
||||
|
||||
**JSON回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | ---- |
|
||||
| code | num | 返回值 | 0:成功 |
|
||||
| message | str | 错误信息 | |
|
||||
| ttl | num | 1 | |
|
||||
| data | num | 合集 ID | |
|
||||
|
||||
**示例:**
|
||||
|
||||
```shell
|
||||
curl -X POST 'https://member.bilibili.com/x2/creative/web/season/add' \
|
||||
--data-urlencode 'title=🍥Debian' \
|
||||
--data-urlencode 'desc=这里是泽生折腾 Debian GNU/Linux 的珍贵影像记录喵~' \
|
||||
--data-urlencode 'cover=https://archive.biliimg.com/bfs/archive/ec51de61b53159c5e2430cf963f5f97e692baeaf.jpg' \
|
||||
--data-urlencode 'season_price=0' \
|
||||
--data-urlencode 'csrf=xxx' \
|
||||
-b 'SESSDATA=xxx; bili_jct=xxx'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1,
|
||||
"data": 3541247
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 添加视频到合集
|
||||
|
||||
> https://member.bilibili.com/x2/creative/web/season/section/episodes/add
|
||||
|
||||
*请求方式: POST*
|
||||
|
||||
认证方式: Cookie (SESSDATA)
|
||||
|
||||
**URL参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | ---- | -------- | ------ | ---- |
|
||||
| csrf | str | CSRF Token (即 Cookies 中 bili_jct ) | 必要 | |
|
||||
|
||||
**正文参数 (application/json):**
|
||||
|
||||
根对象:
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | ---- | -------- | ------ | ---- |
|
||||
| episode | array | 视频列表 | 必要 | |
|
||||
| section_id | num | 合集小节 ID | 必要 | |
|
||||
|
||||
`episode` 数组中的对象:
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ----- | --- | ---- | ----- | --- |
|
||||
| aid | num | 视频 aid | 必要 | |
|
||||
| cid | num | 稿件 cid | 必要 | |
|
||||
| title | str | 合集内单集标题 | 必要 | |
|
||||
| charging_pay | num | 0 | 不必要 | 作用尚不明确 |
|
||||
|
||||
**JSON回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | ---- |
|
||||
| code | num | 返回值 | 0:成功 |
|
||||
| message | str | 错误信息 | |
|
||||
| ttl | num | 1 | |
|
||||
|
||||
**示例:**
|
||||
|
||||
假设您已经把请求有效荷载放在 `payload.json` 文件中:
|
||||
|
||||
```json
|
||||
{
|
||||
"sectionId": 3954033,
|
||||
"episodes": [
|
||||
{
|
||||
"title": "Linux小寄巧: 原地卸载内核然后尝试救活!",
|
||||
"aid": 1906473802,
|
||||
"cid": 1625992822,
|
||||
"charging_pay": 0
|
||||
},
|
||||
{
|
||||
"title": "十多年前的电脑运行Debian12的启动过程",
|
||||
"aid": 1956170305,
|
||||
"cid": 1607067247,
|
||||
"charging_pay": 0
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
```shell
|
||||
curl -X POST --url 'https://member.bilibili.com/x2/creative/web/season/section/episodes/add' \
|
||||
--url-query 'csrf=xxx' \
|
||||
-H 'Content-Type: application/json' \
|
||||
--data-binary @payload.json \
|
||||
-b 'SESSDATA=xxx; bili_jct=xxx'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 编辑合集小节
|
||||
|
||||
> https://member.bilibili.com/x2/creative/web/season/section/edit
|
||||
|
||||
*请求方式: POST*
|
||||
|
||||
认证方式: Cookie (SESSDATA)
|
||||
|
||||
**URL参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | ---- | -------- | ------ | ---- |
|
||||
| csrf | str | CSRF Token (即 Cookies 中 bili_jct) | 必要 | |
|
||||
|
||||
**正文参数 (application/json):**
|
||||
|
||||
根对象:
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | ---- | -------- | ------ | ---- |
|
||||
| section | obj | 小节信息 | 必要 | |
|
||||
| sorts | array | 排序列表 | 必要 | |
|
||||
|
||||
`section` 对象:
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | ---- | -------- | ------ | ---- |
|
||||
| id | num | 小节 ID | 必要 | |
|
||||
| seasonId | num | 合集 ID | 必要 | |
|
||||
| title | str | 小节标题 | 必要 | |
|
||||
| type | num | 1 | 必要 | |
|
||||
|
||||
`sorts` 数组中的对象:
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | ---- | -------- | ------ | ---- |
|
||||
| id | num | 合集内视频 ID | 必要 | |
|
||||
| order | num | 排序位置 | 必要 | |
|
||||
|
||||
**JSON回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | ---- |
|
||||
| code | num | 返回值 | 0:成功 |
|
||||
| message | str | 错误信息 | |
|
||||
| ttl | num | 1 | |
|
||||
|
||||
**示例:**
|
||||
|
||||
假设您已经把请求有效荷载放在 `payload.json` 文件中:
|
||||
|
||||
```json
|
||||
{
|
||||
"section": {
|
||||
"id": 3954033,
|
||||
"type": 1,
|
||||
"seasonId": 3541247,
|
||||
"title": "正片"
|
||||
},
|
||||
"sorts": [
|
||||
{
|
||||
"id": 77260687,
|
||||
"sort": 1
|
||||
},
|
||||
{
|
||||
"id": 77260688,
|
||||
"sort": 2
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
```shell
|
||||
curl -X POST --url 'https://member.bilibili.com/x2/creative/web/season/section/edit' \
|
||||
--url-query 'csrf=xxx' \
|
||||
-H 'Content-Type: application/json' \
|
||||
--data-binary @payload.json \
|
||||
-b 'SESSDATA=xxx; bili_jct=xxx'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 编辑合集信息
|
||||
|
||||
> https://member.bilibili.com/x2/creative/web/season/edit
|
||||
|
||||
*请求方式: POST*
|
||||
|
||||
认证方式: Cookie (SESSDATA)
|
||||
|
||||
注: 也有人工审核
|
||||
|
||||
**URL参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | ---- | -------- | ------ | ---- |
|
||||
| csrf | str | CSRF Token (即 Cookies 中 bili_jct) | 必要 | |
|
||||
|
||||
**正文参数 (application/json):**
|
||||
|
||||
根对象:
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | ---- | -------- | ------ | ---- |
|
||||
| season | obj | 合集信息 | 必要 | |
|
||||
| sorts | array | 排序列表 | 必要 | |
|
||||
|
||||
`season` 对象:
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | ---- | -------- | ------ | ---- |
|
||||
| id | num | 合集 ID | 必要 | |
|
||||
| title | str | 合集标题 | 必要 | |
|
||||
| cover | str | 封面图 | 必要 | 从 [上传封面](upload.md#上传封面) 处获取 |
|
||||
| desc | str | 合集简介 | 不必要 | |
|
||||
| season_price | num | 0 | 不必要 | 作用尚不明确 |
|
||||
| isEnd | num | 是否完结 | 不必要 | 0:未完结<br />1:完结 |
|
||||
|
||||
`sorts` 数组中的对象:
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | ---- | -------- | ------ | ---- |
|
||||
| id | num | 小节 ID | 必要 | |
|
||||
| sort | num | 排序位置 | 必要 | |
|
||||
|
||||
**JSON回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | ---- |
|
||||
| code | num | 返回值 | 0:成功 |
|
||||
| message | str | 错误信息 | |
|
||||
| ttl | num | 1 | |
|
||||
|
||||
**示例:**
|
||||
|
||||
假设您已经把请求有效荷载放在 `payload.json` 文件中:
|
||||
|
||||
```json
|
||||
{
|
||||
"season": {
|
||||
"cover": "https://archive.biliimg.com/bfs/archive/77906db03b1eefac02613de184afad03f7bc58d7.jpg",
|
||||
"id": 3541327,
|
||||
"title": "IWILLBEDEL"
|
||||
},
|
||||
"sorts": [
|
||||
{
|
||||
"id": 3954127,
|
||||
"sort": 1
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
```shell
|
||||
curl -X POST --url 'https://member.bilibili.com/x2/creative/web/season/edit' \
|
||||
--url-query 'csrf=xxx' \
|
||||
-H 'Content-Type: application/json' \
|
||||
--data-binary @payload.json \
|
||||
-b 'SESSDATA=xxx; bili_jct=xxx'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 删除合集
|
||||
|
||||
> https://member.bilibili.com/x2/creative/web/season/del
|
||||
|
||||
*请求方式: POST*
|
||||
|
||||
认证方式: Cookie (SESSDATA)
|
||||
|
||||
**正文参数 (application/x-www-form-urlencoded):**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ----- | --- | ---- | ----- | --- |
|
||||
| id | num | 合集 ID | 必要 | |
|
||||
| csrf | str | CSRF Token (即 Cookie 中 bili_jct) | 必要 | |
|
||||
|
||||
**JSON回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | ---- | ---- |
|
||||
| code | num | 返回值 | 0:成功 |
|
||||
| message | str | 错误信息 | |
|
||||
| ttl | num | 1 | |
|
||||
|
||||
**示例:**
|
||||
|
||||
删除合集 `id=3541327`
|
||||
|
||||
```shell
|
||||
curl -X POST 'https://member.bilibili.com/x2/creative/web/season/del' \
|
||||
--data-urlencode 'id=3541327' \
|
||||
--data-urlencode 'csrf=xxx' \
|
||||
-b 'SESSDATA=xxx; bili_jct=xxx'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
1087
docs/creativecenter/upload.md
Normal file
1087
docs/creativecenter/upload.md
Normal file
File diff suppressed because it is too large
Load Diff
555
docs/creativecenter/videos.md
Normal file
555
docs/creativecenter/videos.md
Normal file
@ -0,0 +1,555 @@
|
||||
# 视频相关杂项
|
||||
|
||||
## 获取稿件列表
|
||||
|
||||
> https://member.bilibili.com/x2/creative/web/archives/sp
|
||||
|
||||
*请求方式: GET*
|
||||
|
||||
认证方式: Cookie (SESSDATA)
|
||||
|
||||
注: 该接口返回内容大多为无实际意义的空值, 具体内容建议通过常规接口获取
|
||||
|
||||
**URL参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | ---- | --------- | ----------- | ----------------- |
|
||||
| pn | num | 页码 | 必要 | 默认为 1 |
|
||||
| ps | num | 每页数量 | 必要 | 默认为 10, 留空为 100 |
|
||||
|
||||
**JSON回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | ---- |
|
||||
| code | num | 返回值 | 0:成功 |
|
||||
| message | str | 错误信息 | |
|
||||
| ttl | num | 1 | |
|
||||
| data | obj | 信息本体 | |
|
||||
|
||||
`data` 对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| -------- | ---- | ------------ | ---- |
|
||||
| class | null | 作用尚不明确 | |
|
||||
| arc_audits | array | 稿件列表 | |
|
||||
| page | obj | 分页信息 | |
|
||||
| play_type | num | 1 | |
|
||||
|
||||
`arc_audits` 数组中的对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| - | - | - | - |
|
||||
| Archive | obj | 稿件信息 | |
|
||||
| Videos | null | | |
|
||||
| stat | obj | 稿件统计信息 | |
|
||||
| state_panel | num | 0 | |
|
||||
| parent_tname | str | 空 | |
|
||||
| typename | str | 空 | |
|
||||
| open_appeal | num | 0 | |
|
||||
| activity | null | | |
|
||||
| season_add_state | num | 是否可加入合集 | 0: 可以<br />1: 不可以 |
|
||||
|
||||
`Archive` 对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| - | - | - | - |
|
||||
| aid | num | av 号 | |
|
||||
| bvid | str | bv 号 | |
|
||||
| mid | num | 0 | |
|
||||
| tid | num | 0 | |
|
||||
| tp_info | null | | |
|
||||
| title | str | 稿件标题 | |
|
||||
| author | str | 空 | |
|
||||
| cover | str | 封面图 | 位于 bfs 需要自行拼接 URL |
|
||||
| reject_reason | str | 空 | |
|
||||
| reject_reason_url | str | 空 | |
|
||||
| tag | str | 空 | |
|
||||
| duration | num | 0 | |
|
||||
| copyright | num | 0 | |
|
||||
| no_reprint | num | 0 | |
|
||||
| ugcpay | num | 0 | |
|
||||
| order_id | num | 0 | |
|
||||
| order_name | str | 空 | |
|
||||
| adorder_id | num | 0 | |
|
||||
| adorder_name | str | 空 | |
|
||||
| adorder_no | str | 空 | |
|
||||
| online_time | num | 0 | |
|
||||
| new_adorder_info | null | | |
|
||||
| desc | str | 稿件简介 | |
|
||||
| mission_id | num | 0 | |
|
||||
| mission_name | str | 空 | |
|
||||
| attribute | num | 0 | |
|
||||
| state | num | 0 | |
|
||||
| state_desc | str | 空 | |
|
||||
| state_panel | num | 0 | |
|
||||
| source | str | 空 | |
|
||||
| desc_format_id | num | 0 | |
|
||||
| attrs | null | | |
|
||||
| porder | null | | |
|
||||
| dynamic | str | 空 | |
|
||||
| poi_object | null | | |
|
||||
| dtime | num | 0 | |
|
||||
| ptime | num | 0 | |
|
||||
| ctime | num | 0 | |
|
||||
| ugcpay_info | null | | |
|
||||
| staffs | null | | |
|
||||
| vote | null | | |
|
||||
| activity | null | | |
|
||||
| interactive | num | 0 | |
|
||||
| hl | null | | |
|
||||
| no_background | num | 0 | |
|
||||
| dynamic_video | num | 0 | |
|
||||
| no_public | num | 0 | |
|
||||
| is_360 | num | 0 | |
|
||||
| is_dolby | num | 0 | |
|
||||
| lossless_music | num | 0 | |
|
||||
| bs_editor | num | 0 | |
|
||||
| up_from | num | 0 | |
|
||||
| desc_v2 | null | | |
|
||||
| dynamic_v2 | null | | |
|
||||
| topic_id | num | 0 | |
|
||||
| topic_name | str | 空 | |
|
||||
| topic_stat | num | 0 | |
|
||||
| premiere | num | 0 | |
|
||||
| is_ugcpay_v2 | num | 0 | |
|
||||
| recreate | null | | |
|
||||
| charging_pay | num | 0 | |
|
||||
| neutral_mark | str | 空 | |
|
||||
| preview | null | | |
|
||||
| upower_level | null | | |
|
||||
| cover43 | str | 空 | |
|
||||
| had_passed | bool | false | |
|
||||
| is_staff | num | 0 | |
|
||||
| is_pugv | num | 0 | |
|
||||
| upower_mode | num | 0 | |
|
||||
| upower_unit_price | num | 0 | |
|
||||
|
||||
`stat` 对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| - | - | - | - |
|
||||
| aid | num | av 号 | |
|
||||
| view | num | 播放量 | |
|
||||
| danmaku | num | 弹幕数 | |
|
||||
| reply | num | 评论数 | |
|
||||
| favorite | num | 收藏数 | |
|
||||
| coin | num | 硬币数 | |
|
||||
| share | num | 分享数 | |
|
||||
| now_rank | num | 0 | 当前排名 |
|
||||
| his_rank | num | 0 | 历史最高排名 |
|
||||
| like | num | 点赞数 | |
|
||||
| dislike | num | 点踩数 | 恒为 0 |
|
||||
| vt | num | 0 | |
|
||||
| vv | num | 播放量 | |
|
||||
|
||||
**示例:**
|
||||
|
||||
```shell
|
||||
curl -G "https://member.bilibili.com/x2/creative/web/archives/sp" \
|
||||
--data-urlencode "pn=1" \
|
||||
--data-urlencode "ps=3" \
|
||||
-b "SESSDATA=xxx"
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1,
|
||||
"data": {
|
||||
"class": null,
|
||||
"arc_audits": [
|
||||
{
|
||||
"Archive": {
|
||||
"aid": 1906473802,
|
||||
"bvid": "BV1MU411S7iJ",
|
||||
"mid": 0,
|
||||
"tid": 0,
|
||||
"tp_info": null,
|
||||
"title": "Linux小寄巧: 原地卸载内核然后尝试救活!",
|
||||
"author": "",
|
||||
"cover": "/bfs/archive/b76c0b574862f5a8e8eb133f5f33fcbcd602401a.jpg",
|
||||
"reject_reason": "",
|
||||
"reject_reason_url": "",
|
||||
"tag": "",
|
||||
"duration": 0,
|
||||
"copyright": 0,
|
||||
"no_reprint": 0,
|
||||
"ugcpay": 0,
|
||||
"order_id": 0,
|
||||
"order_name": "",
|
||||
"adorder_id": 0,
|
||||
"adorder_name": "",
|
||||
"adorder_no": "",
|
||||
"online_time": 0,
|
||||
"new_adorder_info": null,
|
||||
"desc": "",
|
||||
"mission_id": 0,
|
||||
"mission_name": "",
|
||||
"attribute": 0,
|
||||
"state": 0,
|
||||
"state_desc": "",
|
||||
"state_panel": 0,
|
||||
"source": "",
|
||||
"desc_format_id": 0,
|
||||
"attrs": null,
|
||||
"porder": null,
|
||||
"dynamic": "",
|
||||
"poi_object": null,
|
||||
"dtime": 0,
|
||||
"ptime": 0,
|
||||
"ctime": 0,
|
||||
"ugcpay_info": null,
|
||||
"staffs": null,
|
||||
"vote": null,
|
||||
"activity": null,
|
||||
"interactive": 0,
|
||||
"hl": null,
|
||||
"no_background": 0,
|
||||
"dynamic_video": 0,
|
||||
"no_public": 0,
|
||||
"is_360": 0,
|
||||
"is_dolby": 0,
|
||||
"lossless_music": 0,
|
||||
"bs_editor": 0,
|
||||
"up_from": 0,
|
||||
"desc_v2": null,
|
||||
"dynamic_v2": null,
|
||||
"topic_id": 0,
|
||||
"topic_name": "",
|
||||
"topic_stat": 0,
|
||||
"premiere": 0,
|
||||
"is_ugcpay_v2": 0,
|
||||
"recreate": null,
|
||||
"political_media": 0,
|
||||
"political_editable": 0,
|
||||
"charging_pay": 0,
|
||||
"neutral_mark": "",
|
||||
"preview": null,
|
||||
"upower_level": null,
|
||||
"cover43": "",
|
||||
"had_passed": false,
|
||||
"is_staff": 0,
|
||||
"is_pugv": 0,
|
||||
"upower_mode": 0,
|
||||
"upower_unit_price": 0
|
||||
},
|
||||
"Videos": null,
|
||||
"stat": {
|
||||
"aid": 1906473802,
|
||||
"view": 4036,
|
||||
"danmaku": 8,
|
||||
"reply": 56,
|
||||
"favorite": 53,
|
||||
"coin": 12,
|
||||
"share": 8,
|
||||
"now_rank": 0,
|
||||
"his_rank": 0,
|
||||
"like": 99,
|
||||
"dislike": 0,
|
||||
"vt": 0,
|
||||
"vv": 4036
|
||||
},
|
||||
"state_panel": 0,
|
||||
"parent_tname": "",
|
||||
"typename": "",
|
||||
"open_appeal": 0,
|
||||
"activity": null,
|
||||
"season_add_state": 0
|
||||
},
|
||||
{
|
||||
"Archive": {
|
||||
"aid": 1956170305,
|
||||
"bvid": "BV1Ay411i7Ph",
|
||||
"mid": 0,
|
||||
"tid": 0,
|
||||
"tp_info": null,
|
||||
"title": "十多年前的电脑运行Debian12的启动过程",
|
||||
"author": "",
|
||||
"cover": "/bfs/archive/0bff6624fdfcbf3326fba1837fef093d455c846a.jpg",
|
||||
"reject_reason": "",
|
||||
"reject_reason_url": "",
|
||||
"tag": "",
|
||||
"duration": 0,
|
||||
"copyright": 0,
|
||||
"no_reprint": 0,
|
||||
"ugcpay": 0,
|
||||
"order_id": 0,
|
||||
"order_name": "",
|
||||
"adorder_id": 0,
|
||||
"adorder_name": "",
|
||||
"adorder_no": "",
|
||||
"online_time": 0,
|
||||
"new_adorder_info": null,
|
||||
"desc": "",
|
||||
"mission_id": 0,
|
||||
"mission_name": "",
|
||||
"attribute": 0,
|
||||
"state": 0,
|
||||
"state_desc": "",
|
||||
"state_panel": 0,
|
||||
"source": "",
|
||||
"desc_format_id": 0,
|
||||
"attrs": null,
|
||||
"porder": null,
|
||||
"dynamic": "",
|
||||
"poi_object": null,
|
||||
"dtime": 0,
|
||||
"ptime": 0,
|
||||
"ctime": 0,
|
||||
"ugcpay_info": null,
|
||||
"staffs": null,
|
||||
"vote": null,
|
||||
"activity": null,
|
||||
"interactive": 0,
|
||||
"hl": null,
|
||||
"no_background": 0,
|
||||
"dynamic_video": 0,
|
||||
"no_public": 0,
|
||||
"is_360": 0,
|
||||
"is_dolby": 0,
|
||||
"lossless_music": 0,
|
||||
"bs_editor": 0,
|
||||
"up_from": 0,
|
||||
"desc_v2": null,
|
||||
"dynamic_v2": null,
|
||||
"topic_id": 0,
|
||||
"topic_name": "",
|
||||
"topic_stat": 0,
|
||||
"premiere": 0,
|
||||
"is_ugcpay_v2": 0,
|
||||
"recreate": null,
|
||||
"political_media": 0,
|
||||
"political_editable": 0,
|
||||
"charging_pay": 0,
|
||||
"neutral_mark": "",
|
||||
"preview": null,
|
||||
"upower_level": null,
|
||||
"cover43": "",
|
||||
"had_passed": false,
|
||||
"is_staff": 0,
|
||||
"is_pugv": 0,
|
||||
"upower_mode": 0,
|
||||
"upower_unit_price": 0
|
||||
},
|
||||
"Videos": null,
|
||||
"stat": {
|
||||
"aid": 1956170305,
|
||||
"view": 2747,
|
||||
"danmaku": 13,
|
||||
"reply": 37,
|
||||
"favorite": 11,
|
||||
"coin": 14,
|
||||
"share": 4,
|
||||
"now_rank": 0,
|
||||
"his_rank": 0,
|
||||
"like": 42,
|
||||
"dislike": 0,
|
||||
"vt": 0,
|
||||
"vv": 2747
|
||||
},
|
||||
"state_panel": 0,
|
||||
"parent_tname": "",
|
||||
"typename": "",
|
||||
"open_appeal": 0,
|
||||
"activity": null,
|
||||
"season_add_state": 0
|
||||
},
|
||||
{
|
||||
"Archive": {
|
||||
"aid": 910326709,
|
||||
"bvid": "BV1GM4y1a7Vn",
|
||||
"mid": 0,
|
||||
"tid": 0,
|
||||
"tp_info": null,
|
||||
"title": "Minecraft终末之诗,但是谷歌翻译20遍",
|
||||
"author": "",
|
||||
"cover": "/bfs/archive/09b7f2542f3e66973ec7de1a3c806cdd45b95426.jpg",
|
||||
"reject_reason": "",
|
||||
"reject_reason_url": "",
|
||||
"tag": "",
|
||||
"duration": 0,
|
||||
"copyright": 0,
|
||||
"no_reprint": 0,
|
||||
"ugcpay": 0,
|
||||
"order_id": 0,
|
||||
"order_name": "",
|
||||
"adorder_id": 0,
|
||||
"adorder_name": "",
|
||||
"adorder_no": "",
|
||||
"online_time": 0,
|
||||
"new_adorder_info": null,
|
||||
"desc": "原内容来源:Minecraft Wiki\n使用的工具:Google Translate\n视频仅供娱乐,请勿当真",
|
||||
"mission_id": 0,
|
||||
"mission_name": "",
|
||||
"attribute": 0,
|
||||
"state": 0,
|
||||
"state_desc": "",
|
||||
"state_panel": 0,
|
||||
"source": "",
|
||||
"desc_format_id": 0,
|
||||
"attrs": null,
|
||||
"porder": null,
|
||||
"dynamic": "",
|
||||
"poi_object": null,
|
||||
"dtime": 0,
|
||||
"ptime": 0,
|
||||
"ctime": 0,
|
||||
"ugcpay_info": null,
|
||||
"staffs": null,
|
||||
"vote": null,
|
||||
"activity": null,
|
||||
"interactive": 0,
|
||||
"hl": null,
|
||||
"no_background": 0,
|
||||
"dynamic_video": 0,
|
||||
"no_public": 0,
|
||||
"is_360": 0,
|
||||
"is_dolby": 0,
|
||||
"lossless_music": 0,
|
||||
"bs_editor": 0,
|
||||
"up_from": 0,
|
||||
"desc_v2": null,
|
||||
"dynamic_v2": null,
|
||||
"topic_id": 0,
|
||||
"topic_name": "",
|
||||
"topic_stat": 0,
|
||||
"premiere": 0,
|
||||
"is_ugcpay_v2": 0,
|
||||
"recreate": null,
|
||||
"political_media": 0,
|
||||
"political_editable": 0,
|
||||
"charging_pay": 0,
|
||||
"neutral_mark": "",
|
||||
"preview": null,
|
||||
"upower_level": null,
|
||||
"cover43": "",
|
||||
"had_passed": false,
|
||||
"is_staff": 0,
|
||||
"is_pugv": 0,
|
||||
"upower_mode": 0,
|
||||
"upower_unit_price": 0
|
||||
},
|
||||
"Videos": null,
|
||||
"stat": {
|
||||
"aid": 910326709,
|
||||
"view": 533,
|
||||
"danmaku": 6,
|
||||
"reply": 4,
|
||||
"favorite": 15,
|
||||
"coin": 13,
|
||||
"share": 4,
|
||||
"now_rank": 0,
|
||||
"his_rank": 0,
|
||||
"like": 29,
|
||||
"dislike": 0,
|
||||
"vt": 0,
|
||||
"vv": 533
|
||||
},
|
||||
"state_panel": 0,
|
||||
"parent_tname": "",
|
||||
"typename": "",
|
||||
"open_appeal": 0,
|
||||
"activity": null,
|
||||
"season_add_state": 0
|
||||
}
|
||||
],
|
||||
"page": {
|
||||
"pn": 1,
|
||||
"ps": 3,
|
||||
"count": 32
|
||||
},
|
||||
"play_type": 1
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 视频基础信息
|
||||
|
||||
> https://member.bilibili.com/x/web/archive/videos
|
||||
|
||||
*请求方式: GET*
|
||||
|
||||
认证方式: Cookie (SESSDATA)
|
||||
|
||||
**URL参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ---- | ---- | ---- | ---- | ---- |
|
||||
| aid | num | av 号 | 必要 | |
|
||||
|
||||
**JSON回复:**
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| --- | --- | --- | --- |
|
||||
| code | num | 返回值 | 0:成功 |
|
||||
| message | str | 错误信息 | |
|
||||
| ttl | num | 1 | |
|
||||
| data | obj | 信息本体 | |
|
||||
|
||||
`data` 对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| --- | --- | --- | --- |
|
||||
| archive | obj | 稿件信息 | |
|
||||
| videos | array | 视频信息 | |
|
||||
|
||||
`archive` 对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| --- | --- | --- | --- |
|
||||
| aid | num | av 号 | |
|
||||
| bvid | str | bvid | |
|
||||
| title | str | 标题 | |
|
||||
|
||||
`videos` 数组:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| --- | --- | -- | --- |
|
||||
| cid | num | 分P cid | |
|
||||
| index | num | 分P 序号 | |
|
||||
| title | str | 分P 标题 | |
|
||||
| duration | num | 0 | |
|
||||
|
||||
**示例:**
|
||||
|
||||
```shell
|
||||
curl -G "https://member.bilibili.com/x/web/archive/videos" \
|
||||
--data-urlencode "aid=1906473802" \
|
||||
-b "SESSDATA=xxx"
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1,
|
||||
"data": {
|
||||
"archive": {
|
||||
"aid": 1906473802,
|
||||
"bvid": "BV1MU411S7iJ",
|
||||
"title": "Linux小寄巧: 原地卸载内核然后尝试救活!"
|
||||
},
|
||||
"videos": [
|
||||
{
|
||||
"cid": 1625992822,
|
||||
"index": 1,
|
||||
"title": "Linux小寄巧: 原地卸载内核然后尝试救活!",
|
||||
"duration": 0
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
115
docs/customerservice/msg.md
Normal file
115
docs/customerservice/msg.md
Normal file
@ -0,0 +1,115 @@
|
||||
# 客服消息
|
||||
|
||||
## 心跳
|
||||
|
||||
> https://customerservice.bilibili.com/x/custom/session_svr/v1/heart_beat
|
||||
|
||||
*请求方式: GET*
|
||||
|
||||
认证方式: Cookie (SESSDATA)
|
||||
|
||||
**URL参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | ---- | -------- | ------ | ---- |
|
||||
| shop_id | num | 0 | 非必要 | |
|
||||
| shop_father_id | num | 0 | 非必要 | |
|
||||
| build | num | 客户端版本 | 非必要 | web: 0 |
|
||||
| mobi_app | str | 客户端类型 | 非必要 | 如 `web` |
|
||||
|
||||
**JSON回复:**
|
||||
|
||||
|字段|类型|内容|备注|
|
||||
|-|-|-|-|
|
||||
|code|num|返回值|0: 成功|
|
||||
|msg|str|`ok`|失败时不存在|
|
||||
|message|str|错误信息|成功时为 `ok`|
|
||||
|ttl|num|1||
|
||||
|
||||
**示例:**
|
||||
|
||||
```shell
|
||||
curl -G "https://customerservice.bilibili.com/x/custom/session_svr/v1/heart_beat" \
|
||||
-b "SESSDATA=xxx"
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"msg": "ok",
|
||||
"message": "ok",
|
||||
"ttl": 1
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 上传文件
|
||||
|
||||
> https://customerservice.bilibili.com/x/custom/msg_svr/v1/upload
|
||||
|
||||
*请求方式: POST*
|
||||
|
||||
认证方式: Cookie (SESSDATA)
|
||||
|
||||
注: 上传的文件 15 分钟内有效, 过期后下载会返回 HTTP 403
|
||||
|
||||
**正文参数 (multipart/form-data):**
|
||||
|
||||
|参数名|类型|内容|必要性|备注|
|
||||
|-|-|-|-|-|
|
||||
|file|file|文件内容|必要||
|
||||
|filename|str|文件名|必要||
|
||||
|mid|num|用户 mid|必要||
|
||||
|csrf|str|CSRF Token (位于 Cookie 中 bili_jct)|必要||
|
||||
|
||||
**JSON回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
|字段|类型|内容|备注|
|
||||
|-|-|-|-|
|
||||
|code|num|返回值|0: 成功<br />1000011: 仅支持上传300M内的文件<br />1200201: 获取用户信息失败|
|
||||
|message|str|错误信息|成功时为 `ok`|
|
||||
|ttl|num|1||
|
||||
|data|obj|上传结果||
|
||||
|
||||
`data` 对象:
|
||||
|
||||
|字段|类型|内容|备注|
|
||||
|-|-|-|-|
|
||||
|key|str|文件名||
|
||||
|url|str|文件 URL|注意转义|
|
||||
|
||||
**示例:**
|
||||
|
||||
上传文件 `./headers/xx-out.xcf`, 文件名 `ihavenoname`
|
||||
|
||||
```shell
|
||||
curl -X POST "https://customerservice.bilibili.com/x/custom/msg_svr/v1/upload" \
|
||||
-F 'file=@./headers/xx-out.xcf' \
|
||||
-F 'filename=ihavenoname' \
|
||||
-F 'mid=1070915568' \
|
||||
-F 'csrf=xxx' \
|
||||
-b 'SESSDATA=xxx; bili_jct=xxx'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "ok",
|
||||
"ttl": 1,
|
||||
"data": {
|
||||
"key": "1a0c88d240852155a111e4cc6893be39.xcf",
|
||||
"url": "https://jssz-boss.hdslb.com/customer-video-upload/1a0c88d240852155a111e4cc6893be39.xcf?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=f9TxwsagojnE1DWM%2F20240803%2Fjssz%2Fs3%2Faws4_request&X-Amz-Date=20240803T115447Z&X-Amz-Expires=900&X-Amz-SignedHeaders=host&X-Amz-Signature=cef962c8e503c6ff564fd485bdef1079df1b4a7e38f4fbd9c21a5667207f406e"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
@ -2,7 +2,7 @@
|
||||
|
||||
## 发送视频弹幕
|
||||
|
||||
> https://api.bilibili.com/x/v2/dm/post
|
||||
> https://api.bilibili.com/x/v2/dm/post
|
||||
|
||||
*请求方式:POST*
|
||||
|
||||
@ -12,6 +12,15 @@
|
||||
|
||||
`mode=6`的逆向弹幕与`mode=8`的代码弹幕不可发送
|
||||
|
||||
**URL参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| web_location | str | 普通视频: 1315873 | 不必要 | |
|
||||
| csrf | str | CSRF Token (即 Cookie 中 bili_jct) | Cookie 方式必要 | |
|
||||
| w_rid | str | Wbi 签名 | 必要 | 参见 [Wbi 签名](../misc/sign/wbi.md) |
|
||||
| wts | str | UNIX 秒级时间戳 | 必要 | 参见 [Wbi 签名](../misc/sign/wbi.md) |
|
||||
|
||||
**正文参数( application/x-www-form-urlencoded ):**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
@ -320,6 +329,84 @@ curl 'https://api.bilibili.com/x/v2/dm/command/post' \
|
||||
|
||||
</details>
|
||||
|
||||
## 发送打分弹幕
|
||||
|
||||
> https://api.bilibili.com/x/v2/dm/command/grade/post
|
||||
|
||||
*请求方式: POST*
|
||||
|
||||
认证方式: Cookie (SESSDATA)
|
||||
|
||||
<!--{
|
||||
"gh": [220]
|
||||
}-->
|
||||
|
||||
**正文参数 (application/x-www-form-urlencoded):**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | ---- | ---- | ------ | ---- |
|
||||
| aid | num | 稿件 aid | 必要 | |
|
||||
| cid | num | 分 P cid | 必要 | |
|
||||
| progress | num | 播放进度 | 必要 | 单位为毫秒 |
|
||||
| grade_id | num | 打分 id | 必要 | |
|
||||
| grade_score | num | 分数 | 偶数, 最大 10 |
|
||||
| polaris_app_id | num | 100 | 不必要 |
|
||||
| polaris_platfrom | num | 5 | 不必要 | |
|
||||
| spmid | str | 333.788.0.0 | 不必要 | |
|
||||
| from_spmid | str | 来源 spmid | 不必要 | |
|
||||
| csrf | str | CSRF Token (即 Cookie 中的 bili_jct) | 必要 | |
|
||||
|
||||
**JSON回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | ---- | ---- |
|
||||
| code | num | 返回值 | 0: 成功 |
|
||||
| message | str | 错误信息 | 默认为 0 |
|
||||
| ttl | num | 1 | |
|
||||
| data | obj | 信息本体 | |
|
||||
|
||||
`data`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- |
|
||||
| dmid | num | 弹幕dmid | |
|
||||
| dmid_str | str | 弹幕dmid | 字串形式 |
|
||||
| visible | bool | 是否可见 | |
|
||||
| action | str | 动作 | `"grade:"` + (请求的分数 / 2) |
|
||||
|
||||
**示例:**
|
||||
|
||||
```shell
|
||||
curl -X POST 'https://api.bilibili.com/x/v2/dm/command/grade/post' \
|
||||
--data-urlencode 'aid=112861976201494' \
|
||||
--data-urlencode 'cid=500001629877726' \
|
||||
--data-urlencode 'progress=32000' \
|
||||
--data-urlencode 'grade_id=3651137' \
|
||||
--data-urlencode 'grade_score=10' \
|
||||
--data-urlencode 'csrf=xxx' \
|
||||
-b 'SESSDATA=xxx'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1,
|
||||
"data": {
|
||||
"dmid": 1651556419721443584,
|
||||
"dmidStr": "1651556419721443584",
|
||||
"visible": true,
|
||||
"action": "grade:5"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 撤回弹幕
|
||||
|
||||
|
11370
docs/dynamic/all.md
11370
docs/dynamic/all.md
File diff suppressed because it is too large
Load Diff
@ -1,31 +1,33 @@
|
||||
# 动态类型
|
||||
# 动态类型对照
|
||||
|
||||
| 类型 | 说明 | 示例 |
|
||||
|-------------------------------|----------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| DYNAMIC_TYPE_NONE | 无效动态 | [716510857084796964](https://t.bilibili.com/716510857084796964) |
|
||||
| DYNAMIC_TYPE_FORWARD | 动态转发 | |
|
||||
| DYNAMIC_TYPE_AV | 投稿视频 | |
|
||||
| DYNAMIC_TYPE_PGC | 剧集(番剧、电影、纪录片) | |
|
||||
| DYNAMIC_TYPE_COURSES | | |
|
||||
| DYNAMIC_TYPE_WORD | 纯文字动态 | [718377531474968613](https://t.bilibili.com/718377531474968613) |
|
||||
| DYNAMIC_TYPE_DRAW | 带图动态 | [718384798557536290](https://t.bilibili.com/718384798557536290) |
|
||||
| DYNAMIC_TYPE_ARTICLE | 投稿专栏 | [718372214316990512](https://t.bilibili.com/718372214316990512) |
|
||||
| DYNAMIC_TYPE_MUSIC | 音乐 | |
|
||||
| DYNAMIC_TYPE_COMMON_SQUARE | 装扮<br/>剧集点评<br/>普通分享 | [551309621391003098](https://t.bilibili.com/551309621391003098)<br/>[716503778995470375](https://t.bilibili.com/716503778995470375)<br/>[716481612656672789](https://t.bilibili.com/716481612656672789) |
|
||||
| DYNAMIC_TYPE_COMMON_VERTICAL | | |
|
||||
| DYNAMIC_TYPE_LIVE | 直播间分享 | [216042859353895488](https://t.bilibili.com/216042859353895488) |
|
||||
| DYNAMIC_TYPE_MEDIALIST | 收藏夹 | [534428265320147158](https://t.bilibili.com/534428265320147158) |
|
||||
| DYNAMIC_TYPE_COURSES_SEASON | 课程 | [717906712866062340](https://t.bilibili.com/717906712866062340) |
|
||||
| DYNAMIC_TYPE_COURSES_BATCH | | |
|
||||
| DYNAMIC_TYPE_AD | | |
|
||||
| DYNAMIC_TYPE_APPLET | | |
|
||||
| DYNAMIC_TYPE_SUBSCRIPTION | | |
|
||||
| DYNAMIC_TYPE_LIVE_RCMD | 直播开播 | [718371505648435205](https://t.bilibili.com/718371505648435205) |
|
||||
| DYNAMIC_TYPE_BANNER | | |
|
||||
| DYNAMIC_TYPE_UGC_SEASON | 合集更新 | [718390979031203873](https://t.bilibili.com/718390979031203873) |
|
||||
| DYNAMIC_TYPE_SUBSCRIPTION_NEW | | |
|
||||
## 动态类型
|
||||
|
||||
# 富文本节点类型
|
||||
| 类型 | 说明 | comment_id_str | comment_type |rid_str| 示例 |
|
||||
| --- | --- | --- | --- | --- | --- |
|
||||
| DYNAMIC_TYPE_NONE | 无效动态 |||| [716510857084796964](https://t.bilibili.com/716510857084796964) |
|
||||
| DYNAMIC_TYPE_FORWARD | 动态转发 |动态本身id|17|||
|
||||
| DYNAMIC_TYPE_AV | 投稿视频 |视频AV号| 1 |视频AV号||
|
||||
| DYNAMIC_TYPE_PGC | 剧集(番剧、电影、纪录片) |剧集分集AV号| 1 |剧集分集EP号||
|
||||
| DYNAMIC_TYPE_COURSES | ||| ||
|
||||
| DYNAMIC_TYPE_WORD | 纯文字动态 |动态本身id|17|| [718377531474968613](https://t.bilibili.com/718377531474968613) |
|
||||
| DYNAMIC_TYPE_DRAW | 带图动态 |相簿id|11|相簿id| [718384798557536290](https://t.bilibili.com/718384798557536290) |
|
||||
| DYNAMIC_TYPE_ARTICLE | 投稿专栏 |专栏cv号|12|专栏cv号| [718372214316990512](https://t.bilibili.com/718372214316990512) |
|
||||
| DYNAMIC_TYPE_MUSIC | 音乐 ||| ||
|
||||
| DYNAMIC_TYPE_COMMON_SQUARE | 装扮<br/>剧集点评<br/>普通分享 ||17|| [551309621391003098](https://t.bilibili.com/551309621391003098)<br/>[716503778995470375](https://t.bilibili.com/716503778995470375)<br/>[716481612656672789](https://t.bilibili.com/716481612656672789) |
|
||||
| DYNAMIC_TYPE_COMMON_VERTICAL | ||| ||
|
||||
| DYNAMIC_TYPE_LIVE | 直播间分享 |动态本身id||直播间id| [216042859353895488](https://t.bilibili.com/216042859353895488) |
|
||||
| DYNAMIC_TYPE_MEDIALIST | 收藏夹 |收藏夹ml号|19|收藏夹ml号| [534428265320147158](https://t.bilibili.com/534428265320147158) |
|
||||
| DYNAMIC_TYPE_COURSES_SEASON | 课程 |||| [717906712866062340](https://t.bilibili.com/717906712866062340) |
|
||||
| DYNAMIC_TYPE_COURSES_BATCH | |||| |
|
||||
| DYNAMIC_TYPE_AD | ||| ||
|
||||
| DYNAMIC_TYPE_APPLET | ||| ||
|
||||
| DYNAMIC_TYPE_SUBSCRIPTION | ||| ||
|
||||
| DYNAMIC_TYPE_LIVE_RCMD | 直播开播 |动态本身id|17|live_id| [718371505648435205](https://t.bilibili.com/718371505648435205) |
|
||||
| DYNAMIC_TYPE_BANNER | ||| ||
|
||||
| DYNAMIC_TYPE_UGC_SEASON | 合集更新 |视频AV号|1|视频AV号| [718390979031203873](https://t.bilibili.com/718390979031203873) |
|
||||
| DYNAMIC_TYPE_SUBSCRIPTION_NEW | ||| ||
|
||||
|
||||
## 富文本节点类型
|
||||
|
||||
| 类型 | 说明 | 示例 |
|
||||
|---------------------------------|------|-----------------------------------------------------------------|
|
||||
@ -49,7 +51,7 @@
|
||||
| RICH_TEXT_NODE_TYPE_OGV_EP | | |
|
||||
| RICH_TEXT_NODE_TYPE_SEARCH_WORD | | |
|
||||
|
||||
# 作者类型
|
||||
## 作者类型
|
||||
|
||||
| 类型 | 说明 | 示例 |
|
||||
|------------------------|------|-----|
|
||||
@ -65,7 +67,7 @@
|
||||
| EMOJI_TYPE_NEW | | |
|
||||
| EMOJI_TYPE_VIP | | |
|
||||
|
||||
# 相关内容卡片类型
|
||||
## 相关内容卡片类型
|
||||
|
||||
| 类型 | 说明 | 示例 |
|
||||
|-------------------------|------|--------------------------------------------------------------------------|
|
||||
@ -112,7 +114,7 @@
|
||||
| HIGHLIGHT_TEXT_STYLE_TYPE_NONE | | |
|
||||
| HIGHLIGHT_TEXT_STYLE_TYPE_ACTIVE | | |
|
||||
|
||||
# 动态主体类型
|
||||
## 动态主体类型
|
||||
|
||||
| 类型 | 说明 | 示例 |
|
||||
|-----------------------------|-------|-----------------------------------------------------------------|
|
||||
|
202
docs/dynamic/topic.md
Normal file
202
docs/dynamic/topic.md
Normal file
@ -0,0 +1,202 @@
|
||||
# 话题搜索
|
||||
|
||||
## 搜索发布话题
|
||||
|
||||
> https://app.bilibili.com/x/topic/pub/search
|
||||
> https://api.bilibili.com/x/topic/pub/search
|
||||
|
||||
*请求方法: GET*
|
||||
|
||||
注: 该接口可能存在传入页面大小与返回数量不匹配的问题, 可能与访问权限有关
|
||||
|
||||
<!--{
|
||||
"from": {
|
||||
"url": "https://t.bilibili.com/"
|
||||
"selector": ".bili-topic-search__input__inner"
|
||||
}
|
||||
}-->
|
||||
|
||||
**URL参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| keywords | str | 关键词 | 不必要 | |
|
||||
| content | str | 空 | 不必要 | |
|
||||
| upload_id | str | 上传 id? | 不必要 | 页面刷新第一次请求时为空, 后均非空<br />似乎为固定值, 格式: `${your_mid}_${login_or_last_refresh_or_cookie_ts}_${dig4}`, 如 `616368979_1722652786_2534` |
|
||||
| page_size | int | 页大小 | 不必要 | 默认为 20 |
|
||||
| page_num | int | 1 | 不必要 | 不用于翻页 |
|
||||
| offset | int | 偏移 | 不必要 | 可从响应 `data.page_info.offset` 中获取 |
|
||||
| web_location | str | 333.1365 | 不必要 | |
|
||||
|
||||
**JSON回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| --- | --- | --- | --- |
|
||||
| code | num | 返回值 | 0: 成功<br />-400: 请求错误 |
|
||||
| message | str | 错误信息 | 默认为 0 |
|
||||
| ttl | num | 1 | |
|
||||
| data | obj | 信息本体 | |
|
||||
|
||||
`data` 对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| --- | --- | --- | --- |
|
||||
| new_topic | obj | 新建话题? | |
|
||||
| has_create_jurisdiction | bool | false | 是否有创建权限? |
|
||||
| topic_items | array | 话题列表 | |
|
||||
| request_id | str | 请求 id | |
|
||||
| page_info | obj | 页信息 | |
|
||||
|
||||
`data` 中的 `new_topic` 对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| --- | --- | --- | --- |
|
||||
| name | str | 请求参数中的 `keywords` | |
|
||||
|
||||
`data` 中的 `topic_items` 数组中的对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| --- | --- | --- | --- |
|
||||
| id | num | 话题 id | |
|
||||
| name | str | 话题名 | |
|
||||
| view | num | 观看数 | |
|
||||
| discuss | num | 讨论数 | |
|
||||
| stat_desc | str | 状态描述 | |
|
||||
| description | str | 话题描述 | |
|
||||
| show_interact_data | bool | false | 是否显示互动数据? |
|
||||
|
||||
`data` 中的 `page_info` 对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| --- | --- | --- | --- |
|
||||
| offset | num | 下次请求可用的偏移 | 请求参数中的 `offset` + `page_size` |
|
||||
| has_more | bool | 是否有更多数据 | 当没有更多时可能不存在该字段 |
|
||||
|
||||
**示例:**
|
||||
|
||||
注: 该示例就是解释开头所注的问题的一个示例
|
||||
|
||||
```shell
|
||||
curl -G 'https://app.bilibili.com/x/topic/pub/search' \
|
||||
--url-query 'keywords=2233'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1,
|
||||
"data": {
|
||||
"new_topic": {
|
||||
"name": "2233"
|
||||
},
|
||||
"has_create_jurisdiction": false,
|
||||
"topic_items": [
|
||||
{
|
||||
"id": 1101122,
|
||||
"name": "2233异世集",
|
||||
"view": 2502,
|
||||
"discuss": 11,
|
||||
"stat_desc": "2502浏览·11讨论",
|
||||
"description": "分享数字周边",
|
||||
"show_interact_data": false
|
||||
},
|
||||
{
|
||||
"id": 1050671,
|
||||
"name": "2233生日倒计时",
|
||||
"view": 21149,
|
||||
"discuss": 130,
|
||||
"stat_desc": "2.1万浏览·130讨论",
|
||||
"description": "2233生日倒计时",
|
||||
"show_interact_data": false
|
||||
},
|
||||
{
|
||||
"id": 1057129,
|
||||
"name": "2233手办可可爱爱",
|
||||
"view": 836,
|
||||
"discuss": 14,
|
||||
"stat_desc": "836浏览·14讨论",
|
||||
"description": "喜欢2233,",
|
||||
"show_interact_data": false
|
||||
}
|
||||
],
|
||||
"request_id": "1$0$1723796266$7f515d4e26b7bd5007fb8ca4b066bf0b",
|
||||
"page_info": {
|
||||
"offset": 4,
|
||||
"has_more": true
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 推荐搜索话题?
|
||||
|
||||
> https://app.bilibili.com/x/topic/pub/rcmd/search
|
||||
> https://api.bilibili.com/x/topic/pub/rcmd/search
|
||||
|
||||
*请求方法: GET*
|
||||
|
||||
注: 该接口啥也不返回, 但是网页端会请求该接口
|
||||
|
||||
<!--{
|
||||
"from": {
|
||||
"url": "https://t.bilibili.com/"
|
||||
},
|
||||
"gh": [1083]
|
||||
}-->
|
||||
|
||||
**URL参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| keywords | str | 空 | 不必要 | |
|
||||
| upload_id | str | 上传 id? | 不必要 | 同上 |
|
||||
| web_location | str | 333.1365 | 不必要 | 有时请求不带该参数 |
|
||||
|
||||
**JSON回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| --- | --- | --- | --- |
|
||||
| code | num | 返回值 | 0: 成功 |
|
||||
| message | str | 错误信息 | 默认为 0 |
|
||||
| ttl | num | 1 | |
|
||||
| data | str | 数据本体 | |
|
||||
|
||||
`data` 对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| --- | --- | -- | --- |
|
||||
| topic_items | array | 空 | |
|
||||
| request_id | str | 请求 id | 当传入 `keywords` 时不为空|
|
||||
|
||||
**示例:**
|
||||
|
||||
```shell
|
||||
curl -G 'https://app.bilibili.com/x/topic/pub/rcmd/search'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1,
|
||||
"data": {
|
||||
"topic_items": [],
|
||||
"request_id": ""
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
459
docs/fav/info.md
459
docs/fav/info.md
@ -1,12 +1,14 @@
|
||||
# 收藏夹基本信息
|
||||
|
||||
<img src="../../assets/img/collect.svg" width="100" height="100" />
|
||||
|
||||
## 获取收藏夹元数据
|
||||
|
||||
> https://api.bilibili.com/x/v3/fav/folder/info
|
||||
|
||||
*请求方式:GET*
|
||||
|
||||
认证方式:Cookie或APP
|
||||
认证方式:Cookie(SESSDATA) 或 APP
|
||||
|
||||
**注:查询权限收藏夹时需要相应用户登录**
|
||||
|
||||
@ -48,7 +50,6 @@
|
||||
| like_state | num | 点赞状态 | 已点赞:1<br />未点赞:0<br />需要登录 |
|
||||
| media_count | num | 收藏夹内容数量 | |
|
||||
|
||||
|
||||
`data`中的`upper`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
@ -125,21 +126,19 @@ curl -G 'https://api.bilibili.com/x/v3/fav/folder/info' \
|
||||
|
||||
## 获取指定用户创建的所有收藏夹信息
|
||||
|
||||
> https://api.bilibili.com/x/v3/fav/folder/created/list-all
|
||||
> https://api.bilibili.com/x/v3/fav/folder/created/list-all
|
||||
|
||||
*请求方式:GET*
|
||||
|
||||
认证方式:Cookie或APP
|
||||
认证方式:Cookie (SESSDATA) 或 APP
|
||||
|
||||
**注:查询权限收藏夹时需要相应用户登录**
|
||||
|
||||
该接口也能查询目标内容id存在于那些收藏夹中
|
||||
若欲查看相应用户的私密收藏夹需要登录
|
||||
|
||||
**url参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | ---- | ------------ | ------ | ---------------------------------------- |
|
||||
| up_mid | num | 目标用户mid | 必要 | |
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | ---- | ----------- | ------ | ---- |
|
||||
| up_mid | num | 目标用户mid | 必要 | |
|
||||
| type | num | 目标内容属性 | 非必要 | 默认为全部<br />0:全部<br />2:视频稿件 |
|
||||
| rid | num | 目标内容id | 非必要 | 视频稿件:视频稿件avid |
|
||||
|
||||
@ -151,43 +150,52 @@ curl -G 'https://api.bilibili.com/x/v3/fav/folder/info' \
|
||||
| ------- | ----------------------------- | -------- | --------------------------- |
|
||||
| code | num | 返回值 | 0:成功<br />-400:请求错误 |
|
||||
| message | str | 错误信息 | 默认为0 |
|
||||
| data | 有效时:obj<br />无效或:null | 信息本体 | |
|
||||
| ttl | num | 1 | |
|
||||
| data | 隐藏时:null<br />公开时:obj | 信息本体 | |
|
||||
|
||||
`data`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------ | ----- | ---------------- | ---- |
|
||||
| count | num | 创建的收藏夹总数 | |
|
||||
| list | array | 创建的收藏夹列表 | |
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ----- | --------------------------------------- | -------------- | ---- |
|
||||
| count | num | 创建的收藏夹数 | |
|
||||
| list | 无收藏夹时:null<br />有收藏夹时:array | 收藏夹列表 | |
|
||||
| season | null | (?) | |
|
||||
|
||||
`list`数组:
|
||||
`data`中的`list`数组:
|
||||
|
||||
| 项 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | ------------- | ---- |
|
||||
| 0 | obj | 收藏夹1 | |
|
||||
| n | obj | 收藏夹(n+1) | |
|
||||
| ... | obj | ... | |
|
||||
| 项 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | ----------- | --------------------- |
|
||||
| 0 | obj | 收藏夹1 | |
|
||||
| n | obj | 收藏夹(n+1) | 项数取决于`count`的值 |
|
||||
| …… | obj | …… | |
|
||||
|
||||
`medias`数组中的对象:
|
||||
`data`中的`list`数组中的对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ----------- | ---- | ------------------------ | ------------------------------------------ |
|
||||
| id | num | 收藏夹mlid(完整id) | 收藏夹原始id+创建者mid尾号2位 |
|
||||
| fid | num | 收藏夹原始id | |
|
||||
| mid | num | 创建者mid | |
|
||||
| attr | num | 属性位(?) | |
|
||||
| attr | num | 属性位 | |
|
||||
| title | str | 收藏夹标题 | |
|
||||
| fav_state | num | 目标id是否存在于该收藏夹 | 存在于该收藏夹:1<br />不存在于该收藏夹:0 |
|
||||
| media_count | num | 收藏夹内容数量 | |
|
||||
|
||||
`attr`属性位二进制值表:
|
||||
|
||||
| 位 | 内容 | 备注 |
|
||||
| --------------- | ---------------- | -------------------------------- |
|
||||
| 0 | 是否为默认收藏夹 | 0:默认收藏夹<br />1:其他收藏夹 |
|
||||
| 1 | 私有收藏夹 | 0:公开<br />1:私有 |
|
||||
| 其他有待补充... | | |
|
||||
|
||||
**示例:**
|
||||
|
||||
查询用户`mid=509372`的所有创建收藏夹列表
|
||||
查询用户`mid=7792521`的收藏夹列表
|
||||
|
||||
```shell
|
||||
curl -G 'https://api.bilibili.com/x/v3/fav/folder/created/list-all' \
|
||||
--data-urlencode 'up_mid=509372' \
|
||||
--data-urlencode 'up_mid=7792521' \
|
||||
-b 'SESSDATA=xxx'
|
||||
```
|
||||
|
||||
@ -196,33 +204,194 @@ curl -G 'https://api.bilibili.com/x/v3/fav/folder/created/list-all' \
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1,
|
||||
"data": {
|
||||
"count": 2,
|
||||
"list": [
|
||||
{
|
||||
"id": 939227072,
|
||||
"fid": 9392270,
|
||||
"mid": 509372,
|
||||
"attr": 54,
|
||||
"title": "学习",
|
||||
"fav_state": 0,
|
||||
"media_count": 22
|
||||
},
|
||||
{
|
||||
"id": 75020272,
|
||||
"fid": 750202,
|
||||
"mid": 509372,
|
||||
"attr": 22,
|
||||
"title": "MAD/AMV",
|
||||
"fav_state": 0,
|
||||
"media_count": 16
|
||||
}
|
||||
],
|
||||
"season": null
|
||||
}
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1,
|
||||
"data": {
|
||||
"count": 5,
|
||||
"list": [{
|
||||
"id": 44233921,
|
||||
"fid": 442339,
|
||||
"mid": 7792521,
|
||||
"attr": 0,
|
||||
"title": "默认收藏夹",
|
||||
"fav_state": 0,
|
||||
"media_count": 85
|
||||
}, {
|
||||
"id": 936347621,
|
||||
"fid": 9363476,
|
||||
"mid": 7792521,
|
||||
"attr": 22,
|
||||
"title": "放假君的鬼畜私房歌",
|
||||
"fav_state": 0,
|
||||
"media_count": 2
|
||||
}, {
|
||||
"id": 845218621,
|
||||
"fid": 8452186,
|
||||
"mid": 7792521,
|
||||
"attr": 22,
|
||||
"title": "♪一言不合就开唱♪",
|
||||
"fav_state": 0,
|
||||
"media_count": 4
|
||||
}, {
|
||||
"id": 844998121,
|
||||
"fid": 8449981,
|
||||
"mid": 7792521,
|
||||
"attr": 22,
|
||||
"title": "个人作品精选",
|
||||
"fav_state": 0,
|
||||
"media_count": 25
|
||||
}, {
|
||||
"id": 381779121,
|
||||
"fid": 3817791,
|
||||
"mid": 7792521,
|
||||
"attr": 22,
|
||||
"title": "鬼畜小课堂",
|
||||
"fav_state": 0,
|
||||
"media_count": 25
|
||||
}]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 查询用户收藏的视频收藏夹
|
||||
|
||||
> https://api.bilibili.com/x/v3/fav/folder/collected/list
|
||||
|
||||
*请求方式:GET*
|
||||
|
||||
**url参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | ---- | ----------- | ------ | ---- |
|
||||
| ps | num | 每页项数 | 必要 | 定义域 1 - 大于70 |
|
||||
| pn | num | 页码 | 必要 | |
|
||||
| up_mid | num | 目标用户mid | 必要 | |
|
||||
| platform | str | 平台类型 | 非必要 | 填写web 返回值才会包含用户收藏的视频合集 |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ----------------------------- | -------- | ------------------------------------------------------------ |
|
||||
| code | num | 返回值 | 0:成功<br />-101:账号未登录<br />-111:csrf校验失败<br />40022:签名过长 |
|
||||
| message | str | 错误信息 | 默认为0 |
|
||||
| ttl | num | 1 | |
|
||||
| data | 隐藏时:null<br />公开时:obj | 信息本体 | |
|
||||
|
||||
`data`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ----- | --------------------------------------- | -------------- | ---- |
|
||||
| count | num | 创建的收藏夹数 | |
|
||||
| list | 无收藏夹时:null<br />有收藏夹时:array | 收藏夹列表 | |
|
||||
|
||||
`data`中的`list`数组:
|
||||
|
||||
| 项 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | ----------- | --------------------- |
|
||||
| 0 | obj | 收藏夹1 | |
|
||||
| n | obj | 收藏夹(n+1) | 项数取决于`count`的值 |
|
||||
| …… | obj | …… | |
|
||||
|
||||
`data`中的`list`数组中的对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ----------- | ---- | ------------------ | ----------------------------------------- |
|
||||
| id | num | 收藏夹ml | |
|
||||
| fid | num | 原始收藏夹mlid | 去除两位mid尾号 |
|
||||
| mid | num | 创建用户mid | |
|
||||
| attr | num | 收藏夹属性 | 转换成8-bit二进制处理<br />详细说明见下表 |
|
||||
| title | str | 收藏夹标题 | |
|
||||
| cover | str | 收藏夹封面图片url | |
|
||||
| upper | obj | 收藏夹创建用户信息 | |
|
||||
| cover_type | num | 2 | 作用尚不明确 |
|
||||
| intro | str | 空 | 作用尚不明确 |
|
||||
| ctime | num | 创建时间 | 时间戳 |
|
||||
| mtime | num | 审核时间 | 时间戳 |
|
||||
| state | num | 0, 1 | 0: 正常;1:收藏夹已失效 |
|
||||
| fav_state | num | 0 | 作用尚不明确 |
|
||||
| media_count | num | 收藏夹总计视频数 | |
|
||||
|
||||
`attr`属性二进制值表:
|
||||
|
||||
| 其他有待补充... | 1:默认收藏夹 | 0:公开性 |
|
||||
| --------------- | -------------------------------- | -------------------- |
|
||||
| | 0:默认收藏夹<br />1:其他收藏夹 | 0:公开<br />1:私有 |
|
||||
|
||||
`data`中的`list`数组中的对象中的`upper`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | ---------- | ------------ |
|
||||
| mid | num | 创建人mid | |
|
||||
| name | str | 创建人昵称 | |
|
||||
| face | str | 空 | 作用尚不明确 |
|
||||
|
||||
**示例:**
|
||||
|
||||
查询用户`mid=293793435`的收藏夹收藏列表
|
||||
|
||||
```shell
|
||||
curl -G 'https://api.bilibili.com/x/v3/fav/folder/collected/list' \
|
||||
--data-urlencode 'up_mid=293793435' \
|
||||
--data-urlencode 'ps=20' \
|
||||
--data-urlencode 'pn=1' \
|
||||
-b 'SESSDATA=xxx'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1,
|
||||
"data": {
|
||||
"count": 2,
|
||||
"list": [{
|
||||
"id": 496307088,
|
||||
"fid": 4963070,
|
||||
"mid": 412466388,
|
||||
"attr": 22,
|
||||
"title": "入站必刷",
|
||||
"cover": "http://i0.hdslb.com/bfs/archive/baae2b4050363c0ab45465b7cf696b8304fdaca8.jpg",
|
||||
"upper": {
|
||||
"mid": 412466388,
|
||||
"name": "热门菌",
|
||||
"face": ""
|
||||
},
|
||||
"cover_type": 2,
|
||||
"intro": "",
|
||||
"ctime": 1563394571,
|
||||
"mtime": 1563394571,
|
||||
"state": 0,
|
||||
"fav_state": 0,
|
||||
"media_count": 55
|
||||
}, {
|
||||
"id": 381779121,
|
||||
"fid": 3817791,
|
||||
"mid": 7792521,
|
||||
"attr": 22,
|
||||
"title": "鬼畜小课堂",
|
||||
"cover": "http://i2.hdslb.com/bfs/archive/09a668cfdb38fb3a85f905c10f48a2947e36a695.jpg",
|
||||
"upper": {
|
||||
"mid": 7792521,
|
||||
"name": "还有一天就放假了",
|
||||
"face": ""
|
||||
},
|
||||
"cover_type": 2,
|
||||
"intro": "",
|
||||
"ctime": 1553700224,
|
||||
"mtime": 1557291666,
|
||||
"state": 0,
|
||||
"fav_state": 0,
|
||||
"media_count": 25
|
||||
}]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
@ -238,7 +407,7 @@ curl -G 'https://api.bilibili.com/x/v3/fav/folder/created/list-all' \
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| --------- | ---- | -------------- | ------ | ------------------------------------------------------------ |
|
||||
| resources | strs | 目标内容id列表 | 必要 | 格式:{内容id}:{内容类型}<br />每个成员间用`,`分隔<br />类型:<br />2:视频稿件<br />12:音频<br />21:视频合集<br />内容id:<br />视频稿件:视频稿件avid<br />音频:音频auid<br />视频合集:视频合集id |
|
||||
| resources | strs | 目标内容id列表 | 必要 | 格式:{内容id}:{内容类型}<br />每个成员间用`,`分隔<br />类型:<br />2:视频稿件<br />12:音频<br />内容id:<br />视频稿件:视频稿件avid<br />音频:音频auid |
|
||||
| platform | str | 平台标识 | 非必要 | 可为web(影响内容列表类型) |
|
||||
|
||||
**json回复:**
|
||||
@ -263,8 +432,8 @@ curl -G 'https://api.bilibili.com/x/v3/fav/folder/created/list-all' \
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| -------- | ---- | ------------- | ------------------------------------------------------------ |
|
||||
| id | num | 内容id | 视频稿件:视频稿件avid<br />音频:音频auid<br />视频合集:视频合集id |
|
||||
| type | num | 内容类型 | 2:视频稿件<br />12:音频<br />21:视频合集 |
|
||||
| id | num | 内容id | 视频稿件:视频稿件avid<br />音频:音频auid |
|
||||
| type | num | 内容类型 | 2:视频稿件<br />12:音频 |
|
||||
| title | str | 标题 | |
|
||||
| cover | str | 封面url | |
|
||||
| intro | str | 简介 | |
|
||||
@ -303,13 +472,11 @@ curl -G 'https://api.bilibili.com/x/v3/fav/folder/created/list-all' \
|
||||
|
||||
1-视频稿件-`av583785685`
|
||||
|
||||
2-视频合集-`523`
|
||||
|
||||
3-音频-`au15664`
|
||||
2-音频-`au15664`
|
||||
|
||||
```shell
|
||||
curl -G 'https://api.bilibili.com/x/v3/fav/resource/infos' \
|
||||
--data-urlencode 'resources=583785685:2,523:21,15664:12'
|
||||
--data-urlencode 'resources=583785685:2,15664:12'
|
||||
```
|
||||
|
||||
<details>
|
||||
@ -317,93 +484,93 @@ curl -G 'https://api.bilibili.com/x/v3/fav/resource/infos' \
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1,
|
||||
"data": [
|
||||
{
|
||||
"id": 583785685,
|
||||
"type": 2,
|
||||
"title": "已失效视频",
|
||||
"cover": "http://i0.hdslb.com/bfs/archive/be27fd62c99036dce67efface486fb0a88ffed06.jpg",
|
||||
"intro": "审核君辛苦了~\r\n使用curl命令访问B站api,实现二维码登录 查询登录信息 视频投币 发送评论的操作\r\n本视频作为api收集项目的一个硬核DEMO\r\n由于当时录音的问题,大部分是后期配的,后面声音有点小\r\n想了解更多的去github页面,也可以qq\r\n\r\nbgm:\r\n雲流れ\r\nAutumn rain(未修改版)\r\n四月,初雨微凉",
|
||||
"page": 1,
|
||||
"duration": 604,
|
||||
"upper": {
|
||||
"mid": 293793435,
|
||||
"name": "社会易姐QwQ",
|
||||
"face": "http://i0.hdslb.com/bfs/face/aebb2639a0d47f2ce1fec0631f412eaf53d4a0be.jpg"
|
||||
},
|
||||
"attr": 1,
|
||||
"cnt_info": {
|
||||
"collect": 1470,
|
||||
"play": 28374,
|
||||
"danmaku": 64
|
||||
},
|
||||
"link": "bilibili://video/583785685",
|
||||
"ctime": 1594049831,
|
||||
"pubtime": 1594049831,
|
||||
"fav_time": 0,
|
||||
"bv_id": "BV1kz4y1X7XP",
|
||||
"bvid": "BV1kz4y1X7XP",
|
||||
"season": null
|
||||
},
|
||||
{
|
||||
"id": 523,
|
||||
"type": 21,
|
||||
"title": "2021哔哩哔哩拜年纪",
|
||||
"cover": "https://i0.hdslb.com/bfs/archive/8ccc50f7cbc671762e0536491bd2b8aeebc0837d.jpg",
|
||||
"intro": "感谢各位制作者们的辛勤付出!节目精彩,愿大家看的开心!",
|
||||
"page": 0,
|
||||
"duration": 0,
|
||||
"upper": {
|
||||
"mid": 1868902080,
|
||||
"name": "哔哩哔哩拜年纪",
|
||||
"face": "http://i0.hdslb.com/bfs/face/7f6cb94fc071aca9fbb4b1ca9cc6415e86847576.jpg"
|
||||
},
|
||||
"attr": 0,
|
||||
"cnt_info": {
|
||||
"collect": 0,
|
||||
"play": 71527018,
|
||||
"danmaku": 480547
|
||||
},
|
||||
"link": "bilibili://video/373561162",
|
||||
"ctime": 0,
|
||||
"pubtime": 0,
|
||||
"fav_time": 0,
|
||||
"bv_id": "",
|
||||
"bvid": "",
|
||||
"season": null
|
||||
},
|
||||
{
|
||||
"id": 15664,
|
||||
"type": 12,
|
||||
"title": "威风堂堂",
|
||||
"cover": "http://i0.hdslb.com/bfs/music/c417d30b394a8a5d4e8a150ad75837dbae3b79d4.jpg",
|
||||
"intro": "翻唱。在电脑里放了半个月终于!!!大家寒假快乐!!❁本家sm19233263;❁压制: 寒雨;❁mix: 三星堆;❁vocal: 茶理理。超喜欢michan的那段英文念白所以加了进来w 谢谢三月月和嘟比比你们后期辛苦了!",
|
||||
"page": 1,
|
||||
"duration": 200,
|
||||
"upper": {
|
||||
"mid": 684169,
|
||||
"name": "茶理理理子",
|
||||
"face": ""
|
||||
},
|
||||
"attr": 0,
|
||||
"cnt_info": {
|
||||
"collect": 48872,
|
||||
"play": 1508426,
|
||||
"danmaku": 0
|
||||
},
|
||||
"link": "bilibili://music/detail/15664?name=%E5%A8%81%E9%A3%8E%E5%A0%82%E5%A0%82&uperName=%E8%8C%B6%E7%90%86%E7%90%86%E7%90%86%E5%AD%90&cover_url=http%3A%2F%2Fi0.hdslb.com%2Fbfs%2Fmusic%2Fc417d30b394a8a5d4e8a150ad75837dbae3b79d4.jpg&upperId=684169&author=%E8%8C%B6%E7%90%86%E7%90%86",
|
||||
"ctime": 1502347604,
|
||||
"pubtime": 1502347604,
|
||||
"fav_time": 0,
|
||||
"bv_id": "BV1bx411c7qt",
|
||||
"bvid": "BV1bx411c7qt",
|
||||
"season": null
|
||||
}
|
||||
]
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1,
|
||||
"data": [
|
||||
{
|
||||
"id": 583785685,
|
||||
"type": 2,
|
||||
"title": "已失效视频",
|
||||
"cover": "http://i0.hdslb.com/bfs/archive/be27fd62c99036dce67efface486fb0a88ffed06.jpg",
|
||||
"intro": "审核君辛苦了~\r\n使用curl命令访问B站api,实现二维码登录 查询登录信息 视频投币 发送评论的操作\r\n本视频作为api收集项目的一个硬核DEMO\r\n由于当时录音的问题,大部分是后期配的,后面声音有点小\r\n想了解更多的去github页面,也可以qq\r\n\r\nbgm:\r\n雲流れ\r\nAutumn rain(未修改版)\r\n四月,初雨微凉",
|
||||
"page": 1,
|
||||
"duration": 604,
|
||||
"upper": {
|
||||
"mid": 293793435,
|
||||
"name": "社会易姐QwQ",
|
||||
"face": "http://i0.hdslb.com/bfs/face/aebb2639a0d47f2ce1fec0631f412eaf53d4a0be.jpg"
|
||||
},
|
||||
"attr": 1,
|
||||
"cnt_info": {
|
||||
"collect": 1470,
|
||||
"play": 28374,
|
||||
"danmaku": 64
|
||||
},
|
||||
"link": "bilibili://video/583785685",
|
||||
"ctime": 1594049831,
|
||||
"pubtime": 1594049831,
|
||||
"fav_time": 0,
|
||||
"bv_id": "BV1kz4y1X7XP",
|
||||
"bvid": "BV1kz4y1X7XP",
|
||||
"season": null
|
||||
},
|
||||
{
|
||||
"id": 523,
|
||||
"type": 21,
|
||||
"title": "2021哔哩哔哩拜年纪",
|
||||
"cover": "https://i0.hdslb.com/bfs/archive/8ccc50f7cbc671762e0536491bd2b8aeebc0837d.jpg",
|
||||
"intro": "感谢各位制作者们的辛勤付出!节目精彩,愿大家看的开心!",
|
||||
"page": 0,
|
||||
"duration": 0,
|
||||
"upper": {
|
||||
"mid": 1868902080,
|
||||
"name": "哔哩哔哩拜年纪",
|
||||
"face": "http://i0.hdslb.com/bfs/face/7f6cb94fc071aca9fbb4b1ca9cc6415e86847576.jpg"
|
||||
},
|
||||
"attr": 0,
|
||||
"cnt_info": {
|
||||
"collect": 0,
|
||||
"play": 71527018,
|
||||
"danmaku": 480547
|
||||
},
|
||||
"link": "bilibili://video/373561162",
|
||||
"ctime": 0,
|
||||
"pubtime": 0,
|
||||
"fav_time": 0,
|
||||
"bv_id": "",
|
||||
"bvid": "",
|
||||
"season": null
|
||||
},
|
||||
{
|
||||
"id": 15664,
|
||||
"type": 12,
|
||||
"title": "威风堂堂",
|
||||
"cover": "http://i0.hdslb.com/bfs/music/c417d30b394a8a5d4e8a150ad75837dbae3b79d4.jpg",
|
||||
"intro": "翻唱。在电脑里放了半个月终于!!!大家寒假快乐!!❁本家sm19233263;❁压制: 寒雨;❁mix: 三星堆;❁vocal: 茶理理。超喜欢michan的那段英文念白所以加了进来w 谢谢三月月和嘟比比你们后期辛苦了!",
|
||||
"page": 1,
|
||||
"duration": 200,
|
||||
"upper": {
|
||||
"mid": 684169,
|
||||
"name": "茶理理理子",
|
||||
"face": ""
|
||||
},
|
||||
"attr": 0,
|
||||
"cnt_info": {
|
||||
"collect": 48872,
|
||||
"play": 1508426,
|
||||
"danmaku": 0
|
||||
},
|
||||
"link": "bilibili://music/detail/15664?name=%E5%A8%81%E9%A3%8E%E5%A0%82%E5%A0%82&uperName=%E8%8C%B6%E7%90%86%E7%90%86%E7%90%86%E5%AD%90&cover_url=http%3A%2F%2Fi0.hdslb.com%2Fbfs%2Fmusic%2Fc417d30b394a8a5d4e8a150ad75837dbae3b79d4.jpg&upperId=684169&author=%E8%8C%B6%E7%90%86%E7%90%86",
|
||||
"ctime": 1502347604,
|
||||
"pubtime": 1502347604,
|
||||
"fav_time": 0,
|
||||
"bv_id": "BV1bx411c7qt",
|
||||
"bvid": "BV1bx411c7qt",
|
||||
"season": null
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
</details>
|
||||
|
742
docs/garb/lottery.md
Normal file
742
docs/garb/lottery.md
Normal file
@ -0,0 +1,742 @@
|
||||
# 装扮/收藏集
|
||||
|
||||
由 [#1080](https://github.com/SocialSisterYi/bilibili-API-collect/issues/1080) 提供
|
||||
|
||||
## 装扮/收藏集搜索API
|
||||
|
||||
> https://api.bilibili.com/x/garb/v2/mall/home/search
|
||||
|
||||
*请求方式: GET*
|
||||
|
||||
**URL参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
|----- |--- |------- |----- |--- |
|
||||
| keyword | str | 关键词 | 不必要 | |
|
||||
| ps | int | 每页返回数据的最大值 | 不必要 | |
|
||||
| pn | int | 当前页数 | 不必要 | |
|
||||
|
||||
**JSON回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
|-- |-- |-- |-- |
|
||||
| code | num | 返回值 | 0:成功 |
|
||||
| message | str | 错误信息 | 默认为0 |
|
||||
| ttl | num | 1 | |
|
||||
| data | obj | 返回数据 | |
|
||||
|
||||
`data` 对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
|-|---|--|--|
|
||||
| list | array | 返回数据 | 若无则为 null |
|
||||
| ps | int | 每页返回数据的最大值 | 默认为20 |
|
||||
| pn | int | 当前页数 | 默认为1 |
|
||||
| total | int | 查询到数据的总个数 | |
|
||||
|
||||
`data` 中的 `list` 数组中的对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
|-|---|--|--|
|
||||
| item_id | int | 装扮对应的id | 收藏集均为0,需要在properties获取 |
|
||||
| name | str | 装扮/收藏集名称 | |
|
||||
| group_id | int | ?分类的id | |
|
||||
| group_name | str | ?分类的名称 | |
|
||||
| part_id | int | 类型id | 装扮为6 收藏集为0 |
|
||||
| state | str | 当前状态 | 默认为“active” |
|
||||
| properties | obj | 见下方 | |
|
||||
| current_activity | obj | 见下方 | |
|
||||
| next_activity | int | ?下次活动的时间 | |
|
||||
| current_sources | int | ?活动开始时间 | |
|
||||
| finish_sources | int | ?活动结束时间 | |
|
||||
| sale_left_time | int | ?销售剩余时间 | |
|
||||
| sale_time_end | int | ?销售结束时间 | |
|
||||
| sale_surplus | int | 未知 | |
|
||||
| sale_count_desc | str | 销售量显示文本 | |
|
||||
| total_count_desc | str | 总量显示文本 | |
|
||||
| tag | str | 当前状态标签 | |
|
||||
| jump_link | str | 跳转链接 | |
|
||||
| sales_mode | int | ?销售状态 | |
|
||||
|
||||
`list` 数组中的对象中的 `properties` 对象:
|
||||
|
||||
共有字段:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注|
|
||||
|-|---|--|--|
|
||||
| image_cover | str | 图片封面 | |
|
||||
| sale_bp_forever_raw | str | 价格 | 以0.01B币为单位|
|
||||
| type | str | 类型 | 收藏集为dlc_act, 装扮为ip|
|
||||
|
||||
装扮特有:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注|
|
||||
| - | - | ---- | ----- |
|
||||
| desc | str | 介绍文本 | 仅装扮|
|
||||
| fan_desc | str | 装扮名称 | 仅装扮|
|
||||
| fan_item_ids | str | 未知 | 仅装扮|
|
||||
| fan_mid | str | 该up的uid | 仅装扮|
|
||||
| fan_no_color | str | 十六进制颜色 | 仅装扮|
|
||||
| fan_recommend_desc | str | 装备说明 | 仅装扮|
|
||||
| fan_recommend_jump_type | str | 跳转类型 | 仅装扮|
|
||||
| fan_recommend_jump_value | str | 跳转值 | 仅装扮|
|
||||
| fan_share_image | str | 分享时的背景图 | 仅装扮|
|
||||
| gray_rule | str | 未知 | 仅装扮|
|
||||
| gray_rule_type | str | 未知 | 仅装扮|
|
||||
| image_cover_color | str | ?图片封面纯色背景 | 仅装扮|
|
||||
| is_hide | str | 是否隐藏 | 仅装扮|
|
||||
| item_id_card | str | 装扮背景卡片id | 仅装扮|
|
||||
| item_id_emoji | str | 装扮表情包id | 仅装扮|
|
||||
| item_id_thumbup | str | 装扮点赞动画id | 仅装扮|
|
||||
| open_platform_vip_discount | str | 是否有大会员减免 | 仅装扮|
|
||||
| owner_uid | str | UID | 默认为虚拟主播衍生品小货架, 仅装扮|
|
||||
| rank_investor_show | str | 未知 | 仅装扮|
|
||||
| realname_auth | str | ?是否需要实名认证 | 仅装扮|
|
||||
| sale_bp_pm_raw | str | 该装扮基础套餐价格 | 以0.01B币为单位, 仅装扮|
|
||||
| sale_buy_num_limit | str | 购买限额 | 仅装扮|
|
||||
| sale_quantity | str | 该装扮粉丝专属套餐限额 | 仅装扮|
|
||||
| sale_quantity_limit | str | 该装扮粉丝专属套餐是否限额 | 仅装扮|
|
||||
| sale_region_ip_limit | str | 该装扮限制购买地区 | 仅装扮|
|
||||
| sale_reserve_switch | str | 未知 | 仅装扮|
|
||||
| sale_time_begin | str | 开始售卖时的时间戳 | 仅装扮|
|
||||
| sale_type | str | 售卖类型 | 默认为pay, 仅装扮|
|
||||
| suit_card_type | str | 仅装扮 | |
|
||||
|
||||
收藏集特有:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| - | ---- | - | --------- |
|
||||
| book_amount | str | 购买总数 | 仅收藏集 |
|
||||
| dlc_act_id | str | 收藏集活动id | 仅收藏集 |
|
||||
| dlc_act_status | str | 收藏集活动状态 | 仅收藏集 |
|
||||
| dlc_is_free | str | 收藏集抽奖是否免费 | 仅收藏集 |
|
||||
| dlc_lottery_id | str | 收藏集抽奖id | 仅收藏集 |
|
||||
| dlc_lottery_sale_quantity | str | 购买总数 | 仅收藏集 |
|
||||
| dlc_lottery_type | str | ?抽奖类型 | 仅收藏集 |
|
||||
| dlc_sale_end_time | str | 收藏集抽奖结束时间 | 仅收藏集 |
|
||||
| dlc_sale_mode | str | 未知 | 仅收藏集 |
|
||||
| dlc_sale_start_time | str | 收藏集抽奖开始时间 | 仅收藏集 |
|
||||
| dlc_surplus_stock | str | 未知 | 仅收藏集 |
|
||||
|
||||
`list` 数组中的对象中的 `current_activity` 对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| - | --- | --- | - |
|
||||
| type | str | 当前永久价格活动类型 | 装扮一般是open_platform_vip_discount, 收藏集一般是first_draw_discount |
|
||||
| time_limit | bool | 是否存在时间限制 | |
|
||||
| time_left | int | 剩余时间 | |
|
||||
| tag | str | 显示标签 | |
|
||||
| price_bp_forever | int | 永久价格 | 以0.01B币为单位 |
|
||||
| price_bp_month | int | 一个月的价格 | 以0.01B币为单位 |
|
||||
| type_month | str | 当前一个月的价格活动类型 | 仅装扮 |
|
||||
| tag_month | str | 显示标签 | 仅装扮 |
|
||||
| time_limit_month | bool | 是否存在时间限制 | 仅装扮 |
|
||||
| time_left_month | int | 剩余时间 | 仅装扮 |
|
||||
|
||||
**示例:**
|
||||
|
||||
搜索关键词为 `2233`, 然而没有结果:
|
||||
|
||||
```shell
|
||||
curl -G 'https://api.bilibili.com/x/garb/v2/mall/home/search' \
|
||||
--data-urlencode 'keyword=2233' \
|
||||
-b 'SESSDATA=xxx'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1,
|
||||
"data": {
|
||||
"list": null,
|
||||
"pn": 1,
|
||||
"ps": 20,
|
||||
"total": 0
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 收藏集信息API
|
||||
|
||||
> https://api.bilibili.com/x/vas/dlc_act/lottery_home_detail
|
||||
|
||||
*请求方式: GET*
|
||||
|
||||
**URL参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ----- | ---- | ---- | ---- | ---- |
|
||||
| act_id | int | 收藏集活动id | 必要 | |
|
||||
| lottery_id | int | 收藏集抽奖id|不必要| 但缺了不返回数据 |
|
||||
|
||||
**JSON回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | ---- | ---- |
|
||||
| code | num | 返回值 | 0:成功 |
|
||||
| message | str | 错误信息 | 默认为 0 |
|
||||
| ttl | num | 1 | |
|
||||
| data | obj | 返回数据 | |
|
||||
|
||||
`data` 对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
|-|-|-|-|
|
||||
| lottery_id | int | 收藏集抽奖id | |
|
||||
| name | str | 收藏集抽奖名称 | |
|
||||
| item_list | array | 可抽出的物品列表 | |
|
||||
| collect_list | obj | 见下方 | |
|
||||
| button_bubble | null | 未知 | |
|
||||
| guide_info | null | 未知 | |
|
||||
| is_booked | int | 未知 | |
|
||||
| total_book_cnt | int | 未知 | |
|
||||
| is_fission | int | 未知 | |
|
||||
| physical_exchange | int | 未知 | |
|
||||
|
||||
`data` 中的 `item_list` 数组中的对象:
|
||||
|
||||
|字段 | 类型 | 内容 | 备注|
|
||||
|-|-|-|-|
|
||||
|item_type | int | 物品类型 | 目前只拿到个1, 其他值未知|
|
||||
|card_info | obj | 见下方 | |
|
||||
|
||||
`item_list` 数组中的对象中的 `card_info` 对象:
|
||||
|
||||
|字段 | 类型 | 内容 | 备注 |
|
||||
|-|-|-|-|
|
||||
|card_type_id | int | 该卡片id | |
|
||||
|card_name | str | 该卡片名称 | |
|
||||
|card_img | str | 该卡片图片 | 无水印|
|
||||
|card_type | int | int | 未知|
|
||||
|video_list | array | 该卡片动态视频 | 无水印|
|
||||
|is_physical_orientation | int | 该卡片旋转方向 | |
|
||||
|card_scarcity | int | 该卡片稀有度 | |
|
||||
|is_mute | int | 该卡片是否静音 | |
|
||||
|width | int | 该卡片像素宽度 | |
|
||||
|height | int | 该卡片像素高度 | |
|
||||
|card_ext_text | str | ?该卡片文件名字符串 | |
|
||||
|card_img_download | str | 该卡片图片 | 有水印|
|
||||
|video_list_download | array | 该卡片动态视频 | 有水印|
|
||||
|subtitles_url | 未知 | | |
|
||||
|play | null | 未知 | |
|
||||
|tag | null | 未知 | |
|
||||
|card_sub_type | int | 未知 | |
|
||||
|is_new_tag | int | 未知 | |
|
||||
|is_up_tag | int | 未知 | |
|
||||
|is_limited_card | int | 未知 | |
|
||||
|stock_info | null | 未知 | |
|
||||
|
||||
`data` 中的 `collect_list` 对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注|
|
||||
|-|-|-|-|
|
||||
| collect_infos | array | 见下方 | |
|
||||
| collect_chain | null | 未知 | |
|
||||
|
||||
`collect_list` 中的 `collect_infos` 数组中的对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
|-|-|-|-|
|
||||
| collect_id | int | 收集品id | |
|
||||
| start_time | int | 开始时间 | |
|
||||
| end_time | int | 结束时间 | |
|
||||
| redeem_text | str | 兑换条件 | |
|
||||
| redeem_item_type | int | 兑换物类型 | |
|
||||
| redeem_item_id | str | 兑换物id | |
|
||||
| redeem_item_name | str | 兑换物名称 | |
|
||||
| redeem_item_image | str | 兑换物预览图片 | |
|
||||
| owned_item_amount | int | 拥有的数量 | |
|
||||
| require_item_amount | int | 需要的数量 | |
|
||||
| has_redeemed_cnt | int | 兑换次数 | |
|
||||
| effective_forever | int | 是否永久有效 | |
|
||||
| redeem_item_image_download | str | 未知 | |
|
||||
| card_item | obj | 见下方 | 有时为 null |
|
||||
| jump_url | str | ?跳转链接 | |
|
||||
| redeem_cond_type | str | 当前兑换状态 | |
|
||||
| remain_stock | int | 当前库存 | |
|
||||
| total_stock | int | 总库存 | |
|
||||
| lottery_id | int | 抽奖id | |
|
||||
| reward_tag | str | 奖励显示标签 | |
|
||||
| redeem_detail_image | str | 兑换详情图片 | |
|
||||
| redeem_detail_videos | null | 未知 | |
|
||||
| sort | int | 排序 | |
|
||||
| redeem_items_optional | null | 未知 | |
|
||||
| unlock_condition | obj | 见下方 | |
|
||||
|
||||
`collect_infos` 数组中的对象中的 `card_item` 对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注|
|
||||
|-|-|-|-|
|
||||
| card_type_info | null | | |
|
||||
| card_asset_info | null | | |
|
||||
| play | null | | |
|
||||
| tag | null | | |
|
||||
|
||||
`collect_infos` 数组中的对象中的 `unlock_condition` 对象:
|
||||
|
||||
|字段 | 类型 | 内容 | 备注|
|
||||
|-|-|-|-|
|
||||
|unlocked | bool | 是否解锁 | |
|
||||
|lock_type | int | 解锁类型 | |
|
||||
|expire_at | int | 过期与 | |
|
||||
|unlocked_at | int | 解锁于 | |
|
||||
|unlock_threshold | int | ?解锁起点 | |
|
||||
|current_threshold | int | ?当前起点 | |
|
||||
|
||||
**示例:**
|
||||
|
||||
```shell
|
||||
curl -G --url 'https://api.bilibili.com/x/vas/dlc_act/lottery_home_detail' \
|
||||
--url-query 'act_id=111' \
|
||||
--url-query 'lottery_id=15'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1,
|
||||
"data": {
|
||||
"lottery_id": 15,
|
||||
"name": "夏日萌菜",
|
||||
"item_list": [
|
||||
{
|
||||
"item_type": 1,
|
||||
"card_info": {
|
||||
"card_type_id": 700903,
|
||||
"card_name": "水中嬉戏·隐藏",
|
||||
"card_img": "https://i0.hdslb.com/bfs/baselabs/d41acfc3bfcc9032a9759fbd9e64147a6d9a24b0.png",
|
||||
"card_type": 2,
|
||||
"video_list": [
|
||||
"https://upos-hz-mirrorakam.akamaized.net/panguxcodeboss/2b/y2/_000008vnv2ddoooah248hqoyz2gy22b-1-152111110023.mp4?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfq9rVEuxTEnE8L5F6VnEsSTx0vkX8fqJeYTj_lta53NCM=&uipk=5&nbs=1&deadline=1723459855&gen=playurlv2&os=akam&oi=1823807565&trid=400d9529a562468c8312c1f4c4beb2e3B&mid=0&platform=html5&og=cos&upsig=d22ca6102adb9ffe257f702047be6ef2&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform,og&hdnts=exp=1723459855~hmac=753ff946c9e4b3813eb72c744ed3a399ba9a225fe4767a7a03835890fcbe4b8a&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=B_0_0"
|
||||
],
|
||||
"is_physical_orientation": 0,
|
||||
"card_scarcity": 40,
|
||||
"is_mute": 0,
|
||||
"width": 1242,
|
||||
"height": 1862,
|
||||
"card_ext_text": "",
|
||||
"card_img_download": "https://i0.hdslb.com/bfs/garb/d38c42b6f1151298888da5902bca5a41e14f67e1.png",
|
||||
"video_list_download": [
|
||||
"https://upos-hz-mirrorakam.akamaized.net/panguxcodeboss/digital_watermark/ib/30/_00003d7cuie74gr9z2322d7js5b30ib-teaser.mp4?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfq9rVEuxTEnE8L5F6VnEsSTx0vkX8fqJeYTj_lta53NCM=&uipk=5&nbs=1&deadline=1723459855&gen=playurlv2&os=akam&oi=1823807565&trid=400d9529a562468c8312c1f4c4beb2e3B&mid=0&platform=html5&og=hw&upsig=24512302cfa3b1f762f3ad08a0a2f5fe&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform,og&hdnts=exp=1723459855~hmac=5dc3cdfca31fca94c29a2ec945589ff319e97c3291dec2685184ec4083616cc2&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=B_0_0"
|
||||
],
|
||||
"subtitles_url": "",
|
||||
"play": null,
|
||||
"tag": null,
|
||||
"card_sub_type": 0,
|
||||
"is_new_tag": 0,
|
||||
"is_up_tag": 0,
|
||||
"is_limited_card": 0,
|
||||
"stock_info": null
|
||||
}
|
||||
},
|
||||
{
|
||||
"item_type": 1,
|
||||
"card_info": {
|
||||
"card_type_id": 700902,
|
||||
"card_name": "轻纱花语·隐藏",
|
||||
"card_img": "https://i0.hdslb.com/bfs/baselabs/e4721d06a5c435be216b5011f0604c9e07d5e4af.png",
|
||||
"card_type": 2,
|
||||
"video_list": [
|
||||
"https://upos-hz-mirrorakam.akamaized.net/panguxcodeboss/jb/4u/_00001f04wekkvpmr92osvwpej1e4ujb-1-152111110023.mp4?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfq9rVEuxTEnE8L5F6VnEsSTx0vkX8fqJeYTj_lta53NCM=&uipk=5&nbs=1&deadline=1723459855&gen=playurlv2&os=akam&oi=1823807565&trid=400d9529a562468c8312c1f4c4beb2e3B&mid=0&platform=html5&og=cos&upsig=ad574839c71e5327783acf248b552b3d&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform,og&hdnts=exp=1723459855~hmac=49276ec1afce1a8f571e257fb6d2ab7488f623aa50c2c3b7252258be72315c5e&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=B_0_0"
|
||||
],
|
||||
"is_physical_orientation": 0,
|
||||
"card_scarcity": 30,
|
||||
"is_mute": 0,
|
||||
"width": 1242,
|
||||
"height": 1862,
|
||||
"card_ext_text": "",
|
||||
"card_img_download": "https://i0.hdslb.com/bfs/garb/0e49e7c8108a98944a96bfa594cf7f74c72398cf.png",
|
||||
"video_list_download": [
|
||||
"https://upos-hz-mirrorakam.akamaized.net/panguxcodeboss/digital_watermark/nb/58/_000007ovzgblf574s1ywvm7inwx58nb-teaser.mp4?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfq9rVEuxTEnE8L5F6VnEsSTx0vkX8fqJeYTj_lta53NCM=&uipk=5&nbs=1&deadline=1723459855&gen=playurlv2&os=akam&oi=1823807565&trid=400d9529a562468c8312c1f4c4beb2e3B&mid=0&platform=html5&og=cos&upsig=ec9de21147240e94494d736f277dfb64&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform,og&hdnts=exp=1723459855~hmac=2370473349a25fae0ea023f65f1e09c70b45d086831eef5f4727b8443acdf9f5&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=B_0_0"
|
||||
],
|
||||
"subtitles_url": "",
|
||||
"play": null,
|
||||
"tag": null,
|
||||
"card_sub_type": 0,
|
||||
"is_new_tag": 0,
|
||||
"is_up_tag": 0,
|
||||
"is_limited_card": 0,
|
||||
"stock_info": null
|
||||
}
|
||||
},
|
||||
{
|
||||
"item_type": 1,
|
||||
"card_info": {
|
||||
"card_type_id": 700904,
|
||||
"card_name": "甜心女仆",
|
||||
"card_img": "https://i0.hdslb.com/bfs/baselabs/e1f9c56a8f49910d07852f2bd648fee910f36ff6.png",
|
||||
"card_type": 2,
|
||||
"video_list": [
|
||||
"https://upos-hz-mirrorakam.akamaized.net/panguxcodeboss/gb/j6/_000015vmteklku8oj1ypmp1yjijj6gb-1-152111110023.mp4?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfq9rVEuxTEnE8L5F6VnEsSTx0vkX8fqJeYTj_lta53NCM=&uipk=5&nbs=1&deadline=1723459855&gen=playurlv2&os=akam&oi=1823807565&trid=400d9529a562468c8312c1f4c4beb2e3B&mid=0&platform=html5&og=cos&upsig=c7412fe7b155deecbfea939f7c3d1b21&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform,og&hdnts=exp=1723459855~hmac=8989673c367aa0ffbe747cdc66129a6d1698f1c2b60ace24861ad62127cdd6da&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=B_0_0"
|
||||
],
|
||||
"is_physical_orientation": 0,
|
||||
"card_scarcity": 20,
|
||||
"is_mute": 0,
|
||||
"width": 1242,
|
||||
"height": 1862,
|
||||
"card_ext_text": "",
|
||||
"card_img_download": "https://i0.hdslb.com/bfs/garb/e6c69329d843603166fac8d41682c3489fd137d4.png",
|
||||
"video_list_download": [
|
||||
"https://upos-hz-mirrorakam.akamaized.net/panguxcodeboss/digital_watermark/zb/eq/_000018oi0e68wv4id2vkrk9ovpteqzb-teaser.mp4?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfq9rVEuxTEnE8L5F6VnEsSTx0vkX8fqJeYTj_lta53NCM=&uipk=5&nbs=1&deadline=1723459855&gen=playurlv2&os=akam&oi=1823807565&trid=400d9529a562468c8312c1f4c4beb2e3B&mid=0&platform=html5&og=hw&upsig=f972e8cd996d058deb4e0ffb1d57671e&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform,og&hdnts=exp=1723459855~hmac=99054c626717b4ba61c01bbb0fe59f67feac394b89e19e4bbf95290d3a425f94&bvc=vod&nettype=0&orderid=0,1&logo=00000000&f=B_0_0"
|
||||
],
|
||||
"subtitles_url": "",
|
||||
"play": null,
|
||||
"tag": null,
|
||||
"card_sub_type": 0,
|
||||
"is_new_tag": 0,
|
||||
"is_up_tag": 0,
|
||||
"is_limited_card": 0,
|
||||
"stock_info": null
|
||||
}
|
||||
},
|
||||
{
|
||||
"item_type": 1,
|
||||
"card_info": {
|
||||
"card_type_id": 700901,
|
||||
"card_name": "约会憧憬",
|
||||
"card_img": "https://i0.hdslb.com/bfs/baselabs/924ef9a71bf39010935b4a43845bec13c8a2022c.png",
|
||||
"card_type": 1,
|
||||
"video_list": null,
|
||||
"is_physical_orientation": 0,
|
||||
"card_scarcity": 10,
|
||||
"is_mute": 0,
|
||||
"width": 1242,
|
||||
"height": 1863,
|
||||
"card_ext_text": "",
|
||||
"card_img_download": "https://i0.hdslb.com/bfs/garb/40a9ff949ca7a50dbce146ad28fbb567c2583261.png",
|
||||
"video_list_download": null,
|
||||
"subtitles_url": "",
|
||||
"play": null,
|
||||
"tag": null,
|
||||
"card_sub_type": 0,
|
||||
"is_new_tag": 0,
|
||||
"is_up_tag": 0,
|
||||
"is_limited_card": 0,
|
||||
"stock_info": null
|
||||
}
|
||||
},
|
||||
{
|
||||
"item_type": 1,
|
||||
"card_info": {
|
||||
"card_type_id": 700900,
|
||||
"card_name": "夏日小憩",
|
||||
"card_img": "https://i0.hdslb.com/bfs/baselabs/0eddbfc70200f16bef06acc88ef132eb25ede52d.png",
|
||||
"card_type": 1,
|
||||
"video_list": null,
|
||||
"is_physical_orientation": 0,
|
||||
"card_scarcity": 10,
|
||||
"is_mute": 0,
|
||||
"width": 1242,
|
||||
"height": 1863,
|
||||
"card_ext_text": "",
|
||||
"card_img_download": "https://i0.hdslb.com/bfs/garb/61e26e17705e06ecdfdb9ff97befb19c702cf81e.png",
|
||||
"video_list_download": null,
|
||||
"subtitles_url": "",
|
||||
"play": null,
|
||||
"tag": null,
|
||||
"card_sub_type": 0,
|
||||
"is_new_tag": 0,
|
||||
"is_up_tag": 0,
|
||||
"is_limited_card": 0,
|
||||
"stock_info": null
|
||||
}
|
||||
},
|
||||
{
|
||||
"item_type": 1,
|
||||
"card_info": {
|
||||
"card_type_id": 700899,
|
||||
"card_name": "微风校园",
|
||||
"card_img": "https://i0.hdslb.com/bfs/baselabs/bbeaf7993566684e328e74d8ef7c47e6242869a2.png",
|
||||
"card_type": 1,
|
||||
"video_list": null,
|
||||
"is_physical_orientation": 0,
|
||||
"card_scarcity": 10,
|
||||
"is_mute": 0,
|
||||
"width": 1242,
|
||||
"height": 1863,
|
||||
"card_ext_text": "",
|
||||
"card_img_download": "https://i0.hdslb.com/bfs/garb/8ac61045334699d621363ccac87153a7128ef0c3.png",
|
||||
"video_list_download": null,
|
||||
"subtitles_url": "",
|
||||
"play": null,
|
||||
"tag": null,
|
||||
"card_sub_type": 0,
|
||||
"is_new_tag": 0,
|
||||
"is_up_tag": 0,
|
||||
"is_limited_card": 0,
|
||||
"stock_info": null
|
||||
}
|
||||
},
|
||||
{
|
||||
"item_type": 1,
|
||||
"card_info": {
|
||||
"card_type_id": 700898,
|
||||
"card_name": "萌宠幻想",
|
||||
"card_img": "https://i0.hdslb.com/bfs/baselabs/f93f200ec862b4520b30e8f03219fbaca91a2089.png",
|
||||
"card_type": 1,
|
||||
"video_list": null,
|
||||
"is_physical_orientation": 0,
|
||||
"card_scarcity": 10,
|
||||
"is_mute": 0,
|
||||
"width": 1242,
|
||||
"height": 1863,
|
||||
"card_ext_text": "",
|
||||
"card_img_download": "https://i0.hdslb.com/bfs/garb/93e59f3080f6b8070b0d0621496e4ed6cb20cf8f.png",
|
||||
"video_list_download": null,
|
||||
"subtitles_url": "",
|
||||
"play": null,
|
||||
"tag": null,
|
||||
"card_sub_type": 0,
|
||||
"is_new_tag": 0,
|
||||
"is_up_tag": 0,
|
||||
"is_limited_card": 0,
|
||||
"stock_info": null
|
||||
}
|
||||
},
|
||||
{
|
||||
"item_type": 1,
|
||||
"card_info": {
|
||||
"card_type_id": 700897,
|
||||
"card_name": "空中环游",
|
||||
"card_img": "https://i0.hdslb.com/bfs/baselabs/fc0c020091c0a9fb1778c420bc4f9773a72ea7ba.png",
|
||||
"card_type": 1,
|
||||
"video_list": null,
|
||||
"is_physical_orientation": 0,
|
||||
"card_scarcity": 10,
|
||||
"is_mute": 0,
|
||||
"width": 1242,
|
||||
"height": 1863,
|
||||
"card_ext_text": "",
|
||||
"card_img_download": "https://i0.hdslb.com/bfs/garb/c1c6c9ca84b584bf5f2b0e1ec7d239eb935e4d44.png",
|
||||
"video_list_download": null,
|
||||
"subtitles_url": "",
|
||||
"play": null,
|
||||
"tag": null,
|
||||
"card_sub_type": 0,
|
||||
"is_new_tag": 0,
|
||||
"is_up_tag": 0,
|
||||
"is_limited_card": 0,
|
||||
"stock_info": null
|
||||
}
|
||||
}
|
||||
],
|
||||
"collect_list": {
|
||||
"collect_infos": [
|
||||
{
|
||||
"collect_id": 0,
|
||||
"start_time": 1685372400,
|
||||
"end_time": 2114406245,
|
||||
"redeem_text": "1抽必得勋章,可应用为评论背景&动态卡片",
|
||||
"redeem_item_type": 1001,
|
||||
"redeem_item_id": "",
|
||||
"redeem_item_name": "夏日萌菜勋章",
|
||||
"redeem_item_image": "http://i0.hdslb.com/bfs/archive/b3d915c6ad88609fb658393585f018459a7e620d.png",
|
||||
"owned_item_amount": 0,
|
||||
"require_item_amount": 1,
|
||||
"has_redeemed_cnt": 0,
|
||||
"effective_forever": 1,
|
||||
"redeem_item_image_download": "",
|
||||
"card_item": null,
|
||||
"jump_url": "",
|
||||
"redeem_cond_type": "",
|
||||
"remain_stock": 0,
|
||||
"total_stock": -1,
|
||||
"lottery_id": 0,
|
||||
"reward_tag": "",
|
||||
"redeem_detail_image": "",
|
||||
"redeem_detail_videos": null,
|
||||
"sort": 0,
|
||||
"redeem_items_optional": null,
|
||||
"unlock_condition": {
|
||||
"unlocked": true,
|
||||
"lock_type": 0,
|
||||
"expire_at": 0,
|
||||
"unlocked_at": 0,
|
||||
"unlock_threshold": 0,
|
||||
"current_threshold": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"collect_id": 172,
|
||||
"start_time": 1691640000,
|
||||
"end_time": 2114406245,
|
||||
"redeem_text": "抽出任意5张不同卡牌,即可领取,单UID仅可领取一次",
|
||||
"redeem_item_type": 5,
|
||||
"redeem_item_id": "56658",
|
||||
"redeem_item_name": "夏日萌菜个性主题",
|
||||
"redeem_item_image": "https://i0.hdslb.com/bfs/garb/48f755d6d08d96bfebcadee0be4bc34ce42421de.jpg",
|
||||
"owned_item_amount": 0,
|
||||
"require_item_amount": 5,
|
||||
"has_redeemed_cnt": 0,
|
||||
"effective_forever": 1,
|
||||
"redeem_item_image_download": "",
|
||||
"card_item": {
|
||||
"card_type_info": null,
|
||||
"play": null,
|
||||
"tag": null,
|
||||
"card_asset_info": null
|
||||
},
|
||||
"jump_url": "",
|
||||
"redeem_cond_type": "scarcity",
|
||||
"remain_stock": -1,
|
||||
"total_stock": -1,
|
||||
"lottery_id": 0,
|
||||
"reward_tag": "任务奖励限定",
|
||||
"redeem_detail_image": "https://i0.hdslb.com/bfs/garb/48f755d6d08d96bfebcadee0be4bc34ce42421de.jpg",
|
||||
"redeem_detail_videos": null,
|
||||
"sort": 0,
|
||||
"redeem_items_optional": null,
|
||||
"unlock_condition": {
|
||||
"unlocked": true,
|
||||
"lock_type": 0,
|
||||
"expire_at": 0,
|
||||
"unlocked_at": 0,
|
||||
"unlock_threshold": 0,
|
||||
"current_threshold": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"collect_id": 51,
|
||||
"start_time": 1685372400,
|
||||
"end_time": 2114406245,
|
||||
"redeem_text": "抽出任意1张隐藏卡牌,即可领取,单UID仅可领取一次",
|
||||
"redeem_item_type": 3,
|
||||
"redeem_item_id": "53199",
|
||||
"redeem_item_name": "夏日萌菜头像框",
|
||||
"redeem_item_image": "https://i0.hdslb.com/bfs/garb/item/9fcb99ccfd057c5eac165832d71fb63f07f26097.png",
|
||||
"owned_item_amount": 0,
|
||||
"require_item_amount": 1,
|
||||
"has_redeemed_cnt": 0,
|
||||
"effective_forever": 1,
|
||||
"redeem_item_image_download": "",
|
||||
"card_item": {
|
||||
"card_type_info": null,
|
||||
"play": null,
|
||||
"tag": null,
|
||||
"card_asset_info": null
|
||||
},
|
||||
"jump_url": "",
|
||||
"redeem_cond_type": "scarcity",
|
||||
"remain_stock": -1,
|
||||
"total_stock": -1,
|
||||
"lottery_id": 0,
|
||||
"reward_tag": "任务奖励限定",
|
||||
"redeem_detail_image": "https://i0.hdslb.com/bfs/garb/item/9fcb99ccfd057c5eac165832d71fb63f07f26097.png",
|
||||
"redeem_detail_videos": null,
|
||||
"sort": 0,
|
||||
"redeem_items_optional": null,
|
||||
"unlock_condition": {
|
||||
"unlocked": true,
|
||||
"lock_type": 0,
|
||||
"expire_at": 0,
|
||||
"unlocked_at": 0,
|
||||
"unlock_threshold": 0,
|
||||
"current_threshold": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"collect_id": 50,
|
||||
"start_time": 1685372400,
|
||||
"end_time": 2114406245,
|
||||
"redeem_text": "抽出任意3张不同卡牌,即可领取,单UID仅可领取一次",
|
||||
"redeem_item_type": 2,
|
||||
"redeem_item_id": "53178",
|
||||
"redeem_item_name": "夏日萌菜表情包",
|
||||
"redeem_item_image": "https://i0.hdslb.com/bfs/garb/462ae9b5735fef4bb9ed87a6d6467a4768b06006.png",
|
||||
"owned_item_amount": 0,
|
||||
"require_item_amount": 3,
|
||||
"has_redeemed_cnt": 0,
|
||||
"effective_forever": 1,
|
||||
"redeem_item_image_download": "",
|
||||
"card_item": {
|
||||
"card_type_info": null,
|
||||
"play": null,
|
||||
"tag": null,
|
||||
"card_asset_info": null
|
||||
},
|
||||
"jump_url": "",
|
||||
"redeem_cond_type": "scarcity",
|
||||
"remain_stock": -1,
|
||||
"total_stock": -1,
|
||||
"lottery_id": 0,
|
||||
"reward_tag": "任务奖励限定",
|
||||
"redeem_detail_image": "https://i0.hdslb.com/bfs/garb/462ae9b5735fef4bb9ed87a6d6467a4768b06006.png",
|
||||
"redeem_detail_videos": null,
|
||||
"sort": 0,
|
||||
"redeem_items_optional": null,
|
||||
"unlock_condition": {
|
||||
"unlocked": true,
|
||||
"lock_type": 0,
|
||||
"expire_at": 0,
|
||||
"unlocked_at": 0,
|
||||
"unlock_threshold": 0,
|
||||
"current_threshold": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"collect_id": 366,
|
||||
"start_time": 1694768400,
|
||||
"end_time": 1696953600,
|
||||
"redeem_text": "抽齐全部8张卡牌领取,直接获得全图鉴进度条标记,10月28日前人工发放头像",
|
||||
"redeem_item_type": 5,
|
||||
"redeem_item_id": "59374",
|
||||
"redeem_item_name": "水中嬉戏·隐藏出框头像",
|
||||
"redeem_item_image": "https://i0.hdslb.com/bfs/garb/ff981dbdca5c6b539e22596674265ef1cb110c9c.png",
|
||||
"owned_item_amount": 0,
|
||||
"require_item_amount": 8,
|
||||
"has_redeemed_cnt": 0,
|
||||
"effective_forever": 0,
|
||||
"redeem_item_image_download": "",
|
||||
"card_item": {
|
||||
"card_type_info": null,
|
||||
"play": null,
|
||||
"tag": null,
|
||||
"card_asset_info": null
|
||||
},
|
||||
"jump_url": "",
|
||||
"redeem_cond_type": "scarcity",
|
||||
"remain_stock": -1,
|
||||
"total_stock": -1,
|
||||
"lottery_id": 0,
|
||||
"reward_tag": "任务奖励限定",
|
||||
"redeem_detail_image": "https://i0.hdslb.com/bfs/garb/ff981dbdca5c6b539e22596674265ef1cb110c9c.png",
|
||||
"redeem_detail_videos": null,
|
||||
"sort": 0,
|
||||
"redeem_items_optional": null,
|
||||
"unlock_condition": {
|
||||
"unlocked": true,
|
||||
"lock_type": 0,
|
||||
"expire_at": 0,
|
||||
"unlocked_at": 0,
|
||||
"unlock_threshold": 0,
|
||||
"current_threshold": 0
|
||||
}
|
||||
}
|
||||
],
|
||||
"collect_chain": null
|
||||
},
|
||||
"button_bubble": null,
|
||||
"guide_info": null,
|
||||
"is_booked": 0,
|
||||
"total_book_cnt": 0,
|
||||
"is_fission": 0,
|
||||
"physical_exchange": 0
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
1432
docs/live/info.md
1432
docs/live/info.md
File diff suppressed because it is too large
Load Diff
66
docs/live/report.md
Normal file
66
docs/live/report.md
Normal file
@ -0,0 +1,66 @@
|
||||
# 直播心跳上报
|
||||
|
||||
## 直播心跳 (Web端)
|
||||
|
||||
> https://live-trace.bilibili.com/xlive/rdata-interface/v1/heartbeat/webHeartBeat
|
||||
|
||||
*请求方式: GET*
|
||||
|
||||
**URL参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | ---- | --------- | ----------- | ----------------- |
|
||||
| hb | str | heartbeat 正文 | 不必要 | 使用 base64 编码 |
|
||||
| pf | str | 平台名称 | 不必要 | 可为 `web` |
|
||||
|
||||
`hb` 解码参数:
|
||||
|
||||
| 项 | 类型 | 内容 | 备注 |
|
||||
| -- | ---- | ---- | ---- |
|
||||
| 0 | num | 上次返回的 next_interval 值 | 默认 60 |
|
||||
| 1 | num | 真实直播间号 | |
|
||||
| 2 | num | 1 | 作用尚不明确 |
|
||||
| 3 | num | 0 | 作用尚不明确 |
|
||||
|
||||
**JSON回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | ---- | ---- |
|
||||
| code | num | 返回值 | |
|
||||
| message | str | 错误信息 | 默认为 0 |
|
||||
| ttl | num | 1 | |
|
||||
| data | obj | 信息本体 | |
|
||||
|
||||
`data` 对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | ---- | ---- |
|
||||
| next_interval | num | 下次心跳间隔 | |
|
||||
|
||||
**示例:**
|
||||
|
||||
上报直播间 26863308 的心跳
|
||||
|
||||
```shell
|
||||
curl -G "https://live-trace.bilibili.com/xlive/rdata-interface/v1/heartbeat/webHeartBeat" \
|
||||
--data-urlencode "hb=$(echo "60|26863308|1|0" | base64 -)" \
|
||||
--data-urlencode "pf=web"
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1,
|
||||
"data": {
|
||||
"next_interval": 60
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
@ -109,7 +109,7 @@ data 对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
|---------------|-----|-------------------|------------------------|
|
||||
| message | str | 扫码状态信息 | |
|
||||
| message | str | 扫码状态信息 | 若提示 `本次登录环境存在风险, 需使用手机号进行验证或绑定`, 参见 [手机号验证](#手机号验证) |
|
||||
| refresh_token | str | 刷新`refresh_token` | |
|
||||
| status | num | 0 | |
|
||||
| timestamp | num | 登录时间 | 未登录为`0`<br />时间戳 单位为毫秒 |
|
||||
@ -480,4 +480,309 @@ public class Test3 {
|
||||
}
|
||||
}
|
||||
|
||||
```
|
||||
```
|
||||
|
||||
## 手机号验证
|
||||
|
||||
### 简述
|
||||
|
||||
有时 [登录操作(web端)](#登录操作web端) (APP 端可能也有类似操作) 会返回如下内容, 此时需要进行手机号验证或绑定
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1,
|
||||
"data": {
|
||||
"is_new": false,
|
||||
"status": 2,
|
||||
"message": "本次登录环境存在风险, 需使用手机号进行验证或绑定",
|
||||
"url": "https://passport.bilibili.com/h5-app/passport/risk/verify?tmp_token=imtmptk&request_id=imreqid&source=risk",
|
||||
"refresh_token": "",
|
||||
"timestamp": 0,
|
||||
"hint": "",
|
||||
"in_reg_audit": 0
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### 获取 captcha
|
||||
|
||||
> https://passport.bilibili.com/x/safecenter/captcha/pre
|
||||
|
||||
*请求方法: POST*
|
||||
|
||||
**正文参数 (application/x-www-form-urlencoded):**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ----- | ---- | ---- | ---- | ---- |
|
||||
| source | str | risk | 不必要 | |
|
||||
|
||||
**JSON 回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| --- | --- | --- | --- |
|
||||
| code | num | 返回值 | 0: 成功 |
|
||||
| message | str | 错误信息 | 默认为 0 |
|
||||
| ttl | num | 1 | |
|
||||
| data | obj | 数据本体 | |
|
||||
|
||||
`data` 对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| --- | --- | --- | --- |
|
||||
| recaptcha_type | str | 验证码类型 | 目前仅 `geetest` |
|
||||
| recaptcha_token | str | 验证码 token | |
|
||||
| gee_challenge | str | 极验 challenge | |
|
||||
| gee_gt | str | 极验 gt | |
|
||||
|
||||
**示例:**
|
||||
|
||||
```shell
|
||||
curl -X POST 'https://passport.bilibili.com/x/safecenter/captcha/pre'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1,
|
||||
"data": {
|
||||
"recaptcha_type": "geetest",
|
||||
"recaptcha_token": "8a418aa9eebe411599d759fc318d55e1",
|
||||
"gee_challenge": "4e5353e7ab9f9aef0c97fa5a5b1ad101",
|
||||
"gee_gt": "ac597a4506fee079629df5d8b66dd4fe"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
### 发送验证码
|
||||
|
||||
> https://passport.bilibili.com/x/safecenter/common/sms/send
|
||||
|
||||
*请求方法: POST*
|
||||
|
||||
**正文参数 (application/x-www-form-urlencoded):**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | - | ---- | ---- | ---- |
|
||||
| tmp_code| str | url query 中的 tmp_code | 必要 | 参见 [简述](#简述) 中 JSON 示例中的 `url` |
|
||||
| sms_type | str | `loginTelCheck` | 必要 | |
|
||||
| recaptcha_token | str | 验证码 token | 必要 | 参见 [获取 captcha](#获取-captcha) |
|
||||
| gee_challenge | str | 极验 challenge | 必要 | 参见 [获取 captcha](#获取-captcha) |
|
||||
| gee_validate | str | 极验 validate | 必要 | 验证后获得 |
|
||||
| gee_seccode | str | 极验 seccode | 必要 | 验证后获得 |
|
||||
|
||||
**JSON回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| --- | --- | --- | --- |
|
||||
| code | num | 返回值 | 0: 成功 |
|
||||
| message | str | 错误信息 | 默认为 0 |
|
||||
| ttl | num | 1 | |
|
||||
| data | obj | 数据本体 | |
|
||||
|
||||
`data` 对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| --- | --- | -- | - |
|
||||
| captcha_key | str | 验证码 key | |
|
||||
|
||||
**示例:**
|
||||
|
||||
假设 `tmp_code` 为 `imtmptk`,
|
||||
`recaptcha_token` 为 `kfc`,
|
||||
`gee_challenge` 为 `crazythursday`,
|
||||
`gee_validate` 为 `vivo50`,
|
||||
`gee_seccode` 为 `vivo50|jordan`
|
||||
|
||||
```shell
|
||||
curl -X POST 'https://passport.bilibili.com/x/safecenter/common/sms/send' \
|
||||
--data-urlencode 'tmp_code=imtmptk' \
|
||||
--data-urlencode 'sms_type=loginTelCheck' \
|
||||
--data-urlencode 'recaptcha_token=kfc' \
|
||||
--data-urlencode 'gee_challenge=crazythursday' \
|
||||
--data-urlencode 'gee_validate=vivo50' \
|
||||
--data-urlencode 'gee_seccode=vivo50|jordan'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1,
|
||||
"data": {
|
||||
"captcha_key": "42403fb08ed2cd97afff14edefbae482"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
### 验证手机验证码
|
||||
|
||||
> https://passport.bilibili.com/x/safecenter/login/tel/verify
|
||||
|
||||
*请求方法: POST*
|
||||
|
||||
**正文参数 (application/x-www-form-urlencoded):**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | - | ---- | ---- | ---- |
|
||||
| tmp_code | str | url query 中的 tmp_code | 必要 | 参见 [简述](#简述) 中 JSON 示例中的 `url` |
|
||||
| captcha_key | str | 验证码 key | 必要 | 参见 [发送验证码](#发送验证码) |
|
||||
| type | str | `loginTelCheck` | 必要 | |
|
||||
| code | num | 接收到的验证码 | 必要 | |
|
||||
| request_id | str | url query 中的 request_id | 必要 | 参见 [简述](#简述) 中 JSON 示例中的 `url` |
|
||||
| source | str | risk | 必要 | |
|
||||
|
||||
**JSON回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| --- | --- | --- | --- |
|
||||
| code | num | 返回值 | 0: 成功 |
|
||||
| message | str | 错误信息 | 默认为 0 |
|
||||
| ttl | num | 1 | |
|
||||
| data | obj | 数据本体 | |
|
||||
|
||||
`data` 对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| --- | --- | --- | --- |
|
||||
| code | str | 交换代码 | 用于后面 [交换 Cookie](#交换-cookie) |
|
||||
|
||||
**示例:**
|
||||
|
||||
假设 `tmp_code` 为 `imtmptk`,
|
||||
`captcha_key` 为 `42403fb08ed2cd97afff14edefbae482`,
|
||||
`code` 为 `114514`,
|
||||
`request_id` 为 `imreqid`
|
||||
|
||||
```shell
|
||||
curl -X POST 'https://passport.bilibili.com/x/safecenter/login/tel/verify' \
|
||||
--data-urlencode 'tmp_code=imtmptk' \
|
||||
--data-urlencode 'captcha_key=42403fb08ed2cd97afff14edefbae482' \
|
||||
--data-urlencode 'type=loginTelCheck' \
|
||||
--data-urlencode 'code=114514' \
|
||||
--data-urlencode'request_id=imreqid' \
|
||||
--data-urlencode'source=risk'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1,
|
||||
"data": {
|
||||
"code": "6eadf783c55a387b143773282b217682"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
### 交换 Cookie
|
||||
|
||||
> https://passport.bilibili.com/x/passport-login/web/exchange_cookie
|
||||
|
||||
*请求方法: POST*
|
||||
|
||||
**正文参数 (application/x-www-form-urlencoded):**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | - | ---- | ---- | ---- |
|
||||
| source | str | risk | 必要 | |
|
||||
| code | str | 交换代码 | 必要 | 参见 [验证手机验证码](#验证手机验证码) |
|
||||
|
||||
**JSON回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| --- | --- | --- | --- |
|
||||
| code | num | 返回值 | 0: 成功 |
|
||||
| message | str | 错误信息 | 默认为 0 |
|
||||
| ttl | num | 1 | |
|
||||
| data | obj | 数据本体 | |
|
||||
|
||||
`data` 对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| --- | --- | - | - |
|
||||
| url | str | 游戏分站跨域登录 url | |
|
||||
| refresh_token | str | 刷新 token | |
|
||||
|
||||
**示例:**
|
||||
|
||||
假设 `code` 为 `6eadf783c55a387b143773282b217682`
|
||||
|
||||
```shell
|
||||
curl -X POST 'https://passport.bilibili.com/x/passport-login/web/exchange_cookie' \
|
||||
--data-urlencode 'code=6eadf783c55a387b143773282b217682' \
|
||||
--data-urlencode'source=risk'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1,
|
||||
"data": {
|
||||
"url": "https://passport.biligame.com/x/passport-login/web/crossDomain?DedeUserID=645769214&DedeUserID__ckMd5=653409864bf9e200&Expires=1739265009&SESSDATA=11d97d2a,1739265009,928d7*82CjCKOhDRm5gROpSfgQ7B2axGVMWm5LuwNTkNDK2vjeGl7xvAsfsCINKmczXvO_Z45FsSVlJ1NHdlYlpSei1lYjdqUXRMaUpuRk9GbjVPS0psc3ZTcDFGRjhnNGhIbHRlZ0ZQRWQ1MUlUY2pnQ0lkTVRYNjlabmlUWGxHcVdkV3hrcElpa0ZEZEZRIIEC&bili_jct=3cdee5b84eb48d4f08bcfd57b58cf40b&gourl=https%3A%2F%2Fwww.bilibili.com%2F&first_domain=.bilibili.com",
|
||||
"refresh_token": "43de156ad241864640f9d9721656a682"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>查看响应头部示例:</summary>
|
||||
|
||||
```http
|
||||
HTTP/2 200 OK
|
||||
date: Thu, 15 Aug 2024 09:10:09 GMT
|
||||
content-type: application/json; charset=utf-8
|
||||
access-control-allow-credentials: true
|
||||
access-control-allow-methods: GET,POST,PUT,DELETE
|
||||
access-control-allow-origin: https://passport.bilibili.com
|
||||
bili-status-code: 0
|
||||
bili-trace-id: 175262647666bdc5
|
||||
set-cookie: SESSDATA=xxxxxxx; Path=/; Domain=bilibili.com; Expires=Tue, 11 Feb 2025 09:10:09 GMT; HttpOnly; Secure
|
||||
set-cookie: bili_jct=xxxxxxxxxxxxxxxxxxxxxxxxx; Path=/; Domain=bilibili.com; Expires=Tue, 11 Feb 2025 09:10:09 GMT
|
||||
set-cookie: DedeUserID=114514191; Path=/; Domain=bilibili.com; Expires=Tue, 11 Feb 2025 09:10:09 GMT
|
||||
set-cookie: DedeUserID__ckMd5=0123456789abcdef; Path=/; Domain=bilibili.com; Expires=Tue, 11 Feb 2025 09:10:09 GMT
|
||||
set-cookie: sid=xxxxxxxx; Path=/; Domain=bilibili.com; Expires=Tue, 11 Feb 2025 09:10:09 GMT
|
||||
vary: Origin
|
||||
x-bili-trace-id: 60f0305e2abc511d175262647666bdc5
|
||||
access-control-allow-headers: Origin,No-Cache,X-Requested-With,If-Modified-Since,Pragma,Last-Modified,Cache-Control,Expires,Content-Type,Access-Control-Allow-Credentials,DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Cache-Webcdn,x-bilibili-key-real-ip,x-backend-bili-real-ip,x-risk-header
|
||||
cross-origin-resource-policy: cross-origin
|
||||
access-control-expose-headers: X-Bili-Gaia-Vvoucher,X-Bili-Trace-Id
|
||||
expires: Thu, 15 Aug 2024 09:10:08 GMT
|
||||
cache-control: no-cache
|
||||
x-cache-webcdn: BYPASS from blzone01
|
||||
content-encoding: br
|
||||
X-Firefox-Spdy: h2
|
||||
```
|
||||
|
||||
</details>
|
||||
|
@ -1,6 +1,6 @@
|
||||
# 登录操作
|
||||
|
||||
人机验证方式登录包含**账号密码登录**与手**机短信验证码登录**
|
||||
人机验证方式登录包含**账号密码登录**与**手机短信验证码登录**
|
||||
|
||||
**注:扫码登录**不需要进行**人机验证**,故**不使用**以下接口
|
||||
|
||||
@ -16,13 +16,14 @@
|
||||
2. 进行滑动or点击验证
|
||||
3. 返回验证结果`validate`与`seccode`,进行短信或密码登录
|
||||
|
||||
|
||||
### 申请captcha验证码
|
||||
|
||||
> https://passport.bilibili.com/x/passport-login/captcha?source=main_web
|
||||
|
||||
*请求方式:GET*
|
||||
|
||||
注: 另外参见 [密码登录-手机号验证-获取 captcha](password.md#获取-captcha)
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
@ -80,6 +81,71 @@ curl 'https://passport.bilibili.com/x/passport-login/captcha?source=main_web'
|
||||
|
||||
</details>
|
||||
|
||||
### 申请captcha验证码 (旧版)
|
||||
|
||||
> http://passport.bilibili.com/web/captcha/combine
|
||||
|
||||
*请求方式:GET*
|
||||
|
||||
该接口曾从文档移除过, 经过测试仍可正常使用
|
||||
|
||||
**URL参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | ---- | ------------ | ------ | ---- |
|
||||
| plat | num | 平台类型 | 必要 | 默认为 6 |
|
||||
|
||||
**JSON回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------ | ---- | -------- | --------- |
|
||||
| code | num | 返回值 | 0:成功 |
|
||||
| data | obj | 信息本体 | |
|
||||
|
||||
`data`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| -------- | ----- | ------ | -------- |
|
||||
| result | obj | 套了个娃 | |
|
||||
| type | num | 1 | **作用尚不明确** |
|
||||
|
||||
`result`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| -------- | ----- | ------ | -------- |
|
||||
| success | num | 1 | **作用尚不明确** |
|
||||
| gt | str | 极验id | 一般为固定值 |
|
||||
| challenge | str | 极验KEY | 由B站后端产生用于人机验证 |
|
||||
| key | str | 登录秘钥 | 与 captcha 无关, 与登录接口有关, 亦作 token |
|
||||
|
||||
**示例:**
|
||||
|
||||
```shell
|
||||
curl 'https://passport.bilibili.com/web/captcha/combine?plat=6'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"data": {
|
||||
"result": {
|
||||
"success": 1,
|
||||
"gt": "bd111e81eda1cbb9f54425aafc0908ac",
|
||||
"challenge": "2903a8eb967a1d990444cb23ea42f417",
|
||||
"key": "76fb59fbd83a4d9d816162c5156fc964"
|
||||
},
|
||||
"type": 1
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
### 进行验证
|
||||
|
||||
本文档为 Bilibili 文档,验证码为 [geetest 极验](https://docs.geetest.com/sensebot/start/) 提供,故不提供相关 API
|
||||
@ -92,7 +158,6 @@ curl 'https://passport.bilibili.com/x/passport-login/captcha?source=main_web'
|
||||
3. 验证完成后,点击按钮5生成验证结果
|
||||
4. 使用最开始获得到的`key`、`challenge`和刚获得到的`validate`、`seccode`继续之后的登录操作
|
||||
|
||||
|
||||
### 继续登录
|
||||
|
||||
- [短信登录](SMS.md)
|
||||
|
@ -68,3 +68,194 @@ curl -G 'https://api.bilibili.com/x/safecenter/login_notice' \
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 最近一周的登录情况
|
||||
|
||||
> https://api.bilibili.com/x/member/web/login/log
|
||||
|
||||
*请求方式: GET*
|
||||
|
||||
认证方式: Cookie (SESSDATA)
|
||||
|
||||
**URL参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | ---- | ---------- | ------ | -------- |
|
||||
| jsonp | str | 回调函数名? | 非必要 | 默认 jsonp |
|
||||
| web_location | str | 网页位置? | 非必要 | 默认 333.33 |
|
||||
|
||||
**JSON回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | --------- |
|
||||
| code | num | 返回值 | 0:成功<br />-101:账号未登录 |
|
||||
| message | str | 错误信息 | 默认为 0 |
|
||||
| ttl | num | 1 | |
|
||||
| data | obj | 信息本体 | |
|
||||
|
||||
`data`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| -------- | ---- | ------------ | ----- |
|
||||
| count | num | 记录总数 | |
|
||||
| list | arr | 登录记录列表 | |
|
||||
|
||||
`data`中的`list`数组:
|
||||
|
||||
| 项 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | -------------- | ---- |
|
||||
| 0 | obj | 登录记录1 | |
|
||||
| …… | obj | …… | |
|
||||
| n | obj | 登录记录(n+1) | |
|
||||
|
||||
`list`数组中的对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| -------- | ---- | -------------- | ---- |
|
||||
| ip | str | 登录 IP | 末两位以 `*` 打码 |
|
||||
| time | num | 登录时间 | UNIX 秒级时间戳 |
|
||||
| time_at | str | 登录时间 | 格式为 `yyyy-MM-dd HH:mm:ss` |
|
||||
| status | bool | 是否登录成功? | |
|
||||
| type | num | 登录方式? | |
|
||||
| geo | str | 登录地理位置 | |
|
||||
|
||||
**示例:**
|
||||
|
||||
查询本用户最近一周的登录情况
|
||||
|
||||
```shell
|
||||
curl -G "https://api.bilibili.com/x/member/web/login/log" \
|
||||
-b "SESSDATA=xxx"
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1,
|
||||
"data": {
|
||||
"count": 14,
|
||||
"list": [
|
||||
{
|
||||
"ip": "108.181.*.*",
|
||||
"time": 1722036741,
|
||||
"time_at": "2024-07-27 07:32:21",
|
||||
"status": true,
|
||||
"type": 0,
|
||||
"geo": "美国加利福尼亚州洛杉矶telus.com"
|
||||
},
|
||||
{
|
||||
"ip": "104.28.*.*",
|
||||
"time": 1722040653,
|
||||
"time_at": "2024-07-27 08:37:33",
|
||||
"status": true,
|
||||
"type": 0,
|
||||
"geo": "巴西"
|
||||
},
|
||||
{
|
||||
"ip": "104.28.*.*",
|
||||
"time": 1721950332,
|
||||
"time_at": "2024-07-26 07:32:12",
|
||||
"status": true,
|
||||
"type": 0,
|
||||
"geo": "新加坡cloudflare.com"
|
||||
},
|
||||
{
|
||||
"ip": "104.28.*.*",
|
||||
"time": 1721964627,
|
||||
"time_at": "2024-07-26 11:30:27",
|
||||
"status": true,
|
||||
"type": 0,
|
||||
"geo": "美国弗吉尼亚州雷斯顿cloudflare.com"
|
||||
},
|
||||
{
|
||||
"ip": "143.92.*.*",
|
||||
"time": 1721861861,
|
||||
"time_at": "2024-07-25 06:57:41",
|
||||
"status": true,
|
||||
"type": 0,
|
||||
"geo": "中国香港特别行政区"
|
||||
},
|
||||
{
|
||||
"ip": "143.92.*.*",
|
||||
"time": 1721861855,
|
||||
"time_at": "2024-07-25 06:57:35",
|
||||
"status": true,
|
||||
"type": 0,
|
||||
"geo": "中国香港特别行政区"
|
||||
},
|
||||
{
|
||||
"ip": "104.28.*.*",
|
||||
"time": 1721709514,
|
||||
"time_at": "2024-07-23 12:38:34",
|
||||
"status": true,
|
||||
"type": 0,
|
||||
"geo": "日本千叶县成田市cloudflare.com"
|
||||
},
|
||||
{
|
||||
"ip": "104.28.*.*",
|
||||
"time": 1721709618,
|
||||
"time_at": "2024-07-23 12:40:18",
|
||||
"status": true,
|
||||
"type": 0,
|
||||
"geo": "日本千叶县成田市cloudflare.com"
|
||||
},
|
||||
{
|
||||
"ip": "143.92.*.*",
|
||||
"time": 1721636125,
|
||||
"time_at": "2024-07-22 16:15:25",
|
||||
"status": true,
|
||||
"type": 0,
|
||||
"geo": "中国香港特别行政区"
|
||||
},
|
||||
{
|
||||
"ip": "143.92.*.*",
|
||||
"time": 1721636111,
|
||||
"time_at": "2024-07-22 16:15:11",
|
||||
"status": true,
|
||||
"type": 0,
|
||||
"geo": "中国香港特别行政区"
|
||||
},
|
||||
{
|
||||
"ip": "104.28.*.*",
|
||||
"time": 1721539870,
|
||||
"time_at": "2024-07-21 13:31:10",
|
||||
"status": true,
|
||||
"type": 0,
|
||||
"geo": "美国加利福尼亚州东洛杉矶cloudflare.com"
|
||||
},
|
||||
{
|
||||
"ip": "104.28.*.*",
|
||||
"time": 1721539965,
|
||||
"time_at": "2024-07-21 13:32:45",
|
||||
"status": true,
|
||||
"type": 0,
|
||||
"geo": "美国加利福尼亚州东洛杉矶cloudflare.com"
|
||||
},
|
||||
{
|
||||
"ip": "42.2.*.*",
|
||||
"time": 1721477962,
|
||||
"time_at": "2024-07-20 20:19:22",
|
||||
"status": true,
|
||||
"type": 0,
|
||||
"geo": "中国香港特别行政区pccw.com"
|
||||
},
|
||||
{
|
||||
"ip": "42.2.*.*",
|
||||
"time": 1721477960,
|
||||
"time_at": "2024-07-20 20:19:20",
|
||||
"status": true,
|
||||
"type": 0,
|
||||
"geo": "中国香港特别行政区pccw.com"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
@ -660,4 +660,197 @@ curl 'https://api.bilibili.com/x/member/web/sign/update' \
|
||||
|
||||
</details>
|
||||
|
||||
## 最近一周的经验记录
|
||||
|
||||
> https://api.bilibili.com/x/member/web/exp/log
|
||||
|
||||
*请求方式: GET*
|
||||
|
||||
认证方式: Cookie (SESSDATA)
|
||||
|
||||
**URL参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | ---- | ---------- | ------ | -------- |
|
||||
| jsonp | str | 回调函数名? | 非必要 | 默认 jsonp |
|
||||
| web_location | str | 网页位置? | 非必要 | 默认 333.33 |
|
||||
|
||||
**JSON回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | ---- |
|
||||
| code | num | 返回值 | 0: 成功<br />-101: 账号未登录 |
|
||||
| message | str | 错误信息 | 默认为0 |
|
||||
| ttl | num | 1 | |
|
||||
| data | obj | 数据本体 | |
|
||||
|
||||
`data`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ----- | ------ | ---------------- | ---- |
|
||||
| list | array | 经验记录条目列表 | |
|
||||
| count | num | 经验记录条目数 | |
|
||||
|
||||
`data`中的`list`数组:
|
||||
|
||||
| 项 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | ----- | ---- |
|
||||
| 0 | obj | 记录1 | |
|
||||
| …… | obj | …… | …… |
|
||||
| n | obj | 记录(n+1) | |
|
||||
|
||||
`list`数组中的对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------ | ---- | -------- | ---- |
|
||||
| delta | num | 经验值 | |
|
||||
| time | str | 记录时间 | 格式为 yyyy-MM-dd HH:mm:ss |
|
||||
| reason | str | 记录原因 | |
|
||||
|
||||
**示例:**
|
||||
|
||||
```shell
|
||||
curl -G "https://api.bilibili.com/x/member/web/exp/log" \
|
||||
-b "SESSDATA=xxx
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1,
|
||||
"data": {
|
||||
"list": [
|
||||
{
|
||||
"delta": 5,
|
||||
"time": "2024-07-27 15:08:23",
|
||||
"reason": "分享视频奖励"
|
||||
},
|
||||
{
|
||||
"delta": 5,
|
||||
"time": "2024-07-27 08:28:21",
|
||||
"reason": "登录奖励"
|
||||
},
|
||||
{
|
||||
"delta": 5,
|
||||
"time": "2024-07-27 08:28:21",
|
||||
"reason": "观看视频奖励"
|
||||
},
|
||||
{
|
||||
"delta": 5,
|
||||
"time": "2024-07-26 12:44:19",
|
||||
"reason": "登录奖励"
|
||||
},
|
||||
{
|
||||
"delta": 5,
|
||||
"time": "2024-07-26 12:44:19",
|
||||
"reason": "观看视频奖励"
|
||||
},
|
||||
{
|
||||
"delta": 20,
|
||||
"time": "2024-07-25 06:58:49",
|
||||
"reason": "视频投币奖励"
|
||||
},
|
||||
{
|
||||
"delta": 5,
|
||||
"time": "2024-07-25 06:58:30",
|
||||
"reason": "观看视频奖励"
|
||||
},
|
||||
{
|
||||
"delta": 5,
|
||||
"time": "2024-07-25 06:58:30",
|
||||
"reason": "登录奖励"
|
||||
},
|
||||
{
|
||||
"delta": 5,
|
||||
"time": "2024-07-23 18:47:48",
|
||||
"reason": "观看视频奖励"
|
||||
},
|
||||
{
|
||||
"delta": 5,
|
||||
"time": "2024-07-23 18:47:48",
|
||||
"reason": "登录奖励"
|
||||
}
|
||||
],
|
||||
"count": 10
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 最近一周的节操记录
|
||||
|
||||
> https://api.bilibili.com/x/member/web/moral/log
|
||||
|
||||
*请求方式: GET*
|
||||
|
||||
认证方式: Cookie (SESSDATA)
|
||||
|
||||
**URL参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | ---- | ---------- | ------ | -------- |
|
||||
| jsonp | str | 回调函数名? | 非必要 | 默认 jsonp |
|
||||
| web_location | str | 网页位置? | 非必要 | 默认 333.33 |
|
||||
|
||||
**JSON回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | ---- |
|
||||
| code | num | 返回值 | 0: 成功<br />-101: 账号未登录 |
|
||||
| message | str | 错误信息 | 默认为0 |
|
||||
| ttl | num | 1 | |
|
||||
| data | obj | 数据本体 | |
|
||||
|
||||
`data`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ----- | ------ | ---------------- | ---- |
|
||||
| moral | num | 节操值 | |
|
||||
| list | array | 记录条目列表 | |
|
||||
| count | num | 记录条目数 | |
|
||||
|
||||
`data`中的`list`数组:
|
||||
|
||||
| 项 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | ----- | ---- |
|
||||
| 0 | obj | 记录1 | |
|
||||
| …… | obj | …… | …… |
|
||||
| n | obj | 记录(n+1) | |
|
||||
|
||||
`list`数组中的对象:
|
||||
|
||||
*表现良好暂时没有记录, 欢迎封号斗罗前来补充*
|
||||
|
||||
**示例:**
|
||||
|
||||
```shell
|
||||
curl -G "https://api.bilibili.com/x/member/web/moral/log" \
|
||||
-b "SESSDATA=xxx
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1,
|
||||
"data": {
|
||||
"moral": 70,
|
||||
"list": [],
|
||||
"count": 0
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
@ -8,6 +8,8 @@
|
||||
|
||||
认证方式:Cookie(SESSDATA)
|
||||
|
||||
注: 该接口默认每 2 分钟请求一次
|
||||
|
||||
**URL参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
|
127
docs/misc/b23tv.md
Normal file
127
docs/misc/b23tv.md
Normal file
@ -0,0 +1,127 @@
|
||||
# b23.tv 短链
|
||||
|
||||
## 简述
|
||||
|
||||
b23.tv 是由 Bilibili 提供的短链服务, 主要用于站内长链接缩短便于分享, 目前仅在手机客户端生成
|
||||
|
||||
### 格式
|
||||
|
||||
目前<!--我-->已知的 b23.tv 短链格式有以下 3 种
|
||||
|
||||
- 任意短链, 路径由7位数字或大小写英文字母组成, 为防止滥用似乎有时效限制, 如 https://b23.tv/pigt3PQ
|
||||
|
||||
- 视频短链(AV号), 路径由字符串 `av` 尾随 视频 aid 组成, 如 https://b23.tv/av80433022
|
||||
|
||||
- 视频短链(BV号), 路径由字符串 `BV` 尾随 视频 bvid 组成, 如 https://b23.tv/BV1GJ411x7h7
|
||||
|
||||
## 生成
|
||||
|
||||
### 视频短链
|
||||
|
||||
1. 直接手动拼接字符串即可
|
||||
|
||||
2. 参见[任意短链](#任意短链)
|
||||
|
||||
### 任意短链
|
||||
|
||||
> https://api.bilibili.com/x/share/click
|
||||
> https://api.biliapi.net/x/share/click
|
||||
|
||||
*请求方式: POST*
|
||||
|
||||
认证方式: 仅APP, 但实际上形同虚设
|
||||
|
||||
注: 该接口参数对照表基本失效, 基本无实用价值, 已被注释, 参见 [#979](https://github.com/SocialSisterYi/bilibili-API-collect/issues/979) [Nemo2011/bilibili-api#720](https://github.com/Nemo2011/bilibili-api/pull/720)
|
||||
|
||||
**正文参数(application/x-www-form-urlencoded):**
|
||||
|
||||
必要:
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | ---- | ------- | ------ | ---- |
|
||||
| buvid | str | 设备 BUVID | 必要 | 实际任意非空字符串即可 |
|
||||
| build | num | 客户端版本号 | 必要 | 大于 `5520400` 的任意有效整数, 如 `7710300` |
|
||||
| platform | str | 客户端平台 | 必要 | 实际任意非空字符串即可 |
|
||||
| share_channel | str | 分享方式? | 必要 | COPY |
|
||||
| share_mode | num | 分享模式? | 必要 | 任意有效正整数, 常见 `1`, `3`, `4` |
|
||||
| share_id | str | 分享 ID | 必要 | 见下方对照表 |
|
||||
| oid | num | 对象 ID | 必要 | 见下方对照表 |
|
||||
|
||||
不必要:
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | ---- | ------ | ---- | ---- |
|
||||
| object_extra_fields| obj | 额外字段? | 非必要 | 如 `{"jumpfrom_id":30104}` `{"epid":"409808","cid":"1398781253"}` `{"season_type":"1","season_id":"39481","epid":"425006","dubbing_support":false,"background_audio":false,"role_audio_list":false}` |
|
||||
| panel_type | num | 面板类型? | 非必要 | 1 |
|
||||
| share_title | str | 分享标题? | 非必要 | 分享标题 |
|
||||
| share_content | str | 分享内容? | 非必要 | 分享内容, 当 oid 存在时无意义<s>(可是 oid 不可能不存在啊)</s> |
|
||||
| share_origin | str | 分享来源? | 非必要 | 如 `vinfo_share` `dynamic` `vertical-three-point-panel` `vinfo_player` |
|
||||
| share_pattern | num | 分享模式? | 非必要 | 0 |
|
||||
| share_session_id | str | 分享会话 ID? | 非必要 | 各部分用 `-` 分隔的小写的一串 UUID |
|
||||
| ts | num | UNIX 秒级时间戳 | 非必要 | |
|
||||
|
||||
对照表:
|
||||
|
||||
| 类型 | 分享 ID (share_id) | 对象 ID (oid) |
|
||||
| --- | ------------------ | ------------- |
|
||||
| 视频 | main.ugc-video-detail.0.0.pv | 视频 aid |
|
||||
<!-- 此处被注释是因为以下值均失效
|
||||
| 动态 | dt.dt-detail.0.0.pv | 动态 id |
|
||||
| 专栏 | read.column-detail.roof.8.click | 文章 cvid |
|
||||
| 文集 | read.column-readlist.share.0.click | 文集 rlid |
|
||||
| 直播 | live.live-room-detail.0.0.pv | 直播 room_id |
|
||||
| 用户 | main.space-total.more.0.click | 用户 mid |
|
||||
| 课程 | pugv.pugv-video-detail.0.0.pv | 课程 id? |
|
||||
| 番剧 | main.space-bangumi.0.0 | 番剧 id? |
|
||||
| 链接 | public.webview.0.0.pv | ? |
|
||||
-->
|
||||
|
||||
**JSON回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段名 | 类型 | 内容 | 备注 |
|
||||
| ------ | ---- | -------- | ---- |
|
||||
| code | num | 0 | 恒为 0 |
|
||||
| message | str | 0 | 恒为 0 |
|
||||
| ttl | num | 1 | 恒为 1 |
|
||||
| data | obj | 信息本体 | |
|
||||
|
||||
`data` 对象:
|
||||
|
||||
| 字段名 | 类型 | 内容 | 备注 |
|
||||
| ------ | ---- | -------- | ---- |
|
||||
| content | str | 短链内容 | 若失败则不存在 |
|
||||
| count | num | 0 | 恒为 0 |
|
||||
|
||||
**示例:**
|
||||
|
||||
为 `av80433022` 生成 b23.tv 短链
|
||||
|
||||
```shell
|
||||
curl -X POST "http://api.biliapi.net/x/share/click" \
|
||||
--data-urlencode "platform=unix" \
|
||||
--data-urlencode "share_channel=COPY" \
|
||||
--data-urlencode "share_id=main.ugc-video-detail.0.0.pv" \
|
||||
--data-urlencode "share_mode=4" \
|
||||
--data-urlencode "oid=80433022" \
|
||||
--data-urlencode "buvid=qwq" \
|
||||
--data-urlencode "build=6114514"
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1,
|
||||
"data": {
|
||||
"content": "【【官方 MV】Never Gonna Give You Up - Rick Astley-哔哩哔哩】 https://b23.tv/5x4wy5f",
|
||||
"count": 0
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
@ -1,6 +1,6 @@
|
||||
# 获取 buvid3 / buvid4 / b_nut
|
||||
|
||||
## 游客获取 buvid3 / buvid4
|
||||
## 接口获取 buvid3 / buvid4
|
||||
|
||||
> https://api.bilibili.com/x/frontend/finger/spi
|
||||
|
||||
|
@ -1,6 +1,8 @@
|
||||
# 图片格式化
|
||||
|
||||
对于 `*.hdslb.com/bfs` 下的图片文件都可以使用以下可选格式化参数.
|
||||
已知 `*.hdslb.com` `archive.biliimg.com` 等域名作用等效, 对于请求头 `Referer` 要求留空或在 `.bilibili.com` 等 B 站域名下 <!--(所以 B 站图床 img 标签要加上 `referrerpolicy="no-referrer"`)-->
|
||||
|
||||
对于以上域名的 `/bfs/` 下的图片文件都可以使用以下可选格式化参数
|
||||
|
||||
使用 `@` 开始参数 (无论格式如何, 无论是否有参数, 通过计算 HASH 发现, 使用 `@` 均会导致返回图片不同), 多个参数以 `_` 分隔, 图片格式无需分隔且必须放在最后
|
||||
|
||||
|
@ -24,8 +24,78 @@
|
||||
3. 构造请求参数,`key_id` 为 `ec02`,`hexsign` 为变量 `hexsign` 值,`context[ts]` 为变量 `timestamp` 值,`csrf` 为 cookie 中的 `bili_jct` 值也可为空
|
||||
4. 发送 `POST` 请求,获取 `data` 字段中的 `ticket` 字段的值即为所求
|
||||
|
||||
## 接口
|
||||
|
||||
> https://api.bilibili.com/bapis/bilibili.api.ticket.v1.Ticket/GenWebTicket
|
||||
|
||||
*请求方式: POST*
|
||||
|
||||
**URL参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ----- | ---- | ---- | ------ | ---- |
|
||||
| key_id | str | ec02 | 必要 | |
|
||||
| hexsign | str | 由 `hmac_sha256` 算法计算的 `hexsign` 值 | 必要 | |
|
||||
| context[ts] | num | UNIX 秒级时间戳 | 必要 | |
|
||||
| csrf | str | cookie 中的 `bili_jct` 值 | 非必要 | |
|
||||
|
||||
**JSON回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | ---- | ---- |
|
||||
| code | num | 返回值 | 0: 成功<br />400: 参数错误 |
|
||||
| message | str | 返回消息 | OK: 成功 |
|
||||
| data | obj | 数据本体 | |
|
||||
| ttl | num | 1 | |
|
||||
|
||||
`data` 对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | ---- | ---- |
|
||||
| ticket | str | bili_ticket | |
|
||||
| created_at | num | 创建时间 | UNIX 秒级时间戳 |
|
||||
| ttl | num | 有效时长 | 259200 秒 (3 天) |
|
||||
| context | obj | 空 | |
|
||||
| nav | obj | wbi_img 相关 | 参见 [WBI 签名](./wbi.md) |
|
||||
|
||||
`nav` 对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | ---- | ---- |
|
||||
| img | str | img_key 值 | 参见 [WBI 签名](./wbi.md) |
|
||||
| sub | str | sub_key 值 | 参见 [WBI 签名](./wbi.md) |
|
||||
|
||||
**示例:**
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "OK",
|
||||
"data": {
|
||||
"ticket": "eyJhbGciOiJIUzI1NiIsImtpZCI6InMwMyIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3MjM2OTMwODAsImlhdCI6MTcyMzQzMzgyMCwicGx0IjotMX0.efOwv7i4m0ykABrXEDHGAechU2AByMcP_-3EYpQrNKs",
|
||||
"created_at": 1723433820,
|
||||
"ttl": 259200,
|
||||
"context": {},
|
||||
"nav": {
|
||||
"img": "https://i0.hdslb.com/bfs/wbi/7cd084941338484aae1ad9425b84077c.png",
|
||||
"sub": "https://i0.hdslb.com/bfs/wbi/4932caff0ff746eab6f01bf08b70ac45.png"
|
||||
}
|
||||
},
|
||||
"ttl": 1
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## Demo
|
||||
|
||||
此处提供 [Python](#python), [Java](#java), [JavaScript (Node.js)](#javascript-nodejs) 的示例代码
|
||||
|
||||
### Python
|
||||
|
||||
需要 `requests` 依赖
|
||||
@ -176,3 +246,62 @@ public class BiliTicketDemo {
|
||||
|
||||
}
|
||||
```
|
||||
|
||||
### JavaScript (Node.js)
|
||||
|
||||
```javascript
|
||||
const crypto = require('crypto');
|
||||
|
||||
/**
|
||||
* Generate HMAC-SHA256 signature
|
||||
* @param {string} key The key string to use for the HMAC-SHA256 hash
|
||||
* @param {string} message The message string to hash
|
||||
* @returns {string} The HMAC-SHA256 signature as a hex string
|
||||
*/
|
||||
function hmacSha256(key, message) {
|
||||
const hmac = crypto.createHmac('sha256', key);
|
||||
hmac.update(message);
|
||||
return hmac.digest('hex');
|
||||
}
|
||||
|
||||
/**
|
||||
* Get Bilibili web ticket
|
||||
* @param {string} csrf CSRF token, can be empty or null
|
||||
* @returns {Promise<any>} Promise of the ticket response in JSON format
|
||||
*/
|
||||
async function getBiliTicket(csrf) {
|
||||
const ts = Math.floor(Date.now() / 1000);
|
||||
const hexSign = hmacSha256('XgwSnGZ1p', `ts${ts}`);
|
||||
const url = 'https://api.bilibili.com/bapis/bilibili.api.ticket.v1.Ticket/GenWebTicket';
|
||||
const params = new URLSearchParams({
|
||||
key_id: 'ec02',
|
||||
hexsign: hexSign,
|
||||
'context[ts]': ts,
|
||||
csrf: csrf || ''
|
||||
});
|
||||
try {
|
||||
const response = await fetch(`${url}?${params.toString()}`, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/115.0'
|
||||
}
|
||||
});
|
||||
if (!response.ok) {
|
||||
throw new Error(`HTTP error! status: ${response.status}`);
|
||||
}
|
||||
const data = await response.json();
|
||||
return data;
|
||||
} catch (e) {
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
|
||||
(async () => {
|
||||
try {
|
||||
const ticketResponse = await getBiliTicket(''); // use empty CSRF here
|
||||
console.log(ticketResponse);
|
||||
} catch (e) {
|
||||
console.error('Failed to get BiliTicket:', error);
|
||||
}
|
||||
})();
|
||||
```
|
||||
|
177
docs/misc/sign/v_voucher.md
Normal file
177
docs/misc/sign/v_voucher.md
Normal file
@ -0,0 +1,177 @@
|
||||
# v_voucher 验证
|
||||
|
||||
## 简述
|
||||
|
||||
当同一接口在短时间内被同一用户/IP/UA多次请求或异常时, 会触发风控, 如接口返回 `code` 为 `-352` 即 `风控校验失败`, 同时 `data` 中出现 `v_voucher` 字段
|
||||
|
||||
`v_voucher` 结构为字符串 `voucher_` 尾随一串以 `-` 为分隔符的小写 UUID
|
||||
|
||||
`v_voucher` 可用于申请 captcha 验证码, 根据验证结果使用 `validate` 接口获取 `grisk_id` 作为被风控接口的 `gaia_vtoken` 与 Cookie 中的 `x-bili-gaia-vtoken` 即可恢复正常访问
|
||||
|
||||
若该情况出现在使用 Wbi 签名的接口中, 建议先检查 Wbi 签名是否正确. 若已检查 Wbi 签名或无需签名, 检查请求头中 `User-Agent` `Referer` 是否正常, 以及 `Cookie` 中 [`bili_ticket`](bili_ticket.md) [`b_nut` `buvid3` `buvid4`](../buvid3_4.md) 等是否存在. 使用 captcha 是最后的选择, 因为 captcha 验证需要用户操作<!--, 且这几天做验证码做的真的要疯了喵-->
|
||||
|
||||
参见 [#1067](https://github.com/SocialSisterYi/bilibili-API-collect/issues/1067)
|
||||
|
||||
## 操作流程
|
||||
|
||||
1. 快速以不正确的姿势请求接口, 直到返回 `v_voucher` 字段如下
|
||||
|
||||
```json
|
||||
{
|
||||
"code": -352,
|
||||
"message": "风控校验失败",
|
||||
"ttl": 1,
|
||||
"data": {
|
||||
"v_voucher": "voucher_84a8c3ce-33f5-4551-9552-9c6b13aa7938"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
2. [请求 `register` 接口](#从-v_voucher-申请-captcha), 请求体传入 `csrf` 及 `v_voucher`, 该接口返回与 [申请captcha验证码](../../login/login_action/readme.md#申请captcha验证码) 部分相同, 记录此处返回的 `token` `challenge`
|
||||
|
||||
3. 按照 [验证captcha验证码](../../login/login_action/readme.md#验证captcha验证码) 进行验证, 记下验证结果的 `validate` 与 `seccode`
|
||||
|
||||
4. [请求 `validate` 接口](#从验证结果获取-grisk_id), 请求体传入 `challenge` `token` `validate` `seccode` `csrf`, 该接口返回 `grisk_id` 即 `gaia_vtoken`
|
||||
|
||||
5. 重新请求原接口, 原 URL 参数加入 `gaia_vtoken`, 即恢复正常
|
||||
|
||||
## 接口列表
|
||||
|
||||
### 从 v_voucher 申请 captcha
|
||||
|
||||
> https://api.bilibili.com/x/gaia-vgate/v1/register
|
||||
|
||||
注: 同一有效 `v_voucher` 只能请求一次, 请求完毕请立即 [进行验证](../../login/login_action/readme.md#进行验证) 防止过期失效
|
||||
|
||||
*请求方式: POST*
|
||||
|
||||
**正文参数(application/x-www-form-urlencoded):**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | ---- | ------- | ------ | ---- |
|
||||
| csrf | str | CSRF Token (位于 Cookie 的 bili_jct) | 非必要 | |
|
||||
| v_voucher | str | v_voucher | 必要 | |
|
||||
|
||||
**JSON回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ----- | ---- | ------ | ---- |
|
||||
| code | num | 返回值 | 0:成功<br />100000: 验证码获取失败 |
|
||||
| message | str | 错误信息 | 默认为 0 |
|
||||
| ttl | num | 1 | |
|
||||
| data | obj | 信息本体 | |
|
||||
|
||||
`data` 对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ----- | ---- | ------ | ---- |
|
||||
| type | str | 验证码类型 | 目前只有 `geetest` |
|
||||
| token | str | 验证码 token | 用于验证 |
|
||||
| geetest | obj | 极验信息 | 若为 null 则说明该风控无法通过 captcha 解除 |
|
||||
| biliword | null | | |
|
||||
| phone | null | | |
|
||||
| sms | null | | |
|
||||
|
||||
`geetest` 对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| -------- | ----- | ------ | -------- |
|
||||
| gt | str | 极验id | 一般为固定值 |
|
||||
| challenge | str | 极验KEY | 由B站后端产生用于人机验证 |
|
||||
|
||||
**示例:**
|
||||
|
||||
假设此处 `v_voucher` 为 `voucher_ecca35e6-36da-4f38-bd84-b3f420ea08c1`
|
||||
|
||||
```shell
|
||||
curl -X POST "https://api.bilibili.com/x/gaia-vgate/v1/register" \
|
||||
--data-urlencode "v_voucher=voucher_ecca35e6-36da-4f38-bd84-b3f420ea08c1"
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1,
|
||||
"data": {
|
||||
"type": "geetest",
|
||||
"token": "e7abdb050c3d4609979f1685137e3bc0",
|
||||
"geetest": {
|
||||
"challenge": "85118f8714875ca4c6d5641bb0ce9ddf",
|
||||
"gt": "ac597a4506fee079629df5d8b66dd4fe"
|
||||
},
|
||||
"biliword": null,
|
||||
"phone": null,
|
||||
"sms": null
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 从验证结果获取 grisk_id
|
||||
|
||||
> https://api.bilibili.com/x/gaia-vgate/v1/validate
|
||||
|
||||
*请求方式: POST*
|
||||
|
||||
**正文参数(application/x-www-form-urlencoded):**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | ---- | ------ | ---- | ---- |
|
||||
| csrf | str | CSRF Token (位于 Cookie 的 bili_jct) | 非必要 | 若登陆则必要 |
|
||||
| challenge | str | 验证码 challenge | 必要 | |
|
||||
| token | str | 验证码 token | 必要 | |
|
||||
| validate | str | 验证结果 validate | 必要 | |
|
||||
| seccode | str | 验证结果 seccode | 必要 | |
|
||||
|
||||
**JSON回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ----- | ---- | ------ | ---- |
|
||||
| code | num | 返回值 | 0:成功<br />-111: csrf 校验失败<br />100003: 验证码过期 |
|
||||
| message | str | 错误信息 | 默认为 0 |
|
||||
| ttl | num | 1 | |
|
||||
| data | obj | 信息本体 | |
|
||||
|
||||
`data` 对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ----- | ---- | ------ | ---- |
|
||||
| is_valid | num | 验证结果 | 1:验证成功 |
|
||||
| grisk_id | str | gaia_vtoken | 用于恢复正常访问 |
|
||||
|
||||
**示例:**
|
||||
|
||||
```shell
|
||||
curl -X POST "https://api.bilibili.com/x/gaia-vgate/v1/validate" \
|
||||
--data-urlencode "challenge=e4fcb337b8c0427b56320f97e1064210" \
|
||||
--data-urlencode "csrf=xxxxxxxxxxxxxxx" \
|
||||
--data-urlencode "seccode=360f7b9cf75c74c68fbb7475416d0e0d|jordan" \
|
||||
--data-urlencode "token=0e1e58bdff3d4b8aa298e346fed07eeb" \
|
||||
--data-urlencode "validate=360f7b9cf75c74c68fbb7475416d0e0d"
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1,
|
||||
"data": {
|
||||
"is_valid": 1,
|
||||
"grisk_id": "2e91cf2b67172ca8432fe7c9ab66a5c4"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
@ -2,7 +2,7 @@
|
||||
|
||||
自 2023 年 3 月起,Bilibili Web 端部分接口开始采用 WBI 签名鉴权,表现在 REST API 请求时在 Query param 中添加了 `w_rid` 和 `wts` 字段。WBI 签名鉴权独立于 [APP 鉴权](APP.md) 与其他 Cookie 鉴权,目前被认为是一种 Web 端风控手段。
|
||||
|
||||
经持续观察,大部分查询性接口都已经或准备采用 WBI 签名鉴权,请求 WBI 签名鉴权接口时,若签名参数 `w_rid` 与时间戳 `wts` 缺失、错误,会返回 `v_voucher`(推测为内部记录错误请求的 ID 方便 Debug),如:
|
||||
经持续观察,大部分查询性接口都已经或准备采用 WBI 签名鉴权,请求 WBI 签名鉴权接口时,若签名参数 `w_rid` 与时间戳 `wts` 缺失、错误,会返回 `v_voucher`,如:
|
||||
|
||||
```json
|
||||
{"code":0,"message":"0","ttl":1,"data":{"v_voucher":"voucher_******"}}
|
||||
@ -17,6 +17,7 @@
|
||||
1. 获取实时口令 `img_key`、`sub_key`
|
||||
|
||||
从 [nav 接口](../../login/login_info.md#导航栏用户信息) 中获取 `img_url`、`sub_url` 两个字段的参数。
|
||||
或从 [bili_ticket 接口](bili_ticket.md#接口) 中获取 `img` `sub` 两个字段的参数。
|
||||
|
||||
**注:`img_url`、`sub_url` 两个字段的值看似为存于 BFS 中的 png 图片 url,实则只是经过伪装的实时 Token,故无需且不能试图访问这两个 url**
|
||||
|
||||
|
@ -46,6 +46,59 @@ curl 'https://api.bilibili.com/x/report/click/now'
|
||||
|
||||
</details>
|
||||
|
||||
## 获取适用于 RTC 的时间戳
|
||||
|
||||
> https://api.live.bilibili.com/xlive/open-interface/v1/rtc/getTimestamp
|
||||
|
||||
*请求方法: GET*
|
||||
|
||||
<!--{
|
||||
"from": {
|
||||
"url": "https://live.bilibili.com/9196015"
|
||||
}
|
||||
}-->
|
||||
|
||||
**JSON回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | - | - |
|
||||
| code | num | 返回值 | 0:成功 |
|
||||
| message | str | 错误信息 | 默认为 0 |
|
||||
| ttl | num | 1 | |
|
||||
| data | obj | 信息本体 | |
|
||||
|
||||
`data` 对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | - | - |
|
||||
| timestamp | num | 服务器端UTC时间戳 | |
|
||||
| microtime | num | 服务器端UTC时间戳 (毫秒) | |
|
||||
|
||||
**示例:**
|
||||
|
||||
```shell
|
||||
curl 'https://api.live.bilibili.com/xlive/open-interface/v1/rtc/getTimestamp'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1,
|
||||
"data": {
|
||||
"timestamp": 1723899823,
|
||||
"microtime": 1723899823683
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 获取服务器端UTC时间
|
||||
|
||||
> https://interface.bilibili.com/serverdate.js
|
||||
@ -64,11 +117,11 @@ window.serverdate = Date.UTC(YYYY, M, D, h, m, s);
|
||||
curl 'https://interface.bilibili.com/serverdate.js'
|
||||
```
|
||||
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```js
|
||||
window.serverdate = Date.UTC(2021, 4, 16, 17, 31, 8);
|
||||
```
|
||||
|
||||
</details>
|
||||
|
@ -65,6 +65,123 @@ curl 'https://api.bilibili.com/x/web-interface/search/default'
|
||||
|
||||
</details>
|
||||
|
||||
## 获取热搜列表
|
||||
|
||||
> https://api.bilibili.com/x/web-interface/search/square
|
||||
|
||||
*请求方式: GET*
|
||||
|
||||
**URL参数:**
|
||||
|
||||
|参数名|类型|内容|必要性|备注|
|
||||
|-|-|-|-|-|
|
||||
|limit|num|结果限制|必要|范围 [1, 50]|
|
||||
|platform|str|平台标识|不必要|web: web 端|
|
||||
|
||||
**JSON回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
|字段|类型|内容|备注|
|
||||
|-|-|-|-|
|
||||
|code|num|返回值|0: 成功<br />-400: 请求错误|
|
||||
|message|str|错误信息|默认为空|
|
||||
|ttl|num|1||
|
||||
|data|obj|数据本体||
|
||||
|
||||
`data`对象:
|
||||
|
||||
|字段|类型|内容|备注|
|
||||
|-|-|-|-|
|
||||
|trending|obj|热搜榜单|套了个娃|
|
||||
|
||||
`data`中的`trending`对象:
|
||||
|
||||
|字段|类型|内容|备注|
|
||||
|-|-|-|-|
|
||||
|title|str|标题||
|
||||
|trackid|str|跟踪 ID?||
|
||||
|list|array|热搜列表||
|
||||
|top_list|array|空||
|
||||
|
||||
`trending`中的`list`数组:
|
||||
|
||||
|项|类型|内容|备注|
|
||||
|-|-|-|-|
|
||||
|0|obj|热搜 1||
|
||||
|1|obj|热搜 2||
|
||||
|……|obj|……||
|
||||
|n|obj|热搜 (n+1)||
|
||||
|
||||
`list`数组中的对象:
|
||||
|
||||
|字段|类型|内容|备注|
|
||||
|-|-|-|-|
|
||||
|keyword|str|关键词||
|
||||
|show_name|str|显示文字||
|
||||
|icon|str|图标 URL||
|
||||
|uri|str|空||
|
||||
|goto|str|空||
|
||||
|
||||
**示例:**
|
||||
|
||||
获取热搜列表, 数量限制 4
|
||||
|
||||
```shell
|
||||
curl -G --url 'https://api.bilibili.com/x/web-interface/search/square' \
|
||||
--url-query 'limit=4'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1,
|
||||
"data": {
|
||||
"trending": {
|
||||
"title": "bilibili热搜",
|
||||
"trackid": "8079760748892487175",
|
||||
"list": [
|
||||
{
|
||||
"keyword": "马克龙祝贺中国世界前两名",
|
||||
"show_name": "马克龙祝贺中国世界前两名",
|
||||
"icon": "http://i0.hdslb.com/bfs/activity-plat/static/20221213/eaf2dd702d7cc14d8d9511190245d057/lrx9rnKo24.png",
|
||||
"uri": "",
|
||||
"goto": ""
|
||||
},
|
||||
{
|
||||
"keyword": "小孩电竞世界杯夺冠",
|
||||
"show_name": "小孩电竞世界杯夺冠",
|
||||
"icon": "http://i0.hdslb.com/bfs/activity-plat/static/20221213/eaf2dd702d7cc14d8d9511190245d057/lrx9rnKo24.png",
|
||||
"uri": "",
|
||||
"goto": ""
|
||||
},
|
||||
{
|
||||
"keyword": "孙颖莎说我全勤下班了",
|
||||
"show_name": "孙颖莎说我全勤下班了",
|
||||
"icon": "http://i0.hdslb.com/bfs/activity-plat/static/20221118/eaf2dd702d7cc14d8d9511190245d057/UF7B1wVKT2.png",
|
||||
"uri": "",
|
||||
"goto": ""
|
||||
},
|
||||
{
|
||||
"keyword": "7月广东新冠新增一万余例",
|
||||
"show_name": "7月广东新冠新增一万余例",
|
||||
"icon": "http://i0.hdslb.com/bfs/activity-plat/static/20221213/eaf2dd702d7cc14d8d9511190245d057/lrx9rnKo24.png",
|
||||
"uri": "",
|
||||
"goto": ""
|
||||
}
|
||||
],
|
||||
"top_list": []
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 获取热搜列表(web端)
|
||||
|
||||
> https://s.search.bilibili.com/main/hotword
|
||||
@ -109,7 +226,7 @@ curl 'https://api.bilibili.com/x/web-interface/search/default'
|
||||
| res | array| null | |
|
||||
| show_name | str | 完整关键词| |
|
||||
| pos | num | 名次 | 1-10 |
|
||||
| word_type | num | 条目属性 | 均返回8 |
|
||||
| word_type | num | 条目属性 | 4: 新<br />5: 热<br />6: [雾,咒,小丑(愚人节)] 具体看icon<b r/>7: 直播中<br />8: 默认(无标签)<br />9: 梗<br />11: 话题<br />12: 独家 |
|
||||
| id | num | 名次 | 1-10 |
|
||||
| goto_value | str | 空 | |
|
||||
| live_id | array| null | |
|
||||
@ -353,7 +470,7 @@ curl 'https://s.search.bilibili.com/main/hotword'
|
||||
|
||||
*请求方式:GET*
|
||||
|
||||
榜单每隔固定时间统计一次,请求后返回搜索前20的关键词
|
||||
榜单每隔固定时间统计一次
|
||||
|
||||
带有转义
|
||||
|
||||
@ -361,7 +478,7 @@ curl 'https://s.search.bilibili.com/main/hotword'
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------- | ---- | ---------------- | ------ | ---- |
|
||||
| limit | num | 热搜数量 | 非必要 | 1~100 |
|
||||
| limit | num | 热搜数量 | 非必要 | 留空为20, 最大为100 |
|
||||
|
||||
**json回复:**
|
||||
|
||||
@ -395,7 +512,7 @@ curl 'https://s.search.bilibili.com/main/hotword'
|
||||
| position | num | 名次 | 1-20/limit |
|
||||
| keyword | str | 关键词 | |
|
||||
| show_name | str | 完整关键词| |
|
||||
| word_type | num | 条目属性 | 4:新<br />5:热<br />6:雾?<br />8:默认 |
|
||||
| word_type | num | 条目属性 | 同 web 端 |
|
||||
| icon | str | 图标url | |
|
||||
| hot_id | num | 热词id | 大概是吧? |
|
||||
|
||||
|
@ -579,8 +579,6 @@ curl -G 'https://api.bilibili.com/x/web-interface/search/all/v2' \
|
||||
|
||||
</details>
|
||||
|
||||
|
||||
|
||||
## 分类搜索(web端)
|
||||
|
||||
> https://api.bilibili.com/x/web-interface/wbi/search/type
|
||||
@ -589,9 +587,7 @@ curl -G 'https://api.bilibili.com/x/web-interface/search/all/v2' \
|
||||
|
||||
*请求方式:GET*
|
||||
|
||||
认证方式:Cookie(SESSDATA)
|
||||
|
||||
鉴权方式:[Wbi 签名](../misc/sign/wbi.md)
|
||||
鉴权方式:[Wbi 签名](../misc/sign/wbi.md), Cookie 中含有 [`buvid3`](../misc/buvid3_4.md) 字段, Referer 在 `.bilibili.com` 下, User-Agent 不含敏感子串
|
||||
|
||||
根据关键词进行搜索,返回结果每页20项
|
||||
|
||||
|
@ -12,11 +12,26 @@
|
||||
|
||||
**url参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| --------- | ---- | ---------------------- | ------ | ------------------------ |
|
||||
| term | str | 需要获得建议的输入内容 | 必要 | |
|
||||
| main_ver | str | v1 | 非必要 | 固定为`v1` |
|
||||
| highlight | str | 任意 | 非必要 | 有此项开启关键词高亮标签 |
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| --------------- | ---- | ---------------------- | ------ | ------------------------ |
|
||||
| term | str | 需要获得建议的输入内容 | 必要 | |
|
||||
| main_ver | str | v1 | 非必要 | 默认为 `v1` |
|
||||
| highlight | str | 任意, 无明显作用 | 非必要 | 默认为空 |
|
||||
| func | str | 函数? | 非必要 | 默认为 `suggest` |
|
||||
| suggest_type | str | 建议类型? | 非必要 | 默认为 `accurate` |
|
||||
| sub_type | str | 子类型? | 非必要 | 默认为 `tag` |
|
||||
| userid | num | 本用户 mid | 非必要 | 可能用于个性化推荐 |
|
||||
| bangumi_acc_num | num | 番剧累积数? | 非必要 | 默认为 `1` |
|
||||
| special_acc_num | num | 特殊累积数? | 非必要 | 默认为 `1` |
|
||||
| topic_acc_num | num | 话题累积数? | 非必要 | 默认为 `1` |
|
||||
| upuser_acc_num | num | UP主累积数? | 非必要 | 默认为 `1` |
|
||||
| tag_num | num | Tag 数? | 非必要 | 默认为 `10` |
|
||||
| special_num | num | 特殊推荐数? | 非必要 | 默认为 `10` |
|
||||
| bangumi_num | num | 番剧推荐数? | 非必要 | 默认为 `10` |
|
||||
| upuser_num | num | UP主推荐数? | 非必要 | 默认为 `3` |
|
||||
| rnd | num | 一个随机浮点数 | 非必要 | 由 `Math.random()` 生成? |
|
||||
| buvid | str | 同 Cookie 中 buvid3 | 非必要 | |
|
||||
| spmid | str | 333.1007 | 非必要 | |
|
||||
|
||||
**json回复:**
|
||||
|
||||
@ -24,27 +39,11 @@
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ----------- | ---- | ------------ | ------------ |
|
||||
| exp_str | str | 实验字符串? | 作用尚不明确 |
|
||||
| code | num | 返回值 | 0:成功 |
|
||||
| cost | obj | 详细搜索用时 | 大概是吧? |
|
||||
| result | obj | 搜索建议结果 | |
|
||||
| page caches | obj | ??? | 作用尚不明确 |
|
||||
| sengine | obj | ??? | 作用尚不明确 |
|
||||
| stoken | str | ??? | 作用尚不明确 |
|
||||
|
||||
`cost`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ----- | ---- | -------- | ---- |
|
||||
| about | obj | 套了个娃 | |
|
||||
|
||||
`cost`中的`about`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------------ | ---- | ---- | ---- |
|
||||
| params_check | str | | |
|
||||
| total | str | | |
|
||||
| main_handler | str | | |
|
||||
|
||||
`result`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
@ -61,120 +60,115 @@
|
||||
|
||||
`tag`数组中的对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ----- | ---- | ---------- | ------------------------------------------------------------ |
|
||||
| value | str | 关键词内容 | |
|
||||
| ref | num | 0 | 作用尚不明确 |
|
||||
| name | str | 显示内容 | 在无高亮显示时与`value`相同<br />有高亮显示时带有`<em class="suggest_high_light">`的xml标签 |
|
||||
| spid | num | ??? | 作用尚不明确 |
|
||||
|
||||
`page caches`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ---------- | ---- | ---- | ------------ |
|
||||
| save cache | str | no | 作用尚不明确 |
|
||||
|
||||
`sengine`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ----- | ---- | ---- | ------------ |
|
||||
| usage | num | 0 | 作用尚不明确 |
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ----- | ---- | ---------- | -------------------------------------------------- |
|
||||
| value | str | 关键词内容 | |
|
||||
| ref | num | 0 | 作用尚不明确 |
|
||||
| name | str | 显示内容 | 带有 `<em class="suggest_high_light">` 的 XML 标签 |
|
||||
| spid | num | 5 | 作用尚不明确 |
|
||||
| type | str | 空 | |
|
||||
|
||||
**示例:**
|
||||
|
||||
获取关于`lei`的搜索建议,关键词带有高亮
|
||||
获取关于 `洛天依` 的搜索建议
|
||||
|
||||
```shell
|
||||
curl -G 'https://s.search.bilibili.com/main/suggest' \
|
||||
--data-urlencode 'term=lei' \
|
||||
--data-urlencode 'main_ver=v1' \
|
||||
--data-urlencode 'highlight='
|
||||
--data-urlencode 'term=洛天依'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"cost": {
|
||||
"about": {
|
||||
"params_check": "0.000103",
|
||||
"total": "0.011644",
|
||||
"main_handler": "0.011472"
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"tag": [
|
||||
{
|
||||
"value": "雷军",
|
||||
"ref": 0,
|
||||
"name": "雷军",
|
||||
"spid": 1
|
||||
},
|
||||
{
|
||||
"value": "雷之律者",
|
||||
"ref": 0,
|
||||
"name": "雷之律者",
|
||||
"spid": 5
|
||||
},
|
||||
{
|
||||
"value": "LEI神",
|
||||
"ref": 0,
|
||||
"name": "<em class=\"suggest_high_light\">LEI</em>神",
|
||||
"spid": 5
|
||||
},
|
||||
{
|
||||
"value": "LEIGH ELLEXSON",
|
||||
"ref": 0,
|
||||
"name": "<em class=\"suggest_high_light\">LEI</em>GH ELLEXSON",
|
||||
"spid": 5
|
||||
},
|
||||
{
|
||||
"value": "LEICA Q2",
|
||||
"ref": 0,
|
||||
"name": "<em class=\"suggest_high_light\">LEI</em>CA Q2",
|
||||
"spid": 5
|
||||
},
|
||||
{
|
||||
"value": "LEIGHANNE",
|
||||
"ref": 0,
|
||||
"name": "<em class=\"suggest_high_light\">LEI</em>GHANNE",
|
||||
"spid": 0
|
||||
},
|
||||
{
|
||||
"value": "雷达探测姬",
|
||||
"ref": 0,
|
||||
"name": "雷达探测姬",
|
||||
"spid": 5
|
||||
},
|
||||
{
|
||||
"value": "雷律",
|
||||
"ref": 0,
|
||||
"name": "雷律",
|
||||
"spid": 5
|
||||
},
|
||||
{
|
||||
"value": "雷霆嘎巴",
|
||||
"ref": 0,
|
||||
"name": "雷霆嘎巴",
|
||||
"spid": 5
|
||||
},
|
||||
{
|
||||
"value": "雷霆沙赞",
|
||||
"ref": 0,
|
||||
"name": "雷霆沙赞",
|
||||
"spid": 5
|
||||
}
|
||||
]
|
||||
},
|
||||
"page caches": {
|
||||
"save cache": "no"
|
||||
},
|
||||
"sengine": {
|
||||
"usage": 0
|
||||
},
|
||||
"stoken": "12344377692164099019"
|
||||
"exp_str": "106301_106700",
|
||||
"code": 0,
|
||||
"result": {
|
||||
"tag": [
|
||||
{
|
||||
"value": "洛天依",
|
||||
"term": "洛天依",
|
||||
"ref": 0,
|
||||
"name": "<em class=\"suggest_high_light\">洛天依</em>",
|
||||
"spid": 5,
|
||||
"type": ""
|
||||
},
|
||||
{
|
||||
"value": "洛天依十二周年",
|
||||
"term": "洛天依十二周年",
|
||||
"ref": 0,
|
||||
"name": "<em class=\"suggest_high_light\">洛天依</em>十二周年",
|
||||
"spid": 5,
|
||||
"type": ""
|
||||
},
|
||||
{
|
||||
"value": "洛天依演唱会",
|
||||
"term": "洛天依演唱会",
|
||||
"ref": 0,
|
||||
"name": "<em class=\"suggest_high_light\">洛天依</em>演唱会",
|
||||
"spid": 5,
|
||||
"type": ""
|
||||
},
|
||||
{
|
||||
"value": "洛天依手办",
|
||||
"term": "洛天依手办",
|
||||
"ref": 0,
|
||||
"name": "<em class=\"suggest_high_light\">洛天依</em>手办",
|
||||
"spid": 5,
|
||||
"type": ""
|
||||
},
|
||||
{
|
||||
"value": "洛天依歌曲",
|
||||
"term": "洛天依歌曲",
|
||||
"ref": 0,
|
||||
"name": "<em class=\"suggest_high_light\">洛天依</em>歌曲",
|
||||
"spid": 5,
|
||||
"type": ""
|
||||
},
|
||||
{
|
||||
"value": "洛天依童话镇",
|
||||
"term": "洛天依童话镇",
|
||||
"ref": 0,
|
||||
"name": "<em class=\"suggest_high_light\">洛天依</em>童话镇",
|
||||
"spid": 5,
|
||||
"type": ""
|
||||
},
|
||||
{
|
||||
"value": "洛天依东京不太热",
|
||||
"term": "洛天依东京不太热",
|
||||
"ref": 0,
|
||||
"name": "<em class=\"suggest_high_light\">洛天依</em>东京不太热",
|
||||
"spid": 5,
|
||||
"type": ""
|
||||
},
|
||||
{
|
||||
"value": "洛天依霜雪千年",
|
||||
"term": "洛天依霜雪千年",
|
||||
"ref": 0,
|
||||
"name": "<em class=\"suggest_high_light\">洛天依</em>霜雪千年",
|
||||
"spid": 5,
|
||||
"type": ""
|
||||
},
|
||||
{
|
||||
"value": "洛天依生日会",
|
||||
"term": "洛天依生日会",
|
||||
"ref": 0,
|
||||
"name": "<em class=\"suggest_high_light\">洛天依</em>生日会",
|
||||
"spid": 5,
|
||||
"type": ""
|
||||
},
|
||||
{
|
||||
"value": "洛天依生日",
|
||||
"term": "洛天依生日",
|
||||
"ref": 0,
|
||||
"name": "<em class=\"suggest_high_light\">洛天依</em>生日",
|
||||
"spid": 5,
|
||||
"type": ""
|
||||
}
|
||||
]
|
||||
},
|
||||
"stoken": "4020133863501304726"
|
||||
}
|
||||
```
|
||||
|
||||
|
822
docs/user/medals.md
Normal file
822
docs/user/medals.md
Normal file
@ -0,0 +1,822 @@
|
||||
# 所有粉丝勋章
|
||||
|
||||
## 指定用户的所有粉丝勋章信息
|
||||
|
||||
> https://api.live.bilibili.com/xlive/web-ucenter/user/MedalWall
|
||||
|
||||
*请求方法: GET*
|
||||
|
||||
认证方式: Cookie (SESSDATA)
|
||||
|
||||
<!--{
|
||||
"gh": [425]
|
||||
}-->
|
||||
|
||||
**URL参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| --------- | ---- | -------- | ------ | ---- |
|
||||
| target_id | num | 目标 mid | 必要 | |
|
||||
|
||||
**JSON回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | ----------------------------- |
|
||||
| code | num | 返回值 | 0: 成功<br />-101: 账号未登录 |
|
||||
| message | str | 错误信息 | 默认为 0 |
|
||||
| ttl | num | 1 | |
|
||||
| data | obj | 数据本体 | 失败时不存在 |
|
||||
|
||||
`data` 对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ----------------- | ----- | --------------------- | ----- |
|
||||
| list | array | 勋章列表 | |
|
||||
| count | num | 勋章数 | |
|
||||
| close_space_medal | num | 关闭空间粉丝勋章显示? | 0: 否 |
|
||||
| only_show_wearing | num | 只显示当前佩戴的? | 0: 否 |
|
||||
| name | str | 目标用户名 | |
|
||||
| icon | str | 目标用户头像 URL | |
|
||||
| uid | num | 目标用户 mid | |
|
||||
| level | num | 目标用户等级 | |
|
||||
|
||||
`data` 对象中 `list` 数组中的对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ----------- | ---- | ------------ | ---- |
|
||||
| medal_info | obj | 勋章信息 | |
|
||||
| target_name | str | 主播名称 | |
|
||||
| target_icon | str | 主播头像 URL | |
|
||||
| link | str | 主播主页 URL | |
|
||||
| live_status | num | 直播状态 | 0: 未直播<br />1: 正在直播<br />2: 轮播中 |
|
||||
| offical | num | 主播认证类型 | 参见 [用户认证类型一览](offical_role.md) |
|
||||
| uinfo_medal | str | 用户勋章信息 | |
|
||||
|
||||
`list` 数组中的对象中的 `medal_info` 对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ----------------- | ---- | -------- | ---- |
|
||||
| target_id | num | 主播 mid | |
|
||||
| level | num | 勋章等级 | |
|
||||
| medal_name | str | 勋章名称 | |
|
||||
| medal_color_start | num | 勋章开始颜色 | 十进制(自行转换为16进制) |
|
||||
| medal_color_end | num | 勋章结束颜色 | 同上 |
|
||||
| medal_color_border | num | 勋章边框颜色 | 同上 |
|
||||
| guard_level | num | 守护等级? | |
|
||||
| wearing_status | num | 佩戴状态 | 0: 未佩戴<br />1: 佩戴中 |
|
||||
| medal_id | num | 勋章 ID | |
|
||||
| intimacy | num | 当前亲密度 | |
|
||||
| next_intimacy | num | 下一等级所需亲密度 | |
|
||||
| today_feed | num | 今日已获得亲密度 | |
|
||||
| day_limit | num | 亲密度每日上限? | |
|
||||
| guard_icon | str | 守护徽章图标 URL? | |
|
||||
| honor_icon | str | 荣誉徽章图标 URL? | |
|
||||
|
||||
`list` 数组中的对象中的 `uinfo_medal` 对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | ---- | ---- |
|
||||
| name | str | 勋章名称 | |
|
||||
| level | num | 勋章等级 | |
|
||||
| color_start | num | 勋章开始颜色 | 十进制(自行转换为16进制) |
|
||||
| color_end | num | 勋章结束颜色 | 同上 |
|
||||
| color_border | num | 勋章边框颜色 | 同上 |
|
||||
| color | num | 勋章文本色? | 同上 |
|
||||
| id | num | 勋章 ID | |
|
||||
| typ | num | 勋章类型? | |
|
||||
| is_light | num | 勋章亮色? | |
|
||||
| ruid | num | 主播 mid | |
|
||||
| guard_level | num | 守护等级? | |
|
||||
| score | num | 勋章分数? | |
|
||||
| guard_icon | str | 守护徽章图标 URL? | |
|
||||
| honor_icon | str | 荣誉徽章图标 URL? | |
|
||||
| v2_medal_color_start | str | 勋章开始颜色 | 16进制 |
|
||||
| v2_medal_color_end | str | 勋章结束颜色 | 同上 |
|
||||
| v2_medal_color_border | str | 勋章边框颜色 | 同上 |
|
||||
| v2_medal_color_text | str | 勋章文本色 | 同上 |
|
||||
| v2_medal_color_level | str | 勋章等级颜色 | 同上 |
|
||||
| user_receive_count | num | 勋章已获得数量? | |
|
||||
|
||||
**示例:**
|
||||
|
||||
```shell
|
||||
curl -G 'https://api.live.bilibili.com/xlive/web-ucenter/user/MedalWall' \
|
||||
--url-query 'target_id=293793435' \
|
||||
-b 'SESSDATA=xxx'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1,
|
||||
"data": {
|
||||
"list": [
|
||||
{
|
||||
"medal_info": {
|
||||
"target_id": 178429408,
|
||||
"level": 3,
|
||||
"medal_name": "滑稽果",
|
||||
"medal_color_start": 6067854,
|
||||
"medal_color_end": 6067854,
|
||||
"medal_color_border": 6067854,
|
||||
"guard_level": 0,
|
||||
"wearing_status": 1,
|
||||
"medal_id": 113190,
|
||||
"intimacy": 248,
|
||||
"next_intimacy": 500,
|
||||
"today_feed": 0,
|
||||
"day_limit": 2000,
|
||||
"guard_icon": "",
|
||||
"honor_icon": ""
|
||||
},
|
||||
"target_name": "老弟一号",
|
||||
"target_icon": "https://i1.hdslb.com/bfs/face/21426275f3d3149b96b88783275205ba574c09e3.jpg",
|
||||
"link": "https://space.bilibili.com/178429408",
|
||||
"live_status": 2,
|
||||
"official": 1,
|
||||
"uinfo_medal": {
|
||||
"name": "滑稽果",
|
||||
"level": 3,
|
||||
"color_start": 6067854,
|
||||
"color_end": 6067854,
|
||||
"color_border": 6067854,
|
||||
"color": 0,
|
||||
"id": 113190,
|
||||
"typ": 0,
|
||||
"is_light": 1,
|
||||
"ruid": 178429408,
|
||||
"guard_level": 0,
|
||||
"score": 0,
|
||||
"guard_icon": "",
|
||||
"honor_icon": "",
|
||||
"v2_medal_color_start": "#5762A799",
|
||||
"v2_medal_color_end": "#5762A799",
|
||||
"v2_medal_color_border": "#5762A799",
|
||||
"v2_medal_color_text": "#FFFFFFFF",
|
||||
"v2_medal_color_level": "#000B7099",
|
||||
"user_receive_count": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"medal_info": {
|
||||
"target_id": 15858903,
|
||||
"level": 9,
|
||||
"medal_name": "二技猿",
|
||||
"medal_color_start": 9272486,
|
||||
"medal_color_end": 9272486,
|
||||
"medal_color_border": 9272486,
|
||||
"guard_level": 0,
|
||||
"wearing_status": 0,
|
||||
"medal_id": 159670,
|
||||
"intimacy": 168,
|
||||
"next_intimacy": 1900,
|
||||
"today_feed": 0,
|
||||
"day_limit": 3000,
|
||||
"guard_icon": "",
|
||||
"honor_icon": ""
|
||||
},
|
||||
"target_name": "暮光小猿wzt",
|
||||
"target_icon": "https://i0.hdslb.com/bfs/face/4113913241f83b03301c316fec6e4c3923bef64e.jpg",
|
||||
"link": "https://space.bilibili.com/15858903",
|
||||
"live_status": 0,
|
||||
"official": 0,
|
||||
"uinfo_medal": {
|
||||
"name": "二技猿",
|
||||
"level": 9,
|
||||
"color_start": 9272486,
|
||||
"color_end": 9272486,
|
||||
"color_border": 9272486,
|
||||
"color": 0,
|
||||
"id": 159670,
|
||||
"typ": 0,
|
||||
"is_light": 1,
|
||||
"ruid": 15858903,
|
||||
"guard_level": 0,
|
||||
"score": 0,
|
||||
"guard_icon": "",
|
||||
"honor_icon": "",
|
||||
"v2_medal_color_start": "#596FE099",
|
||||
"v2_medal_color_end": "#596FE099",
|
||||
"v2_medal_color_border": "#596FE099",
|
||||
"v2_medal_color_text": "#FFFFFFFF",
|
||||
"v2_medal_color_level": "#000B7099",
|
||||
"user_receive_count": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"medal_info": {
|
||||
"target_id": 24022863,
|
||||
"level": 7,
|
||||
"medal_name": "粉丝团",
|
||||
"medal_color_start": 6126494,
|
||||
"medal_color_end": 6126494,
|
||||
"medal_color_border": 6126494,
|
||||
"guard_level": 0,
|
||||
"wearing_status": 0,
|
||||
"medal_id": 233401,
|
||||
"intimacy": 1499,
|
||||
"next_intimacy": 1600,
|
||||
"today_feed": 0,
|
||||
"day_limit": 2000,
|
||||
"guard_icon": "",
|
||||
"honor_icon": ""
|
||||
},
|
||||
"target_name": "黄禄轩电脑专用账号",
|
||||
"target_icon": "https://i0.hdslb.com/bfs/face/a70ec7d2a3822980a915ef4b30371af0cbc79132.jpg",
|
||||
"link": "https://space.bilibili.com/24022863",
|
||||
"live_status": 2,
|
||||
"official": 0,
|
||||
"uinfo_medal": {
|
||||
"name": "粉丝团",
|
||||
"level": 7,
|
||||
"color_start": 6126494,
|
||||
"color_end": 6126494,
|
||||
"color_border": 6126494,
|
||||
"color": 0,
|
||||
"id": 233401,
|
||||
"typ": 0,
|
||||
"is_light": 1,
|
||||
"ruid": 24022863,
|
||||
"guard_level": 0,
|
||||
"score": 0,
|
||||
"guard_icon": "",
|
||||
"honor_icon": "",
|
||||
"v2_medal_color_start": "#5866C799",
|
||||
"v2_medal_color_end": "#5866C799",
|
||||
"v2_medal_color_border": "#5866C799",
|
||||
"v2_medal_color_text": "#FFFFFFFF",
|
||||
"v2_medal_color_level": "#000B7099",
|
||||
"user_receive_count": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"medal_info": {
|
||||
"target_id": 1347373376,
|
||||
"level": 6,
|
||||
"medal_name": "Geek范",
|
||||
"medal_color_start": 6126494,
|
||||
"medal_color_end": 6126494,
|
||||
"medal_color_border": 6126494,
|
||||
"guard_level": 0,
|
||||
"wearing_status": 0,
|
||||
"medal_id": 658512,
|
||||
"intimacy": 999,
|
||||
"next_intimacy": 1500,
|
||||
"today_feed": 0,
|
||||
"day_limit": 2000,
|
||||
"guard_icon": "",
|
||||
"honor_icon": ""
|
||||
},
|
||||
"target_name": "GeekLogic",
|
||||
"target_icon": "https://i2.hdslb.com/bfs/face/fc4ba4087efa80dce11dfdd1c2bc07d84fb603b9.jpg",
|
||||
"link": "https://space.bilibili.com/1347373376",
|
||||
"live_status": 0,
|
||||
"official": 1,
|
||||
"uinfo_medal": {
|
||||
"name": "Geek范",
|
||||
"level": 6,
|
||||
"color_start": 6126494,
|
||||
"color_end": 6126494,
|
||||
"color_border": 6126494,
|
||||
"color": 0,
|
||||
"id": 658512,
|
||||
"typ": 0,
|
||||
"is_light": 1,
|
||||
"ruid": 1347373376,
|
||||
"guard_level": 0,
|
||||
"score": 0,
|
||||
"guard_icon": "",
|
||||
"honor_icon": "",
|
||||
"v2_medal_color_start": "#5866C799",
|
||||
"v2_medal_color_end": "#5866C799",
|
||||
"v2_medal_color_border": "#5866C799",
|
||||
"v2_medal_color_text": "#FFFFFFFF",
|
||||
"v2_medal_color_level": "#000B7099",
|
||||
"user_receive_count": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"medal_info": {
|
||||
"target_id": 451664,
|
||||
"level": 5,
|
||||
"medal_name": "粉丝团",
|
||||
"medal_color_start": 6126494,
|
||||
"medal_color_end": 6126494,
|
||||
"medal_color_border": 6126494,
|
||||
"guard_level": 0,
|
||||
"wearing_status": 0,
|
||||
"medal_id": 408689,
|
||||
"intimacy": 799,
|
||||
"next_intimacy": 1000,
|
||||
"today_feed": 0,
|
||||
"day_limit": 2000,
|
||||
"guard_icon": "",
|
||||
"honor_icon": ""
|
||||
},
|
||||
"target_name": "刘师兄_liujun",
|
||||
"target_icon": "https://i2.hdslb.com/bfs/face/90665d1613cc5501a3f7bbc79b5dc83bcc30667d.jpg",
|
||||
"link": "https://space.bilibili.com/451664",
|
||||
"live_status": 0,
|
||||
"official": 0,
|
||||
"uinfo_medal": {
|
||||
"name": "粉丝团",
|
||||
"level": 5,
|
||||
"color_start": 6126494,
|
||||
"color_end": 6126494,
|
||||
"color_border": 6126494,
|
||||
"color": 0,
|
||||
"id": 408689,
|
||||
"typ": 0,
|
||||
"is_light": 1,
|
||||
"ruid": 451664,
|
||||
"guard_level": 0,
|
||||
"score": 0,
|
||||
"guard_icon": "",
|
||||
"honor_icon": "",
|
||||
"v2_medal_color_start": "#5866C799",
|
||||
"v2_medal_color_end": "#5866C799",
|
||||
"v2_medal_color_border": "#5866C799",
|
||||
"v2_medal_color_text": "#FFFFFFFF",
|
||||
"v2_medal_color_level": "#000B7099",
|
||||
"user_receive_count": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"medal_info": {
|
||||
"target_id": 89240844,
|
||||
"level": 5,
|
||||
"medal_name": "六零",
|
||||
"medal_color_start": 6126494,
|
||||
"medal_color_end": 6126494,
|
||||
"medal_color_border": 6126494,
|
||||
"guard_level": 0,
|
||||
"wearing_status": 0,
|
||||
"medal_id": 306526,
|
||||
"intimacy": 799,
|
||||
"next_intimacy": 1000,
|
||||
"today_feed": 0,
|
||||
"day_limit": 2000,
|
||||
"guard_icon": "",
|
||||
"honor_icon": ""
|
||||
},
|
||||
"target_name": "A60_OnE",
|
||||
"target_icon": "https://i0.hdslb.com/bfs/face/483513f7b0533d666fdf7eff96a70b69992056fd.jpg",
|
||||
"link": "https://space.bilibili.com/89240844",
|
||||
"live_status": 0,
|
||||
"official": 0,
|
||||
"uinfo_medal": {
|
||||
"name": "六零",
|
||||
"level": 5,
|
||||
"color_start": 6126494,
|
||||
"color_end": 6126494,
|
||||
"color_border": 6126494,
|
||||
"color": 0,
|
||||
"id": 306526,
|
||||
"typ": 0,
|
||||
"is_light": 1,
|
||||
"ruid": 89240844,
|
||||
"guard_level": 0,
|
||||
"score": 0,
|
||||
"guard_icon": "",
|
||||
"honor_icon": "",
|
||||
"v2_medal_color_start": "#5866C799",
|
||||
"v2_medal_color_end": "#5866C799",
|
||||
"v2_medal_color_border": "#5866C799",
|
||||
"v2_medal_color_text": "#FFFFFFFF",
|
||||
"v2_medal_color_level": "#000B7099",
|
||||
"user_receive_count": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"medal_info": {
|
||||
"target_id": 1850091,
|
||||
"level": 5,
|
||||
"medal_name": "観測者",
|
||||
"medal_color_start": 6126494,
|
||||
"medal_color_end": 6126494,
|
||||
"medal_color_border": 6126494,
|
||||
"guard_level": 0,
|
||||
"wearing_status": 0,
|
||||
"medal_id": 118910,
|
||||
"intimacy": 98,
|
||||
"next_intimacy": 1000,
|
||||
"today_feed": 0,
|
||||
"day_limit": 2000,
|
||||
"guard_icon": "",
|
||||
"honor_icon": ""
|
||||
},
|
||||
"target_name": "Jannchie见齐",
|
||||
"target_icon": "https://i0.hdslb.com/bfs/face/983034448f81f45f05956d0455a86fe0639d6a36.jpg",
|
||||
"link": "https://space.bilibili.com/1850091",
|
||||
"live_status": 2,
|
||||
"official": 1,
|
||||
"uinfo_medal": {
|
||||
"name": "観測者",
|
||||
"level": 5,
|
||||
"color_start": 6126494,
|
||||
"color_end": 6126494,
|
||||
"color_border": 6126494,
|
||||
"color": 0,
|
||||
"id": 118910,
|
||||
"typ": 0,
|
||||
"is_light": 1,
|
||||
"ruid": 1850091,
|
||||
"guard_level": 0,
|
||||
"score": 0,
|
||||
"guard_icon": "",
|
||||
"honor_icon": "",
|
||||
"v2_medal_color_start": "#5866C799",
|
||||
"v2_medal_color_end": "#5866C799",
|
||||
"v2_medal_color_border": "#5866C799",
|
||||
"v2_medal_color_text": "#FFFFFFFF",
|
||||
"v2_medal_color_level": "#000B7099",
|
||||
"user_receive_count": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"medal_info": {
|
||||
"target_id": 4911405,
|
||||
"level": 4,
|
||||
"medal_name": "毛狐狸",
|
||||
"medal_color_start": 6067854,
|
||||
"medal_color_end": 6067854,
|
||||
"medal_color_border": 6067854,
|
||||
"guard_level": 0,
|
||||
"wearing_status": 0,
|
||||
"medal_id": 18887,
|
||||
"intimacy": 658,
|
||||
"next_intimacy": 700,
|
||||
"today_feed": 0,
|
||||
"day_limit": 2000,
|
||||
"guard_icon": "",
|
||||
"honor_icon": ""
|
||||
},
|
||||
"target_name": "粉毛变态老狐狸",
|
||||
"target_icon": "https://i0.hdslb.com/bfs/face/5924e9201ac87066e76534472303b636a9961647.jpg",
|
||||
"link": "https://space.bilibili.com/4911405",
|
||||
"live_status": 0,
|
||||
"official": 0,
|
||||
"uinfo_medal": {
|
||||
"name": "毛狐狸",
|
||||
"level": 4,
|
||||
"color_start": 6067854,
|
||||
"color_end": 6067854,
|
||||
"color_border": 6067854,
|
||||
"color": 0,
|
||||
"id": 18887,
|
||||
"typ": 0,
|
||||
"is_light": 1,
|
||||
"ruid": 4911405,
|
||||
"guard_level": 0,
|
||||
"score": 0,
|
||||
"guard_icon": "",
|
||||
"honor_icon": "",
|
||||
"v2_medal_color_start": "#5762A799",
|
||||
"v2_medal_color_end": "#5762A799",
|
||||
"v2_medal_color_border": "#5762A799",
|
||||
"v2_medal_color_text": "#FFFFFFFF",
|
||||
"v2_medal_color_level": "#000B7099",
|
||||
"user_receive_count": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"medal_info": {
|
||||
"target_id": 130914376,
|
||||
"level": 3,
|
||||
"medal_name": "江草",
|
||||
"medal_color_start": 6067854,
|
||||
"medal_color_end": 6067854,
|
||||
"medal_color_border": 6067854,
|
||||
"guard_level": 0,
|
||||
"wearing_status": 0,
|
||||
"medal_id": 166326,
|
||||
"intimacy": 463,
|
||||
"next_intimacy": 500,
|
||||
"today_feed": 0,
|
||||
"day_limit": 2000,
|
||||
"guard_icon": "",
|
||||
"honor_icon": ""
|
||||
},
|
||||
"target_name": "江灵夏草",
|
||||
"target_icon": "https://i1.hdslb.com/bfs/face/63eb615514fddbc6024a34ddcacfb0bc6103d019.jpg",
|
||||
"link": "https://space.bilibili.com/130914376",
|
||||
"live_status": 0,
|
||||
"official": 1,
|
||||
"uinfo_medal": {
|
||||
"name": "江草",
|
||||
"level": 3,
|
||||
"color_start": 6067854,
|
||||
"color_end": 6067854,
|
||||
"color_border": 6067854,
|
||||
"color": 0,
|
||||
"id": 166326,
|
||||
"typ": 0,
|
||||
"is_light": 1,
|
||||
"ruid": 130914376,
|
||||
"guard_level": 0,
|
||||
"score": 0,
|
||||
"guard_icon": "",
|
||||
"honor_icon": "",
|
||||
"v2_medal_color_start": "#5762A799",
|
||||
"v2_medal_color_end": "#5762A799",
|
||||
"v2_medal_color_border": "#5762A799",
|
||||
"v2_medal_color_text": "#FFFFFFFF",
|
||||
"v2_medal_color_level": "#000B7099",
|
||||
"user_receive_count": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"medal_info": {
|
||||
"target_id": 316568752,
|
||||
"level": 3,
|
||||
"medal_name": "SEAL",
|
||||
"medal_color_start": 6067854,
|
||||
"medal_color_end": 6067854,
|
||||
"medal_color_border": 6067854,
|
||||
"guard_level": 0,
|
||||
"wearing_status": 0,
|
||||
"medal_id": 312420,
|
||||
"intimacy": 428,
|
||||
"next_intimacy": 500,
|
||||
"today_feed": 0,
|
||||
"day_limit": 2000,
|
||||
"guard_icon": "",
|
||||
"honor_icon": ""
|
||||
},
|
||||
"target_name": "马督工",
|
||||
"target_icon": "https://i1.hdslb.com/bfs/face/1c56737dfc0deffffc31c78e0cefb0c3ecf7e000.jpg",
|
||||
"link": "https://space.bilibili.com/316568752",
|
||||
"live_status": 0,
|
||||
"official": 1,
|
||||
"uinfo_medal": {
|
||||
"name": "SEAL",
|
||||
"level": 3,
|
||||
"color_start": 6067854,
|
||||
"color_end": 6067854,
|
||||
"color_border": 6067854,
|
||||
"color": 0,
|
||||
"id": 312420,
|
||||
"typ": 0,
|
||||
"is_light": 1,
|
||||
"ruid": 316568752,
|
||||
"guard_level": 0,
|
||||
"score": 0,
|
||||
"guard_icon": "",
|
||||
"honor_icon": "",
|
||||
"v2_medal_color_start": "#5762A799",
|
||||
"v2_medal_color_end": "#5762A799",
|
||||
"v2_medal_color_border": "#5762A799",
|
||||
"v2_medal_color_text": "#FFFFFFFF",
|
||||
"v2_medal_color_level": "#000B7099",
|
||||
"user_receive_count": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"medal_info": {
|
||||
"target_id": 633003,
|
||||
"level": 3,
|
||||
"medal_name": "器材党",
|
||||
"medal_color_start": 6067854,
|
||||
"medal_color_end": 6067854,
|
||||
"medal_color_border": 6067854,
|
||||
"guard_level": 0,
|
||||
"wearing_status": 0,
|
||||
"medal_id": 57027,
|
||||
"intimacy": 198,
|
||||
"next_intimacy": 500,
|
||||
"today_feed": 0,
|
||||
"day_limit": 2000,
|
||||
"guard_icon": "",
|
||||
"honor_icon": ""
|
||||
},
|
||||
"target_name": "和光Channel",
|
||||
"target_icon": "https://i0.hdslb.com/bfs/face/c34413202f3f4ab6c7955a2c9ca5a9ac8e86d8c2.jpg",
|
||||
"link": "https://space.bilibili.com/633003",
|
||||
"live_status": 0,
|
||||
"official": 0,
|
||||
"uinfo_medal": {
|
||||
"name": "器材党",
|
||||
"level": 3,
|
||||
"color_start": 6067854,
|
||||
"color_end": 6067854,
|
||||
"color_border": 6067854,
|
||||
"color": 0,
|
||||
"id": 57027,
|
||||
"typ": 0,
|
||||
"is_light": 1,
|
||||
"ruid": 633003,
|
||||
"guard_level": 0,
|
||||
"score": 0,
|
||||
"guard_icon": "",
|
||||
"honor_icon": "",
|
||||
"v2_medal_color_start": "#5762A799",
|
||||
"v2_medal_color_end": "#5762A799",
|
||||
"v2_medal_color_border": "#5762A799",
|
||||
"v2_medal_color_text": "#FFFFFFFF",
|
||||
"v2_medal_color_level": "#000B7099",
|
||||
"user_receive_count": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"medal_info": {
|
||||
"target_id": 5760446,
|
||||
"level": 2,
|
||||
"medal_name": "花泪",
|
||||
"medal_color_start": 6067854,
|
||||
"medal_color_end": 6067854,
|
||||
"medal_color_border": 6067854,
|
||||
"guard_level": 0,
|
||||
"wearing_status": 0,
|
||||
"medal_id": 32283,
|
||||
"intimacy": 298,
|
||||
"next_intimacy": 300,
|
||||
"today_feed": 0,
|
||||
"day_limit": 2000,
|
||||
"guard_icon": "",
|
||||
"honor_icon": ""
|
||||
},
|
||||
"target_name": "花儿不哭",
|
||||
"target_icon": "https://i2.hdslb.com/bfs/face/4f220d57ca877167f3efdc60e40d0cb53ca58b72.jpg",
|
||||
"link": "https://space.bilibili.com/5760446",
|
||||
"live_status": 0,
|
||||
"official": 1,
|
||||
"uinfo_medal": {
|
||||
"name": "花泪",
|
||||
"level": 2,
|
||||
"color_start": 6067854,
|
||||
"color_end": 6067854,
|
||||
"color_border": 6067854,
|
||||
"color": 0,
|
||||
"id": 32283,
|
||||
"typ": 0,
|
||||
"is_light": 1,
|
||||
"ruid": 5760446,
|
||||
"guard_level": 0,
|
||||
"score": 0,
|
||||
"guard_icon": "",
|
||||
"honor_icon": "",
|
||||
"v2_medal_color_start": "#5762A799",
|
||||
"v2_medal_color_end": "#5762A799",
|
||||
"v2_medal_color_border": "#5762A799",
|
||||
"v2_medal_color_text": "#FFFFFFFF",
|
||||
"v2_medal_color_level": "#000B7099",
|
||||
"user_receive_count": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"medal_info": {
|
||||
"target_id": 3644545,
|
||||
"level": 2,
|
||||
"medal_name": "东方狗",
|
||||
"medal_color_start": 6067854,
|
||||
"medal_color_end": 6067854,
|
||||
"medal_color_border": 6067854,
|
||||
"guard_level": 0,
|
||||
"wearing_status": 0,
|
||||
"medal_id": 249059,
|
||||
"intimacy": 98,
|
||||
"next_intimacy": 300,
|
||||
"today_feed": 0,
|
||||
"day_limit": 2000,
|
||||
"guard_icon": "",
|
||||
"honor_icon": ""
|
||||
},
|
||||
"target_name": "白倉カナ",
|
||||
"target_icon": "https://i1.hdslb.com/bfs/face/ae839f221a5812683fe0a3967f4a612dd65a05d2.jpg",
|
||||
"link": "https://space.bilibili.com/3644545",
|
||||
"live_status": 0,
|
||||
"official": 0,
|
||||
"uinfo_medal": {
|
||||
"name": "东方狗",
|
||||
"level": 2,
|
||||
"color_start": 6067854,
|
||||
"color_end": 6067854,
|
||||
"color_border": 6067854,
|
||||
"color": 0,
|
||||
"id": 249059,
|
||||
"typ": 0,
|
||||
"is_light": 1,
|
||||
"ruid": 3644545,
|
||||
"guard_level": 0,
|
||||
"score": 0,
|
||||
"guard_icon": "",
|
||||
"honor_icon": "",
|
||||
"v2_medal_color_start": "#5762A799",
|
||||
"v2_medal_color_end": "#5762A799",
|
||||
"v2_medal_color_border": "#5762A799",
|
||||
"v2_medal_color_text": "#FFFFFFFF",
|
||||
"v2_medal_color_level": "#000B7099",
|
||||
"user_receive_count": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"medal_info": {
|
||||
"target_id": 614801,
|
||||
"level": 1,
|
||||
"medal_name": "神油",
|
||||
"medal_color_start": 6067854,
|
||||
"medal_color_end": 6067854,
|
||||
"medal_color_border": 6067854,
|
||||
"guard_level": 0,
|
||||
"wearing_status": 0,
|
||||
"medal_id": 627,
|
||||
"intimacy": 119,
|
||||
"next_intimacy": 201,
|
||||
"today_feed": 0,
|
||||
"day_limit": 2000,
|
||||
"guard_icon": "",
|
||||
"honor_icon": ""
|
||||
},
|
||||
"target_name": "神游八方",
|
||||
"target_icon": "https://i2.hdslb.com/bfs/face/98f8e0f609ff2403cc086f7254f388336b6f5366.jpg",
|
||||
"link": "https://space.bilibili.com/614801",
|
||||
"live_status": 0,
|
||||
"official": 1,
|
||||
"uinfo_medal": {
|
||||
"name": "神油",
|
||||
"level": 1,
|
||||
"color_start": 6067854,
|
||||
"color_end": 6067854,
|
||||
"color_border": 6067854,
|
||||
"color": 0,
|
||||
"id": 627,
|
||||
"typ": 0,
|
||||
"is_light": 1,
|
||||
"ruid": 614801,
|
||||
"guard_level": 0,
|
||||
"score": 0,
|
||||
"guard_icon": "",
|
||||
"honor_icon": "",
|
||||
"v2_medal_color_start": "#5762A799",
|
||||
"v2_medal_color_end": "#5762A799",
|
||||
"v2_medal_color_border": "#5762A799",
|
||||
"v2_medal_color_text": "#FFFFFFFF",
|
||||
"v2_medal_color_level": "#000B7099",
|
||||
"user_receive_count": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"medal_info": {
|
||||
"target_id": 12246,
|
||||
"level": 1,
|
||||
"medal_name": "纯色派",
|
||||
"medal_color_start": 6067854,
|
||||
"medal_color_end": 6067854,
|
||||
"medal_color_border": 6067854,
|
||||
"guard_level": 0,
|
||||
"wearing_status": 0,
|
||||
"medal_id": 5171,
|
||||
"intimacy": 99,
|
||||
"next_intimacy": 201,
|
||||
"today_feed": 0,
|
||||
"day_limit": 2000,
|
||||
"guard_icon": "",
|
||||
"honor_icon": ""
|
||||
},
|
||||
"target_name": "囧仙",
|
||||
"target_icon": "https://i0.hdslb.com/bfs/face/b7ee967282a33a59908218df5b240b45f51afda8.jpg",
|
||||
"link": "https://space.bilibili.com/12246",
|
||||
"live_status": 0,
|
||||
"official": 1,
|
||||
"uinfo_medal": {
|
||||
"name": "纯色派",
|
||||
"level": 1,
|
||||
"color_start": 6067854,
|
||||
"color_end": 6067854,
|
||||
"color_border": 6067854,
|
||||
"color": 0,
|
||||
"id": 5171,
|
||||
"typ": 0,
|
||||
"is_light": 1,
|
||||
"ruid": 12246,
|
||||
"guard_level": 0,
|
||||
"score": 0,
|
||||
"guard_icon": "",
|
||||
"honor_icon": "",
|
||||
"v2_medal_color_start": "#5762A799",
|
||||
"v2_medal_color_end": "#5762A799",
|
||||
"v2_medal_color_border": "#5762A799",
|
||||
"v2_medal_color_text": "#FFFFFFFF",
|
||||
"v2_medal_color_level": "#000B7099",
|
||||
"user_receive_count": 0
|
||||
}
|
||||
}
|
||||
],
|
||||
"count": 15,
|
||||
"close_space_medal": 0,
|
||||
"only_show_wearing": 0,
|
||||
"name": "社会易姐QwQ",
|
||||
"icon": "https://i0.hdslb.com/bfs/face/aebb2639a0d47f2ce1fec0631f412eaf53d4a0be.jpg",
|
||||
"uid": 645769214,
|
||||
"level": 6
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
@ -2559,6 +2559,8 @@ curl -G 'https://app.bilibili.com/x/v2/space/likearc' \
|
||||
|
||||
鉴权方式:[Wbi 签名](../misc/sign/wbi.md)
|
||||
|
||||
另见 [根据关键词查找视频](../video/collection.md#根据关键词查找视频), 功能基本相同, 暂未发现风控校验
|
||||
|
||||
**url参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
@ -2778,6 +2780,11 @@ curl -G 'https://api.bilibili.com/x/space/arc/search' \
|
||||
|
||||
### 查询用户投稿相簿预览
|
||||
|
||||
<details>
|
||||
<summary>相簿功能已下线, 以下接口失效, 参见
|
||||
<a href="https://github.com/SocialSisterYi/bilibili-API-collect/issues/801">#801</a>
|
||||
</summary>
|
||||
|
||||
> https://api.bilibili.com/x/space/album/index
|
||||
|
||||
*请求方式:GET*
|
||||
@ -2905,8 +2912,15 @@ curl -G 'https://api.bilibili.com/x/space/album/index' \
|
||||
|
||||
</details>
|
||||
|
||||
</details>
|
||||
|
||||
### 查询用户投稿相簿明细
|
||||
|
||||
<details>
|
||||
<summary>
|
||||
相簿功能已下线, 以下接口失效
|
||||
</summary>
|
||||
|
||||
> https://api.vc.bilibili.com/link_draw/v1/doc/doc_list
|
||||
> https://api.bilibili.com/x/dynamic/feed/draw/doc_list
|
||||
|
||||
@ -3050,6 +3064,8 @@ curl -G 'https://api.vc.bilibili.com/link_draw/v1/doc/doc_list' \
|
||||
|
||||
</details>
|
||||
|
||||
</details>
|
||||
|
||||
## 频道
|
||||
|
||||
<img src="../../assets/img/channel.svg" width="100" height="100" />
|
||||
@ -3784,280 +3800,6 @@ curl -G 'https://api.bilibili.com/x/space/channel/video/check
|
||||
|
||||
</details>
|
||||
|
||||
## 收藏
|
||||
|
||||
<img src="../../assets/img/collect.svg" width="100" height="100" />
|
||||
|
||||
### 查询用户创建的视频收藏夹
|
||||
|
||||
> https://api.bilibili.com/x/v3/fav/folder/created/list-all
|
||||
|
||||
*请求方式:GET*
|
||||
|
||||
认证方式:Cookie(SESSDATA)
|
||||
|
||||
查看私有收藏夹时需要认证
|
||||
|
||||
**url参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | ---- | ----------- | ------ | ---- |
|
||||
| up_mid | num | 目标用户mid | 必要 | |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ----------------------------- | -------- | --------------------------- |
|
||||
| code | num | 返回值 | 0:成功<br />-400:请求错误 |
|
||||
| message | str | 错误信息 | 默认为0 |
|
||||
| ttl | num | 1 | |
|
||||
| data | 隐藏时:null<br />公开时:obj | 信息本体 | |
|
||||
|
||||
`data`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ----- | --------------------------------------- | -------------- | ---- |
|
||||
| count | num | 创建的收藏夹数 | |
|
||||
| list | 无收藏夹时:null<br />有收藏夹时:array | 收藏夹列表 | |
|
||||
|
||||
`data`中的`list`数组:
|
||||
|
||||
| 项 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | ----------- | --------------------- |
|
||||
| 0 | obj | 收藏夹1 | |
|
||||
| n | obj | 收藏夹(n+1) | 项数取决于`count`的值 |
|
||||
| …… | obj | …… | |
|
||||
|
||||
`data`中的`list`数组中的对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ----------- | ---- | ---------------- | --------------- |
|
||||
| id | num | 收藏夹mlid | |
|
||||
| fid | num | 原始收藏夹mlid | 去除两位mid尾号 |
|
||||
| mid | num | 创建用户mid | |
|
||||
| attr | num | 收藏夹属性位配置 | |
|
||||
| title | str | 收藏夹标题 | |
|
||||
| fav_state | num | 0 | 作用尚不明确 |
|
||||
| media_count | num | 收藏夹总计视频数 | |
|
||||
|
||||
`attr`属性位二进制值表:
|
||||
|
||||
| 位 | 内容 | 备注 |
|
||||
| --------------- | ---------------- | -------------------------------- |
|
||||
| 0 | 是否为默认收藏夹 | 0:默认收藏夹<br />1:其他收藏夹 |
|
||||
| 1 | 私有收藏夹 | 0:公开<br />1:私有 |
|
||||
| 其他有待补充... | | |
|
||||
|
||||
**示例:**
|
||||
|
||||
查询用户`mid=7792521`的收藏夹列表
|
||||
|
||||
```shell
|
||||
curl -G 'https://api.bilibili.com/x/v3/fav/folder/created/list-all' \
|
||||
--data-urlencode 'up_mid=7792521' \
|
||||
-b 'SESSDATA=xxx'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1,
|
||||
"data": {
|
||||
"count": 5,
|
||||
"list": [{
|
||||
"id": 44233921,
|
||||
"fid": 442339,
|
||||
"mid": 7792521,
|
||||
"attr": 0,
|
||||
"title": "默认收藏夹",
|
||||
"fav_state": 0,
|
||||
"media_count": 85
|
||||
}, {
|
||||
"id": 936347621,
|
||||
"fid": 9363476,
|
||||
"mid": 7792521,
|
||||
"attr": 22,
|
||||
"title": "放假君的鬼畜私房歌",
|
||||
"fav_state": 0,
|
||||
"media_count": 2
|
||||
}, {
|
||||
"id": 845218621,
|
||||
"fid": 8452186,
|
||||
"mid": 7792521,
|
||||
"attr": 22,
|
||||
"title": "♪一言不合就开唱♪",
|
||||
"fav_state": 0,
|
||||
"media_count": 4
|
||||
}, {
|
||||
"id": 844998121,
|
||||
"fid": 8449981,
|
||||
"mid": 7792521,
|
||||
"attr": 22,
|
||||
"title": "个人作品精选",
|
||||
"fav_state": 0,
|
||||
"media_count": 25
|
||||
}, {
|
||||
"id": 381779121,
|
||||
"fid": 3817791,
|
||||
"mid": 7792521,
|
||||
"attr": 22,
|
||||
"title": "鬼畜小课堂",
|
||||
"fav_state": 0,
|
||||
"media_count": 25
|
||||
}]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
### 查询用户收藏的视频收藏夹
|
||||
|
||||
> https://api.bilibili.com/x/v3/fav/folder/collected/list
|
||||
|
||||
*请求方式:GET*
|
||||
|
||||
**url参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | ---- | ----------- | ------ | ---- |
|
||||
| ps | num | 每页项数 | 必要 | 定义域 1 - 大于70 |
|
||||
| pn | num | 页码 | 必要 | |
|
||||
| up_mid | num | 目标用户mid | 必要 | |
|
||||
| platform | str | 平台类型 | 非必要 | 填写web 返回值才会包含用户收藏的视频合集 |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ----------------------------- | -------- | ------------------------------------------------------------ |
|
||||
| code | num | 返回值 | 0:成功<br />-101:账号未登录<br />-111:csrf校验失败<br />40022:签名过长 |
|
||||
| message | str | 错误信息 | 默认为0 |
|
||||
| ttl | num | 1 | |
|
||||
| data | 隐藏时:null<br />公开时:obj | 信息本体 | |
|
||||
|
||||
`data`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ----- | --------------------------------------- | -------------- | ---- |
|
||||
| count | num | 创建的收藏夹数 | |
|
||||
| list | 无收藏夹时:null<br />有收藏夹时:array | 收藏夹列表 | |
|
||||
|
||||
`data`中的`list`数组:
|
||||
|
||||
| 项 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | ----------- | --------------------- |
|
||||
| 0 | obj | 收藏夹1 | |
|
||||
| n | obj | 收藏夹(n+1) | 项数取决于`count`的值 |
|
||||
| …… | obj | …… | |
|
||||
|
||||
`data`中的`list`数组中的对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ----------- | ---- | ------------------ | ----------------------------------------- |
|
||||
| id | num | 收藏夹ml | |
|
||||
| fid | num | 原始收藏夹mlid | 去除两位mid尾号 |
|
||||
| mid | num | 创建用户mid | |
|
||||
| attr | num | 收藏夹属性 | 转换成8-bit二进制处理<br />详细说明见下表 |
|
||||
| title | str | 收藏夹标题 | |
|
||||
| cover | str | 收藏夹封面图片url | |
|
||||
| upper | obj | 收藏夹创建用户信息 | |
|
||||
| cover_type | num | 2 | 作用尚不明确 |
|
||||
| intro | str | 空 | 作用尚不明确 |
|
||||
| ctime | num | 创建时间 | 时间戳 |
|
||||
| mtime | num | 审核时间 | 时间戳 |
|
||||
| state | num | 0, 1 | 0: 正常;1:收藏夹已失效 |
|
||||
| fav_state | num | 0 | 作用尚不明确 |
|
||||
| media_count | num | 收藏夹总计视频数 | |
|
||||
|
||||
`attr`属性二进制值表:
|
||||
|
||||
| 其他有待补充... | 1:默认收藏夹 | 0:公开性 |
|
||||
| --------------- | -------------------------------- | -------------------- |
|
||||
| | 0:默认收藏夹<br />1:其他收藏夹 | 0:公开<br />1:私有 |
|
||||
|
||||
`data`中的`list`数组中的对象中的`upper`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | ---------- | ------------ |
|
||||
| mid | num | 创建人mid | |
|
||||
| name | str | 创建人昵称 | |
|
||||
| face | str | 空 | 作用尚不明确 |
|
||||
|
||||
**示例:**
|
||||
|
||||
查询用户`mid=293793435`的收藏夹收藏列表
|
||||
|
||||
```shell
|
||||
curl -G 'https://api.bilibili.com/x/v3/fav/folder/collected/list' \
|
||||
--data-urlencode 'up_mid=293793435' \
|
||||
--data-urlencode 'ps=20' \
|
||||
--data-urlencode 'pn=1' \
|
||||
-b 'SESSDATA=xxx'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1,
|
||||
"data": {
|
||||
"count": 2,
|
||||
"list": [{
|
||||
"id": 496307088,
|
||||
"fid": 4963070,
|
||||
"mid": 412466388,
|
||||
"attr": 22,
|
||||
"title": "入站必刷",
|
||||
"cover": "http://i0.hdslb.com/bfs/archive/baae2b4050363c0ab45465b7cf696b8304fdaca8.jpg",
|
||||
"upper": {
|
||||
"mid": 412466388,
|
||||
"name": "热门菌",
|
||||
"face": ""
|
||||
},
|
||||
"cover_type": 2,
|
||||
"intro": "",
|
||||
"ctime": 1563394571,
|
||||
"mtime": 1563394571,
|
||||
"state": 0,
|
||||
"fav_state": 0,
|
||||
"media_count": 55
|
||||
}, {
|
||||
"id": 381779121,
|
||||
"fid": 3817791,
|
||||
"mid": 7792521,
|
||||
"attr": 22,
|
||||
"title": "鬼畜小课堂",
|
||||
"cover": "http://i2.hdslb.com/bfs/archive/09a668cfdb38fb3a85f905c10f48a2947e36a695.jpg",
|
||||
"upper": {
|
||||
"mid": 7792521,
|
||||
"name": "还有一天就放假了",
|
||||
"face": ""
|
||||
},
|
||||
"cover_type": 2,
|
||||
"intro": "",
|
||||
"ctime": 1553700224,
|
||||
"mtime": 1557291666,
|
||||
"state": 0,
|
||||
"fav_state": 0,
|
||||
"media_count": 25
|
||||
}]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 课程
|
||||
|
||||
<img src="../../assets/img/class.svg" width="100" height="100" />
|
||||
|
@ -145,10 +145,8 @@ curl -G 'https://api.bilibili.com/x/space/upstat' \
|
||||
|
||||
</details>
|
||||
|
||||
## ~~订阅&投稿状态数(已弃用)~~
|
||||
## 用户导航栏状态数
|
||||
|
||||
<details>
|
||||
<summary>查看折叠内容</summary>
|
||||
> https://api.bilibili.com/x/space/navnum
|
||||
|
||||
*请求方式:GET*
|
||||
@ -158,6 +156,7 @@ curl -G 'https://api.bilibili.com/x/space/upstat' \
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | ---- | ----------- | ------ | ---- |
|
||||
| mid | num | 目标用户mid | 必要 | |
|
||||
| web_location | str | 333.999 | 不必要 ||
|
||||
|
||||
**json回复:**
|
||||
|
||||
@ -177,37 +176,38 @@ curl -G 'https://api.bilibili.com/x/space/upstat' \
|
||||
| video | num | 投稿视频数 | |
|
||||
| bangumi | num | 追番数 | 无视隐私设置 |
|
||||
| cinema | num | 追剧数 | 无视隐私设置 |
|
||||
| channel | obj | 频道数 | |
|
||||
| favourite | obj | 收藏夹数 | 无视隐私设置 |
|
||||
| channel | obj | 视频列表数 | |
|
||||
| favourite | obj | 收藏夹数 | |
|
||||
| tag | num | 关注TAG数 | 无视隐私设置 |
|
||||
| article | num | 投稿专栏数 | |
|
||||
| playlist | num | 0 | 作用尚不明确 |
|
||||
| album | num | 投稿相簿数 | |
|
||||
| album | num | 投稿图文数 | |
|
||||
| audio | num | 投稿音频数 | |
|
||||
| pugv | num | 投稿课程数 | |
|
||||
| upos | num | 动态数 | |
|
||||
| season_num | num | 视频合集数 | |
|
||||
|
||||
`data`中的`channel`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ----- | ---------- | ------------ |
|
||||
| master | num | 频道数 | |
|
||||
| guest | num | 频道数 | |
|
||||
| master | num | 视频列表数 | |
|
||||
| guest | num | 视频列表数 | |
|
||||
|
||||
`data`中的`favourite`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------ | ---- | ------------ | --------------------------------------- |
|
||||
| master | num | 全部收藏夹数 | 需要登录(SESSDATA) <br />只能查看自己的 |
|
||||
| guest | num | 公开收藏夹数 | 无视隐私设置 |
|
||||
| guest | num | 公开收藏夹数 | |
|
||||
|
||||
**示例:**
|
||||
|
||||
查询用户`mid=239202390`的订阅&投稿状态数
|
||||
查询用户`mid=645769214`的订阅&投稿状态数
|
||||
|
||||
```shell
|
||||
curl -G 'https://api.bilibili.com/x/space/navnum' \
|
||||
--data-urlencode 'mid=239202390' \
|
||||
-b 'SESSDATA=xxx'
|
||||
--data-urlencode 'mid=645769214'
|
||||
```
|
||||
|
||||
<details>
|
||||
@ -215,32 +215,33 @@ curl -G 'https://api.bilibili.com/x/space/navnum' \
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1,
|
||||
"data": {
|
||||
"video": 290,
|
||||
"bangumi": 25,
|
||||
"cinema": 13,
|
||||
"channel": {
|
||||
"master": 2,
|
||||
"guest": 2
|
||||
},
|
||||
"favourite": {
|
||||
"master": 6,
|
||||
"guest": 6
|
||||
},
|
||||
"tag": 0,
|
||||
"article": 1,
|
||||
"playlist": 0,
|
||||
"album": 150,
|
||||
"audio": 4,
|
||||
"pugv": 0
|
||||
}
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1,
|
||||
"data": {
|
||||
"video": 34,
|
||||
"bangumi": 1,
|
||||
"cinema": 0,
|
||||
"channel": {
|
||||
"master": 5,
|
||||
"guest": 5
|
||||
},
|
||||
"favourite": {
|
||||
"master": 0,
|
||||
"guest": 0
|
||||
},
|
||||
"tag": 0,
|
||||
"article": 1,
|
||||
"playlist": 0,
|
||||
"album": 59,
|
||||
"audio": 0,
|
||||
"pugv": 0,
|
||||
"season_num": 1,
|
||||
"opus": 59
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
</details>
|
||||
|
||||
## 相簿投稿数
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
请注意区分 **合集(seasons_archives)** 和 **视频列表(seasons_series)**
|
||||
|
||||
合集是后加入的功能, 图标为立体叠放的正方形(.icon-heji), 可以在创作中心管理
|
||||
合集是后加入的功能, 图标为立体叠放的正方形(.icon-heji), 可以在创作中心管理, 参见 [合集管理](../creativecenter/season.md)
|
||||
|
||||
列表即系列(series)或频道(channel), 图标为平面叠放的矩形且中央有播放按钮标识(.icon-ic_channel1), 在个人空间直接操作
|
||||
|
||||
@ -1563,3 +1563,424 @@ curl -G "https://api.bilibili.com/x/series/archives" \
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 根据关键词查找视频
|
||||
|
||||
> https://api.bilibili.com/x/series/recArchivesByKeywords
|
||||
|
||||
*请求方式:GET*
|
||||
|
||||
**URL参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | ---- | -------- | ------ | ---- |
|
||||
| mid | num | 用户 mid | 必要 | |
|
||||
| keywords | str | 关键词 | 必要 | 可为空, 即获取所有视频 |
|
||||
| ps | num | 每页视频数 | 非必要 | 默认为 0, 留空为 20 |
|
||||
| pn | num | 页码 | 非必要 | 留空为 1 |
|
||||
| orderby | str | 排序方式 | 非必要 | 最新发布: pubdate(默认)<br />最多播放: views<br />senddate: 最新发布 |
|
||||
| series_id | num | 系列 ID | 非必要 | 用于过滤结果, 即若某一视频包含在系列内则不返回该视频 |
|
||||
|
||||
**JSON回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | ---------- |
|
||||
| code | num | 返回值 | 0: 成功 |
|
||||
| message | str | 错误信息 | 默认为 0 |
|
||||
| ttl | num | 1 | |
|
||||
| data | obj | 信息本体 | |
|
||||
|
||||
`data` 对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| --------- | ---- | ------------ | ---- |
|
||||
| archives | arr | 视频列表 | |
|
||||
| page | obj | 页码信息 | |
|
||||
|
||||
`archives` 数组:
|
||||
|
||||
同[获取视频合集信息](#获取视频合集信息)中的`archives`数组
|
||||
|
||||
`page` 对象:
|
||||
|
||||
同[获取视频合集信息](#获取视频合集信息)中的`page`对象
|
||||
|
||||
**示例:**
|
||||
|
||||
查询用户 `mid=2` 关键词为 `幕` 的视频, 不限制每页视频数
|
||||
|
||||
```shell
|
||||
curl -G "https://api.bilibili.com/x/series/recArchivesByKeywords" \
|
||||
--data-urlencode "mid=2" \
|
||||
--data-urlencode "keywords=幕" \
|
||||
--data-urlencode "ps=0"
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1,
|
||||
"data": {
|
||||
"archives": [
|
||||
{
|
||||
"aid": 120040,
|
||||
"title": "高级语言弹幕测试",
|
||||
"pubdate": 1311616515,
|
||||
"ctime": 1497344798,
|
||||
"state": 0,
|
||||
"pic": "http://i1.hdslb.com/bfs/archive/55a553659799d8a6fcb645d8f1f9df418ad6fe4e.jpg",
|
||||
"duration": 911,
|
||||
"stat": {
|
||||
"view": 3584767
|
||||
},
|
||||
"bvid": "BV1Xx411c7cH",
|
||||
"ugc_pay": 0,
|
||||
"interactive_video": false,
|
||||
"enable_vt": 0,
|
||||
"vt_display": "",
|
||||
"playback_position": 0
|
||||
},
|
||||
{
|
||||
"aid": 2,
|
||||
"title": "字幕君交流场所",
|
||||
"pubdate": 1252458549,
|
||||
"ctime": 1497344798,
|
||||
"state": 0,
|
||||
"pic": "http://static.hdslb.com/images/transparent.gif",
|
||||
"duration": 2055,
|
||||
"stat": {
|
||||
"view": 4609291
|
||||
},
|
||||
"bvid": "BV1xx411c7mD",
|
||||
"ugc_pay": 0,
|
||||
"interactive_video": false,
|
||||
"enable_vt": 0,
|
||||
"vt_display": "",
|
||||
"playback_position": 0
|
||||
},
|
||||
{
|
||||
"aid": 271,
|
||||
"title": "弹幕测试专用",
|
||||
"pubdate": 1249886475,
|
||||
"ctime": 1497344798,
|
||||
"state": 0,
|
||||
"pic": "http://i1.hdslb.com/bfs/archive/a5980672f3d03e8292148748a63de99cd45679d3.jpg",
|
||||
"duration": 1213,
|
||||
"stat": {
|
||||
"view": 4857422
|
||||
},
|
||||
"bvid": "BV1xx411c7Xg",
|
||||
"ugc_pay": 0,
|
||||
"interactive_video": false,
|
||||
"enable_vt": 0,
|
||||
"vt_display": "",
|
||||
"playback_position": 0
|
||||
}
|
||||
],
|
||||
"page": {
|
||||
"num": 1,
|
||||
"size": 0,
|
||||
"total": 3
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 创建视频列表
|
||||
|
||||
> https://api.bilibili.com/x/series/series/createAndAddArchives
|
||||
|
||||
*请求方式: POST*
|
||||
|
||||
认证方式: Cookie (SESSDATA)
|
||||
|
||||
**URL参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | ----| ---- | ------ | ---- |
|
||||
| csrf | str | CSRF Token (即 Cookies 中 bili_jct ) | 必要 | |
|
||||
|
||||
**正文参数 (multipart/form-data):**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | ---- | -------- | ------ | ---- |
|
||||
| mid | num | 用户 mid | 必要 | |
|
||||
| name | str | 标题 | 必要 | |
|
||||
| keywords | str | 关键词 | 不必要 | |
|
||||
| description | str | 简介 | 不必要 | |
|
||||
| aids | str | 视频 aid 列表 | 不必要 | 以 `,` 分隔, 如 `2,112861,112861976201494,976201494` |
|
||||
|
||||
**JSON回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | ---------- |
|
||||
| code | num | 返回值 | 0: 成功 |
|
||||
| message | str | 错误信息 | 默认为 0 |
|
||||
| ttl | num | 1 | |
|
||||
| data | obj | 信息本体 | |
|
||||
|
||||
`data` 对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| --------- | ---- | ------------ | ---- |
|
||||
| series_id | num | 视频列表 ID | |
|
||||
|
||||
**示例:**
|
||||
|
||||
为 `mid=616368979` 创建视频列表, 标题为 `NAME`, 视频为 `112861976201494`
|
||||
|
||||
```shell
|
||||
curl -X POST --url "https://api.bilibili.com/x/series/series/createAndAddArchives" \
|
||||
--url-query "csrf=xxxxxxxxxx" \
|
||||
--data-urlencode "mid=616368979" \
|
||||
--data-urlencode "name=NAME" \
|
||||
--data-urlencode "aids=112861976201494" \
|
||||
-b "SESSDATA=xxx"
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1,
|
||||
"data": {
|
||||
"series_id": 4269765
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 删除视频列表
|
||||
|
||||
> https://api.bilibili.com/x/series/series/delete
|
||||
|
||||
*请求方式: POST*
|
||||
|
||||
认证方式: Cookie (SESSDATA)
|
||||
|
||||
**URL参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | ----| ---- | ------ | ---- |
|
||||
| csrf | str | CSRF Token (即 Cookies 中 bili_jct ) | 必要 | |
|
||||
| mid | num | 用户 mid | 必要 | |
|
||||
| series_id | num | 视频列表 ID | 必要 | |
|
||||
| aids | str | 空 | 不必要 | |
|
||||
|
||||
**JSON回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | ---------- |
|
||||
| code | num | 返回值 | 0: 成功 |
|
||||
| message | str | 错误信息 | 默认为 0 |
|
||||
| ttl | num | 1 | |
|
||||
| data | obj | 空 | |
|
||||
|
||||
**示例:**
|
||||
|
||||
为 `mid=616368979` 删除视频列表 `series_id=4269765`
|
||||
|
||||
```shell
|
||||
curl -X POST --url "https://api.bilibili.com/x/series/series/delete" \
|
||||
--url-query "csrf=xxxxxxxxxx" \
|
||||
--url-query "series_id=4269765" \
|
||||
--url-query "mid=616368979" \
|
||||
-b "SESSDATA=xxx"
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1,
|
||||
"data": {}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 删除视频列表中的稿件
|
||||
|
||||
> https://api.bilibili.com/x/series/series/delArchives
|
||||
|
||||
*请求方式: POST*
|
||||
|
||||
认证方式: Cookie (SESSDATA)
|
||||
|
||||
**URL参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | ----| ---- | ------ | ---- |
|
||||
| csrf | str | CSRF Token (即 Cookies 中 bili_jct ) | 必要 | |
|
||||
|
||||
**正文参数 (application/x-www-form-urlencoded):**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | ---- | -------- | ------ | ---- |
|
||||
| mid | num | 用户 mid | 必要 | |
|
||||
| series_id | num | 视频列表 ID | 必要 | |
|
||||
| aids | str | 视频 aid 列表 | 必要 | 以 `,` 分隔, 如 `2,112861,112861976201494,976201494` |
|
||||
|
||||
**JSON回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | ---------- |
|
||||
| code | num | 返回值 | 0: 成功 |
|
||||
| message | str | 错误信息 | 默认为 0 |
|
||||
| ttl | num | 1 | |
|
||||
| data | obj | 空 | |
|
||||
|
||||
**示例:**
|
||||
|
||||
为 `mid=616368979` 删除视频列表 `series_id=4269782` 中的 `112861976201494`
|
||||
|
||||
```shell
|
||||
curl -X POST --url "https://api.bilibili.com/x/series/series/delArchives" \
|
||||
--url-query "csrf=xxxxxxxxxx" \
|
||||
--data-urlencode "mid=616368979" \
|
||||
--data-urlencode "series_id=4269782" \
|
||||
--data-urlencode "aids=112861976201494" \
|
||||
-b "SESSDATA=xxx"
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1,
|
||||
"data": {}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 添加稿件至视频列表
|
||||
|
||||
> https://api.bilibili.com/x/series/series/addArchives
|
||||
|
||||
*请求方式: POST*
|
||||
|
||||
认证方式: Cookie (SESSDATA)
|
||||
|
||||
**URL参数:**
|
||||
|
||||
同[删除视频列表中的稿件](#删除视频列表中的稿件)
|
||||
|
||||
**正文参数 (application/x-www-form-urlencoded):**
|
||||
|
||||
同[删除视频列表中的稿件](#删除视频列表中的稿件)
|
||||
|
||||
**JSON回复:**
|
||||
|
||||
同[删除视频列表中的稿件](#删除视频列表中的稿件)
|
||||
|
||||
**示例:**
|
||||
|
||||
为 `mid=616368979` 添加视频 `112861976201494` 至视频列表 `series_id=4269782`
|
||||
|
||||
```shell
|
||||
curl -X POST --url "https://api.bilibili.com/x/series/series/addArchives" \
|
||||
--url-query "csrf=xxxxxxxxxx" \
|
||||
--data-urlencode "mid=616368979" \
|
||||
--data-urlencode "series_id=4269782" \
|
||||
--data-urlencode "aids=112861976201494" \
|
||||
-b "SESSDATA=xxx"
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1,
|
||||
"data": {}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 编辑视频列表信息
|
||||
|
||||
> https://api.bilibili.com/x/series/series/update
|
||||
|
||||
*请求方式: POST*
|
||||
|
||||
认证方式: Cookie (SESSDATA)
|
||||
|
||||
**URL参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | ----| ---- | ------ | ---- |
|
||||
| csrf | str | CSRF Token (即 Cookies 中 bili_jct ) | 必要 | |
|
||||
|
||||
**正文参数 (application/x-www-form-urlencoded):**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | ---- | -------- | ------ | ---- |
|
||||
| mid | num | 用户 mid | 必要 | |
|
||||
| series_id | num | 视频列表 ID | 必要 | |
|
||||
| name | str | 标题 | 必要 | |
|
||||
| keywords | str | 关键词 | 不必要 | |
|
||||
| description | str | 简介 | 不必要 | |
|
||||
| add_aids | str | 视频 aid 列表 | 不必要 | 以 `,` 分隔 |
|
||||
| del_aids | str | 视频 aid 列表 | 不必要 | |
|
||||
| aids | str | 空 | 不必要 | |
|
||||
|
||||
**JSON回复:**
|
||||
|
||||
同[删除视频列表中的稿件](#删除视频列表中的稿件)
|
||||
|
||||
**示例:**
|
||||
|
||||
为 `mid=616368979` 编辑视频列表 `series_id=4269782`, 设置标题为 `NAME`, 设置简介为空, 设置关键词 `Telnet`, 添加视频 `112861976201494`
|
||||
|
||||
```shell
|
||||
curl -X POST --url "https://api.bilibili.com/x/series/series/update" \
|
||||
--url-query "csrf=xxxxxxxxxx" \
|
||||
--data-urlencode "name=NAME" \
|
||||
--data-urlencode "mid=616368979" \
|
||||
--data-urlencode "series_id=4269782" \
|
||||
--data-urlencode "keywords=Telnet" \
|
||||
--data-urlencode "add_aids=112861976201494" \
|
||||
-b "SESSDATA=xxx"
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1,
|
||||
"data": {}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
@ -1,4 +1,6 @@
|
||||
# web 播放器信息
|
||||
# 播放器
|
||||
|
||||
## web 播放器信息
|
||||
|
||||
web 播放器的信息接口,提供正常播放需要的元数据,包括:智能防挡弹幕、字幕、章节看点等。
|
||||
|
||||
@ -16,7 +18,6 @@ web 播放器的信息接口,提供正常播放需要的元数据,包括:
|
||||
| w_rid | str | WBI 签名 | 不必要 | |
|
||||
| wts | num | 当前 unix 时间戳 | 不必要 | |
|
||||
|
||||
|
||||
**json 回复:**
|
||||
|
||||
根对象:
|
||||
@ -38,8 +39,7 @@ web 播放器的信息接口,提供正常播放需要的元数据,包括:
|
||||
|dm_mask | obj | | webmask 信息(如果没有这一项,说明这个视频没有防挡功能) |
|
||||
|subtitle | obj | | 字幕信息(需要登录,不登录此项内容为 `[]` )|
|
||||
|view_points| array | | 章节看点信息 |
|
||||
| 其他 | ... | | 主要是观看记录、使用者等级权限等个人信息 |
|
||||
|
||||
| 其他 | ... | | 主要是观看记录、使用者等级权限、背景音乐等信息 |
|
||||
|
||||
`dm_mask`对象(如果有):
|
||||
|
||||
@ -58,7 +58,7 @@ web 播放器的信息接口,提供正常播放需要的元数据,包括:
|
||||
| --------- | ----- | -------- | ---- |
|
||||
|allow_submit|bool | true | |
|
||||
| lan | str | "" | |
|
||||
|lan_doc | str | "" | | |
|
||||
|lan_doc | str | "" | |
|
||||
|subtitles| array | | 不登录为 `[]` |
|
||||
|
||||
`subtitles` 数组内的元素:
|
||||
@ -69,7 +69,7 @@ web 播放器的信息接口,提供正常播放需要的元数据,包括:
|
||||
| ai_type | num | | |
|
||||
| id | num | | |
|
||||
|id_str | str| | 和 id 不一样 |
|
||||
| is_lock | bool | |
|
||||
| is_lock | bool | | |
|
||||
| lan | str | 语言类型英文字母缩写 ||
|
||||
| lan_doc | str| 语言类型中文名称 | |
|
||||
|subtitle_url|str| 资源 url 地址 | |
|
||||
@ -89,10 +89,10 @@ web 播放器的信息接口,提供正常播放需要的元数据,包括:
|
||||
示例:
|
||||
|
||||
```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?aid=515345690&cid=825851971"
|
||||
```
|
||||
|
||||
```json
|
||||
```jsonc
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
@ -149,5 +149,62 @@ curl -G https://api.bilibili.com/x/player/wbi/v2?aid=515345690&cid=825851971
|
||||
}
|
||||
```
|
||||
|
||||
## 播放反馈
|
||||
|
||||
> https://app.bilibili.com/x/resource/laser2
|
||||
|
||||
*请求方式: POST*
|
||||
|
||||
注: 该接口不传 Cookie
|
||||
|
||||
**URL参数:**
|
||||
|
||||
|参数名|类型|内容|必要性|备注|
|
||||
|-|-|-|-|-|
|
||||
|mid|num|当前用户 mid|不必要|未登录为空|
|
||||
|buvid|str|BUVID (APP) 或 buvid3 (Web)|必要|可为任意非空字符串|
|
||||
|app_key|str|APP 密钥|必要|Web: web_player<br />可为任意非空字符串|
|
||||
|url|str|日志 URL|非必要|从 [上传接口](../creativecenter/upload.md#上传接口) 得到的 upos 协议 URL|
|
||||
|task_type|num|任务类型|非必要|300: 播放卡顿<br />301: 进度条君无法调戏<br />354: 校园网无法访问<br />303: 弹幕无法显示<br />553: 跳过首尾时间有误<br />304: 出现浮窗广告<br />305: 无限小电视<br />302: 音画不同步<br />306: 黑屏<br />307: 其他|
|
||||
|
||||
**JSON回复:**
|
||||
|
||||
|字段|类型|内容|备注|
|
||||
|-|-|-|-|
|
||||
|code|num|返回值|0: 成功<br />-400: 请求错误|
|
||||
|message|str|错误信息|默认为 0|
|
||||
|ttl|num|1||
|
||||
|data|obj|数据本体| |
|
||||
|
||||
`data` 对象:
|
||||
|
||||
|字段|类型|内容|备注|
|
||||
|-|-|-|-|
|
||||
|task_id|num|任务 ID?||
|
||||
|
||||
**示例:**
|
||||
|
||||
播放反馈无限小电视, 不登录, 不传文件, buvid 为 `chenrui-in-icu`
|
||||
|
||||
```shell
|
||||
curl -X POST "https://app.bilibili.com/x/resource/laser2" \
|
||||
--data-urlencode "buvid=chenrui-in-icu" \
|
||||
--data-urlencode "app_key=web_player" \
|
||||
--data-urlencode "task_type=305"
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1,
|
||||
"data": {
|
||||
"task_id": 850448532
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
@ -72,7 +72,7 @@ curl 'https://api.bilibili.com/x/v2/history/report' \
|
||||
|
||||
## 上报视频播放心跳(web端)
|
||||
|
||||
> https://api.bilibili.com/x/click-interface/web/heartbeat
|
||||
> https://api.bilibili.com/x/click-interface/web/heartbeat
|
||||
|
||||
*请求方式:POST*
|
||||
|
||||
@ -80,8 +80,6 @@ curl 'https://api.bilibili.com/x/v2/history/report' \
|
||||
|
||||
默认间隔15秒一次, 亦可记录播放历史
|
||||
|
||||
尽管以下除正文 `aid` 以外的参数均为非必要, 但缺少可能会导致播放不被记录, 同一 IP/登陆用户 每五分钟最多记录一次播放
|
||||
|
||||
该接口较为复杂, 且参数计算方法均为推测, 实际过程不明, 可能含有错误, 若要正式使用可以把已播放的持续时间全都设为相同值
|
||||
|
||||
**URL参数:**
|
||||
@ -125,11 +123,11 @@ curl 'https://api.bilibili.com/x/v2/history/report' \
|
||||
| dt | num | 2 | 非必要 | |
|
||||
| outer | num | 0 | 非必要 | |
|
||||
| spmid | str | 333.788.0.0 | 非必要 | 作用尚不明确 |
|
||||
| from_spmid | str | 播放来源? | 非必要 | 也可为空, 如: 444.41.list.card_archive.click |
|
||||
| session | str | 会话信息? | 非必要 | 每次刷新均不同, 生成原理尚不明确 |
|
||||
| from_spmid | str | 播放来源? | 非必要 | 也可为空, 如: `444.41.list.card_archive.click` `333.999.0.0` |
|
||||
| session | str | 会话信息? | 非必要 | 一串无分隔小写 UUID |
|
||||
| extra | obj | 额外信息, 如播放器版本 | 非必要 | 如: `{"player_version":"4.8.36"}` |
|
||||
| play_type | num | 播放动作 | 非必要 | 0:播放中<br />1:开始播放<br />2:暂停<br />3:继续播放<br />4: 结束播放 |
|
||||
| csrf | str | CSRF Token(即 Cookie 中 bili_jct) | 非必要 | |
|
||||
| csrf | str | CSRF Token (即 Cookie 中 bili_jct) | 非必要 | |
|
||||
|
||||
**json回复:**
|
||||
|
||||
@ -172,3 +170,76 @@ curl 'https://api.bilibili.com/x/click-interface/web/heartbeat' \
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 开始观看视频 (web端)
|
||||
|
||||
> https://api.bilibili.com/x/click-interface/click/web/h5
|
||||
|
||||
*请求方式: POST*
|
||||
|
||||
认证方式: Cookie (SESSDATA)
|
||||
|
||||
该接口亦被用于计算播放量, 播放量更新不是实时的
|
||||
|
||||
**URL参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | ---- | -------- | ------ | ---- |
|
||||
| w_aid | num | 稿件 aid | 不必要 | |
|
||||
| w_part | num | 视频分 P 编号 | 不必要 | |
|
||||
| w_ftime | num | 点击时间戳? | 不必要 | UNIX 秒级时间戳 |
|
||||
| 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) |
|
||||
|
||||
**正文参数 (application/x-www-form-urlencoded):**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | ---- | -------- | ------ | ---- |
|
||||
| mid | num | 当前用户 mid | 不必要 | |
|
||||
| aid | num | 稿件 aid | 必要 | |
|
||||
| cid | num | 视频 cid | 不必要 | |
|
||||
| part | num | 视频分 P 编号 | 不必要 | |
|
||||
| lv | num | 当前用户等级 | 不必要 | |
|
||||
| ftime | num | 同 URL 参数中带有 `w_` 前缀的同名参数 | 不必要 | |
|
||||
| stime | num | 同 URL 参数中带有 `w_` 前缀的同名参数 | 不必要 | |
|
||||
| type | num | 视频类型 | 不必要 | 见[上报视频播放心跳(web端)](#上报视频播放心跳web端) |
|
||||
| sub_type | num | 视频子类型 | 不必要 | 见[上报视频播放心跳(web端)](#上报视频播放心跳web端) |
|
||||
| referer_url | str | 与请求头 Referer 字段相同 | 不必要 | |
|
||||
| outer | num | 0 | 不必要 | |
|
||||
| spmid | str | 333.788.0.0 | 不必要 | 作用尚不明确 |
|
||||
| from_spmid | str | 播放来源? | 不必要 | 见[上报视频播放心跳(web端)](#上报视频播放心跳web端) |
|
||||
| session | str | 会话信息? | 不必要 | 一串无分隔小写 UUID |
|
||||
| csrf | str | CSRF Token (即 Cookie 中 bili_jct) | 不必要 | |
|
||||
|
||||
**JSON回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
|字段|类型|内容|备注|
|
||||
|-|-|-|-|
|
||||
|code|num|返回值|0:成功<br />-400:请求错误|
|
||||
|message|str|错误信息|默认为 `0`|
|
||||
|ttl|num|1||
|
||||
|
||||
**示例:**
|
||||
|
||||
```shell
|
||||
curl 'https://api.bilibili.com/x/click-interface/click/web/h5' \
|
||||
--data-urlencode 'aid=2' \
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
@ -1,6 +1,10 @@
|
||||
# 视频状态数
|
||||
|
||||
## 视频状态数(仅avid)
|
||||
|
||||
<details>
|
||||
<summary>该接口已失效</summary>
|
||||
|
||||
> https://api.bilibili.com/archive_stat/stat
|
||||
|
||||
*请求方式:GET*
|
||||
@ -79,6 +83,8 @@ curl -G 'https://api.bilibili.com/archive_stat/stat' \
|
||||
|
||||
</details>
|
||||
|
||||
</details>
|
||||
|
||||
## 视频状态数(bvid/avid)
|
||||
|
||||
> https://api.bilibili.com/x/web-interface/archive/stat
|
||||
|
@ -6,7 +6,9 @@
|
||||
|
||||
## qn视频清晰度标识
|
||||
|
||||
**注:该值在 DASH 格式下无效,因为 DASH 格式会取到所有分辨率的流地址**
|
||||
注:该值在 DASH 格式下无效,因为 DASH 格式会取到所有分辨率的流地址
|
||||
|
||||
又注: B站对于新的视频更新了播放设置, 较高分辨率均采用 DASH, 较低分辨率与老视频还保留了 MP4, 这导致较新视频无法获取 MP4 格式的高分辨率视频, 参见 [#606](https://github.com/SocialSisterYi/bilibili-API-collect/issues/606) 或 [cv949156](https://www.bilibili.com/read/cv949156/)
|
||||
|
||||
| 值 | 含义 | 备注 |
|
||||
| ---- | -------------- | ------------------------------------------------------------ |
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -4,12 +4,7 @@
|
||||
|
||||
> https://api.bilibili.com/x/web-interface/popular/precious
|
||||
|
||||
**url参数:**
|
||||
|
||||
| 字段 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| --------- | ---- | -------- | ----- | ----- |
|
||||
| page | num | 页码 | 非必要 | 默认为`1` |
|
||||
| page_size | num | 每页数量 | 非必要 | 默认为`85` |
|
||||
*请求方式:GET*
|
||||
|
||||
**json回复:**
|
||||
|
||||
@ -26,130 +21,107 @@
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| - | - | - | - |
|
||||
| title | string | 标题 | 入站必刷 |
|
||||
| media_id | int | media_id | |
|
||||
| explain | string | 解释(概括)| 我不允许还有人没看过这85个宝藏视频! |
|
||||
| list | list | 列表 | |
|
||||
| title | str | 标题 | 入站必刷 |
|
||||
| media_id | num | media_id | |
|
||||
| explain | str | 解释(概括)| 我不允许还有人没看过这??个宝藏视频! |
|
||||
| list | array | 列表 | |
|
||||
|
||||
`data` 中的 `list` 字段:
|
||||
`data`中的`list`数组中的对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| - | - | - | - |
|
||||
| aid | int | aid | |
|
||||
| videos | int | 视频数? | |
|
||||
| tid | int | 分区 id | |
|
||||
| tname | string | 分区名称 | |
|
||||
| copyright | int | 版权 | |
|
||||
| pic | url | 封面 url | |
|
||||
| title | string | 标题 | |
|
||||
| pubdate | int | 发布时间 | 时间戳 |
|
||||
| ctime | int | 暂不清楚 | 时间戳 |
|
||||
| desc | string | 简介 | |
|
||||
| state | int | 暂不清楚 | |
|
||||
| duration | int | 视频时长 | 单位为秒 |
|
||||
| mission_id | int | 暂不清楚 | |
|
||||
| rights | dict | 暂不清楚 | 好像没啥么用 |
|
||||
| owner | dict | 作者 | |
|
||||
| stat | dict | 状态 | |
|
||||
| dynamic | string | 动态发布时写的文字 | |
|
||||
| cid | int | cid | |
|
||||
| dimension | dict | 视频的一些属性 | |
|
||||
| season_id | int | 暂不清楚 | |
|
||||
| short_link | string | 短链 | |
|
||||
| short_link_v2 | string | 短链 | 第二版 |
|
||||
| bvid | string | bvid | |
|
||||
| season_type | int | 分区 tid? | |
|
||||
| is_ogv | bool | 暂不清楚 | |
|
||||
| ogv_info | dict/null? | 暂不清楚 | |
|
||||
| rcmd_reason | string? | 暂不清楚 | |
|
||||
| achievement | string | 荣誉概述 | |
|
||||
基本同[获取视频详细信息(web端)](../video/info.md#获取视频详细信息web端)中的data对象
|
||||
|
||||
**示例:**
|
||||
|
||||
``` shell
|
||||
curl -G 'https://api.bilibili.com/x/web-interface/popular/precious'
|
||||
```
|
||||
<details>
|
||||
<summary>查看响应事例:</summary>
|
||||
|
||||
``` json
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```jsonc
|
||||
{
|
||||
"code":0,
|
||||
"message":"0",
|
||||
"ttl":1,
|
||||
"data":{
|
||||
"title":"入站必刷",
|
||||
"media_id":496307088,
|
||||
"explain":"我不允许还有人没看过这85个宝藏视频!",
|
||||
"list":[
|
||||
{
|
||||
"aid":715024588,
|
||||
"videos":1,
|
||||
"tid":233,
|
||||
"tname":"极客DIY",
|
||||
"copyright":1,
|
||||
"pic":"http://i1.hdslb.com/bfs/archive/55ce9a4d1797ec56a0d4ed727f1a279b89ec3664.jpg",
|
||||
"title":"【才浅】15天花20万元用500克黄金敲数万锤纯手工打造三星堆黄金面具",
|
||||
"pubdate":1618207101,
|
||||
"ctime":1618207101,
|
||||
"desc":"倾家荡产求三连支持!!!请大家帮忙给新系列想个名字,点赞一百万的话制作三星堆黄金权杖,不会真的可以点到一百万吧\nbgm:\n-Old-B - 【Free Beat】侠之道 、于剑飞 - 01 片头曲 帝陵、AniFace - 夜辞秋江",
|
||||
"state":0,
|
||||
"duration":717,
|
||||
"mission_id":16881,
|
||||
"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,
|
||||
"arc_pay":0,
|
||||
"pay_free_watch":0
|
||||
},
|
||||
"owner":{
|
||||
"mid":2200736,
|
||||
"name":"才疏学浅的才浅",
|
||||
"face":"http://i2.hdslb.com/bfs/face/1f4819b224cd882025a9a6a5f2c6680c332f37bc.jpg"
|
||||
},
|
||||
"stat":{
|
||||
"aid":715024588,
|
||||
"view":13833908,
|
||||
"danmaku":215105,
|
||||
"reply":39792,
|
||||
"favorite":619513,
|
||||
"coin":2484204,
|
||||
"share":122302,
|
||||
"now_rank":0,
|
||||
"his_rank":1,
|
||||
"like":2338710,
|
||||
"dislike":0
|
||||
},
|
||||
"dynamic":"倾家荡产求三连!!",
|
||||
"cid":323723441,
|
||||
"dimension":{
|
||||
"width":1920,
|
||||
"height":1080,
|
||||
"rotate":0
|
||||
},
|
||||
"season_id":19992,
|
||||
"short_link":"https://b23.tv/BV16X4y1g7wT",
|
||||
"short_link_v2":"https://b23.tv/BV16X4y1g7wT",
|
||||
"bvid":"BV16X4y1g7wT",
|
||||
"season_type":0,
|
||||
"is_ogv":false,
|
||||
"ogv_info":null,
|
||||
"rcmd_reason":"",
|
||||
"achievement":"央视新华社点赞,博物馆喊话来上班!"
|
||||
},
|
||||
...
|
||||
]
|
||||
}
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1,
|
||||
"data": {
|
||||
"title": "入站必刷",
|
||||
"media_id": 496307088,
|
||||
"explain": "我不允许还有人没看过这98个宝藏视频!",
|
||||
"list": [
|
||||
// ...
|
||||
{
|
||||
"aid": 706,
|
||||
"videos": 1,
|
||||
"tid": 47,
|
||||
"tname": "同人·手书",
|
||||
"copyright": 2,
|
||||
"pic": "http://i1.hdslb.com/bfs/archive/753453a776fca838165a52c7511e8557857b61ea.jpg",
|
||||
"title": "【東方】Bad Apple!! PV【影絵】",
|
||||
"pubdate": 1256995125,
|
||||
"ctime": 1497344829,
|
||||
"desc": "sm8628149 2011/9/25追记:大家如果看到空耳字幕请果断举报,净化弹幕环境,你我有责,感谢。",
|
||||
"state": 0,
|
||||
"duration": 219,
|
||||
"rights": {
|
||||
"bp": 0,
|
||||
"elec": 0,
|
||||
"download": 0,
|
||||
"movie": 0,
|
||||
"pay": 0,
|
||||
"hd5": 0,
|
||||
"no_reprint": 0,
|
||||
"autoplay": 1,
|
||||
"ugc_pay": 0,
|
||||
"is_cooperation": 0,
|
||||
"ugc_pay_preview": 0,
|
||||
"no_background": 0,
|
||||
"arc_pay": 0,
|
||||
"pay_free_watch": 0
|
||||
},
|
||||
"owner": {
|
||||
"mid": 37,
|
||||
"name": "折射",
|
||||
"face": "http://i1.hdslb.com/bfs/face/49d19d3d9cc4b3938128cacd650859ac612156a1.gif"
|
||||
},
|
||||
"stat": {
|
||||
"aid": 706,
|
||||
"view": 11329388,
|
||||
"danmaku": 82247,
|
||||
"reply": 544932,
|
||||
"favorite": 502984,
|
||||
"coin": 195079,
|
||||
"share": 95877,
|
||||
"now_rank": 0,
|
||||
"his_rank": 88,
|
||||
"like": 480388,
|
||||
"dislike": 0,
|
||||
"vt": 0,
|
||||
"vv": 11329388
|
||||
},
|
||||
"dynamic": "",
|
||||
"cid": 3724723,
|
||||
"dimension": {
|
||||
"width": 480,
|
||||
"height": 360,
|
||||
"rotate": 0
|
||||
},
|
||||
"season_id": 879555,
|
||||
"short_link_v2": "https://b23.tv/BV1xx411c79H",
|
||||
"cover43": "",
|
||||
"bvid": "BV1xx411c79H",
|
||||
"season_type": 0,
|
||||
"is_ogv": false,
|
||||
"ogv_info": null,
|
||||
"rcmd_reason": "",
|
||||
"enable_vt": 0,
|
||||
"ai_rcmd": null,
|
||||
"achievement": "东方project标志性视频"
|
||||
},
|
||||
// ...
|
||||
]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
83
docs/wallet/info.md
Normal file
83
docs/wallet/info.md
Normal file
@ -0,0 +1,83 @@
|
||||
# 基本信息
|
||||
|
||||
## 获取用户钱包
|
||||
|
||||
> https://pay.bilibili.com/paywallet/wallet/getUserWallet
|
||||
|
||||
*请求方法: POST*
|
||||
|
||||
认证方式: Cookie (SESSDATA) (注意 `,` `*` 需要 URL 转义)
|
||||
|
||||
**正文参数 (application/json):**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------------ | ---- | -------- | ------ | ---------------------- |
|
||||
| panelType | num | 面板类型 | 不必要 | 默认为 3 |
|
||||
| platformType | num | 平台类型 | 必要 | 任意有效数字, 默认为 3 |
|
||||
| timestamp | num | 当前时间 | 不必要 | UNIX 毫秒时间戳 |
|
||||
| traceId | num | 追踪 ID | 不必要 | 与 timestamp 值相同 |
|
||||
| version | str | 版本 | 不必要 | 默认 `1.0` |
|
||||
|
||||
**JSON回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | ---- |
|
||||
| code | num | 返回值 | 0: 成功<br />8006000004: 缺参<br />别的错误码在 errno |
|
||||
| errno | num | 错误码 | 8006000004: 缺参<br />800501008: 内部错误(传的不是JSON)<br />800501007: 用户未登录 |
|
||||
| msg | str | 返回信息 | SUCCESS: 成功<br />否则为错误信息 |
|
||||
| showMsg | str | 显示信息 | 成功时为空 |
|
||||
| data | obj | 数据本体 | |
|
||||
| success | bool | 是否成功 | |
|
||||
|
||||
`data` 对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ----------------- | ---- | ----------- | ---- |
|
||||
| mid | num | 用户 mid | |
|
||||
| totalBp | num | 总计 B 币 | |
|
||||
| defaultBp | num | 默认 B 币? | |
|
||||
| isoBp | num | iOS B 币? | |
|
||||
| couponBalance | num | 优惠券余额 | |
|
||||
| availableBp | num | 可用 B 币 | |
|
||||
| unavailableBp | num | 不可用 B 币 | |
|
||||
| unavailableReason | str | 不可用原因 | |
|
||||
| tip | str | 请XXXXX | 请投币?? |
|
||||
| needShowClassBalance | num | 需要显示类平衡?? | 1 |
|
||||
|
||||
**示例:**
|
||||
|
||||
```shell
|
||||
curl -X POST 'https://pay.bilibili.com/paywallet/wallet/getUserWallet' \
|
||||
--data-raw '{"platformType":"3"}' \
|
||||
-H 'content-type: application/json' \
|
||||
-b 'SESSDATA=xxx'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"errno": 0,
|
||||
"msg": "SUCCESS",
|
||||
"showMsg": "",
|
||||
"data": {
|
||||
"mid": 616368979,
|
||||
"totalBp": 0.00,
|
||||
"defaultBp": 0.00,
|
||||
"iosBp": 0.00,
|
||||
"couponBalance": 0,
|
||||
"availableBp": 0.00,
|
||||
"unavailableBp": 0,
|
||||
"unavailableReason": "",
|
||||
"tip": "请XXXXX",
|
||||
"needShowClassBalance": 1
|
||||
},
|
||||
"success": true
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
133
docs/web_widget/header.md
Normal file
133
docs/web_widget/header.md
Normal file
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue
Block a user