diff --git a/README.md b/README.md index b2318a8..b8276f3 100644 --- a/README.md +++ b/README.md @@ -68,11 +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 +103,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 +127,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 +144,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 +189,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 +210,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 +220,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) @@ -240,7 +250,11 @@ B站 API 采用 C/S 结构,大多数接口为 REST API 和 gRPC,少部分接 - [ ] [直播红包](docs/live/redpocket.md) - [ ] [直播间用户实用 API](docs/live/user.md) - [x] [直播间禁言相关](docs/live/silent_user_manage.md) - - [ ] [关注UP直播情况](docs/live/follow_up_live) + - [ ] [关注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 +263,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) @@ -269,14 +283,19 @@ B站 API 采用 C/S 结构,大多数接口为 REST API 和 gRPC,少部分接 - [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) ## ✨鸣谢 diff --git a/docs/APP_widget/ver.md b/docs/APP_widget/ver.md new file mode 100644 index 0000000..f35751e --- /dev/null +++ b/docs/APP_widget/ver.md @@ -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: 成功
-304: 木有改动
-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=!!!' +``` + +
+查看响应示例: + +```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 + } +} +``` + +
diff --git a/docs/activity/info.md b/docs/activity/info.md new file mode 100644 index 0000000..f9c8da8 --- /dev/null +++ b/docs/activity/info.md @@ -0,0 +1,93 @@ +# 活动主题信息 + +## 主题信息 + +> https://api.bilibili.com/x/activity/subject/info + +*请求方式: GET* + +**URL参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| - | - | - | - | - | - | - | +| sid | num | 活动 id | 必要 | | +| bvid | str | 来源视频 bvid | 非必要 | | + +**JSON回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| - | - | - | - | +| code | num | 返回值 | 0: 成功
-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' +``` + +
+查看响应示例: + +```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 + } +} +``` + +
diff --git a/docs/activity/list.md b/docs/activity/list.md new file mode 100644 index 0000000..f187bd5 --- /dev/null +++ b/docs/activity/list.md @@ -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:成功
-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' +``` + +
+查看响应示例: + +```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 + } +} +``` + +
diff --git a/docs/clientinfo/ip.md b/docs/clientinfo/ip.md index d72633d..841f3c3 100644 --- a/docs/clientinfo/ip.md +++ b/docs/clientinfo/ip.md @@ -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` 字段 **示例:** diff --git a/docs/comment/list.md b/docs/comment/list.md index 90731ac..8c8297d 100644 --- a/docs/comment/list.md +++ b/docs/comment/list.md @@ -866,6 +866,8 @@ curl -G 'https://api.bilibili.com/x/v2/reply' \ 鉴权方式:[Wbi 签名](../misc/sign/wbi.md) +注: Wbi 签名错误时返回 -403 而非 -352 + **url参数:** | 参数名 | 类型 | 内容 | 必要性 | 备注 | @@ -874,8 +876,38 @@ curl -G 'https://api.bilibili.com/x/v2/reply' \ | type | num | 评论区类型代码 | 必要 | [类型代码见表](readme.md#评论区类型代码) | | oid | num | 目标评论区 id | 必要 | | | mode | num | 排序方式 | 非必要 | 默认为 3
0 3:仅按热度
1:按热度+按时间
2:仅按时间 | -| next | num | 评论页选择 | 非必要 | 按热度时:热度顺序页码(0 为第一页)
按时间时:时间倒序楼层号
默认为 0 | -| ps | num | 每页项数 | 非必要 | 默认为 20
定义域:1-30 | +| pagination_str | obj | 分页信息 | 非必要 | 见下 | +| plat | num | 平台类型 | 非必要 | 如 `1` | +| seek_rpid | str | 空 | 非必要 | 当获取第一页评论时存在 | +| web_location | str | 1315875 | 非必要 | | + +`pagination_str`: + +| 参数名 | 类型 | 内容 | 备注 | +| ----- | - | ------|------| +| offset | str | 一个套着字符串皮的 JSON Object | 上次响应 `data.cursor.pagination_reply.next_offset` 的值, 获取第一页时为空, 其余见下参考 | + +`pagination_str` 中的 `offset`: + +| 参数名 | 类型 | 内容 | 备注 | +| ----- | ---- | -- | - | +| type | num | 类型 | 当 URL 参数 mode 为 2 时, 此项为 3
当 URL 参数 mode 为 3 时, 此项为 1 | +| direction | num | 1 | | +| data | obj | 分页数据 | 当 type 为 1 时存在 | +| Data | obj | 分页数据 | 当 type 为 3 时存在 | + + +`offset` 中的 `data` (type=1): + +| 参数名 | 类型 | 内容 | 备注 | +| - | - | - | - | +| pn | num | 页码 (上次响应 `data.cursor.next` 的值) | | + +`offset` 中的 `Data` (type=3): + +| 参数名 | 类型 | 内容 | 备注 | +| - | - | - | - | +| cursor | num | 上次响应 `data.cursor.next` 的值 | | **json回复:** @@ -912,6 +944,10 @@ curl -G 'https://api.bilibili.com/x/v2/reply' \ | upper | obj | UP主信息 | | | show_bvid | bool | 显示 bvid? | | | control | obj | 评论区输入属性 | | +| note | num | 1 | | +| esports_grade_card | null | | | +| callbacks | null | | | +| context_feature | str | | | `data`中的`cursor`对象: @@ -923,9 +959,17 @@ curl -G 'https://api.bilibili.com/x/v2/reply' \ | next | num | 下页页码 | | | is_end | bool | 是否为最后页 | false:否
true:是 | | mode | num | 排序方式 | | -| show_type | num | (?) | | | support_mode | array | 支持的排序方式 | | | name | str | 评论区类型名 | | +| pagination_reply | str | 用于下一次请求的偏移信息 | | +| session_id | str | 空 | | + +`cursor`中的`pagination_reply`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | -- | - | +| next_offset | str | 用于下一次请求的偏移信息 | | +| prev_offset | str | 用于本次请求的偏移信息 | | `data`中的`config`对象: @@ -1002,2687 +1046,513 @@ curl -G 'https://api.bilibili.com/x/v2/reply' \ **示例:** -获取视频`av2`的评论区明细,按照热度排序,每页5项,查看第1页 +获取视频`av2`的评论区明细, 按时间排序, 第一页 ```shell -curl -G 'https://api.bilibili.com/x/v2/reply/main' \ ---data-urlencode 'type=1' \ +curl -G 'https://api.bilibili.com/x/v2/reply/wbi/main' \ --data-urlencode 'oid=2' \ ---data-urlencode 'mode=3' \ ---data-urlencode 'next=0' \ ---data-urlencode 'ps=5' \ --b 'SESSDATA=xxx' +--data-urlencode 'type=1' \ +--data-urlencode 'mode=2' \ +--data-urlencode 'w_rid=xxx' \ +--data-urlencode 'wts=xxx' \ +-b 'SESSDATA=' ```
查看响应示例: -```json +```jsonc { - "code": 0, - "message": "0", - "ttl": 1, - "data": { - "cursor": { - "all_count": 76793, - "is_begin": true, - "prev": 1, - "next": 2, - "is_end": false, - "mode": 3, - "show_type": 1, - "support_mode": [ - 1, - 2, - 3 - ], - "name": "热门评论" + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "cursor": { + "is_begin": true, + "prev": 71880, + "next": 71859, + "is_end": false, + "mode": 2, + "mode_text": "", + "all_count": 86234, + "support_mode": [ + 2, + 3 + ], + "name": "最新评论", + "pagination_reply": { + "next_offset": "{\"type\":3,\"direction\":1,\"Data\":{\"cursor\":71859}}" + }, + "session_id": "" + }, + "replies": [ + { + "rpid": 237740291920, + "oid": 2, + "type": 1, + "mid": 1201423076, + "root": 0, + "parent": 0, + "dialog": 0, + "count": 0, + "rcount": 0, + "state": 0, + "fansgrade": 0, + "attr": 0, + "ctime": 1723639342, + "mid_str": "1201423076", + "oid_str": "2", + "rpid_str": "237740291920", + "root_str": "0", + "parent_str": "0", + "dialog_str": "0", + "like": 0, + "action": 0, + "member": { + "mid": "1201423076", + "uname": "天堂いyoulin", + "sex": "保密", + "sign": "", + "avatar": "https://i2.hdslb.com/bfs/face/d0925e782198cadc0c400a3ed4fbdf94142357fb.jpg", + "rank": "10000", + "face_nft_new": 0, + "is_senior_member": 0, + "senior": {}, + "level_info": { + "current_level": 4, + "current_min": 0, + "current_exp": 0, + "next_exp": 0 + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "", + "image_enhance_frame": "", + "n_pid": 0 + }, + "nameplate": { + "nid": 0, + "name": "", + "image": "", + "image_small": "", + "level": "", + "condition": "" + }, + "official_verify": { + "type": -1, + "desc": "" + }, + "vip": { + "vipType": 0, + "vipDueDate": 0, + "dueRemark": "", + "accessStatus": 0, + "vipStatus": 0, + "vipStatusWarn": "", + "themeType": 0, + "label": { + "path": "", + "text": "", + "label_theme": "", + "text_color": "", + "bg_style": 0, + "bg_color": "", + "border_color": "", + "use_img_label": true, + "img_label_uri_hans": "", + "img_label_uri_hant": "", + "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/d7b702ef65a976b20ed854cbd04cb9e27341bb79.png", + "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/KJunwh19T5.png" + }, + "avatar_subscript": 0, + "nickname_color": "" + }, + "fans_detail": null, + "user_sailing": { + "pendant": null, + "cardbg": null, + "cardbg_with_focus": null + }, + "user_sailing_v2": {}, + "is_contractor": false, + "contract_desc": "", + "nft_interaction": null, + "avatar_item": { + "container_size": { + "width": 1.8, + "height": 1.8 + }, + "fallback_layers": { + "layers": [ + { + "visible": true, + "general_spec": { + "pos_spec": { + "coordinate_pos": 2, + "axis_x": 0.9, + "axis_y": 0.9 + }, + "size_spec": { + "width": 1, + "height": 1 + }, + "render_spec": { + "opacity": 1 + } + }, + "layer_config": { + "tags": { + "AVATAR_LAYER": {} + }, + "is_critical": true, + "layer_mask": { + "general_spec": { + "pos_spec": { + "coordinate_pos": 2, + "axis_x": 0.9, + "axis_y": 0.9 + }, + "size_spec": { + "width": 1, + "height": 1 + }, + "render_spec": { + "opacity": 1 + } + }, + "mask_src": { + "src_type": 3, + "draw": { + "draw_type": 1, + "fill_mode": 1, + "color_config": { + "day": { + "argb": "#FF000000" + } + } + } + } + } + }, + "resource": { + "res_type": 3, + "res_image": { + "image_src": { + "src_type": 1, + "placeholder": 6, + "remote": { + "url": "https://i2.hdslb.com/bfs/face/d0925e782198cadc0c400a3ed4fbdf94142357fb.jpg", + "bfs_style": "widget-layer-avatar" + } + } + } + } + } + ], + "is_critical_group": true + }, + "mid": "1201423076" + } }, - "hots": null, - "notice": null, - "replies": [ - { - "rpid": 476670, - "oid": 2, - "type": 1, - "mid": 58426, - "root": 0, - "parent": 0, - "dialog": 0, - "count": 2733, - "rcount": 2608, - "state": 0, - "fansgrade": 0, - "attr": 0, - "ctime": 1291350931, - "rpid_str": "476670", - "root_str": "0", - "parent_str": "0", - "like": 90419, - "action": 0, - "member": { - "mid": "58426", - "uname": "残星什么的就是残星", - "sex": "男", - "sign": "少说话多做事 _微博@残星", - "avatar": "http://i1.hdslb.com/bfs/face/56ac36b37662e3746228f30eb4acf2cd332b66a5.jpg", - "rank": "20000", - "DisplayRank": "0", - "face_nft_new": 0, - "is_senior_member": 0, - "level_info": { - "current_level": 6, - "current_min": 0, - "current_exp": 0, - "next_exp": 0 - }, - "pendant": { - "pid": 0, - "name": "", - "image": "", - "expire": 0, - "image_enhance": "", - "image_enhance_frame": "" - }, - "nameplate": { - "nid": 30, - "name": "字幕君", - "image": "http://i1.hdslb.com/bfs/face/383c3fed3dc162c93a8d616a272693f6650e98f1.png", - "image_small": "http://i2.hdslb.com/bfs/face/7ad18084e40b725210e22696e0efdae408cd378c.png", - "level": "稀有勋章", - "condition": "弹幕大赛获得" - }, - "official_verify": { - "type": -1, - "desc": "" - }, - "vip": { - "vipType": 2, - "vipDueDate": 1710777600000, - "dueRemark": "", - "accessStatus": 0, - "vipStatus": 1, - "vipStatusWarn": "", - "themeType": 0, - "label": { - "path": "", - "text": "年度大会员", - "label_theme": "annual_vip", - "text_color": "#FFFFFF", - "bg_style": 1, - "bg_color": "#FB7299", - "border_color": "" - }, - "avatar_subscript": 1, - "avatar_subscript_url": "http://i0.hdslb.com/bfs/vip/icon_Certification_big_member_22_3x.png", - "nickname_color": "#FB7299" - }, - "fans_detail": null, - "following": 0, - "is_followed": 0, - "user_sailing": { - "pendant": null, - "cardbg": null, - "cardbg_with_focus": null - }, - "is_contractor": false, - "contract_desc": "" - }, - "content": { - "message": "貌似没人来", - "plat": 0, - "device": "", - "members": [], - "jump_url": {}, - "max_line": 6 - }, - "replies": [ - { - "rpid": 214198733, - "oid": 2, - "type": 1, - "mid": 18370638, - "root": 476670, - "parent": 476670, - "dialog": 214198733, - "count": 0, - "rcount": 0, - "state": 0, - "fansgrade": 0, - "attr": 0, - "ctime": 1488888369, - "rpid_str": "214198733", - "root_str": "476670", - "parent_str": "476670", - "like": 1958, - "action": 0, - "member": { - "mid": "18370638", - "uname": "初音ハク", - "sex": "保密", - "sign": "我是艾尔的利刃", - "avatar": "http://i0.hdslb.com/bfs/face/71b838cc7c69dc16e0ad49fa4e6f84a2fe2eaadb.jpg", - "rank": "10000", - "DisplayRank": "0", - "face_nft_new": 0, - "is_senior_member": 0, - "level_info": { - "current_level": 5, - "current_min": 0, - "current_exp": 0, - "next_exp": 0 - }, - "pendant": { - "pid": 0, - "name": "", - "image": "", - "expire": 0, - "image_enhance": "", - "image_enhance_frame": "" - }, - "nameplate": { - "nid": 74, - "name": "大会员2018年度勋章", - "image": "http://i0.hdslb.com/bfs/face/421179426c929dfeaed4117461c83f5d07ffb148.png", - "image_small": "http://i2.hdslb.com/bfs/face/682001c2e1c2ae887bdf2a0e18eef61180c48f84.png", - "level": "稀有勋章", - "condition": "2018.6.26-7.8某一天是年度大会员" - }, - "official_verify": { - "type": -1, - "desc": "" - }, - "vip": { - "vipType": 2, - "vipDueDate": 1654790400000, - "dueRemark": "", - "accessStatus": 0, - "vipStatus": 1, - "vipStatusWarn": "", - "themeType": 0, - "label": { - "path": "", - "text": "年度大会员", - "label_theme": "annual_vip", - "text_color": "#FFFFFF", - "bg_style": 1, - "bg_color": "#FB7299", - "border_color": "" - }, - "avatar_subscript": 1, - "avatar_subscript_url": "http://i0.hdslb.com/bfs/vip/icon_Certification_big_member_22_3x.png", - "nickname_color": "#FB7299" - }, - "fans_detail": null, - "following": 0, - "is_followed": 0, - "user_sailing": { - "pendant": null, - "cardbg": null, - "cardbg_with_focus": null - }, - "is_contractor": false, - "contract_desc": "" - }, - "content": { - "message": "划了4千多条评论找到的啊ε=ε=(ノ≧∇≦)ノ", - "plat": 0, - "device": "", - "members": [], - "jump_url": {}, - "max_line": 999 - }, - "replies": null, - "assist": 0, - "folder": { - "has_folded": false, - "is_folded": false, - "rule": "" - }, - "up_action": { - "like": false, - "reply": false - }, - "show_follow": false, - "invisible": false, - "reply_control": { - "time_desc": "1821天前发布" - } - }, - { - "rpid": 568785293, - "oid": 2, - "type": 1, - "mid": 52987877, - "root": 476670, - "parent": 476670, - "dialog": 568785293, - "count": 0, - "rcount": 0, - "state": 0, - "fansgrade": 0, - "attr": 0, - "ctime": 1514903586, - "rpid_str": "568785293", - "root_str": "476670", - "parent_str": "476670", - "like": 6534, - "action": 0, - "member": { - "mid": "52987877", - "uname": "Mr-Shadow", - "sex": "男", - "sign": "重灾区话题回避", - "avatar": "http://i2.hdslb.com/bfs/face/dc679f8221b27e2056c1ad018d168402d80d98d5.jpg", - "rank": "10000", - "DisplayRank": "0", - "face_nft_new": 0, - "is_senior_member": 0, - "level_info": { - "current_level": 6, - "current_min": 0, - "current_exp": 0, - "next_exp": 0 - }, - "pendant": { - "pid": 2511, - "name": "初音未来13周年", - "image": "http://i2.hdslb.com/bfs/garb/item/4f8f3f1f2d47f0dad84f66aa57acd4409ea46361.png", - "expire": 0, - "image_enhance": "http://i2.hdslb.com/bfs/garb/item/fe0b83b53e2342b16646f6e7a9370d8a867decdb.webp", - "image_enhance_frame": "http://i2.hdslb.com/bfs/garb/item/127c507ec8448be30cf5f79500ecc6ef2fd32f2c.png" - }, - "nameplate": { - "nid": 61, - "name": "有爱楷模", - "image": "http://i2.hdslb.com/bfs/face/5a90f715451325c642a6ac39e01195cb6d075734.png", - "image_small": "http://i0.hdslb.com/bfs/face/5bfc1b4fb3f4b411495dddb0b2127ad80f6fbcac.png", - "level": "普通勋章", - "condition": "当前持有粉丝勋章最高等级>=10级" - }, - "official_verify": { - "type": -1, - "desc": "" - }, - "vip": { - "vipType": 2, - "vipDueDate": 1666281600000, - "dueRemark": "", - "accessStatus": 0, - "vipStatus": 1, - "vipStatusWarn": "", - "themeType": 0, - "label": { - "path": "", - "text": "年度大会员", - "label_theme": "annual_vip", - "text_color": "#FFFFFF", - "bg_style": 1, - "bg_color": "#FB7299", - "border_color": "" - }, - "avatar_subscript": 1, - "avatar_subscript_url": "http://i0.hdslb.com/bfs/vip/icon_Certification_big_member_22_3x.png", - "nickname_color": "#FB7299" - }, - "fans_detail": null, - "following": 0, - "is_followed": 0, - "user_sailing": { - "pendant": { - "id": 2511, - "name": "初音未来13周年", - "image": "http://i0.hdslb.com/bfs/garb/item/4f8f3f1f2d47f0dad84f66aa57acd4409ea46361.png", - "jump_url": "", - "type": "suit", - "image_enhance": "http://i0.hdslb.com/bfs/garb/item/fe0b83b53e2342b16646f6e7a9370d8a867decdb.webp", - "image_enhance_frame": "http://i0.hdslb.com/bfs/garb/item/127c507ec8448be30cf5f79500ecc6ef2fd32f2c.png" - }, - "cardbg": { - "id": 2528, - "name": "初音未来13周年", - "image": "http://i0.hdslb.com/bfs/garb/item/7dbd22f700e0a7fe0c0d0da7b1a54241626bf1cd.png", - "jump_url": "https://www.bilibili.com/h5/mall/fans/recommend/2554?navhide=1&mid=52987877&from=reply", - "fan": { - "is_fan": 1, - "number": 94388, - "color": "#07b6d5", - "name": "初音未来周年纪念", - "num_desc": "094388" - }, - "type": "suit" - }, - "cardbg_with_focus": null - }, - "is_contractor": false, - "contract_desc": "" - }, - "content": { - "message": "你可能抢到了整个b站最难抢到的沙发(`・ω・´)", - "plat": 0, - "device": "", - "members": [], - "jump_url": {}, - "max_line": 999 - }, - "replies": null, - "assist": 0, - "folder": { - "has_folded": false, - "is_folded": false, - "rule": "" - }, - "up_action": { - "like": false, - "reply": false - }, - "show_follow": false, - "invisible": false, - "reply_control": { - "time_desc": "1520天前发布" - } - }, - { - "rpid": 2237449754, - "oid": 2, - "type": 1, - "mid": 400121455, - "root": 476670, - "parent": 568785293, - "dialog": 568785293, - "count": 0, - "rcount": 0, - "state": 0, - "fansgrade": 0, - "attr": 0, - "ctime": 1578311878, - "rpid_str": "2237449754", - "root_str": "476670", - "parent_str": "568785293", - "like": 194, - "action": 0, - "member": { - "mid": "400121455", - "uname": "TxAY丶", - "sex": "保密", - "sign": "6月后有空做视频 | 星火工作室后期、CM拜年祭制作成员", - "avatar": "http://i1.hdslb.com/bfs/face/ce011d50196afd8fedc45240f6aebab061aee524.jpg", - "rank": "10000", - "DisplayRank": "0", - "face_nft_new": 0, - "is_senior_member": 0, - "level_info": { - "current_level": 5, - "current_min": 0, - "current_exp": 0, - "next_exp": 0 - }, - "pendant": { - "pid": 0, - "name": "", - "image": "", - "expire": 0, - "image_enhance": "", - "image_enhance_frame": "" - }, - "nameplate": { - "nid": 4, - "name": "青铜殿堂", - "image": "http://i2.hdslb.com/bfs/face/2879cd5fb8518f7c6da75887994c1b2a7fe670bd.png", - "image_small": "http://i1.hdslb.com/bfs/face/6707c120e00a3445933308fd9b7bd9fad99e9ec4.png", - "level": "普通勋章", - "condition": "单个自制视频总播放数>=1万" - }, - "official_verify": { - "type": -1, - "desc": "" - }, - "vip": { - "vipType": 1, - "vipDueDate": 1626364800000, - "dueRemark": "", - "accessStatus": 0, - "vipStatus": 0, - "vipStatusWarn": "", - "themeType": 0, - "label": { - "path": "", - "text": "", - "label_theme": "", - "text_color": "", - "bg_style": 0, - "bg_color": "", - "border_color": "" - }, - "avatar_subscript": 0, - "nickname_color": "" - }, - "fans_detail": null, - "following": 0, - "is_followed": 0, - "user_sailing": { - "pendant": null, - "cardbg": null, - "cardbg_with_focus": null - }, - "is_contractor": false, - "contract_desc": "" - }, - "content": { - "message": "回复 @Mr-Shadow :你可能抢到了整个b站最难抢到的热评的热评", - "plat": 0, - "device": "", - "members": [], - "jump_url": {}, - "max_line": 999 - }, - "replies": null, - "assist": 0, - "folder": { - "has_folded": false, - "is_folded": false, - "rule": "" - }, - "up_action": { - "like": false, - "reply": false - }, - "show_follow": false, - "invisible": false, - "reply_control": { - "time_desc": "786天前发布" - } - } - ], - "assist": 0, - "folder": { - "has_folded": false, - "is_folded": false, - "rule": "https://www.bilibili.com/blackboard/foldingreply.html" - }, - "up_action": { - "like": false, - "reply": false - }, - "show_follow": true, - "invisible": false, - "reply_control": { - "sub_reply_entry_text": "共2608条回复", - "sub_reply_title_text": "相关回复共2608条", - "time_desc": "4107天前发布" - } - }, - { - "rpid": 917945205, - "oid": 2, - "type": 1, - "mid": 34762090, - "root": 0, - "parent": 0, - "dialog": 0, - "count": 461, - "rcount": 365, - "state": 0, - "fansgrade": 1, - "attr": 0, - "ctime": 1532071373, - "rpid_str": "917945205", - "root_str": "0", - "parent_str": "0", - "like": 29793, - "action": 0, - "member": { - "mid": "34762090", - "uname": "某不科学的瓜皮", - "sex": "男", - "sign": "持杯拱天,谓无言,静沉眠", - "avatar": "http://i1.hdslb.com/bfs/face/cc61140c64409a3f5793207f3c866555e8638ab5.jpg", - "rank": "10000", - "DisplayRank": "0", - "face_nft_new": 0, - "is_senior_member": 0, - "level_info": { - "current_level": 5, - "current_min": 0, - "current_exp": 0, - "next_exp": 0 - }, - "pendant": { - "pid": 0, - "name": "", - "image": "", - "expire": 0, - "image_enhance": "", - "image_enhance_frame": "" - }, - "nameplate": { - "nid": 4, - "name": "青铜殿堂", - "image": "http://i0.hdslb.com/bfs/face/2879cd5fb8518f7c6da75887994c1b2a7fe670bd.png", - "image_small": "http://i2.hdslb.com/bfs/face/6707c120e00a3445933308fd9b7bd9fad99e9ec4.png", - "level": "普通勋章", - "condition": "单个自制视频总播放数>=1万" - }, - "official_verify": { - "type": -1, - "desc": "" - }, - "vip": { - "vipType": 1, - "vipDueDate": 1631980800000, - "dueRemark": "", - "accessStatus": 0, - "vipStatus": 0, - "vipStatusWarn": "", - "themeType": 0, - "label": { - "path": "", - "text": "", - "label_theme": "", - "text_color": "", - "bg_style": 0, - "bg_color": "", - "border_color": "" - }, - "avatar_subscript": 0, - "nickname_color": "" - }, - "fans_detail": { - "uid": 34762090, - "medal_id": 29058, - "medal_name": "逸国", - "score": 0, - "level": 1, - "intimacy": 0, - "master_status": 1, - "is_receive": 1, - "medal_color": 643602062, - "medal_color_end": 643602062, - "medal_color_border": 4284257934, - "medal_color_name": 4284257934, - "medal_color_level": 4284257934, - "guard_level": 0 - }, - "following": 0, - "is_followed": 0, - "user_sailing": { - "pendant": null, - "cardbg": null, - "cardbg_with_focus": null - }, - "is_contractor": false, - "contract_desc": "" - }, - "content": { - "message": "7.20日,站长被封7天\n\n历史性留名[2233娘_卖萌]", - "plat": 0, - "device": "", - "members": [], - "emote": { - "[2233娘_卖萌]": { - "id": 140, - "package_id": 6, - "state": 0, - "type": 2, - "attr": 0, - "text": "[2233娘_卖萌]", - "url": "http://i0.hdslb.com/bfs/emote/ea893aa25355de95ab4f03c2dad3f0c58d0c159e.png", - "meta": { - "size": 2 - }, - "mtime": 1626664892, - "jump_title": "卖萌" - } - }, - "jump_url": {}, - "max_line": 6 - }, - "replies": [ - { - "rpid": 1781253749, - "oid": 2, - "type": 1, - "mid": 34762090, - "root": 917945205, - "parent": 917945205, - "dialog": 1781253749, - "count": 0, - "rcount": 0, - "state": 0, - "fansgrade": 1, - "attr": 0, - "ctime": 1563598609, - "rpid_str": "1781253749", - "root_str": "917945205", - "parent_str": "917945205", - "like": 1224, - "action": 0, - "member": { - "mid": "34762090", - "uname": "某不科学的瓜皮", - "sex": "男", - "sign": "持杯拱天,谓无言,静沉眠", - "avatar": "http://i1.hdslb.com/bfs/face/cc61140c64409a3f5793207f3c866555e8638ab5.jpg", - "rank": "10000", - "DisplayRank": "0", - "face_nft_new": 0, - "is_senior_member": 0, - "level_info": { - "current_level": 5, - "current_min": 0, - "current_exp": 0, - "next_exp": 0 - }, - "pendant": { - "pid": 0, - "name": "", - "image": "", - "expire": 0, - "image_enhance": "", - "image_enhance_frame": "" - }, - "nameplate": { - "nid": 4, - "name": "青铜殿堂", - "image": "http://i0.hdslb.com/bfs/face/2879cd5fb8518f7c6da75887994c1b2a7fe670bd.png", - "image_small": "http://i2.hdslb.com/bfs/face/6707c120e00a3445933308fd9b7bd9fad99e9ec4.png", - "level": "普通勋章", - "condition": "单个自制视频总播放数>=1万" - }, - "official_verify": { - "type": -1, - "desc": "" - }, - "vip": { - "vipType": 1, - "vipDueDate": 1631980800000, - "dueRemark": "", - "accessStatus": 0, - "vipStatus": 0, - "vipStatusWarn": "", - "themeType": 0, - "label": { - "path": "", - "text": "", - "label_theme": "", - "text_color": "", - "bg_style": 0, - "bg_color": "", - "border_color": "" - }, - "avatar_subscript": 0, - "nickname_color": "" - }, - "fans_detail": { - "uid": 34762090, - "medal_id": 29058, - "medal_name": "逸国", - "score": 0, - "level": 1, - "intimacy": 0, - "master_status": 1, - "is_receive": 1, - "medal_color": 643602062, - "medal_color_end": 643602062, - "medal_color_border": 4284257934, - "medal_color_name": 4284257934, - "medal_color_level": 4284257934, - "guard_level": 0 - }, - "following": 0, - "is_followed": 0, - "user_sailing": { - "pendant": null, - "cardbg": null, - "cardbg_with_focus": null - }, - "is_contractor": false, - "contract_desc": "" - }, - "content": { - "message": "站长被封一周年 [小电视_笑]", - "plat": 0, - "device": "", - "members": [], - "emote": { - "[小电视_笑]": { - "id": 121, - "package_id": 5, - "state": 0, - "type": 2, - "attr": 0, - "text": "[小电视_笑]", - "url": "http://i0.hdslb.com/bfs/emote/f80d384875183dfe2e24be13011c595c0210d273.png", - "meta": { - "size": 2 - }, - "mtime": 1628587688, - "jump_title": "笑" - } - }, - "jump_url": {}, - "max_line": 999 - }, - "replies": null, - "assist": 0, - "folder": { - "has_folded": false, - "is_folded": false, - "rule": "" - }, - "up_action": { - "like": false, - "reply": false - }, - "show_follow": false, - "invisible": false, - "reply_control": { - "time_desc": "956天前发布" - } - }, - { - "rpid": 1781556726, - "oid": 2, - "type": 1, - "mid": 417437969, - "root": 917945205, - "parent": 1781253749, - "dialog": 1781253749, - "count": 0, - "rcount": 0, - "state": 0, - "fansgrade": 0, - "attr": 0, - "ctime": 1563605321, - "rpid_str": "1781556726", - "root_str": "917945205", - "parent_str": "1781253749", - "like": 372, - "action": 0, - "member": { - "mid": "417437969", - "uname": "理查奈德", - "sex": "男", - "sign": "欲雷普琪露诺的各种小圈子小鬼", - "avatar": "http://i2.hdslb.com/bfs/face/6923f6414503413f292a1cfad13ac483683a77d6.jpg", - "rank": "10000", - "DisplayRank": "0", - "face_nft_new": 0, - "is_senior_member": 0, - "level_info": { - "current_level": 5, - "current_min": 0, - "current_exp": 0, - "next_exp": 0 - }, - "pendant": { - "pid": 0, - "name": "", - "image": "", - "expire": 0, - "image_enhance": "", - "image_enhance_frame": "" - }, - "nameplate": { - "nid": 0, - "name": "", - "image": "", - "image_small": "", - "level": "", - "condition": "" - }, - "official_verify": { - "type": -1, - "desc": "" - }, - "vip": { - "vipType": 0, - "vipDueDate": 0, - "dueRemark": "", - "accessStatus": 0, - "vipStatus": 0, - "vipStatusWarn": "", - "themeType": 0, - "label": { - "path": "", - "text": "", - "label_theme": "", - "text_color": "", - "bg_style": 0, - "bg_color": "", - "border_color": "" - }, - "avatar_subscript": 0, - "nickname_color": "" - }, - "fans_detail": null, - "following": 0, - "is_followed": 0, - "user_sailing": { - "pendant": null, - "cardbg": null, - "cardbg_with_focus": null - }, - "is_contractor": false, - "contract_desc": "" - }, - "content": { - "message": "回复 @某不科学的瓜皮 :这是件值得庆祝的日子啊(滑稽保命)[滑稽]", - "plat": 0, - "device": "", - "members": [], - "emote": { - "[滑稽]": { - "id": 27, - "package_id": 1, - "state": 0, - "type": 1, - "attr": 0, - "text": "[滑稽]", - "url": "http://i0.hdslb.com/bfs/emote/d15121545a99ac46774f1f4465b895fe2d1411c3.png", - "meta": { - "size": 1 - }, - "mtime": 1645206695, - "jump_title": "滑稽" - } - }, - "jump_url": {}, - "max_line": 999 - }, - "replies": null, - "assist": 0, - "folder": { - "has_folded": false, - "is_folded": false, - "rule": "" - }, - "up_action": { - "like": false, - "reply": false - }, - "show_follow": false, - "invisible": false, - "reply_control": { - "time_desc": "956天前发布" - } - }, - { - "rpid": 2254034005, - "oid": 2, - "type": 1, - "mid": 435781129, - "root": 917945205, - "parent": 917945205, - "dialog": 2254034005, - "count": 0, - "rcount": 0, - "state": 0, - "fansgrade": 0, - "attr": 0, - "ctime": 1578829367, - "rpid_str": "2254034005", - "root_str": "917945205", - "parent_str": "917945205", - "like": 137, - "action": 0, - "member": { - "mid": "435781129", - "uname": "yourmumdie", - "sex": "保密", - "sign": "签名不能留八个字", - "avatar": "http://i1.hdslb.com/bfs/face/77489a807c616304cef9ac446b8bed2528de4e25.jpg", - "rank": "10000", - "DisplayRank": "0", - "face_nft_new": 0, - "is_senior_member": 0, - "level_info": { - "current_level": 5, - "current_min": 0, - "current_exp": 0, - "next_exp": 0 - }, - "pendant": { - "pid": 0, - "name": "", - "image": "", - "expire": 0, - "image_enhance": "", - "image_enhance_frame": "" - }, - "nameplate": { - "nid": 0, - "name": "", - "image": "", - "image_small": "", - "level": "", - "condition": "" - }, - "official_verify": { - "type": -1, - "desc": "" - }, - "vip": { - "vipType": 1, - "vipDueDate": 1644249600000, - "dueRemark": "", - "accessStatus": 0, - "vipStatus": 0, - "vipStatusWarn": "", - "themeType": 0, - "label": { - "path": "", - "text": "", - "label_theme": "", - "text_color": "", - "bg_style": 0, - "bg_color": "", - "border_color": "" - }, - "avatar_subscript": 0, - "nickname_color": "" - }, - "fans_detail": null, - "following": 0, - "is_followed": 0, - "user_sailing": { - "pendant": null, - "cardbg": null, - "cardbg_with_focus": null - }, - "is_contractor": false, - "contract_desc": "" - }, - "content": { - "message": "av7", - "plat": 0, - "device": "", - "members": [], - "jump_url": { - "av7": { - "title": "2012地球便当之日宣传片", - "state": 0, - "prefix_icon": "https://i0.hdslb.com/bfs/activity-plat/static/20201110/4c8b2dbaded282e67c9a31daa4297c3c/AeQJlYP7e.png", - "app_url_schema": "", - "app_name": "", - "app_package_name": "", - "click_report": "7", - "is_half_screen": false, - "exposure_report": "" - } - }, - "max_line": 999 - }, - "replies": null, - "assist": 0, - "folder": { - "has_folded": false, - "is_folded": false, - "rule": "" - }, - "up_action": { - "like": false, - "reply": false - }, - "show_follow": false, - "invisible": false, - "reply_control": { - "time_desc": "780天前发布" - } - } - ], - "assist": 0, - "folder": { - "has_folded": false, - "is_folded": false, - "rule": "https://www.bilibili.com/blackboard/foldingreply.html" - }, - "up_action": { - "like": false, - "reply": false - }, - "show_follow": true, - "invisible": false, - "reply_control": { - "sub_reply_entry_text": "共365条回复", - "sub_reply_title_text": "相关回复共365条", - "time_desc": "1321天前发布" - } - }, - { - "rpid": 2576184175, - "oid": 2, - "type": 1, - "mid": 24512285, - "root": 0, - "parent": 0, - "dialog": 0, - "count": 1066, - "rcount": 1000, - "state": 0, - "fansgrade": 0, - "attr": 0, - "ctime": 1584945297, - "rpid_str": "2576184175", - "root_str": "0", - "parent_str": "0", - "like": 44307, - "action": 0, - "member": { - "mid": "24512285", - "uname": "艾斯黛斯T", - "sex": "男", - "sign": "飞飞飞", - "avatar": "http://i2.hdslb.com/bfs/face/e2176a16d749fdb720d4181309d4075c91db7952.jpg", - "rank": "10000", - "DisplayRank": "0", - "face_nft_new": 0, - "is_senior_member": 0, - "level_info": { - "current_level": 6, - "current_min": 0, - "current_exp": 0, - "next_exp": 0 - }, - "pendant": { - "pid": 4104, - "name": "良辰美景·不问天", - "image": "http://i2.hdslb.com/bfs/garb/item/4dbf08aae75f9479a21db2bb289229b8d71631e1.png", - "expire": 0, - "image_enhance": "http://i2.hdslb.com/bfs/garb/item/253bf41272ddef301c1f6a0361abd49d772bfafc.webp", - "image_enhance_frame": "http://i2.hdslb.com/bfs/garb/item/c4934a1ffdb3865fe79b319de439af3973b53ec9.png" - }, - "nameplate": { - "nid": 58, - "name": "收集达人", - "image": "http://i0.hdslb.com/bfs/face/3f5539e1486303422ffc8595862ccb6606e0b745.png", - "image_small": "http://i0.hdslb.com/bfs/face/cf85e7908095d256e595ec9759f4e7795f23bc22.png", - "level": "普通勋章", - "condition": "同时拥有粉丝勋章>=15个" - }, - "official_verify": { - "type": -1, - "desc": "" - }, - "vip": { - "vipType": 2, - "vipDueDate": 1646236800000, - "dueRemark": "", - "accessStatus": 0, - "vipStatus": 1, - "vipStatusWarn": "", - "themeType": 0, - "label": { - "path": "", - "text": "年度大会员", - "label_theme": "annual_vip", - "text_color": "#FFFFFF", - "bg_style": 1, - "bg_color": "#FB7299", - "border_color": "" - }, - "avatar_subscript": 1, - "avatar_subscript_url": "http://i0.hdslb.com/bfs/vip/icon_Certification_big_member_22_3x.png", - "nickname_color": "#FB7299" - }, - "fans_detail": null, - "following": 0, - "is_followed": 0, - "user_sailing": { - "pendant": { - "id": 4104, - "name": "良辰美景·不问天", - "image": "http://i0.hdslb.com/bfs/garb/item/4dbf08aae75f9479a21db2bb289229b8d71631e1.png", - "jump_url": "", - "type": "suit", - "image_enhance": "http://i0.hdslb.com/bfs/garb/item/253bf41272ddef301c1f6a0361abd49d772bfafc.webp", - "image_enhance_frame": "http://i0.hdslb.com/bfs/garb/item/c4934a1ffdb3865fe79b319de439af3973b53ec9.png" - }, - "cardbg": { - "id": 4123, - "name": "良辰美景·不问天", - "image": "http://i0.hdslb.com/bfs/garb/item/f251c507a2b09605d414c9107ffe2073bbf65735.png", - "jump_url": "https://www.bilibili.com/h5/mall/fans/recommend/4019?navhide=1&mid=24512285&from=reply", - "fan": { - "is_fan": 1, - "number": 70746, - "color": "#fe7491", - "name": "良辰美景·不问天", - "num_desc": "070746" - }, - "type": "suit" - }, - "cardbg_with_focus": null - }, - "is_contractor": false, - "contract_desc": "" - }, - "content": { - "message": "人类最古のav号(挂了的不算)也变成bv了[大哭][大哭][大哭]青春结束了", - "plat": 0, - "device": "", - "members": [], - "emote": { - "[大哭]": { - "id": 5, - "package_id": 1, - "state": 0, - "type": 1, - "attr": 0, - "text": "[大哭]", - "url": "http://i0.hdslb.com/bfs/emote/2caafee2e5db4db72104650d87810cc2c123fc86.png", - "meta": { - "size": 1 - }, - "mtime": 1597738918, - "jump_title": "大哭" - } - }, - "jump_url": {}, - "max_line": 6 - }, - "replies": [ - { - "rpid": 2578082161, - "oid": 2, - "type": 1, - "mid": 407225717, - "root": 2576184175, - "parent": 2576184175, - "dialog": 2578082161, - "count": 0, - "rcount": 0, - "state": 0, - "fansgrade": 0, - "attr": 0, - "ctime": 1584964926, - "rpid_str": "2578082161", - "root_str": "2576184175", - "parent_str": "2576184175", - "like": 2030, - "action": 0, - "member": { - "mid": "407225717", - "uname": "白月魁单推人", - "sex": "保密", - "sign": "", - "avatar": "http://i2.hdslb.com/bfs/face/57899fca9856acfb2f92fdabf00e655a74aeae67.jpg", - "rank": "10000", - "DisplayRank": "0", - "face_nft_new": 0, - "is_senior_member": 0, - "level_info": { - "current_level": 5, - "current_min": 0, - "current_exp": 0, - "next_exp": 0 - }, - "pendant": { - "pid": 0, - "name": "", - "image": "", - "expire": 0, - "image_enhance": "", - "image_enhance_frame": "" - }, - "nameplate": { - "nid": 0, - "name": "", - "image": "", - "image_small": "", - "level": "", - "condition": "" - }, - "official_verify": { - "type": -1, - "desc": "" - }, - "vip": { - "vipType": 1, - "vipDueDate": 1626364800000, - "dueRemark": "", - "accessStatus": 0, - "vipStatus": 0, - "vipStatusWarn": "", - "themeType": 0, - "label": { - "path": "", - "text": "", - "label_theme": "", - "text_color": "", - "bg_style": 0, - "bg_color": "", - "border_color": "" - }, - "avatar_subscript": 0, - "nickname_color": "" - }, - "fans_detail": null, - "following": 0, - "is_followed": 0, - "user_sailing": { - "pendant": null, - "cardbg": null, - "cardbg_with_focus": null - }, - "is_contractor": false, - "contract_desc": "" - }, - "content": { - "message": "先留个名,估计以后av会被当成冷知识放出来[大哭]", - "plat": 0, - "device": "", - "members": [], - "emote": { - "[大哭]": { - "id": 5, - "package_id": 1, - "state": 0, - "type": 1, - "attr": 0, - "text": "[大哭]", - "url": "http://i0.hdslb.com/bfs/emote/2caafee2e5db4db72104650d87810cc2c123fc86.png", - "meta": { - "size": 1 - }, - "mtime": 1597738918, - "jump_title": "大哭" - } - }, - "jump_url": {}, - "max_line": 999 - }, - "replies": null, - "assist": 0, - "folder": { - "has_folded": false, - "is_folded": false, - "rule": "" - }, - "up_action": { - "like": false, - "reply": false - }, - "show_follow": false, - "invisible": false, - "reply_control": { - "time_desc": "709天前发布" - } - }, - { - "rpid": 2579961512, - "oid": 2, - "type": 1, - "mid": 329965337, - "root": 2576184175, - "parent": 2576184175, - "dialog": 2579961512, - "count": 0, - "rcount": 0, - "state": 0, - "fansgrade": 0, - "attr": 0, - "ctime": 1584982846, - "rpid_str": "2579961512", - "root_str": "2576184175", - "parent_str": "2576184175", - "like": 248, - "action": 0, - "member": { - "mid": "329965337", - "uname": "积极发言的刘同学", - "sex": "男", - "sign": "Hi这里是刘同学,一个业余的校园摄影及公路自行车骑手,同时也是在校高中生(有时穿穿dk)", - "avatar": "http://i2.hdslb.com/bfs/face/3b586d7dbe8c2dba32b213e0a474fe6d86921b85.jpg", - "rank": "10000", - "DisplayRank": "0", - "face_nft_new": 0, - "is_senior_member": 0, - "level_info": { - "current_level": 5, - "current_min": 0, - "current_exp": 0, - "next_exp": 0 - }, - "pendant": { - "pid": 0, - "name": "", - "image": "", - "expire": 0, - "image_enhance": "", - "image_enhance_frame": "" - }, - "nameplate": { - "nid": 0, - "name": "", - "image": "", - "image_small": "", - "level": "", - "condition": "" - }, - "official_verify": { - "type": -1, - "desc": "" - }, - "vip": { - "vipType": 1, - "vipDueDate": 1585324800000, - "dueRemark": "", - "accessStatus": 0, - "vipStatus": 0, - "vipStatusWarn": "", - "themeType": 0, - "label": { - "path": "", - "text": "", - "label_theme": "", - "text_color": "", - "bg_style": 0, - "bg_color": "", - "border_color": "" - }, - "avatar_subscript": 0, - "nickname_color": "" - }, - "fans_detail": null, - "following": 0, - "is_followed": 0, - "user_sailing": { - "pendant": null, - "cardbg": null, - "cardbg_with_focus": null - }, - "is_contractor": false, - "contract_desc": "" - }, - "content": { - "message": "10个小时就有6500多赞?你是魔鬼?", - "plat": 0, - "device": "", - "members": [], - "jump_url": {}, - "max_line": 999 - }, - "replies": null, - "assist": 0, - "folder": { - "has_folded": false, - "is_folded": false, - "rule": "" - }, - "up_action": { - "like": false, - "reply": false - }, - "show_follow": false, - "invisible": false, - "reply_control": { - "time_desc": "708天前发布" - } - }, - { - "rpid": 2596150498, - "oid": 2, - "type": 1, - "mid": 426825448, - "root": 2576184175, - "parent": 2578082161, - "dialog": 2578082161, - "count": 0, - "rcount": 0, - "state": 0, - "fansgrade": 0, - "attr": 0, - "ctime": 1585211858, - "rpid_str": "2596150498", - "root_str": "2576184175", - "parent_str": "2578082161", - "like": 605, - "action": 0, - "member": { - "mid": "426825448", - "uname": "TrueBinger", - "sex": "男", - "sign": "这个人不懒,但是什么都没有留下。", - "avatar": "http://i1.hdslb.com/bfs/face/4bcc2120e3cb0ce855de6500a9bc422e981ced32.jpg", - "rank": "10000", - "DisplayRank": "0", - "face_nft_new": 0, - "is_senior_member": 0, - "level_info": { - "current_level": 5, - "current_min": 0, - "current_exp": 0, - "next_exp": 0 - }, - "pendant": { - "pid": 0, - "name": "", - "image": "", - "expire": 0, - "image_enhance": "", - "image_enhance_frame": "" - }, - "nameplate": { - "nid": 62, - "name": "有爱大佬", - "image": "http://i0.hdslb.com/bfs/face/a10ee6b613e0d68d2dfdac8bbf71b94824e10408.png", - "image_small": "http://i2.hdslb.com/bfs/face/54f4c31ab9b1f1fa2c29dbbc967f66535699337e.png", - "level": "普通勋章", - "condition": "当前持有粉丝勋章最高等级>=15级" - }, - "official_verify": { - "type": -1, - "desc": "" - }, - "vip": { - "vipType": 1, - "vipDueDate": 1592668800000, - "dueRemark": "", - "accessStatus": 0, - "vipStatus": 0, - "vipStatusWarn": "", - "themeType": 0, - "label": { - "path": "", - "text": "", - "label_theme": "", - "text_color": "", - "bg_style": 0, - "bg_color": "", - "border_color": "" - }, - "avatar_subscript": 0, - "nickname_color": "" - }, - "fans_detail": null, - "following": 0, - "is_followed": 0, - "user_sailing": { - "pendant": null, - "cardbg": null, - "cardbg_with_focus": null - }, - "is_contractor": false, - "contract_desc": "" - }, - "content": { - "message": "回复 @渣男5107号 :哈喽各位小伙伴们大家好,众所周知,世界第一大视频网站bilibili的视频采用bv号来标记视频,可小伙伴们知道吗,其实在2020.3之前,bv一直都是av哦!这已经是100000年前的事了,小伙伴们知道了吗[滑稽]", - "plat": 0, - "device": "", - "members": [], - "emote": { - "[滑稽]": { - "id": 27, - "package_id": 1, - "state": 0, - "type": 1, - "attr": 0, - "text": "[滑稽]", - "url": "http://i0.hdslb.com/bfs/emote/d15121545a99ac46774f1f4465b895fe2d1411c3.png", - "meta": { - "size": 1 - }, - "mtime": 1645206695, - "jump_title": "滑稽" - } - }, - "jump_url": {}, - "max_line": 999 - }, - "replies": null, - "assist": 0, - "folder": { - "has_folded": false, - "is_folded": false, - "rule": "" - }, - "up_action": { - "like": false, - "reply": false - }, - "show_follow": false, - "invisible": false, - "reply_control": { - "time_desc": "706天前发布" - } - } - ], - "assist": 0, - "folder": { - "has_folded": false, - "is_folded": false, - "rule": "https://www.bilibili.com/blackboard/foldingreply.html" - }, - "up_action": { - "like": false, - "reply": false - }, - "show_follow": true, - "invisible": false, - "reply_control": { - "sub_reply_entry_text": "共1000条回复", - "sub_reply_title_text": "相关回复共1000条", - "time_desc": "709天前发布" - } - }, - { - "rpid": 495059, - "oid": 2, - "type": 1, - "mid": 2, - "root": 0, - "parent": 0, - "dialog": 0, - "count": 898, - "rcount": 838, - "state": 2, - "fansgrade": 0, - "attr": 0, - "ctime": 1291918239, - "rpid_str": "495059", - "root_str": "0", - "parent_str": "0", - "like": 34223, - "action": 0, - "member": { - "mid": "2", - "uname": "碧诗", - "sex": "男", - "sign": "kami.im 直男过气网红 # av362830 “We Are Star Dust”", - "avatar": "http://i2.hdslb.com/bfs/face/ef0457addb24141e15dfac6fbf45293ccf1e32ab.jpg", - "rank": "20000", - "DisplayRank": "0", - "face_nft_new": 0, - "is_senior_member": 0, - "level_info": { - "current_level": 6, - "current_min": 0, - "current_exp": 0, - "next_exp": 0 - }, - "pendant": { - "pid": 0, - "name": "", - "image": "", - "expire": 0, - "image_enhance": "", - "image_enhance_frame": "" - }, - "nameplate": { - "nid": 10, - "name": "见习偶像", - "image": "http://i2.hdslb.com/bfs/face/e93dd9edfa7b9e18bf46fd8d71862327a2350923.png", - "image_small": "http://i1.hdslb.com/bfs/face/275b468b043ec246737ab8580a2075bee0b1263b.png", - "level": "普通勋章", - "condition": "所有自制视频总播放数>=10万" - }, - "official_verify": { - "type": 0, - "desc": "bilibili创始人(站长)" - }, - "vip": { - "vipType": 2, - "vipDueDate": 3901881600000, - "dueRemark": "", - "accessStatus": 0, - "vipStatus": 1, - "vipStatusWarn": "", - "themeType": 0, - "label": { - "path": "", - "text": "十年大会员", - "label_theme": "ten_annual_vip", - "text_color": "#FFFFFF", - "bg_style": 1, - "bg_color": "#FB7299", - "border_color": "" - }, - "avatar_subscript": 1, - "avatar_subscript_url": "http://i0.hdslb.com/bfs/vip/icon_Certification_big_member_22_3x.png", - "nickname_color": "#FB7299" - }, - "fans_detail": null, - "following": 0, - "is_followed": 0, - "user_sailing": { - "pendant": null, - "cardbg": { - "id": 3865, - "name": "2021拜年纪", - "image": "http://i0.hdslb.com/bfs/garb/item/e2c4d4ba094ddb98c1f72114a12081b4eca7ed88.png", - "jump_url": "https://www.bilibili.com/h5/mall/fans/recommend/3898?navhide=1&mid=2&from=reply", - "fan": { - "is_fan": 1, - "number": 21206, - "color": "#ec3d39", - "name": "2021拜年纪", - "num_desc": "021206" - }, - "type": "suit" - }, - "cardbg_with_focus": null - }, - "is_contractor": false, - "contract_desc": "" - }, - "content": { - "message": "wwwww", - "plat": 0, - "device": "", - "members": [], - "jump_url": {}, - "max_line": 6 - }, - "replies": [ - { - "rpid": 164517433, - "oid": 2, - "type": 1, - "mid": 3476504, - "root": 495059, - "parent": 495059, - "dialog": 164517433, - "count": 0, - "rcount": 0, - "state": 0, - "fansgrade": 0, - "attr": 0, - "ctime": 1479570959, - "rpid_str": "164517433", - "root_str": "495059", - "parent_str": "495059", - "like": 478, - "action": 0, - "member": { - "mid": "3476504", - "uname": "MaskQwQ麦斯科", - "sex": "保密", - "sign": "重拾过去。。", - "avatar": "http://i2.hdslb.com/bfs/face/7bf954d807cbda4de4221d78f3b425534042ac02.jpg", - "rank": "10000", - "DisplayRank": "0", - "face_nft_new": 0, - "is_senior_member": 0, - "level_info": { - "current_level": 6, - "current_min": 0, - "current_exp": 0, - "next_exp": 0 - }, - "pendant": { - "pid": 194, - "name": "黑白无双", - "image": "http://i2.hdslb.com/bfs/face/89b25cad74abd9e42a94b11e456bc21fe36b8763.png", - "expire": 0, - "image_enhance": "http://i2.hdslb.com/bfs/face/89b25cad74abd9e42a94b11e456bc21fe36b8763.png", - "image_enhance_frame": "" - }, - "nameplate": { - "nid": 74, - "name": "大会员2018年度勋章", - "image": "http://i0.hdslb.com/bfs/face/421179426c929dfeaed4117461c83f5d07ffb148.png", - "image_small": "http://i1.hdslb.com/bfs/face/682001c2e1c2ae887bdf2a0e18eef61180c48f84.png", - "level": "稀有勋章", - "condition": "2018.6.26-7.8某一天是年度大会员" - }, - "official_verify": { - "type": -1, - "desc": "" - }, - "vip": { - "vipType": 2, - "vipDueDate": 1771344000000, - "dueRemark": "", - "accessStatus": 0, - "vipStatus": 1, - "vipStatusWarn": "", - "themeType": 0, - "label": { - "path": "", - "text": "年度大会员", - "label_theme": "annual_vip", - "text_color": "#FFFFFF", - "bg_style": 1, - "bg_color": "#FB7299", - "border_color": "" - }, - "avatar_subscript": 1, - "avatar_subscript_url": "http://i0.hdslb.com/bfs/vip/icon_Certification_big_member_22_3x.png", - "nickname_color": "#FB7299" - }, - "fans_detail": null, - "following": 0, - "is_followed": 0, - "user_sailing": { - "pendant": { - "id": 194, - "name": "黑白无双", - "image": "http://i0.hdslb.com/bfs/face/89b25cad74abd9e42a94b11e456bc21fe36b8763.png", - "jump_url": "", - "type": "vip", - "image_enhance": "http://i0.hdslb.com/bfs/face/89b25cad74abd9e42a94b11e456bc21fe36b8763.png", - "image_enhance_frame": "" - }, - "cardbg": null, - "cardbg_with_focus": null - }, - "is_contractor": false, - "contract_desc": "" - }, - "content": { - "message": "拉了半天总算是见了底", - "plat": 0, - "device": "", - "members": [], - "jump_url": {}, - "max_line": 999 - }, - "replies": null, - "assist": 0, - "folder": { - "has_folded": false, - "is_folded": false, - "rule": "" - }, - "up_action": { - "like": false, - "reply": false - }, - "show_follow": false, - "invisible": false, - "reply_control": { - "time_desc": "1928天前发布" - } - }, - { - "rpid": 464424502, - "oid": 2, - "type": 1, - "mid": 37145412, - "root": 495059, - "parent": 495059, - "dialog": 464424502, - "count": 0, - "rcount": 0, - "state": 0, - "fansgrade": 1, - "attr": 0, - "ctime": 1509257961, - "rpid_str": "464424502", - "root_str": "495059", - "parent_str": "495059", - "like": 298, - "action": 0, - "member": { - "mid": "37145412", - "uname": "边走边发呆", - "sex": "男", - "sign": "这个人懒死了,什么都不发=_= 头像是素晴日", - "avatar": "http://i0.hdslb.com/bfs/face/4dfe0f1b0bfc9b1afea9e3bacbc5a92221fe9b09.jpg", - "rank": "10000", - "DisplayRank": "0", - "face_nft_new": 0, - "is_senior_member": 0, - "level_info": { - "current_level": 6, - "current_min": 0, - "current_exp": 0, - "next_exp": 0 - }, - "pendant": { - "pid": 0, - "name": "", - "image": "", - "expire": 0, - "image_enhance": "", - "image_enhance_frame": "" - }, - "nameplate": { - "nid": 60, - "name": "有爱萌新", - "image": "http://i1.hdslb.com/bfs/face/51ca16136e570938450bca360f28761ceb609f33.png", - "image_small": "http://i2.hdslb.com/bfs/face/9abfa4769357f85937782c2dbc40fafda4f57217.png", - "level": "普通勋章", - "condition": "当前持有粉丝勋章最高等级>=5级" - }, - "official_verify": { - "type": -1, - "desc": "" - }, - "vip": { - "vipType": 1, - "vipDueDate": 1559836800000, - "dueRemark": "", - "accessStatus": 0, - "vipStatus": 0, - "vipStatusWarn": "", - "themeType": 0, - "label": { - "path": "", - "text": "", - "label_theme": "", - "text_color": "", - "bg_style": 0, - "bg_color": "", - "border_color": "" - }, - "avatar_subscript": 0, - "nickname_color": "" - }, - "fans_detail": { - "uid": 37145412, - "medal_id": 29058, - "medal_name": "逸国", - "score": 0, - "level": 7, - "intimacy": 0, - "master_status": 1, - "is_receive": 1, - "medal_color": 643660702, - "medal_color_end": 643660702, - "medal_color_border": 6126494, - "medal_color_name": 6126494, - "medal_color_level": 6126494, - "guard_level": 0 - }, - "following": 0, - "is_followed": 0, - "user_sailing": { - "pendant": null, - "cardbg": null, - "cardbg_with_focus": null - }, - "is_contractor": false, - "contract_desc": "" - }, - "content": { - "message": "5000多楼6225评论(;¬_¬)手有点酸,如果不是特殊方法进来的话是要大会员吧(● ̄(エ) ̄●)", - "plat": 0, - "device": "", - "members": [], - "jump_url": {}, - "max_line": 999 - }, - "replies": null, - "assist": 0, - "folder": { - "has_folded": false, - "is_folded": false, - "rule": "" - }, - "up_action": { - "like": false, - "reply": false - }, - "show_follow": false, - "invisible": false, - "reply_control": { - "time_desc": "1585天前发布" - } - }, - { - "rpid": 4002945120, - "oid": 2, - "type": 1, - "mid": 282146749, - "root": 495059, - "parent": 464424502, - "dialog": 464424502, - "count": 0, - "rcount": 0, - "state": 0, - "fansgrade": 0, - "attr": 0, - "ctime": 1611588059, - "rpid_str": "4002945120", - "root_str": "495059", - "parent_str": "464424502", - "like": 107, - "action": 0, - "member": { - "mid": "282146749", - "uname": "能天使exia", - "sex": "女", - "sign": "电子学会评测师,脑机非技术研究学者,黑客网络贴吧二周目群管,明日方舟三服,三崩子团长,公主焊接会长,红三圈模组收集者,游戏尝鲜人,随心情更新", - "avatar": "http://i1.hdslb.com/bfs/face/f6ec44a9d2785783fa6b1b2dd4b7ad7b17e7cbb9.jpg", - "rank": "10000", - "DisplayRank": "0", - "face_nft_new": 0, - "is_senior_member": 0, - "level_info": { - "current_level": 5, - "current_min": 0, - "current_exp": 0, - "next_exp": 0 - }, - "pendant": { - "pid": 3508, - "name": "总之就是非常可爱", - "image": "http://i1.hdslb.com/bfs/garb/item/2c63178e3fcce804a851ef510e03c2b0e91a61e0.png", - "expire": 0, - "image_enhance": "http://i1.hdslb.com/bfs/garb/item/2c63178e3fcce804a851ef510e03c2b0e91a61e0.png", - "image_enhance_frame": "" - }, - "nameplate": { - "nid": 72, - "name": "风纪元老", - "image": "http://i0.hdslb.com/bfs/face/032bce9fd6dcb562d83b60f8a8719362b18a0afb.png", - "image_small": "http://i2.hdslb.com/bfs/face/2930b8bf5d7c68e1961d81ed3a59783af9d639a2.png", - "level": "稀有勋章", - "condition": "风纪委员连任期数 >= 12" - }, - "official_verify": { - "type": -1, - "desc": "" - }, - "vip": { - "vipType": 2, - "vipDueDate": 1727280000000, - "dueRemark": "", - "accessStatus": 0, - "vipStatus": 1, - "vipStatusWarn": "", - "themeType": 0, - "label": { - "path": "", - "text": "年度大会员", - "label_theme": "annual_vip", - "text_color": "#FFFFFF", - "bg_style": 1, - "bg_color": "#FB7299", - "border_color": "" - }, - "avatar_subscript": 1, - "avatar_subscript_url": "http://i0.hdslb.com/bfs/vip/icon_Certification_big_member_22_3x.png", - "nickname_color": "#FB7299" - }, - "fans_detail": null, - "following": 0, - "is_followed": 0, - "user_sailing": { - "pendant": { - "id": 3508, - "name": "总之就是非常可爱", - "image": "http://i0.hdslb.com/bfs/garb/item/2c63178e3fcce804a851ef510e03c2b0e91a61e0.png", - "jump_url": "", - "type": "suit", - "image_enhance": "http://i0.hdslb.com/bfs/garb/item/2c63178e3fcce804a851ef510e03c2b0e91a61e0.png", - "image_enhance_frame": "" - }, - "cardbg": { - "id": 5323, - "name": "明日方舟音律系列", - "image": "http://i0.hdslb.com/bfs/garb/item/e62b17700b3c1bc981606905f85615363c183105.png", - "jump_url": "https://www.bilibili.com/h5/mall/fans/recommend/5359?navhide=1&mid=282146749&from=reply", - "fan": { - "is_fan": 1, - "number": 11418, - "color": "#ffb628", - "name": "明日方舟音律联觉", - "num_desc": "011418" - }, - "type": "suit" - }, - "cardbg_with_focus": null - }, - "is_contractor": false, - "contract_desc": "" - }, - "content": { - "message": "回复 @边走边发呆 :拜登时代洛阳铲,带人,食大便了,现在的b站没有楼层了[牛年]", - "plat": 0, - "device": "", - "members": [ - { - "mid": "37145412", - "uname": "边走边发呆", - "sex": "男", - "sign": "这个人懒死了,什么都不发=_= 头像是素晴日", - "avatar": "http://i0.hdslb.com/bfs/face/4dfe0f1b0bfc9b1afea9e3bacbc5a92221fe9b09.jpg", - "rank": "10000", - "DisplayRank": "0", - "face_nft_new": 0, - "is_senior_member": 0, - "level_info": { - "current_level": 6, - "current_min": 0, - "current_exp": 0, - "next_exp": 0 - }, - "pendant": { - "pid": 0, - "name": "", - "image": "", - "expire": 0, - "image_enhance": "", - "image_enhance_frame": "" - }, - "nameplate": { - "nid": 60, - "name": "有爱萌新", - "image": "http://i1.hdslb.com/bfs/face/51ca16136e570938450bca360f28761ceb609f33.png", - "image_small": "http://i2.hdslb.com/bfs/face/9abfa4769357f85937782c2dbc40fafda4f57217.png", - "level": "普通勋章", - "condition": "当前持有粉丝勋章最高等级>=5级" - }, - "official_verify": { - "type": -1, - "desc": "" - }, - "vip": { - "vipType": 1, - "vipDueDate": 1559836800000, - "dueRemark": "", - "accessStatus": 0, - "vipStatus": 0, - "vipStatusWarn": "", - "themeType": 0, - "label": { - "path": "", - "text": "", - "label_theme": "", - "text_color": "", - "bg_style": 0, - "bg_color": "", - "border_color": "" - }, - "avatar_subscript": 0, - "nickname_color": "" - } - } - ], - "emote": { - "[牛年]": { - "id": 3146, - "package_id": 1, - "state": 0, - "type": 1, - "attr": 0, - "text": "[牛年]", - "url": "http://i0.hdslb.com/bfs/emote/9275275ff1f2659310648221107d20bc4970f106.png", - "meta": { - "size": 1 - }, - "mtime": 1611200715, - "jump_title": "牛年" - } - }, - "jump_url": {}, - "max_line": 999 - }, - "replies": null, - "assist": 0, - "folder": { - "has_folded": false, - "is_folded": false, - "rule": "" - }, - "up_action": { - "like": false, - "reply": false - }, - "show_follow": false, - "invisible": false, - "reply_control": { - "time_desc": "400天前发布" - } - } - ], - "assist": 0, - "folder": { - "has_folded": false, - "is_folded": false, - "rule": "https://www.bilibili.com/blackboard/foldingreply.html" - }, - "up_action": { - "like": false, - "reply": false - }, - "show_follow": false, - "invisible": false, - "reply_control": { - "sub_reply_entry_text": "共838条回复", - "sub_reply_title_text": "相关回复共838条", - "time_desc": "4100天前发布" - } - }, - { - "rpid": 646408628, - "oid": 2, - "type": 1, - "mid": 33066927, - "root": 0, - "parent": 0, - "dialog": 0, - "count": 173, - "rcount": 160, - "state": 0, - "fansgrade": 1, - "attr": 0, - "ctime": 1519135750, - "rpid_str": "646408628", - "root_str": "0", - "parent_str": "0", - "like": 7197, - "action": 0, - "member": { - "mid": "33066927", - "uname": "冰魂喵丶", - "sex": "男", - "sign": "反正不要钱,多少关注下?\n等我有时间,就把你们全吃了", - "avatar": "http://i0.hdslb.com/bfs/face/f60445649445f69db7293f1cb611f6c0dcdd9a21.jpg", - "rank": "10000", - "DisplayRank": "0", - "face_nft_new": 0, - "is_senior_member": 0, - "level_info": { - "current_level": 5, - "current_min": 0, - "current_exp": 0, - "next_exp": 0 - }, - "pendant": { - "pid": 0, - "name": "", - "image": "", - "expire": 0, - "image_enhance": "", - "image_enhance_frame": "" - }, - "nameplate": { - "nid": 71, - "name": "资深委员", - "image": "http://i1.hdslb.com/bfs/face/5beecb936bd7422a5ac11c9c5c8df56f334b2a65.png", - "image_small": "http://i0.hdslb.com/bfs/face/9f8e0d5cd0201cf7177199d9365be562be1deb05.png", - "level": "高级勋章", - "condition": "风纪委员连任期数 >= 6" - }, - "official_verify": { - "type": -1, - "desc": "" - }, - "vip": { - "vipType": 1, - "vipDueDate": 1620748800000, - "dueRemark": "", - "accessStatus": 0, - "vipStatus": 0, - "vipStatusWarn": "", - "themeType": 0, - "label": { - "path": "", - "text": "", - "label_theme": "", - "text_color": "", - "bg_style": 0, - "bg_color": "", - "border_color": "" - }, - "avatar_subscript": 0, - "nickname_color": "" - }, - "fans_detail": { - "uid": 33066927, - "medal_id": 29058, - "medal_name": "逸国", - "score": 0, - "level": 1, - "intimacy": 0, - "master_status": 1, - "is_receive": 1, - "medal_color": 643602062, - "medal_color_end": 643602062, - "medal_color_border": 4284257934, - "medal_color_name": 4284257934, - "medal_color_level": 4284257934, - "guard_level": 0 - }, - "following": 0, - "is_followed": 0, - "user_sailing": { - "pendant": null, - "cardbg": { - "id": 32680, - "name": "坎公骑冠剑", - "image": "http://i0.hdslb.com/bfs/garb/item/e861ec7f80f9725fbed51bbfc51ade4c083ddedc.png", - "jump_url": "https://www.bilibili.com/h5/mall/fans/recommend/32658?navhide=1&mid=33066927&from=reply", - "fan": { - "is_fan": 1, - "number": 16578, - "color": "#f7b130", - "name": "坎公骑冠剑", - "num_desc": "016578" - }, - "type": "suit" - }, - "cardbg_with_focus": null - }, - "is_contractor": false, - "contract_desc": "" - }, - "content": { - "message": "第一首:来夢緑 - kagome-kagome ~ 月の眷属達カラオケ\n第二首:dBu music - 千年幻想郷 -Aurora sky edition-\n第三首:Sensitive Heart - 千年幻想郷 ~ History of the Moon\n第四首:Yellow-Zebra - 月の律动~Rhythm of the moon~(东方永夜抄 “千年幻想郷 ~ History of the Moon”)\n第五首:工藤舞 - D.S.F.S(ヴォヤージュ1969)\n第六首:Angelic Quasar - かの郷は永き幻の\n第七首:東方永夜抄 - 黒髪のアマンダ\n第八首:君の美術館 - 千年幻想郷 ~ History of the Moon\n\n------------------------\n这些是av:2出现的音乐,应该不会缺少的喵~。(笑) 如果有需要有兴趣的话欢迎复制喵~~(`・ω・´)\n复制的9818楼的\n前排提示:本视频只有大会员能看", - "plat": 0, - "device": "", - "members": [], - "jump_url": {}, - "max_line": 6 - }, - "replies": [ - { - "rpid": 646507261, - "oid": 2, - "type": 1, - "mid": 11531860, - "root": 646408628, - "parent": 646408628, - "dialog": 646507261, - "count": 0, - "rcount": 0, - "state": 0, - "fansgrade": 0, - "attr": 0, - "ctime": 1519138195, - "rpid_str": "646507261", - "root_str": "646408628", - "parent_str": "646408628", - "like": 140, - "action": 0, - "member": { - "mid": "11531860", - "uname": "方圆十里有名的俊后生", - "sex": "男", - "sign": "", - "avatar": "http://i0.hdslb.com/bfs/baselabs/fab0bf0029e891eed162175c73473003528a5f22.jpg", - "rank": "10000", - "DisplayRank": "0", - "face_nft_new": 1, - "is_senior_member": 0, - "level_info": { - "current_level": 6, - "current_min": 0, - "current_exp": 0, - "next_exp": 0 - }, - "pendant": { - "pid": 0, - "name": "", - "image": "", - "expire": 0, - "image_enhance": "", - "image_enhance_frame": "" - }, - "nameplate": { - "nid": 0, - "name": "", - "image": "", - "image_small": "", - "level": "", - "condition": "" - }, - "official_verify": { - "type": -1, - "desc": "" - }, - "vip": { - "vipType": 1, - "vipDueDate": 1647619200000, - "dueRemark": "", - "accessStatus": 0, - "vipStatus": 1, - "vipStatusWarn": "", - "themeType": 0, - "label": { - "path": "", - "text": "大会员", - "label_theme": "vip", - "text_color": "#FFFFFF", - "bg_style": 1, - "bg_color": "#FB7299", - "border_color": "" - }, - "avatar_subscript": 1, - "avatar_subscript_url": "http://i0.hdslb.com/bfs/vip/icon_Certification_big_member_22_3x.png", - "nickname_color": "" - }, - "fans_detail": null, - "following": 0, - "is_followed": 0, - "user_sailing": { - "pendant": null, - "cardbg": null, - "cardbg_with_focus": null - }, - "is_contractor": false, - "contract_desc": "" - }, - "content": { - "message": "车万大法好", - "plat": 0, - "device": "", - "members": [], - "jump_url": {}, - "max_line": 999 - }, - "replies": null, - "assist": 0, - "folder": { - "has_folded": false, - "is_folded": false, - "rule": "" - }, - "up_action": { - "like": false, - "reply": false - }, - "show_follow": false, - "invisible": false, - "reply_control": { - "time_desc": "1471天前发布" - } - }, - { - "rpid": 1601887431, - "oid": 2, - "type": 1, - "mid": 341470991, - "root": 646408628, - "parent": 646408628, - "dialog": 1601887431, - "count": 0, - "rcount": 0, - "state": 0, - "fansgrade": 0, - "attr": 0, - "ctime": 1557745446, - "rpid_str": "1601887431", - "root_str": "646408628", - "parent_str": "646408628", - "like": 94, - "action": 0, - "member": { - "mid": "341470991", - "uname": "飞行科", - "sex": "保密", - "sign": "", - "avatar": "http://i2.hdslb.com/bfs/face/327188d3f35510699e54a65a65b2fba95dd6ded2.jpg", - "rank": "10000", - "DisplayRank": "0", - "face_nft_new": 0, - "is_senior_member": 0, - "level_info": { - "current_level": 5, - "current_min": 0, - "current_exp": 0, - "next_exp": 0 - }, - "pendant": { - "pid": 0, - "name": "", - "image": "", - "expire": 0, - "image_enhance": "", - "image_enhance_frame": "" - }, - "nameplate": { - "nid": 0, - "name": "", - "image": "", - "image_small": "", - "level": "", - "condition": "" - }, - "official_verify": { - "type": -1, - "desc": "" - }, - "vip": { - "vipType": 1, - "vipDueDate": 1626364800000, - "dueRemark": "", - "accessStatus": 0, - "vipStatus": 0, - "vipStatusWarn": "", - "themeType": 0, - "label": { - "path": "", - "text": "", - "label_theme": "", - "text_color": "", - "bg_style": 0, - "bg_color": "", - "border_color": "" - }, - "avatar_subscript": 0, - "nickname_color": "" - }, - "fans_detail": null, - "following": 0, - "is_followed": 0, - "user_sailing": { - "pendant": null, - "cardbg": null, - "cardbg_with_focus": null - }, - "is_contractor": false, - "contract_desc": "" - }, - "content": { - "message": "东方不能沉", - "plat": 0, - "device": "", - "members": [], - "jump_url": {}, - "max_line": 999 - }, - "replies": null, - "assist": 0, - "folder": { - "has_folded": false, - "is_folded": false, - "rule": "" - }, - "up_action": { - "like": false, - "reply": false - }, - "show_follow": false, - "invisible": false, - "reply_control": { - "time_desc": "1024天前发布" - } - }, - { - "rpid": 1627517285, - "oid": 2, - "type": 1, - "mid": 244446278, - "root": 646408628, - "parent": 646408628, - "dialog": 1627517285, - "count": 0, - "rcount": 0, - "state": 0, - "fansgrade": 0, - "attr": 0, - "ctime": 1558630445, - "rpid_str": "1627517285", - "root_str": "646408628", - "parent_str": "646408628", - "like": 75, - "action": 0, - "member": { - "mid": "244446278", - "uname": "KRHX", - "sex": "男", - "sign": "自由的明天仍在前方\n如繁星般闪烁着光芒\n即便只是缥缈的愿景\n也要朝着那黎明迈向\n哪怕路途艰辛\n哪怕前途渺茫\n世间进步仍未停息\n向那理想的彼方", - "avatar": "http://i2.hdslb.com/bfs/face/df0e691dd30d84f9c5224dbb7820b03953c7e6de.jpg", - "rank": "10000", - "DisplayRank": "0", - "face_nft_new": 0, - "is_senior_member": 0, - "level_info": { - "current_level": 5, - "current_min": 0, - "current_exp": 0, - "next_exp": 0 - }, - "pendant": { - "pid": 0, - "name": "", - "image": "", - "expire": 0, - "image_enhance": "", - "image_enhance_frame": "" - }, - "nameplate": { - "nid": 0, - "name": "", - "image": "", - "image_small": "", - "level": "", - "condition": "" - }, - "official_verify": { - "type": -1, - "desc": "" - }, - "vip": { - "vipType": 2, - "vipDueDate": 1647446400000, - "dueRemark": "", - "accessStatus": 0, - "vipStatus": 1, - "vipStatusWarn": "", - "themeType": 0, - "label": { - "path": "", - "text": "年度大会员", - "label_theme": "annual_vip", - "text_color": "#FFFFFF", - "bg_style": 1, - "bg_color": "#FB7299", - "border_color": "" - }, - "avatar_subscript": 1, - "avatar_subscript_url": "http://i0.hdslb.com/bfs/vip/icon_Certification_big_member_22_3x.png", - "nickname_color": "#FB7299" - }, - "fans_detail": null, - "following": 0, - "is_followed": 0, - "user_sailing": { - "pendant": null, - "cardbg": null, - "cardbg_with_focus": null - }, - "is_contractor": false, - "contract_desc": "" - }, - "content": { - "message": "东方不能沉啊", - "plat": 0, - "device": "", - "members": [], - "jump_url": {}, - "max_line": 999 - }, - "replies": null, - "assist": 0, - "folder": { - "has_folded": false, - "is_folded": false, - "rule": "" - }, - "up_action": { - "like": false, - "reply": false - }, - "show_follow": false, - "invisible": false, - "reply_control": { - "time_desc": "1013天前发布" - } - } - ], - "assist": 0, - "folder": { - "has_folded": false, - "is_folded": false, - "rule": "https://www.bilibili.com/blackboard/foldingreply.html" - }, - "up_action": { - "like": false, - "reply": false - }, - "show_follow": false, - "invisible": false, - "reply_control": { - "sub_reply_entry_text": "共160条回复", - "sub_reply_title_text": "相关回复共160条", - "time_desc": "1471天前发布" - } + "content": { + "message": "好多20年和18年的[辣眼睛]", + "members": [], + "emote": { + "[辣眼睛]": { + "id": 2374, + "package_id": 1, + "state": 0, + "type": 1, + "attr": 0, + "text": "[辣眼睛]", + "url": "https://i0.hdslb.com/bfs/emote/35d62c496d1e4ea9e091243fa812866f5fecc101.png", + "meta": { + "size": 1, + "suggest": [ + "" + ] + }, + "mtime": 1668688325, + "jump_title": "辣眼睛" } - ], - "top": { - "admin": null, - "upper": null, - "vote": null - }, - "top_replies": null, - "lottery_card": null, - "folder": { - "has_folded": false, - "is_folded": false, - "rule": "https://www.bilibili.com/blackboard/foldingreply.html" - }, - "up_selection": { - "pending_count": 0, - "ignore_count": 0 - }, - "cm": {}, - "cm_info": { - "ads": null - }, - "effects": { - "preloading": "" + }, + "jump_url": {}, + "max_line": 6 }, + "replies": [], "assist": 0, - "blacklist": 0, - "vote": 0, - "lottery": 0, - "config": { - "showadmin": 1, - "showentry": 1, - "showfloor": 0, - "showtopic": 1, - "show_up_flag": true, - "read_only": false, - "show_del_log": true + "up_action": { + "like": false, + "reply": false }, - "upper": { - "mid": 2 + "invisible": false, + "reply_control": { + "max_line": 6, + "time_desc": "21分钟前发布", + "location": "IP属地:河北" }, - "show_bvid": false, - "control": { - "input_disable": false, - "root_input_text": "发一条友善的评论", - "child_input_text": "", - "giveup_input_text": "不发没关系,请继续友善哦~", - "bg_text": "看看下面~来发评论吧", - "web_selection": false, - "answer_guide_text": "需要升级成为lv2会员后才可以评论,先去答题转正吧!", - "answer_guide_icon_url": "http://i0.hdslb.com/bfs/emote/96940d16602cacbbac796245b7bb99fa9b5c970c.png", - "answer_guide_ios_url": "https://www.bilibili.com/h5/newbie/entry?navhide=1&re_src=12", - "answer_guide_android_url": "https://www.bilibili.com/h5/newbie/entry?navhide=1&re_src=6", - "show_type": 1, - "show_text": "", - "disable_jump_emote": false + "folder": { + "has_folded": false, + "is_folded": false, + "rule": "" }, - "note": 1, - "callbacks": null - } + "dynamic_id_str": "0", + "note_cvid_str": "0", + "track_info": "" + }, + // ... + { + "rpid": 237689432448, + "oid": 2, + "type": 1, + "mid": 1647250883, + "root": 0, + "parent": 0, + "dialog": 0, + "count": 0, + "rcount": 0, + "state": 0, + "fansgrade": 0, + "attr": 0, + "ctime": 1723624563, + "mid_str": "1647250883", + "oid_str": "2", + "rpid_str": "237689432448", + "root_str": "0", + "parent_str": "0", + "dialog_str": "0", + "like": 1, + "action": 0, + "member": { + "mid": "1647250883", + "uname": "小烟同学424", + "sex": "保密", + "sign": "墓前玩使命,墓前暑假", + "avatar": "https://i2.hdslb.com/bfs/face/930661ca1bcacf8005efcca499b7380dcd4c2716.jpg", + "rank": "10000", + "face_nft_new": 0, + "is_senior_member": 0, + "senior": {}, + "level_info": { + "current_level": 5, + "current_min": 0, + "current_exp": 0, + "next_exp": 0 + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "", + "image_enhance_frame": "", + "n_pid": 0 + }, + "nameplate": { + "nid": 0, + "name": "", + "image": "", + "image_small": "", + "level": "", + "condition": "" + }, + "official_verify": { + "type": -1, + "desc": "" + }, + "vip": { + "vipType": 0, + "vipDueDate": 0, + "dueRemark": "", + "accessStatus": 0, + "vipStatus": 0, + "vipStatusWarn": "", + "themeType": 0, + "label": { + "path": "", + "text": "", + "label_theme": "", + "text_color": "", + "bg_style": 0, + "bg_color": "", + "border_color": "", + "use_img_label": true, + "img_label_uri_hans": "", + "img_label_uri_hant": "", + "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/d7b702ef65a976b20ed854cbd04cb9e27341bb79.png", + "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/KJunwh19T5.png" + }, + "avatar_subscript": 0, + "nickname_color": "" + }, + "fans_detail": null, + "user_sailing": { + "pendant": null, + "cardbg": null, + "cardbg_with_focus": null + }, + "user_sailing_v2": {}, + "is_contractor": false, + "contract_desc": "", + "nft_interaction": null, + "avatar_item": { + "container_size": { + "width": 1.8, + "height": 1.8 + }, + "fallback_layers": { + "layers": [ + { + "visible": true, + "general_spec": { + "pos_spec": { + "coordinate_pos": 2, + "axis_x": 0.9, + "axis_y": 0.9 + }, + "size_spec": { + "width": 1, + "height": 1 + }, + "render_spec": { + "opacity": 1 + } + }, + "layer_config": { + "tags": { + "AVATAR_LAYER": {} + }, + "is_critical": true, + "layer_mask": { + "general_spec": { + "pos_spec": { + "coordinate_pos": 2, + "axis_x": 0.9, + "axis_y": 0.9 + }, + "size_spec": { + "width": 1, + "height": 1 + }, + "render_spec": { + "opacity": 1 + } + }, + "mask_src": { + "src_type": 3, + "draw": { + "draw_type": 1, + "fill_mode": 1, + "color_config": { + "day": { + "argb": "#FF000000" + } + } + } + } + } + }, + "resource": { + "res_type": 3, + "res_image": { + "image_src": { + "src_type": 1, + "placeholder": 6, + "remote": { + "url": "https://i2.hdslb.com/bfs/face/930661ca1bcacf8005efcca499b7380dcd4c2716.jpg", + "bfs_style": "widget-layer-avatar" + } + } + } + } + } + ], + "is_critical_group": true + }, + "mid": "1647250883" + } + }, + "content": { + "message": "还。。。有人吗?", + "members": [], + "jump_url": {}, + "max_line": 6 + }, + "replies": [], + "assist": 0, + "up_action": { + "like": false, + "reply": false + }, + "invisible": false, + "reply_control": { + "max_line": 6, + "time_desc": "4小时前发布", + "location": "IP属地:陕西" + }, + "folder": { + "has_folded": false, + "is_folded": false, + "rule": "" + }, + "dynamic_id_str": "0", + "note_cvid_str": "0", + "track_info": "" + } + ], + "top": { + "admin": null, + "upper": null, + "vote": null + }, + "top_replies": [], + "up_selection": { + "pending_count": 0, + "ignore_count": 0 + }, + "effects": { + "preloading": "" + }, + "assist": 0, + "blacklist": 0, + "vote": 0, + "config": { + "showtopic": 1, + "show_up_flag": true, + "read_only": false + }, + "upper": { + "mid": 2 + }, + "control": { + "input_disable": false, + "root_input_text": "你渴望拥有力量吗?评论让力量更强大", + "child_input_text": "你渴望拥有力量吗?评论让力量更强大", + "giveup_input_text": "不发没关系,请继续友善哦~", + "screenshot_icon_state": 1, + "upload_picture_icon_state": 1, + "answer_guide_text": "需要升级成为lv2会员后才可以评论,先去答题转正吧!", + "answer_guide_icon_url": "http://i0.hdslb.com/bfs/emote/96940d16602cacbbac796245b7bb99fa9b5c970c.png", + "answer_guide_ios_url": "https://www.bilibili.com/h5/newbie/entry?navhide=1&re_src=12", + "answer_guide_android_url": "https://www.bilibili.com/h5/newbie/entry?navhide=1&re_src=6", + "bg_text": "", + "empty_page": null, + "show_type": 1, + "show_text": "", + "web_selection": false, + "disable_jump_emote": false, + "enable_charged": false, + "enable_cm_biz_helper": false, + "preload_resources": null + }, + "note": 1, + "esports_grade_card": null, + "callbacks": null, + "context_feature": "" + } } ``` diff --git a/docs/creativecenter/season.md b/docs/creativecenter/season.md new file mode 100644 index 0000000..694ff4c --- /dev/null +++ b/docs/creativecenter/season.md @@ -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
修改时间: mtime | +| sort | str | 排序方式 | 不必要 | 创建时间: asc
修改时间: 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: 正常显示
-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" +``` + +
+查看响应示例: + +```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 + } +} +``` + +
+ +## 创建合集 + +> 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' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": 3541247 +} +``` + +
+ +## 添加视频到合集 + +> 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' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1 +} +``` + +
+ +## 编辑合集小节 + +> 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' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1 +} +``` + +
+ +## 编辑合集信息 + +> 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:未完结
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' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1 +} +``` + +
+ +## 删除合集 + +> 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' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1 +} +``` + +
diff --git a/docs/creativecenter/upload.md b/docs/creativecenter/upload.md new file mode 100644 index 0000000..987f87b --- /dev/null +++ b/docs/creativecenter/upload.md @@ -0,0 +1,1087 @@ +# 投稿 + +## 上传封面 + +> https://member.bilibili.com/x/vu/web/cover/up + +*请求方式: POST* + +认证方式:Cookie(SESSDATA) + +注: 目前看来上传的图片似乎不会自动删除 + +**URL参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | ---- | -------- | ------ | ---- | +| ts | num | 当前时间 | 不必要 | UNIX 毫秒时间戳 | + +**正文参数(application/x-www-form-urlencoded):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | ---- | -------- | ------ | ---- | +| csrf | str | CSRF Token (位于 Cookie 中 bili_jct) | 必要 | | +| cover | base64 | 视频封面 | 必要 | 经过 base64 编码的图片数据 | + +**JSON回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ----- | +| code | num | 返回值 | 0: 成功
-400: 请求错误
-111: csrf 校验失败
-101: 账号未登录 | +| message | str | 错误信息 | 默认为 0 | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +`data` 对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | -------- | ---- | +| url | str | 封面 URL | | + +**示例:** + +假设已经把需要发送的数据进行编码存放在文件 `./b64` 中: + +```text +csrf=xxxxxxxxxxxx&cover=data%3Aimage%2Fjpeg%3Bbase64%2C%2F9j%2F4AAQSkZJRgABA... +``` + +发送请求: + +```shell +curl -X POST --url "https://member.bilibili.com/x/vu/web/cover/up" \ +--url-query "ts=$(date +%s%3N)" \ +--data-binary @b64 \ +-b "SESSDATA=xxxxxx; bili_jct=xxxxxx" +``` + +JavaScript (Node.js) 请求[示例](https://gist.github.com/SessionHu/5e47a3a1a351ac5486c87e3d63930e7a) + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "url": "https://archive.biliimg.com/bfs/archive/77906db03b1eefac02613de184afad03f7bc58d7.jpg" + } +} +``` + +
+ +## 预测稿件类型 + +> https://member.bilibili.com/x/vupre/web/archive/types/predict + +*请求方式: POST* + +认证方式: Cookie(SESSDATA) + +**URL参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | ---- | -------- | ------ | ---- | +| ts | num | 当前时间 | 不必要 | UNIX 毫秒时间戳 | +| csrf | str | CSRF Token (位于 Cookie 中 bili_jct) | 必要 | | + +**正文参数(multipart/form-data):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | ---- | -------- | ------ | ---- | +| filename | str | 视频文件名 | 必要 | 从视频上传接口获取, 无后缀名, 可为空 | +| title | str | 视频标题 | 不必要 || +| upload_id | str | 上传 ID | 不必要 | 如 `616368979_1723455540876_8794` | + +**JSON回复:** + +根对象: + +|字段|类型|内容|备注| +|---|-|-|---| +|code|num|返回值|0: 成功
-400: 请求错误
-111: csrf 校验失败
-101: 账号未登录| +|message|str|错误信息|默认为 0| +|ttl|num|1|| +|data|array|信息本体|| + +`data` 数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | -------- | ---- | +| 0 | obj | 视频类型 1 | | +| 1 | obj | 视频类型 2 | | +| …… | obj | …… | | +| n | obj | 视频类型 (n+1) | | + +`data` 数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | -------- | ---- | +| id | num | 子分区 ID | | +| parent | num | 总分区 ID | | +| parent_name | str | 总分区名称 | | +| name | str | 子分区名称 | | +| description | str | 子分区描述 | | +| desc | str | 子分区描述 | 同 `description` | +| intro_original | str | 原创简介说明 | | +| intro_copy | str | 转载简介说明 | | +| notice | str | 注意事项 | | +| copy_right | num | 版权信息? | 0 | +| show | bool | 是否显示? | true | +| rank | num | 排序权重? | | +| max_video_count | num | 最大视频数量? | | +| request_id | str | 空 | | + +**示例:** + +```shell +curl -X POST --url 'https://member.bilibili.com/x/vupre/web/archive/types/predict' \ +--url-query 'csrf=d51eadf05ba3bc6c5f76def7fbcc0185' \ +--data-urlencode 'filename=' \ +-b ' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": [ + { + "id": 122, + "parent": 36, + "parent_name": "知识", + "name": "野生技能协会", + "description": "技能展示或技能教学分享类视频", + "desc": "技能展示或技能教学分享类视频", + "intro_original": "可对视频内容进行补充说明,并对所使用的视频素材进行标明。\n如是系列,也可附带上期视频地址。\n请勿加入涉政或具较大争议性的文字简介,否则将做打回处理。", + "intro_copy": "转载稿件需标明出处,请注明原作者、原作者频道名或原作者投稿地址。\n可对相关内容进行补充说明。\n请勿加入涉政或具较大争议性的文字简介,否则将做打回处理。\n如是系列,也可附带上期视频地址。", + "notice": "清晰明了表明内容亮点的标题会更受观众欢迎哟!", + "copy_right": 0, + "show": true, + "rank": 75, + "max_video_count": 100, + "request_id": "" + }, + { + "id": 21, + "parent": 160, + "parent_name": "生活", + "name": "日常", + "description": "一般日常向的生活类视频", + "desc": "一般日常向的生活类视频", + "intro_original": "能够选择自制的必须是up主个人或工作室自己制作剪辑的视频,除此之外的搬运视频字幕制作,对于视频进行加速、慢放等简易二次创作,在视频中添加前后贴片或者打水印等行为均不被认作自制", + "intro_copy": "转载需写明请注明转载作品详细信息原作者、原标题及出处(需为该视频最原始出处,如所标注明显为非原始出处的话会被打回)", + "notice": "", + "copy_right": 0, + "show": true, + "rank": 4, + "max_video_count": 50, + "request_id": "" + }, + { + "id": 242, + "parent": 5, + "parent_name": "娱乐", + "name": "娱乐粉丝创作", + "description": "粉丝向创作视频", + "desc": "粉丝向创作视频", + "intro_original": "", + "intro_copy": "", + "notice": "清晰明了表明内容亮点的标题会更受观众欢迎哟!", + "copy_right": 0, + "show": true, + "rank": 40, + "max_video_count": 50, + "request_id": "" + }, + { + "id": 65, + "parent": 4, + "parent_name": "游戏", + "name": "网络游戏", + "description": "多人在线游戏为主要内容的相关视频", + "desc": "多人在线游戏为主要内容的相关视频", + "intro_original": "建议在简介和TAG中添加正确的游戏名,以便在分区和搜索中得到更好的展示。\n录制他人直播(包括授权转载、授权录制)不属于自制内容,请选转载。", + "intro_copy": "建议在简介和TAG中添加正确的游戏名。\n搬运转载内容请添加原作者、原链接地址信息。录制他人直播内容请添加原主播信息、直播时间。\n未添加正确转载、录播信息的稿件可能被打回。", + "notice": "【UP主/节目名】+《游戏名》+主要标题+期号", + "copy_right": 0, + "show": true, + "rank": 30, + "max_video_count": 50, + "request_id": "" + }, + { + "id": 138, + "parent": 160, + "parent_name": "生活", + "name": "搞笑", + "description": "搞笑挑战、剪辑、表演、配音以及各类日常沙雕视频", + "desc": "搞笑挑战、剪辑、表演、配音以及各类日常沙雕视频", + "intro_original": "能够选择自制的必须是up主个人或工作室自己制作剪辑的视频,除此之外的搬运视频字幕制作,对于视频进行加速、慢放等简易二次创作,在视频中添加前后贴片或者打水印等行为均不被认作自制", + "intro_copy": "转载需写明请注明转载作品详细信息原作者、原标题及出处(需为该视频最原始出处,如所标注明显为非原始出处的话会被打回)", + "notice": "", + "copy_right": 0, + "show": true, + "rank": 30, + "max_video_count": 50, + "request_id": "" + } + ] +} +``` + +
+ +## 预测稿件标签 + +> https://member.bilibili.com/x/vupre/web/tag/recommend + +*请求方式: GET* + +认证方式: Cookie(SESSDATA) + +**URL参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | ---- | -------- | ------ | ---- | +| upload_id | str | 同 [预测稿件类型](#预测稿件类型) 的 `upload_id` | 不必要 | | +| subtype_id | int | 子分区 ID | 不必要 | | +| title | str | 视频标题 | 不必要 | | +| filename | str | 同 [预测稿件类型](#预测稿件类型) 的 `filename` | 不必要 | | +| description | str | 视频简介 | 不必要 | | +| cover_url | str | 视频封面 URL | 不必要 | 不含 `https:` 或 `http:` 字串 | +| t | int | 当前 UNIX 毫秒时间戳 | 不必要 | | + +**JSON回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | ---- | ---- | +| code | int | 返回值 | 0: 成功
-101: 账号未登录 | +| data | array | 标签信息 | | +| message | str | 错误信息 | 默认为 0 | +| request_id | str | 请求 ID | | + +`data` 数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | -------- | ---- | +| 0 | obj | 标签 1 | | +| 1 | obj | 标签 2 | | +| …… | obj | …… | | +| n | obj | 标签 (n+1) | | + +`data` 数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | -------- | ---- | +| tag | str | 标签名称 | | +| checked | int | 0 | | +| request_id | str | 请求 ID | 同根对象 | + +**示例:** + +```shell +curl -G 'https://member.bilibili.com/x/vupre/web/tag/recommend' \ +--url-query 'subtype_id=122' \ +--url-query 'title=Telnet手打HTTP' \ +--url-query 'description=测试用 Telnet 手打 HTTP/1.x 协议访问本地服务器, 无 SSL/TLS 支持' +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "data": [ + { + "tag": "学习", + "checked": 0, + "request_id": "TAG_1723543336295_3371" + }, + { + "tag": "编程", + "checked": 0, + "request_id": "" + }, + { + "tag": "课程", + "checked": 0, + "request_id": "" + }, + { + "tag": "学习心得", + "checked": 0, + "request_id": "" + }, + { + "tag": "经验分享", + "checked": 0, + "request_id": "" + } + ], + "message": "0", + "request_id": "TAG_1723543336295_3371" +} +``` + +
+ +## 投递视频稿件 + +> https://member.bilibili.com/x/vu/web/add/v3 + +*请求方式: POST* + +认证方式:Cookie(SESSDATA) + +**URL参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | ---- | -------- | ------ | ---- | +| ts | num | 当前时间 | 不必要 | UNIX 毫秒时间戳 | +| csrf | str | CSRF Token (位于 Cookie 中 bili_jct) | 必要 | | + +**正文参数(application/json):** + +根对象: + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | ---- | -------- | ------ | ---- | +| videos | array | 视频信息 | 必要 | 若为分 P 视频, 请注意数组元素顺序 | +| cover | str | 视频封面 URL | 必要 | 参见[上传视频封面](#上传视频封面) | +| cover43 | str | 视频封面 URL (比例为 4:3) | 必要 | 可为空 | +| title | str | 视频标题 | 必要 | 最多 80 字 | +| copyright | num | 1: 自制
2: 转载 | 必要 | | +| tid | num | 分类 ID | 必要 | | +| tag | str | 视频标签 | 必要 | 多个标签用 `,` 分隔, 最多 10 个 | +| desc_format_id | num | 简介格式 ID? | 必要 | 9999: 纯文本 | +| desc | str | 视频简介 | 必要 | 最多 2000 字 | +| recreate | num | 是否允许二创 | 必要 | -1: 允许(默认)
1: 不允许 | +| dynamic | str | 粉丝动态 | 必要 | | +| interactive | num | 互动视频? | 必要 | 0: 否 | +| act_reserve_create | num | 活动预约? | 必要 | 0: 否 | +| no_disturbance | num | 勿扰模式? | 必要 | 0: 否 | +| no_reprint | num | 是否允许转载 | 必要 | 1: 允许
0: 不允许 | +| subtitle | obj | 字幕信息 | 必要 | | +| dolby | num | 杜比音效 | 必要 | 0: 否(默认)
1: 是 | +| lossless_music | num | 无损音乐 | 必要 | 0: 否(默认)
1: 是 | +| up_selection_reply | bool | 精选评论 | 必要 | | +| up_close_reply | bool | 关闭评论 | 必要 | | +| up_close_danmu | bool | 关闭弹幕 | 必要 | | +| web_os | num | 平台类型? | 必要 | 3 | + +`videos` 数组中的对象: + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | ---- | -------- | ------ | ---- | +| filename | str | 视频文件名 | 必要 | 从视频上传接口获取, 无后缀名 | +| title | str | 分 P 标题 | 必要 | | +| desc | str | 分 P 简介 | 必要 | | +| cid | num | 分 P cid | 必要 | 从视频上传接口获取, 即 `biz_id` | + +`subtitle` 对象: + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | ---- | -------- | ------ | ---- | +| open | num | 是否启用字幕投稿 | 必要 | 0: 启用(默认)
1: 不启用 | +| lan | str | 字幕投稿语言 | 必要 | 可为空 | + +**示例:** + +假设已经把需要发送的数据存放在文件 `./data.json` 中: + +```json +{ + "videos": [ + { + "filename": "n240728ad33h52yqhxbtw51cb06sq9gx", + "title": "Telnet手打HTTP", + "desc": "", + "cid": 500001629877726 + } + ], + "cover": "https://archive.biliimg.com/bfs/archive/85447ea20431ef799382c403c84b4bfb82a41053.jpg", + "cover43": "", + "title": "Telnet手打HTTP", + "copyright": 1, + "tid": 122, + "tag": "telnet,socket,tcp,linux,http", + "desc_format_id": 9999, + "desc": "测试用 Telnet 手打 HTTP/1.x 协议访问本地服务器, 无 SSL/TLS 支持", + "recreate": -1, + "dynamic": "for testing", + "interactive": 0, + "act_reserve_create": 0, + "no_disturbance": 0, + "no_reprint": 1, + "subtitle": { + "open": 0, + "lan": "" + }, + "dolby": 0, + "lossless_music": 0, + "up_selection_reply": false, + "up_close_reply": false, + "up_close_danmu": false, + "web_os": 3, + "csrf": "xxxxxxxxxxxxxxxxxxxxxxxx" +} +``` + +发送请求: + +```shell +curl -X POST --url "https://member.bilibili.com/x/vu/web/add/v3" \ +--url-query "ts=$(date +%s%3N)" \ +--url-query "csrf=xxxxxxxxxxxxxxxxxxxxxxxx" \ +-H "Content-Type: application/json; charset=utf-8" \ +--data @data.json \ +-b "SESSDATA=xxxxxx; bili_jct=xxxxxxxxxxxxxxxxxxxxxxxx" +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "aid": 112861976201494, + "bvid": "BV181vnexEmB" + } +} +``` + +
+ +## 上传视频文件 + +注: 目前看来上传的视频文件似乎不会自动删除, 而且似乎不是视频也可以上传的样子, 但是下载认证字段有效期只有 5 天 + +### 上传流程 + +整个上传流程较为复杂, 详细参见[Demo](#Demo) + +1. `GET` `preupload` 接口, [获取上传元数据](#获取上传元数据-预上传) + +2. `POST` 第 1 步得到的地址, [上传视频元数据](#上传视频元数据) + +3. `PUT` 第 1 步得到的地址, [分片上传视频文件](#分片上传视频文件) + +4. `POST` 第 1 步得到的地址, [结束上传视频文件](#结束上传视频文件) + +5. `GET` 第 1 步得到的地址, [下载已上传的视频文件](#下载已上传的视频文件) , 确认上传成功 (可选) + +### 上传接口 + +#### 获取上传元数据 (预上传) + +> https://member.bilibili.com/preupload + +*请求方式: GET* + +认证方式:Cookie(SESSDATA) + +**URL参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | ---- | -------- | ------ | ---- | +| name | str | 文件名 | 必要 | 会影响返回的上传地址 | +| r | str | 上传区域? | 必要 | upos | +| profile | str | 上传配置? | 必要 | 普通视频: ugcfx/bup
提交反馈: feedback/bup | +| probe_version | num | 上传版本? | 不必要 | 20221109 | +| upcdn | str | 上传 CDN? | 不必要 | txa | +| zone | str | 上传区域? | 不必要 | cs | +| ssl | num | 是否使用 SSL? | 不必要 | 0 | +| version | str | 上传版本? | 不必要 | 2.14.0.0 | +| build | str | 上传版本? | 不必要 | 2140000 | +| size | num | 文件大小 | 不必要 | 视频文件大小, 单位 字节 | +| webVersion | str | 上传版本? | 不必要 | 2.13.0 | + +**JSON回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ----- | +| OK | num | 1 | | +| auth | str | 上传凭证 | 作为后面请求中请求头, 有效期 5 天 | +| biz_id | num | 业务 ID? | | +| chunk_retry | num | 重试次数? | | +| chunk_retry_delay | num | 重试延迟? | | +| chunk_size | num | 分块大小 | 后面要用 | +| endpoint | str | 上传节点 | 后面要用 | +| endpoints | array | 上传节点列表 | | +| expose_params | null | | | +| put_query | str | 上传参数? | | +| threads | num | 上传线程数 | | +| timeout | num | 超时时间? | | +| uip | str | 你的 IP | | +| upos_uri | str | 上传地址 | 后面要用 | + +`endpoints` 数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | -------- | ----- | +| 0 | str | 上传节点1 | | +| …… | str | …… | | +| n | str | 上传节点n | | + +**示例:** + +假设视频文件名为 `2024-07-28_15-37-50.mkv`, 视频大小为 `305333744` 字节 + +```shell +curl -G "https://member.bilibili.com/preupload" \ +--data-urlencode "name=2024-07-28_15-37-50.mkv" \ +--data-urlencode "r=upos" \ +--data-urlencode "profile=ugcfx/bup" \ +-b "SESSDATA=xxxxxxxxxxx" +``` + +
+查看响应示例: + +```json +{ + "OK": 1, + "auth": "ak=1494471752&cdn=%2F%2Fupos-cs-upcdntxa.bilivideo.com&os=upos&sign=b6c5cc520a281200906aea97e190b098×tamp=1722155211.324&uid=616368979&uip=108.181.24.77&uport=52096&use_dqp=0", + "biz_id": 500001630152509, + "chunk_retry": 10, + "chunk_retry_delay": 3, + "chunk_size": 10485760, + "endpoint": "//upos-cs-upcdntxa.bilivideo.com", + "endpoints": [ + "//upos-cs-upcdntxa.bilivideo.com", + "//upos-cs-upcdnalia.bilivideo.com" + ], + "expose_params": null, + "put_query": "os=upos&profile=ugcfx%2Fbup", + "threads": 3, + "timeout": 1200, + "uip": "108.181.24.77", + "upos_uri": "upos://ugcfx2lf/n240728ad1p51if4g3ke4s3o95sznogy.mkv" +} +``` + +
+ +#### 上传视频元数据 + +> URL 拼接格式: `"https"` + [上一个接口](#获取上传元数据-预上传)的`endpoint` + 上一个接口的`upos_uri`去掉协议名 +> JavaScript 模板字符串: `https:${preupload.endpoint}/${endpoint.upos_uri.replace("upos://", "")}` + +*请求方式: POST* + +认证方式:请求头 `X-Upos-Auth` 为上一接口得到的 `auth` + +**URL参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | ---- | -------- | ------ | ---- | +| uploads | str | 留空 | 必要 | 留空 | +| output | str | 输出格式 | 不必要 | 默认为 json(推荐), 留空为 xml | +| profile | str | 上传配置? | 必要 | 与上一个接口保持相同 | +| filesize | num | 文件大小 | 必要 | 视频文件大小, 单位 字节
feedback/bup 不必要 | +| partsize | num | 分块大小 | 必要 | 上一个接口返回, 且后面要用
feedback/bup 不必要 | +| biz_id | num | 业务 ID? | 必要 | 上一个接口返回, 且后面要用
feedback/bup 不必要 | + +**JSON回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ----- | +| OK | num | 1 | | +| bucket | str | 空间名? | | +| key | str | 文件名? | | +| upload_id | str | 上传 ID | 后面要用 | + +**示例:** + +假设上一接口返回的 +`auth` 为 `ak=1494471752&cdn=%2F%2Fupos-cs-upcdntxa.bilivideo.com&os=upos&sign=4004b35628e982bc90b59cec86f8c441×tamp=1722173443.298&uid=616368979&uip=104.28.153.18&uport=44282&use_dqp=0`, +`biz_id` 为`500001630454700`, +`endpoint` 为 `//upos-cs-upcdntxa.bilivideo.com`, +`upos_uri` 为 `upos://ugcfx2lf/n240728adhejliqv0kqyg2s5n6huv501.mkv`, +`chunk_size` 为 `10485760`. +视频文件大小为 `305333744` 字节. + +```shell +curl -X POST --url "https://upos-cs-upcdntxa.bilivideo.com/ugcfx2lf/n240728adhejliqv0kqyg2s5n6huv501.mkv` \ +--url-query "uploads=" \ +--url-query "output=json" \ +--url-query "profile=ugcfx/bup" \ +--url-query "filesize=305333744" \ +--url-query "partsize=10485760" \ +--url-query "biz_id=500001630454700" \ +-H "X-Upos-Auth: ak=1494471752&cdn=%2F%2Fupos-cs-upcdntxa.bilivideo.com&os=upos&sign=4004b35628e982bc90b59cec86f8c441×tamp=1722173443.298&uid=616368979&uip=104.28.153.18&uport=44282&use_dqp=0" \ +-b "SESSDATA=xxxxxxxxx" +``` + +
+查看响应示例: + +```json +{ + "OK": 1, + "bucket": "ugcfx2lf", + "key": "/n240728adhejliqv0kqyg2s5n6huv501.mkv", + "upload_id": "26c674b4-0dce-45f5-a9cd-a199d9c982bf" +} +``` + +
+ +#### 分片上传视频文件 + +> URL 同 [上一个接口](#上传视频元数据) + +*请求方式: PUT* + +认证方式:请求头 `X-Upos-Auth` 为上上一接口得到的 `auth` + +**URL参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | ---- | -------- | ------ | ---- | +| partNumber | num | 分块序号 | 必要 | 从 1 开始 | +| uploadId | str | 上传 ID | 必要 | 上一个接口返回 | +| chunk | num | 分块序号 | 必要 | 从 0 开始 | +| chunks | num | 分块总数 | 必要 | 自行计算: 文件大小除以分块大小并向上取整 | +| size | num | 该分块大小 | 必要 | 该实际上传字节数 | +| start | num | 该分块开始位置 | 必要 | 已实际上传字节数 | +| end | num | 该分块结束位置 | 必要 | 该分块上传结束后实际上传总字节数 | +| total | num | 总大小 | 必要 | 视频文件大小, 单位 字节 | + +**正文参数(application/octet-stream):** + +视频文件在该分块的字节流 + +**纯文本回复:** + +```text +MULTIPART_PUT_SUCCESS +``` + +**示例:** + +假设上上一接口返回的 +`auth` 为 `ak=1494471752&cdn=%2F%2Fupos-cs-upcdntxa.bilivideo.com&os=upos&sign=911dd5b995895805d785aa607b4153b6×tamp=1722212776.333&uid=616368979&uip=108.181.24.77&uport=36044&use_dqp=0`, +`endpoint` 为 `//upos-cs-upcdntxa.bilivideo.com`, +`upos_uri` 为 `upos://ugcfx2lf/n240729ad7gxi43yaoml312h2nbt2pnf.xz`, +`chunk_size` 为 `10485760`. + +上一接口返回的 +`upload_id` 为 `8130090a-16f7-4fe6-8a29-198f5abce913`. + +视频文件名为 `20240724-remove-linux-then-install.tar.xz`, 文件大小为 `278255704` 字节. + +假设您要上传的分块序号为 `1`, +该分块大小为 `10485760`, +该分块开始位置为 `0`, +该分块结束位置为 `10485760`, +该分块实际上传字节数为 `10485760`, +您已将文件分块存放至 `part01.tar.xz`, `part02.tar.xz`, ..., `part27.tar.xz`. + +```shell +curl -X PUT --url "https://upos-cs-upcdntxa.bilivideo.com/ugcfx2lf/n240729ad7gxi43yaoml312h2nbt2pnf.xz" \ +--url-query "partNumber=1" \ +--url-query "uploadId=8130090a-16f7-4fe6-8a29-198f5abce913" \ +--url-query "chunk=0" \ +--url-query "chunks=27" \ +--url-query "size=10485760" \ +--url-query "start=0" \ +--url-query "end=10485760" \ +--url-query "total=278255704" \ +-H "X-Upos-Auth: ak=1494471752&cdn=%2F%2Fupos-cs-upcdntxa.bilivideo.com&os=upos&sign=911dd5b995895805d785aa607b4153b6×tamp=1722212776.333&uid=616368979&uip=108.181.24.77&uport=36044&use_dqp=0" \ +-H "Content-Type: application/octet-stream" \ +--data-binary @part01.tar.xz \ +-b "SESSDATA=xxxxxxxxx" +``` + +
+查看响应示例: + +```text +MULTIPART_PUT_SUCCESS +``` + +
+ +#### 结束上传视频文件 + +> URL 同 [上一个接口](#分片上传视频文件) + +*请求方式: POST* + +认证方式:请求头 `X-Upos-Auth` 为上上上一接口得到的 `auth` + +**URL参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | ---- | -------- | ------ | ---- | +| output | str | 输出格式 | 不必要 | 默认为 json(推荐), 留空为 xml | +| name | str | 文件名 | 必要 | 视频文件名 | +| profile | str | 上传配置? | 必要 | 与上一个接口相同, 普通视频: ugcfx/bup | +| uploadId | str | 上传 ID | 必要 | 与上一个接口相同 | +| biz_id | num | 业务 ID? | 必要 | 与上上一个接口相同 | + +**正文参数(application/json):** + +根对象: + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | ---- | ---- | ------ | ---- | +| parts | array | 各分块信息 | 必要 | 按实际上传顺序而不是分块序号顺序 | + +`parts` 数组: + +| 项 | 类型 | 内容 | 必要性 | 备注 | +| --- | ---- | ---- | ------ | ---- | +| 0 | obj | 分块信息1 | 必要 | 按实际上传顺序而不是分块序号顺序 | +| 1 | obj | 分块信息2 | 必要 | | +| …… | obj | …… | | | +| n | obj | 分块信息n | 必要 | | + +`parts` 数组中的对象: + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | ---- | ---- | ------ | ---- | +| partNumber | num | 分块序号 | 必要 | 从 1 开始 | +| eTag | str | `etag` | 必要 | | + +**JSON回复:** + +与 [上上一个接口](#上传视频元数据) 相同 + +**示例:** + +假设上上上一接口返回的 +`auth` 为 `ak=1494471752&cdn=%2F%2Fupos-cs-upcdntxa.bilivideo.com&os=upos&sign=911dd5b995895805d785aa607b4153b6×tamp=1722212776.333&uid=616368979&uip=108.181.24.77&uport=36044&use_dqp=0`, +`endpoint` 为 `//upos-cs-upcdntxa.bilivideo.com`, +`upos_uri` 为 `upos://ugcfx2lf/n240729ad7gxi43yaoml312h2nbt2pnf.xz`, +`biz_id` 为 `500001630826789`. + +上上一接口返回的 +`upload_id` 为 `8130090a-16f7-4fe6-8a29-198f5abce913`. + +视频文件名为 `20240724-remove-linux-then-install.tar.xz`, 文件大小为 `278255704` 字节. + +假设您已经全部上传完毕, 共上传 `27` 个分块, 本次请求上传的的内容存放在 `body.json` 文件中. + +```shell +curl -X PUT --url "https://upos-cs-upcdntxa.bilivideo.com/ugcfx2lf/n240729ad7gxi43yaoml312h2nbt2pnf.xz" \ +--url-query "output=json" \ +--url-query "name=20240724-remove-linux-then-install.tar.xz" \ +--url-query "profile=ugcfx%2Fbup" \ +--url-query "uploadId=8130090a-16f7-4fe6-8a29-198f5abce913" \ +--url-query "biz_id=500001630826789" \ +-H "X-Upos-Auth: ak=1494471752&cdn=%2F%2Fupos-cs-upcdntxa.bilivideo.com&os=upos&sign=911dd5b995895805d785aa607b4153b6×tamp=1722212776.333&uid=616368979&uip=108.181.24.77&uport=36044&use_dqp=0" \ +-H "Content-Type: application/json" \ +--data-binary @body.json \ +-b "SESSDATA=xxxxxxxxx" +``` + +
+查看响应示例: + +```json +{ + "OK": 1, + "location": "ugcfx2lf/n240729ad7gxi43yaoml312h2nbt2pnf.xz", + "bucket": "ugcfx2lf", + "key": "/n240729ad7gxi43yaoml312h2nbt2pnf.xz" +} +``` + +
+ +#### 下载已上传的视频文件 + +> URL 同 [上一个接口](#结束上传视频文件) + +*请求方式: GET* + +认证方式:请求头 `X-Upos-Auth` 为上上上上一接口得到的 `auth` + +注: 由于 `X-Upos-Auth` 有效期只有 5 天, 过期请求将返回 HTTP 403 如下 + +```http +HTTP/1.1 403 Forbidden +Bili-Trace-Id: 3e3f2db61366adbf +Server: upos@hcsgw@jscs-bvc-hcsgw-public-02 +X-Bili-Trace-Id: 0d8ca1af6d3510253e3f2db61366adbf +X-Upos-Auth: AUTH_TS_GT_5DAY AUTH=ak=1494471752&cdn=%2F%2Fupos-cs-upcdntxa.bilivideo.com&os=upos&sign=911dd5b995895805d785aa607b4153b6×tamp=1722212776.333&uid=616368979&uip=108.181.24.77&uport=36044&use_dqp=0 Now=1722662669 DURATION=449893 +Content-Length: 0 +Connection: keep-alive +Date: Sat, 03 Aug 2024 05:24:29 GMT +EO-LOG-UUID: 4296647794590631154 +EO-Cache-Status: MISS +``` + +**字节流回复:** + +视频文件字节流 + +**示例:** + +假设请求上一接口时的 URL 为 `https://upos-cs-upcdntxa.bilivideo.com/ugcfx2lf/n240729ad7gxi43yaoml312h2nbt2pnf.xz`, +请求头的 `X-Upos-Auth` 为 `ak=1494471752&cdn=%2F%2Fupos-cs-upcdntxa.bilivideo.com&os=upos&sign=911dd5b995895805d785aa607b4153b6×tamp=1722212776.333&uid=616368979&uip=108.181.24.77&uport=36044&use_dqp=0`, +您想要下载到运行目录下的 `file.tar.xz` 文件 + +```shell +curl -G "https://upos-cs-upcdntxa.bilivideo.com/ugcfx2lf/n240729ad7gxi43yaoml312h2nbt2pnf.xz" \ +-H "X-Upos-Auth: ak=1494471752&cdn=%2F%2Fupos-cs-upcdntxa.bilivideo.com&os=upos&sign=911dd5b995895805d785aa607b4153b6×tamp=1722212776.333&uid=616368979&uip=108.181.24.77&uport=36044&use_dqp=0" \ +--output file.tar.xz +``` + +
+查看检查示例: + +```text + % Total % Received % Xferd Average Speed Time Time Time Current + Dload Upload Total Spent Left Speed +100 265M 100 265M 0 0 9493k 0 0:00:28 0:00:28 --:--:-- 10.3M +$ sha512sum file.tar.xz +abfbedf1ac4f251c81103beb4d5406af1e0b64b9d54e99bfc77d2a8a9c4913a9fd2f1751828ace8aac036f6385609d99e251437b07a0491caca2ad7069a57003 file.tar.xz +$ sha512sum ~/Documents/video-proj/20240724-remove-linux-then-install.tar.xz +abfbedf1ac4f251c81103beb4d5406af1e0b64b9d54e99bfc77d2a8a9c4913a9fd2f1751828ace8aac036f6385609d99e251437b07a0491caca2ad7069a57003 /home/sess/Documents/video-proj/20240724-remove-linux-then-install.tar.xz +``` + +
+ +### Demo + +#### Java + +注: 需要 Gson 依赖, Java 8+, 单线程上传, 无异常处理, 仅供参考 + +```java +import java.io.ByteArrayOutputStream; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.net.HttpURLConnection; +import java.net.URI; +import java.net.URLEncoder; +import java.nio.charset.StandardCharsets; +import java.util.StringJoiner; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonObject; +import com.google.gson.JsonSyntaxException; + +/** + * A demo class for uploading videos to Bilibili. + * + * @author SessX6cf + */ +public class BiliVideoUploader { + + private static String SESSDATA; + private static File VIDEO_FILE; + + public static void main(String[] args) throws IOException { + long ts = System.currentTimeMillis(); + if (args.length < 2) { + System.out.println("Usage: java BiliVideoUploader "); + return; + } else { + VIDEO_FILE = new File(args[0]); + if (!VIDEO_FILE.isFile()) { + System.out.println("It is not a file!"); + return; + } else if (!VIDEO_FILE.canRead()) { + System.out.println("Cannot read the file!"); + return; + } else if (VIDEO_FILE.isDirectory()) { + System.out.println("You can play a directory?!"); + return; + } + SESSDATA = args[1]; + } + // step 1: preupload video + System.out.println("step 1: preupload video"); + JsonObject preuploadVideo = preuploadVideo(); + // step 2: post video meta + System.out.println("step 2: post video meta"); + JsonObject postVideoMeta = postVideoMeta(preuploadVideo); + // step 3: upload video + System.out.println("step 3: upload video"); + int chunks = uploadVideo(preuploadVideo, postVideoMeta); + // step 4: end upload + System.out.println("step 4: end upload"); + endupload(preuploadVideo, postVideoMeta, chunks); + // finished + System.out.println("finished (" + (System.currentTimeMillis() - ts) + "ms)"); + } + + private static String querypart(String key, String value) throws IOException { + return key + "=" + URLEncoder.encode(value, "UTF-8"); + } + + private static HttpURLConnection conn(String url, String method) throws IOException { + HttpURLConnection conn; + try { + conn = (HttpURLConnection) new URI(url).toURL().openConnection(); + } catch (java.net.URISyntaxException e) { + throw new IOException(e); + } + conn.setRequestMethod(method); + // conn.setRequestProperty("User-Agent", "Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/115.0"); + if (url.contains("bilibili.com")) conn.setRequestProperty("Cookie", "SESSDATA=" + SESSDATA); + return conn; + } + + private static byte[] inputStreamToString(HttpURLConnection conn) throws IOException { + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + InputStream in; + in = conn.getInputStream(); + int b; + while ((b = in.read()) != -1) { + baos.write(b); + } + in.close(); + return baos.toByteArray(); + } + + private static final Gson GSON = new GsonBuilder().setPrettyPrinting().create(); + + private static JsonObject preuploadVideo() throws IOException { + StringJoiner url = new StringJoiner("&", "https://member.bilibili.com/preupload?", ""); + url.add(querypart("name", VIDEO_FILE.getName())); + // url.add(querypart("size", String.valueOf(VIDEO_FILE.length()))); + url.add(querypart("r", "upos")); + url.add(querypart("profile", "ugcfx/bup")); + HttpURLConnection conn = conn(url.toString(), "GET"); + System.out.println("GET " + url.toString()); + String response = new String(inputStreamToString(conn), StandardCharsets.UTF_8); + try { + JsonObject json = GSON.fromJson(response, JsonObject.class); + System.out.println(GSON.toJson(json)); + return json; + } catch (JsonSyntaxException e) { + System.out.println(response); + throw e; + } + } + + private static JsonObject postVideoMeta(JsonObject preuploadVideo) throws IOException { + String schemeandhost = "https:" + preuploadVideo.get("endpoint").getAsString(); + String path = preuploadVideo.get("upos_uri").getAsString().replaceFirst("upos:/", ""); + StringJoiner url = new StringJoiner("&", schemeandhost + path + "?", ""); + url.add(querypart("uploads", "")); // WARNING: this is not a typo, it's required, or 404 + url.add(querypart("output", "json")); + url.add(querypart("profile", "ugcfx/bup")); + url.add(querypart("filesize", String.valueOf(VIDEO_FILE.length()))); + url.add(querypart("partsize", preuploadVideo.get("chunk_size").getAsString())); + url.add(querypart("biz_id", preuploadVideo.get("biz_id").getAsString())); + HttpURLConnection conn = conn(url.toString(), "POST"); + conn.setRequestProperty("X-Upos-Auth", preuploadVideo.get("auth").getAsString()); // 403 without it + System.out.println("POST " + url.toString()); + String response = new String(inputStreamToString(conn), StandardCharsets.UTF_8); + try { + JsonObject json = GSON.fromJson(response, JsonObject.class); + System.out.println(GSON.toJson(json)); + return json; + } catch (JsonSyntaxException e) { + System.out.println(response); + throw e; + } + } + + private static int uploadVideo(JsonObject preuploadVideo, JsonObject postVideoMeta) throws IOException { + long startts = System.currentTimeMillis() - 1; + String schemeandhost = "https:" + preuploadVideo.get("endpoint").getAsString(); + String path = preuploadVideo.get("upos_uri").getAsString().replaceFirst("upos:/", ""); + String urlp = schemeandhost + path + "?"; + long length = VIDEO_FILE.length(); + byte[] buffer = new byte[preuploadVideo.get("chunk_size").getAsInt()]; + int size = 0; + int chunks = (int) Math.ceil(length / (double) buffer.length); + InputStream in = new FileInputStream(VIDEO_FILE); + for (int chunk = 0; chunk < chunks; chunk++) { + System.out.println("speed: " + (chunk * buffer.length) / (System.currentTimeMillis() - startts) + "bytes/s"); + System.out.println("chunk: " + (chunk + 1) + "/" + chunks); + size = in.read(buffer, 0, buffer.length); + if (size == -1) { + break; + } + StringJoiner url = new StringJoiner("&", urlp, ""); + url.add(querypart("partNumber", String.valueOf(chunk + 1))); + url.add(querypart("uploadId", postVideoMeta.get("upload_id").getAsString())); + url.add(querypart("chunk", String.valueOf(chunk))); + url.add(querypart("chunks", String.valueOf(chunks))); + url.add(querypart("size", String.valueOf(size))); + url.add(querypart("start", String.valueOf(chunk * buffer.length))); + url.add(querypart("end", String.valueOf((chunk) * buffer.length + size))); + url.add(querypart("total", String.valueOf(length))); + HttpURLConnection conn = conn(url.toString(), "PUT"); + conn.setRequestProperty("X-Upos-Auth", preuploadVideo.get("auth").getAsString()); + conn.setRequestProperty("Content-Type", "application/octet-stream"); + conn.setRequestProperty("Content-Length", String.valueOf(size)); + conn.setDoOutput(true); + conn.getOutputStream().write(buffer, 0, size); + System.out.println("PUT " + url.toString()); + String response = new String(inputStreamToString(conn), StandardCharsets.UTF_8); + System.out.println(response); + } + in.close(); + return chunks; + } + + private static void endupload(JsonObject preuploadVideo, JsonObject postVideoMeta, int chunks) throws IOException { + String schemeandhost = "https:" + preuploadVideo.get("endpoint").getAsString(); + String path = preuploadVideo.get("upos_uri").getAsString().replaceFirst("upos:/", ""); + StringJoiner url = new StringJoiner("&", schemeandhost + path + "?", ""); + url.add(querypart("output", "json")); + url.add(querypart("name", VIDEO_FILE.getName())); + url.add(querypart("profile", "ugcfx/bup")); + url.add(querypart("uploadId", postVideoMeta.get("upload_id").getAsString())); + url.add(querypart("biz_id", preuploadVideo.get("biz_id").getAsString())); + JsonArray parts = new JsonArray(); + for (int i = 1; i <= chunks; i++) { + JsonObject part = new JsonObject(); + part.addProperty("partNumber", i); + part.addProperty("eTag", "etag"); + parts.add(part); + } + JsonObject body = new JsonObject(); + body.add("parts", parts); + HttpURLConnection conn = conn(url.toString(), "POST"); + conn.setRequestProperty("X-Upos-Auth", preuploadVideo.get("auth").getAsString()); + conn.setRequestProperty("Content-Type", "application/json; charset=UTF-8"); + conn.setDoOutput(true); + conn.getOutputStream().write(body.toString().getBytes(StandardCharsets.UTF_8)); + System.out.println("POST " + url.toString()); + String response = new String(inputStreamToString(conn), StandardCharsets.UTF_8); + try { + JsonObject json = GSON.fromJson(response, JsonObject.class); + System.out.println(GSON.toJson(json)); + } catch (JsonSyntaxException e) { + System.out.println(response); + throw e; + } + } + +} +``` diff --git a/docs/creativecenter/videos.md b/docs/creativecenter/videos.md new file mode 100644 index 0000000..6a800fd --- /dev/null +++ b/docs/creativecenter/videos.md @@ -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: 可以
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" +``` + +
+查看响应示例: + +```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 + } +} +``` + +
+ +## 视频基础信息 + +> 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" +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "archive": { + "aid": 1906473802, + "bvid": "BV1MU411S7iJ", + "title": "Linux小寄巧: 原地卸载内核然后尝试救活!" + }, + "videos": [ + { + "cid": 1625992822, + "index": 1, + "title": "Linux小寄巧: 原地卸载内核然后尝试救活!", + "duration": 0 + } + ] + } +} +``` + +
diff --git a/docs/customerservice/msg.md b/docs/customerservice/msg.md new file mode 100644 index 0000000..06b5645 --- /dev/null +++ b/docs/customerservice/msg.md @@ -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" +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "msg": "ok", + "message": "ok", + "ttl": 1 +} +``` + +
+ +## 上传文件 + +> 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: 成功
1000011: 仅支持上传300M内的文件
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' +``` + +
+查看响应示例: + +```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" + } +} +``` + +
diff --git a/docs/danmaku/action.md b/docs/danmaku/action.md index 2b4445e..84ea862 100644 --- a/docs/danmaku/action.md +++ b/docs/danmaku/action.md @@ -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' \
+## 发送打分弹幕 + +> https://api.bilibili.com/x/v2/dm/command/grade/post + +*请求方式: POST* + +认证方式: Cookie (SESSDATA) + + + +**正文参数 (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' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "dmid": 1651556419721443584, + "dmidStr": "1651556419721443584", + "visible": true, + "action": "grade:5" + } +} +``` + +
## 撤回弹幕 diff --git a/docs/dynamic/all.md b/docs/dynamic/all.md index a054e65..c0d700e 100644 --- a/docs/dynamic/all.md +++ b/docs/dynamic/all.md @@ -1,3810 +1,7948 @@ # 获取动态列表 +## 获取全部动态列表 + > https://api.bilibili.com/x/polymer/web-dynamic/v1/feed/all -请求方式:`GET` +*请求方式: GET* -是否需要登录:`是` +认证方式: Cookie (SESSDATA) -## URL参数 +**URL参数:** -| 参数名 | 类型 | 必填 | 内容 | 备注 | -|-----------------|-----|-----|--------|-----------------------------------------------------------| -| timezone_offset | str | | `-480` | | -| type | str | | 分类 | `all`:全部
`video`:视频投稿
`pgc`:追番追剧
`article`:专栏 | -| offset | num | | 分页偏移量 | 翻页时使用 | -| update_baseline | str | | 更新基线 | 获取新动态时使用 | -| page | num | | 页数 | 无效参数 | +| 参数名 | 类型 | 必要性 | 内容 | 备注 | +| --- | --- | --- | --- | --- | +| timezone_offset | str | 非必要 | `-480` | 新版无 | +| type | str | 非必要 | 分类 | 新版无, `all`:全部(默认)
`video`:视频投稿
`pgc`:追番追剧
`article`:专栏 | +| host_mid | num | 非必要 | UP主UID | 仅新版, 如 `293793435` | +| offset | num | 非必要 | 分页偏移量 | 默认为空, 翻页时使用 | +| update_baseline | str | 非必要 | 更新基线 | 获取新动态时使用 | +| page | num | 非必要 | 页数 | 无效参数 | +| platform | str | 非必要 | 平台 | 仅新版, 如 `web` | +| features | str | 非必要 | 功能开关? | 旧版 `itemOpusStyle,listOnlyfans`
新版 `itemOpusStyle,listOnlyfans,opusBigCover,onlyfansVote,decorationCard,onlyfansAssetsV2,forwardListHidden,ugcDelete` | +| web_location | str | 非必要 | 333.1365 | 仅新版存在 | -## Json回复 +**JSON回复:** -### 根对象 +根: -| 字段名 | 类型 | 内容 | 备注 | -|---------|-----|------|---------------------| -| code | num | 响应码 | 0:成功
-101:账号未登录 | -| message | str | | | -| ttl | num | 1 | | -| data | obj | 信息本体 | | +| 字段 | 类型 | 内容 | 备注 | +| --- | --- | --- | --- | +| code | num | 响应码 | 0:成功
-101:账号未登录 | +| message | str | | | +| ttl | num | 1 | | +| data | obj | 信息本体 | | -### `data`对象 +`data`: -| 字段名 | 类型 | 内容 | 备注 | -|-----------------|-------|----------------|----------------------------------| -| has_more | bool | 是否有更多数据 | | -| items | array | 数据数组 | | -| offset | str | 偏移量 | 等于`items`中最后一条记录的id
获取下一页时使用 | -| update_baseline | str | 更新基线 | 等于`items`中第一条记录的id | -| update_num | num | 本次获取获取到了多少条新动态 | 在更新基线以上的动态条数 | +| 字段 | 类型 | 内容 | 备注 | +| --- | --- | --- | --- | +| has_more | bool | 是否有更多数据 | | +| items | array | 数据数组 | | +| offset | str | 偏移量 | 等于`items`中最后一条记录的id
获取下一页时使用 | +| update_baseline | str | 更新基线 | 等于`items`中第一条记录的id | +| update_num | num | 本次获取获取到了多少条新动态 | 在更新基线以上的动态条数 | -### `data`对象 -> `items`数组中的对象 +`data.items[n]`: -| 字段名 | 类型 | 内容 | 备注 | -|---------|------|-------|------------------------------------| -| basic | obj | | | -| id_str | str | 动态id | | -| modules | obj | 动态信息 | | -| type | str | 动态类型 | [动态类型](./dynamic_enum.md#动态类型) | -| visible | bool | 是否显示 | `true`:正常显示
`false`:折叠动态 | -| orig | obj | 原动态信息 | 仅动态类型为`DYNAMIC_TYPE_FORWARD`的情况下存在 | +| 字段 | 类型 | 内容 | 备注 | +| --- | --- | --- | --- | +| basic | obj | | | +| id_str | str | 动态id | | +| modules | obj | 动态信息 | | +| type | str | 动态类型 | [动态类型](./dynamic_enum.md#动态类型) | +| visible | bool | 是否显示 | `true`:正常显示
`false`:折叠动态 | +| orig | obj | 原动态信息 | 仅动态类型为`DYNAMIC_TYPE_FORWARD`的情况下存在 | -### `data`对象 -> `items`数组中的对象 -> `basic`对象 +`data.items[n].basic`: -| 字段名 | 类型 | 内容 | 备注 | -|----------------|-----|-----|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| comment_id_str | str | | `DYNAMIC_TYPE_AV`:视频AV号
`DYNAMIC_TYPE_UGC_SEASON`:视频AV号
`DYNAMIC_TYPE_PGC`:剧集分集AV号
`DYNAMIC_TYPE_LIVE_RCMD`:动态本身id
`DYNAMIC_TYPE_DRAW`:相簿id
`DYNAMIC_TYPE_ARTICLE`:专栏cv号
`DYNAMIC_TYPE_FORWARD`:动态本身id
`DYNAMIC_TYPE_WORD`:动态本身id
`DYNAMIC_TYPE_LIVE`:动态本身id
`DYNAMIC_TYPE_MEDIALIST`:收藏夹ml号 | -| comment_type | num | | 1:`DYNAMIC_TYPE_AV` `DYNAMIC_TYPE_PGC` `DYNAMIC_TYPE_UGC_SEASON`
11:`DYNAMIC_TYPE_DRAW`
12:`DYNAMIC_TYPE_ARTICLE`
17:`DYNAMIC_TYPE_LIVE_RCMD` `DYNAMIC_TYPE_FORWARD` `DYNAMIC_TYPE_WORD` `DYNAMIC_TYPE_COMMON_SQUARE`
19:`DYNAMIC_TYPE_MEDIALIST` | -| like_icon | obj | | `空串` | -| rid_str | str | | `DYNAMIC_TYPE_AV`:视频AV号
`DYNAMIC_TYPE_UGC_SEASON`:视频AV号 `DYNAMIC_TYPE_PGC`:剧集分集EP号
`DYNAMIC_TYPE_DRAW`:相簿id
`DYNAMIC_TYPE_ARTICLE`:专栏cv号
`DYNAMIC_TYPE_LIVE_RCMD`:live_id
`DYNAMIC_TYPE_FORWARD`:未知
`DYNAMIC_TYPE_WORD`:未知
`DYNAMIC_TYPE_COMMON_SQUARE`:未知
`DYNAMIC_TYPE_LIVE`:直播间id
`DYNAMIC_TYPE_MEDIALIST`:收藏夹ml号 | +| 字段 | 类型 | 内容 | 备注 | +| --- | --- | --- | --- | +| comment_id_str | str | 见 [动态类型](./dynamic_enum.md#动态类型) | +| comment_type | num | | 见 [动态类型](./dynamic_enum.md#动态类型) | +| like_icon | obj | | 见下 | +| rid_str | str | | 见 [动态类型](./dynamic_enum.md#动态类型) | -### `data`对象 -> `items`数组中的对象 -> `basic`对象 -> `like_icon`对象 +`data.items[n].basic.like_icon`: -| 字段名 | 类型 | 内容 | 备注 | -|------------|-----|------|-----| -| action_url | str | `空串` | | -| end_url | str | `空串` | | -| id | num | `0` | | -| start_url | str | `空串` | | +| 字段 | 类型 | 内容 | 备注 | +| --- | --- | --- | --- | +| action_url | str | `空串` | | +| end_url | str | `空串` | | +| id | num | `0` | | +| start_url | str | `空串` | | -### `data`对象 -> `items`数组中的对象 -> `modules`对象 +`data.items[n].modules`: -| 字段名 | 类型 | 内容 | 备注 | -|--------------------|-----|-----------|-----| -| module_author | obj | UP主信息 | | -| module_dynamic | obj | 动态内容信息 | | -| module_more | obj | 动态右上角三点菜单 | | -| module_stat | obj | 动态统计数据 | | -| module_interaction | obj | 热度评论 | | -| module_fold | obj | 动态折叠信息 | | -| module_dispute | obj | 争议小黄条 | | -| module_tag | obj | 置顶信息 | | +| 字段 | 类型 | 内容 | 备注 | +| --- | --- | --- | --- | +| module_author | obj | UP主信息 | | +| module_dynamic | obj | 动态内容信息 | | +| module_more | obj | 动态右上角三点菜单 | | +| module_stat | obj | 动态统计数据 | | +| module_interaction | obj | 热度评论 | | +| module_fold | obj | 动态折叠信息 | | +| module_dispute | obj | 争议小黄条 | | +| module_tag | obj | 置顶信息 | | -### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_author`对象 +`data.items[n].modules.module_author`: -| 字段名 | 类型 | 内容 | 备注 | -|-------------------|------|-------------------------|-------------------------------------------------------------------------------------| -| face | str | 头像 | | -| face_nft | bool | 是否为NFT头像 | | -| following | bool | 是否关注此UP主 | 自己的动态为`null` | -| jump_url | str | 跳转链接 | | -| label | str | 名称前标签 | `合集`
`电视剧`
`番剧` | -| mid | num | UP主UID
剧集SeasonId | | -| name | str | UP主名称
剧集名称
合集名称 | | -| official_verify | obj | UP主认证信息 | | -| pendant | obj | UP主头像框 | | -| pub_action | str | 更新动作描述 | `投稿了视频`
`直播了`
`投稿了文章`
`更新了合集`
`与他人联合创作`
`发布了动态视频`
`投稿了直播回放` | -| pub_location_text | str | `空串` | | -| pub_time | str | 更新时间 | `x分钟前`
`x小时前`
`昨天` | -| pub_ts | num | 更新时间戳 | 单位:秒 | -| type | str | 作者类型 | [作者类型](./dynamic_enum.md#作者类型) | -| vip | obj | UP主大会员信息 | | -| decorate | obj | 装扮信息 | | -| nft_info | obj | NFT头像信息 | | +| 字段 | 类型 | 内容 | 备注 | +| --- | --- | --- | --- | +| avater | obj | 头像信息 | 主要用于网页渲染, 若感兴趣可参考 [图片格式化](../misc/picture.md) | +| face | str | 头像 URL | | +| face_nft | bool | 是否为NFT头像 | | +| following | bool | 是否关注此UP主 | 自己的动态为`null` | +| jump_url | str | 跳转链接 | | +| label | str | 名称前标签 | `合集`
`电视剧`
`番剧` | +| mid | num | UP主UID
剧集SeasonId | | +| name | str | UP主名称
剧集名称
合集名称 | | +| official_verify | obj | UP主认证信息 | | +| pendant | obj | UP主头像框 | | +| pub_action | str | 更新动作描述 | `投稿了视频`
`直播了`
`投稿了文章`
`更新了合集`
`与他人联合创作`
`发布了动态视频`
`投稿了直播回放` | +| pub_location_text | str | 空 | | +| pub_time | str | 更新时间 | `x分钟前`
`x小时前`
`昨天` | +| pub_ts | num | 更新时间戳 | UNIX 秒级时间戳 | +| type | str | 作者类型 | [作者类型](./dynamic_enum.md#作者类型) | +| vip | obj | UP主大会员信息 | | +| decorate | obj | 装扮信息 | | +| nft_info | obj | NFT头像信息 | | -### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_author`对象 -> `official_verify`对象 +`data.items[n].modules.module_author.official_verify`: -| 字段名 | 类型 | 内容 | 备注 | -|------|-----|------|-----| -| desc | str | 认证说明 | | -| type | num | 认证类型 | | +| 字段 | 类型 | 内容 | 备注 | +| --- | --- | --- | --- | +| desc | str | 认证说明 | | +| type | num | 认证类型 | | -### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_author`对象 -> `pendant`对象 +`data.items[n].modules.module_author.pendant`: -| 字段名 | 类型 | 内容 | 备注 | -|---------------------|-----|--------------|------------| -| expire | num | 过期时间 | 此接口返回恒为`0` | -| image | str | 头像框图片url | | -| image_enhance | str | 头像框图片url | | -| image_enhance_frame | str | 头像框图片逐帧序列url | | -| name | str | 头像框名称 | | -| pid | num | 头像框id | | +| 字段 | 类型 | 内容 | 备注 | +| --- | --- | --- | --- | +| expire | num | 过期时间 | 此接口返回恒为`0` | +| image | str | 头像框图片url | | +| image_enhance | str | 头像框图片url | | +| image_enhance_frame | str | 头像框图片逐帧序列url | | +| name | str | 头像框名称 | | +| pid | num | 头像框id | | +| n_pid | num | 同 pid | | -### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_author`对象 -> `vip`对象 +`data.items[n].modules.module_author.vip`: -| 字段名 | 类型 | 内容 | 备注 | -|----------------------|-----|----------|---------------------------------| -| avatar_subscript | num | 是否显示角标 | 0:不显示
1:显示 | -| avatar_subscript_url | str | `空串` | | -| due_date | num | 大会员过期时间戳 | 单位:秒 | -| label | obj | 大会员标签 | | -| nickname_color | str | 名字显示颜色 | 大会员:`#FB7299` | -| status | num | 大会员状态 | 0:无
1:有
2:? | -| theme_type | num | `0` | | -| type | num | 大会员类型 | 0:无
1:月大会员
2:年度及以上大会员 | +| 字段 | 类型 | 内容 | 备注 | +| --- | --- | --- | --- | +| avatar_subscript | num | 是否显示角标 | 0:不显示
1:显示 | +| avatar_subscript_url | str | `空串` | | +| due_date | num | 大会员过期时间戳 | UNIX 毫秒时间戳 | +| label | obj | 大会员标签 | | +| nickname_color | str | 名字显示颜色 | 大会员:`#FB7299` | +| status | num | 大会员状态 | 0:无
1:有
2:封禁? | +| theme_type | num | `0` | | +| type | num | 大会员类型 | 0:无
1:月大会员
2:年度及以上大会员 | -### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_author`对象 -> `vip`对象 -> `label`对象 +`data.items[n].modules.module_author.vip.label`: -| 字段名 | 类型 | 内容 | 备注 | -|---------------------------|------|----------|------------------------------------------------------------------------------------------------------------------------------| -| bg_color | str | 会员标签背景颜色 | `#FB7299` | -| bg_style | num | `0` `1` | | -| border_color | str | `空串` | | -| img_label_uri_hans | str | 大会员牌子图片 | 动态版 简体版 | -| img_label_uri_hans_static | str | 大会员牌子图片 | 静态版 简体版 | -| img_label_uri_hant | str | 大会员牌子图片 | 动态版 繁体版 | -| img_label_uri_hant_static | str | 大会员牌子图片 | 静态版 繁体版 | -| label_theme | str | 会员标签 | vip:大会员
annual_vip:年度大会员
ten_annual_vip:十年大会员
hundred_annual_vip:百年大会员
fools_day_hundred_annual_vip:最强绿鲤鱼 | -| path | str | `空串` | | -| text | str | 会员类型文案 | `大会员` `年度大会员` `十年大会员` `百年大会员` `最强绿鲤鱼` | -| text_color | str | 用户名文字颜色 | | -| use_img_label | bool | `true` | | +| 字段 | 类型 | 内容 | 备注 | +| --- | --- | --- | --- | +| bg_color | str | 会员标签背景颜色 | `#FB7299` | +| bg_style | num | `0` `1` | | +| border_color | str | 空 | | +| img_label_uri_hans | str | 大会员牌子图片 | 动态版 简体版 | +| img_label_uri_hans_static | str | 大会员牌子图片 | 静态版 简体版 | +| img_label_uri_hant | str | 大会员牌子图片 | 动态版 繁体版 | +| img_label_uri_hant_static | str | 大会员牌子图片 | 静态版 繁体版 | +| label_theme | str | 会员标签 | vip:大会员
annual_vip:年度大会员
ten_annual_vip:十年大会员
hundred_annual_vip:百年大会员
fools_day_hundred_annual_vip:最强绿鲤鱼 | +| path | str | 空 | | +| text | str | 会员类型文案 | `大会员` `年度大会员` `十年大会员` `百年大会员` `最强绿鲤鱼` | +| text_color | str | 用户名文字颜色 | | +| use_img_label | bool | `true` | | -### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_author`对象 -> `decorate`对象 +`data.items[n].modules.module_author.decorate`: -| 字段名 | 类型 | 内容 | 备注 | -|----------|-----|--------------|-----| -| card_url | str | 动态卡片小图标图片URL | | -| fan | obj | 粉丝装扮信息 | | -| id | num | 装扮ID | | -| jump_url | str | 跳转URL | | -| name | str | 装扮名称 | | -| type | num | `1` `2` `3` | | +| 字段 | 类型 | 内容 | 备注 | +| --- | --- | --- | --- | +| card_url | str | 动态卡片小图标图片URL | | +| fan | obj | 粉丝装扮信息 | | +| id | num | 装扮ID | | +| jump_url | str | 跳转URL | | +| name | str | 装扮名称 | | +| type | num | `1` `2` `3` | | -### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_author`对象 -> `decorate`对象 -> `fan`对象 +`data.items[n].modules.module_author.decorate.fan`: -| 字段名 | 类型 | 内容 | 备注 | -|---------|------|---------|-----| -| color | str | 编号颜色 | | -| is_fan | bool | 是否是粉丝装扮 | | -| num_str | str | 装扮编号 | | -| number | num | 装扮编号 | | +| 字段 | 类型 | 内容 | 备注 | +| --- | --- | --- | --- | +| color | str | 编号颜色 | | +| color_format | obj | 颜色格式 | | +| is_fan | bool | 是否是粉丝装扮 | | +| num_str | str | 装扮编号前缀 | 如 `NO.` | +| number | num | 装扮编号 | | -### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_author`对象 -> `nft_info`对象 +`data.items[n].modules.module_author.decorate.fan.color_format`: -| 字段名 | 类型 | 内容 | 备注 | -|-------------|-----|------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| 字段 | 类型 | 内容 | 备注 | +| --- | --- | --- | --- | +| colors | array | 颜色 | 带 `#` 前缀的 16 进制颜色代码 | +| end_point | str| 端点 | `0,100` | +| gradients | array | 渐变 | 内容 [0, 100] | +| start_point | str | 起点 | `0,0` | + +`data.items[n].modules.module_author.nft_info`: + +| 字段 | 类型 | 内容 | 备注 | +| --- | --- | --- | --- | | region_icon | str | NFT头像角标URL | 类型1:https://i0.hdslb.com/bfs/activity-plat/static/20220506/334553dd7c506a92b88eaf4d59ac8b4d/j8AeXAkEul.gif
类型2:https://i0.hdslb.com/bfs/activity-plat/static/20220506/334553dd7c506a92b88eaf4d59ac8b4d/IOHoVs1ebP.gif | -| region_type | num | NFT头像角标类型 | 1,2 | -| show_status | num | `1` | | +| region_type | num | NFT头像角标类型 | 1,2 | +| show_status | num | `1` | | -### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_dynamic`对象 +`data.items[n].modules.module_dynamic`: -| 字段名 | 类型 | 内容 | 备注 | -|------------|-----|----------|-----| -| additional | obj | 相关内容卡片信息 | | -| desc | obj | 动态文字内容 |其他动态时为null | -| major | obj | 动态主体对象 |转发动态时为null | -| topic | obj | 话题信息 | | +| 字段 | 类型 | 内容 | 备注 | +| --- | --- | --- | --- | +| additional | obj | 相关内容卡片信息 | | +| desc | obj | 动态文字内容 |其他动态时为null | +| major | obj | 动态主体对象 |转发动态时为null | +| topic | obj | 话题信息 | | -### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_dynamic`对象 -> `additional`对象 +`data.items[n].modules.module_dynamic.additional`: -| 字段名 | 类型 | 内容 | 备注 | -|---------|-----|------|----------------------------------------| -| common | obj | 一般类型 | `ADDITIONAL_TYPE_COMMON`类型独有 | -| type | str | 卡片类型 | [相关内容卡片类型](./dynamic_enum.md#相关内容卡片类型) | -| reserve | obj | 预约信息 | `ADDITIONAL_TYPE_RESERVE`类型独有 | -| goods | obj | 商品内容 | `ADDITIONAL_TYPE_GOODS`类型独有 | -| vote | obj | 投票信息 | `ADDITIONAL_TYPE_VOTE`类型独有 | -| ugc | obj | 视频信息 | `ADDITIONAL_TYPE_UGC`类型独有 | +| 字段 | 类型 | 内容 | 备注 | +| --- | --- | --- | --- | +| common | obj | 一般类型 | `ADDITIONAL_TYPE_COMMON`类型独有 | +| type | str | 卡片类型 | [相关内容卡片类型](./dynamic_enum.md#相关内容卡片类型) | +| reserve | obj | 预约信息 | `ADDITIONAL_TYPE_RESERVE`类型独有 | +| goods | obj | 商品内容 | `ADDITIONAL_TYPE_GOODS`类型独有 | +| vote | obj | 投票信息 | `ADDITIONAL_TYPE_VOTE`类型独有 | +| ugc | obj | 视频信息 | `ADDITIONAL_TYPE_UGC`类型独有 | -### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_dynamic`对象 -> `additional`对象 -> `common`对象 +`data.items[n].modules.module_dynamic.additional.common`: -| 字段名 | 类型 | 内容 | 备注 | -|-----------|-----|-------|-----------------------------------| -| button | obj | 按钮内容 | | -| cover | str | 左侧封面图 | | -| desc1 | str | 描述1 | | -| desc2 | str | 描述2 | | -| head_text | str | 卡片头文本 | | -| id_str | str | 相关id | | -| jump_url | str | 跳转URL | | -| style | num | `1` | | -| sub_type | str | 子类型 | `game`
`decoration`
`ogv` | -| title | str | 卡片标题 | | +| 字段 | 类型 | 内容 | 备注 | +| --- | --- | --- | --- | +| button | obj | 按钮内容 | | +| cover | str | 左侧封面图 | | +| desc1 | str | 描述1 | | +| desc2 | str | 描述2 | | +| head_text | str | 卡片头文本 | | +| id_str | str | 相关id | | +| jump_url | str | 跳转URL | | +| style | num | `1` | | +| sub_type | str | 子类型 | `game`
`decoration`
`ogv` | +| title | str | 卡片标题 | | -### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_dynamic`对象 -> `additional`对象 -> `common`对象 -> `button`对象 +`data.items[n].modules.module_dynamic.additional.common.button`: -| 字段名 | 类型 | 内容 | 备注 | -|------------|-----|-------|---------------------------------------| -| jump_style | obj | 跳转类型 | `game`和`decoration`类型特有 | -| jump_url | str | 跳转URL | | -| type | num | | 1:`game`和`decoration`类型
2:`ogv`类型 | -| check | obj | | `ogv`类型特有 | -| status | num | `1` | | -| uncheck | obj | | `ogv`类型特有 | +| 字段 | 类型 | 内容 | 备注 | +| --- | --- | --- | --- | +| jump_style | obj | 跳转类型 | `game`和`decoration`类型特有 | +| jump_url | str | 跳转URL | | +| type | num | | 1:`game`和`decoration`类型
2:`ogv`类型 | +| check | obj | | `ogv`类型特有 | +| status | num | `1` | | +| uncheck | obj | | `ogv`类型特有 | -### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_dynamic`对象 -> `additional`对象 -> `common`对象 -> `button`对象 -> `jump_style`对象 +`data.items[n].modules.module_dynamic.additional.common.button.jump_style`: -| 字段名 | 类型 | 内容 | 备注 | -|----------|-----|--------|--------------------------------| -| icon_url | str | `空串` | | -| text | str | 按钮显示文案 | game:`进入`
decoration:`去看看` | +| 字段 | 类型 | 内容 | 备注 | +| --- | --- | --- | --- | +| icon_url | str | `空串` | | +| text | str | 按钮显示文案 | game:`进入`
decoration:`去看看` | -### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_dynamic`对象 -> `additional`对象 -> `common`对象 -> `button`对象 -> `check`对象 +`data.items[n].modules.module_dynamic.additional.common.button.check`: -| 字段名 | 类型 | 内容 | 备注 | -|----------|-----|---------|-----------| -| icon_url | str | 按钮图片URL | | -| text | str | 按钮显示文案 | `ogv`:已追剧 | +| 字段 | 类型 | 内容 | 备注 | +| --- | --- | --- | --- | +| icon_url | str | 按钮图片URL | | +| text | str | 按钮显示文案 | `ogv`:已追剧 | -### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_dynamic`对象 -> `additional`对象 -> `common`对象 -> `button`对象 -> `uncheck`对象 +`data.items[n].modules.module_dynamic.additional.common.button.uncheck`: -| 字段名 | 类型 | 内容 | 备注 | -|----------|-----|---------|----------| -| icon_url | str | 按钮图片URL | | -| text | str | 按钮显示文案 | `ogv`:追剧 | +| 字段 | 类型 | 内容 | 备注 | +| --- | --- | --- | --- | +| icon_url | str | 按钮图片URL | | +| text | str | 按钮显示文案 | `ogv`:追剧 | -### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_dynamic`对象 -> `additional`对象 -> `reserve`对象 +`data.items[n].modules.module_dynamic.additional.reserve`: -| 字段名 | 类型 | 内容 | 备注 | -|---------------|-----|----------|-----| -| button | obj | 按钮信息 | | -| desc1 | obj | 预约时间 | | -| desc2 | obj | 预约观看量 | | -| jump_url | str | 跳转URL | | -| reserve_total | num | 预约人数 | | -| rid | num | | | -| state | num | `0` | | -| stype | num | `1` `2` | | -| title | str | 预约标题 | | -| up_mid | num | 预约发起人UID | | -| desc3 | obj | 预约有奖信息 | | +| 字段 | 类型 | 内容 | 备注 | +| --- | --- | --- | --- | +| button | obj | 按钮信息 | | +| desc1 | obj | 预约时间 | | +| desc2 | obj | 预约观看量 | | +| jump_url | str | 跳转URL | | +| reserve_total | num | 预约人数 | | +| rid | num | | | +| state | num | `0` | | +| stype | num | `1` `2` | | +| title | str | 预约标题 | | +| up_mid | num | 预约发起人UID | | +| desc3 | obj | 预约有奖信息 | | -### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_dynamic`对象 -> `additional`对象 -> `reserve`对象 -> `button`对象 +`data.items[n].modules.module_dynamic.additional.reserve.button`: -| 字段名 | 类型 | 内容 | 备注 | -|------------|-----|-----------|------------------------------------------------------| -| check | obj | 已预约状态显示内容 | | -| status | num | 预约状态 | 1:未预约,使用`uncheck`
2:已预约,使用`check` | -| type | num | 类型 | 1:视频预约,使用`jump_style`
2:直播预约,使用`check`和`uncheck` | -| uncheck | obj | 未预约状态显示内容 | | -| jump_style | obj | 跳转按钮 | | -| jump_url | str | 跳转URL | | +| 字段 | 类型 | 内容 | 备注 | +| --- | --- | --- | --- | +| check | obj | 已预约状态显示内容 | | +| status | num | 预约状态 | 1:未预约,使用`uncheck`
2:已预约,使用`check` | +| type | num | 类型 | 1:视频预约,使用`jump_style`
2:直播预约,使用`check`和`uncheck` | +| uncheck | obj | 未预约状态显示内容 | | +| jump_style | obj | 跳转按钮 | | +| jump_url | str | 跳转URL | | -### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_dynamic`对象 -> `additional`对象 -> `reserve`对象 -> `button`对象 -> `check`对象 +`data.items[n].modules.module_dynamic.additional.reserve.button.check`对象" -| 字段名 | 类型 | 内容 | 备注 | -|----------|-----|--------|-------| -| icon_url | str | `空串` | | -| text | str | 按钮显示文案 | `已预约` | +| 字段 | 类型 | 内容 | 备注 | +| --- | --- | --- | --- | +| icon_url | str | `空串` | | +| text | str | 按钮显示文案 | `已预约` | -### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_dynamic`对象 -> `additional`对象 -> `reserve`对象 -> `button`对象 -> `uncheck`对象 +`data.items[n].modules.module_dynamic.additional.reserve.button.uncheck`: -| 字段名 | 类型 | 内容 | 备注 | -|----------|-----|------------|-----| -| icon_url | str | 显示图标URL | | -| text | str | 按钮显示文案 | | -| toast | str | 预约成功显示提示文案 | | -| disable | num | 是否不可预约 | 1:是 | +| 字段 | 类型 | 内容 | 备注 | +| --- | --- | --- | --- | +| icon_url | str | 显示图标URL | | +| text | str | 按钮显示文案 | | +| toast | str | 预约成功显示提示文案 | | +| disable | num | 是否不可预约 | 1:是 | -### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_dynamic`对象 -> `additional`对象 -> `reserve`对象 -> `button`对象 -> `jump_style`对象 +`data.items[n].modules.module_dynamic.additional.reserve.button.jump_style`: -| 字段名 | 类型 | 内容 | 备注 | -|----------|-----|--------|-------| -| icon_url | str | `空串` | | -| text | str | 按钮显示文案 | `去观看` | +| 字段 | 类型 | 内容 | 备注 | +| --- | --- | --- | --- | +| icon_url | str | `空串` | | +| text | str | 按钮显示文案 | `去观看` | -### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_dynamic`对象 -> `additional`对象 -> `reserve`对象 -> `desc1`对象 +`data.items[n].modules.module_dynamic.additional.reserve.desc1`: -| 字段名 | 类型 | 内容 | 备注 | -|-------|-----|------|------------------------------------------------------| -| style | num | 类型 | 0:`视频预约` `11-05 20:00 直播` `预计今天 17:05发布`
1:`直播中` | -| text | str | 显示文案 | | +| 字段 | 类型 | 内容 | 备注 | +| --- | --- | --- | --- | +| style | num | 类型 | 0:`视频预约` `11-05 20:00 直播` `预计今天 17:05发布`
1:`直播中` | +| text | str | 显示文案 | | -### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_dynamic`对象 -> `additional`对象 -> `reserve`对象 -> `desc2`对象 +`data.items[n].modules.module_dynamic.additional.reserve.desc2`: -| 字段名 | 类型 | 内容 | 备注 | -|---------|------|------|-----------------------------------------------| -| style | num | `0` | | -| text | str | 显示文案 | `2人预约`
`743观看`
`1.0万人看过`
`2151人气` | -| visible | bool | 是否显示 | true:显示文案
false:显示已结束 | +| 字段 | 类型 | 内容 | 备注 | +| --- | --- | --- | --- | +| style | num | `0` | | +| text | str | 显示文案 | `2人预约`
`743观看`
`1.0万人看过`
`2151人气` | +| visible | bool | 是否显示 | true:显示文案
false:显示已结束 | -### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_dynamic`对象 -> `additional`对象 -> `reserve`对象 -> `desc3`对象 +`data.items[n].modules.module_dynamic.additional.reserve.desc3`: -| 字段名 | 类型 | 内容 | 备注 | -|----------|-----|-----------|-----| -| jump_url | str | 开奖信息跳转URL | | -| style | num | `1` | | -| text | str | 奖品信息显示文案 | | +| 字段 | 类型 | 内容 | 备注 | +| --- | --- | --- | --- | +| jump_url | str | 开奖信息跳转URL | | +| style | num | `1` | | +| text | str | 奖品信息显示文案 | | -### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_dynamic`对象 -> `additional`对象 -> `goods`对象 +`data.items[n].modules.module_dynamic.additional.goods`: -| 字段名 | 类型 | 内容 | 备注 | -|-----------|-------|---------|-----| -| head_icon | str | `空串` | | -| head_text | str | 卡片头显示文案 | | -| items | array | 商品信息列表 | | -| jump_url | str | `空串` | | +| 字段 | 类型 | 内容 | 备注 | +| --- | --- | --- | --- | +| head_icon | str | `空串` | | +| head_text | str | 卡片头显示文案 | | +| items | array | 商品信息列表 | | +| jump_url | str | `空串` | | -### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_dynamic`对象 -> `additional`对象 -> `goods`对象 -> `items`数组中的对象 +`data.items[n].modules.module_dynamic.additional.goods.items`数组中的: -| 字段名 | 类型 | 内容 | 备注 | -|-----------|-----|----------|-----| -| brief | str | 商品副标题 | | -| cover | str | 商品封面 | | -| id | str | 商品ID | | -| jump_desc | str | 跳转按钮显示文案 | | -| jump_url | str | 跳转URL | | -| name | str | 商品名称 | | -| price | str | 商品价格 | | +| 字段 | 类型 | 内容 | 备注 | +| --- | --- | --- | --- | +| brief | str | 商品副标题 | | +| cover | str | 商品封面 | | +| id | str | 商品ID | | +| jump_desc | str | 跳转按钮显示文案 | | +| jump_url | str | 跳转URL | | +| name | str | 商品名称 | | +| price | str | 商品价格 | | -### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_dynamic`对象 -> `additional`对象 -> `vote`对象 +`data.items[n].modules.module_dynamic.additional.vote`: -| 字段名 | 类型 | 内容 | 备注 | -|---------------|------|-----------------|------| -| choice_cnt | num | `1` | | -| default_share | num | 是否默认勾选`同时分享至动态` | 1:勾选 | -| desc | str | 投票标题 | | -| end_time | num | 剩余时间 | 单位:秒 | -| join_num | num | 已参与人数 | | -| status | num | `1` | | -| type | null | `null` | | -| uid | num | 发起人UID | | -| vote_id | num | 投票ID | | +| 字段 | 类型 | 内容 | 备注 | +| --- | --- | --- | --- | +| choice_cnt | num | `1` | | +| default_share | num | 是否默认勾选`同时分享至动态` | 1:勾选 | +| desc | str | 投票标题 | | +| end_time | num | 剩余时间 | 单位:秒 | +| join_num | num | 已参与人数 | | +| status | num | `1` | | +| type | null | `null` | | +| uid | num | 发起人UID | | +| vote_id | num | 投票ID | | -### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_dynamic`对象 -> `additional`对象 -> `ugc`对象 +`data.items[n].modules.module_dynamic.additional.ugc`: -| 字段名 | 类型 | 内容 | 备注 | -|-------------|------|---------|-----| -| cover | str | 封面 | | -| desc_second | str | 播放量与弹幕数 | | -| duration | str | 视频长度 | | -| head_text | str | `空串` | | -| id_str | str | 视频AV号 | | -| jump_url | str | 视频跳转URL | | -| multi_line | bool | `true` | | -| title | str | 视频标题 | | +| 字段 | 类型 | 内容 | 备注 | +| --- | --- | --- | --- | +| cover | str | 封面 | | +| desc_second | str | 播放量与弹幕数 | | +| duration | str | 视频长度 | | +| head_text | str | `空串` | | +| id_str | str | 视频AV号 | | +| jump_url | str | 视频跳转URL | | +| multi_line | bool | `true` | | +| title | str | 视频标题 | | -### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_dynamic`对象 -> `desc`对象 +`data.items[n].modules.module_dynamic.desc`: -| 字段名 | 类型 | 内容 | 备注 | -|-----------------|-------|---------|--------------------------------------| +| 字段 | 类型 | 内容 | 备注 | +| --- | --- | --- | --- | | rich_text_nodes | array | 富文本节点列表 | [富文本节点类型](./dynamic_enum.md#富文本节点类型) | -| text | str | 动态的文字内容 | | +| text | str | 动态的文字内容 | | -### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_dynamic`对象 -> `desc`对象 -> `rich_text_nodes`数组中的对象 +`data.items[n].modules.module_dynamic.desc.rich_text_nodes[o]`: -| 字段名 | 类型 | 内容 | 备注 | -|-----------|-----|--------|--------------------------------------| -| orig_text | str | 原始文本 | | -| text | str | 替换后的文本 | | -| type | str | 节点类型 | [富文本节点类型](./dynamic_enum.md#富文本节点类型) | -| emoji | obj | 表情信息 | | -| jump_url | str | 跳转URL | | -| rid | str | 关联id | | -| goods | obj | 商品信息 | | -| icon_name | str | 图标名称 | `taobao` | +| 字段 | 类型 | 内容 | 备注 | +| --- | --- | --- | --- | +| orig_text | str | 原始文本 | | +| text | str | 替换后的文本 | | +| type | str | 节点类型 | [富文本节点类型](./dynamic_enum.md#富文本节点类型) | +| emoji | obj | 表情信息 | | +| jump_url | str | 跳转URL | | +| rid | str | 关联id | | +| goods | obj | 商品信息 | | +| icon_name | str | 图标名称 | `taobao` | -### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_dynamic`对象 -> `desc`对象 -> `rich_text_nodes`数组中的对象 -> `emoji`对象 +`data.items[n].modules.module_dynamic.desc.rich_text_nodes[o].emoji`: -| 字段名 | 类型 | 内容 | 备注 | -|----------|-----|---------|-------------| -| icon_url | str | 表情图片URL | | -| size | num | 表情尺寸 | `1` `2` | -| text | str | 表情的文字代码 | | -| type | num | 表情类型 | `1` `2` `3` | +| 字段 | 类型 | 内容 | 备注 | +| --- | --- | --- | --- | +| icon_url | str | 表情图片URL | | +| size | num | 表情尺寸 | `1` `2` | +| text | str | 表情的文字代码 | | +| type | num | 表情类型 | `1` `2` `3` | -### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_dynamic`对象 -> `desc`对象 -> `rich_text_nodes`数组中的对象 -> `goods`对象 +`data.items[n].modules.module_dynamic.desc.rich_text_nodes[o].goods`: -| 字段名 | 类型 | 内容 | 备注 | -|----------|-----|-------|-----| -| jump_url | str | 跳转URL | | -| type | num | `1` | | +| 字段 | 类型 | 内容 | 备注 | +| --- | --- | --- | --- | +| jump_url | str | 跳转URL | | +| type | num | `1` | | -### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_dynamic`对象 -> `major`对象 +`data.items[n].modules.module_dynamic.major`: -| 字段名 | 类型 | 内容 | 备注 | -|------------|-----|--------|-------------------------| -| type | str | 动态主体类型 | [动态主体类型](./dynamic_enum.md#动态主体类型) | -| ugc_season | obj | 合集信息 | `MAJOR_TYPE_UGC_SEASON` | -| article | obj | 专栏类型 | `MAJOR_TYPE_ARTICLE` | -| draw | obj | 带图动态 | `MAJOR_TYPE_DRAW` | -| archive | obj | 视频信息 | `MAJOR_TYPE_ARCHIVE` | -| live_rcmd | obj | 直播状态 | `MAJOR_TYPE_LIVE_RCMD` | -| common | obj | 一般类型 | `MAJOR_TYPE_COMMON` | -| pgc | obj | 剧集信息 | `MAJOR_TYPE_PGC` | -| courses | obj | 课程信息 | `MAJOR_TYPE_COURSES` | -| music | obj | 音频信息 | `MAJOR_TYPE_MUSIC` | -| opus | obj | 图文动态 | `MAJOR_TYPE_OPUS` | -| live | obj | | | -| none | obj | 动态失效 | `MAJOR_TYPE_NONE` | +| 字段 | 类型 | 内容 | 备注 | +| --- | --- | --- | --- | +| type | str | 动态主体类型 | [动态主体类型](./dynamic_enum.md#动态主体类型) | +| ugc_season | obj | 合集信息 | `MAJOR_TYPE_UGC_SEASON` | +| article | obj | 专栏类型 | `MAJOR_TYPE_ARTICLE` | +| draw | obj | 带图动态 | `MAJOR_TYPE_DRAW` | +| archive | obj | 视频信息 | `MAJOR_TYPE_ARCHIVE` | +| live_rcmd | obj | 直播状态 | `MAJOR_TYPE_LIVE_RCMD` | +| common | obj | 一般类型 | `MAJOR_TYPE_COMMON` | +| pgc | obj | 剧集信息 | `MAJOR_TYPE_PGC` | +| courses | obj | 课程信息 | `MAJOR_TYPE_COURSES` | +| music | obj | 音频信息 | `MAJOR_TYPE_MUSIC` | +| opus | obj | 图文动态 | `MAJOR_TYPE_OPUS` | +| live | obj | | | +| none | obj | 动态失效 | `MAJOR_TYPE_NONE` | -### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_dynamic`对象 -> `major`对象 -> `ugc_season`对象 +`data.items[n].modules.module_dynamic.major.ugc_season`: -| 字段名 | 类型 | 内容 | 备注 | -|-----------------|-----|-------|-----| -| aid | num | 视频AV号 | | -| badge | obj | 角标信息 | | -| cover | str | 视频封面 | | -| desc | str | 视频简介 | | -| disable_preview | num | `0` | | -| duration_text | str | 时长 | | -| jump_url | str | 跳转URL | | -| stat | obj | 统计信息 | | -| title | str | 视频标题 | | +| 字段 | 类型 | 内容 | 备注 | +| --- | --- | --- | --- | +| aid | num | 视频AV号 | | +| badge | obj | 角标信息 | | +| cover | str | 视频封面 | | +| desc | str | 视频简介 | | +| disable_preview | num | `0` | | +| duration_text | str | 时长 | | +| jump_url | str | 跳转URL | | +| stat | obj | 统计信息 | | +| title | str | 视频标题 | | -### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_dynamic`对象 -> `major`对象 -> `ugc_season`对象 -> `badge`对象 +`data.items[n].modules.module_dynamic.major.ugc_season.badge`: -| 字段名 | 类型 | 内容 | 备注 | -|----------|-----|------|-----| -| bg_color | str | 背景颜色 | | -| color | str | 字体颜色 | | -| text | str | 角标文案 | | +| 字段 | 类型 | 内容 | 备注 | +| --- | --- | --- | --- | +| bg_color | str | 背景颜色 | | +| color | str | 字体颜色 | | +| text | str | 角标文案 | | -### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_dynamic`对象 -> `major`对象 -> `ugc_season`对象 -> `stat`对象 +`data.items[n].modules.module_dynamic.major.ugc_season.stat`: -| 字段名 | 类型 | 内容 | 备注 | -|---------|-----|-----|-----| -| danmaku | str | 弹幕数 | | -| play | str | 播放数 | | +| 字段 | 类型 | 内容 | 备注 | +| --- | --- | --- | --- | +| danmaku | str | 弹幕数 | | +| play | str | 播放数 | | -### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_dynamic`对象 -> `major`对象 -> `article`对象 +`data.items[n].modules.module_dynamic.major.article`: -| 字段名 | 类型 | 内容 | 备注 | -|----------|-------|--------|------| -| covers | array | 封面图数组 | 最多三张 | -| desc | str | 文章摘要 | | -| id | num | 文章CV号 | | -| jump_url | str | 文章跳转地址 | | -| label | str | 文章阅读量 | | -| title | str | 文章标题 | | +| 字段 | 类型 | 内容 | 备注 | +| --- | --- | --- | --- | +| covers | array | 封面图数组 | 最多三张 | +| desc | str | 文章摘要 | | +| id | num | 文章CV号 | | +| jump_url | str | 文章跳转地址 | | +| label | str | 文章阅读量 | | +| title | str | 文章标题 | | -### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_dynamic`对象 -> `major`对象 -> `draw`对象 +`data.items[n].modules.module_dynamic.major.draw`: -| 字段名 | 类型 | 内容 | 备注 | -|-------|-------|--------|-----| -| id | num | 对应相簿id | | -| items | array | 图片信息列表 | | +| 字段 | 类型 | 内容 | 备注 | +| --- | --- | --- | --- | +| id | num | 对应相簿id | | +| items | array | 图片信息列表 | | -### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_dynamic`对象 -> `major`对象 -> `draw`对象 -> `items`数组中的对象 +`data.items[n].modules.module_dynamic.major.draw.items[o]`: -| 字段名 | 类型 | 内容 | 备注 | -|--------|-------|-------|------| -| height | num | 图片高度 | | -| size | num | 图片大小 | 单位KB | -| src | str | 图片URL | | -| tags | array | | | -| width | num | 图片宽度 | | +| 字段 | 类型 | 内容 | 备注 | +| --- | --- | --- | --- | +| height | num | 图片高度 | | +| size | num | 图片大小 | 单位KB | +| src | str | 图片URL | | +| tags | array | | | +| width | num | 图片宽度 | | -### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_dynamic`对象 -> `major`对象 -> `archive`对象 +`data.items[n].modules.module_dynamic.major.archive`: -| 字段名 | 类型 | 内容 | 备注 | -|-----------------|-----|--------|-----| -| aid | str | 视频AV号 | | -| badge | obj | 角标信息 | | -| bvid | str | 视频BVID | | -| cover | str | 视频封面 | | -| desc | str | 视频简介 | | -| disable_preview | num | `0` | | -| duration_text | str | 视频长度 | | -| jump_url | str | 跳转URL | | -| stat | obj | 统计信息 | | -| title | str | 视频标题 | | -| type | num | `1` | | +| 字段 | 类型 | 内容 | 备注 | +| --- | --- | --- | --- | +| aid | str | 视频AV号 | | +| badge | obj | 角标信息 | | +| bvid | str | 视频BVID | | +| cover | str | 视频封面 | | +| desc | str | 视频简介 | | +| disable_preview | num | `0` | | +| duration_text | str | 视频长度 | | +| jump_url | str | 跳转URL | | +| stat | obj | 统计信息 | | +| title | str | 视频标题 | | +| type | num | `1` | | -### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_dynamic`对象 -> `major`对象 -> `archive`对象 -> `badge`对象 +`data.items[n].modules.module_dynamic.major.archive.badge`: -| 字段名 | 类型 | 内容 | 备注 | -|----------|-----|------|-----| -| bg_color | str | 背景颜色 | | -| color | str | 字体颜色 | | -| text | str | 角标文案 | | +| 字段 | 类型 | 内容 | 备注 | +| --- | --- | --- | --- | +| bg_color | str | 背景颜色 | | +| color | str | 字体颜色 | | +| text | str | 角标文案 | | -### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_dynamic`对象 -> `major`对象 -> `archive`对象 -> `stat`对象 +`data.items[n].modules.module_dynamic.major.archive.stat`: -| 字段名 | 类型 | 内容 | 备注 | -|---------|-----|-----|-----| -| danmaku | str | 弹幕数 | | -| play | str | 播放数 | | +| 字段 | 类型 | 内容 | 备注 | +| --- | --- | --- | --- | +| danmaku | str | 弹幕数 | | +| play | str | 播放数 | | -### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_dynamic`对象 -> `major`对象 -> `live_rcmd`对象 +`data.items[n].modules.module_dynamic.major.live_rcmd`: -| 字段名 | 类型 | 内容 | 备注 | -|--------------|-----|-----------|-----| -| content | str | 直播间内容JSON | | -| reserve_type | num | `0` | | +| 字段 | 类型 | 内容 | 备注 | +| --- | --- | --- | --- | +| content | str | 直播间内容JSON | | +| reserve_type | num | `0` | | -### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_dynamic`对象 -> `major`对象 -> `common`对象 +`data.items[n].modules.module_dynamic.major.common`: -| 字段名 | 类型 | 内容 | 备注 | -|-----------|-----|--------|-----| -| badge | obj | 角标信息 | | -| biz_type | num | `0` | | -| cover | str | 左侧图片封面 | | -| desc | str | 右侧描述信息 | | -| id | str | | | -| jump_url | str | 跳转地址 | | -| label | str | `空串` | | -| sketch_id | str | | | -| style | num | `1` | | -| title | str | 右侧标题 | | +| 字段 | 类型 | 内容 | 备注 | +| --- | --- | --- | --- | +| badge | obj | 角标信息 | | +| biz_type | num | `0` | | +| cover | str | 左侧图片封面 | | +| desc | str | 右侧描述信息 | | +| id | str | | | +| jump_url | str | 跳转地址 | | +| label | str | `空串` | | +| sketch_id | str | | | +| style | num | `1` | | +| title | str | 右侧标题 | | -### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_dynamic`对象 -> `major`对象 -> `common`对象 -> `badge`对象 +`data.items[n].modules.module_dynamic.major.common.badge`: -| 字段名 | 类型 | 内容 | 备注 | -|----------|-----|------|-----| -| bg_color | str | `空串` | | -| color | str | `空串` | | -| text | str | `空串` | | +| 字段 | 类型 | 内容 | 备注 | +| --- | --- | --- | --- | +| bg_color | str | `空串` | | +| color | str | `空串` | | +| text | str | `空串` | | -### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_dynamic`对象 -> `major`对象 -> `pgc`对象 +`data.items[n].modules.module_dynamic.major.pgc`: -| 字段名 | 类型 | 内容 | 备注 | -|-----------|-----|------------|--------------------------------------------------------------| -| badge | obj | 角标信息 | | -| cover | str | 视频封面 | | -| epid | num | 分集EpId | | -| jump_url | str | 跳转URL | | -| season_id | num | 剧集SeasonId | | -| stat | obj | 统计信息 | | -| sub_type | num | 剧集类型 | 1:番剧
2:电影
3:纪录片
4:国创
5:电视剧
6:漫画
7:综艺 | -| title | str | 视频标题 | | -| type | num | `2` | | +| 字段 | 类型 | 内容 | 备注 | +| --- | --- | --- | --- | +| badge | obj | 角标信息 | | +| cover | str | 视频封面 | | +| epid | num | 分集EpId | | +| jump_url | str | 跳转URL | | +| season_id | num | 剧集SeasonId | | +| stat | obj | 统计信息 | | +| sub_type | num | 剧集类型 | 1:番剧
2:电影
3:纪录片
4:国创
5:电视剧
6:漫画
7:综艺 | +| title | str | 视频标题 | | +| type | num | `2` | | -### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_dynamic`对象 -> `major`对象 -> `pgc`对象 -> `badge`对象 +`data.items[n].modules.module_dynamic.major.pgc.badge`: -| 字段名 | 类型 | 内容 | 备注 | -|----------|-----|------|-----| -| bg_color | str | 背景颜色 | | -| color | str | 字体颜色 | | -| text | str | 角标文案 | | +| 字段 | 类型 | 内容 | 备注 | +| --- | --- | --- | --- | +| bg_color | str | 背景颜色 | | +| color | str | 字体颜色 | | +| text | str | 角标文案 | | -### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_dynamic`对象 -> `major`对象 -> `pgc`对象 -> `stat`对象 +`data.items[n].modules.module_dynamic.major.pgc.stat`: -| 字段名 | 类型 | 内容 | 备注 | -|---------|-----|-----|-----| -| danmaku | str | 弹幕数 | | -| play | str | 播放数 | | +| 字段 | 类型 | 内容 | 备注 | +| --- | --- | --- | --- | +| danmaku | str | 弹幕数 | | +| play | str | 播放数 | | -### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_dynamic`对象 -> `major`对象 -> `courses`对象 +`data.items[n].modules.module_dynamic.major.courses`: -| 字段名 | 类型 | 内容 | 备注 | -|-----------|-----|--------|-----| -| badge | obj | 角标信息 | | -| cover | str | 封面图URL | | -| desc | str | 更新状态描述 | | -| id | num | 课程id | | -| jump_url | str | 跳转URL | | -| sub_title | str | 课程副标题 | | -| title | str | 课程标题 | | +| 字段 | 类型 | 内容 | 备注 | +| --- | --- | --- | --- | +| badge | obj | 角标信息 | | +| cover | str | 封面图URL | | +| desc | str | 更新状态描述 | | +| id | num | 课程id | | +| jump_url | str | 跳转URL | | +| sub_title | str | 课程副标题 | | +| title | str | 课程标题 | | -### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_dynamic`对象 -> `major`对象 -> `courses`对象 -> `badge`对象 +`data.items[n].modules.module_dynamic.major.courses.badge`: -| 字段名 | 类型 | 内容 | 备注 | -|----------|-----|------|-----| -| bg_color | str | 背景颜色 | | -| color | str | 字体颜色 | | -| text | str | 角标文案 | | +| 字段 | 类型 | 内容 | 备注 | +| --- | --- | --- | --- | +| bg_color | str | 背景颜色 | | +| color | str | 字体颜色 | | +| text | str | 角标文案 | | -### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_dynamic`对象 -> `major`对象 -> `music`对象 +`data.items[n].modules.module_dynamic.major.music`: -| 字段名 | 类型 | 内容 | 备注 | -|----------|-----|--------|-----| -| cover | str | 音频封面 | | -| id | num | 音频AUID | | -| jump_url | str | 跳转URL | | -| label | str | 音频分类 | | -| title | str | 音频标题 | | +| 字段 | 类型 | 内容 | 备注 | +| --- | --- | --- | --- | +| cover | str | 音频封面 | | +| id | num | 音频AUID | | +| jump_url | str | 跳转URL | | +| label | str | 音频分类 | | +| title | str | 音频标题 | | -### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_dynamic`对象 -> `major`对象 -> `opus`对象 +`data.items[n].modules.module_dynamic.major.opus`: -| 字段名 | 类型 | 内容 | 备注 | -|---------------|------|--------|-----| -| fold_action | array | 展开收起 | | -| jump_url | str | 跳转URL | | -| pics | array | 图片信息 | | -| summary | obj | 动态内容 | | -| title | str | 动态标题 | 没有标题时为null | +| 字段 | 类型 | 内容 | 备注 | +| --- | --- | --- | --- | +| fold_action | array | 展开收起 | | +| jump_url | str | 跳转URL | | +| pics | array | 图片信息 | | +| summary | obj | 动态内容 | | +| title | str | 动态标题 | 没有标题时为null | -### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_dynamic`对象 -> `major`对象 -> `opus`对象 -> `summary`对象 +`data.items[n].modules.module_dynamic.major.opus.summary`: -| 字段名 | 类型 | 内容 | 备注 | -|-----------------|-------|---------|--------------------------------------| +| 字段 | 类型 | 内容 | 备注 | +| --- | --- | --- | --- | | rich_text_nodes | array | 富文本节点列表 | 和`desc`对象中的`rich_text_nodes`数组结构一样 | -| text | str | 评论内容 | | +| text | str | 评论内容 | | -### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_dynamic`对象 -> `major`对象 -> `live`对象 +`data.items[n].modules.module_dynamic.major.live`: -| 字段名 | 类型 | 内容 | 备注 | -|--------------|-----|----------|-------------------| -| badge | obj | 角标信息 | | -| cover | str | 直播封面 | | -| desc_first | str | 直播主分区名称 | | -| desc_second | str | 观看人数 | | -| id | num | 直播间id | | -| jump_url | str | 直播间跳转URL | | -| live_state | num | 直播状态 | 0:直播结束
1:正在直播 | -| reserve_type | num | `0` | | -| title | str | 直播间标题 | | +| 字段 | 类型 | 内容 | 备注 | +| --- | --- | --- | --- | +| badge | obj | 角标信息 | | +| cover | str | 直播封面 | | +| desc_first | str | 直播主分区名称 | | +| desc_second | str | 观看人数 | | +| id | num | 直播间id | | +| jump_url | str | 直播间跳转URL | | +| live_state | num | 直播状态 | 0:直播结束
1:正在直播 | +| reserve_type | num | `0` | | +| title | str | 直播间标题 | | -### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_dynamic`对象 -> `major`对象 -> `live`对象 -> `badge`对象 +`data.items[n].modules.module_dynamic.major.live.badge`: -| 字段名 | 类型 | 内容 | 备注 | -|----------|-----|------|-----| -| bg_color | str | 背景颜色 | | -| color | str | 字体颜色 | | -| text | str | 角标文案 | | +| 字段 | 类型 | 内容 | 备注 | +| --- | --- | --- | --- | +| bg_color | str | 背景颜色 | | +| color | str | 字体颜色 | | +| text | str | 角标文案 | | -### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_dynamic`对象 -> `major`对象 -> `none`对象 +`data.items[n].modules.module_dynamic.major.none`: -| 字段名 | 类型 | 内容 | 备注 | -|------|-----|----------|-----| -| tips | str | 动态失效显示文案 | deprecated? | +| 字段 | 类型 | 内容 | 备注 | +| --- | --- | --- | --- | +| tips | str | 动态失效显示文案 | deprecated? | -### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_dynamic`对象 -> `topic`对象 +`data.items[n].modules.module_dynamic.topic`: -| 字段名 | 类型 | 内容 | 备注 | -|----------|-----|-------|-----| -| id | num | 话题id | | -| jump_url | str | 跳转URL | | -| name | str | 话题名称 | | +| 字段 | 类型 | 内容 | 备注 | +| --- | --- | --- | --- | +| id | num | 话题id | | +| jump_url | str | 跳转URL | | +| name | str | 话题名称 | | -### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_more`对象 +`data.items[n].modules.module_more`: -| 字段名 | 类型 | 内容 | 备注 | -|-------------------|-------|---------|-----| -| three_point_items | array | 右上角三点菜单 | | +| 字段 | 类型 | 内容 | 备注 | +| --- | --- | --- | --- | +| three_point_items | array | 右上角三点菜单 | | -### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_more`对象 -> `three_point_items`数组中的对象 +`data.items[n].modules.module_more.three_point_items[o]`: -| 字段名 | 类型 | 内容 | 备注 | -|--------|-----|-------|------------| -| label | str | 显示文本 | | -| type | str | 类型 | | -| modal | obj | 弹出框信息 | 删除动态时弹出 | -| params | obj | 参数 | 置顶/取消置顶时使用 | +| 字段 | 类型 | 内容 | 备注 | +| --- | --- | --- | --- | +| label | str | 显示文本 | | +| type | str | 类型 | 参见 [动态主体类型](dynamic_enum.md#动态主体类型) | +| modal | obj | 弹出框信息 | 删除动态时弹出 | +| params | obj | 参数 | 置顶/取消置顶时使用 | -### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_more`对象 -> `three_point_items`数组中的对象 -> `modal`对象 +`data.items[n].modules.module_more.three_point_items[o].modal`: -| 字段名 | 类型 | 内容 | 备注 | -|---------|-----|------|---------------| -| cancel | str | 取消按钮 | `我点错了` | -| confirm | str | 确认按钮 | `删除` | +| 字段 | 类型 | 内容 | 备注 | +| --- | --- | --- | --- | +| cancel | str | 取消按钮 | `我点错了` | +| confirm | str | 确认按钮 | `删除` | | content | str | 提示内容 | `确定要删除此条动态吗?` | -| title | str | 标题 | `删除动态` | +| title | str | 标题 | `删除动态` | -### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_more`对象 -> `three_point_items`数组中的对象 -> `params`对象 +`data.items[n].modules.module_more.three_point_items[o].params`: -| 字段名 | 类型 | 内容 | 备注 | -|------------|------|--------------|-----| -| dynamic_id | str | 当前动态ID | deprecated? | -| status | bool | 当前动态是否处于置顶状态 | deprecated? | +| 字段 | 类型 | 内容 | 备注 | +| --- | --- | --- | --- | +| dynamic_id | str | 当前动态ID | deprecated? | +| status | bool | 当前动态是否处于置顶状态 | deprecated? | -### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_stat`对象 +`data.items[n].modules.module_stat`: -| 字段名 | 类型 | 内容 | 备注 | -|---------|-----|------|-----| -| comment | obj | 评论数据 | | -| forward | obj | 转发数据 | | -| like | obj | 点赞数据 | | +| 字段 | 类型 | 内容 | 备注 | +| --- | --- | --- | --- | +| comment | obj | 评论数据 | | +| forward | obj | 转发数据 | | +| like | obj | 点赞数据 | | -### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_stat`对象 -> `comment`对象 +`data.items[n].modules.module_stat.comment`: -| 字段名 | 类型 | 内容 | 备注 | -|-----------|------|---------|---------------| -| count | num | 评论数 | | -| forbidden | bool | `false` | | -| hidden | bool | 是否隐藏 | 直播类型动态会隐藏回复功能 | +| 字段 | 类型 | 内容 | 备注 | +| --- | --- | --- | --- | +| count | num | 评论数 | | +| forbidden | bool | `false` | | +| hidden | bool | 是否隐藏 | 直播类型动态会隐藏回复功能 | -### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_stat`对象 -> `forward`对象 +`data.items[n].modules.module_stat.forward`: -| 字段名 | 类型 | 内容 | 备注 | -|-----------|------|---------|-----| -| count | num | 转发数 | | -| forbidden | bool | `false` | | +| 字段 | 类型 | 内容 | 备注 | +| --- | --- | --- | --- | +| count | num | 转发数 | | +| forbidden | bool | `false` | | -### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_stat`对象 -> `like`对象 +`data.items[n].modules.module_stat.like`: -| 字段名 | 类型 | 内容 | 备注 | -|-----------|------|----------|-----| -| count | num | 点赞数 | | -| forbidden | bool | `false` | | -| status | bool | 当前用户是否点赞 | | +| 字段 | 类型 | 内容 | 备注 | +| --- | --- | --- | --- | +| count | num | 点赞数 | | +| forbidden | bool | `false` | | +| status | bool | 当前用户是否点赞 | | -### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_interaction`对象 +`data.items[n].modules.module_interaction`: -| 字段名 | 类型 | 内容 | 备注 | -|-------|-------|------|-----| -| items | array | 信息列表 | | +| 字段 | 类型 | 内容 | 备注 | +| --- | --- | --- | --- | +| items | array | 信息列表 | | -### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_interaction`对象 -> `items`数组中的对象 +`data.items[n].modules.module_interaction.items`数组中的: -| 字段名 | 类型 | 内容 | 备注 | -|------|-----|---------|-------------------| -| desc | obj | 点赞/评论信息 | | -| type | num | 类型 | 0:点赞信息
1:评论信息 | +| 字段 | 类型 | 内容 | 备注 | +| --- | --- | --- | --- | +| desc | obj | 点赞/评论信息 | | +| type | num | 类型 | 0:点赞信息
1:评论信息 | -### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_interaction`对象 -> `items`数组中的对象 -> `desc`对象 +`data.items[n].modules.module_interaction.items[o].desc`: -| 字段名 | 类型 | 内容 | 备注 | -|-----------------|-------|---------|--------------------------------------| +| 字段 | 类型 | 内容 | 备注 | +| --- | --- | --- | --- | | rich_text_nodes | array | 富文本节点列表 | [富文本节点类型](./dynamic_enum.md#富文本节点类型) | -| text | str | 评论内容 | | +| text | str | 评论内容 | | -### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_interaction`对象 -> `items`数组中的对象 -> `desc`对象 -> `rich_text_nodes`数组中的对象 +`data.items[n].modules.module_interaction.items[o].desc.rich_text_nodes`数组中的: -| 字段名 | 类型 | 内容 | 备注 | -|-----------|-----|---------|--------------------------------------| -| orig_text | str | 原始文本 | | -| rid | str | 关联ID | 用户UID | -| text | str | 替换后文本 | | -| type | str | 富文本节点类型 | [富文本节点类型](./dynamic_enum.md#富文本节点类型) | -| emoji | obj | 表情信息 | | +| 字段 | 类型 | 内容 | 备注 | +| --- | --- | --- | --- | +| orig_text | str | 原始文本 | | +| rid | str | 关联ID | 用户UID | +| text | str | 替换后文本 | | +| type | str | 富文本节点类型 | [富文本节点类型](./dynamic_enum.md#富文本节点类型) | +| emoji | obj | 表情信息 | | -### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_interaction`对象 -> `items`数组中的对象 -> `desc`对象 -> `rich_text_nodes`数组中的对象 -> `emoji`对象 +`data.items[n].modules.module_interaction.items[o].desc.rich_text_nodes[n].emoji`: -| 字段名 | 类型 | 内容 | 备注 | -|----------|-----|---------|-------------| -| icon_url | str | 表情图片URL | | -| size | num | 表情尺寸 | `1` `2` | -| text | str | 表情的文字代码 | | -| type | num | 表情类型 | `1` `2` `3` | +| 字段 | 类型 | 内容 | 备注 | +| --- | --- | --- | --- | +| icon_url | str | 表情图片URL | | +| size | num | 表情尺寸 | `1` `2` | +| text | str | 表情的文字代码 | | +| type | num | 表情类型 | `1` `2` `3` | -### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_fold`对象 +`data.items[n].modules.module_fold`: -| 字段名 | 类型 | 内容 | 备注 | -|-----------|-------|------------|------------| -| ids | array | 被折叠的动态id列表 | | -| statement | str | 显示文案 | 例:展开x条相关动态 | -| type | num | `1` | | -| users | array | `空数组` | | +| 字段 | 类型 | 内容 | 备注 | +| --- | --- | --- | --- | +| ids | array | 被折叠的动态id列表 | | +| statement | str | 显示文案 | 例:展开x条相关动态 | +| type | num | `1` | | +| users | array | `空数组` | | -### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_dispute`对象 +`data.items[n].modules.module_dispute`: -| 字段名 | 类型 | 内容 | 备注 | -|----------|-----|------|------------------| -| desc | str | | | -| jump_url | str | | | -| title | str | 提醒文案 | 例:视频内含有危险行为,请勿模仿 | +| 字段 | 类型 | 内容 | 备注 | +| --- | --- | --- | --- | +| desc | str | | | +| jump_url | str | | | +| title | str | 提醒文案 | 例:视频内含有危险行为,请勿模仿 | -### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_tag`对象 +`data.items[n].modules.module_tag`: -| 字段名 | 类型 | 内容 | 备注 | -|----------|-----|------|------------------| -| text | str | '置顶' | 置顶动态出现这个对象,否则没有 | +| 字段 | 类型 | 内容 | 备注 | +| --- | --- | --- | --- | +| text | str | '置顶' | 置顶动态出现这个对象,否则没有 | -## 请求示例 +**示例:** ```shell curl -L -X GET 'https://api.bilibili.com/x/polymer/web-dynamic/v1/feed/all?type=all' \ -H 'Cookie: SESSDATA=xxx' ``` -## 响应示例 -
-点击查看 +查看响应示例: ```json { - "code": 0, - "message": "0", - "ttl": 1, - "data": { - "has_more": true, - "items": [ - { - "basic": { - "comment_id_str": "474518278", - "comment_type": 1, - "like_icon": { - "action_url": "", - "end_url": "", - "id": 0, - "start_url": "" + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "has_more": true, + "items": [ + { + "basic": { + "comment_id_str": "112981396619958", + "comment_type": 1, + "like_icon": { + "action_url": "", + "end_url": "", + "id": 0, + "start_url": "" + }, + "rid_str": "112981396619958" + }, + "id_str": "966887968322093078", + "modules": { + "module_author": { + "avatar": { + "container_size": { + "height": 1.35, + "width": 1.35 + }, + "fallback_layers": { + "is_critical_group": true, + "layers": [ + { + "general_spec": { + "pos_spec": { + "axis_x": 0.675, + "axis_y": 0.675, + "coordinate_pos": 2 + }, + "render_spec": { + "opacity": 1 + }, + "size_spec": { + "height": 1, + "width": 1 + } }, - "rid_str": "474518278" - }, - "id_str": "722806776626413588", - "modules": { - "module_author": { - "face": "https://i2.hdslb.com/bfs/face/28a0eede5cfd709d3dbed5d66f951a5d35854ec8.jpg", - "face_nft": false, - "following": null, - "jump_url": "//space.bilibili.com/2062760/dynamic", - "label": "", - "mid": 2062760, - "name": "一把近战都不给六花", - "official_verify": { - "desc": "", - "type": -1 - }, - "pendant": { - "expire": 0, - "image": "", - "image_enhance": "", - "image_enhance_frame": "", - "name": "", - "pid": 0 - }, - "pub_action": "投稿了视频", - "pub_location_text": "", - "pub_time": "刚刚", - "pub_ts": 1667129967, - "type": "AUTHOR_TYPE_NORMAL", - "vip": { - "avatar_subscript": 1, - "avatar_subscript_url": "", - "due_date": 1678723200000, - "label": { - "bg_color": "#FB7299", - "bg_style": 1, - "border_color": "", - "img_label_uri_hans": "", - "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png", - "img_label_uri_hant": "", - "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png", - "label_theme": "annual_vip", - "path": "", - "text": "年度大会员", - "text_color": "#FFFFFF", - "use_img_label": true - }, - "nickname_color": "#FB7299", - "status": 1, - "theme_type": 0, - "type": 2 - } - }, - "module_dynamic": { - "additional": null, - "desc": null, - "major": { - "archive": { - "aid": "474518278", - "badge": { - "bg_color": "#FB7299", - "color": "#FFFFFF", - "text": "投稿视频" - }, - "bvid": "BV1vK411U7de", - "cover": "http://i1.hdslb.com/bfs/archive/ea560a574ff303952e2f4ed23f03c835e67f78b0.jpg", - "desc": "直播间地址:https://www.twitch.tv/lvndmark\n直播信息(北京时间)\n开播时间:2022-10-30 05:15:31\n下播时间:2022-10-30 15:09:43\n本次直播流程:\n(录像:1638109399)\n1.Call of Duty: Modern Warfare II 9小时54分12秒", - "disable_preview": 0, - "duration_text": "9:54:23", - "jump_url": "//www.bilibili.com/video/BV1vK411U7de", - "stat": { - "danmaku": "0", - "play": "1" - }, - "title": "LVNDMARK 2022.10.30直播录像", - "type": 1 - }, - "type": "MAJOR_TYPE_ARCHIVE" - }, - "topic": null - }, - "module_fold": { - "ids": [ - "722805011403243538", - "722803306312761400" - ], - "statement": "展开2条相关动态", - "type": 1, - "users": [] - }, - "module_more": { - "three_point_items": [] - }, - "module_stat": { - "comment": { - "count": 0, - "forbidden": false - }, - "forward": { - "count": 0, - "forbidden": false - }, - "like": { - "count": 0, - "forbidden": false, - "status": false - } - } - }, - "type": "DYNAMIC_TYPE_AV", - "visible": true - }, - { - "basic": { - "comment_id_str": "474572551", - "comment_type": 1, - "like_icon": { - "action_url": "", - "end_url": "", - "id": 0, - "start_url": "" - }, - "rid_str": "474572551" - }, - "id_str": "722805011403243538", - "modules": { - "module_author": { - "face": "https://i2.hdslb.com/bfs/face/28a0eede5cfd709d3dbed5d66f951a5d35854ec8.jpg", - "face_nft": false, - "following": null, - "jump_url": "//space.bilibili.com/2062760/dynamic", - "label": "", - "mid": 2062760, - "name": "一把近战都不给六花", - "official_verify": { - "desc": "", - "type": -1 - }, - "pendant": { - "expire": 0, - "image": "", - "image_enhance": "", - "image_enhance_frame": "", - "name": "", - "pid": 0 - }, - "pub_action": "投稿了视频", - "pub_location_text": "", - "pub_time": "7分钟前", - "pub_ts": 1667129556, - "type": "AUTHOR_TYPE_NORMAL", - "vip": { - "avatar_subscript": 1, - "avatar_subscript_url": "", - "due_date": 1678723200000, - "label": { - "bg_color": "#FB7299", - "bg_style": 1, - "border_color": "", - "img_label_uri_hans": "", - "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png", - "img_label_uri_hant": "", - "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png", - "label_theme": "annual_vip", - "path": "", - "text": "年度大会员", - "text_color": "#FFFFFF", - "use_img_label": true - }, - "nickname_color": "#FB7299", - "status": 1, - "theme_type": 0, - "type": 2 - } - }, - "module_dynamic": { - "additional": null, - "desc": null, - "major": { - "archive": { - "aid": "474572551", - "badge": { - "bg_color": "#FB7299", - "color": "#FFFFFF", - "text": "投稿视频" - }, - "bvid": "BV1rK411U7CF", - "cover": "http://i0.hdslb.com/bfs/archive/68bb3cd4a84666ec3cdcd165d84b90e28bdc1cb8.jpg", - "desc": "直播间地址:https://www.twitch.tv/kinggeorge\n直播信息(北京时间)\n开播时间:2022-10-30 11:19:29\n下播时间:2022-10-30 17:41:46\n本次直播流程:\n(录像:1638390037)\n1.彩虹六号 5小时3分18秒\n2.Call of Duty: Modern Warfare II 1小时17分26秒\n3.彩虹六号 1分33秒", - "disable_preview": 0, - "duration_text": "6:22:24", - "jump_url": "//www.bilibili.com/video/BV1rK411U7CF", - "stat": { - "danmaku": "0", - "play": "10" - }, - "title": "KingGeorge 2022.10.30直播录像", - "type": 1 - }, - "type": "MAJOR_TYPE_ARCHIVE" - }, - "topic": null - }, - "module_more": { - "three_point_items": [] - }, - "module_stat": { - "comment": { - "count": 0, - "forbidden": false - }, - "forward": { - "count": 0, - "forbidden": false - }, - "like": { - "count": 0, - "forbidden": false, - "status": false - } - } - }, - "type": "DYNAMIC_TYPE_AV", - "visible": false - }, - { - "basic": { - "comment_id_str": "559593848", - "comment_type": 1, - "like_icon": { - "action_url": "", - "end_url": "", - "id": 0, - "start_url": "" - }, - "rid_str": "559593848" - }, - "id_str": "722803306312761400", - "modules": { - "module_author": { - "face": "https://i2.hdslb.com/bfs/face/28a0eede5cfd709d3dbed5d66f951a5d35854ec8.jpg", - "face_nft": false, - "following": null, - "jump_url": "//space.bilibili.com/2062760/dynamic", - "label": "", - "mid": 2062760, - "name": "一把近战都不给六花", - "official_verify": { - "desc": "", - "type": -1 - }, - "pendant": { - "expire": 0, - "image": "", - "image_enhance": "", - "image_enhance_frame": "", - "name": "", - "pid": 0 - }, - "pub_action": "投稿了视频", - "pub_location_text": "", - "pub_time": "13分钟前", - "pub_ts": 1667129159, - "type": "AUTHOR_TYPE_NORMAL", - "vip": { - "avatar_subscript": 1, - "avatar_subscript_url": "", - "due_date": 1678723200000, - "label": { - "bg_color": "#FB7299", - "bg_style": 1, - "border_color": "", - "img_label_uri_hans": "", - "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png", - "img_label_uri_hant": "", - "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png", - "label_theme": "annual_vip", - "path": "", - "text": "年度大会员", - "text_color": "#FFFFFF", - "use_img_label": true - }, - "nickname_color": "#FB7299", - "status": 1, - "theme_type": 0, - "type": 2 - } - }, - "module_dynamic": { - "additional": null, - "desc": null, - "major": { - "archive": { - "aid": "559593848", - "badge": { - "bg_color": "#FB7299", - "color": "#FFFFFF", - "text": "投稿视频" - }, - "bvid": "BV1de4y127n3", - "cover": "http://i2.hdslb.com/bfs/archive/f55f3970acdcd0c6d86459f3af40031d71484c32.jpg", - "desc": "直播间地址:https://www.twitch.tv/mohr\n直播信息(北京时间)\n开播时间:2022-10-30 08:51:26\n下播时间:2022-10-30 15:14:06\n本次直播流程:\n(录像:1638276178)\n1.Overwatch 2 6小时22分40秒", - "disable_preview": 0, - "duration_text": "6:22:47", - "jump_url": "//www.bilibili.com/video/BV1de4y127n3", - "stat": { - "danmaku": "0", - "play": "9" - }, - "title": "Mohr 2022.10.30直播录像", - "type": 1 - }, - "type": "MAJOR_TYPE_ARCHIVE" - }, - "topic": null - }, - "module_more": { - "three_point_items": [] - }, - "module_stat": { - "comment": { - "count": 0, - "forbidden": false - }, - "forward": { - "count": 0, - "forbidden": false - }, - "like": { - "count": 2, - "forbidden": false, - "status": false - } - } - }, - "type": "DYNAMIC_TYPE_AV", - "visible": false - }, - { - "basic": { - "comment_id_str": "517005457", - "comment_type": 1, - "like_icon": { - "action_url": "", - "end_url": "", - "id": 0, - "start_url": "" - }, - "rid_str": "517005457" - }, - "id_str": "722806471697367073", - "modules": { - "module_author": { - "face": "https://i2.hdslb.com/bfs/face/008605a75853dac76c15b2c15bd756f4de77fa77.jpg", - "face_nft": false, - "following": true, - "jump_url": "//space.bilibili.com/625662374/dynamic", - "label": "", - "mid": 625662374, - "name": "萌小希的喵和汪", - "official_verify": { - "desc": "", - "type": 0 - }, - "pendant": { - "expire": 0, - "image": "", - "image_enhance": "", - "image_enhance_frame": "", - "name": "", - "pid": 0 - }, - "pub_action": "投稿了视频", - "pub_location_text": "", - "pub_time": "1分钟前", - "pub_ts": 1667129896, - "type": "AUTHOR_TYPE_NORMAL", - "vip": { - "avatar_subscript": 1, - "avatar_subscript_url": "", - "due_date": 1710432000000, - "label": { - "bg_color": "#FB7299", - "bg_style": 1, - "border_color": "", - "img_label_uri_hans": "", - "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png", - "img_label_uri_hant": "", - "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png", - "label_theme": "annual_vip", - "path": "", - "text": "年度大会员", - "text_color": "#FFFFFF", - "use_img_label": true - }, - "nickname_color": "#FB7299", - "status": 1, - "theme_type": 0, - "type": 2 - } - }, - "module_dynamic": { - "additional": null, - "desc": { - "rich_text_nodes": [ - { - "orig_text": "有这么一群小可爱陪着,居家也快乐", - "text": "有这么一群小可爱陪着,居家也快乐", - "type": "RICH_TEXT_NODE_TYPE_TEXT" - } - ], - "text": "有这么一群小可爱陪着,居家也快乐" - }, - "major": { - "archive": { - "aid": "517005457", - "badge": { - "bg_color": "#FB7299", - "color": "#FFFFFF", - "text": "投稿视频" - }, - "bvid": "BV1Yg411z72M", - "cover": "http://i0.hdslb.com/bfs/archive/c4a09aaf15d225bb14a884f57c68ebb7fda9bbab.jpg", - "desc": "-", - "disable_preview": 0, - "duration_text": "01:40", - "jump_url": "//www.bilibili.com/video/BV1Yg411z72M", - "stat": { - "danmaku": "2", - "play": "242" - }, - "title": "有这么一群小可爱陪着,居家也快乐", - "type": 1 - }, - "type": "MAJOR_TYPE_ARCHIVE" - }, - "topic": null - }, - "module_more": { - "three_point_items": [ - { - "label": "取消关注", - "type": "THREE_POINT_FOLLOWING" - }, - { - "label": "举报", - "type": "THREE_POINT_REPORT" + "layer_config": { + "is_critical": true, + "tags": { + "AVATAR_LAYER": {}, + "GENERAL_CFG": { + "config_type": 1, + "general_config": { + "web_css_style": { + "borderRadius": "50%" } - ] - }, - "module_stat": { - "comment": { - "count": 4, - "forbidden": false - }, - "forward": { - "count": 1, - "forbidden": false - }, - "like": { - "count": 54, - "forbidden": false, - "status": false + } } - } - }, - "type": "DYNAMIC_TYPE_AV", - "visible": true - }, - { - "basic": { - "comment_id_str": "722706029592182807", - "comment_type": 17, - "like_icon": { - "action_url": "", - "end_url": "", - "id": 0, - "start_url": "" + } }, - "rid_str": "288329916321046804" - }, - "id_str": "722706029592182807", - "modules": { - "module_author": { - "face": "https://i0.hdslb.com/bfs/face/980cbd15c6b649eedc3942391d1d92e82f1c79ea.jpg", - "face_nft": false, - "following": true, - "jump_url": "//space.bilibili.com/19087539/dynamic", - "label": "", - "mid": 19087539, - "name": "永劫鉴挂达人张大狗", - "official_verify": { - "desc": "", - "type": -1 - }, - "pendant": { - "expire": 0, - "image": "", - "image_enhance": "", - "image_enhance_frame": "", - "name": "", - "pid": 0 - }, - "pub_action": "直播了", - "pub_location_text": "", - "pub_time": "", - "pub_ts": 1667106510, - "type": "AUTHOR_TYPE_NORMAL", - "vip": { - "avatar_subscript": 1, - "avatar_subscript_url": "", - "due_date": 1699545600000, - "label": { - "bg_color": "#FB7299", - "bg_style": 1, - "border_color": "", - "img_label_uri_hans": "", - "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png", - "img_label_uri_hant": "", - "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png", - "label_theme": "annual_vip", - "path": "", - "text": "年度大会员", - "text_color": "#FFFFFF", - "use_img_label": true - }, - "nickname_color": "#FB7299", - "status": 1, - "theme_type": 0, - "type": 2 + "resource": { + "res_image": { + "image_src": { + "placeholder": 6, + "remote": { + "bfs_style": "widget-layer-avatar", + "url": "https://i2.hdslb.com/bfs/face/b1c15dd8814d79e648008815517aa5ef50a2fb9c.jpg" + }, + "src_type": 1 } + }, + "res_type": 3 }, - "module_dynamic": { - "additional": null, - "desc": null, - "major": { - "live_rcmd": { - "content": "{\"live_play_info\":{\"play_type\":0,\"parent_area_id\":2,\"parent_area_name\":\"网游\",\"live_screen_type\":0,\"live_start_time\":1667105908,\"uid\":19087539,\"area_id\":666,\"area_name\":\"永劫无间\",\"watched_show\":{\"switch\":true,\"num\":898,\"text_small\":\"898\",\"text_large\":\"898人看过\",\"icon\":\"https://i0.hdslb.com/bfs/live/a725a9e61242ef44d764ac911691a7ce07f36c1d.png\",\"icon_location\":\"\",\"icon_web\":\"https://i0.hdslb.com/bfs/live/8d9d0f33ef8bf6f308742752d13dd0df731df19c.png\"},\"room_paid_type\":0,\"title\":\"进来学最快升级法 测试pve振刀榜第一\",\"live_status\":1,\"room_type\":0,\"cover\":\"http://i0.hdslb.com/bfs/live/new_room_cover/0e9bb02aa454a181f730f7d2657e7da5ef041193.jpg\",\"live_id\":\"288329916321046804\",\"pendants\":{\"list\":null},\"room_id\":7282964,\"link\":\"https://live.bilibili.com/7282964\",\"online\":7288},\"live_record_info\":null,\"type\":1}", - "reserve_type": 0 - }, - "type": "MAJOR_TYPE_LIVE_RCMD" - }, - "topic": null - }, - "module_more": { - "three_point_items": [ - { - "label": "取消关注", - "type": "THREE_POINT_FOLLOWING" - }, - { - "label": "举报", - "type": "THREE_POINT_REPORT" - } - ] - }, - "module_stat": { - "comment": { - "count": 0, - "forbidden": false, - "hidden": true - }, - "forward": { - "count": 0, - "forbidden": false - }, - "like": { - "count": 4, - "forbidden": false, - "status": false - } - } - }, - "type": "DYNAMIC_TYPE_LIVE_RCMD", - "visible": true - }, - { - "basic": { - "comment_id_str": "219546675", - "comment_type": 1, - "like_icon": { - "action_url": "", - "end_url": "", - "id": 0, - "start_url": "" - }, - "rid_str": "219546675" - }, - "id_str": "722806291310837767", - "modules": { - "module_author": { - "face": "https://i2.hdslb.com/bfs/face/6109447a6a1505cdde51e354e7df7e738584d104.jpg", - "face_nft": false, - "following": true, - "jump_url": "//space.bilibili.com/9583937/dynamic", - "label": "", - "mid": 9583937, - "name": "小米的狗", - "official_verify": { - "desc": "", - "type": -1 - }, - "pendant": { - "expire": 0, - "image": "", - "image_enhance": "", - "image_enhance_frame": "", - "name": "", - "pid": 0 - }, - "pub_action": "投稿了视频", - "pub_location_text": "", - "pub_time": "2分钟前", - "pub_ts": 1667129854, - "type": "AUTHOR_TYPE_NORMAL", - "vip": { - "avatar_subscript": 1, - "avatar_subscript_url": "", - "due_date": 1731859200000, - "label": { - "bg_color": "#FB7299", - "bg_style": 1, - "border_color": "", - "img_label_uri_hans": "", - "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png", - "img_label_uri_hant": "", - "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png", - "label_theme": "annual_vip", - "path": "", - "text": "年度大会员", - "text_color": "#FFFFFF", - "use_img_label": true - }, - "nickname_color": "#FB7299", - "status": 1, - "theme_type": 0, - "type": 2 - } - }, - "module_dynamic": { - "additional": null, - "desc": null, - "major": { - "archive": { - "aid": "219546675", - "badge": { - "bg_color": "#FB7299", - "color": "#FFFFFF", - "text": "投稿视频" - }, - "bvid": "BV1K8411Y7Nh", - "cover": "http://i1.hdslb.com/bfs/archive/ae71e071758b19ef5d920f3fe60c65fef6cdd0f7.jpg", - "desc": "-", - "disable_preview": 0, - "duration_text": "00:45", - "jump_url": "//www.bilibili.com/video/BV1K8411Y7Nh", - "stat": { - "danmaku": "0", - "play": "164" - }, - "title": "其实我们学校也没什么好羡慕的", - "type": 1 - }, - "type": "MAJOR_TYPE_ARCHIVE" - }, - "topic": null - }, - "module_more": { - "three_point_items": [ - { - "label": "取消关注", - "type": "THREE_POINT_FOLLOWING" - }, - { - "label": "举报", - "type": "THREE_POINT_REPORT" - } - ] - }, - "module_stat": { - "comment": { - "count": 3, - "forbidden": false - }, - "forward": { - "count": 0, - "forbidden": false - }, - "like": { - "count": 51, - "forbidden": false, - "status": false - } - } - }, - "type": "DYNAMIC_TYPE_AV", - "visible": true - }, - { - "basic": { - "comment_id_str": "774623127", - "comment_type": 1, - "like_icon": { - "action_url": "", - "end_url": "", - "id": 0, - "start_url": "" - }, - "rid_str": "774623127" - }, - "id_str": "722805290583457809", - "modules": { - "module_author": { - "face": "https://archive.biliimg.com/bfs/archive/2bc7c0b415e3af4158d71bad8a7fd343243d968a.jpg", - "face_nft": false, - "following": false, - "jump_url": "//www.bilibili.com/video/av774623127", - "label": "合集", - "mid": 774623127, - "name": "绅士君F1的小游戏推荐", - "pub_action": "绅士君F1更新了合集", - "pub_time": "6分钟前", - "pub_ts": 1667129621, - "type": "AUTHOR_TYPE_UGC_SEASON" - }, - "module_dynamic": { - "additional": null, - "desc": null, - "major": { - "type": "MAJOR_TYPE_UGC_SEASON", - "ugc_season": { - "aid": 774623127, - "badge": { - "bg_color": "#FB7299", - "color": "#FFFFFF", - "text": "合集" - }, - "cover": "http://i1.hdslb.com/bfs/archive/5e4e1b6c460bd3671e7422cad5ec16642a6c1eb1.png", - "desc": "游戏名:魔女は復讐の夜に\n一款等了6年才等到完整版的游戏,它终于发售了!\n喜欢的话就关注我吧!你们的一键三连就是对我最大的支持!", - "disable_preview": 0, - "duration_text": "02:06", - "jump_url": "//www.bilibili.com/video/BV1W14y1L7m1", - "stat": { - "danmaku": "0", - "play": "36" - }, - "title": "魔女复仇之夜完整版" - } - }, - "topic": null - }, - "module_more": { - "three_point_items": [ - { - "label": "举报", - "type": "THREE_POINT_REPORT" - } - ] - }, - "module_stat": { - "comment": { - "count": 10, - "forbidden": false - }, - "forward": { - "count": 0, - "forbidden": false - }, - "like": { - "count": 22, - "forbidden": false, - "status": false - } - } - }, - "type": "DYNAMIC_TYPE_UGC_SEASON", - "visible": true - }, - { - "basic": { - "comment_id_str": "689567837", - "comment_type": 1, - "like_icon": { - "action_url": "", - "end_url": "", - "id": 0, - "start_url": "" - }, - "rid_str": "689567837" - }, - "id_str": "722804775173750848", - "modules": { - "module_author": { - "face": "https://i2.hdslb.com/bfs/face/81cfe1102ae0e32ea56733f47e949fe1ed10d3c7.jpg", - "face_nft": false, - "following": true, - "jump_url": "//space.bilibili.com/431631557/dynamic", - "label": "", - "mid": 431631557, - "name": "仙盟丶大罗金仙", - "official_verify": { - "desc": "", - "type": 0 - }, - "pendant": { - "expire": 0, - "image": "", - "image_enhance": "", - "image_enhance_frame": "", - "name": "", - "pid": 0 - }, - "pub_action": "投稿了视频", - "pub_location_text": "", - "pub_time": "8分钟前", - "pub_ts": 1667129501, - "type": "AUTHOR_TYPE_NORMAL", - "vip": { - "avatar_subscript": 1, - "avatar_subscript_url": "", - "due_date": 1667491200000, - "label": { - "bg_color": "#FB7299", - "bg_style": 1, - "border_color": "", - "img_label_uri_hans": "", - "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png", - "img_label_uri_hant": "", - "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png", - "label_theme": "annual_vip", - "path": "", - "text": "年度大会员", - "text_color": "#FFFFFF", - "use_img_label": true - }, - "nickname_color": "#FB7299", - "status": 1, - "theme_type": 0, - "type": 2 - } - }, - "module_dynamic": { - "additional": null, - "desc": null, - "major": { - "archive": { - "aid": "689567837", - "badge": { - "bg_color": "#FB7299", - "color": "#FFFFFF", - "text": "投稿视频" - }, - "bvid": "BV19m4y1F7fG", - "cover": "http://i1.hdslb.com/bfs/archive/ef2da4e2bdf21d38d53350fdbe21577e0f882b6d.jpg", - "desc": "游戏名:永劫无间", - "disable_preview": 0, - "duration_text": "13:13", - "jump_url": "//www.bilibili.com/video/BV19m4y1F7fG", - "stat": { - "danmaku": "10", - "play": "1385" - }, - "title": "【永劫·日常】当队伍里人手一个「七星夺窍」", - "type": 1 - }, - "type": "MAJOR_TYPE_ARCHIVE" - }, - "topic": { - "id": 47783, - "jump_url": "https://m.bilibili.com/topic-detail?topic_id=47783&topic_name=%E4%BB%A4%E4%BA%BA%E7%BB%86%E6%80%9D%E6%9E%81%E6%81%90%E7%9A%84%E6%B8%B8%E6%88%8F", - "name": "令人细思极恐的游戏" - } - }, - "module_more": { - "three_point_items": [ - { - "label": "取消关注", - "type": "THREE_POINT_FOLLOWING" - }, - { - "label": "举报", - "type": "THREE_POINT_REPORT" - } - ] - }, - "module_stat": { - "comment": { - "count": 18, - "forbidden": false - }, - "forward": { - "count": 0, - "forbidden": false - }, - "like": { - "count": 112, - "forbidden": false, - "status": false - } - } - }, - "type": "DYNAMIC_TYPE_AV", - "visible": true - }, - { - "basic": { - "comment_id_str": "722804650633330705", - "comment_type": 17, - "like_icon": { - "action_url": "", - "end_url": "", - "id": 0, - "start_url": "" - }, - "rid_str": "722804650682613780" - }, - "id_str": "722804650633330705", - "modules": { - "module_author": { - "decorate": { - "card_url": "http://i0.hdslb.com/bfs/garb/item/e9dff0468b7394c3072bade71aae4130602cb914.png", - "fan": { - "color": "#e495dc", - "is_fan": true, - "num_str": "002670", - "number": 2670 - }, - "id": 5335, - "jump_url": "https://www.bilibili.com/h5/mall/fans/recommend/5333?navhide=1&mid=653&from=dynamic&isdiy=0", - "name": "乙女音粉丝专属", - "type": 3 - }, - "face": "https://i2.hdslb.com/bfs/face/e8433484e1b6fc32e9754addbfd69fdf78dca514.jpg", - "face_nft": false, - "following": null, - "jump_url": "//space.bilibili.com/653/dynamic", - "label": "", - "mid": 653, - "name": "Pravis_channel", - "official_verify": { - "desc": "", - "type": -1 - }, - "pendant": { - "expire": 0, - "image": "https://i2.hdslb.com/bfs/face/50525f841aaebf32da475b2f7d407b5f4134436e.png", - "image_enhance": "https://i2.hdslb.com/bfs/face/50525f841aaebf32da475b2f7d407b5f4134436e.png", - "image_enhance_frame": "", - "name": "首批购买年度大会员", - "pid": 117 - }, - "pub_action": "", - "pub_location_text": "", - "pub_time": "8分钟前", - "pub_ts": 1667129472, - "type": "AUTHOR_TYPE_NORMAL", - "vip": { - "avatar_subscript": 1, - "avatar_subscript_url": "", - "due_date": 1714579200000, - "label": { - "bg_color": "#FB7299", - "bg_style": 1, - "border_color": "", - "img_label_uri_hans": "", - "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png", - "img_label_uri_hant": "", - "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png", - "label_theme": "annual_vip", - "path": "", - "text": "年度大会员", - "text_color": "#FFFFFF", - "use_img_label": true - }, - "nickname_color": "#FB7299", - "status": 1, - "theme_type": 0, - "type": 2 - } - }, - "module_dynamic": { - "additional": null, - "desc": { - "rich_text_nodes": [ - { - "orig_text": "【石头人2:0秘密】\n职业舞台上最好的死灵龙打刚背的教学\n", - "text": "【石头人2:0秘密】\n职业舞台上最好的死灵龙打刚背的教学\n", - "type": "RICH_TEXT_NODE_TYPE_TEXT" - }, - { - "emoji": { - "icon_url": "http://i0.hdslb.com/bfs/emote/431432c43da3ee5aab5b0e4f8931953e649e9975.png", - "size": 1, - "text": "[打call]", - "type": 1 - }, - "orig_text": "[打call]", - "text": "[打call]", - "type": "RICH_TEXT_NODE_TYPE_EMOJI" - }, - { - "emoji": { - "icon_url": "http://i0.hdslb.com/bfs/emote/431432c43da3ee5aab5b0e4f8931953e649e9975.png", - "size": 1, - "text": "[打call]", - "type": 1 - }, - "orig_text": "[打call]", - "text": "[打call]", - "type": "RICH_TEXT_NODE_TYPE_EMOJI" - }, - { - "emoji": { - "icon_url": "http://i0.hdslb.com/bfs/emote/431432c43da3ee5aab5b0e4f8931953e649e9975.png", - "size": 1, - "text": "[打call]", - "type": 1 - }, - "orig_text": "[打call]", - "text": "[打call]", - "type": "RICH_TEXT_NODE_TYPE_EMOJI" - }, - { - "emoji": { - "icon_url": "http://i0.hdslb.com/bfs/emote/431432c43da3ee5aab5b0e4f8931953e649e9975.png", - "size": 1, - "text": "[打call]", - "type": 1 - }, - "orig_text": "[打call]", - "text": "[打call]", - "type": "RICH_TEXT_NODE_TYPE_EMOJI" - }, - { - "emoji": { - "icon_url": "http://i0.hdslb.com/bfs/emote/431432c43da3ee5aab5b0e4f8931953e649e9975.png", - "size": 1, - "text": "[打call]", - "type": 1 - }, - "orig_text": "[打call]", - "text": "[打call]", - "type": "RICH_TEXT_NODE_TYPE_EMOJI" - }, - { - "orig_text": "\n", - "text": "\n", - "type": "RICH_TEXT_NODE_TYPE_TEXT" - }, - { - "emoji": { - "icon_url": "http://i0.hdslb.com/bfs/emote/2caafee2e5db4db72104650d87810cc2c123fc86.png", - "size": 1, - "text": "[大哭]", - "type": 1 - }, - "orig_text": "[大哭]", - "text": "[大哭]", - "type": "RICH_TEXT_NODE_TYPE_EMOJI" - }, - { - "emoji": { - "icon_url": "http://i0.hdslb.com/bfs/emote/2caafee2e5db4db72104650d87810cc2c123fc86.png", - "size": 1, - "text": "[大哭]", - "type": 1 - }, - "orig_text": "[大哭]", - "text": "[大哭]", - "type": "RICH_TEXT_NODE_TYPE_EMOJI" - }, - { - "emoji": { - "icon_url": "http://i0.hdslb.com/bfs/emote/2caafee2e5db4db72104650d87810cc2c123fc86.png", - "size": 1, - "text": "[大哭]", - "type": 1 - }, - "orig_text": "[大哭]", - "text": "[大哭]", - "type": "RICH_TEXT_NODE_TYPE_EMOJI" - }, - { - "emoji": { - "icon_url": "http://i0.hdslb.com/bfs/emote/2caafee2e5db4db72104650d87810cc2c123fc86.png", - "size": 1, - "text": "[大哭]", - "type": 1 - }, - "orig_text": "[大哭]", - "text": "[大哭]", - "type": "RICH_TEXT_NODE_TYPE_EMOJI" - }, - { - "emoji": { - "icon_url": "http://i0.hdslb.com/bfs/emote/2caafee2e5db4db72104650d87810cc2c123fc86.png", - "size": 1, - "text": "[大哭]", - "type": 1 - }, - "orig_text": "[大哭]", - "text": "[大哭]", - "type": "RICH_TEXT_NODE_TYPE_EMOJI" - } - ], - "text": "【石头人2:0秘密】\n职业舞台上最好的死灵龙打刚背的教学\n[打call][打call][打call][打call][打call]\n[大哭][大哭][大哭][大哭][大哭]" - }, - "major": null, - "topic": null - }, - "module_more": { - "three_point_items": [ - { - "label": "关注", - "type": "THREE_POINT_FOLLOWING" - }, - { - "label": "举报", - "type": "THREE_POINT_REPORT" - } - ] - }, - "module_stat": { - "comment": { - "count": 0, - "forbidden": false - }, - "forward": { - "count": 0, - "forbidden": false - }, - "like": { - "count": 3, - "forbidden": false, - "status": false - } - } - }, - "type": "DYNAMIC_TYPE_WORD", - "visible": true - }, - { - "basic": { - "comment_id_str": "304504318", - "comment_type": 1, - "like_icon": { - "action_url": "", - "end_url": "", - "id": 0, - "start_url": "" - }, - "rid_str": "304504318" - }, - "id_str": "722804470237364257", - "modules": { - "module_author": { - "face": "https://i2.hdslb.com/bfs/face/03d0e2d9e066223daeb63d00a7cbc7375cde0bbc.jpg", - "face_nft": false, - "following": true, - "jump_url": "//space.bilibili.com/81554471/dynamic", - "label": "", - "mid": 81554471, - "name": "潇潇学姐lady", - "official_verify": { - "desc": "", - "type": 0 - }, - "pendant": { - "expire": 0, - "image": "", - "image_enhance": "", - "image_enhance_frame": "", - "name": "", - "pid": 0 - }, - "pub_action": "投稿了视频", - "pub_location_text": "", - "pub_time": "9分钟前", - "pub_ts": 1667129430, - "type": "AUTHOR_TYPE_NORMAL", - "vip": { - "avatar_subscript": 0, - "avatar_subscript_url": "", - "due_date": 1650643200000, - "label": { - "bg_color": "", - "bg_style": 0, - "border_color": "", - "img_label_uri_hans": "", - "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/d7b702ef65a976b20ed854cbd04cb9e27341bb79.png", - "img_label_uri_hant": "", - "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/KJunwh19T5.png", - "label_theme": "", - "path": "", - "text": "", - "text_color": "", - "use_img_label": true - }, - "nickname_color": "", - "status": 0, - "theme_type": 0, - "type": 1 - } - }, - "module_dynamic": { - "additional": null, - "desc": null, - "major": { - "archive": { - "aid": "304504318", - "badge": { - "bg_color": "#FB7299", - "color": "#FFFFFF", - "text": "投稿视频" - }, - "bvid": "BV1KP411P7dD", - "cover": "http://i1.hdslb.com/bfs/archive/febc5ccc7e8cb91b44b0e062da8551081f19c6a6.jpg", - "desc": "咱们学校这男生真精神!", - "disable_preview": 0, - "duration_text": "00:44", - "jump_url": "//www.bilibili.com/video/BV1KP411P7dD", - "stat": { - "danmaku": "21", - "play": "1.1万" - }, - "title": "企业级理解", - "type": 1 - }, - "type": "MAJOR_TYPE_ARCHIVE" - }, - "topic": null - }, - "module_interaction": { - "items": [ - { - "desc": { - "rich_text_nodes": [ - { - "orig_text": "Wounded_M:", - "rid": "112008080", - "text": "Wounded_M:", - "type": "RICH_TEXT_NODE_TYPE_AT" - }, - { - "orig_text": "那个,,确定是洗发水而不是洁厕灵么", - "text": "那个,,确定是洗发水而不是洁厕灵么", - "type": "RICH_TEXT_NODE_TYPE_TEXT" - }, - { - "orig_text": "[doge]", - "text": "[doge]", - "type": "RICH_TEXT_NODE_TYPE_TEXT" - } - ], - "text": "那个,,确定是洗发水而不是洁厕灵么[doge]" - }, - "type": 1 - } - ] - }, - "module_more": { - "three_point_items": [ - { - "label": "取消关注", - "type": "THREE_POINT_FOLLOWING" - }, - { - "label": "举报", - "type": "THREE_POINT_REPORT" - } - ] - }, - "module_stat": { - "comment": { - "count": 92, - "forbidden": false - }, - "forward": { - "count": 1, - "forbidden": false - }, - "like": { - "count": 1778, - "forbidden": false, - "status": false - } - } - }, - "type": "DYNAMIC_TYPE_AV", - "visible": true - }, - { - "basic": { - "comment_id_str": "210802703", - "comment_type": 11, - "like_icon": { - "action_url": "", - "end_url": "", - "id": 0, - "start_url": "" - }, - "rid_str": "210802703" - }, - "id_str": "722804358575554660", - "modules": { - "module_author": { - "decorate": { - "card_url": "https://i0.hdslb.com/bfs/garb/item/c49b72f2b40e0e6bf9d3325e9ff8a7eb7cb22030.png", - "fan": { - "color": "", - "is_fan": false, - "num_str": "", - "number": 0 - }, - "id": 39198, - "jump_url": "https://www.bilibili.com/h5/mall/fans/recommend/39220?navhide=1&mid=161775300&from=dynamic&isdiy=0", - "name": "明日方舟-灯下定影", - "type": 1 - }, - "face": "https://i0.hdslb.com/bfs/face/89154378c06a5ed332c40c2ca56f50cd641c0c90.jpg", - "face_nft": false, - "following": true, - "jump_url": "//space.bilibili.com/161775300/dynamic", - "label": "", - "mid": 161775300, - "name": "明日方舟", - "official_verify": { - "desc": "", - "type": 1 - }, - "pendant": { - "expire": 0, - "image": "https://i0.hdslb.com/bfs/garb/item/0c8e7d627a35c378b757f39419889ef1fcc0ed9b.png", - "image_enhance": "https://i0.hdslb.com/bfs/garb/item/1815c81da71069ea3db4553cad7d233f782da2f2.webp", - "image_enhance_frame": "https://i0.hdslb.com/bfs/garb/item/ed2b4ef1da228c0b937753542b33af8f04d1d70c.png", - "name": "明日方舟", - "pid": 1990 - }, - "pub_action": "", - "pub_location_text": "", - "pub_time": "9分钟前", - "pub_ts": 1667129404, - "type": "AUTHOR_TYPE_NORMAL", - "vip": { - "avatar_subscript": 1, - "avatar_subscript_url": "", - "due_date": 1680537600000, - "label": { - "bg_color": "#FB7299", - "bg_style": 1, - "border_color": "", - "img_label_uri_hans": "", - "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png", - "img_label_uri_hant": "", - "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png", - "label_theme": "annual_vip", - "path": "", - "text": "年度大会员", - "text_color": "#FFFFFF", - "use_img_label": true - }, - "nickname_color": "#FB7299", - "status": 1, - "theme_type": 0, - "type": 2 - } - }, - "module_dynamic": { - "additional": { - "common": { - "button": { - "jump_style": { - "icon_url": "", - "text": "进入" - }, - "jump_url": "https://www.biligame.com/detail?id=101772&sourceFrom=1005", - "type": 1 - }, - "cover": "https://i0.hdslb.com/bfs/game/faa556b00d29fffc88281c1ee038b1b7f23aa5c2.jpg", - "desc1": "策略/二次元/美少女", - "desc2": "2022「感谢庆典」即将开启!", - "head_text": "相关游戏", - "id_str": "101772", - "jump_url": "https://www.biligame.com/detail?id=101772&sourceFrom=1005", - "style": 1, - "sub_type": "game", - "title": "明日方舟" - }, - "type": "ADDITIONAL_TYPE_COMMON" - }, - "desc": { - "rich_text_nodes": [ - { - "jump_url": "//search.bilibili.com/all?keyword=%23%E6%98%8E%E6%97%A5%E6%96%B9%E8%88%9F%23", - "orig_text": "#明日方舟#", - "text": "#明日方舟#", - "type": "RICH_TEXT_NODE_TYPE_TOPIC" - }, - { - "jump_url": "//search.bilibili.com/all?keyword=%23%E9%9F%B3%E5%BE%8B%E8%81%94%E8%A7%89%23", - "orig_text": "#音律联觉#", - "text": "#音律联觉#", - "type": "RICH_TEXT_NODE_TYPE_TOPIC" - }, - { - "orig_text": "\r\n特别提醒:距离电影首映还有60分钟。\r\n趁此闲暇,我们准备了参演人员名单,诸位也可一览为快。\r\n如果您此前并无观影打算,却又在此时有空闲时间,我们同样诚邀您前来参与这千载难逢的艺术盛宴。\r\n我们保证,您绝对不会失望。 ", - "text": "\r\n特别提醒:距离电影首映还有60分钟。\r\n趁此闲暇,我们准备了参演人员名单,诸位也可一览为快。\r\n如果您此前并无观影打算,却又在此时有空闲时间,我们同样诚邀您前来参与这千载难逢的艺术盛宴。\r\n我们保证,您绝对不会失望。 ", - "type": "RICH_TEXT_NODE_TYPE_TEXT" - } - ], - "text": "#明日方舟##音律联觉#\r\n特别提醒:距离电影首映还有60分钟。\r\n趁此闲暇,我们准备了参演人员名单,诸位也可一览为快。\r\n如果您此前并无观影打算,却又在此时有空闲时间,我们同样诚邀您前来参与这千载难逢的艺术盛宴。\r\n我们保证,您绝对不会失望。 " - }, - "major": { - "draw": { - "id": 210802703, - "items": [ - { - "height": 4961, - "size": 9876.915, - "src": "https://i0.hdslb.com/bfs/new_dyn/c9610327ab7d1298f8916d53b5fd324d161775300.jpg", - "tags": [], - "width": 3508 - }, - { - "height": 4961, - "size": 5995.214, - "src": "https://i0.hdslb.com/bfs/new_dyn/302d129716ba5c5009a4df259da3409b161775300.jpg", - "tags": [], - "width": 3508 - }, - { - "height": 4961, - "size": 12802.127, - "src": "https://i0.hdslb.com/bfs/new_dyn/7bb6868d638616ae1d957f52adf4c7ee161775300.jpg", - "tags": [], - "width": 3508 - }, - { - "height": 4961, - "size": 4542.088, - "src": "https://i0.hdslb.com/bfs/new_dyn/2d1ecdf709619cc0bca633095fd26a36161775300.jpg", - "tags": [], - "width": 3508 - }, - { - "height": 1345, - "size": 283.4463, - "src": "https://i0.hdslb.com/bfs/new_dyn/f72a0231bf2e8bbcf6a09c16de592579161775300.jpg", - "tags": [], - "width": 1000 - }, - { - "height": 3235, - "size": 814.31836, - "src": "https://i0.hdslb.com/bfs/new_dyn/07a94b22517e78eac9d8bac38789f17c161775300.jpg", - "tags": [], - "width": 1000 - }, - { - "height": 2908, - "size": 670.54004, - "src": "https://i0.hdslb.com/bfs/new_dyn/425d8c556b9e5bd5a49e0770662c7fdc161775300.jpg", - "tags": [], - "width": 1000 - }, - { - "height": 2908, - "size": 664.3535, - "src": "https://i0.hdslb.com/bfs/new_dyn/ddb2f31f3d80cf87e39cdcb1b2cd9034161775300.jpg", - "tags": [], - "width": 1000 - }, - { - "height": 3235, - "size": 853.39746, - "src": "https://i0.hdslb.com/bfs/new_dyn/f56c66eb94e401a7c9b895ba0905bb7c161775300.jpg", - "tags": [], - "width": 1000 - } - ] - }, - "type": "MAJOR_TYPE_DRAW" - }, - "topic": null - }, - "module_interaction": { - "items": [ - { - "desc": { - "rich_text_nodes": [ - { - "orig_text": "Coner4053:", - "rid": "1375262127", - "text": "Coner4053:", - "type": "RICH_TEXT_NODE_TYPE_AT" - }, - { - "orig_text": "年导的电影天下第一!!!", - "text": "年导的电影天下第一!!!", - "type": "RICH_TEXT_NODE_TYPE_TEXT" - }, - { - "emoji": { - "icon_url": "http://i0.hdslb.com/bfs/emote/431432c43da3ee5aab5b0e4f8931953e649e9975.png", - "size": 1, - "text": "[打call]", - "type": 1 - }, - "orig_text": "[打call]", - "text": "[打call]", - "type": "RICH_TEXT_NODE_TYPE_EMOJI" - }, - { - "emoji": { - "icon_url": "http://i0.hdslb.com/bfs/emote/431432c43da3ee5aab5b0e4f8931953e649e9975.png", - "size": 1, - "text": "[打call]", - "type": 1 - }, - "orig_text": "[打call]", - "text": "[打call]", - "type": "RICH_TEXT_NODE_TYPE_EMOJI" - }, - { - "emoji": { - "icon_url": "http://i0.hdslb.com/bfs/emote/431432c43da3ee5aab5b0e4f8931953e649e9975.png", - "size": 1, - "text": "[打call]", - "type": 1 - }, - "orig_text": "[打call]", - "text": "[打call]", - "type": "RICH_TEXT_NODE_TYPE_EMOJI" - }, - { - "orig_text": " 5龙门币一条,括号记得删", - "text": " 5龙门币一条,括号记得删", - "type": "RICH_TEXT_NODE_TYPE_TEXT" - } - ], - "text": "年导的电影天下第一!!![打call][打call][打call] 5龙门币一条,括号记得删" - }, - "type": 1 - } - ] - }, - "module_more": { - "three_point_items": [ - { - "label": "取消关注", - "type": "THREE_POINT_FOLLOWING" - }, - { - "label": "举报", - "type": "THREE_POINT_REPORT" - } - ] - }, - "module_stat": { - "comment": { - "count": 565, - "forbidden": false - }, - "forward": { - "count": 74, - "forbidden": false - }, - "like": { - "count": 4800, - "forbidden": false, - "status": false - } - } - }, - "type": "DYNAMIC_TYPE_DRAW", - "visible": true - }, - { - "basic": { - "comment_id_str": "722803941956386838", - "comment_type": 17, - "like_icon": { - "action_url": "", - "end_url": "", - "id": 0, - "start_url": "" - }, - "rid_str": "722803942006718519" - }, - "id_str": "722803941956386838", - "modules": { - "module_author": { - "face": "https://i2.hdslb.com/bfs/face/e4f1466daf6e3173e8cab68eb4551589a09d4967.jpg", - "face_nft": false, - "following": true, - "jump_url": "//space.bilibili.com/32172110/dynamic", - "label": "", - "mid": 32172110, - "name": "京阿尼语料", - "official_verify": { - "desc": "", - "type": 0 - }, - "pendant": { - "expire": 0, - "image": "", - "image_enhance": "", - "image_enhance_frame": "", - "name": "", - "pid": 0 - }, - "pub_action": "", - "pub_location_text": "", - "pub_time": "11分钟前", - "pub_ts": 1667129307, - "type": "AUTHOR_TYPE_NORMAL", - "vip": { - "avatar_subscript": 1, - "avatar_subscript_url": "", - "due_date": 1733500800000, - "label": { - "bg_color": "#FB7299", - "bg_style": 1, - "border_color": "", - "img_label_uri_hans": "", - "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png", - "img_label_uri_hant": "", - "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png", - "label_theme": "annual_vip", - "path": "", - "text": "年度大会员", - "text_color": "#FFFFFF", - "use_img_label": true - }, - "nickname_color": "#FB7299", - "status": 1, - "theme_type": 0, - "type": 2 - } - }, - "module_dynamic": { - "additional": null, - "desc": { - "rich_text_nodes": [ - { - "emoji": { - "icon_url": "http://i0.hdslb.com/bfs/emote/bf7e00ecab02171f8461ee8cf439c73db9797748.png", - "size": 1, - "text": "[脱单doge]", - "type": 1 - }, - "orig_text": "[脱单doge]", - "text": "[脱单doge]", - "type": "RICH_TEXT_NODE_TYPE_EMOJI" - }, - { - "orig_text": "来看稿", - "text": "来看稿", - "type": "RICH_TEXT_NODE_TYPE_TEXT" - } - ], - "text": "[脱单doge]来看稿" - }, - "major": null, - "topic": { - "id": 57386, - "jump_url": "https://m.bilibili.com/topic-detail?topic_id=57386&topic_name=%E2%80%9C%E4%BA%AC%E5%90%8E%E6%9C%89%E4%BD%A0%E2%80%9D%E5%88%9B%E4%BD%9C%E7%9B%9B%E5%85%B8", - "name": "“京后有你”创作盛典" - } - }, - "module_more": { - "three_point_items": [ - { - "label": "取消关注", - "type": "THREE_POINT_FOLLOWING" - }, - { - "label": "举报", - "type": "THREE_POINT_REPORT" - } - ] - }, - "module_stat": { - "comment": { - "count": 0, - "forbidden": false - }, - "forward": { - "count": 0, - "forbidden": false - }, - "like": { - "count": 40, - "forbidden": false, - "status": false - } - } - }, - "orig": { - "basic": { - "comment_id_str": "", - "comment_type": 0, - "like_icon": { - "action_url": "", - "end_url": "", - "id": 0, - "start_url": "" - }, - "rid_str": "" - }, - "id_str": "397711411815032345", - "modules": { - "module_author": { - "face": "https://i2.hdslb.com/bfs/face/e4f1466daf6e3173e8cab68eb4551589a09d4967.jpg", - "face_nft": false, - "following": true, - "jump_url": "//space.bilibili.com/32172110/dynamic", - "label": "", - "mid": 32172110, - "name": "京阿尼语料", - "official_verify": { - "desc": "", - "type": 0 - }, - "pendant": { - "expire": 0, - "image": "", - "image_enhance": "", - "image_enhance_frame": "", - "name": "", - "pid": 0 - }, - "pub_action": "", - "pub_time": "", - "pub_ts": 1591437804, - "type": "AUTHOR_TYPE_NORMAL", - "vip": { - "avatar_subscript": 1, - "avatar_subscript_url": "", - "due_date": 1733500800000, - "label": { - "bg_color": "#FB7299", - "bg_style": 1, - "border_color": "", - "img_label_uri_hans": "", - "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png", - "img_label_uri_hant": "", - "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png", - "label_theme": "annual_vip", - "path": "", - "text": "年度大会员", - "text_color": "#FFFFFF", - "use_img_label": true - }, - "nickname_color": "#FB7299", - "status": 1, - "theme_type": 0, - "type": 2 - } - }, - "module_dynamic": { - "additional": null, - "desc": null, - "major": { - "live": { - "badge": { - "bg_color": "#FB7299", - "color": "#ffffff", - "text": "直播中" - }, - "cover": "http://i0.hdslb.com/bfs/live/new_room_cover/d8ef7daa61f5f0fd6735d9f743ea9b1b6f941799.jpg", - "desc_first": "影音馆", - "desc_second": "344人看过", - "id": 22282848, - "jump_url": "https://live.bilibili.com/22282848?broadcast_type=0&is_room_feed=1&live_from=30112", - "live_state": 1, - "reserve_type": 0, - "title": "MAD赛道直播看稿【京后有你创作盛典】" - }, - "type": "MAJOR_TYPE_LIVE" - }, - "topic": null - } - }, - "type": "DYNAMIC_TYPE_LIVE", "visible": true - }, - "type": "DYNAMIC_TYPE_FORWARD", - "visible": true + } + ] + }, + "mid": "3546730050096047" }, - { - "basic": { - "comment_id_str": "304574578", - "comment_type": 1, - "like_icon": { - "action_url": "", - "end_url": "", - "id": 0, - "start_url": "" - }, - "rid_str": "304574578" - }, - "id_str": "722803259048198146", - "modules": { - "module_author": { - "face": "https://archive.biliimg.com/bfs/archive/146462f875eb4e5f7d577c896f6150972a147275.jpg", - "face_nft": false, - "following": false, - "jump_url": "//www.bilibili.com/video/av304574578", - "label": "合集", - "mid": 304574578, - "name": "辐射系列", - "pub_action": "柯尔不短更新了合集", - "pub_time": "14分钟前", - "pub_ts": 1667129148, - "type": "AUTHOR_TYPE_UGC_SEASON" - }, - "module_dynamic": { - "additional": null, - "desc": null, - "major": { - "type": "MAJOR_TYPE_UGC_SEASON", - "ugc_season": { - "aid": 304574578, - "badge": { - "bg_color": "#FB7299", - "color": "#FFFFFF", - "text": "合集" - }, - "cover": "http://i2.hdslb.com/bfs/archive/ccd56a834f2ce77655ddde96f587db0e9cc313af.jpg", - "desc": "本期新增内容为:\n全新设计的比分显示牌,增加代入感的虚拟灯箱。\n陷阱机关可独立控制,优化陷阱的初始位置。\n\n历史战绩:\n变异狼 0胜0负0平\n灶马蟋蟀 0胜0负0平\n\n背景音乐:\nDeadwood - Zoso\nThunderbird - Ryan Taubert\n小林啓樹 - Daredevil\nCombat Ready\nWar in the Wastes\nRise and Prevail", - "disable_preview": 0, - "duration_text": "05:38", - "jump_url": "//www.bilibili.com/video/BV18P411P7CD", - "stat": { - "danmaku": "113", - "play": "1267" - }, - "title": "【辐射斗兽场】变异狼 VS 灶马蟋蟀" - } - }, - "topic": null - }, - "module_more": { - "three_point_items": [ - { - "label": "举报", - "type": "THREE_POINT_REPORT" - } - ] - }, - "module_stat": { - "comment": { - "count": 28, - "forbidden": false - }, - "forward": { - "count": 0, - "forbidden": false - }, - "like": { - "count": 270, - "forbidden": false, - "status": false - } - } - }, - "type": "DYNAMIC_TYPE_UGC_SEASON", - "visible": true + "face": "https://i2.hdslb.com/bfs/face/b1c15dd8814d79e648008815517aa5ef50a2fb9c.jpg", + "face_nft": false, + "following": true, + "jump_url": "//space.bilibili.com/3546730050096047/dynamic", + "label": "", + "mid": 3546730050096047, + "name": "青岛LUCIFER", + "official_verify": { + "desc": "", + "type": -1 }, - { - "basic": { - "comment_id_str": "902123597", - "comment_type": 1, - "like_icon": { - "action_url": "", - "end_url": "", - "id": 0, - "start_url": "" - }, - "rid_str": "902123597" - }, - "id_str": "722803241881960456", - "modules": { - "module_author": { - "face": "https://i1.hdslb.com/bfs/face/1a6152f261f4141e3be72c7b3056739c9f794774.jpg", - "face_nft": false, - "following": true, - "jump_url": "//space.bilibili.com/485118280/dynamic", - "label": "", - "mid": 485118280, - "name": "中华田园犬逆袭", - "official_verify": { - "desc": "", - "type": -1 - }, - "pendant": { - "expire": 0, - "image": "", - "image_enhance": "", - "image_enhance_frame": "", - "name": "", - "pid": 0 - }, - "pub_action": "投稿了视频", - "pub_location_text": "", - "pub_time": "14分钟前", - "pub_ts": 1667129144, - "type": "AUTHOR_TYPE_NORMAL", - "vip": { - "avatar_subscript": 0, - "avatar_subscript_url": "", - "due_date": 1605369600000, - "label": { - "bg_color": "", - "bg_style": 0, - "border_color": "", - "img_label_uri_hans": "", - "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/d7b702ef65a976b20ed854cbd04cb9e27341bb79.png", - "img_label_uri_hant": "", - "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/KJunwh19T5.png", - "label_theme": "", - "path": "", - "text": "", - "text_color": "", - "use_img_label": true - }, - "nickname_color": "", - "status": 0, - "theme_type": 0, - "type": 1 - } - }, - "module_dynamic": { - "additional": null, - "desc": null, - "major": { - "archive": { - "aid": "902123597", - "badge": { - "bg_color": "#FB7299", - "color": "#FFFFFF", - "text": "投稿视频" - }, - "bvid": "BV1hP4y1m7en", - "cover": "http://i0.hdslb.com/bfs/archive/d324a9c21a019ce6880b3944fa577a0993504616.jpg", - "desc": "-", - "disable_preview": 0, - "duration_text": "00:30", - "jump_url": "//www.bilibili.com/video/BV1hP4y1m7en", - "stat": { - "danmaku": "0", - "play": "1" - }, - "title": "双金钱尾白色土松狮,公的,8斤左右", - "type": 1 - }, - "type": "MAJOR_TYPE_ARCHIVE" - }, - "topic": null - }, - "module_more": { - "three_point_items": [ - { - "label": "取消关注", - "type": "THREE_POINT_FOLLOWING" - }, - { - "label": "举报", - "type": "THREE_POINT_REPORT" - } - ] - }, - "module_stat": { - "comment": { - "count": 0, - "forbidden": false - }, - "forward": { - "count": 0, - "forbidden": false - }, - "like": { - "count": 2, - "forbidden": false, - "status": false - } - } - }, - "type": "DYNAMIC_TYPE_AV", - "visible": true + "pendant": { + "expire": 0, + "image": "", + "image_enhance": "", + "image_enhance_frame": "", + "n_pid": 0, + "name": "", + "pid": 0 }, - { - "basic": { - "comment_id_str": "859536670", - "comment_type": 1, - "like_icon": { - "action_url": "", - "end_url": "", - "id": 0, - "start_url": "" - }, - "rid_str": "859536670" - }, - "id_str": "722802855343292440", - "modules": { - "module_author": { - "face": "https://i1.hdslb.com/bfs/face/1a6152f261f4141e3be72c7b3056739c9f794774.jpg", - "face_nft": false, - "following": true, - "jump_url": "//space.bilibili.com/485118280/dynamic", - "label": "", - "mid": 485118280, - "name": "中华田园犬逆袭", - "official_verify": { - "desc": "", - "type": -1 - }, - "pendant": { - "expire": 0, - "image": "", - "image_enhance": "", - "image_enhance_frame": "", - "name": "", - "pid": 0 - }, - "pub_action": "投稿了视频", - "pub_location_text": "", - "pub_time": "15分钟前", - "pub_ts": 1667129054, - "type": "AUTHOR_TYPE_NORMAL", - "vip": { - "avatar_subscript": 0, - "avatar_subscript_url": "", - "due_date": 1605369600000, - "label": { - "bg_color": "", - "bg_style": 0, - "border_color": "", - "img_label_uri_hans": "", - "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/d7b702ef65a976b20ed854cbd04cb9e27341bb79.png", - "img_label_uri_hant": "", - "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/KJunwh19T5.png", - "label_theme": "", - "path": "", - "text": "", - "text_color": "", - "use_img_label": true - }, - "nickname_color": "", - "status": 0, - "theme_type": 0, - "type": 1 - } - }, - "module_dynamic": { - "additional": null, - "desc": null, - "major": { - "archive": { - "aid": "859536670", - "badge": { - "bg_color": "#FB7299", - "color": "#FFFFFF", - "text": "投稿视频" - }, - "bvid": "BV1dV4y1G7pe", - "cover": "http://i2.hdslb.com/bfs/archive/686bbbc47ccd2dad320905fc6bfcc716dead26a5.jpg", - "desc": "-", - "disable_preview": 0, - "duration_text": "00:30", - "jump_url": "//www.bilibili.com/video/BV1dV4y1G7pe", - "stat": { - "danmaku": "0", - "play": "5" - }, - "title": "土松狮小美女,50天6斤左右", - "type": 1 - }, - "type": "MAJOR_TYPE_ARCHIVE" - }, - "topic": null - }, - "module_more": { - "three_point_items": [ - { - "label": "取消关注", - "type": "THREE_POINT_FOLLOWING" - }, - { - "label": "举报", - "type": "THREE_POINT_REPORT" - } - ] - }, - "module_stat": { - "comment": { - "count": 0, - "forbidden": false - }, - "forward": { - "count": 0, - "forbidden": false - }, - "like": { - "count": 4, - "forbidden": false, - "status": false - } - } - }, - "type": "DYNAMIC_TYPE_AV", - "visible": true - }, - { - "basic": { - "comment_id_str": "210801533", - "comment_type": 11, - "like_icon": { - "action_url": "", - "end_url": "", - "id": 0, - "start_url": "" - }, - "rid_str": "210801533" - }, - "id_str": "722802047870566501", - "modules": { - "module_author": { - "decorate": { - "card_url": "http://i0.hdslb.com/bfs/garb/item/8b043b53c394265e6ce1dfb9a04ebd0b99ef4f79.png", - "fan": { - "color": "#ff669c", - "is_fan": true, - "num_str": "020617", - "number": 20617 - }, - "id": 3772, - "jump_url": "https://www.bilibili.com/h5/mall/fans/recommend/3796?navhide=1&mid=18940485&from=dynamic&isdiy=0", - "name": "神乐七奈粉丝专属", - "type": 3 - }, - "face": "https://i0.hdslb.com/bfs/face/0f6f0f4048e58dbd1a26e4ac6b087997ef2f7653.jpg", - "face_nft": false, - "following": true, - "jump_url": "//space.bilibili.com/18940485/dynamic", - "label": "", - "mid": 18940485, - "name": "RakusandoYuna", - "official_verify": { - "desc": "", - "type": -1 - }, - "pendant": { - "expire": 0, - "image": "https://i0.hdslb.com/bfs/garb/item/2262a0864cb0f3e39bb77e00298f8312318311c4.png", - "image_enhance": "https://i0.hdslb.com/bfs/garb/item/2262a0864cb0f3e39bb77e00298f8312318311c4.png", - "image_enhance_frame": "", - "name": "神乐七奈", - "pid": 3771 - }, - "pub_action": "", - "pub_location_text": "", - "pub_time": "18分钟前", - "pub_ts": 1667128866, - "type": "AUTHOR_TYPE_NORMAL", - "vip": { - "avatar_subscript": 1, - "avatar_subscript_url": "", - "due_date": 1718467200000, - "label": { - "bg_color": "#FB7299", - "bg_style": 1, - "border_color": "", - "img_label_uri_hans": "", - "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png", - "img_label_uri_hant": "", - "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png", - "label_theme": "annual_vip", - "path": "", - "text": "年度大会员", - "text_color": "#FFFFFF", - "use_img_label": true - }, - "nickname_color": "#FB7299", - "status": 1, - "theme_type": 0, - "type": 2 - } - }, - "module_dynamic": { - "additional": null, - "desc": { - "rich_text_nodes": [ - { - "orig_text": "尝试一天肝完了沙漠,挺累的。。。唉:-(", - "text": "尝试一天肝完了沙漠,挺累的。。。唉:-(", - "type": "RICH_TEXT_NODE_TYPE_TEXT" - } - ], - "text": "尝试一天肝完了沙漠,挺累的。。。唉:-(" - }, - "major": { - "draw": { - "id": 210801533, - "items": [ - { - "height": 949, - "size": 84.36, - "src": "https://i0.hdslb.com/bfs/new_dyn/b403ce65cd0618b7efedbb5c421da7c318940485.jpg", - "tags": [], - "width": 1213 - } - ] - }, - "type": "MAJOR_TYPE_DRAW" - }, - "topic": null - }, - "module_more": { - "three_point_items": [ - { - "label": "取消关注", - "type": "THREE_POINT_FOLLOWING" - }, - { - "label": "举报", - "type": "THREE_POINT_REPORT" - } - ] - }, - "module_stat": { - "comment": { - "count": 1, - "forbidden": false - }, - "forward": { - "count": 0, - "forbidden": false - }, - "like": { - "count": 6, - "forbidden": false, - "status": false - } - } - }, - "type": "DYNAMIC_TYPE_DRAW", - "visible": true - }, - { - "basic": { - "comment_id_str": "722801957680447506", - "comment_type": 17, - "like_icon": { - "action_url": "", - "end_url": "", - "id": 0, - "start_url": "" - }, - "rid_str": "722801957734973460" - }, - "id_str": "722801957680447506", - "modules": { - "module_author": { - "face": "https://i0.hdslb.com/bfs/face/d7c4e2618aba8cc8d26d975274ca82de46c0e6c7.jpg", - "face_nft": false, - "following": true, - "jump_url": "//space.bilibili.com/700634784/dynamic", - "label": "", - "mid": 700634784, - "name": "飓风商店MediaStore", - "official_verify": { - "desc": "", - "type": -1 - }, - "pendant": { - "expire": 0, - "image": "", - "image_enhance": "", - "image_enhance_frame": "", - "name": "", - "pid": 0 - }, - "pub_action": "", - "pub_location_text": "", - "pub_time": "19分钟前", - "pub_ts": 1667128845, - "type": "AUTHOR_TYPE_NORMAL", - "vip": { - "avatar_subscript": 1, - "avatar_subscript_url": "", - "due_date": 1678896000000, - "label": { - "bg_color": "#FB7299", - "bg_style": 1, - "border_color": "", - "img_label_uri_hans": "", - "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png", - "img_label_uri_hant": "", - "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png", - "label_theme": "annual_vip", - "path": "", - "text": "年度大会员", - "text_color": "#FFFFFF", - "use_img_label": true - }, - "nickname_color": "#FB7299", - "status": 1, - "theme_type": 0, - "type": 2 - } - }, - "module_dynamic": { - "additional": null, - "desc": { - "rich_text_nodes": [ - { - "orig_text": "大家太热情了", - "text": "大家太热情了", - "type": "RICH_TEXT_NODE_TYPE_TEXT" - }, - { - "emoji": { - "icon_url": "http://i0.hdslb.com/bfs/emote/485a7e0c01c2d70707daae53bee4a9e2e31ef1ed.png", - "size": 1, - "text": "[喜极而泣]", - "type": 1 - }, - "orig_text": "[喜极而泣]", - "text": "[喜极而泣]", - "type": "RICH_TEXT_NODE_TYPE_EMOJI" - }, - { - "orig_text": "直接把第一批的备货干空了,现在上了第二批预售,15号开始付尾款,感兴趣的小伙伴可以去店里购买噢~", - "text": "直接把第一批的备货干空了,现在上了第二批预售,15号开始付尾款,感兴趣的小伙伴可以去店里购买噢~", - "type": "RICH_TEXT_NODE_TYPE_TEXT" - } - ], - "text": "大家太热情了[喜极而泣]直接把第一批的备货干空了,现在上了第二批预售,15号开始付尾款,感兴趣的小伙伴可以去店里购买噢~" - }, - "major": null, - "topic": null - }, - "module_more": { - "three_point_items": [ - { - "label": "取消关注", - "type": "THREE_POINT_FOLLOWING" - }, - { - "label": "举报", - "type": "THREE_POINT_REPORT" - } - ] - }, - "module_stat": { - "comment": { - "count": 7, - "forbidden": false - }, - "forward": { - "count": 0, - "forbidden": false - }, - "like": { - "count": 46, - "forbidden": false, - "status": false - } - } - }, - "orig": { - "basic": { - "comment_id_str": "", - "comment_type": 0, - "like_icon": { - "action_url": "", - "end_url": "", - "id": 0, - "start_url": "" - }, - "rid_str": "" - }, - "id_str": "721652435448234212", - "modules": { - "module_author": { - "face": "https://i0.hdslb.com/bfs/face/d7c4e2618aba8cc8d26d975274ca82de46c0e6c7.jpg", - "face_nft": false, - "following": true, - "jump_url": "//space.bilibili.com/700634784/dynamic", - "label": "", - "mid": 700634784, - "name": "飓风商店MediaStore", - "official_verify": { - "desc": "", - "type": -1 - }, - "pendant": { - "expire": 0, - "image": "", - "image_enhance": "", - "image_enhance_frame": "", - "name": "", - "pid": 0 - }, - "pub_action": "投稿了视频", - "pub_time": "", - "pub_ts": 1666861201, - "type": "AUTHOR_TYPE_NORMAL", - "vip": { - "avatar_subscript": 1, - "avatar_subscript_url": "", - "due_date": 1678896000000, - "label": { - "bg_color": "#FB7299", - "bg_style": 1, - "border_color": "", - "img_label_uri_hans": "", - "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png", - "img_label_uri_hant": "", - "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png", - "label_theme": "annual_vip", - "path": "", - "text": "年度大会员", - "text_color": "#FFFFFF", - "use_img_label": true - }, - "nickname_color": "#FB7299", - "status": 1, - "theme_type": 0, - "type": 2 - } - }, - "module_dynamic": { - "additional": null, - "desc": { - "rich_text_nodes": [ - { - "orig_text": "它终于来了!", - "text": "它终于来了!", - "type": "RICH_TEXT_NODE_TYPE_TEXT" - } - ], - "text": "它终于来了!" - }, - "major": { - "archive": { - "aid": "689382529", - "badge": { - "bg_color": "#FB7299", - "color": "#FFFFFF", - "text": "投稿视频" - }, - "bvid": "BV1Sm4y1w7Pv", - "cover": "http://i0.hdslb.com/bfs/archive/aeda1caf342fe4d9200831f05bc6289d04d9c93d.jpg", - "desc": "iPad保护壳还有什么可能?又又又花一年磨一个产品,让你的iPad mini不只是泡面盖~\n预售已开启,感兴趣的同学可以手淘搜索【影视飓风】查看更多信息!", - "disable_preview": 0, - "duration_text": "01:05", - "jump_url": "//www.bilibili.com/video/BV1Sm4y1w7Pv", - "stat": { - "danmaku": "83", - "play": "13.2万" - }, - "title": "可能是iPad mini最佳拍档?平移拓展保护壳发布!", - "type": 1 - }, - "type": "MAJOR_TYPE_ARCHIVE" - }, - "topic": null - } - }, - "type": "DYNAMIC_TYPE_AV", - "visible": true - }, - "type": "DYNAMIC_TYPE_FORWARD", - "visible": true - }, - { - "basic": { - "comment_id_str": "517103418", - "comment_type": 1, - "like_icon": { - "action_url": "", - "end_url": "", - "id": 0, - "start_url": "" - }, - "rid_str": "517103418" - }, - "id_str": "722800763675344953", - "modules": { - "module_author": { - "face": "https://i0.hdslb.com/bfs/face/f4d39ce4c3a5a306de2e5bb51fcae9a6c4f95215.jpg", - "face_nft": false, - "following": true, - "jump_url": "//space.bilibili.com/29440965/dynamic", - "label": "", - "mid": 29440965, - "name": "超级小桀的日常", - "official_verify": { - "desc": "", - "type": 0 - }, - "pendant": { - "expire": 0, - "image": "", - "image_enhance": "", - "image_enhance_frame": "", - "name": "", - "pid": 0 - }, - "pub_action": "投稿了视频", - "pub_location_text": "", - "pub_time": "23分钟前", - "pub_ts": 1667128567, - "type": "AUTHOR_TYPE_NORMAL", - "vip": { - "avatar_subscript": 1, - "avatar_subscript_url": "", - "due_date": 1718208000000, - "label": { - "bg_color": "#FB7299", - "bg_style": 1, - "border_color": "", - "img_label_uri_hans": "", - "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png", - "img_label_uri_hant": "", - "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png", - "label_theme": "annual_vip", - "path": "", - "text": "年度大会员", - "text_color": "#FFFFFF", - "use_img_label": true - }, - "nickname_color": "#FB7299", - "status": 1, - "theme_type": 0, - "type": 2 - } - }, - "module_dynamic": { - "additional": null, - "desc": { - "rich_text_nodes": [ - { - "jump_url": "//search.bilibili.com/all?keyword=%2374751%23", - "orig_text": "#74751#", - "text": "#74751#", - "type": "RICH_TEXT_NODE_TYPE_TOPIC" - }, - { - "jump_url": "//search.bilibili.com/all?keyword=%23%E8%B6%85%E7%BA%A7%E5%B0%8F%E6%A1%80%23", - "orig_text": "#超级小桀#", - "text": "#超级小桀#", - "type": "RICH_TEXT_NODE_TYPE_TOPIC" - }, - { - "jump_url": "//search.bilibili.com/all?keyword=%23%E5%8D%95%E6%9C%BA%E6%B8%B8%E6%88%8F%23", - "orig_text": "#单机游戏#", - "text": "#单机游戏#", - "type": "RICH_TEXT_NODE_TYPE_TOPIC" - }, - { - "jump_url": "//search.bilibili.com/all?keyword=%23%E8%B6%85%E7%BA%A7%E9%A9%AC%E9%87%8C%E5%A5%A5%E5%88%B6%E9%80%A02%23", - "orig_text": "#超级马里奥制造2#", - "text": "#超级马里奥制造2#", - "type": "RICH_TEXT_NODE_TYPE_TOPIC" - } - ], - "text": "#74751##超级小桀##单机游戏##超级马里奥制造2#" - }, - "major": { - "archive": { - "aid": "517103418", - "badge": { - "bg_color": "#FB7299", - "color": "#FFFFFF", - "text": "投稿视频" - }, - "bvid": "BV1wg41167M7", - "cover": "http://i2.hdslb.com/bfs/archive/1345ac18a6d41b26f5713669ac67ec1ad999acd4.png", - "desc": "相关游戏: 马里奥制造2\n简介补充: 超级小桀2022年10月30日直播录像", - "disable_preview": 0, - "duration_text": "4:31:43", - "jump_url": "//www.bilibili.com/video/BV1wg41167M7", - "stat": { - "danmaku": "6", - "play": "2384" - }, - "title": "【超级小桀】2022年10月30日直播录像", - "type": 1 - }, - "type": "MAJOR_TYPE_ARCHIVE" - }, - "topic": null - }, - "module_more": { - "three_point_items": [ - { - "label": "取消关注", - "type": "THREE_POINT_FOLLOWING" - }, - { - "label": "举报", - "type": "THREE_POINT_REPORT" - } - ] - }, - "module_stat": { - "comment": { - "count": 10, - "forbidden": false - }, - "forward": { - "count": 1, - "forbidden": false - }, - "like": { - "count": 440, - "forbidden": false, - "status": false - } - } - }, - "type": "DYNAMIC_TYPE_AV", - "visible": true - }, - { - "basic": { - "comment_id_str": "559611166", - "comment_type": 1, - "like_icon": { - "action_url": "", - "end_url": "", - "id": 0, - "start_url": "" - }, - "rid_str": "559611166" - }, - "id_str": "722800493104988181", - "modules": { - "module_author": { - "face": "https://i2.hdslb.com/bfs/face/86fbb87fdf4d5ec1ba3bb7b56131d8265d36ffcd.jpg", - "face_nft": false, - "following": true, - "jump_url": "//space.bilibili.com/8263502/dynamic", - "label": "", - "mid": 8263502, - "name": "橙飞一下", - "official_verify": { - "desc": "", - "type": 0 - }, - "pendant": { - "expire": 0, - "image": "", - "image_enhance": "", - "image_enhance_frame": "", - "name": "", - "pid": 0 - }, - "pub_action": "投稿了视频", - "pub_location_text": "", - "pub_time": "24分钟前", - "pub_ts": 1667128504, - "type": "AUTHOR_TYPE_NORMAL", - "vip": { - "avatar_subscript": 1, - "avatar_subscript_url": "", - "due_date": 1696003200000, - "label": { - "bg_color": "#FB7299", - "bg_style": 1, - "border_color": "", - "img_label_uri_hans": "", - "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png", - "img_label_uri_hant": "", - "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png", - "label_theme": "annual_vip", - "path": "", - "text": "年度大会员", - "text_color": "#FFFFFF", - "use_img_label": true - }, - "nickname_color": "#FB7299", - "status": 1, - "theme_type": 0, - "type": 2 - } - }, - "module_dynamic": { - "additional": null, - "desc": { - "rich_text_nodes": [ - { - "orig_text": "小火锅自助【官客旋转小火锅,天津,南开区,西南角,火锅,自助餐】", - "text": "小火锅自助【官客旋转小火锅,天津,南开区,西南角,火锅,自助餐】", - "type": "RICH_TEXT_NODE_TYPE_TEXT" - } - ], - "text": "小火锅自助【官客旋转小火锅,天津,南开区,西南角,火锅,自助餐】" - }, - "major": { - "archive": { - "aid": "559611166", - "badge": { - "bg_color": "#FB7299", - "color": "#FFFFFF", - "text": "投稿视频" - }, - "bvid": "BV1De4y127gB", - "cover": "http://i1.hdslb.com/bfs/archive/d4369b1167ce3cf8020d96b747e5b3abf378f08e.jpg", - "desc": "店名:官客·自助旋转小火锅;\n地址:天津南开区南开五马路与广开中街交口\n(近西南角地铁站);\n价格:29元;\n\n标准的旋转小火锅自助,没有肉类,菜品干净,麻酱味道可以。菜品穿了签子,不是用夹子的。\n下午也营业,适合近的人来尝尝。", - "disable_preview": 0, - "duration_text": "08:20", - "jump_url": "//www.bilibili.com/video/BV1De4y127gB", - "stat": { - "danmaku": "84", - "play": "1.3万" - }, - "title": "简简单单吃个小火锅,银耳好好吃!天津西南角旋转小火锅29元一位", - "type": 1 - }, - "type": "MAJOR_TYPE_ARCHIVE" - }, - "topic": null - }, - "module_interaction": { - "items": [ - { - "desc": { - "rich_text_nodes": [ - { - "orig_text": "daitouemabi:", - "rid": "346339495", - "text": "daitouemabi:", - "type": "RICH_TEXT_NODE_TYPE_AT" - }, - { - "orig_text": "对于我这种一顿张亮四十多的人来说任何自助小火锅都是划算的", - "text": "对于我这种一顿张亮四十多的人来说任何自助小火锅都是划算的", - "type": "RICH_TEXT_NODE_TYPE_TEXT" - } - ], - "text": "对于我这种一顿张亮四十多的人来说任何自助小火锅都是划算的" - }, - "type": 1 - } - ] - }, - "module_more": { - "three_point_items": [ - { - "label": "取消关注", - "type": "THREE_POINT_FOLLOWING" - }, - { - "label": "举报", - "type": "THREE_POINT_REPORT" - } - ] - }, - "module_stat": { - "comment": { - "count": 125, - "forbidden": false - }, - "forward": { - "count": 10, - "forbidden": false - }, - "like": { - "count": 1274, - "forbidden": false, - "status": false - } - } - }, - "type": "DYNAMIC_TYPE_AV", - "visible": true - }, - { - "basic": { - "comment_id_str": "304540547", - "comment_type": 1, - "like_icon": { - "action_url": "", - "end_url": "", - "id": 0, - "start_url": "" - }, - "rid_str": "304540547" - }, - "id_str": "722800475917779008", - "modules": { - "module_author": { - "decorate": { - "card_url": "http://i0.hdslb.com/bfs/vip/f11e84bd3da5902ea912145cd7cb3d54c04c3c27.png", - "fan": { - "color": "", - "is_fan": false, - "num_str": "", - "number": 0 - }, - "id": 6, - "jump_url": "https://www.bilibili.com/h5/mall/preview/feed/6?navhide=1&isdiy=0", - "name": "喂看见耳朵啦", - "type": 2 - }, - "face": "https://i2.hdslb.com/bfs/face/d20e0d85266199514a582a692e5c6b37633a7eeb.jpg", - "face_nft": false, - "following": true, - "jump_url": "//space.bilibili.com/8931689/dynamic", - "label": "", - "mid": 8931689, - "name": "桔子味的天", - "official_verify": { - "desc": "", - "type": 0 - }, - "pendant": { - "expire": 0, - "image": "", - "image_enhance": "", - "image_enhance_frame": "", - "name": "", - "pid": 0 - }, - "pub_action": "与他人联合创作", - "pub_location_text": "", - "pub_time": "24分钟前", - "pub_ts": 1667128500, - "type": "AUTHOR_TYPE_NORMAL", - "vip": { - "avatar_subscript": 1, - "avatar_subscript_url": "", - "due_date": 1674576000000, - "label": { - "bg_color": "#FB7299", - "bg_style": 1, - "border_color": "", - "img_label_uri_hans": "", - "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png", - "img_label_uri_hant": "", - "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png", - "label_theme": "annual_vip", - "path": "", - "text": "年度大会员", - "text_color": "#FFFFFF", - "use_img_label": true - }, - "nickname_color": "#FB7299", - "status": 1, - "theme_type": 0, - "type": 2 - } - }, - "module_dynamic": { - "additional": null, - "desc": null, - "major": { - "archive": { - "aid": "304540547", - "badge": { - "bg_color": "#FB7299", - "color": "#FFFFFF", - "text": "合作视频" - }, - "bvid": "BV1EP411P7Hm", - "cover": "http://i2.hdslb.com/bfs/archive/d6589e112d3d0c26282dfd83be38df1e59a1f67c.jpg", - "desc": "啊是宁波女仆", - "disable_preview": 0, - "duration_text": "00:24", - "jump_url": "//www.bilibili.com/video/BV1EP411P7Hm", - "stat": { - "danmaku": "0", - "play": "338" - }, - "title": "凯申口音の女仆装", - "type": 1 - }, - "type": "MAJOR_TYPE_ARCHIVE" - }, - "topic": null - }, - "module_more": { - "three_point_items": [ - { - "label": "取消关注", - "type": "THREE_POINT_FOLLOWING" - }, - { - "label": "举报", - "type": "THREE_POINT_REPORT" - } - ] - }, - "module_stat": { - "comment": { - "count": 4, - "forbidden": false - }, - "forward": { - "count": 0, - "forbidden": false - }, - "like": { - "count": 101, - "forbidden": false, - "status": false - } - } - }, - "type": "DYNAMIC_TYPE_AV", - "visible": true - }, - { - "basic": { - "comment_id_str": "219580392", - "comment_type": 1, - "like_icon": { - "action_url": "", - "end_url": "", - "id": 0, - "start_url": "" - }, - "rid_str": "219580392" - }, - "id_str": "722799788730351736", - "modules": { - "module_author": { - "face": "https://archive.biliimg.com/bfs/archive/1d720064ed34ba4c19326a77b17a9404351c3a8d.jpg", - "face_nft": false, - "following": false, - "jump_url": "//www.bilibili.com/video/av219580392", - "label": "合集", - "mid": 219580392, - "name": "纪录片《流言终结者》", - "pub_action": "探索哥t更新了合集", - "pub_time": "27分钟前", - "pub_ts": 1667128340, - "type": "AUTHOR_TYPE_UGC_SEASON" - }, - "module_dynamic": { - "additional": null, - "desc": null, - "major": { - "type": "MAJOR_TYPE_UGC_SEASON", - "ugc_season": { - "aid": 219580392, - "badge": { - "bg_color": "#FB7299", - "color": "#FFFFFF", - "text": "合集" - }, - "cover": "http://i0.hdslb.com/bfs/archive/b94c2e41853f2f2e3a57023a39b8837c8810456b.jpg", - "desc": "安全气囊爆炸可能使人爆头?", - "disable_preview": 0, - "duration_text": "02:32", - "jump_url": "//www.bilibili.com/video/BV1j8411Y7Fi", - "stat": { - "danmaku": "0", - "play": "85" - }, - "title": "流言终结者:安全气囊爆炸可能使人爆头?" - } - }, - "topic": null - }, - "module_more": { - "three_point_items": [ - { - "label": "举报", - "type": "THREE_POINT_REPORT" - } - ] - }, - "module_stat": { - "comment": { - "count": 0, - "forbidden": false - }, - "forward": { - "count": 0, - "forbidden": false - }, - "like": { - "count": 12, - "forbidden": false, - "status": false - } - } - }, - "type": "DYNAMIC_TYPE_UGC_SEASON", - "visible": true + "pub_action": "投稿了视频", + "pub_location_text": "", + "pub_time": "刚刚", + "pub_ts": 1723959548, + "type": "AUTHOR_TYPE_NORMAL", + "vip": { + "avatar_subscript": 0, + "avatar_subscript_url": "", + "due_date": 0, + "label": { + "bg_color": "", + "bg_style": 0, + "border_color": "", + "img_label_uri_hans": "", + "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/d7b702ef65a976b20ed854cbd04cb9e27341bb79.png", + "img_label_uri_hant": "", + "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/KJunwh19T5.png", + "label_theme": "", + "path": "", + "text": "", + "text_color": "", + "use_img_label": true + }, + "nickname_color": "", + "status": 0, + "theme_type": 0, + "type": 0 } - ], - "offset": "722799788730351736", - "update_baseline": "722806776626413588", - "update_num": 1 - } + }, + "module_dynamic": { + "additional": null, + "desc": null, + "major": { + "archive": { + "aid": "112981396619958", + "badge": { + "bg_color": "#FB7299", + "color": "#FFFFFF", + "icon_url": null, + "text": "投稿视频" + }, + "bvid": "BV1oeWNebEv2", + "cover": "http://i2.hdslb.com/bfs/archive/0e3d26d90eb0642d90c7552e63ce690e2fe7f8ce.jpg", + "desc": "给老板娘贴睫毛贴了半天,老登眼皮总动,夹睫毛疼了还骂我,不开心哈哈哈。", + "disable_preview": 0, + "duration_text": "00:16", + "jump_url": "//www.bilibili.com/video/BV1oeWNebEv2/", + "stat": { + "danmaku": "0", + "play": "0" + }, + "title": "老板娘今天是可爱鬼呀!", + "type": 1 + }, + "type": "MAJOR_TYPE_ARCHIVE" + }, + "topic": null + }, + "module_more": { + "three_point_items": [ + { + "label": "取消关注", + "type": "THREE_POINT_FOLLOWING" + }, + { + "label": "举报", + "type": "THREE_POINT_REPORT" + } + ] + }, + "module_stat": { + "comment": { + "count": 0, + "forbidden": false + }, + "forward": { + "count": 0, + "forbidden": false + }, + "like": { + "count": 0, + "forbidden": false, + "status": false + } + } + }, + "type": "DYNAMIC_TYPE_AV", + "visible": true + }, + { + "basic": { + "comment_id_str": "1756441068", + "comment_type": 1, + "like_icon": { + "action_url": "", + "end_url": "", + "id": 0, + "start_url": "" + }, + "rid_str": "1756441068" + }, + "id_str": "966873782060843027", + "modules": { + "module_author": { + "avatar": { + "container_size": { + "height": 1.35, + "width": 1.35 + }, + "fallback_layers": { + "is_critical_group": true, + "layers": [ + { + "general_spec": { + "pos_spec": { + "axis_x": 0.675, + "axis_y": 0.675, + "coordinate_pos": 2 + }, + "render_spec": { + "opacity": 1 + }, + "size_spec": { + "height": 1, + "width": 1 + } + }, + "layer_config": { + "is_critical": true, + "tags": { + "AVATAR_LAYER": {}, + "GENERAL_CFG": { + "config_type": 1, + "general_config": { + "web_css_style": { + "borderRadius": "50%" + } + } + } + } + }, + "resource": { + "res_image": { + "image_src": { + "placeholder": 6, + "remote": { + "bfs_style": "widget-layer-avatar", + "url": "https://i0.hdslb.com/bfs/face/726060100f7b80f3ab17889aa9fb8f380a53b9da.jpg" + }, + "src_type": 1 + } + }, + "res_type": 3 + }, + "visible": true + }, + { + "general_spec": { + "pos_spec": { + "axis_x": 0.8000000000000002, + "axis_y": 0.8000000000000002, + "coordinate_pos": 1 + }, + "render_spec": { + "opacity": 1 + }, + "size_spec": { + "height": 0.41666666666666663, + "width": 0.41666666666666663 + } + }, + "layer_config": { + "tags": { + "GENERAL_CFG": { + "config_type": 1, + "general_config": { + "web_css_style": { + "background-color": "rgb(255,255,255)", + "border": "2px solid rgba(255,255,255,1)", + "borderRadius": "50%", + "boxSizing": "border-box" + } + } + }, + "ICON_LAYER": {} + } + }, + "resource": { + "res_image": { + "image_src": { + "local": 3, + "src_type": 2 + } + }, + "res_type": 3 + }, + "visible": true + } + ] + }, + "mid": "266765166" + }, + "face": "https://i0.hdslb.com/bfs/face/726060100f7b80f3ab17889aa9fb8f380a53b9da.jpg", + "face_nft": false, + "following": true, + "jump_url": "//space.bilibili.com/266765166/dynamic", + "label": "", + "mid": 266765166, + "name": "漫士沉思录", + "official_verify": { + "desc": "", + "type": 0 + }, + "pendant": { + "expire": 0, + "image": "", + "image_enhance": "", + "image_enhance_frame": "", + "n_pid": 0, + "name": "", + "pid": 0 + }, + "pub_action": "投稿了视频", + "pub_location_text": "", + "pub_time": "55分钟前", + "pub_ts": 1723956245, + "type": "AUTHOR_TYPE_NORMAL", + "vip": { + "avatar_subscript": 0, + "avatar_subscript_url": "", + "due_date": 0, + "label": { + "bg_color": "", + "bg_style": 0, + "border_color": "", + "img_label_uri_hans": "", + "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/d7b702ef65a976b20ed854cbd04cb9e27341bb79.png", + "img_label_uri_hant": "", + "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/KJunwh19T5.png", + "label_theme": "", + "path": "", + "text": "", + "text_color": "", + "use_img_label": true + }, + "nickname_color": "", + "status": 0, + "theme_type": 0, + "type": 0 + } + }, + "module_dynamic": { + "additional": null, + "desc": null, + "major": { + "archive": { + "aid": "1756441068", + "badge": { + "bg_color": "#FB7299", + "color": "#FFFFFF", + "icon_url": null, + "text": "投稿视频" + }, + "bvid": "BV1d4421Z7nW", + "cover": "http://i1.hdslb.com/bfs/archive/df067c178714da9b511f10bde11e1bc75ea676d9.jpg", + "desc": "使用3b1b开发的manim引擎制作", + "disable_preview": 0, + "duration_text": "14:25", + "jump_url": "//www.bilibili.com/video/BV1d4421Z7nW/", + "stat": { + "danmaku": "217", + "play": "1.4万" + }, + "title": "【漫士科普】如何最简单且本质地理解欧拉公式?", + "type": 1 + }, + "type": "MAJOR_TYPE_ARCHIVE" + }, + "topic": null + }, + "module_more": { + "three_point_items": [ + { + "label": "取消关注", + "type": "THREE_POINT_FOLLOWING" + }, + { + "label": "举报", + "type": "THREE_POINT_REPORT" + } + ] + }, + "module_stat": { + "comment": { + "count": 142, + "forbidden": false + }, + "forward": { + "count": 6, + "forbidden": false + }, + "like": { + "count": 1959, + "forbidden": false, + "status": false + } + } + }, + "type": "DYNAMIC_TYPE_AV", + "visible": true + }, + { + "basic": { + "comment_id_str": "325833790", + "comment_type": 11, + "like_icon": { + "action_url": "", + "end_url": "", + "id": 0, + "start_url": "" + }, + "rid_str": "325833790" + }, + "id_str": "966831498138222598", + "modules": { + "module_author": { + "avatar": { + "container_size": { + "height": 1.375, + "width": 1.375 + }, + "fallback_layers": { + "is_critical_group": true, + "layers": [ + { + "general_spec": { + "pos_spec": { + "axis_x": 0.6875, + "axis_y": 0.6875, + "coordinate_pos": 2 + }, + "render_spec": { + "opacity": 1 + }, + "size_spec": { + "height": 0.787, + "width": 0.787 + } + }, + "layer_config": { + "is_critical": true, + "tags": { + "AVATAR_LAYER": {}, + "GENERAL_CFG": { + "config_type": 1, + "general_config": { + "web_css_style": { + "borderRadius": "50%" + } + } + } + } + }, + "resource": { + "res_image": { + "image_src": { + "placeholder": 6, + "remote": { + "bfs_style": "widget-layer-avatar", + "url": "https://i1.hdslb.com/bfs/face/1fd5b43d5f619e6df8c8adcf13c962a3e80ee971.jpg" + }, + "src_type": 1 + } + }, + "res_type": 3 + }, + "visible": true + }, + { + "general_spec": { + "pos_spec": { + "axis_x": 0.6875, + "axis_y": 0.6875, + "coordinate_pos": 2 + }, + "render_spec": { + "opacity": 1 + }, + "size_spec": { + "height": 1.375, + "width": 1.375 + } + }, + "layer_config": { + "tags": { + "PENDENT_LAYER": {} + } + }, + "resource": { + "res_image": { + "image_src": { + "remote": { + "bfs_style": "widget-layer-avatar", + "url": "https://i1.hdslb.com/bfs/garb/item/fe1267f786bf69f1471aff715f8d38ec0e486df5.png" + }, + "src_type": 1 + } + }, + "res_type": 3 + }, + "visible": true + }, + { + "general_spec": { + "pos_spec": { + "axis_x": 0.7560000000000001, + "axis_y": 0.7726666666666667, + "coordinate_pos": 1 + }, + "render_spec": { + "opacity": 1 + }, + "size_spec": { + "height": 0.41666666666666663, + "width": 0.41666666666666663 + } + }, + "layer_config": { + "tags": { + "GENERAL_CFG": { + "config_type": 1, + "general_config": { + "web_css_style": { + "background-color": "rgb(255,255,255)", + "border": "2px solid rgba(255,255,255,1)", + "borderRadius": "50%", + "boxSizing": "border-box" + } + } + }, + "ICON_LAYER": {} + } + }, + "resource": { + "res_image": { + "image_src": { + "local": 4, + "src_type": 2 + } + }, + "res_type": 3 + }, + "visible": true + } + ] + }, + "layers": [ + { + "is_critical_group": true, + "layers": [ + { + "general_spec": { + "pos_spec": { + "axis_x": 0.6875, + "axis_y": 0.6875, + "coordinate_pos": 2 + }, + "render_spec": { + "opacity": 1 + }, + "size_spec": { + "height": 0.787, + "width": 0.787 + } + }, + "layer_config": { + "is_critical": true, + "tags": { + "AVATAR_LAYER": {}, + "GENERAL_CFG": { + "config_type": 1, + "general_config": { + "web_css_style": { + "borderRadius": "50%" + } + } + } + } + }, + "resource": { + "res_image": { + "image_src": { + "placeholder": 6, + "remote": { + "bfs_style": "widget-layer-avatar", + "url": "https://i1.hdslb.com/bfs/face/1fd5b43d5f619e6df8c8adcf13c962a3e80ee971.jpg" + }, + "src_type": 1 + } + }, + "res_type": 3 + }, + "visible": true + } + ] + }, + { + "layers": [ + { + "general_spec": { + "pos_spec": { + "axis_x": 0.6875, + "axis_y": 0.6875, + "coordinate_pos": 2 + }, + "render_spec": { + "opacity": 1 + }, + "size_spec": { + "height": 1.375, + "width": 1.375 + } + }, + "layer_config": { + "tags": { + "PENDENT_LAYER": {} + } + }, + "resource": { + "res_animation": { + "webp_src": { + "remote": { + "bfs_style": "widget-layer-avatar", + "url": "https://i1.hdslb.com/bfs/garb/item/0aa9fd33133ed3fd9f11c857cc6ca848d6804113.webp" + }, + "src_type": 1 + } + }, + "res_type": 4 + }, + "visible": true + } + ] + }, + { + "layers": [ + { + "general_spec": { + "pos_spec": { + "axis_x": 0.7560000000000001, + "axis_y": 0.7726666666666667, + "coordinate_pos": 1 + }, + "render_spec": { + "opacity": 1 + }, + "size_spec": { + "height": 0.41666666666666663, + "width": 0.41666666666666663 + } + }, + "layer_config": { + "tags": { + "GENERAL_CFG": { + "config_type": 1, + "general_config": { + "web_css_style": { + "background-color": "rgb(255,255,255)", + "border": "2px solid rgba(255,255,255,1)", + "borderRadius": "50%", + "boxSizing": "border-box" + } + } + }, + "ICON_LAYER": {} + } + }, + "resource": { + "res_image": { + "image_src": { + "local": 4, + "src_type": 2 + } + }, + "res_type": 3 + }, + "visible": true + } + ] + } + ], + "mid": "233114659" + }, + "decorate": { + "card_url": "https://i0.hdslb.com/bfs/garb/bb140043341137b879e957d09b649ce7c3257820.png", + "fan": { + "color": "#903AC2", + "color_format": { + "colors": [ + "#903AC2FF", + "#903AC2FF" + ], + "end_point": "0,100", + "gradients": [ + 0, + 100 + ], + "start_point": "0,0" + }, + "is_fan": true, + "num_prefix": "NO.", + "num_str": "000001", + "number": 1 + }, + "id": 1706163888001, + "jump_url": "https://www.bilibili.com/h5/mall/equity-link/collect-home?item_id=1706163888001\u0026isdiy=0\u0026part=card\u0026from=post\u0026f_source=garb\u0026vmid=233114659\u0026native.theme=1\u0026navhide=1", + "name": "龙腾啾跃-动态卡片粉丝", + "type": 3 + }, + "face": "https://i1.hdslb.com/bfs/face/1fd5b43d5f619e6df8c8adcf13c962a3e80ee971.jpg", + "face_nft": false, + "following": true, + "jump_url": "//space.bilibili.com/233114659/dynamic", + "label": "", + "mid": 233114659, + "name": "碧蓝航线", + "official_verify": { + "desc": "", + "type": 1 + }, + "pendant": { + "expire": 0, + "image": "https://i1.hdslb.com/bfs/garb/item/fe1267f786bf69f1471aff715f8d38ec0e486df5.png", + "image_enhance": "https://i1.hdslb.com/bfs/garb/item/0aa9fd33133ed3fd9f11c857cc6ca848d6804113.webp", + "image_enhance_frame": "https://i1.hdslb.com/bfs/garb/item/3052b412defbbc7704e887fefde8de539e8027c5.png", + "n_pid": 1987, + "name": "碧蓝航线2020", + "pid": 1987 + }, + "pub_action": "", + "pub_location_text": "", + "pub_time": "3小时前", + "pub_ts": 1723946400, + "type": "AUTHOR_TYPE_NORMAL", + "vip": { + "avatar_subscript": 1, + "avatar_subscript_url": "", + "due_date": 1729526400000, + "label": { + "bg_color": "#FB7299", + "bg_style": 1, + "border_color": "", + "img_label_uri_hans": "", + "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png", + "img_label_uri_hant": "", + "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png", + "label_theme": "annual_vip", + "path": "", + "text": "年度大会员", + "text_color": "#FFFFFF", + "use_img_label": true + }, + "nickname_color": "#FB7299", + "status": 1, + "theme_type": 0, + "type": 2 + } + }, + "module_dynamic": { + "additional": { + "common": { + "button": { + "jump_style": { + "icon_url": "", + "text": "进入" + }, + "jump_url": "https://www.biligame.com/detail?id=97\u0026sourceFrom=1005", + "type": 1 + }, + "cover": "https://i0.hdslb.com/bfs/game/b141a7690c226a0eae66518c713d3af62613b21d.png", + "desc1": "养成", + "desc2": "指挥官,欢迎回港", + "head_text": "相关游戏", + "id_str": "97", + "jump_url": "https://www.biligame.com/detail?id=97\u0026sourceFrom=1005", + "style": 1, + "sub_type": "game", + "title": "碧蓝航线" + }, + "type": "ADDITIONAL_TYPE_COMMON" + }, + "desc": { + "rich_text_nodes": [ + { + "jump_url": "//search.bilibili.com/all?keyword=%E7%A2%A7%E8%93%9D%E8%88%AA%E7%BA%BF", + "orig_text": "#碧蓝航线#", + "text": "#碧蓝航线#", + "type": "RICH_TEXT_NODE_TYPE_TOPIC" + }, + { + "orig_text": " ", + "text": " ", + "type": "RICH_TEXT_NODE_TYPE_TEXT" + }, + { + "jump_url": "//search.bilibili.com/all?keyword=%E7%A2%A7%E8%93%9D%E8%88%AA%E7%BA%BF%E6%BC%AB%E5%B1%95", + "orig_text": "#碧蓝航线漫展#", + "text": "#碧蓝航线漫展#", + "type": "RICH_TEXT_NODE_TYPE_TOPIC" + }, + { + "orig_text": " ", + "text": " ", + "type": "RICH_TEXT_NODE_TYPE_TEXT" + }, + { + "jump_url": "//search.bilibili.com/all?keyword=2024%E6%B8%AF%E5%8C%BA%E7%9B%9B%E5%A4%8F%E6%B8%85%E5%87%89%E8%8A%82", + "orig_text": "#2024港区盛夏清凉节#", + "text": "#2024港区盛夏清凉节#", + "type": "RICH_TEXT_NODE_TYPE_TOPIC" + }, + { + "orig_text": "\n◆ 「港区盛夏清凉节」长沙站·街区快闪 DAY1 现场直击!◆ \n\n城市街巷,专属惊喜,\n绘就绚丽夏日!\n和少女们一同记录这场特别邂逅吧!\n\n◆ 互动游戏开放时间:2024年8月17日~8月18日,每日10:00~12:00及14:00~19:00\n◆ 街区快闪体验地址:湖南省长沙市开福区潮宗街历史文化街区\n◆ 参与方式:无需预约,前往现场即可参与体验~\n◆ 体验须知:\n※8月17日~8月18日期间,指挥官可前往潮宗街历史文化街区现场参与体验。\n※指挥官关注《碧蓝航线》官方B站账号后,可参与互动游戏,集章兑换周边礼品哟!\n※兑换周边每日数量有限,兑完即止。\n※天气炎热,请指挥官做好防暑准备,出行注意安全哟。", + "text": "\n◆ 「港区盛夏清凉节」长沙站·街区快闪 DAY1 现场直击!◆ \n\n城市街巷,专属惊喜,\n绘就绚丽夏日!\n和少女们一同记录这场特别邂逅吧!\n\n◆ 互动游戏开放时间:2024年8月17日~8月18日,每日10:00~12:00及14:00~19:00\n◆ 街区快闪体验地址:湖南省长沙市开福区潮宗街历史文化街区\n◆ 参与方式:无需预约,前往现场即可参与体验~\n◆ 体验须知:\n※8月17日~8月18日期间,指挥官可前往潮宗街历史文化街区现场参与体验。\n※指挥官关注《碧蓝航线》官方B站账号后,可参与互动游戏,集章兑换周边礼品哟!\n※兑换周边每日数量有限,兑完即止。\n※天气炎热,请指挥官做好防暑准备,出行注意安全哟。", + "type": "RICH_TEXT_NODE_TYPE_TEXT" + } + ], + "text": "#碧蓝航线# #碧蓝航线漫展# #2024港区盛夏清凉节#\n◆ 「港区盛夏清凉节」长沙站·街区快闪 DAY1 现场直击!◆ \n\n城市街巷,专属惊喜,\n绘就绚丽夏日!\n和少女们一同记录这场特别邂逅吧!\n\n◆ 互动游戏开放时间:2024年8月17日~8月18日,每日10:00~12:00及14:00~19:00\n◆ 街区快闪体验地址:湖南省长沙市开福区潮宗街历史文化街区\n◆ 参与方式:无需预约,前往现场即可参与体验~\n◆ 体验须知:\n※8月17日~8月18日期间,指挥官可前往潮宗街历史文化街区现场参与体验。\n※指挥官关注《碧蓝航线》官方B站账号后,可参与互动游戏,集章兑换周边礼品哟!\n※兑换周边每日数量有限,兑完即止。\n※天气炎热,请指挥官做好防暑准备,出行注意安全哟。" + }, + "major": { + "draw": { + "id": 325833790, + "items": [ + { + "height": 4000, + "size": 16103.947, + "src": "http://i0.hdslb.com/bfs/new_dyn/31b32e6dcf2f1a6328552f0fa666302d233114659.jpg", + "tags": [], + "width": 6000 + }, + { + "height": 3905, + "size": 16620.71, + "src": "http://i0.hdslb.com/bfs/new_dyn/e507c60207f486824708a5850d07d1bb233114659.jpg", + "tags": [], + "width": 5858 + }, + { + "height": 4000, + "size": 16195.393, + "src": "http://i0.hdslb.com/bfs/new_dyn/7a7ef9513bb32edc3de887d787a4df43233114659.jpg", + "tags": [], + "width": 6000 + }, + { + "height": 4672, + "size": 11758.82, + "src": "http://i0.hdslb.com/bfs/new_dyn/a21461b944e10306e68672df3e92c1b9233114659.jpg", + "tags": [], + "width": 7008 + }, + { + "height": 4672, + "size": 3962.4902, + "src": "http://i0.hdslb.com/bfs/new_dyn/b2c4baa47b4999cabb9c8c338c2da36c233114659.jpg", + "tags": [], + "width": 7008 + }, + { + "height": 4672, + "size": 11276.51, + "src": "http://i0.hdslb.com/bfs/new_dyn/8cf06e142fce875d2c3b83961abbc668233114659.jpg", + "tags": [], + "width": 7008 + }, + { + "height": 3735, + "size": 13969.533, + "src": "http://i0.hdslb.com/bfs/new_dyn/c56cd277f281ba8cc4a395dbe5d9fa54233114659.jpg", + "tags": [], + "width": 5603 + }, + { + "height": 3106, + "size": 12942.339, + "src": "http://i0.hdslb.com/bfs/new_dyn/9049a5c39ebafdd1cb488b26da4f99da233114659.jpg", + "tags": [], + "width": 4659 + }, + { + "height": 3802, + "size": 18643.953, + "src": "http://i0.hdslb.com/bfs/new_dyn/564e469ba092d2381b23547da37ca3c0233114659.jpg", + "tags": [], + "width": 5703 + } + ] + }, + "type": "MAJOR_TYPE_DRAW" + }, + "topic": null + }, + "module_more": { + "three_point_items": [ + { + "label": "取消关注", + "type": "THREE_POINT_FOLLOWING" + }, + { + "label": "举报", + "type": "THREE_POINT_REPORT" + } + ] + }, + "module_stat": { + "comment": { + "count": 151, + "forbidden": false + }, + "forward": { + "count": 31, + "forbidden": false + }, + "like": { + "count": 2827, + "forbidden": false, + "status": false + } + } + }, + "type": "DYNAMIC_TYPE_DRAW", + "visible": true + }, + { + "basic": { + "comment_id_str": "37231101", + "comment_type": 12, + "like_icon": { + "action_url": "", + "end_url": "", + "id": 0, + "start_url": "" + }, + "rid_str": "37231101" + }, + "id_str": "966827503780888593", + "modules": { + "module_author": { + "avatar": { + "container_size": { + "height": 1.35, + "width": 1.35 + }, + "fallback_layers": { + "is_critical_group": true, + "layers": [ + { + "general_spec": { + "pos_spec": { + "axis_x": 0.675, + "axis_y": 0.675, + "coordinate_pos": 2 + }, + "render_spec": { + "opacity": 1 + }, + "size_spec": { + "height": 1, + "width": 1 + } + }, + "layer_config": { + "is_critical": true, + "tags": { + "AVATAR_LAYER": {}, + "GENERAL_CFG": { + "config_type": 1, + "general_config": { + "web_css_style": { + "borderRadius": "50%" + } + } + } + } + }, + "resource": { + "res_image": { + "image_src": { + "placeholder": 6, + "remote": { + "bfs_style": "widget-layer-avatar", + "url": "https://i0.hdslb.com/bfs/face/978ea07f22e54c2e62f01def8e815b59adacc5d0.jpg" + }, + "src_type": 1 + } + }, + "res_type": 3 + }, + "visible": true + }, + { + "general_spec": { + "pos_spec": { + "axis_x": 0.8000000000000002, + "axis_y": 0.8000000000000002, + "coordinate_pos": 1 + }, + "render_spec": { + "opacity": 1 + }, + "size_spec": { + "height": 0.41666666666666663, + "width": 0.41666666666666663 + } + }, + "layer_config": { + "tags": { + "GENERAL_CFG": { + "config_type": 1, + "general_config": { + "web_css_style": { + "background-color": "rgb(255,255,255)", + "border": "2px solid rgba(255,255,255,1)", + "borderRadius": "50%", + "boxSizing": "border-box" + } + } + }, + "ICON_LAYER": {} + } + }, + "resource": { + "res_image": { + "image_src": { + "local": 4, + "src_type": 2 + } + }, + "res_type": 3 + }, + "visible": true + } + ] + }, + "mid": "407045223" + }, + "decorate": { + "card_url": "https://i0.hdslb.com/bfs/vip/a9e3d993c7a15e88ce0bf714a142f7d2b44121e2.png", + "fan": { + "color": "", + "color_format": null, + "is_fan": false, + "num_prefix": "", + "num_str": "", + "number": 0 + }, + "id": 28, + "jump_url": "https://www.bilibili.com/h5/mall/equity-link/collect-home?item_id=28\u0026isdiy=0\u0026part=card\u0026from=post\u0026f_source=garb\u0026vmid=407045223\u0026native.theme=1\u0026navhide=1", + "name": "2233娘", + "type": 1 + }, + "face": "https://i0.hdslb.com/bfs/face/978ea07f22e54c2e62f01def8e815b59adacc5d0.jpg", + "face_nft": false, + "following": true, + "jump_url": "//space.bilibili.com/407045223/dynamic", + "label": "", + "mid": 407045223, + "name": "二次元的中科院物理所", + "official_verify": { + "desc": "", + "type": 1 + }, + "pendant": { + "expire": 0, + "image": "", + "image_enhance": "", + "image_enhance_frame": "", + "n_pid": 0, + "name": "", + "pid": 0 + }, + "pub_action": "投稿了文章", + "pub_location_text": "", + "pub_time": "3小时前", + "pub_ts": 1723945470, + "type": "AUTHOR_TYPE_NORMAL", + "vip": { + "avatar_subscript": 1, + "avatar_subscript_url": "", + "due_date": 1745769600000, + "label": { + "bg_color": "#FB7299", + "bg_style": 1, + "border_color": "", + "img_label_uri_hans": "", + "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png", + "img_label_uri_hant": "", + "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png", + "label_theme": "annual_vip", + "path": "", + "text": "年度大会员", + "text_color": "#FFFFFF", + "use_img_label": true + }, + "nickname_color": "#FB7299", + "status": 1, + "theme_type": 0, + "type": 2 + } + }, + "module_dynamic": { + "additional": null, + "desc": null, + "major": { + "article": { + "covers": [ + "https://i0.hdslb.com/bfs/article/f59f635a3784c49eb174da7d589c4e75407045223.jpg" + ], + "desc": "西游记中,孙悟空为了保护师傅,在地上画了一个圈,由此便可限制住妖怪。今天小编带大家布置法术场地,只需在上面画出图案,便可控制水滴的行动!实验器材火柴、蜡烛、空易拉罐、所标杯、细竹签实验步骤安全提示:本实验有明火,请小朋友在家长的陪同下完成,或在空旷的地方进行,避免着火,注意安全。第一步:首先布置施法场地,通过蜡烛将易拉罐底部附着满炭黑。注意此步骤中应保持易拉罐内含一定水分,否则会产生烫伤等风险!第二步:向施法场地滴入水滴,观察场地效果。可以看到水滴在场地内不收约束,自由滑行第三步:当用细竹签等在场地中画出", + "id": 37231101, + "jump_url": "//www.bilibili.com/read/cv37231101/", + "label": "12万阅读", + "title": "带你在家里学会孙悟空的“画地为牢” 丨正经玩" + }, + "type": "MAJOR_TYPE_ARTICLE" + }, + "topic": null + }, + "module_more": { + "three_point_items": [ + { + "label": "取消关注", + "type": "THREE_POINT_FOLLOWING" + }, + { + "label": "举报", + "type": "THREE_POINT_REPORT" + } + ] + }, + "module_stat": { + "comment": { + "count": 9, + "forbidden": false + }, + "forward": { + "count": 2, + "forbidden": false + }, + "like": { + "count": 583, + "forbidden": false, + "status": false + } + } + }, + "type": "DYNAMIC_TYPE_ARTICLE", + "visible": true + }, + { + "basic": { + "comment_id_str": "1306462278", + "comment_type": 1, + "like_icon": { + "action_url": "", + "end_url": "", + "id": 0, + "start_url": "" + }, + "rid_str": "1306462278" + }, + "id_str": "966792134707380227", + "modules": { + "module_author": { + "avatar": { + "container_size": { + "height": 1.375, + "width": 1.375 + }, + "fallback_layers": { + "is_critical_group": true, + "layers": [ + { + "general_spec": { + "pos_spec": { + "axis_x": 0.6875, + "axis_y": 0.6875, + "coordinate_pos": 2 + }, + "render_spec": { + "opacity": 1 + }, + "size_spec": { + "height": 0.787, + "width": 0.787 + } + }, + "layer_config": { + "is_critical": true, + "tags": { + "AVATAR_LAYER": {}, + "GENERAL_CFG": { + "config_type": 1, + "general_config": { + "web_css_style": { + "borderRadius": "50%" + } + } + } + } + }, + "resource": { + "res_animation": { + "webp_src": { + "placeholder": 6, + "remote": { + "bfs_style": "widget-layer-avatar", + "url": "https://i0.hdslb.com/bfs/face/7efb679569b2faeff38fa08f6f992fa1ada5e948.webp" + }, + "src_type": 1 + } + }, + "res_type": 4 + }, + "visible": true + }, + { + "general_spec": { + "pos_spec": { + "axis_x": 0.6875, + "axis_y": 0.6875, + "coordinate_pos": 2 + }, + "render_spec": { + "opacity": 1 + }, + "size_spec": { + "height": 1.375, + "width": 1.375 + } + }, + "layer_config": { + "tags": { + "PENDENT_LAYER": {} + } + }, + "resource": { + "res_image": { + "image_src": { + "remote": { + "bfs_style": "widget-layer-avatar", + "url": "https://i0.hdslb.com/bfs/garb/item/0dcf03aa499a64524fe25871d26d95f49f880928.png" + }, + "src_type": 1 + } + }, + "res_type": 3 + }, + "visible": true + }, + { + "general_spec": { + "pos_spec": { + "axis_x": 0.7560000000000001, + "axis_y": 0.7726666666666667, + "coordinate_pos": 1 + }, + "render_spec": { + "opacity": 1 + }, + "size_spec": { + "height": 0.41666666666666663, + "width": 0.41666666666666663 + } + }, + "layer_config": { + "tags": { + "GENERAL_CFG": { + "config_type": 1, + "general_config": { + "web_css_style": { + "background-color": "rgb(255,255,255)", + "border": "2px solid rgba(255,255,255,1)", + "borderRadius": "50%", + "boxSizing": "border-box" + } + } + }, + "ICON_LAYER": {} + } + }, + "resource": { + "res_image": { + "image_src": { + "local": 3, + "src_type": 2 + } + }, + "res_type": 3 + }, + "visible": true + } + ] + }, + "mid": "686127" + }, + "face": "https://i0.hdslb.com/bfs/face/7efb679569b2faeff38fa08f6f992fa1ada5e948.webp", + "face_nft": false, + "following": true, + "jump_url": "//space.bilibili.com/686127/dynamic", + "label": "", + "mid": 686127, + "name": "籽岷", + "official_verify": { + "desc": "", + "type": 0 + }, + "pendant": { + "expire": 0, + "image": "https://i0.hdslb.com/bfs/garb/item/0dcf03aa499a64524fe25871d26d95f49f880928.png", + "image_enhance": "https://i0.hdslb.com/bfs/garb/item/0dcf03aa499a64524fe25871d26d95f49f880928.png", + "image_enhance_frame": "", + "n_pid": 2066, + "name": "百年大会员", + "pid": 2066 + }, + "pub_action": "投稿了视频", + "pub_location_text": "", + "pub_time": "6小时前", + "pub_ts": 1723937235, + "type": "AUTHOR_TYPE_NORMAL", + "vip": { + "avatar_subscript": 1, + "avatar_subscript_url": "", + "due_date": 4845196800000, + "label": { + "bg_color": "#FB7299", + "bg_style": 1, + "border_color": "", + "img_label_uri_hans": "", + "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/c16005a5b39164b3536cbd45618a5edd597a1c51.png", + "img_label_uri_hant": "", + "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/Pzrd8zmpQD.png", + "label_theme": "hundred_annual_vip", + "path": "", + "text": "百年大会员", + "text_color": "#FFFFFF", + "use_img_label": true + }, + "nickname_color": "#FB7299", + "status": 1, + "theme_type": 0, + "type": 2 + } + }, + "module_dynamic": { + "additional": null, + "desc": null, + "major": { + "archive": { + "aid": "1306462278", + "badge": { + "bg_color": "#FB7299", + "color": "#FFFFFF", + "icon_url": null, + "text": "投稿视频" + }, + "bvid": "BV14M4m1175k", + "cover": "http://i1.hdslb.com/bfs/archive/7f8060fe1669b1a0a980844bb90e8150a859499c.jpg", + "desc": "https://www.curseforge.com/minecraft/mc-mods/desert-behemoths-sandworms/", + "disable_preview": 0, + "duration_text": "04:24", + "jump_url": "//www.bilibili.com/video/BV14M4m1175k/", + "stat": { + "danmaku": "297", + "play": "10.1万" + }, + "title": "我的世界 巨大沙虫", + "type": 1 + }, + "type": "MAJOR_TYPE_ARCHIVE" + }, + "topic": null + }, + "module_interaction": { + "items": [ + { + "desc": { + "rich_text_nodes": [ + { + "orig_text": "bili_49990770610:", + "rid": "3546583341730698", + "text": "bili_49990770610:", + "type": "RICH_TEXT_NODE_TYPE_AT" + }, + { + "emoji": { + "icon_url": "https://i0.hdslb.com/bfs/emote/1597302b98827463f5b75c7cac1f29ea6ce572c4.png", + "size": 1, + "text": "[给心心]", + "type": 1 + }, + "orig_text": "[给心心]", + "text": "[给心心]", + "type": "RICH_TEXT_NODE_TYPE_EMOJI" + } + ], + "text": "[给心心]" + }, + "type": 1 + } + ] + }, + "module_more": { + "three_point_items": [ + { + "label": "取消关注", + "type": "THREE_POINT_FOLLOWING" + }, + { + "label": "举报", + "type": "THREE_POINT_REPORT" + } + ] + }, + "module_stat": { + "comment": { + "count": 248, + "forbidden": false + }, + "forward": { + "count": 10, + "forbidden": false + }, + "like": { + "count": 10276, + "forbidden": false, + "status": false + } + } + }, + "type": "DYNAMIC_TYPE_AV", + "visible": true + }, + { + "basic": { + "comment_id_str": "325813964", + "comment_type": 11, + "like_icon": { + "action_url": "", + "end_url": "", + "id": 0, + "start_url": "" + }, + "rid_str": "325813964" + }, + "id_str": "966695334756483089", + "modules": { + "module_author": { + "avatar": { + "container_size": { + "height": 1.375, + "width": 1.375 + }, + "fallback_layers": { + "is_critical_group": true, + "layers": [ + { + "general_spec": { + "pos_spec": { + "axis_x": 0.6875, + "axis_y": 0.6875, + "coordinate_pos": 2 + }, + "render_spec": { + "opacity": 1 + }, + "size_spec": { + "height": 0.787, + "width": 0.787 + } + }, + "layer_config": { + "is_critical": true, + "tags": { + "AVATAR_LAYER": {}, + "GENERAL_CFG": { + "config_type": 1, + "general_config": { + "web_css_style": { + "borderRadius": "50%" + } + } + } + } + }, + "resource": { + "res_image": { + "image_src": { + "placeholder": 6, + "remote": { + "bfs_style": "widget-layer-avatar", + "url": "https://i0.hdslb.com/bfs/face/aebb2639a0d47f2ce1fec0631f412eaf53d4a0be.jpg" + }, + "src_type": 1 + } + }, + "res_type": 3 + }, + "visible": true + }, + { + "general_spec": { + "pos_spec": { + "axis_x": 0.6875, + "axis_y": 0.6875, + "coordinate_pos": 2 + }, + "render_spec": { + "opacity": 1 + }, + "size_spec": { + "height": 1.375, + "width": 1.375 + } + }, + "layer_config": { + "tags": { + "PENDENT_LAYER": {} + } + }, + "resource": { + "res_image": { + "image_src": { + "remote": { + "bfs_style": "widget-layer-avatar", + "url": "https://i0.hdslb.com/bfs/garb/item/4f8f3f1f2d47f0dad84f66aa57acd4409ea46361.png" + }, + "src_type": 1 + } + }, + "res_type": 3 + }, + "visible": true + }, + { + "general_spec": { + "pos_spec": { + "axis_x": 0.7560000000000001, + "axis_y": 0.7726666666666667, + "coordinate_pos": 1 + }, + "render_spec": { + "opacity": 1 + }, + "size_spec": { + "height": 0.41666666666666663, + "width": 0.41666666666666663 + } + }, + "layer_config": { + "tags": { + "GENERAL_CFG": { + "config_type": 1, + "general_config": { + "web_css_style": { + "background-color": "rgb(255,255,255)", + "border": "2px solid rgba(255,255,255,1)", + "borderRadius": "50%", + "boxSizing": "border-box" + } + } + }, + "ICON_LAYER": {} + } + }, + "resource": { + "res_image": { + "image_src": { + "local": 1, + "src_type": 2 + } + }, + "res_type": 3 + }, + "visible": true + } + ] + }, + "layers": [ + { + "is_critical_group": true, + "layers": [ + { + "general_spec": { + "pos_spec": { + "axis_x": 0.6875, + "axis_y": 0.6875, + "coordinate_pos": 2 + }, + "render_spec": { + "opacity": 1 + }, + "size_spec": { + "height": 0.787, + "width": 0.787 + } + }, + "layer_config": { + "is_critical": true, + "tags": { + "AVATAR_LAYER": {}, + "GENERAL_CFG": { + "config_type": 1, + "general_config": { + "web_css_style": { + "borderRadius": "50%" + } + } + } + } + }, + "resource": { + "res_image": { + "image_src": { + "placeholder": 6, + "remote": { + "bfs_style": "widget-layer-avatar", + "url": "https://i0.hdslb.com/bfs/face/aebb2639a0d47f2ce1fec0631f412eaf53d4a0be.jpg" + }, + "src_type": 1 + } + }, + "res_type": 3 + }, + "visible": true + } + ] + }, + { + "layers": [ + { + "general_spec": { + "pos_spec": { + "axis_x": 0.6875, + "axis_y": 0.6875, + "coordinate_pos": 2 + }, + "render_spec": { + "opacity": 1 + }, + "size_spec": { + "height": 1.375, + "width": 1.375 + } + }, + "layer_config": { + "tags": { + "PENDENT_LAYER": {} + } + }, + "resource": { + "res_animation": { + "webp_src": { + "remote": { + "bfs_style": "widget-layer-avatar", + "url": "https://i0.hdslb.com/bfs/garb/item/fe0b83b53e2342b16646f6e7a9370d8a867decdb.webp" + }, + "src_type": 1 + } + }, + "res_type": 4 + }, + "visible": true + } + ] + }, + { + "layers": [ + { + "general_spec": { + "pos_spec": { + "axis_x": 0.7560000000000001, + "axis_y": 0.7726666666666667, + "coordinate_pos": 1 + }, + "render_spec": { + "opacity": 1 + }, + "size_spec": { + "height": 0.41666666666666663, + "width": 0.41666666666666663 + } + }, + "layer_config": { + "tags": { + "GENERAL_CFG": { + "config_type": 1, + "general_config": { + "web_css_style": { + "background-color": "rgb(255,255,255)", + "border": "2px solid rgba(255,255,255,1)", + "borderRadius": "50%", + "boxSizing": "border-box" + } + } + }, + "ICON_LAYER": {} + } + }, + "resource": { + "res_image": { + "image_src": { + "local": 1, + "src_type": 2 + } + }, + "res_type": 3 + }, + "visible": true + } + ] + } + ], + "mid": "293793435" + }, + "decorate": { + "card_url": "https://i0.hdslb.com/bfs/garb/item/c0cf2235089ed314d92f30efa855c9b5611fa2cd.png", + "fan": { + "color": "#07b6d5", + "color_format": { + "colors": [ + "#07b6d5FF", + "#07b6d5FF" + ], + "end_point": "0,100", + "gradients": [ + 0, + 100 + ], + "start_point": "0,0" + }, + "is_fan": true, + "num_prefix": "NO.", + "num_str": "005638", + "number": 5638 + }, + "id": 2513, + "jump_url": "https://www.bilibili.com/h5/mall/equity-link/collect-home?item_id=2513\u0026isdiy=0\u0026part=card\u0026from=post\u0026f_source=garb\u0026vmid=293793435\u0026native.theme=1\u0026navhide=1", + "name": "初音未来粉丝专属", + "type": 3 + }, + "face": "https://i0.hdslb.com/bfs/face/aebb2639a0d47f2ce1fec0631f412eaf53d4a0be.jpg", + "face_nft": false, + "following": true, + "jump_url": "//space.bilibili.com/293793435/dynamic", + "label": "", + "mid": 293793435, + "name": "社会易姐QwQ", + "official_verify": { + "desc": "", + "type": -1 + }, + "pendant": { + "expire": 0, + "image": "https://i0.hdslb.com/bfs/garb/item/4f8f3f1f2d47f0dad84f66aa57acd4409ea46361.png", + "image_enhance": "https://i0.hdslb.com/bfs/garb/item/fe0b83b53e2342b16646f6e7a9370d8a867decdb.webp", + "image_enhance_frame": "https://i0.hdslb.com/bfs/garb/item/127c507ec8448be30cf5f79500ecc6ef2fd32f2c.png", + "n_pid": 2511, + "name": "初音未来13周年", + "pid": 2511 + }, + "pub_action": "", + "pub_location_text": "", + "pub_time": "12小时前", + "pub_ts": 1723914697, + "type": "AUTHOR_TYPE_NORMAL", + "vip": { + "avatar_subscript": 1, + "avatar_subscript_url": "", + "due_date": 1739116800000, + "label": { + "bg_color": "#FB7299", + "bg_style": 1, + "border_color": "", + "img_label_uri_hans": "", + "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png", + "img_label_uri_hant": "", + "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png", + "label_theme": "annual_vip", + "path": "", + "text": "年度大会员", + "text_color": "#FFFFFF", + "use_img_label": true + }, + "nickname_color": "#FB7299", + "status": 1, + "theme_type": 0, + "type": 2 + } + }, + "module_dynamic": { + "additional": null, + "desc": { + "rich_text_nodes": [ + { + "orig_text": "非常好冰箱贴,爱来自硬先生😋😋", + "text": "非常好冰箱贴,爱来自硬先生😋😋", + "type": "RICH_TEXT_NODE_TYPE_TEXT" + }, + { + "orig_text": "@硬核拆解 ", + "rid": "427494870", + "text": "@硬核拆解 ", + "type": "RICH_TEXT_NODE_TYPE_AT" + } + ], + "text": "非常好冰箱贴,爱来自硬先生😋😋@硬核拆解 " + }, + "major": { + "draw": { + "id": 325813964, + "items": [ + { + "height": 1277, + "size": 98.36, + "src": "http://i0.hdslb.com/bfs/new_dyn/60d92e9e0d89a5394a2da69aba6f9710293793435.jpg", + "tags": [], + "width": 958 + }, + { + "height": 1080, + "size": 905.82, + "src": "http://i0.hdslb.com/bfs/new_dyn/0f9bff1938d824ce206a569d539455df293793435.jpg", + "tags": [], + "width": 1440 + }, + { + "height": 1080, + "size": 693.59, + "src": "http://i0.hdslb.com/bfs/new_dyn/ab3332061b793361ec08901ace1782db293793435.jpg", + "tags": [], + "width": 1440 + }, + { + "height": 1080, + "size": 988.15, + "src": "http://i0.hdslb.com/bfs/new_dyn/8e62512db6d04b381dae3814adb95d5e293793435.jpg", + "tags": [], + "width": 1440 + } + ] + }, + "type": "MAJOR_TYPE_DRAW" + }, + "topic": null + }, + "module_more": { + "three_point_items": [ + { + "label": "取消关注", + "type": "THREE_POINT_FOLLOWING" + }, + { + "label": "举报", + "type": "THREE_POINT_REPORT" + } + ] + }, + "module_stat": { + "comment": { + "count": 0, + "forbidden": false + }, + "forward": { + "count": 0, + "forbidden": false + }, + "like": { + "count": 11, + "forbidden": false, + "status": false + } + } + }, + "type": "DYNAMIC_TYPE_DRAW", + "visible": true + }, + { + "basic": { + "comment_id_str": "966692349750018048", + "comment_type": 17, + "like_icon": { + "action_url": "", + "end_url": "", + "id": 0, + "start_url": "" + }, + "rid_str": "966692349750018048" + }, + "id_str": "966692349750018048", + "modules": { + "module_author": { + "avatar": { + "container_size": { + "height": 1.375, + "width": 1.375 + }, + "fallback_layers": { + "is_critical_group": true, + "layers": [ + { + "general_spec": { + "pos_spec": { + "axis_x": 0.6875, + "axis_y": 0.6875, + "coordinate_pos": 2 + }, + "render_spec": { + "opacity": 1 + }, + "size_spec": { + "height": 0.787, + "width": 0.787 + } + }, + "layer_config": { + "is_critical": true, + "tags": { + "AVATAR_LAYER": {}, + "GENERAL_CFG": { + "config_type": 1, + "general_config": { + "web_css_style": { + "borderRadius": "50%" + } + } + } + } + }, + "resource": { + "res_image": { + "image_src": { + "placeholder": 6, + "remote": { + "bfs_style": "widget-layer-avatar", + "url": "https://i1.hdslb.com/bfs/face/78cdc5ba930ab171ebfe1ecc848cabcd4b0e0974.jpg" + }, + "src_type": 1 + } + }, + "res_type": 3 + }, + "visible": true + }, + { + "general_spec": { + "pos_spec": { + "axis_x": 0.6875, + "axis_y": 0.6875, + "coordinate_pos": 2 + }, + "render_spec": { + "opacity": 1 + }, + "size_spec": { + "height": 1.375, + "width": 1.375 + } + }, + "layer_config": { + "tags": { + "PENDENT_LAYER": {} + } + }, + "resource": { + "res_image": { + "image_src": { + "remote": { + "bfs_style": "widget-layer-avatar", + "url": "https://i1.hdslb.com/bfs/garb/open/aafcb0ea3a0bc237634240f98bf93b3b6ac2d337.png" + }, + "src_type": 1 + } + }, + "res_type": 3 + }, + "visible": true + }, + { + "general_spec": { + "pos_spec": { + "axis_x": 0.7560000000000001, + "axis_y": 0.7726666666666667, + "coordinate_pos": 1 + }, + "render_spec": { + "opacity": 1 + }, + "size_spec": { + "height": 0.41666666666666663, + "width": 0.41666666666666663 + } + }, + "layer_config": { + "tags": { + "GENERAL_CFG": { + "config_type": 1, + "general_config": { + "web_css_style": { + "background-color": "rgb(255,255,255)", + "border": "2px solid rgba(255,255,255,1)", + "borderRadius": "50%", + "boxSizing": "border-box" + } + } + }, + "ICON_LAYER": {} + } + }, + "resource": { + "res_image": { + "image_src": { + "local": 3, + "src_type": 2 + } + }, + "res_type": 3 + }, + "visible": true + } + ] + }, + "mid": "36081646" + }, + "decorate": { + "card_url": "https://i0.hdslb.com/bfs/garb/item/684f6dc32decd32fe9db901b81b83b9a1fe39574.png", + "fan": { + "color": "", + "color_format": null, + "is_fan": false, + "num_prefix": "", + "num_str": "", + "number": 0 + }, + "id": 49922, + "jump_url": "https://www.bilibili.com/h5/mall/equity-link/collect-home?item_id=49922\u0026isdiy=0\u0026part=card\u0026from=post\u0026f_source=garb\u0026vmid=36081646\u0026native.theme=1\u0026navhide=1", + "name": "古色花香洛天依", + "type": 1 + }, + "face": "https://i1.hdslb.com/bfs/face/78cdc5ba930ab171ebfe1ecc848cabcd4b0e0974.jpg", + "face_nft": false, + "following": true, + "jump_url": "//space.bilibili.com/36081646/dynamic", + "label": "", + "mid": 36081646, + "name": "洛天依", + "official_verify": { + "desc": "", + "type": 0 + }, + "pendant": { + "expire": 0, + "image": "https://i1.hdslb.com/bfs/garb/open/aafcb0ea3a0bc237634240f98bf93b3b6ac2d337.png", + "image_enhance": "https://i1.hdslb.com/bfs/garb/open/aafcb0ea3a0bc237634240f98bf93b3b6ac2d337.png", + "image_enhance_frame": "", + "n_pid": 1720437918001, + "name": "洛天依心律共鸣头像框", + "pid": -1843967695 + }, + "pub_action": "", + "pub_location_text": "", + "pub_time": "12小时前", + "pub_ts": 1723914002, + "type": "AUTHOR_TYPE_NORMAL", + "vip": { + "avatar_subscript": 1, + "avatar_subscript_url": "", + "due_date": 1764777600000, + "label": { + "bg_color": "#FB7299", + "bg_style": 1, + "border_color": "", + "img_label_uri_hans": "", + "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png", + "img_label_uri_hant": "", + "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png", + "label_theme": "annual_vip", + "path": "", + "text": "年度大会员", + "text_color": "#FFFFFF", + "use_img_label": true + }, + "nickname_color": "#FB7299", + "status": 1, + "theme_type": 0, + "type": 2 + } + }, + "module_dynamic": { + "additional": null, + "desc": { + "rich_text_nodes": [ + { + "orig_text": "恭喜", + "text": "恭喜", + "type": "RICH_TEXT_NODE_TYPE_TEXT" + }, + { + "orig_text": "@从一到无穷大Infinity", + "rid": "697565874", + "text": "@从一到无穷大Infinity", + "type": "RICH_TEXT_NODE_TYPE_AT" + }, + { + "orig_text": "@qwq啊啊啊啊啊噜", + "rid": "189799722", + "text": "@qwq啊啊啊啊啊噜", + "type": "RICH_TEXT_NODE_TYPE_AT" + }, + { + "orig_text": "@有时名字不能取太长", + "rid": "3546388151405126", + "text": "@有时名字不能取太长", + "type": "RICH_TEXT_NODE_TYPE_AT" + }, + { + "orig_text": "等5位同学中奖,已私信通知,详情请点击抽奖查看。", + "text": "等5位同学中奖,已私信通知,详情请点击抽奖查看。", + "type": "RICH_TEXT_NODE_TYPE_TEXT" + } + ], + "text": "恭喜@从一到无穷大Infinity@qwq啊啊啊啊啊噜@有时名字不能取太长等5位同学中奖,已私信通知,详情请点击抽奖查看。" + }, + "major": null, + "topic": null + }, + "module_interaction": { + "items": [ + { + "desc": { + "rich_text_nodes": [ + { + "orig_text": "明ちゃん王:", + "rid": "1280664625", + "text": "明ちゃん王:", + "type": "RICH_TEXT_NODE_TYPE_AT" + }, + { + "orig_text": "哇,非常不错呢,跟天依挺搭配的", + "text": "哇,非常不错呢,跟天依挺搭配的", + "type": "RICH_TEXT_NODE_TYPE_TEXT" + }, + { + "emoji": { + "icon_url": "https://i0.hdslb.com/bfs/emote/63c9d1a31c0da745b61cdb35e0ecb28635675db2.png", + "size": 1, + "text": "[星星眼]", + "type": 1 + }, + "orig_text": "[星星眼]", + "text": "[星星眼]", + "type": "RICH_TEXT_NODE_TYPE_EMOJI" + } + ], + "text": "哇,非常不错呢,跟天依挺搭配的[星星眼]" + }, + "type": 1 + } + ] + }, + "module_more": { + "three_point_items": [ + { + "label": "取消关注", + "type": "THREE_POINT_FOLLOWING" + }, + { + "label": "举报", + "type": "THREE_POINT_REPORT" + } + ] + }, + "module_stat": { + "comment": { + "count": 88, + "forbidden": false + }, + "forward": { + "count": 12, + "forbidden": false + }, + "like": { + "count": 3088, + "forbidden": false, + "status": false + } + } + }, + "orig": { + "basic": { + "comment_id_str": "", + "comment_type": 0, + "like_icon": { + "action_url": "", + "end_url": "", + "id": 0, + "start_url": "" + }, + "rid_str": "" + }, + "id_str": "939874290505875465", + "modules": { + "module_author": { + "avatar": { + "container_size": { + "height": 1.375, + "width": 1.375 + }, + "fallback_layers": { + "is_critical_group": true, + "layers": [ + { + "general_spec": { + "pos_spec": { + "axis_x": 0.6875, + "axis_y": 0.6875, + "coordinate_pos": 2 + }, + "render_spec": { + "opacity": 1 + }, + "size_spec": { + "height": 0.787, + "width": 0.787 + } + }, + "layer_config": { + "is_critical": true, + "tags": { + "AVATAR_LAYER": {}, + "GENERAL_CFG": { + "config_type": 1, + "general_config": { + "web_css_style": { + "borderRadius": "50%" + } + } + } + } + }, + "resource": { + "res_image": { + "image_src": { + "placeholder": 6, + "remote": { + "bfs_style": "widget-layer-avatar", + "url": "https://i1.hdslb.com/bfs/face/78cdc5ba930ab171ebfe1ecc848cabcd4b0e0974.jpg" + }, + "src_type": 1 + } + }, + "res_type": 3 + }, + "visible": true + }, + { + "general_spec": { + "pos_spec": { + "axis_x": 0.6875, + "axis_y": 0.6875, + "coordinate_pos": 2 + }, + "render_spec": { + "opacity": 1 + }, + "size_spec": { + "height": 1.375, + "width": 1.375 + } + }, + "layer_config": { + "tags": { + "PENDENT_LAYER": {} + } + }, + "resource": { + "res_image": { + "image_src": { + "remote": { + "bfs_style": "widget-layer-avatar", + "url": "https://i1.hdslb.com/bfs/garb/open/aafcb0ea3a0bc237634240f98bf93b3b6ac2d337.png" + }, + "src_type": 1 + } + }, + "res_type": 3 + }, + "visible": true + }, + { + "general_spec": { + "pos_spec": { + "axis_x": 0.7560000000000001, + "axis_y": 0.7726666666666667, + "coordinate_pos": 1 + }, + "render_spec": { + "opacity": 1 + }, + "size_spec": { + "height": 0.41666666666666663, + "width": 0.41666666666666663 + } + }, + "layer_config": { + "tags": { + "GENERAL_CFG": { + "config_type": 1, + "general_config": { + "web_css_style": { + "background-color": "rgb(255,255,255)", + "border": "2px solid rgba(255,255,255,1)", + "borderRadius": "50%", + "boxSizing": "border-box" + } + } + }, + "ICON_LAYER": {} + } + }, + "resource": { + "res_image": { + "image_src": { + "local": 3, + "src_type": 2 + } + }, + "res_type": 3 + }, + "visible": true + } + ] + }, + "mid": "36081646" + }, + "decorate": { + "card_url": "https://i0.hdslb.com/bfs/garb/item/684f6dc32decd32fe9db901b81b83b9a1fe39574.png", + "fan": { + "color": "", + "color_format": null, + "is_fan": false, + "num_prefix": "", + "num_str": "", + "number": 0 + }, + "id": 49922, + "jump_url": "https://www.bilibili.com/h5/mall/equity-link/collect-home?item_id=49922\u0026isdiy=0\u0026part=card\u0026from=post\u0026f_source=garb\u0026vmid=36081646\u0026native.theme=1\u0026navhide=1", + "name": "古色花香洛天依", + "type": 1 + }, + "face": "https://i1.hdslb.com/bfs/face/78cdc5ba930ab171ebfe1ecc848cabcd4b0e0974.jpg", + "face_nft": false, + "following": true, + "jump_url": "//space.bilibili.com/36081646/dynamic", + "label": "", + "mid": 36081646, + "name": "洛天依", + "official_verify": { + "desc": "", + "type": 0 + }, + "pendant": { + "expire": 0, + "image": "https://i1.hdslb.com/bfs/garb/open/aafcb0ea3a0bc237634240f98bf93b3b6ac2d337.png", + "image_enhance": "https://i1.hdslb.com/bfs/garb/open/aafcb0ea3a0bc237634240f98bf93b3b6ac2d337.png", + "image_enhance_frame": "", + "n_pid": 1720437918001, + "name": "洛天依心律共鸣头像框", + "pid": -1843967695 + }, + "pub_action": "", + "pub_time": "", + "pub_ts": 1717669936, + "type": "AUTHOR_TYPE_NORMAL", + "vip": { + "avatar_subscript": 1, + "avatar_subscript_url": "", + "due_date": 1764777600000, + "label": { + "bg_color": "#FB7299", + "bg_style": 1, + "border_color": "", + "img_label_uri_hans": "", + "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png", + "img_label_uri_hant": "", + "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png", + "label_theme": "annual_vip", + "path": "", + "text": "年度大会员", + "text_color": "#FFFFFF", + "use_img_label": true + }, + "nickname_color": "#FB7299", + "status": 1, + "theme_type": 0, + "type": 2 + } + }, + "module_dynamic": { + "additional": { + "goods": { + "head_icon": "", + "head_text": "UP主的推荐", + "items": [ + { + "brief": "", + "cover": "https://i0.hdslb.com/bfs/mall/mall/ef/9d/2cb00b3649bcb232f62b3169be95407d.png", + "id": "901140704120020992", + "jump_desc": "去看看", + "jump_url": "https://mall.bilibili.com/neul-next/detailuniversal/detail.html?isMerchant=1\u0026page=detailuniversal_detail\u0026saleType=0\u0026itemsId=10406556\u0026loadingShow=1\u0026noTitleBar=1\u0026msource=cps_Mdynamic_36081646\u0026from=\u0026contentId=\u0026track_id=__BGMT__", + "name": "天羽川 洛天依 短袖水手服纯色裙长短袜套装", + "price": "¥49" + } + ], + "jump_url": "" + }, + "type": "ADDITIONAL_TYPE_GOODS" + }, + "desc": { + "rich_text_nodes": [ + { + "orig_text": "​互动抽奖", + "rid": "301330", + "text": "​互动抽奖", + "type": "RICH_TEXT_NODE_TYPE_LOTTERY" + }, + { + "orig_text": "洛天依X", + "text": "洛天依X", + "type": "RICH_TEXT_NODE_TYPE_TEXT" + }, + { + "orig_text": "@天羽川JK ", + "rid": "394187581", + "text": "@天羽川JK ", + "type": "RICH_TEXT_NODE_TYPE_AT" + }, + { + "orig_text": "联名水手服\u0026长短袜套装 新品预售即将开启啦!\n转发关注天依,揪5位小伙伴送出联名款长短袜1双~", + "text": "联名水手服\u0026长短袜套装 新品预售即将开启啦!\n转发关注天依,揪5位小伙伴送出联名款长短袜1双~", + "type": "RICH_TEXT_NODE_TYPE_TEXT" + }, + { + "emoji": { + "icon_url": "http://i0.hdslb.com/bfs/emote/9826fb4f77944387767a37552143fbec40159fa5.png", + "size": 2, + "text": "[洛天依_礼物]", + "type": 3 + }, + "orig_text": "[洛天依_礼物]", + "text": "[洛天依_礼物]", + "type": "RICH_TEXT_NODE_TYPE_EMOJI" + }, + { + "orig_text": "\n\n❀联名服饰\n-洛天依联名款水手服\n-洛天依还原款长短袜\n\n❀预售时间\n6月8日20:00 起\n\n日常\u0026cos皆宜,大家有没有发现结合了天依的哪些元素呀?", + "text": "\n\n❀联名服饰\n-洛天依联名款水手服\n-洛天依还原款长短袜\n\n❀预售时间\n6月8日20:00 起\n\n日常\u0026cos皆宜,大家有没有发现结合了天依的哪些元素呀?", + "type": "RICH_TEXT_NODE_TYPE_TEXT" + }, + { + "emoji": { + "icon_url": "https://i0.hdslb.com/bfs/emote/8034b3cb55370d19b1683eb38e7747c5c6c5dba6.png", + "size": 2, + "text": "[洛天依蝶变_星星眼]", + "type": 3 + }, + "orig_text": "[洛天依蝶变_星星眼]", + "text": "[洛天依蝶变_星星眼]", + "type": "RICH_TEXT_NODE_TYPE_EMOJI" + }, + { + "orig_text": "\n", + "text": "\n", + "type": "RICH_TEXT_NODE_TYPE_TEXT" + } + ], + "text": "​互动抽奖洛天依X@天羽川JK 联名水手服\u0026长短袜套装 新品预售即将开启啦!\n转发关注天依,揪5位小伙伴送出联名款长短袜1双~[洛天依_礼物]\n\n❀联名服饰\n-洛天依联名款水手服\n-洛天依还原款长短袜\n\n❀预售时间\n6月8日20:00 起\n\n日常\u0026cos皆宜,大家有没有发现结合了天依的哪些元素呀?[洛天依蝶变_星星眼]\n" + }, + "major": { + "draw": { + "id": 318324614, + "items": [ + { + "height": 1280, + "size": 662.59, + "src": "http://i0.hdslb.com/bfs/new_dyn/1f23b61786eadb8c3e3f4c137730715036081646.jpg", + "tags": [], + "width": 904 + }, + { + "height": 1280, + "size": 614.83, + "src": "http://i0.hdslb.com/bfs/new_dyn/7d679216308bb7c65aeba38b4eafdd8936081646.jpg", + "tags": [], + "width": 904 + } + ] + }, + "type": "MAJOR_TYPE_DRAW" + }, + "topic": { + "id": 1156147, + "jump_url": "https://m.bilibili.com/topic-detail?topic_id=1156147\u0026topic_name=%E5%A4%A9%E4%BE%9D%E7%9A%84%E5%91%A8%E8%BE%B9", + "name": "天依的周边" + } + } + }, + "type": "DYNAMIC_TYPE_DRAW", + "visible": true + }, + "type": "DYNAMIC_TYPE_FORWARD", + "visible": true + }, + { + "basic": { + "comment_id_str": "325807840", + "comment_type": 11, + "like_icon": { + "action_url": "", + "end_url": "", + "id": 0, + "start_url": "" + }, + "rid_str": "325807840" + }, + "id_str": "966677390370537527", + "modules": { + "module_author": { + "avatar": { + "container_size": { + "height": 1.35, + "width": 1.35 + }, + "fallback_layers": { + "is_critical_group": true, + "layers": [ + { + "general_spec": { + "pos_spec": { + "axis_x": 0.675, + "axis_y": 0.675, + "coordinate_pos": 2 + }, + "render_spec": { + "opacity": 1 + }, + "size_spec": { + "height": 1, + "width": 1 + } + }, + "layer_config": { + "is_critical": true, + "tags": { + "AVATAR_LAYER": {}, + "GENERAL_CFG": { + "config_type": 1, + "general_config": { + "web_css_style": { + "borderRadius": "50%" + } + } + } + } + }, + "resource": { + "res_image": { + "image_src": { + "placeholder": 6, + "remote": { + "bfs_style": "widget-layer-avatar", + "url": "https://i1.hdslb.com/bfs/face/2b9ee4a9c99f1006f3c800c1317f7850ad6f3d0d.jpg" + }, + "src_type": 1 + } + }, + "res_type": 3 + }, + "visible": true + }, + { + "general_spec": { + "pos_spec": { + "axis_x": 0.8000000000000002, + "axis_y": 0.8000000000000002, + "coordinate_pos": 1 + }, + "render_spec": { + "opacity": 1 + }, + "size_spec": { + "height": 0.41666666666666663, + "width": 0.41666666666666663 + } + }, + "layer_config": { + "tags": { + "GENERAL_CFG": { + "config_type": 1, + "general_config": { + "web_css_style": { + "background-color": "rgb(255,255,255)", + "border": "2px solid rgba(255,255,255,1)", + "borderRadius": "50%", + "boxSizing": "border-box" + } + } + }, + "ICON_LAYER": {} + } + }, + "resource": { + "res_image": { + "image_src": { + "local": 4, + "src_type": 2 + } + }, + "res_type": 3 + }, + "visible": true + } + ] + }, + "mid": "485703766" + }, + "face": "https://i1.hdslb.com/bfs/face/2b9ee4a9c99f1006f3c800c1317f7850ad6f3d0d.jpg", + "face_nft": false, + "following": true, + "jump_url": "//space.bilibili.com/485703766/dynamic", + "label": "", + "mid": 485703766, + "name": "英伟达GeForce", + "official_verify": { + "desc": "", + "type": 1 + }, + "pendant": { + "expire": 0, + "image": "", + "image_enhance": "", + "image_enhance_frame": "", + "n_pid": 0, + "name": "", + "pid": 0 + }, + "pub_action": "", + "pub_location_text": "", + "pub_time": "13小时前", + "pub_ts": 1723910520, + "type": "AUTHOR_TYPE_NORMAL", + "vip": { + "avatar_subscript": 1, + "avatar_subscript_url": "", + "due_date": 2000563200000, + "label": { + "bg_color": "#FB7299", + "bg_style": 1, + "border_color": "", + "img_label_uri_hans": "", + "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/adb599797dd171e2d3d6d012f448b49679258344.png", + "img_label_uri_hant": "", + "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/sGu57N6pgK.png", + "label_theme": "ten_annual_vip", + "path": "", + "text": "十年大会员", + "text_color": "#FFFFFF", + "use_img_label": true + }, + "nickname_color": "#FB7299", + "status": 1, + "theme_type": 0, + "type": 2 + } + }, + "module_dynamic": { + "additional": null, + "desc": { + "rich_text_nodes": [ + { + "orig_text": "直面天命,还有 2 天!\nRTX. ON!\n\n投稿来自于:Bilibili", + "text": "直面天命,还有 2 天!\nRTX. ON!\n\n投稿来自于:Bilibili", + "type": "RICH_TEXT_NODE_TYPE_TEXT" + }, + { + "orig_text": "@祗殁", + "rid": "12299496", + "text": "@祗殁", + "type": "RICH_TEXT_NODE_TYPE_AT" + } + ], + "text": "直面天命,还有 2 天!\nRTX. ON!\n\n投稿来自于:Bilibili@祗殁" + }, + "major": { + "draw": { + "id": 325807840, + "items": [ + { + "height": 1073, + "size": 66.29785, + "src": "https://i0.hdslb.com/bfs/new_dyn/b47b271135c7c496923d76c6b794e596485703766.png", + "tags": [], + "width": 1213 + } + ] + }, + "type": "MAJOR_TYPE_DRAW" + }, + "topic": null + }, + "module_more": { + "three_point_items": [ + { + "label": "取消关注", + "type": "THREE_POINT_FOLLOWING" + }, + { + "label": "举报", + "type": "THREE_POINT_REPORT" + } + ] + }, + "module_stat": { + "comment": { + "count": 105, + "forbidden": false + }, + "forward": { + "count": 7, + "forbidden": false + }, + "like": { + "count": 872, + "forbidden": false, + "status": false + } + } + }, + "type": "DYNAMIC_TYPE_DRAW", + "visible": true + }, + { + "basic": { + "comment_id_str": "1606450518", + "comment_type": 1, + "like_icon": { + "action_url": "", + "end_url": "", + "id": 0, + "start_url": "" + }, + "rid_str": "1606450518" + }, + "id_str": "966647978674618373", + "modules": { + "module_author": { + "avatar": { + "container_size": { + "height": 1.35, + "width": 1.35 + }, + "fallback_layers": { + "is_critical_group": true, + "layers": [ + { + "general_spec": { + "pos_spec": { + "axis_x": 0.675, + "axis_y": 0.675, + "coordinate_pos": 2 + }, + "render_spec": { + "opacity": 1 + }, + "size_spec": { + "height": 1, + "width": 1 + } + }, + "layer_config": { + "is_critical": true, + "tags": { + "AVATAR_LAYER": {}, + "GENERAL_CFG": { + "config_type": 1, + "general_config": { + "web_css_style": { + "borderRadius": "50%" + } + } + } + } + }, + "resource": { + "res_image": { + "image_src": { + "placeholder": 6, + "remote": { + "bfs_style": "widget-layer-avatar", + "url": "https://i1.hdslb.com/bfs/face/bb23fb77a033759a145f8eda7b5e3a15386f637c.jpg" + }, + "src_type": 1 + } + }, + "res_type": 3 + }, + "visible": true + }, + { + "general_spec": { + "pos_spec": { + "axis_x": 0.8000000000000002, + "axis_y": 0.8000000000000002, + "coordinate_pos": 1 + }, + "render_spec": { + "opacity": 1 + }, + "size_spec": { + "height": 0.41666666666666663, + "width": 0.41666666666666663 + } + }, + "layer_config": { + "tags": { + "GENERAL_CFG": { + "config_type": 1, + "general_config": { + "web_css_style": { + "background-color": "rgb(255,255,255)", + "border": "2px solid rgba(255,255,255,1)", + "borderRadius": "50%", + "boxSizing": "border-box" + } + } + }, + "ICON_LAYER": {} + } + }, + "resource": { + "res_image": { + "image_src": { + "local": 3, + "src_type": 2 + } + }, + "res_type": 3 + }, + "visible": true + } + ] + }, + "mid": "1503187" + }, + "decorate": { + "card_url": "https://i0.hdslb.com/bfs/archive/e495de36cab75f9a610fb6f2d0ba29a87b794cc6.png", + "fan": { + "color": "#BFC8D2", + "color_format": { + "colors": [ + "#B8C7D0FF", + "#A2A7B0FF" + ], + "end_point": "100,100", + "gradients": [ + 0, + 100 + ], + "start_point": "0,0" + }, + "is_fan": true, + "num_prefix": "NO.", + "num_str": "002484", + "number": 2484 + }, + "id": 66898, + "jump_url": "https://www.bilibili.com/h5/mall/digital-card/home?act_id=108\u0026from=post\u0026f_source=garb\u0026-Abrowser=live\u0026hybrid_set_header=2\u0026navhide=1\u0026anchor_task=1", + "name": "BLG 信念干杯勋章", + "type": 3 + }, + "face": "https://i1.hdslb.com/bfs/face/bb23fb77a033759a145f8eda7b5e3a15386f637c.jpg", + "face_nft": false, + "following": true, + "jump_url": "//space.bilibili.com/1503187/dynamic", + "label": "", + "mid": 1503187, + "name": "和谐号舰长", + "official_verify": { + "desc": "", + "type": 0 + }, + "pendant": { + "expire": 0, + "image": "", + "image_enhance": "", + "image_enhance_frame": "", + "n_pid": 0, + "name": "", + "pid": 0 + }, + "pub_action": "投稿了视频", + "pub_location_text": "", + "pub_time": "昨天 22:07", + "pub_ts": 1723903670, + "type": "AUTHOR_TYPE_NORMAL", + "vip": { + "avatar_subscript": 1, + "avatar_subscript_url": "", + "due_date": 1732204800000, + "label": { + "bg_color": "#FB7299", + "bg_style": 1, + "border_color": "", + "img_label_uri_hans": "", + "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png", + "img_label_uri_hant": "", + "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png", + "label_theme": "annual_vip", + "path": "", + "text": "年度大会员", + "text_color": "#FFFFFF", + "use_img_label": true + }, + "nickname_color": "#FB7299", + "status": 1, + "theme_type": 0, + "type": 2 + } + }, + "module_dynamic": { + "additional": null, + "desc": null, + "major": { + "archive": { + "aid": "1606450518", + "badge": { + "bg_color": "#FB7299", + "color": "#FFFFFF", + "icon_url": null, + "text": "投稿视频" + }, + "bvid": "BV152421Z7bV", + "cover": "http://i1.hdslb.com/bfs/archive/e87786447779ff1a4fb2d941a3321f9750a65300.jpg", + "desc": "多来点这样的更新,太快乐了", + "disable_preview": 0, + "duration_text": "03:39", + "jump_url": "//www.bilibili.com/video/BV152421Z7bV/", + "stat": { + "danmaku": "406", + "play": "6.6万" + }, + "title": "官方:矿车怎么就不能是飞船?", + "type": 1 + }, + "type": "MAJOR_TYPE_ARCHIVE" + }, + "topic": null + }, + "module_interaction": { + "items": [ + { + "desc": { + "rich_text_nodes": [ + { + "orig_text": "吉吉国民开水儿:", + "rid": "43514654", + "text": "吉吉国民开水儿:", + "type": "RICH_TEXT_NODE_TYPE_AT" + }, + { + "orig_text": "致敬传奇宰人航空大师张泰玩", + "text": "致敬传奇宰人航空大师张泰玩", + "type": "RICH_TEXT_NODE_TYPE_TEXT" + } + ], + "text": "致敬传奇宰人航空大师张泰玩" + }, + "type": 1 + } + ] + }, + "module_more": { + "three_point_items": [ + { + "label": "取消关注", + "type": "THREE_POINT_FOLLOWING" + }, + { + "label": "举报", + "type": "THREE_POINT_REPORT" + } + ] + }, + "module_stat": { + "comment": { + "count": 218, + "forbidden": false + }, + "forward": { + "count": 15, + "forbidden": false + }, + "like": { + "count": 5694, + "forbidden": false, + "status": false + } + } + }, + "type": "DYNAMIC_TYPE_AV", + "visible": true + }, + { + "basic": { + "comment_id_str": "1506427569", + "comment_type": 1, + "like_icon": { + "action_url": "", + "end_url": "", + "id": 0, + "start_url": "" + }, + "rid_str": "1506427569" + }, + "id_str": "966629209415876628", + "modules": { + "module_author": { + "avatar": { + "container_size": { + "height": 1.35, + "width": 1.35 + }, + "fallback_layers": { + "is_critical_group": true, + "layers": [ + { + "general_spec": { + "pos_spec": { + "axis_x": 0.675, + "axis_y": 0.675, + "coordinate_pos": 2 + }, + "render_spec": { + "opacity": 1 + }, + "size_spec": { + "height": 1, + "width": 1 + } + }, + "layer_config": { + "is_critical": true, + "tags": { + "AVATAR_LAYER": {}, + "GENERAL_CFG": { + "config_type": 1, + "general_config": { + "web_css_style": { + "borderRadius": "50%" + } + } + } + } + }, + "resource": { + "res_image": { + "image_src": { + "placeholder": 6, + "remote": { + "bfs_style": "widget-layer-avatar", + "url": "https://i0.hdslb.com/bfs/face/978ea07f22e54c2e62f01def8e815b59adacc5d0.jpg" + }, + "src_type": 1 + } + }, + "res_type": 3 + }, + "visible": true + }, + { + "general_spec": { + "pos_spec": { + "axis_x": 0.8000000000000002, + "axis_y": 0.8000000000000002, + "coordinate_pos": 1 + }, + "render_spec": { + "opacity": 1 + }, + "size_spec": { + "height": 0.41666666666666663, + "width": 0.41666666666666663 + } + }, + "layer_config": { + "tags": { + "GENERAL_CFG": { + "config_type": 1, + "general_config": { + "web_css_style": { + "background-color": "rgb(255,255,255)", + "border": "2px solid rgba(255,255,255,1)", + "borderRadius": "50%", + "boxSizing": "border-box" + } + } + }, + "ICON_LAYER": {} + } + }, + "resource": { + "res_image": { + "image_src": { + "local": 4, + "src_type": 2 + } + }, + "res_type": 3 + }, + "visible": true + } + ] + }, + "mid": "407045223" + }, + "decorate": { + "card_url": "https://i0.hdslb.com/bfs/vip/a9e3d993c7a15e88ce0bf714a142f7d2b44121e2.png", + "fan": { + "color": "", + "color_format": null, + "is_fan": false, + "num_prefix": "", + "num_str": "", + "number": 0 + }, + "id": 28, + "jump_url": "https://www.bilibili.com/h5/mall/equity-link/collect-home?item_id=28\u0026isdiy=0\u0026part=card\u0026from=post\u0026f_source=garb\u0026vmid=407045223\u0026native.theme=1\u0026navhide=1", + "name": "2233娘", + "type": 1 + }, + "face": "https://i0.hdslb.com/bfs/face/978ea07f22e54c2e62f01def8e815b59adacc5d0.jpg", + "face_nft": false, + "following": true, + "jump_url": "//space.bilibili.com/407045223/dynamic", + "label": "", + "mid": 407045223, + "name": "二次元的中科院物理所", + "official_verify": { + "desc": "", + "type": 1 + }, + "pendant": { + "expire": 0, + "image": "", + "image_enhance": "", + "image_enhance_frame": "", + "n_pid": 0, + "name": "", + "pid": 0 + }, + "pub_action": "投稿了视频", + "pub_location_text": "", + "pub_time": "昨天 20:55", + "pub_ts": 1723899301, + "type": "AUTHOR_TYPE_NORMAL", + "vip": { + "avatar_subscript": 1, + "avatar_subscript_url": "", + "due_date": 1745769600000, + "label": { + "bg_color": "#FB7299", + "bg_style": 1, + "border_color": "", + "img_label_uri_hans": "", + "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png", + "img_label_uri_hant": "", + "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png", + "label_theme": "annual_vip", + "path": "", + "text": "年度大会员", + "text_color": "#FFFFFF", + "use_img_label": true + }, + "nickname_color": "#FB7299", + "status": 1, + "theme_type": 0, + "type": 2 + } + }, + "module_dynamic": { + "additional": null, + "desc": { + "rich_text_nodes": [ + { + "orig_text": "光是什么?光是我们看到的五彩斑斓的世界,光是自然界能量的来源,光是一种电磁波。我们利用光可以做些什么?如何收集太阳的能量?如何产生光?让我们在本集课程中寻找这些问题的答案~ 错过直播的小伙伴可以来这里补课~", + "text": "光是什么?光是我们看到的五彩斑斓的世界,光是自然界能量的来源,光是一种电磁波。我们利用光可以做些什么?如何收集太阳的能量?如何产生光?让我们在本集课程中寻找这些问题的答案~ 错过直播的小伙伴可以来这里补课~", + "type": "RICH_TEXT_NODE_TYPE_TEXT" + } + ], + "text": "光是什么?光是我们看到的五彩斑斓的世界,光是自然界能量的来源,光是一种电磁波。我们利用光可以做些什么?如何收集太阳的能量?如何产生光?让我们在本集课程中寻找这些问题的答案~ 错过直播的小伙伴可以来这里补课~" + }, + "major": { + "archive": { + "aid": "1506427569", + "badge": { + "bg_color": "#FB7299", + "color": "#FFFFFF", + "icon_url": null, + "text": "投稿视频" + }, + "bvid": "BV1uS42197b5", + "cover": "http://i1.hdslb.com/bfs/archive/e13db3349cdc91a00041be9730bbbe42c3e8df55.jpg", + "desc": "光是什么?光是我们看到的五彩斑斓的世界,光是自然界能量的来源,光是一种电磁波。我们利用光可以做些什么?如何收集太阳的能量?如何产生光?让我们在本集课程中寻找这些问题的答案~", + "disable_preview": 0, + "duration_text": "44:45", + "jump_url": "//www.bilibili.com/video/BV1uS42197b5/", + "stat": { + "danmaku": "1", + "play": "3364" + }, + "title": "光照下多姿多彩的世界——光化学和我们的生活【中国科学院科学公开课S06E15】", + "type": 1 + }, + "type": "MAJOR_TYPE_ARCHIVE" + }, + "topic": { + "id": 1073121, + "jump_url": "https://m.bilibili.com/topic-detail?topic_id=1073121\u0026topic_name=%E4%B8%AD%E5%9B%BD%E7%A7%91%E5%AD%A6%E9%99%A2%E7%A7%91%E5%AD%A6%E5%85%AC%E5%BC%80%E8%AF%BE", + "name": "中国科学院科学公开课" + } + }, + "module_more": { + "three_point_items": [ + { + "label": "取消关注", + "type": "THREE_POINT_FOLLOWING" + }, + { + "label": "举报", + "type": "THREE_POINT_REPORT" + } + ] + }, + "module_stat": { + "comment": { + "count": 3, + "forbidden": false + }, + "forward": { + "count": 2, + "forbidden": false + }, + "like": { + "count": 741, + "forbidden": false, + "status": false + } + } + }, + "type": "DYNAMIC_TYPE_AV", + "visible": true + }, + { + "basic": { + "comment_id_str": "325765582", + "comment_type": 11, + "like_icon": { + "action_url": "", + "end_url": "", + "id": 0, + "start_url": "" + }, + "rid_str": "325765582" + }, + "id_str": "966583356402696224", + "modules": { + "module_author": { + "avatar": { + "container_size": { + "height": 1.35, + "width": 1.35 + }, + "fallback_layers": { + "is_critical_group": true, + "layers": [ + { + "general_spec": { + "pos_spec": { + "axis_x": 0.675, + "axis_y": 0.675, + "coordinate_pos": 2 + }, + "render_spec": { + "opacity": 1 + }, + "size_spec": { + "height": 1, + "width": 1 + } + }, + "layer_config": { + "is_critical": true, + "tags": { + "AVATAR_LAYER": {}, + "GENERAL_CFG": { + "config_type": 1, + "general_config": { + "web_css_style": { + "borderRadius": "50%" + } + } + } + } + }, + "resource": { + "res_image": { + "image_src": { + "placeholder": 6, + "remote": { + "bfs_style": "widget-layer-avatar", + "url": "https://i0.hdslb.com/bfs/face/c1733474892caa45952b2c09a89323157df7129a.jpg" + }, + "src_type": 1 + } + }, + "res_type": 3 + }, + "visible": true + }, + { + "general_spec": { + "pos_spec": { + "axis_x": 0.8000000000000002, + "axis_y": 0.8000000000000002, + "coordinate_pos": 1 + }, + "render_spec": { + "opacity": 1 + }, + "size_spec": { + "height": 0.41666666666666663, + "width": 0.41666666666666663 + } + }, + "layer_config": { + "tags": { + "GENERAL_CFG": { + "config_type": 1, + "general_config": { + "web_css_style": { + "background-color": "rgb(255,255,255)", + "border": "2px solid rgba(255,255,255,1)", + "borderRadius": "50%", + "boxSizing": "border-box" + } + } + }, + "ICON_LAYER": {} + } + }, + "resource": { + "res_image": { + "image_src": { + "local": 3, + "src_type": 2 + } + }, + "res_type": 3 + }, + "visible": true + } + ] + }, + "mid": "946974" + }, + "face": "https://i0.hdslb.com/bfs/face/c1733474892caa45952b2c09a89323157df7129a.jpg", + "face_nft": false, + "following": true, + "jump_url": "//space.bilibili.com/946974/dynamic", + "label": "", + "mid": 946974, + "name": "影视飓风", + "official_verify": { + "desc": "", + "type": 0 + }, + "pendant": { + "expire": 0, + "image": "", + "image_enhance": "", + "image_enhance_frame": "", + "n_pid": 0, + "name": "", + "pid": 0 + }, + "pub_action": "", + "pub_location_text": "", + "pub_time": "昨天 17:57", + "pub_ts": 1723888625, + "type": "AUTHOR_TYPE_NORMAL", + "vip": { + "avatar_subscript": 1, + "avatar_subscript_url": "", + "due_date": 1975248000000, + "label": { + "bg_color": "#FB7299", + "bg_style": 1, + "border_color": "", + "img_label_uri_hans": "https://i0.hdslb.com/bfs/activity-plat/static/20220608/e369244d0b14644f5e1a06431e22a4d5/wltavwHAkL.gif", + "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/802418ff03911645648b63aa193ba67997b5a0bc.png", + "img_label_uri_hant": "", + "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/8u7iRTPE7N.png", + "label_theme": "ten_annual_vip", + "path": "", + "text": "十年大会员", + "text_color": "#FFFFFF", + "use_img_label": true + }, + "nickname_color": "#FB7299", + "status": 1, + "theme_type": 0, + "type": 2 + } + }, + "module_dynamic": { + "additional": { + "reserve": { + "button": { + "check": { + "icon_url": "", + "text": "已预约" + }, + "status": 1, + "type": 2, + "uncheck": { + "icon_url": "https://i0.hdslb.com/bfs/album/1d6af68e116985828780dd843ef435ccd6307e63.png", + "text": "预约" + } + }, + "desc1": { + "style": 0, + "text": "今天 20:00 直播" + }, + "desc2": { + "style": 0, + "text": "4153人预约", + "visible": true + }, + "jump_url": "", + "reserve_total": 4153, + "rid": 4003487, + "state": 0, + "stype": 2, + "title": "直播预约:飓风商店夏促来了!", + "up_mid": 946974 + }, + "type": "ADDITIONAL_TYPE_RESERVE" + }, + "desc": { + "rich_text_nodes": [ + { + "orig_text": "飓风商店夏季活动来啦!\n8月18日周日晚20:00,直播间每15分钟天选抽送【热升华键帽】!\n\n👇新品看这边\n呼声超高的mini托特挂件、防泼水拎包、新版车贴,首发好价!\n👇福利看这边\n经典热销款全场9折,夏秋两季可穿,硬件同享折扣!\n\n总之,记得预约!", + "text": "飓风商店夏季活动来啦!\n8月18日周日晚20:00,直播间每15分钟天选抽送【热升华键帽】!\n\n👇新品看这边\n呼声超高的mini托特挂件、防泼水拎包、新版车贴,首发好价!\n👇福利看这边\n经典热销款全场9折,夏秋两季可穿,硬件同享折扣!\n\n总之,记得预约!", + "type": "RICH_TEXT_NODE_TYPE_TEXT" + } + ], + "text": "飓风商店夏季活动来啦!\n8月18日周日晚20:00,直播间每15分钟天选抽送【热升华键帽】!\n\n👇新品看这边\n呼声超高的mini托特挂件、防泼水拎包、新版车贴,首发好价!\n👇福利看这边\n经典热销款全场9折,夏秋两季可穿,硬件同享折扣!\n\n总之,记得预约!" + }, + "major": { + "draw": { + "id": 325765582, + "items": [ + { + "height": 9829, + "size": 5198.785, + "src": "http://i0.hdslb.com/bfs/new_dyn/9d690134c84c03f6bacf83cf4d21bd73946974.jpg", + "tags": [], + "width": 2251 + } + ] + }, + "type": "MAJOR_TYPE_DRAW" + }, + "topic": null + }, + "module_more": { + "three_point_items": [ + { + "label": "取消关注", + "type": "THREE_POINT_FOLLOWING" + }, + { + "label": "举报", + "type": "THREE_POINT_REPORT" + } + ] + }, + "module_stat": { + "comment": { + "count": 3104, + "forbidden": false + }, + "forward": { + "count": 154, + "forbidden": false + }, + "like": { + "count": 4703, + "forbidden": false, + "status": false + } + } + }, + "type": "DYNAMIC_TYPE_DRAW", + "visible": true + }, + { + "basic": { + "comment_id_str": "325753910", + "comment_type": 11, + "like_icon": { + "action_url": "", + "end_url": "", + "id": 0, + "start_url": "" + }, + "rid_str": "325753910" + }, + "id_str": "966552037496979456", + "modules": { + "module_author": { + "avatar": { + "container_size": { + "height": 1.375, + "width": 1.375 + }, + "fallback_layers": { + "is_critical_group": true, + "layers": [ + { + "general_spec": { + "pos_spec": { + "axis_x": 0.6875, + "axis_y": 0.6875, + "coordinate_pos": 2 + }, + "render_spec": { + "opacity": 1 + }, + "size_spec": { + "height": 0.787, + "width": 0.787 + } + }, + "layer_config": { + "is_critical": true, + "tags": { + "AVATAR_LAYER": {}, + "GENERAL_CFG": { + "config_type": 1, + "general_config": { + "web_css_style": { + "borderRadius": "50%" + } + } + } + } + }, + "resource": { + "res_animation": { + "webp_src": { + "placeholder": 6, + "remote": { + "bfs_style": "widget-layer-avatar", + "url": "https://i0.hdslb.com/bfs/face/7efb679569b2faeff38fa08f6f992fa1ada5e948.webp" + }, + "src_type": 1 + } + }, + "res_type": 4 + }, + "visible": true + }, + { + "general_spec": { + "pos_spec": { + "axis_x": 0.6875, + "axis_y": 0.6875, + "coordinate_pos": 2 + }, + "render_spec": { + "opacity": 1 + }, + "size_spec": { + "height": 1.375, + "width": 1.375 + } + }, + "layer_config": { + "tags": { + "PENDENT_LAYER": {} + } + }, + "resource": { + "res_image": { + "image_src": { + "remote": { + "bfs_style": "widget-layer-avatar", + "url": "https://i0.hdslb.com/bfs/garb/item/0dcf03aa499a64524fe25871d26d95f49f880928.png" + }, + "src_type": 1 + } + }, + "res_type": 3 + }, + "visible": true + }, + { + "general_spec": { + "pos_spec": { + "axis_x": 0.7560000000000001, + "axis_y": 0.7726666666666667, + "coordinate_pos": 1 + }, + "render_spec": { + "opacity": 1 + }, + "size_spec": { + "height": 0.41666666666666663, + "width": 0.41666666666666663 + } + }, + "layer_config": { + "tags": { + "GENERAL_CFG": { + "config_type": 1, + "general_config": { + "web_css_style": { + "background-color": "rgb(255,255,255)", + "border": "2px solid rgba(255,255,255,1)", + "borderRadius": "50%", + "boxSizing": "border-box" + } + } + }, + "ICON_LAYER": {} + } + }, + "resource": { + "res_image": { + "image_src": { + "local": 3, + "src_type": 2 + } + }, + "res_type": 3 + }, + "visible": true + } + ] + }, + "mid": "686127" + }, + "face": "https://i0.hdslb.com/bfs/face/7efb679569b2faeff38fa08f6f992fa1ada5e948.webp", + "face_nft": false, + "following": true, + "jump_url": "//space.bilibili.com/686127/dynamic", + "label": "", + "mid": 686127, + "name": "籽岷", + "official_verify": { + "desc": "", + "type": 0 + }, + "pendant": { + "expire": 0, + "image": "https://i0.hdslb.com/bfs/garb/item/0dcf03aa499a64524fe25871d26d95f49f880928.png", + "image_enhance": "https://i0.hdslb.com/bfs/garb/item/0dcf03aa499a64524fe25871d26d95f49f880928.png", + "image_enhance_frame": "", + "n_pid": 2066, + "name": "百年大会员", + "pid": 2066 + }, + "pub_action": "", + "pub_location_text": "", + "pub_time": "昨天 15:55", + "pub_ts": 1723881333, + "type": "AUTHOR_TYPE_NORMAL", + "vip": { + "avatar_subscript": 1, + "avatar_subscript_url": "", + "due_date": 4845196800000, + "label": { + "bg_color": "#FB7299", + "bg_style": 1, + "border_color": "", + "img_label_uri_hans": "", + "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/c16005a5b39164b3536cbd45618a5edd597a1c51.png", + "img_label_uri_hant": "", + "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/Pzrd8zmpQD.png", + "label_theme": "hundred_annual_vip", + "path": "", + "text": "百年大会员", + "text_color": "#FFFFFF", + "use_img_label": true + }, + "nickname_color": "#FB7299", + "status": 1, + "theme_type": 0, + "type": 2 + } + }, + "module_dynamic": { + "additional": { + "type": "ADDITIONAL_TYPE_UPOWER_LOTTERY", + "upower_lottery": { + "button": { + "jump_style": { + "icon_url": "", + "text": "6元充电" + }, + "jump_url": "https://www.bilibili.com/h5/upower/index?mid=686127\u0026default_level=10\u0026levels=10\u0026navhide=1\u0026lotteryId=313280\u0026businessId=966552037496979456\u0026prePage=lotteryCard", + "type": 1 + }, + "desc": { + "jump_url": "https://www.bilibili.com/h5/lottery/result?business_id=966552037496979456\u0026business_type=12", + "style": 1, + "text": "【籽岷定制手偶】*10份" + }, + "hint": { + "style": 0, + "text": "加入当前UP主的「6元档包月充电」即可参与" + }, + "jump_url": "https://www.bilibili.com/h5/lottery/result?business_id=966552037496979456\u0026business_type=12", + "rid": 313280, + "state": 0, + "title": "石粒专属抽奖", + "up_mid": 686127, + "upower_action_state": 2, + "upower_level": 10 + } + }, + "desc": { + "rich_text_nodes": [ + { + "emoji": { + "icon_url": "https://i0.hdslb.com/bfs/garb/ebeae1235fa9397e6e5598ce1e5e2955bb345a8b.png", + "size": 2, + "text": "[UPOWER_686127_闪亮登场]", + "type": 11 + }, + "orig_text": "[UPOWER_686127_闪亮登场]", + "text": "[UPOWER_686127_闪亮登场]", + "type": "RICH_TEXT_NODE_TYPE_EMOJI" + }, + { + "orig_text": "今天给大家奉上一波新福利,抽10人(籽岷定制手偶)~\n感谢一直为我包月充电的观众们~\n活动开奖时间为8月21日23点59分,大家快来抽奖吧~", + "text": "今天给大家奉上一波新福利,抽10人(籽岷定制手偶)~\n感谢一直为我包月充电的观众们~\n活动开奖时间为8月21日23点59分,大家快来抽奖吧~", + "type": "RICH_TEXT_NODE_TYPE_TEXT" + } + ], + "text": "[UPOWER_686127_闪亮登场]今天给大家奉上一波新福利,抽10人(籽岷定制手偶)~\n感谢一直为我包月充电的观众们~\n活动开奖时间为8月21日23点59分,大家快来抽奖吧~" + }, + "major": { + "draw": { + "id": 325753910, + "items": [ + { + "height": 800, + "size": 596.8096, + "src": "http://i0.hdslb.com/bfs/new_dyn/1b03b7888b105765d985f3093e5d6e4a686127.png", + "tags": [], + "width": 800 + }, + { + "height": 800, + "size": 393.75098, + "src": "http://i0.hdslb.com/bfs/new_dyn/b69ee39531bf8864471ec9fbc7de4402686127.png", + "tags": [], + "width": 800 + }, + { + "height": 800, + "size": 364.8711, + "src": "http://i0.hdslb.com/bfs/new_dyn/0c3fb5268abe60023b0053902bccde66686127.png", + "tags": [], + "width": 800 + }, + { + "height": 800, + "size": 198.65234, + "src": "http://i0.hdslb.com/bfs/new_dyn/693a40f83d2ac6a4952c9541365e1265686127.png", + "tags": [], + "width": 800 + } + ] + }, + "type": "MAJOR_TYPE_DRAW" + }, + "topic": { + "id": 1006239, + "jump_url": "https://m.bilibili.com/topic-detail?topic_id=1006239\u0026topic_name=%E7%B1%BD%E5%B2%B7%E5%93%81%E9%89%B4%E5%9B%A2", + "name": "籽岷品鉴团" + } + }, + "module_more": { + "three_point_items": [ + { + "label": "取消关注", + "type": "THREE_POINT_FOLLOWING" + }, + { + "label": "举报", + "type": "THREE_POINT_REPORT" + } + ] + }, + "module_stat": { + "comment": { + "count": 28, + "forbidden": false + }, + "forward": { + "count": 2, + "forbidden": false + }, + "like": { + "count": 2686, + "forbidden": false, + "status": false + } + } + }, + "type": "DYNAMIC_TYPE_DRAW", + "visible": true + }, + { + "basic": { + "comment_id_str": "1456450441", + "comment_type": 1, + "like_icon": { + "action_url": "", + "end_url": "", + "id": 0, + "start_url": "" + }, + "rid_str": "1456450441" + }, + "id_str": "966513421411418114", + "modules": { + "module_author": { + "avatar": { + "container_size": { + "height": 1.35, + "width": 1.35 + }, + "fallback_layers": { + "is_critical_group": true, + "layers": [ + { + "general_spec": { + "pos_spec": { + "axis_x": 0.675, + "axis_y": 0.675, + "coordinate_pos": 2 + }, + "render_spec": { + "opacity": 1 + }, + "size_spec": { + "height": 1, + "width": 1 + } + }, + "layer_config": { + "is_critical": true, + "tags": { + "AVATAR_LAYER": {}, + "GENERAL_CFG": { + "config_type": 1, + "general_config": { + "web_css_style": { + "borderRadius": "50%" + } + } + } + } + }, + "resource": { + "res_image": { + "image_src": { + "placeholder": 6, + "remote": { + "bfs_style": "widget-layer-avatar", + "url": "https://i1.hdslb.com/bfs/face/94183796acd85f2e80f3dca740bc1c3d5cae6410.jpg" + }, + "src_type": 1 + } + }, + "res_type": 3 + }, + "visible": true + }, + { + "general_spec": { + "pos_spec": { + "axis_x": 0.8000000000000002, + "axis_y": 0.8000000000000002, + "coordinate_pos": 1 + }, + "render_spec": { + "opacity": 1 + }, + "size_spec": { + "height": 0.41666666666666663, + "width": 0.41666666666666663 + } + }, + "layer_config": { + "tags": { + "GENERAL_CFG": { + "config_type": 1, + "general_config": { + "web_css_style": { + "background-color": "rgb(255,255,255)", + "border": "2px solid rgba(255,255,255,1)", + "borderRadius": "50%", + "boxSizing": "border-box" + } + } + }, + "ICON_LAYER": {} + } + }, + "resource": { + "res_image": { + "image_src": { + "local": 1, + "src_type": 2 + } + }, + "res_type": 3 + }, + "visible": true + } + ] + }, + "mid": "3493131246897478" + }, + "face": "https://i1.hdslb.com/bfs/face/94183796acd85f2e80f3dca740bc1c3d5cae6410.jpg", + "face_nft": false, + "following": true, + "jump_url": "//space.bilibili.com/3493131246897478/dynamic", + "label": "", + "mid": 3493131246897478, + "name": "电解碳酸钠", + "official_verify": { + "desc": "", + "type": -1 + }, + "pendant": { + "expire": 0, + "image": "", + "image_enhance": "", + "image_enhance_frame": "", + "n_pid": 0, + "name": "", + "pid": 0 + }, + "pub_action": "投稿了视频", + "pub_location_text": "", + "pub_time": "昨天 13:25", + "pub_ts": 1723872342, + "type": "AUTHOR_TYPE_NORMAL", + "vip": { + "avatar_subscript": 1, + "avatar_subscript_url": "", + "due_date": 1744732800000, + "label": { + "bg_color": "#FB7299", + "bg_style": 1, + "border_color": "", + "img_label_uri_hans": "", + "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png", + "img_label_uri_hant": "", + "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png", + "label_theme": "annual_vip", + "path": "", + "text": "年度大会员", + "text_color": "#FFFFFF", + "use_img_label": true + }, + "nickname_color": "#FB7299", + "status": 1, + "theme_type": 0, + "type": 2 + } + }, + "module_dynamic": { + "additional": null, + "desc": { + "rich_text_nodes": [ + { + "orig_text": "给脚专用的“按键” 我觉得他不应该这么贵", + "text": "给脚专用的“按键” 我觉得他不应该这么贵", + "type": "RICH_TEXT_NODE_TYPE_TEXT" + } + ], + "text": "给脚专用的“按键” 我觉得他不应该这么贵" + }, + "major": { + "archive": { + "aid": "1456450441", + "badge": { + "bg_color": "#FB7299", + "color": "#FFFFFF", + "icon_url": null, + "text": "投稿视频" + }, + "bvid": "BV1Yi421a7FC", + "cover": "http://i1.hdslb.com/bfs/archive/b56700e0a1d28ecff2ff135a7cc51e9b09cace79.jpg", + "desc": "用到的配件:\n·带有热插拔轴体功能的任何全新\u0026二手键盘 只要功能正常即可\n·追求极致性价比的 可以直接买剪线键盘进行改造\n·TFS-1脚踏脚踩开关(我买的3.2一个)\n要注意这些脚踏开关有可能是3线 分为常闭和常开\n对于这个型号的开关 我接的是红线+白线 为踩下触发\n·焊油(推荐针管式单手操作)", + "disable_preview": 0, + "duration_text": "06:01", + "jump_url": "//www.bilibili.com/video/BV1Yi421a7FC/", + "stat": { + "danmaku": "149", + "play": "2.7万" + }, + "title": "商家别看!脚踩键盘DIY超值方案?市场售价凭啥那么贵!", + "type": 1 + }, + "type": "MAJOR_TYPE_ARCHIVE" + }, + "topic": null + }, + "module_more": { + "three_point_items": [ + { + "label": "取消关注", + "type": "THREE_POINT_FOLLOWING" + }, + { + "label": "举报", + "type": "THREE_POINT_REPORT" + } + ] + }, + "module_stat": { + "comment": { + "count": 161, + "forbidden": false + }, + "forward": { + "count": 17, + "forbidden": false + }, + "like": { + "count": 2699, + "forbidden": false, + "status": false + } + } + }, + "type": "DYNAMIC_TYPE_AV", + "visible": true + }, + { + "basic": { + "comment_id_str": "966495069003579398", + "comment_type": 17, + "like_icon": { + "action_url": "", + "end_url": "", + "id": 0, + "start_url": "" + }, + "rid_str": "966495069003579398" + }, + "id_str": "966495069003579398", + "modules": { + "module_author": { + "avatar": { + "container_size": { + "height": 1.35, + "width": 1.35 + }, + "fallback_layers": { + "is_critical_group": true, + "layers": [ + { + "general_spec": { + "pos_spec": { + "axis_x": 0.675, + "axis_y": 0.675, + "coordinate_pos": 2 + }, + "render_spec": { + "opacity": 1 + }, + "size_spec": { + "height": 1, + "width": 1 + } + }, + "layer_config": { + "is_critical": true, + "tags": { + "AVATAR_LAYER": {}, + "GENERAL_CFG": { + "config_type": 1, + "general_config": { + "web_css_style": { + "borderRadius": "50%" + } + } + } + } + }, + "resource": { + "res_image": { + "image_src": { + "placeholder": 6, + "remote": { + "bfs_style": "widget-layer-avatar", + "url": "https://i0.hdslb.com/bfs/face/c1733474892caa45952b2c09a89323157df7129a.jpg" + }, + "src_type": 1 + } + }, + "res_type": 3 + }, + "visible": true + }, + { + "general_spec": { + "pos_spec": { + "axis_x": 0.8000000000000002, + "axis_y": 0.8000000000000002, + "coordinate_pos": 1 + }, + "render_spec": { + "opacity": 1 + }, + "size_spec": { + "height": 0.41666666666666663, + "width": 0.41666666666666663 + } + }, + "layer_config": { + "tags": { + "GENERAL_CFG": { + "config_type": 1, + "general_config": { + "web_css_style": { + "background-color": "rgb(255,255,255)", + "border": "2px solid rgba(255,255,255,1)", + "borderRadius": "50%", + "boxSizing": "border-box" + } + } + }, + "ICON_LAYER": {} + } + }, + "resource": { + "res_image": { + "image_src": { + "local": 3, + "src_type": 2 + } + }, + "res_type": 3 + }, + "visible": true + } + ] + }, + "mid": "946974" + }, + "face": "https://i0.hdslb.com/bfs/face/c1733474892caa45952b2c09a89323157df7129a.jpg", + "face_nft": false, + "following": true, + "jump_url": "//space.bilibili.com/946974/dynamic", + "label": "", + "mid": 946974, + "name": "影视飓风", + "official_verify": { + "desc": "", + "type": 0 + }, + "pendant": { + "expire": 0, + "image": "", + "image_enhance": "", + "image_enhance_frame": "", + "n_pid": 0, + "name": "", + "pid": 0 + }, + "pub_action": "", + "pub_location_text": "", + "pub_time": "昨天 12:14", + "pub_ts": 1723868069, + "type": "AUTHOR_TYPE_NORMAL", + "vip": { + "avatar_subscript": 1, + "avatar_subscript_url": "", + "due_date": 1975248000000, + "label": { + "bg_color": "#FB7299", + "bg_style": 1, + "border_color": "", + "img_label_uri_hans": "https://i0.hdslb.com/bfs/activity-plat/static/20220608/e369244d0b14644f5e1a06431e22a4d5/wltavwHAkL.gif", + "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/802418ff03911645648b63aa193ba67997b5a0bc.png", + "img_label_uri_hant": "", + "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/8u7iRTPE7N.png", + "label_theme": "ten_annual_vip", + "path": "", + "text": "十年大会员", + "text_color": "#FFFFFF", + "use_img_label": true + }, + "nickname_color": "#FB7299", + "status": 1, + "theme_type": 0, + "type": 2 + } + }, + "module_dynamic": { + "additional": null, + "desc": { + "rich_text_nodes": [ + { + "orig_text": "周末啦,希望大家喜欢这期科普分享!我们的官网也加上了电影节的科普和信息汇总,欢迎大家取用~", + "text": "周末啦,希望大家喜欢这期科普分享!我们的官网也加上了电影节的科普和信息汇总,欢迎大家取用~", + "type": "RICH_TEXT_NODE_TYPE_TEXT" + } + ], + "text": "周末啦,希望大家喜欢这期科普分享!我们的官网也加上了电影节的科普和信息汇总,欢迎大家取用~" + }, + "major": null, + "topic": null + }, + "module_more": { + "three_point_items": [ + { + "label": "取消关注", + "type": "THREE_POINT_FOLLOWING" + }, + { + "label": "举报", + "type": "THREE_POINT_REPORT" + } + ] + }, + "module_stat": { + "comment": { + "count": 101, + "forbidden": false + }, + "forward": { + "count": 7, + "forbidden": false + }, + "like": { + "count": 5247, + "forbidden": false, + "status": false + } + } + }, + "orig": { + "basic": { + "comment_id_str": "", + "comment_type": 0, + "like_icon": { + "action_url": "", + "end_url": "", + "id": 0, + "start_url": "" + }, + "rid_str": "" + }, + "id_str": "966197633939931139", + "modules": { + "module_author": { + "avatar": { + "container_size": { + "height": 1.35, + "width": 1.35 + }, + "fallback_layers": { + "is_critical_group": true, + "layers": [ + { + "general_spec": { + "pos_spec": { + "axis_x": 0.675, + "axis_y": 0.675, + "coordinate_pos": 2 + }, + "render_spec": { + "opacity": 1 + }, + "size_spec": { + "height": 1, + "width": 1 + } + }, + "layer_config": { + "is_critical": true, + "tags": { + "AVATAR_LAYER": {}, + "GENERAL_CFG": { + "config_type": 1, + "general_config": { + "web_css_style": { + "borderRadius": "50%" + } + } + } + } + }, + "resource": { + "res_image": { + "image_src": { + "placeholder": 6, + "remote": { + "bfs_style": "widget-layer-avatar", + "url": "https://i0.hdslb.com/bfs/face/c1733474892caa45952b2c09a89323157df7129a.jpg" + }, + "src_type": 1 + } + }, + "res_type": 3 + }, + "visible": true + }, + { + "general_spec": { + "pos_spec": { + "axis_x": 0.8000000000000002, + "axis_y": 0.8000000000000002, + "coordinate_pos": 1 + }, + "render_spec": { + "opacity": 1 + }, + "size_spec": { + "height": 0.41666666666666663, + "width": 0.41666666666666663 + } + }, + "layer_config": { + "tags": { + "GENERAL_CFG": { + "config_type": 1, + "general_config": { + "web_css_style": { + "background-color": "rgb(255,255,255)", + "border": "2px solid rgba(255,255,255,1)", + "borderRadius": "50%", + "boxSizing": "border-box" + } + } + }, + "ICON_LAYER": {} + } + }, + "resource": { + "res_image": { + "image_src": { + "local": 3, + "src_type": 2 + } + }, + "res_type": 3 + }, + "visible": true + } + ] + }, + "mid": "946974" + }, + "face": "https://i0.hdslb.com/bfs/face/c1733474892caa45952b2c09a89323157df7129a.jpg", + "face_nft": false, + "following": true, + "jump_url": "//space.bilibili.com/946974/dynamic", + "label": "", + "mid": 946974, + "name": "影视飓风", + "official_verify": { + "desc": "", + "type": 0 + }, + "pendant": { + "expire": 0, + "image": "", + "image_enhance": "", + "image_enhance_frame": "", + "n_pid": 0, + "name": "", + "pid": 0 + }, + "pub_action": "投稿了视频", + "pub_time": "", + "pub_ts": 1723798817, + "type": "AUTHOR_TYPE_NORMAL", + "vip": { + "avatar_subscript": 1, + "avatar_subscript_url": "", + "due_date": 1975248000000, + "label": { + "bg_color": "#FB7299", + "bg_style": 1, + "border_color": "", + "img_label_uri_hans": "https://i0.hdslb.com/bfs/activity-plat/static/20220608/e369244d0b14644f5e1a06431e22a4d5/wltavwHAkL.gif", + "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/802418ff03911645648b63aa193ba67997b5a0bc.png", + "img_label_uri_hant": "", + "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/8u7iRTPE7N.png", + "label_theme": "ten_annual_vip", + "path": "", + "text": "十年大会员", + "text_color": "#FFFFFF", + "use_img_label": true + }, + "nickname_color": "#FB7299", + "status": 1, + "theme_type": 0, + "type": 2 + } + }, + "module_dynamic": { + "additional": null, + "desc": { + "rich_text_nodes": [ + { + "orig_text": "挺久没有更新的看懂电影系列!", + "text": "挺久没有更新的看懂电影系列!", + "type": "RICH_TEXT_NODE_TYPE_TEXT" + } + ], + "text": "挺久没有更新的看懂电影系列!" + }, + "major": { + "archive": { + "aid": "1506437840", + "badge": { + "bg_color": "#FB7299", + "color": "#FFFFFF", + "icon_url": null, + "text": "投稿视频" + }, + "bvid": "BV13S42197ja", + "cover": "http://i1.hdslb.com/bfs/archive/50d4705b2d804a76f3c19af269dd7804479aa94e.jpg", + "desc": "国内外总共有3000多个大大小小的电影节。那么,短片可以参加电影节吗?什么时候投递获奖概率才大一些?这次我们想和你分享一些投递和参加电影节的门道。我们还整理了一份有关电影节的科普文档,可以来我们的官网看看:https://filmfestival.ysjf.com/。\n如果你喜欢这期视频,请多多支持我们,并将视频分享给其他朋友一起看看!", + "disable_preview": 0, + "duration_text": "10:55", + "jump_url": "//www.bilibili.com/video/BV13S42197ja/", + "stat": { + "danmaku": "2067", + "play": "64.1万" + }, + "title": "全世界3000多个电影节,都在办些啥?", + "type": 1 + }, + "type": "MAJOR_TYPE_ARCHIVE" + }, + "topic": null + } + }, + "type": "DYNAMIC_TYPE_AV", + "visible": true + }, + "type": "DYNAMIC_TYPE_FORWARD", + "visible": true + }, + { + "basic": { + "comment_id_str": "37185041", + "comment_type": 12, + "like_icon": { + "action_url": "", + "end_url": "", + "id": 0, + "start_url": "" + }, + "rid_str": "37185041" + }, + "id_str": "966484129969340422", + "modules": { + "module_author": { + "avatar": { + "container_size": { + "height": 1.35, + "width": 1.35 + }, + "fallback_layers": { + "is_critical_group": true, + "layers": [ + { + "general_spec": { + "pos_spec": { + "axis_x": 0.675, + "axis_y": 0.675, + "coordinate_pos": 2 + }, + "render_spec": { + "opacity": 1 + }, + "size_spec": { + "height": 1, + "width": 1 + } + }, + "layer_config": { + "is_critical": true, + "tags": { + "AVATAR_LAYER": {}, + "GENERAL_CFG": { + "config_type": 1, + "general_config": { + "web_css_style": { + "borderRadius": "50%" + } + } + } + } + }, + "resource": { + "res_image": { + "image_src": { + "placeholder": 6, + "remote": { + "bfs_style": "widget-layer-avatar", + "url": "https://i0.hdslb.com/bfs/face/978ea07f22e54c2e62f01def8e815b59adacc5d0.jpg" + }, + "src_type": 1 + } + }, + "res_type": 3 + }, + "visible": true + }, + { + "general_spec": { + "pos_spec": { + "axis_x": 0.8000000000000002, + "axis_y": 0.8000000000000002, + "coordinate_pos": 1 + }, + "render_spec": { + "opacity": 1 + }, + "size_spec": { + "height": 0.41666666666666663, + "width": 0.41666666666666663 + } + }, + "layer_config": { + "tags": { + "GENERAL_CFG": { + "config_type": 1, + "general_config": { + "web_css_style": { + "background-color": "rgb(255,255,255)", + "border": "2px solid rgba(255,255,255,1)", + "borderRadius": "50%", + "boxSizing": "border-box" + } + } + }, + "ICON_LAYER": {} + } + }, + "resource": { + "res_image": { + "image_src": { + "local": 4, + "src_type": 2 + } + }, + "res_type": 3 + }, + "visible": true + } + ] + }, + "mid": "407045223" + }, + "decorate": { + "card_url": "https://i0.hdslb.com/bfs/vip/a9e3d993c7a15e88ce0bf714a142f7d2b44121e2.png", + "fan": { + "color": "", + "color_format": null, + "is_fan": false, + "num_prefix": "", + "num_str": "", + "number": 0 + }, + "id": 28, + "jump_url": "https://www.bilibili.com/h5/mall/equity-link/collect-home?item_id=28\u0026isdiy=0\u0026part=card\u0026from=post\u0026f_source=garb\u0026vmid=407045223\u0026native.theme=1\u0026navhide=1", + "name": "2233娘", + "type": 1 + }, + "face": "https://i0.hdslb.com/bfs/face/978ea07f22e54c2e62f01def8e815b59adacc5d0.jpg", + "face_nft": false, + "following": true, + "jump_url": "//space.bilibili.com/407045223/dynamic", + "label": "", + "mid": 407045223, + "name": "二次元的中科院物理所", + "official_verify": { + "desc": "", + "type": 1 + }, + "pendant": { + "expire": 0, + "image": "", + "image_enhance": "", + "image_enhance_frame": "", + "n_pid": 0, + "name": "", + "pid": 0 + }, + "pub_action": "投稿了文章", + "pub_location_text": "", + "pub_time": "昨天 11:32", + "pub_ts": 1723865522, + "type": "AUTHOR_TYPE_NORMAL", + "vip": { + "avatar_subscript": 1, + "avatar_subscript_url": "", + "due_date": 1745769600000, + "label": { + "bg_color": "#FB7299", + "bg_style": 1, + "border_color": "", + "img_label_uri_hans": "", + "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png", + "img_label_uri_hant": "", + "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png", + "label_theme": "annual_vip", + "path": "", + "text": "年度大会员", + "text_color": "#FFFFFF", + "use_img_label": true + }, + "nickname_color": "#FB7299", + "status": 1, + "theme_type": 0, + "type": 2 + } + }, + "module_dynamic": { + "additional": null, + "desc": null, + "major": { + "article": { + "covers": [ + "https://i0.hdslb.com/bfs/article/708ab38ac38df8fe7851a63c0258fa64407045223.jpg" + ], + "desc": "经历过密码解锁和手势解锁后 真感慨指纹解锁是天才的创造 可惜遇到湿手油手经常失效 甚至擦干了还是这样 这是为什么呢问答导航Q1 鸡蛋在母鸡体内有气室吗?Q2 为什么弹簧是螺旋型的?Q3 闪电为什么总是自上而下,有没有自下而上的闪电呢?Q4 当一束光使电子发生了能级跃迁,原先的光子去哪儿了,消失了吗?Q5 为什么有茶叶的水在转时茶叶会趋向中间而不是两边呢?Q6 为什么塑料相比于其它物质,更容易起静电?Q7 为什么会有空集?空集的存在有什么物理意义? Q8 为什么有纹理的木擦了木蜡油之后会纹理变深,更容易被看", + "id": 37185041, + "jump_url": "//www.bilibili.com/read/cv37185041/", + "label": "16.3万阅读", + "title": "手指沾水擦干但是指纹识别还是失败,这是什么原因?| No.422" + }, + "type": "MAJOR_TYPE_ARTICLE" + }, + "topic": null + }, + "module_more": { + "three_point_items": [ + { + "label": "取消关注", + "type": "THREE_POINT_FOLLOWING" + }, + { + "label": "举报", + "type": "THREE_POINT_REPORT" + } + ] + }, + "module_stat": { + "comment": { + "count": 23, + "forbidden": false + }, + "forward": { + "count": 7, + "forbidden": false + }, + "like": { + "count": 727, + "forbidden": false, + "status": false + } + } + }, + "type": "DYNAMIC_TYPE_ARTICLE", + "visible": true + }, + { + "basic": { + "comment_id_str": "966475883631083553", + "comment_type": 17, + "like_icon": { + "action_url": "", + "end_url": "", + "id": 0, + "start_url": "" + }, + "rid_str": "966475883631083553" + }, + "id_str": "966475883631083553", + "modules": { + "module_author": { + "avatar": { + "container_size": { + "height": 1.375, + "width": 1.375 + }, + "fallback_layers": { + "is_critical_group": true, + "layers": [ + { + "general_spec": { + "pos_spec": { + "axis_x": 0.6875, + "axis_y": 0.6875, + "coordinate_pos": 2 + }, + "render_spec": { + "opacity": 1 + }, + "size_spec": { + "height": 0.787, + "width": 0.787 + } + }, + "layer_config": { + "is_critical": true, + "tags": { + "AVATAR_LAYER": {}, + "GENERAL_CFG": { + "config_type": 1, + "general_config": { + "web_css_style": { + "borderRadius": "50%" + } + } + } + } + }, + "resource": { + "res_image": { + "image_src": { + "placeholder": 6, + "remote": { + "bfs_style": "widget-layer-avatar", + "url": "https://i1.hdslb.com/bfs/face/1fd5b43d5f619e6df8c8adcf13c962a3e80ee971.jpg" + }, + "src_type": 1 + } + }, + "res_type": 3 + }, + "visible": true + }, + { + "general_spec": { + "pos_spec": { + "axis_x": 0.6875, + "axis_y": 0.6875, + "coordinate_pos": 2 + }, + "render_spec": { + "opacity": 1 + }, + "size_spec": { + "height": 1.375, + "width": 1.375 + } + }, + "layer_config": { + "tags": { + "PENDENT_LAYER": {} + } + }, + "resource": { + "res_image": { + "image_src": { + "remote": { + "bfs_style": "widget-layer-avatar", + "url": "https://i1.hdslb.com/bfs/garb/item/fe1267f786bf69f1471aff715f8d38ec0e486df5.png" + }, + "src_type": 1 + } + }, + "res_type": 3 + }, + "visible": true + }, + { + "general_spec": { + "pos_spec": { + "axis_x": 0.7560000000000001, + "axis_y": 0.7726666666666667, + "coordinate_pos": 1 + }, + "render_spec": { + "opacity": 1 + }, + "size_spec": { + "height": 0.41666666666666663, + "width": 0.41666666666666663 + } + }, + "layer_config": { + "tags": { + "GENERAL_CFG": { + "config_type": 1, + "general_config": { + "web_css_style": { + "background-color": "rgb(255,255,255)", + "border": "2px solid rgba(255,255,255,1)", + "borderRadius": "50%", + "boxSizing": "border-box" + } + } + }, + "ICON_LAYER": {} + } + }, + "resource": { + "res_image": { + "image_src": { + "local": 4, + "src_type": 2 + } + }, + "res_type": 3 + }, + "visible": true + } + ] + }, + "layers": [ + { + "is_critical_group": true, + "layers": [ + { + "general_spec": { + "pos_spec": { + "axis_x": 0.6875, + "axis_y": 0.6875, + "coordinate_pos": 2 + }, + "render_spec": { + "opacity": 1 + }, + "size_spec": { + "height": 0.787, + "width": 0.787 + } + }, + "layer_config": { + "is_critical": true, + "tags": { + "AVATAR_LAYER": {}, + "GENERAL_CFG": { + "config_type": 1, + "general_config": { + "web_css_style": { + "borderRadius": "50%" + } + } + } + } + }, + "resource": { + "res_image": { + "image_src": { + "placeholder": 6, + "remote": { + "bfs_style": "widget-layer-avatar", + "url": "https://i1.hdslb.com/bfs/face/1fd5b43d5f619e6df8c8adcf13c962a3e80ee971.jpg" + }, + "src_type": 1 + } + }, + "res_type": 3 + }, + "visible": true + } + ] + }, + { + "layers": [ + { + "general_spec": { + "pos_spec": { + "axis_x": 0.6875, + "axis_y": 0.6875, + "coordinate_pos": 2 + }, + "render_spec": { + "opacity": 1 + }, + "size_spec": { + "height": 1.375, + "width": 1.375 + } + }, + "layer_config": { + "tags": { + "PENDENT_LAYER": {} + } + }, + "resource": { + "res_animation": { + "webp_src": { + "remote": { + "bfs_style": "widget-layer-avatar", + "url": "https://i1.hdslb.com/bfs/garb/item/0aa9fd33133ed3fd9f11c857cc6ca848d6804113.webp" + }, + "src_type": 1 + } + }, + "res_type": 4 + }, + "visible": true + } + ] + }, + { + "layers": [ + { + "general_spec": { + "pos_spec": { + "axis_x": 0.7560000000000001, + "axis_y": 0.7726666666666667, + "coordinate_pos": 1 + }, + "render_spec": { + "opacity": 1 + }, + "size_spec": { + "height": 0.41666666666666663, + "width": 0.41666666666666663 + } + }, + "layer_config": { + "tags": { + "GENERAL_CFG": { + "config_type": 1, + "general_config": { + "web_css_style": { + "background-color": "rgb(255,255,255)", + "border": "2px solid rgba(255,255,255,1)", + "borderRadius": "50%", + "boxSizing": "border-box" + } + } + }, + "ICON_LAYER": {} + } + }, + "resource": { + "res_image": { + "image_src": { + "local": 4, + "src_type": 2 + } + }, + "res_type": 3 + }, + "visible": true + } + ] + } + ], + "mid": "233114659" + }, + "decorate": { + "card_url": "https://i0.hdslb.com/bfs/garb/bb140043341137b879e957d09b649ce7c3257820.png", + "fan": { + "color": "#903AC2", + "color_format": { + "colors": [ + "#903AC2FF", + "#903AC2FF" + ], + "end_point": "0,100", + "gradients": [ + 0, + 100 + ], + "start_point": "0,0" + }, + "is_fan": true, + "num_prefix": "NO.", + "num_str": "000001", + "number": 1 + }, + "id": 1706163888001, + "jump_url": "https://www.bilibili.com/h5/mall/equity-link/collect-home?item_id=1706163888001\u0026isdiy=0\u0026part=card\u0026from=post\u0026f_source=garb\u0026vmid=233114659\u0026native.theme=1\u0026navhide=1", + "name": "龙腾啾跃-动态卡片粉丝", + "type": 3 + }, + "face": "https://i1.hdslb.com/bfs/face/1fd5b43d5f619e6df8c8adcf13c962a3e80ee971.jpg", + "face_nft": false, + "following": true, + "jump_url": "//space.bilibili.com/233114659/dynamic", + "label": "", + "mid": 233114659, + "name": "碧蓝航线", + "official_verify": { + "desc": "", + "type": 1 + }, + "pendant": { + "expire": 0, + "image": "https://i1.hdslb.com/bfs/garb/item/fe1267f786bf69f1471aff715f8d38ec0e486df5.png", + "image_enhance": "https://i1.hdslb.com/bfs/garb/item/0aa9fd33133ed3fd9f11c857cc6ca848d6804113.webp", + "image_enhance_frame": "https://i1.hdslb.com/bfs/garb/item/3052b412defbbc7704e887fefde8de539e8027c5.png", + "n_pid": 1987, + "name": "碧蓝航线2020", + "pid": 1987 + }, + "pub_action": "", + "pub_location_text": "", + "pub_time": "昨天 11:00", + "pub_ts": 1723863602, + "type": "AUTHOR_TYPE_NORMAL", + "vip": { + "avatar_subscript": 1, + "avatar_subscript_url": "", + "due_date": 1729526400000, + "label": { + "bg_color": "#FB7299", + "bg_style": 1, + "border_color": "", + "img_label_uri_hans": "", + "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png", + "img_label_uri_hant": "", + "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png", + "label_theme": "annual_vip", + "path": "", + "text": "年度大会员", + "text_color": "#FFFFFF", + "use_img_label": true + }, + "nickname_color": "#FB7299", + "status": 1, + "theme_type": 0, + "type": 2 + } + }, + "module_dynamic": { + "additional": null, + "desc": { + "rich_text_nodes": [ + { + "orig_text": "恭喜", + "text": "恭喜", + "type": "RICH_TEXT_NODE_TYPE_TEXT" + }, + { + "orig_text": "@两百斤的橘猫猫0w0", + "rid": "8391364", + "text": "@两百斤的橘猫猫0w0", + "type": "RICH_TEXT_NODE_TYPE_AT" + }, + { + "orig_text": "@一位隐身的Z23厨", + "rid": "382382091", + "text": "@一位隐身的Z23厨", + "type": "RICH_TEXT_NODE_TYPE_AT" + }, + { + "orig_text": "@默涛默随波", + "rid": "230373473", + "text": "@默涛默随波", + "type": "RICH_TEXT_NODE_TYPE_AT" + }, + { + "orig_text": "等8位同学中奖,已私信通知,详情请点击抽奖查看。", + "text": "等8位同学中奖,已私信通知,详情请点击抽奖查看。", + "type": "RICH_TEXT_NODE_TYPE_TEXT" + } + ], + "text": "恭喜@两百斤的橘猫猫0w0@一位隐身的Z23厨@默涛默随波等8位同学中奖,已私信通知,详情请点击抽奖查看。" + }, + "major": null, + "topic": null + }, + "module_more": { + "three_point_items": [ + { + "label": "取消关注", + "type": "THREE_POINT_FOLLOWING" + }, + { + "label": "举报", + "type": "THREE_POINT_REPORT" + } + ] + }, + "module_stat": { + "comment": { + "count": 227, + "forbidden": false + }, + "forward": { + "count": 20, + "forbidden": false + }, + "like": { + "count": 3126, + "forbidden": false, + "status": false + } + } + }, + "orig": { + "basic": { + "comment_id_str": "", + "comment_type": 0, + "like_icon": { + "action_url": "", + "end_url": "", + "id": 0, + "start_url": "" + }, + "rid_str": "" + }, + "id_str": "963893770559946786", + "modules": { + "module_author": { + "avatar": { + "container_size": { + "height": 1.375, + "width": 1.375 + }, + "fallback_layers": { + "is_critical_group": true, + "layers": [ + { + "general_spec": { + "pos_spec": { + "axis_x": 0.6875, + "axis_y": 0.6875, + "coordinate_pos": 2 + }, + "render_spec": { + "opacity": 1 + }, + "size_spec": { + "height": 0.787, + "width": 0.787 + } + }, + "layer_config": { + "is_critical": true, + "tags": { + "AVATAR_LAYER": {}, + "GENERAL_CFG": { + "config_type": 1, + "general_config": { + "web_css_style": { + "borderRadius": "50%" + } + } + } + } + }, + "resource": { + "res_image": { + "image_src": { + "placeholder": 6, + "remote": { + "bfs_style": "widget-layer-avatar", + "url": "https://i1.hdslb.com/bfs/face/1fd5b43d5f619e6df8c8adcf13c962a3e80ee971.jpg" + }, + "src_type": 1 + } + }, + "res_type": 3 + }, + "visible": true + }, + { + "general_spec": { + "pos_spec": { + "axis_x": 0.6875, + "axis_y": 0.6875, + "coordinate_pos": 2 + }, + "render_spec": { + "opacity": 1 + }, + "size_spec": { + "height": 1.375, + "width": 1.375 + } + }, + "layer_config": { + "tags": { + "PENDENT_LAYER": {} + } + }, + "resource": { + "res_image": { + "image_src": { + "remote": { + "bfs_style": "widget-layer-avatar", + "url": "https://i1.hdslb.com/bfs/garb/item/fe1267f786bf69f1471aff715f8d38ec0e486df5.png" + }, + "src_type": 1 + } + }, + "res_type": 3 + }, + "visible": true + }, + { + "general_spec": { + "pos_spec": { + "axis_x": 0.7560000000000001, + "axis_y": 0.7726666666666667, + "coordinate_pos": 1 + }, + "render_spec": { + "opacity": 1 + }, + "size_spec": { + "height": 0.41666666666666663, + "width": 0.41666666666666663 + } + }, + "layer_config": { + "tags": { + "GENERAL_CFG": { + "config_type": 1, + "general_config": { + "web_css_style": { + "background-color": "rgb(255,255,255)", + "border": "2px solid rgba(255,255,255,1)", + "borderRadius": "50%", + "boxSizing": "border-box" + } + } + }, + "ICON_LAYER": {} + } + }, + "resource": { + "res_image": { + "image_src": { + "local": 4, + "src_type": 2 + } + }, + "res_type": 3 + }, + "visible": true + } + ] + }, + "layers": [ + { + "is_critical_group": true, + "layers": [ + { + "general_spec": { + "pos_spec": { + "axis_x": 0.6875, + "axis_y": 0.6875, + "coordinate_pos": 2 + }, + "render_spec": { + "opacity": 1 + }, + "size_spec": { + "height": 0.787, + "width": 0.787 + } + }, + "layer_config": { + "is_critical": true, + "tags": { + "AVATAR_LAYER": {}, + "GENERAL_CFG": { + "config_type": 1, + "general_config": { + "web_css_style": { + "borderRadius": "50%" + } + } + } + } + }, + "resource": { + "res_image": { + "image_src": { + "placeholder": 6, + "remote": { + "bfs_style": "widget-layer-avatar", + "url": "https://i1.hdslb.com/bfs/face/1fd5b43d5f619e6df8c8adcf13c962a3e80ee971.jpg" + }, + "src_type": 1 + } + }, + "res_type": 3 + }, + "visible": true + } + ] + }, + { + "layers": [ + { + "general_spec": { + "pos_spec": { + "axis_x": 0.6875, + "axis_y": 0.6875, + "coordinate_pos": 2 + }, + "render_spec": { + "opacity": 1 + }, + "size_spec": { + "height": 1.375, + "width": 1.375 + } + }, + "layer_config": { + "tags": { + "PENDENT_LAYER": {} + } + }, + "resource": { + "res_animation": { + "webp_src": { + "remote": { + "bfs_style": "widget-layer-avatar", + "url": "https://i1.hdslb.com/bfs/garb/item/0aa9fd33133ed3fd9f11c857cc6ca848d6804113.webp" + }, + "src_type": 1 + } + }, + "res_type": 4 + }, + "visible": true + } + ] + }, + { + "layers": [ + { + "general_spec": { + "pos_spec": { + "axis_x": 0.7560000000000001, + "axis_y": 0.7726666666666667, + "coordinate_pos": 1 + }, + "render_spec": { + "opacity": 1 + }, + "size_spec": { + "height": 0.41666666666666663, + "width": 0.41666666666666663 + } + }, + "layer_config": { + "tags": { + "GENERAL_CFG": { + "config_type": 1, + "general_config": { + "web_css_style": { + "background-color": "rgb(255,255,255)", + "border": "2px solid rgba(255,255,255,1)", + "borderRadius": "50%", + "boxSizing": "border-box" + } + } + }, + "ICON_LAYER": {} + } + }, + "resource": { + "res_image": { + "image_src": { + "local": 4, + "src_type": 2 + } + }, + "res_type": 3 + }, + "visible": true + } + ] + } + ], + "mid": "233114659" + }, + "decorate": { + "card_url": "https://i0.hdslb.com/bfs/garb/bb140043341137b879e957d09b649ce7c3257820.png", + "fan": { + "color": "#903AC2", + "color_format": { + "colors": [ + "#903AC2FF", + "#903AC2FF" + ], + "end_point": "0,100", + "gradients": [ + 0, + 100 + ], + "start_point": "0,0" + }, + "is_fan": true, + "num_prefix": "NO.", + "num_str": "000001", + "number": 1 + }, + "id": 1706163888001, + "jump_url": "https://www.bilibili.com/h5/mall/equity-link/collect-home?item_id=1706163888001\u0026isdiy=0\u0026part=card\u0026from=post\u0026f_source=garb\u0026vmid=233114659\u0026native.theme=1\u0026navhide=1", + "name": "龙腾啾跃-动态卡片粉丝", + "type": 3 + }, + "face": "https://i1.hdslb.com/bfs/face/1fd5b43d5f619e6df8c8adcf13c962a3e80ee971.jpg", + "face_nft": false, + "following": true, + "jump_url": "//space.bilibili.com/233114659/dynamic", + "label": "", + "mid": 233114659, + "name": "碧蓝航线", + "official_verify": { + "desc": "", + "type": 1 + }, + "pendant": { + "expire": 0, + "image": "https://i1.hdslb.com/bfs/garb/item/fe1267f786bf69f1471aff715f8d38ec0e486df5.png", + "image_enhance": "https://i1.hdslb.com/bfs/garb/item/0aa9fd33133ed3fd9f11c857cc6ca848d6804113.webp", + "image_enhance_frame": "https://i1.hdslb.com/bfs/garb/item/3052b412defbbc7704e887fefde8de539e8027c5.png", + "n_pid": 1987, + "name": "碧蓝航线2020", + "pid": 1987 + }, + "pub_action": "", + "pub_time": "", + "pub_ts": 1723262407, + "type": "AUTHOR_TYPE_NORMAL", + "vip": { + "avatar_subscript": 1, + "avatar_subscript_url": "", + "due_date": 1729526400000, + "label": { + "bg_color": "#FB7299", + "bg_style": 1, + "border_color": "", + "img_label_uri_hans": "", + "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png", + "img_label_uri_hant": "", + "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png", + "label_theme": "annual_vip", + "path": "", + "text": "年度大会员", + "text_color": "#FFFFFF", + "use_img_label": true + }, + "nickname_color": "#FB7299", + "status": 1, + "theme_type": 0, + "type": 2 + } + }, + "module_dynamic": { + "additional": { + "common": { + "button": { + "jump_style": { + "icon_url": "", + "text": "进入" + }, + "jump_url": "https://www.biligame.com/detail?id=97\u0026sourceFrom=1005", + "type": 1 + }, + "cover": "https://i0.hdslb.com/bfs/game/b141a7690c226a0eae66518c713d3af62613b21d.png", + "desc1": "养成", + "desc2": "指挥官,欢迎回港", + "head_text": "相关游戏", + "id_str": "97", + "jump_url": "https://www.biligame.com/detail?id=97\u0026sourceFrom=1005", + "style": 1, + "sub_type": "game", + "title": "碧蓝航线" + }, + "type": "ADDITIONAL_TYPE_COMMON" + }, + "desc": { + "rich_text_nodes": [ + { + "jump_url": "//search.bilibili.com/all?keyword=%E7%A2%A7%E8%93%9D%E8%88%AA%E7%BA%BF", + "orig_text": "#碧蓝航线#", + "text": "#碧蓝航线#", + "type": "RICH_TEXT_NODE_TYPE_TOPIC" + }, + { + "orig_text": " ", + "text": " ", + "type": "RICH_TEXT_NODE_TYPE_TEXT" + }, + { + "orig_text": "互动抽奖", + "rid": "312103", + "text": "互动抽奖", + "type": "RICH_TEXT_NODE_TYPE_LOTTERY" + }, + { + "orig_text": " \n兰夜放灯祈相守,\n纤手弄糕思今宵。\n\n关注", + "text": " \n兰夜放灯祈相守,\n纤手弄糕思今宵。\n\n关注", + "type": "RICH_TEXT_NODE_TYPE_TEXT" + }, + { + "orig_text": "@碧蓝航线", + "rid": "233114659", + "text": "@碧蓝航线", + "type": "RICH_TEXT_NODE_TYPE_AT" + }, + { + "orig_text": " 并转发该内容,我们将于8月17日抽取3位指挥官送出【JUUs时间 花园Q版手办】,抽取5位指挥官送出【心智魔方-系列浴球(随机一款)】。\n\n金风玉露,值此良宵,愿与君共度~", + "text": " 并转发该内容,我们将于8月17日抽取3位指挥官送出【JUUs时间 花园Q版手办】,抽取5位指挥官送出【心智魔方-系列浴球(随机一款)】。\n\n金风玉露,值此良宵,愿与君共度~", + "type": "RICH_TEXT_NODE_TYPE_TEXT" + } + ], + "text": "#碧蓝航线# 互动抽奖 \n兰夜放灯祈相守,\n纤手弄糕思今宵。\n\n关注@碧蓝航线 并转发该内容,我们将于8月17日抽取3位指挥官送出【JUUs时间 花园Q版手办】,抽取5位指挥官送出【心智魔方-系列浴球(随机一款)】。\n\n金风玉露,值此良宵,愿与君共度~" + }, + "major": { + "draw": { + "id": 324938558, + "items": [ + { + "height": 3038, + "size": 2025.2646, + "src": "http://i0.hdslb.com/bfs/new_dyn/b0068d1603aee2849ca46a58642fa99e233114659.jpg", + "tags": [], + "width": 5400 + }, + { + "height": 5063, + "size": 7377.1143, + "src": "http://i0.hdslb.com/bfs/new_dyn/c047aafcf90a48b578a63c3e1b86c1de233114659.jpg", + "tags": [], + "width": 9000 + } + ] + }, + "type": "MAJOR_TYPE_DRAW" + }, + "topic": null + } + }, + "type": "DYNAMIC_TYPE_DRAW", + "visible": true + }, + "type": "DYNAMIC_TYPE_FORWARD", + "visible": true + }, + { + "basic": { + "comment_id_str": "1456253104", + "comment_type": 1, + "like_icon": { + "action_url": "", + "end_url": "", + "id": 0, + "start_url": "" + }, + "rid_str": "1456253104" + }, + "id_str": "966374603744083976", + "modules": { + "module_author": { + "avatar": { + "container_size": { + "height": 1.375, + "width": 1.375 + }, + "fallback_layers": { + "is_critical_group": true, + "layers": [ + { + "general_spec": { + "pos_spec": { + "axis_x": 0.6875, + "axis_y": 0.6875, + "coordinate_pos": 2 + }, + "render_spec": { + "opacity": 1 + }, + "size_spec": { + "height": 0.787, + "width": 0.787 + } + }, + "layer_config": { + "is_critical": true, + "tags": { + "AVATAR_LAYER": {}, + "GENERAL_CFG": { + "config_type": 1, + "general_config": { + "web_css_style": { + "borderRadius": "50%" + } + } + } + } + }, + "resource": { + "res_animation": { + "webp_src": { + "placeholder": 6, + "remote": { + "bfs_style": "widget-layer-avatar", + "url": "https://i0.hdslb.com/bfs/face/7efb679569b2faeff38fa08f6f992fa1ada5e948.webp" + }, + "src_type": 1 + } + }, + "res_type": 4 + }, + "visible": true + }, + { + "general_spec": { + "pos_spec": { + "axis_x": 0.6875, + "axis_y": 0.6875, + "coordinate_pos": 2 + }, + "render_spec": { + "opacity": 1 + }, + "size_spec": { + "height": 1.375, + "width": 1.375 + } + }, + "layer_config": { + "tags": { + "PENDENT_LAYER": {} + } + }, + "resource": { + "res_image": { + "image_src": { + "remote": { + "bfs_style": "widget-layer-avatar", + "url": "https://i0.hdslb.com/bfs/garb/item/0dcf03aa499a64524fe25871d26d95f49f880928.png" + }, + "src_type": 1 + } + }, + "res_type": 3 + }, + "visible": true + }, + { + "general_spec": { + "pos_spec": { + "axis_x": 0.7560000000000001, + "axis_y": 0.7726666666666667, + "coordinate_pos": 1 + }, + "render_spec": { + "opacity": 1 + }, + "size_spec": { + "height": 0.41666666666666663, + "width": 0.41666666666666663 + } + }, + "layer_config": { + "tags": { + "GENERAL_CFG": { + "config_type": 1, + "general_config": { + "web_css_style": { + "background-color": "rgb(255,255,255)", + "border": "2px solid rgba(255,255,255,1)", + "borderRadius": "50%", + "boxSizing": "border-box" + } + } + }, + "ICON_LAYER": {} + } + }, + "resource": { + "res_image": { + "image_src": { + "local": 3, + "src_type": 2 + } + }, + "res_type": 3 + }, + "visible": true + } + ] + }, + "mid": "686127" + }, + "face": "https://i0.hdslb.com/bfs/face/7efb679569b2faeff38fa08f6f992fa1ada5e948.webp", + "face_nft": false, + "following": true, + "jump_url": "//space.bilibili.com/686127/dynamic", + "label": "", + "mid": 686127, + "name": "籽岷", + "official_verify": { + "desc": "", + "type": 0 + }, + "pendant": { + "expire": 0, + "image": "https://i0.hdslb.com/bfs/garb/item/0dcf03aa499a64524fe25871d26d95f49f880928.png", + "image_enhance": "https://i0.hdslb.com/bfs/garb/item/0dcf03aa499a64524fe25871d26d95f49f880928.png", + "image_enhance_frame": "", + "n_pid": 2066, + "name": "百年大会员", + "pid": 2066 + }, + "pub_action": "投稿了视频", + "pub_location_text": "", + "pub_time": "昨天 04:27", + "pub_ts": 1723840021, + "type": "AUTHOR_TYPE_NORMAL", + "vip": { + "avatar_subscript": 1, + "avatar_subscript_url": "", + "due_date": 4845196800000, + "label": { + "bg_color": "#FB7299", + "bg_style": 1, + "border_color": "", + "img_label_uri_hans": "", + "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/c16005a5b39164b3536cbd45618a5edd597a1c51.png", + "img_label_uri_hant": "", + "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/Pzrd8zmpQD.png", + "label_theme": "hundred_annual_vip", + "path": "", + "text": "百年大会员", + "text_color": "#FFFFFF", + "use_img_label": true + }, + "nickname_color": "#FB7299", + "status": 1, + "theme_type": 0, + "type": 2 + } + }, + "module_dynamic": { + "additional": null, + "desc": null, + "major": { + "archive": { + "aid": "1456253104", + "badge": { + "bg_color": "#FB7299", + "color": "#FFFFFF", + "icon_url": null, + "text": "投稿视频" + }, + "bvid": "BV1ai421h7nT", + "cover": "http://i1.hdslb.com/bfs/archive/0245f30593e2963b883cd5953881034ad033fbd5.jpg", + "desc": "https://www.minecraft.net/en-us/article/minecraft-snapshot-24w33a", + "disable_preview": 0, + "duration_text": "16:22", + "jump_url": "//www.bilibili.com/video/BV1ai421h7nT/", + "stat": { + "danmaku": "2149", + "play": "24.5万" + }, + "title": "收纳袋、红石、矿车大改 我的世界新版本介绍 1.21.2 24w33a", + "type": 1 + }, + "type": "MAJOR_TYPE_ARCHIVE" + }, + "topic": { + "id": 1028161, + "jump_url": "https://m.bilibili.com/topic-detail?topic_id=1028161\u0026topic_name=%E6%95%B4%E7%82%B9%E7%94%B5%E5%AD%90%E6%A6%A8%E8%8F%9C", + "name": "整点电子榨菜" + } + }, + "module_interaction": { + "items": [ + { + "desc": { + "rich_text_nodes": [ + { + "orig_text": "名字永远是个谜:", + "rid": "2022349482", + "text": "名字永远是个谜:", + "type": "RICH_TEXT_NODE_TYPE_AT" + }, + { + "orig_text": "我们轨道交通圈有福了啊啊啊啊啊啊啊!", + "text": "我们轨道交通圈有福了啊啊啊啊啊啊啊!", + "type": "RICH_TEXT_NODE_TYPE_TEXT" + } + ], + "text": "我们轨道交通圈有福了啊啊啊啊啊啊啊!" + }, + "type": 1 + } + ] + }, + "module_more": { + "three_point_items": [ + { + "label": "取消关注", + "type": "THREE_POINT_FOLLOWING" + }, + { + "label": "举报", + "type": "THREE_POINT_REPORT" + } + ] + }, + "module_stat": { + "comment": { + "count": 921, + "forbidden": false + }, + "forward": { + "count": 51, + "forbidden": false + }, + "like": { + "count": 23138, + "forbidden": false, + "status": false + } + } + }, + "type": "DYNAMIC_TYPE_AV", + "visible": true + }, + { + "basic": { + "comment_id_str": "325694432", + "comment_type": 11, + "like_icon": { + "action_url": "", + "end_url": "", + "id": 0, + "start_url": "" + }, + "rid_str": "325694432" + }, + "id_str": "966306597269667840", + "modules": { + "module_author": { + "avatar": { + "container_size": { + "height": 1.35, + "width": 1.35 + }, + "fallback_layers": { + "is_critical_group": true, + "layers": [ + { + "general_spec": { + "pos_spec": { + "axis_x": 0.675, + "axis_y": 0.675, + "coordinate_pos": 2 + }, + "render_spec": { + "opacity": 1 + }, + "size_spec": { + "height": 1, + "width": 1 + } + }, + "layer_config": { + "is_critical": true, + "tags": { + "AVATAR_LAYER": {}, + "GENERAL_CFG": { + "config_type": 1, + "general_config": { + "web_css_style": { + "borderRadius": "50%" + } + } + } + } + }, + "resource": { + "res_image": { + "image_src": { + "placeholder": 6, + "remote": { + "bfs_style": "widget-layer-avatar", + "url": "https://i1.hdslb.com/bfs/face/2b9ee4a9c99f1006f3c800c1317f7850ad6f3d0d.jpg" + }, + "src_type": 1 + } + }, + "res_type": 3 + }, + "visible": true + }, + { + "general_spec": { + "pos_spec": { + "axis_x": 0.8000000000000002, + "axis_y": 0.8000000000000002, + "coordinate_pos": 1 + }, + "render_spec": { + "opacity": 1 + }, + "size_spec": { + "height": 0.41666666666666663, + "width": 0.41666666666666663 + } + }, + "layer_config": { + "tags": { + "GENERAL_CFG": { + "config_type": 1, + "general_config": { + "web_css_style": { + "background-color": "rgb(255,255,255)", + "border": "2px solid rgba(255,255,255,1)", + "borderRadius": "50%", + "boxSizing": "border-box" + } + } + }, + "ICON_LAYER": {} + } + }, + "resource": { + "res_image": { + "image_src": { + "local": 4, + "src_type": 2 + } + }, + "res_type": 3 + }, + "visible": true + } + ] + }, + "mid": "485703766" + }, + "face": "https://i1.hdslb.com/bfs/face/2b9ee4a9c99f1006f3c800c1317f7850ad6f3d0d.jpg", + "face_nft": false, + "following": true, + "jump_url": "//space.bilibili.com/485703766/dynamic", + "label": "", + "mid": 485703766, + "name": "英伟达GeForce", + "official_verify": { + "desc": "", + "type": 1 + }, + "pendant": { + "expire": 0, + "image": "", + "image_enhance": "", + "image_enhance_frame": "", + "n_pid": 0, + "name": "", + "pid": 0 + }, + "pub_action": "", + "pub_location_text": "", + "pub_time": "昨天 00:03", + "pub_ts": 1723824187, + "type": "AUTHOR_TYPE_NORMAL", + "vip": { + "avatar_subscript": 1, + "avatar_subscript_url": "", + "due_date": 2000563200000, + "label": { + "bg_color": "#FB7299", + "bg_style": 1, + "border_color": "", + "img_label_uri_hans": "", + "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/adb599797dd171e2d3d6d012f448b49679258344.png", + "img_label_uri_hant": "", + "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/sGu57N6pgK.png", + "label_theme": "ten_annual_vip", + "path": "", + "text": "十年大会员", + "text_color": "#FFFFFF", + "use_img_label": true + }, + "nickname_color": "#FB7299", + "status": 1, + "theme_type": 0, + "type": 2 + } + }, + "module_dynamic": { + "additional": null, + "desc": { + "rich_text_nodes": [ + { + "orig_text": "直面天命,还有 3 天!\nRTX. ON!\n\n投稿来自于:Bilibili", + "text": "直面天命,还有 3 天!\nRTX. ON!\n\n投稿来自于:Bilibili", + "type": "RICH_TEXT_NODE_TYPE_TEXT" + }, + { + "orig_text": "@祗殁 ", + "rid": "12299496", + "text": "@祗殁 ", + "type": "RICH_TEXT_NODE_TYPE_AT" + } + ], + "text": "直面天命,还有 3 天!\nRTX. ON!\n\n投稿来自于:Bilibili@祗殁 " + }, + "major": { + "draw": { + "id": 325694432, + "items": [ + { + "height": 1280, + "size": 59.246094, + "src": "http://i0.hdslb.com/bfs/new_dyn/2e42c52d5e1383fe443f0984a41a9624485703766.jpg", + "tags": [], + "width": 1282 + } + ] + }, + "type": "MAJOR_TYPE_DRAW" + }, + "topic": null + }, + "module_more": { + "three_point_items": [ + { + "label": "取消关注", + "type": "THREE_POINT_FOLLOWING" + }, + { + "label": "举报", + "type": "THREE_POINT_REPORT" + } + ] + }, + "module_stat": { + "comment": { + "count": 115, + "forbidden": false + }, + "forward": { + "count": 3, + "forbidden": false + }, + "like": { + "count": 876, + "forbidden": false, + "status": false + } + } + }, + "type": "DYNAMIC_TYPE_DRAW", + "visible": true + }, + { + "basic": { + "comment_id_str": "325690655", + "comment_type": 11, + "like_icon": { + "action_url": "", + "end_url": "", + "id": 0, + "start_url": "" + }, + "rid_str": "325690655" + }, + "id_str": "966298866306515029", + "modules": { + "module_author": { + "avatar": { + "container_size": { + "height": 1.375, + "width": 1.375 + }, + "fallback_layers": { + "is_critical_group": true, + "layers": [ + { + "general_spec": { + "pos_spec": { + "axis_x": 0.6875, + "axis_y": 0.6875, + "coordinate_pos": 2 + }, + "render_spec": { + "opacity": 1 + }, + "size_spec": { + "height": 0.787, + "width": 0.787 + } + }, + "layer_config": { + "is_critical": true, + "tags": { + "AVATAR_LAYER": {}, + "GENERAL_CFG": { + "config_type": 1, + "general_config": { + "web_css_style": { + "borderRadius": "50%" + } + } + } + } + }, + "resource": { + "res_image": { + "image_src": { + "placeholder": 6, + "remote": { + "bfs_style": "widget-layer-avatar", + "url": "https://i1.hdslb.com/bfs/face/1fd5b43d5f619e6df8c8adcf13c962a3e80ee971.jpg" + }, + "src_type": 1 + } + }, + "res_type": 3 + }, + "visible": true + }, + { + "general_spec": { + "pos_spec": { + "axis_x": 0.6875, + "axis_y": 0.6875, + "coordinate_pos": 2 + }, + "render_spec": { + "opacity": 1 + }, + "size_spec": { + "height": 1.375, + "width": 1.375 + } + }, + "layer_config": { + "tags": { + "PENDENT_LAYER": {} + } + }, + "resource": { + "res_image": { + "image_src": { + "remote": { + "bfs_style": "widget-layer-avatar", + "url": "https://i1.hdslb.com/bfs/garb/item/fe1267f786bf69f1471aff715f8d38ec0e486df5.png" + }, + "src_type": 1 + } + }, + "res_type": 3 + }, + "visible": true + }, + { + "general_spec": { + "pos_spec": { + "axis_x": 0.7560000000000001, + "axis_y": 0.7726666666666667, + "coordinate_pos": 1 + }, + "render_spec": { + "opacity": 1 + }, + "size_spec": { + "height": 0.41666666666666663, + "width": 0.41666666666666663 + } + }, + "layer_config": { + "tags": { + "GENERAL_CFG": { + "config_type": 1, + "general_config": { + "web_css_style": { + "background-color": "rgb(255,255,255)", + "border": "2px solid rgba(255,255,255,1)", + "borderRadius": "50%", + "boxSizing": "border-box" + } + } + }, + "ICON_LAYER": {} + } + }, + "resource": { + "res_image": { + "image_src": { + "local": 4, + "src_type": 2 + } + }, + "res_type": 3 + }, + "visible": true + } + ] + }, + "layers": [ + { + "is_critical_group": true, + "layers": [ + { + "general_spec": { + "pos_spec": { + "axis_x": 0.6875, + "axis_y": 0.6875, + "coordinate_pos": 2 + }, + "render_spec": { + "opacity": 1 + }, + "size_spec": { + "height": 0.787, + "width": 0.787 + } + }, + "layer_config": { + "is_critical": true, + "tags": { + "AVATAR_LAYER": {}, + "GENERAL_CFG": { + "config_type": 1, + "general_config": { + "web_css_style": { + "borderRadius": "50%" + } + } + } + } + }, + "resource": { + "res_image": { + "image_src": { + "placeholder": 6, + "remote": { + "bfs_style": "widget-layer-avatar", + "url": "https://i1.hdslb.com/bfs/face/1fd5b43d5f619e6df8c8adcf13c962a3e80ee971.jpg" + }, + "src_type": 1 + } + }, + "res_type": 3 + }, + "visible": true + } + ] + }, + { + "layers": [ + { + "general_spec": { + "pos_spec": { + "axis_x": 0.6875, + "axis_y": 0.6875, + "coordinate_pos": 2 + }, + "render_spec": { + "opacity": 1 + }, + "size_spec": { + "height": 1.375, + "width": 1.375 + } + }, + "layer_config": { + "tags": { + "PENDENT_LAYER": {} + } + }, + "resource": { + "res_animation": { + "webp_src": { + "remote": { + "bfs_style": "widget-layer-avatar", + "url": "https://i1.hdslb.com/bfs/garb/item/0aa9fd33133ed3fd9f11c857cc6ca848d6804113.webp" + }, + "src_type": 1 + } + }, + "res_type": 4 + }, + "visible": true + } + ] + }, + { + "layers": [ + { + "general_spec": { + "pos_spec": { + "axis_x": 0.7560000000000001, + "axis_y": 0.7726666666666667, + "coordinate_pos": 1 + }, + "render_spec": { + "opacity": 1 + }, + "size_spec": { + "height": 0.41666666666666663, + "width": 0.41666666666666663 + } + }, + "layer_config": { + "tags": { + "GENERAL_CFG": { + "config_type": 1, + "general_config": { + "web_css_style": { + "background-color": "rgb(255,255,255)", + "border": "2px solid rgba(255,255,255,1)", + "borderRadius": "50%", + "boxSizing": "border-box" + } + } + }, + "ICON_LAYER": {} + } + }, + "resource": { + "res_image": { + "image_src": { + "local": 4, + "src_type": 2 + } + }, + "res_type": 3 + }, + "visible": true + } + ] + } + ], + "mid": "233114659" + }, + "decorate": { + "card_url": "https://i0.hdslb.com/bfs/garb/bb140043341137b879e957d09b649ce7c3257820.png", + "fan": { + "color": "#903AC2", + "color_format": { + "colors": [ + "#903AC2FF", + "#903AC2FF" + ], + "end_point": "0,100", + "gradients": [ + 0, + 100 + ], + "start_point": "0,0" + }, + "is_fan": true, + "num_prefix": "NO.", + "num_str": "000001", + "number": 1 + }, + "id": 1706163888001, + "jump_url": "https://www.bilibili.com/h5/mall/equity-link/collect-home?item_id=1706163888001\u0026isdiy=0\u0026part=card\u0026from=post\u0026f_source=garb\u0026vmid=233114659\u0026native.theme=1\u0026navhide=1", + "name": "龙腾啾跃-动态卡片粉丝", + "type": 3 + }, + "face": "https://i1.hdslb.com/bfs/face/1fd5b43d5f619e6df8c8adcf13c962a3e80ee971.jpg", + "face_nft": false, + "following": true, + "jump_url": "//space.bilibili.com/233114659/dynamic", + "label": "", + "mid": 233114659, + "name": "碧蓝航线", + "official_verify": { + "desc": "", + "type": 1 + }, + "pendant": { + "expire": 0, + "image": "https://i1.hdslb.com/bfs/garb/item/fe1267f786bf69f1471aff715f8d38ec0e486df5.png", + "image_enhance": "https://i1.hdslb.com/bfs/garb/item/0aa9fd33133ed3fd9f11c857cc6ca848d6804113.webp", + "image_enhance_frame": "https://i1.hdslb.com/bfs/garb/item/3052b412defbbc7704e887fefde8de539e8027c5.png", + "n_pid": 1987, + "name": "碧蓝航线2020", + "pid": 1987 + }, + "pub_action": "", + "pub_location_text": "", + "pub_time": "2天前", + "pub_ts": 1723822387, + "type": "AUTHOR_TYPE_NORMAL", + "vip": { + "avatar_subscript": 1, + "avatar_subscript_url": "", + "due_date": 1729526400000, + "label": { + "bg_color": "#FB7299", + "bg_style": 1, + "border_color": "", + "img_label_uri_hans": "", + "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png", + "img_label_uri_hant": "", + "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png", + "label_theme": "annual_vip", + "path": "", + "text": "年度大会员", + "text_color": "#FFFFFF", + "use_img_label": true + }, + "nickname_color": "#FB7299", + "status": 1, + "theme_type": 0, + "type": 2 + } + }, + "module_dynamic": { + "additional": { + "common": { + "button": { + "jump_style": { + "icon_url": "", + "text": "进入" + }, + "jump_url": "https://www.biligame.com/detail?id=97\u0026sourceFrom=1005", + "type": 1 + }, + "cover": "https://i0.hdslb.com/bfs/game/b141a7690c226a0eae66518c713d3af62613b21d.png", + "desc1": "养成", + "desc2": "指挥官,欢迎回港", + "head_text": "相关游戏", + "id_str": "97", + "jump_url": "https://www.biligame.com/detail?id=97\u0026sourceFrom=1005", + "style": 1, + "sub_type": "game", + "title": "碧蓝航线" + }, + "type": "ADDITIONAL_TYPE_COMMON" + }, + "desc": { + "rich_text_nodes": [ + { + "jump_url": "//search.bilibili.com/all?keyword=%E7%A2%A7%E8%93%9D%E8%88%AA%E7%BA%BF", + "orig_text": "#碧蓝航线#", + "text": "#碧蓝航线#", + "type": "RICH_TEXT_NODE_TYPE_TOPIC" + }, + { + "orig_text": " ", + "text": " ", + "type": "RICH_TEXT_NODE_TYPE_TEXT" + }, + { + "jump_url": "//search.bilibili.com/all?keyword=%E7%A2%A7%E8%93%9D%E8%88%AA%E7%BA%BF%E6%BC%AB%E5%B1%95", + "orig_text": "#碧蓝航线漫展#", + "text": "#碧蓝航线漫展#", + "type": "RICH_TEXT_NODE_TYPE_TOPIC" + }, + { + "orig_text": " ", + "text": " ", + "type": "RICH_TEXT_NODE_TYPE_TEXT" + }, + { + "jump_url": "//search.bilibili.com/all?keyword=2024%E6%B8%AF%E5%8C%BA%E7%9B%9B%E5%A4%8F%E6%B8%85%E5%87%89%E8%8A%82", + "orig_text": "#2024港区盛夏清凉节#", + "text": "#2024港区盛夏清凉节#", + "type": "RICH_TEXT_NODE_TYPE_TOPIC" + }, + { + "orig_text": "\n◆ 「港区盛夏清凉节」长沙站·街区快闪 到达!◆ \n\n碧蓝夏日,映照专属的街景~\n街区快闪即将开启,\n与少女们一同踏上这场特别的城市漫步之旅吧!\n\n◆ 互动游戏开放时间:2024年8月17日~8月18日,每日10:00~12:00及14:00~19:00\n◆ 街区快闪体验地址:湖南省长沙市开福区潮宗街历史文化街区\n◆ 参与方式:无需预约,前往现场即可参与体验~\n◆ 体验须知:\n※8月17日~8月18日期间,指挥官可前往潮宗街历史文化街区现场参与体验。\n※指挥官关注《碧蓝航线》官方B站账号后,可参与互动游戏,集章兑换周边礼品哟!\n※兑换周边每日数量有限,兑完即止。\n※天气炎热,请指挥官做好防暑准备,出行注意安全哟。", + "text": "\n◆ 「港区盛夏清凉节」长沙站·街区快闪 到达!◆ \n\n碧蓝夏日,映照专属的街景~\n街区快闪即将开启,\n与少女们一同踏上这场特别的城市漫步之旅吧!\n\n◆ 互动游戏开放时间:2024年8月17日~8月18日,每日10:00~12:00及14:00~19:00\n◆ 街区快闪体验地址:湖南省长沙市开福区潮宗街历史文化街区\n◆ 参与方式:无需预约,前往现场即可参与体验~\n◆ 体验须知:\n※8月17日~8月18日期间,指挥官可前往潮宗街历史文化街区现场参与体验。\n※指挥官关注《碧蓝航线》官方B站账号后,可参与互动游戏,集章兑换周边礼品哟!\n※兑换周边每日数量有限,兑完即止。\n※天气炎热,请指挥官做好防暑准备,出行注意安全哟。", + "type": "RICH_TEXT_NODE_TYPE_TEXT" + } + ], + "text": "#碧蓝航线# #碧蓝航线漫展# #2024港区盛夏清凉节#\n◆ 「港区盛夏清凉节」长沙站·街区快闪 到达!◆ \n\n碧蓝夏日,映照专属的街景~\n街区快闪即将开启,\n与少女们一同踏上这场特别的城市漫步之旅吧!\n\n◆ 互动游戏开放时间:2024年8月17日~8月18日,每日10:00~12:00及14:00~19:00\n◆ 街区快闪体验地址:湖南省长沙市开福区潮宗街历史文化街区\n◆ 参与方式:无需预约,前往现场即可参与体验~\n◆ 体验须知:\n※8月17日~8月18日期间,指挥官可前往潮宗街历史文化街区现场参与体验。\n※指挥官关注《碧蓝航线》官方B站账号后,可参与互动游戏,集章兑换周边礼品哟!\n※兑换周边每日数量有限,兑完即止。\n※天气炎热,请指挥官做好防暑准备,出行注意安全哟。" + }, + "major": { + "draw": { + "id": 325690655, + "items": [ + { + "height": 6000, + "size": 2737.6729, + "src": "http://i0.hdslb.com/bfs/new_dyn/722dc5e7eba3c3f6861b294f6bf3020c233114659.jpg", + "tags": [], + "width": 4000 + }, + { + "height": 4000, + "size": 4852.4023, + "src": "http://i0.hdslb.com/bfs/new_dyn/b04110f894184880666ee8b204000846233114659.jpg", + "tags": [], + "width": 6000 + }, + { + "height": 4000, + "size": 3941.9678, + "src": "http://i0.hdslb.com/bfs/new_dyn/8ce3c1e6f2d33a47d42f35193b9e5f55233114659.jpg", + "tags": [], + "width": 6000 + }, + { + "height": 4000, + "size": 4461.9707, + "src": "http://i0.hdslb.com/bfs/new_dyn/ab9a5bf2215f88fed6026d67d98ec901233114659.jpg", + "tags": [], + "width": 6000 + }, + { + "height": 4000, + "size": 3137.0205, + "src": "http://i0.hdslb.com/bfs/new_dyn/18e62cf8ebc7c07b99e042ac4cdeeaaa233114659.jpg", + "tags": [], + "width": 6000 + }, + { + "height": 4000, + "size": 9561.615, + "src": "http://i0.hdslb.com/bfs/new_dyn/1036f447fcbec195e717e2a5b3091a73233114659.jpg", + "tags": [], + "width": 6000 + } + ] + }, + "type": "MAJOR_TYPE_DRAW" + }, + "topic": null + }, + "module_interaction": { + "items": [ + { + "desc": { + "rich_text_nodes": [ + { + "orig_text": "豌豆羹:", + "rid": "3493280973064560", + "text": "豌豆羹:", + "type": "RICH_TEXT_NODE_TYPE_AT" + }, + { + "orig_text": "大帝皮肤加彩蛋!", + "text": "大帝皮肤加彩蛋!", + "type": "RICH_TEXT_NODE_TYPE_TEXT" + } + ], + "text": "大帝皮肤加彩蛋!" + }, + "type": 1 + } + ] + }, + "module_more": { + "three_point_items": [ + { + "label": "取消关注", + "type": "THREE_POINT_FOLLOWING" + }, + { + "label": "举报", + "type": "THREE_POINT_REPORT" + } + ] + }, + "module_stat": { + "comment": { + "count": 446, + "forbidden": false + }, + "forward": { + "count": 47, + "forbidden": false + }, + "like": { + "count": 4352, + "forbidden": false, + "status": false + } + } + }, + "type": "DYNAMIC_TYPE_DRAW", + "visible": true + }, + { + "basic": { + "comment_id_str": "966281785469042740", + "comment_type": 17, + "like_icon": { + "action_url": "", + "end_url": "", + "id": 0, + "start_url": "" + }, + "rid_str": "966281785469042740" + }, + "id_str": "966281785469042740", + "modules": { + "module_author": { + "avatar": { + "container_size": { + "height": 1.35, + "width": 1.35 + }, + "fallback_layers": { + "is_critical_group": true, + "layers": [ + { + "general_spec": { + "pos_spec": { + "axis_x": 0.675, + "axis_y": 0.675, + "coordinate_pos": 2 + }, + "render_spec": { + "opacity": 1 + }, + "size_spec": { + "height": 1, + "width": 1 + } + }, + "layer_config": { + "is_critical": true, + "tags": { + "AVATAR_LAYER": {}, + "GENERAL_CFG": { + "config_type": 1, + "general_config": { + "web_css_style": { + "borderRadius": "50%" + } + } + } + } + }, + "resource": { + "res_image": { + "image_src": { + "placeholder": 6, + "remote": { + "bfs_style": "widget-layer-avatar", + "url": "https://i1.hdslb.com/bfs/face/21426275f3d3149b96b88783275205ba574c09e3.jpg" + }, + "src_type": 1 + } + }, + "res_type": 3 + }, + "visible": true + }, + { + "general_spec": { + "pos_spec": { + "axis_x": 0.8000000000000002, + "axis_y": 0.8000000000000002, + "coordinate_pos": 1 + }, + "render_spec": { + "opacity": 1 + }, + "size_spec": { + "height": 0.41666666666666663, + "width": 0.41666666666666663 + } + }, + "layer_config": { + "tags": { + "GENERAL_CFG": { + "config_type": 1, + "general_config": { + "web_css_style": { + "background-color": "rgb(255,255,255)", + "border": "2px solid rgba(255,255,255,1)", + "borderRadius": "50%", + "boxSizing": "border-box" + } + } + }, + "ICON_LAYER": {} + } + }, + "resource": { + "res_image": { + "image_src": { + "local": 3, + "src_type": 2 + } + }, + "res_type": 3 + }, + "visible": true + } + ] + }, + "mid": "178429408" + }, + "face": "https://i1.hdslb.com/bfs/face/21426275f3d3149b96b88783275205ba574c09e3.jpg", + "face_nft": false, + "following": true, + "jump_url": "//space.bilibili.com/178429408/dynamic", + "label": "", + "mid": 178429408, + "name": "老弟一号", + "official_verify": { + "desc": "", + "type": 0 + }, + "pendant": { + "expire": 0, + "image": "", + "image_enhance": "", + "image_enhance_frame": "", + "n_pid": 0, + "name": "", + "pid": 0 + }, + "pub_action": "", + "pub_location_text": "", + "pub_time": "2天前", + "pub_ts": 1723818410, + "type": "AUTHOR_TYPE_NORMAL", + "vip": { + "avatar_subscript": 1, + "avatar_subscript_url": "", + "due_date": 1728576000000, + "label": { + "bg_color": "#FB7299", + "bg_style": 1, + "border_color": "", + "img_label_uri_hans": "https://i0.hdslb.com/bfs/activity-plat/static/20220608/e369244d0b14644f5e1a06431e22a4d5/0DFy9BHgwE.gif", + "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d7e624d13d3e134251e4174a7318c19a8edbd71.png", + "img_label_uri_hant": "", + "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/uckjAv3Npy.png", + "label_theme": "annual_vip", + "path": "", + "text": "年度大会员", + "text_color": "#FFFFFF", + "use_img_label": true + }, + "nickname_color": "#FB7299", + "status": 1, + "theme_type": 0, + "type": 2 + } + }, + "module_dynamic": { + "additional": null, + "desc": { + "rich_text_nodes": [ + { + "orig_text": "不管怎么样,我先把香槟开了", + "text": "不管怎么样,我先把香槟开了", + "type": "RICH_TEXT_NODE_TYPE_TEXT" + }, + { + "emoji": { + "icon_url": "https://i0.hdslb.com/bfs/emote/bf7e00ecab02171f8461ee8cf439c73db9797748.png", + "size": 1, + "text": "[脱单doge]", + "type": 1 + }, + "orig_text": "[脱单doge]", + "text": "[脱单doge]", + "type": "RICH_TEXT_NODE_TYPE_EMOJI" + }, + { + "orig_text": "要是褒姒,直播抽一百个爵柏电源", + "text": "要是褒姒,直播抽一百个爵柏电源", + "type": "RICH_TEXT_NODE_TYPE_TEXT" + } + ], + "text": "不管怎么样,我先把香槟开了[脱单doge]要是褒姒,直播抽一百个爵柏电源" + }, + "major": null, + "topic": null + }, + "module_interaction": { + "items": [ + { + "desc": { + "rich_text_nodes": [ + { + "orig_text": "芊芊老猫的日常:", + "rid": "1284100140", + "text": "芊芊老猫的日常:", + "type": "RICH_TEXT_NODE_TYPE_AT" + }, + { + "orig_text": "还是好人多啊", + "text": "还是好人多啊", + "type": "RICH_TEXT_NODE_TYPE_TEXT" + }, + { + "emoji": { + "icon_url": "https://i0.hdslb.com/bfs/emote/4683fd9ffc925fa6423110979d7dcac5eda297f4.png", + "size": 1, + "text": "[OK]", + "type": 1 + }, + "orig_text": "[OK]", + "text": "[OK]", + "type": "RICH_TEXT_NODE_TYPE_EMOJI" + } + ], + "text": "还是好人多啊[OK]" + }, + "type": 1 + } + ] + }, + "module_more": { + "three_point_items": [ + { + "label": "取消关注", + "type": "THREE_POINT_FOLLOWING" + }, + { + "label": "举报", + "type": "THREE_POINT_REPORT" + } + ] + }, + "module_stat": { + "comment": { + "count": 156, + "forbidden": false + }, + "forward": { + "count": 1, + "forbidden": false + }, + "like": { + "count": 1367, + "forbidden": false, + "status": false + } + } + }, + "orig": { + "basic": { + "comment_id_str": "", + "comment_type": 0, + "like_icon": { + "action_url": "", + "end_url": "", + "id": 0, + "start_url": "" + }, + "rid_str": "" + }, + "id_str": "966274874613956608", + "modules": { + "module_author": { + "avatar": { + "container_size": { + "height": 1.35, + "width": 1.35 + }, + "fallback_layers": { + "is_critical_group": true, + "layers": [ + { + "general_spec": { + "pos_spec": { + "axis_x": 0.675, + "axis_y": 0.675, + "coordinate_pos": 2 + }, + "render_spec": { + "opacity": 1 + }, + "size_spec": { + "height": 1, + "width": 1 + } + }, + "layer_config": { + "is_critical": true, + "tags": { + "AVATAR_LAYER": {}, + "GENERAL_CFG": { + "config_type": 1, + "general_config": { + "web_css_style": { + "borderRadius": "50%" + } + } + } + } + }, + "resource": { + "res_image": { + "image_src": { + "placeholder": 6, + "remote": { + "bfs_style": "widget-layer-avatar", + "url": "https://i2.hdslb.com/bfs/face/4c9095a6fc7d6ef7bf97ee1c65767f537763c60c.jpg" + }, + "src_type": 1 + } + }, + "res_type": 3 + }, + "visible": true + }, + { + "general_spec": { + "pos_spec": { + "axis_x": 0.8000000000000002, + "axis_y": 0.8000000000000002, + "coordinate_pos": 1 + }, + "render_spec": { + "opacity": 1 + }, + "size_spec": { + "height": 0.41666666666666663, + "width": 0.41666666666666663 + } + }, + "layer_config": { + "tags": { + "GENERAL_CFG": { + "config_type": 1, + "general_config": { + "web_css_style": { + "background-color": "rgb(255,255,255)", + "border": "2px solid rgba(255,255,255,1)", + "borderRadius": "50%", + "boxSizing": "border-box" + } + } + }, + "ICON_LAYER": {} + } + }, + "resource": { + "res_image": { + "image_src": { + "local": 4, + "src_type": 2 + } + }, + "res_type": 3 + }, + "visible": true + } + ] + }, + "mid": "652239032" + }, + "face": "https://i2.hdslb.com/bfs/face/4c9095a6fc7d6ef7bf97ee1c65767f537763c60c.jpg", + "face_nft": false, + "following": null, + "jump_url": "//space.bilibili.com/652239032/dynamic", + "label": "", + "mid": 652239032, + "name": "IGN中国", + "official_verify": { + "desc": "", + "type": 1 + }, + "pendant": { + "expire": 0, + "image": "", + "image_enhance": "", + "image_enhance_frame": "", + "n_pid": 0, + "name": "", + "pid": 0 + }, + "pub_action": "投稿了视频", + "pub_time": "", + "pub_ts": 1723816801, + "type": "AUTHOR_TYPE_NORMAL", + "vip": { + "avatar_subscript": 0, + "avatar_subscript_url": "", + "due_date": 0, + "label": { + "bg_color": "", + "bg_style": 0, + "border_color": "", + "img_label_uri_hans": "", + "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/d7b702ef65a976b20ed854cbd04cb9e27341bb79.png", + "img_label_uri_hant": "", + "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/KJunwh19T5.png", + "label_theme": "", + "path": "", + "text": "", + "text_color": "", + "use_img_label": true + }, + "nickname_color": "", + "status": 0, + "theme_type": 0, + "type": 0 + } + }, + "module_dynamic": { + "additional": null, + "desc": { + "rich_text_nodes": [ + { + "orig_text": "《黑神话:悟空》绝对可以说是一座中国游戏行业的里程碑,它所呈现的优秀品质对得起这四年来它背负的所有期待,这是真正意义上放在全球市场也是极具竞争力的国产游戏,而游戏科学也将在此役之后毫无疑问成为全球顶尖ARPG游戏开发商之一。", + "text": "《黑神话:悟空》绝对可以说是一座中国游戏行业的里程碑,它所呈现的优秀品质对得起这四年来它背负的所有期待,这是真正意义上放在全球市场也是极具竞争力的国产游戏,而游戏科学也将在此役之后毫无疑问成为全球顶尖ARPG游戏开发商之一。", + "type": "RICH_TEXT_NODE_TYPE_TEXT" + } + ], + "text": "《黑神话:悟空》绝对可以说是一座中国游戏行业的里程碑,它所呈现的优秀品质对得起这四年来它背负的所有期待,这是真正意义上放在全球市场也是极具竞争力的国产游戏,而游戏科学也将在此役之后毫无疑问成为全球顶尖ARPG游戏开发商之一。" + }, + "major": { + "archive": { + "aid": "1456400345", + "badge": { + "bg_color": "#FB7299", + "color": "#FFFFFF", + "icon_url": null, + "text": "投稿视频" + }, + "bvid": "BV1Ti421a7dv", + "cover": "http://i2.hdslb.com/bfs/archive/fd87a4e75738b0de1388df60f5e4ce5011b1367a.jpg", + "desc": "《黑神话:悟空》绝对可以说是一座中国游戏行业的里程碑,它所呈现的优秀品质对得起这四年来它背负的所有期待,这是真正意义上放在全球市场也是极具竞争力的国产游戏,我相信它会成为今年年度游戏的有力竞争者,而游戏科学也将在此役之后毫无疑问成为全球顶尖ARPG游戏开发商之一。", + "disable_preview": 0, + "duration_text": "10:00", + "jump_url": "//www.bilibili.com/video/BV1Ti421a7dv/", + "stat": { + "danmaku": "4.6万", + "play": "595.1万" + }, + "title": "【IGN】10分,《黑神话:悟空》评测:踏平坎坷成大道", + "type": 1 + }, + "type": "MAJOR_TYPE_ARCHIVE" + }, + "topic": null + } + }, + "type": "DYNAMIC_TYPE_AV", + "visible": true + }, + "type": "DYNAMIC_TYPE_FORWARD", + "visible": true + } + ], + "offset": "966281785469042740", + "update_baseline": "966888011247648768", + "update_num": 5 + } +} +``` + +
+ +## 检测是否有新动态 + +> https://api.bilibili.com/x/polymer/web-dynamic/v1/feed/all/update + +*请求方式:GET* + +认证方式: Cookie (SESSDATA) + +**URL参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| - | - | - | - | - | +| type | str | 动态类型 | 不必要 | 默认为 `all` | +| update_baseline | id | 更新基线 | 必要 | 用于检测是否有新动态, 默认为上次请求 [获取全部动态列表](#获取全部动态列表) 返回的 `update_baseline`, 实测填 `0` 也可正常获取 | +| web_location | str | 333.1365 | 不必要 | | + +**JSON回复:** + +根: + +| 字段 | 类型 | 内容 | 备注 | +| - | - | - | - | +| code | num | 返回值 | 0: 成功
-101: 账号未登录
-400: 请求错误 | +| message | str | 错误信息 | 默认为 0 | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +`data` : + +| 字段 | 类型 | 内容 | 备注 | +| - | - | - | - | +| update_num | num | 有新动态的数量 | | + +**示例:** + +```shell +curl -G 'https://api.bilibili.com/x/polymer/web-dynamic/v1/feed/all/update' \ +--data-urlencode 'update_baseline=114514' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "update_num": 9 + } } ``` diff --git a/docs/dynamic/dynamic_enum.md b/docs/dynamic/dynamic_enum.md index 0f29893..ae563d6 100644 --- a/docs/dynamic/dynamic_enum.md +++ b/docs/dynamic/dynamic_enum.md @@ -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 | 装扮
剧集点评
普通分享 | [551309621391003098](https://t.bilibili.com/551309621391003098)
[716503778995470375](https://t.bilibili.com/716503778995470375)
[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 | 装扮
剧集点评
普通分享 ||17|| [551309621391003098](https://t.bilibili.com/551309621391003098)
[716503778995470375](https://t.bilibili.com/716503778995470375)
[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 | | | -# 动态主体类型 +## 动态主体类型 | 类型 | 说明 | 示例 | |-----------------------------|-------|-----------------------------------------------------------------| diff --git a/docs/dynamic/topic.md b/docs/dynamic/topic.md new file mode 100644 index 0000000..570367d --- /dev/null +++ b/docs/dynamic/topic.md @@ -0,0 +1,202 @@ +# 话题搜索 + +## 搜索发布话题 + +> https://app.bilibili.com/x/topic/pub/search +> https://api.bilibili.com/x/topic/pub/search + +*请求方法: GET* + +注: 该接口可能存在传入页面大小与返回数量不匹配的问题, 可能与访问权限有关 + + + +**URL参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| --- | --- | --- | --- | --- | +| keywords | str | 关键词 | 不必要 | | +| content | str | 空 | 不必要 | | +| upload_id | str | 上传 id? | 不必要 | 页面刷新第一次请求时为空, 后均非空
似乎为固定值, 格式: `${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: 成功
-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' +``` + +
+查看响应示例: + +```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 + } + } +} +``` + +
+ +## 推荐搜索话题? + +> https://app.bilibili.com/x/topic/pub/rcmd/search +> https://api.bilibili.com/x/topic/pub/rcmd/search + +*请求方法: GET* + +注: 该接口啥也不返回, 但是网页端会请求该接口 + + + +**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' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "topic_items": [], + "request_id": "" + } +} +``` + +
diff --git a/docs/fav/info.md b/docs/fav/info.md index 45008d9..2e8aa30 100644 --- a/docs/fav/info.md +++ b/docs/fav/info.md @@ -1,12 +1,14 @@ # 收藏夹基本信息 + + ## 获取收藏夹元数据 > https://api.bilibili.com/x/v3/fav/folder/info *请求方式:GET* -认证方式:Cookie或APP +认证方式:Cookie(SESSDATA) 或 APP **注:查询权限收藏夹时需要相应用户登录** @@ -48,7 +50,6 @@ | like_state | num | 点赞状态 | 已点赞:1
未点赞:0
需要登录 | | 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 | 目标内容属性 | 非必要 | 默认为全部
0:全部
2:视频稿件 | | rid | num | 目标内容id | 非必要 | 视频稿件:视频稿件avid | @@ -151,43 +150,52 @@ curl -G 'https://api.bilibili.com/x/v3/fav/folder/info' \ | ------- | ----------------------------- | -------- | --------------------------- | | code | num | 返回值 | 0:成功
-400:请求错误 | | message | str | 错误信息 | 默认为0 | -| data | 有效时:obj
无效或:null | 信息本体 | | +| ttl | num | 1 | | +| data | 隐藏时:null
公开时:obj | 信息本体 | | `data`对象: -| 字段 | 类型 | 内容 | 备注 | -| ------ | ----- | ---------------- | ---- | -| count | num | 创建的收藏夹总数 | | -| list | array | 创建的收藏夹列表 | | +| 字段 | 类型 | 内容 | 备注 | +| ----- | --------------------------------------- | -------------- | ---- | +| count | num | 创建的收藏夹数 | | +| list | 无收藏夹时:null
有收藏夹时: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
不存在于该收藏夹:0 | | media_count | num | 收藏夹内容数量 | | +`attr`属性位二进制值表: + +| 位 | 内容 | 备注 | +| --------------- | ---------------- | -------------------------------- | +| 0 | 是否为默认收藏夹 | 0:默认收藏夹
1:其他收藏夹 | +| 1 | 私有收藏夹 | 0:公开
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 + }] + } +} +``` + +
+ +## 查询用户收藏的视频收藏夹 + +> 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:成功
-101:账号未登录
-111:csrf校验失败
40022:签名过长 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | 隐藏时:null
公开时:obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----- | --------------------------------------- | -------------- | ---- | +| count | num | 创建的收藏夹数 | | +| list | 无收藏夹时:null
有收藏夹时: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二进制处理
详细说明见下表 | +| 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:默认收藏夹
1:其他收藏夹 | 0:公开
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' +``` + +
+查看响应示例: + +```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}:{内容类型}
每个成员间用`,`分隔
类型:
2:视频稿件
12:音频
21:视频合集
内容id:
视频稿件:视频稿件avid
音频:音频auid
视频合集:视频合集id | +| resources | strs | 目标内容id列表 | 必要 | 格式:{内容id}:{内容类型}
每个成员间用`,`分隔
类型:
2:视频稿件
12:音频
内容id:
视频稿件:视频稿件avid
音频:音频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
音频:音频auid
视频合集:视频合集id | -| type | num | 内容类型 | 2:视频稿件
12:音频
21:视频合集 | +| id | num | 内容id | 视频稿件:视频稿件avid
音频:音频auid | +| type | num | 内容类型 | 2:视频稿件
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' ```
@@ -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 + } + ] } ``` -
\ No newline at end of file +
diff --git a/docs/garb/lottery.md b/docs/garb/lottery.md new file mode 100644 index 0000000..861d874 --- /dev/null +++ b/docs/garb/lottery.md @@ -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' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "list": null, + "pn": 1, + "ps": 20, + "total": 0 + } +} +``` + +
+ +## 收藏集信息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' +``` + +
+查看响应示例: + +```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 + } +} +``` + +
diff --git a/docs/live/info.md b/docs/live/info.md index db3f03a..95a1bff 100644 --- a/docs/live/info.md +++ b/docs/live/info.md @@ -466,7 +466,7 @@ curl -G 'https://api.live.bilibili.com/room/v1/Room/room_init' \ **示例:** -查询直播间`mid=76`的主播信息 +查询直播间`mid=2`的主播信息 ```shell curl -G 'https://api.live.bilibili.com/live_user/v1/Master/info' \ @@ -523,6 +523,144 @@ curl -G 'https://api.live.bilibili.com/live_user/v1/Master/info' \ +## 获取直播间基本信息 + +> https://api.live.bilibili.com/xlive/web-room/v1/index/getRoomBaseInfo + +*请求方式: GET* + + + +**URL参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ----- | ---- | --- | - | - | +| req_biz | str | `web_room_componet` | 必要 | | +| room_ids | num | 直播间短ID | 不必要 | 多个重复该参数即可 | + +**JSON回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| --- | --- | --- | --- | +| code | num | 返回值 | 0: 成功
-400: 请求错误 | +| message | str | 错误信息 | 默认为 0 | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| --- | --- | --- | --- | +| by_uids | obj | 空 | | +| by_room_ids | obj | 直播间信息 | | + +`data`中的`by_room_ids`对象: + +以直播间长ID为键, 直播间信息为值的, 按键名降序排序 + +`by_room_ids`中的值对象: + +| 字段 | 类型 | 内容 | 备注 | +| --- | --- | --- | --- | +| room_id | num | 直播间长ID | | +| uid | num | 主播用户mid | | +| area_id | num | 直播间分区ID | | +| live_status | num | 直播状态 | 0: 未开播
1: 直播中
2: 轮播中 | +| live_url | str | 直播间网页url | | +| parent_area_id | num | 直播间父分区ID | | +| title | str | 直播间标题 | | +| parent_area_name | str | 直播间父分区名称 | | +| area_name | str | 直播间分区名称 | | +| live_time | str | 开播时间 | `yyyy-MM-dd HH:mm:ss` | +| description | str | 直播间简介 | | +| tags | str | 直播间标签 | 以 `,` 分隔 | +| attention | num | 关注数 | | +| online | num | 在线人数 | | +| short_id | num | 直播间短ID | 为0是无短号 | +| uname | str | 主播用户名 | | +| cover | str | 直播间封面url | | +| background | str | 直播间背景url | | +| join_slide | num | 1 | | +| live_id | num | 0 | | +| live_id_str | str | "0" | | + +**示例:** + +```shell +curl -G 'https://api.live.bilibili.com/xlive/web-room/v1/index/getRoomBaseInfo' \ +--url-query 'req_biz=web_room_componet' \ +--url-query 'room_ids=1' \ +--url-query 'room_ids=3 +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "by_uids": {}, + "by_room_ids": { + "23058": { + "room_id": 23058, + "uid": 11153765, + "area_id": 190, + "live_status": 0, + "live_url": "https://live.bilibili.com/23058", + "parent_area_id": 5, + "title": "哔哩哔哩音悦台", + "parent_area_name": "电台", + "area_name": "唱见电台", + "live_time": "0000-00-00 00:00:00", + "description": "

这里是哔哩哔哩官方音乐台喔!

一起来听音乐吧ε=ε=(ノ≧∇≦)ノ

没想到蒸汽配圣诞下装,意外的很暴露呢=3=

\n", + "tags": "", + "attention": 225431, + "online": 0, + "short_id": 3, + "uname": "3号直播间", + "cover": "", + "background": "https://i0.hdslb.com/bfs/live/2836bb7b84c792e2c6aadfd4d1cce13484775fa3.jpg", + "join_slide": 1, + "live_id": 0, + "live_id_str": "0" + }, + "5440": { + "room_id": 5440, + "uid": 9617619, + "area_id": 701, + "live_status": 2, + "live_url": "https://live.bilibili.com/5440", + "parent_area_id": 11, + "title": "华为nova Flip新生之夜", + "parent_area_name": "知识", + "area_name": "科技·科学", + "live_time": "0000-00-00 00:00:00", + "description": "

华为novaFlip新生之夜正在直播中!备案号:Z0910417240818001

", + "tags": "", + "attention": 17848313, + "online": 0, + "short_id": 1, + "uname": "哔哩哔哩直播", + "cover": "http://i0.hdslb.com/bfs/live/1a862058e4211a5e73a8a1bf0635953ea08a4091.jpg", + "background": "http://i0.hdslb.com/bfs/live/ec518ede15d4c2547c83cb59f14752450c0889b0.jpg", + "join_slide": 1, + "live_id": 0, + "live_id_str": "0" + } + } + } +} +``` + +
+ ## 批量查询直播间状态 > https://api.live.bilibili.com/room/v1/Room/get_status_info_by_uids @@ -642,6 +780,1298 @@ curl 'https://api.live.bilibili.com/room/v1/Room/get_status_info_by_uids' \ +## 获取直播间最近历史弹幕 + +> https://api.live.bilibili.com/xlive/web-room/v1/dM/gethistory + + + +*请求方式: GET* + +注: 该接口部分返回信息不明, 仅供参考, 来源 [cv8186413](https://www.bilibili.com/read/cv8186413/) + +**URL参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ----- | ---- | --- | - | - | +| roomid | num | 直播间短ID | 必要 | | + +**JSON回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| --- | --- | --- | --- | +| code | num | 返回值 | 0: 成功
-400: 请求错误 | +| message | str | 错误信息 | 默认为空 | +| msg | str | 空 | 仅请求成功时存在 | +| ttl | num | 1 | 仅请求失败时存在 | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| --- | --- | --- | --- | +| admin | array | 管理员最新的10条弹幕消息 | 格式与`room`相同 | +| room | array | 普通用户的10条弹幕信息 | 格式与`admin`相同 | + +`data`中的任意数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| --- | --- | --- | --- | +| text | str | 弹幕内容 | | +| dm_type | num | 弹幕类型 | | +| uid | num | 弹幕发送者的UID | | +| nickname | str | 弹幕发送者的昵称 | | +| uname_color | str | 弹幕发送者的颜色? | | +| timeline | str | 弹幕发送时间 | 格式为`yyyy-MM-dd HH:mm:ss` | +| isadmin | num | 是否为管理员 | | +| vip | num | 是否为VIP? || +| svip | num | 是否为SVIP? || +| medal | array | 粉丝勋章信息? | 格式不明 | +| title | array | 标题? | 格式不明 | +| user_level | array | 用户等级信息? | 格式不明 | +| rank | num | 排名? | [用户空间详细信息](../user/info.md#获取用户详细信息) | +| teamid | num | | | +| rnd | str | 发送时间? | UNIX 秒级时间戳 | +| user_title | 用户标题? | 格式不明 | +| guard_level | | | | +| bubble | | | | +| bubble_color | | | | +| lpl | | | | +| yeah_space_url | | | | +| jump_to_url | | | | +| check_info | obj | 弹幕审核信息? | | +| voice_dm_info | obj | 语音弹幕信息? | | +| emoticon | obj | 表情信息? | | +| emots | null | | | +| id_str | str | 弹幕ID? | | +| wealth_level | num | 财富等级? | | +| bubble_id_v2 | num | | | +| reply | obj | | | +| group_medal | null | | | +| user | obj | 该用户信息 || + +`data`对象中的`user`对象: + +| 字段 | 类型 | 内容 | 备注 | +| - | - | --- | --- | +| uid | num | 用户 mid || +| base | obj | 用户基本信息 || +| medal | null | || +| wealth | null | || +| title | obj | 用户标题? || +| guard | null | || +| uhead_frame | null | || +| guard_leader | obj | | | + +`data`对象中的`user`对象中的`base`对象: + +| 字段 | 类型 | 内容 | 备注 | +| - | - | --- | --- | +| name | str | 用户名 || +| face | str | 用户头像 url || +| name_color | num | 用户名颜色? || +| is_mystery | bool | 是否为神秘用户? || +| risk_ctrl_info | null | | | +| origin_info | obj | 原始信息? | | +| official_info | obj | 认证信息 | | +| name_color_str | str | | | + +**示例:** + +```shell +curl -G 'https://api.live.bilibili.com/xlive/web-room/v1/dM/gethistory' \ +--url-query 'roomid=1' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "data": { + "admin": [], + "room": [ + { + "text": "‫", + "dm_type": 0, + "uid": 20276964, + "nickname": "咸菜拉面", + "uname_color": "", + "timeline": "2024-08-15 05:05:06", + "isadmin": 0, + "vip": 0, + "svip": 0, + "medal": [ + 27, + "小孩梓", + "阿梓从小就很可爱", + 80397, + 398668, + "", + 0, + 6809855, + 398668, + 6850801, + 3, + 1, + 7706705 + ], + "title": [ + "title-86-1", + "title-86-1" + ], + "user_level": [ + 59, + 0, + 16752445, + 931 + ], + "rank": 10000, + "teamid": 0, + "rnd": "1723669505", + "user_title": "title-86-1", + "guard_level": 0, + "bubble": 0, + "bubble_color": "", + "lpl": 0, + "yeah_space_url": "", + "jump_to_url": "", + "check_info": { + "ts": 1723669506, + "ct": "18434F3D" + }, + "voice_dm_info": { + "voice_url": "", + "file_format": "", + "text": "", + "file_duration": 0, + "file_id": "" + }, + "emoticon": { + "id": 0, + "emoticon_unique": "", + "text": "", + "perm": 0, + "url": "", + "in_player_area": 0, + "bulge_display": 0, + "is_dynamic": 0, + "height": 0, + "width": 0 + }, + "emots": null, + "id_str": "74368f428dfaec806cd205e62866bd1c45", + "wealth_level": 37, + "bubble_id_v2": 0, + "reply": { + "show_reply": true, + "reply_mid": 0, + "reply_uname": "", + "reply_uname_color": "", + "reply_is_mystery": false + }, + "group_medal": null, + "user": { + "uid": 20276964, + "base": { + "name": "咸菜拉面", + "face": "https://i0.hdslb.com/bfs/face/182b73f6b6274fcee7491219f511b1748c4bc712.jpg", + "name_color": 0, + "is_mystery": false, + "risk_ctrl_info": null, + "origin_info": { + "name": "咸菜拉面", + "face": "https://i0.hdslb.com/bfs/face/182b73f6b6274fcee7491219f511b1748c4bc712.jpg" + }, + "official_info": { + "role": 0, + "title": "", + "desc": "", + "type": -1 + }, + "name_color_str": "" + }, + "medal": { + "name": "小孩梓", + "level": 27, + "color_start": 398668, + "color_end": 6850801, + "color_border": 6809855, + "color": 398668, + "id": 13139, + "typ": 0, + "is_light": 1, + "ruid": 7706705, + "guard_level": 3, + "score": 50112778, + "guard_icon": "https://i0.hdslb.com/bfs/live/143f5ec3003b4080d1b5f817a9efdca46d631945.png", + "honor_icon": "", + "v2_medal_color_start": "#4775EFCC", + "v2_medal_color_end": "#4775EFCC", + "v2_medal_color_border": "#58A1F8FF", + "v2_medal_color_text": "#FFFFFFFF", + "v2_medal_color_level": "#000B7099", + "user_receive_count": 0 + }, + "wealth": null, + "title": { + "old_title_css_id": "title-86-1", + "title_css_id": "title-86-1" + }, + "guard": null, + "uhead_frame": null, + "guard_leader": { + "is_guard_leader": false + } + } + }, + { + "text": "‫", + "dm_type": 0, + "uid": 20276964, + "nickname": "咸菜拉面", + "uname_color": "", + "timeline": "2024-08-16 05:05:06", + "isadmin": 0, + "vip": 0, + "svip": 0, + "medal": [ + 27, + "小孩梓", + "阿梓从小就很可爱", + 80397, + 398668, + "", + 0, + 6809855, + 398668, + 6850801, + 3, + 1, + 7706705 + ], + "title": [ + "title-86-1", + "title-86-1" + ], + "user_level": [ + 59, + 0, + 16752445, + 931 + ], + "rank": 10000, + "teamid": 0, + "rnd": "1723755905", + "user_title": "title-86-1", + "guard_level": 0, + "bubble": 0, + "bubble_color": "", + "lpl": 0, + "yeah_space_url": "", + "jump_to_url": "", + "check_info": { + "ts": 1723755906, + "ct": "F65D229F" + }, + "voice_dm_info": { + "voice_url": "", + "file_format": "", + "text": "", + "file_duration": 0, + "file_id": "" + }, + "emoticon": { + "id": 0, + "emoticon_unique": "", + "text": "", + "perm": 0, + "url": "", + "in_player_area": 0, + "bulge_display": 0, + "is_dynamic": 0, + "height": 0, + "width": 0 + }, + "emots": null, + "id_str": "7f3bb90826ad642012a31368f266be6d2", + "wealth_level": 37, + "bubble_id_v2": 0, + "reply": { + "show_reply": true, + "reply_mid": 0, + "reply_uname": "", + "reply_uname_color": "", + "reply_is_mystery": false + }, + "group_medal": null, + "user": { + "uid": 20276964, + "base": { + "name": "咸菜拉面", + "face": "https://i0.hdslb.com/bfs/face/182b73f6b6274fcee7491219f511b1748c4bc712.jpg", + "name_color": 0, + "is_mystery": false, + "risk_ctrl_info": null, + "origin_info": { + "name": "咸菜拉面", + "face": "https://i0.hdslb.com/bfs/face/182b73f6b6274fcee7491219f511b1748c4bc712.jpg" + }, + "official_info": { + "role": 0, + "title": "", + "desc": "", + "type": -1 + }, + "name_color_str": "" + }, + "medal": { + "name": "小孩梓", + "level": 27, + "color_start": 398668, + "color_end": 6850801, + "color_border": 6809855, + "color": 398668, + "id": 13139, + "typ": 0, + "is_light": 1, + "ruid": 7706705, + "guard_level": 3, + "score": 50112778, + "guard_icon": "https://i0.hdslb.com/bfs/live/143f5ec3003b4080d1b5f817a9efdca46d631945.png", + "honor_icon": "", + "v2_medal_color_start": "#4775EFCC", + "v2_medal_color_end": "#4775EFCC", + "v2_medal_color_border": "#58A1F8FF", + "v2_medal_color_text": "#FFFFFFFF", + "v2_medal_color_level": "#000B7099", + "user_receive_count": 0 + }, + "wealth": null, + "title": { + "old_title_css_id": "title-86-1", + "title_css_id": "title-86-1" + }, + "guard": null, + "uhead_frame": null, + "guard_leader": { + "is_guard_leader": false + } + } + }, + { + "text": "好帅", + "dm_type": 0, + "uid": 3546708493469870, + "nickname": "aodun1", + "uname_color": "", + "timeline": "2024-08-16 22:33:28", + "isadmin": 0, + "vip": 0, + "svip": 0, + "medal": [], + "title": [ + "", + "" + ], + "user_level": [ + 0, + 0, + 9868950, + ">50000" + ], + "rank": 10000, + "teamid": 0, + "rnd": "1723811729", + "user_title": "", + "guard_level": 0, + "bubble": 0, + "bubble_color": "", + "lpl": 0, + "yeah_space_url": "", + "jump_to_url": "", + "check_info": { + "ts": 1723818808, + "ct": "1B75FB" + }, + "voice_dm_info": { + "voice_url": "", + "file_format": "", + "text": "", + "file_duration": 0, + "file_id": "" + }, + "emoticon": { + "id": 0, + "emoticon_unique": "", + "text": "", + "perm": 0, + "url": "", + "in_player_area": 0, + "bulge_display": 0, + "is_dynamic": 0, + "height": 0, + "width": 0 + }, + "emots": null, + "id_str": "088336a59eb277942ee353dd6666bf6347", + "wealth_level": 0, + "bubble_id_v2": 0, + "reply": { + "show_reply": true, + "reply_mid": 0, + "reply_uname": "", + "reply_uname_color": "", + "reply_is_mystery": false + }, + "group_medal": null, + "user": { + "uid": 3546708493469870, + "base": { + "name": "aodun1", + "face": "https://i2.hdslb.com/bfs/face/6fb05f895d854e68419d45eef2c2e272b04ad25f.jpg", + "name_color": 0, + "is_mystery": false, + "risk_ctrl_info": null, + "origin_info": { + "name": "aodun1", + "face": "https://i2.hdslb.com/bfs/face/6fb05f895d854e68419d45eef2c2e272b04ad25f.jpg" + }, + "official_info": { + "role": 0, + "title": "", + "desc": "", + "type": -1 + }, + "name_color_str": "" + }, + "medal": null, + "wealth": null, + "title": { + "old_title_css_id": "", + "title_css_id": "" + }, + "guard": null, + "uhead_frame": null, + "guard_leader": { + "is_guard_leader": false + } + } + }, + { + "text": "好帅", + "dm_type": 0, + "uid": 3546708493469870, + "nickname": "aodun1", + "uname_color": "", + "timeline": "2024-08-16 22:35:16", + "isadmin": 0, + "vip": 0, + "svip": 0, + "medal": [], + "title": [ + "", + "" + ], + "user_level": [ + 0, + 0, + 9868950, + ">50000" + ], + "rank": 10000, + "teamid": 0, + "rnd": "1723811729", + "user_title": "", + "guard_level": 0, + "bubble": 0, + "bubble_color": "", + "lpl": 0, + "yeah_space_url": "", + "jump_to_url": "", + "check_info": { + "ts": 1723818916, + "ct": "D6ABF2E7" + }, + "voice_dm_info": { + "voice_url": "", + "file_format": "", + "text": "", + "file_duration": 0, + "file_id": "" + }, + "emoticon": { + "id": 0, + "emoticon_unique": "", + "text": "", + "perm": 0, + "url": "", + "in_player_area": 0, + "bulge_display": 0, + "is_dynamic": 0, + "height": 0, + "width": 0 + }, + "emots": null, + "id_str": "6f421255746f5d8e4731fdadac66bf6356", + "wealth_level": 0, + "bubble_id_v2": 0, + "reply": { + "show_reply": true, + "reply_mid": 0, + "reply_uname": "", + "reply_uname_color": "", + "reply_is_mystery": false + }, + "group_medal": null, + "user": { + "uid": 3546708493469870, + "base": { + "name": "aodun1", + "face": "https://i2.hdslb.com/bfs/face/6fb05f895d854e68419d45eef2c2e272b04ad25f.jpg", + "name_color": 0, + "is_mystery": false, + "risk_ctrl_info": null, + "origin_info": { + "name": "aodun1", + "face": "https://i2.hdslb.com/bfs/face/6fb05f895d854e68419d45eef2c2e272b04ad25f.jpg" + }, + "official_info": { + "role": 0, + "title": "", + "desc": "", + "type": -1 + }, + "name_color_str": "" + }, + "medal": null, + "wealth": null, + "title": { + "old_title_css_id": "", + "title_css_id": "" + }, + "guard": null, + "uhead_frame": null, + "guard_leader": { + "is_guard_leader": false + } + } + }, + { + "text": "好帅", + "dm_type": 0, + "uid": 3546708493469870, + "nickname": "aodun1", + "uname_color": "", + "timeline": "2024-08-16 22:36:51", + "isadmin": 0, + "vip": 0, + "svip": 0, + "medal": [], + "title": [ + "", + "" + ], + "user_level": [ + 0, + 0, + 9868950, + ">50000" + ], + "rank": 10000, + "teamid": 0, + "rnd": "1723811729", + "user_title": "", + "guard_level": 0, + "bubble": 0, + "bubble_color": "", + "lpl": 0, + "yeah_space_url": "", + "jump_to_url": "", + "check_info": { + "ts": 1723819011, + "ct": "1B6978C1" + }, + "voice_dm_info": { + "voice_url": "", + "file_format": "", + "text": "", + "file_duration": 0, + "file_id": "" + }, + "emoticon": { + "id": 0, + "emoticon_unique": "", + "text": "", + "perm": 0, + "url": "", + "in_player_area": 0, + "bulge_display": 0, + "is_dynamic": 0, + "height": 0, + "width": 0 + }, + "emots": null, + "id_str": "270f5a2ac69c5904617873cc4666bf640", + "wealth_level": 0, + "bubble_id_v2": 0, + "reply": { + "show_reply": true, + "reply_mid": 0, + "reply_uname": "", + "reply_uname_color": "", + "reply_is_mystery": false + }, + "group_medal": null, + "user": { + "uid": 3546708493469870, + "base": { + "name": "aodun1", + "face": "https://i2.hdslb.com/bfs/face/6fb05f895d854e68419d45eef2c2e272b04ad25f.jpg", + "name_color": 0, + "is_mystery": false, + "risk_ctrl_info": null, + "origin_info": { + "name": "aodun1", + "face": "https://i2.hdslb.com/bfs/face/6fb05f895d854e68419d45eef2c2e272b04ad25f.jpg" + }, + "official_info": { + "role": 0, + "title": "", + "desc": "", + "type": -1 + }, + "name_color_str": "" + }, + "medal": null, + "wealth": null, + "title": { + "old_title_css_id": "", + "title_css_id": "" + }, + "guard": null, + "uhead_frame": null, + "guard_leader": { + "is_guard_leader": false + } + } + }, + { + "text": "好帅", + "dm_type": 0, + "uid": 3546708493469870, + "nickname": "aodun1", + "uname_color": "", + "timeline": "2024-08-16 22:39:01", + "isadmin": 0, + "vip": 0, + "svip": 0, + "medal": [], + "title": [ + "", + "" + ], + "user_level": [ + 0, + 0, + 9868950, + ">50000" + ], + "rank": 10000, + "teamid": 0, + "rnd": "1723811729", + "user_title": "", + "guard_level": 0, + "bubble": 0, + "bubble_color": "", + "lpl": 0, + "yeah_space_url": "", + "jump_to_url": "", + "check_info": { + "ts": 1723819141, + "ct": "143613AF" + }, + "voice_dm_info": { + "voice_url": "", + "file_format": "", + "text": "", + "file_duration": 0, + "file_id": "" + }, + "emoticon": { + "id": 0, + "emoticon_unique": "", + "text": "", + "perm": 0, + "url": "", + "in_player_area": 0, + "bulge_display": 0, + "is_dynamic": 0, + "height": 0, + "width": 0 + }, + "emots": null, + "id_str": "002ebbdc402b3d625052865f7b66bf6469", + "wealth_level": 0, + "bubble_id_v2": 0, + "reply": { + "show_reply": true, + "reply_mid": 0, + "reply_uname": "", + "reply_uname_color": "", + "reply_is_mystery": false + }, + "group_medal": null, + "user": { + "uid": 3546708493469870, + "base": { + "name": "aodun1", + "face": "https://i2.hdslb.com/bfs/face/6fb05f895d854e68419d45eef2c2e272b04ad25f.jpg", + "name_color": 0, + "is_mystery": false, + "risk_ctrl_info": null, + "origin_info": { + "name": "aodun1", + "face": "https://i2.hdslb.com/bfs/face/6fb05f895d854e68419d45eef2c2e272b04ad25f.jpg" + }, + "official_info": { + "role": 0, + "title": "", + "desc": "", + "type": -1 + }, + "name_color_str": "" + }, + "medal": null, + "wealth": null, + "title": { + "old_title_css_id": "", + "title_css_id": "" + }, + "guard": null, + "uhead_frame": null, + "guard_leader": { + "is_guard_leader": false + } + } + }, + { + "text": "赚麻了 哈哈", + "dm_type": 0, + "uid": 243082910, + "nickname": "可人的樱花", + "uname_color": "", + "timeline": "2024-08-17 01:00:49", + "isadmin": 0, + "vip": 0, + "svip": 0, + "medal": [], + "title": [ + "", + "" + ], + "user_level": [ + 0, + 0, + 9868950, + ">50000" + ], + "rank": 10000, + "teamid": 0, + "rnd": "1723379161", + "user_title": "", + "guard_level": 0, + "bubble": 0, + "bubble_color": "", + "lpl": 0, + "yeah_space_url": "", + "jump_to_url": "", + "check_info": { + "ts": 1723827649, + "ct": "3917D4D7" + }, + "voice_dm_info": { + "voice_url": "", + "file_format": "", + "text": "", + "file_duration": 0, + "file_id": "" + }, + "emoticon": { + "id": 0, + "emoticon_unique": "", + "text": "", + "perm": 0, + "url": "", + "in_player_area": 0, + "bulge_display": 0, + "is_dynamic": 0, + "height": 0, + "width": 0 + }, + "emots": null, + "id_str": "03f3261e144366383c49c6b5d166bf8563", + "wealth_level": 7, + "bubble_id_v2": 0, + "reply": { + "show_reply": true, + "reply_mid": 0, + "reply_uname": "", + "reply_uname_color": "", + "reply_is_mystery": false + }, + "group_medal": null, + "user": { + "uid": 243082910, + "base": { + "name": "可人的樱花", + "face": "http://i2.hdslb.com/bfs/face/5faa9bef952f831236b740932c559476658f88e5.jpg", + "name_color": 0, + "is_mystery": false, + "risk_ctrl_info": null, + "origin_info": { + "name": "可人的樱花", + "face": "http://i2.hdslb.com/bfs/face/5faa9bef952f831236b740932c559476658f88e5.jpg" + }, + "official_info": { + "role": 0, + "title": "", + "desc": "", + "type": -1 + }, + "name_color_str": "" + }, + "medal": null, + "wealth": null, + "title": { + "old_title_css_id": "", + "title_css_id": "" + }, + "guard": null, + "uhead_frame": null, + "guard_leader": { + "is_guard_leader": false + } + } + }, + { + "text": "‫", + "dm_type": 0, + "uid": 20276964, + "nickname": "咸菜拉面", + "uname_color": "", + "timeline": "2024-08-17 05:05:07", + "isadmin": 0, + "vip": 0, + "svip": 0, + "medal": [ + 27, + "小孩梓", + "阿梓从小就很可爱", + 80397, + 398668, + "", + 0, + 6809855, + 398668, + 6850801, + 3, + 1, + 7706705 + ], + "title": [ + "title-86-1", + "title-86-1" + ], + "user_level": [ + 59, + 0, + 16752445, + 931 + ], + "rank": 10000, + "teamid": 0, + "rnd": "1723842307", + "user_title": "title-86-1", + "guard_level": 0, + "bubble": 0, + "bubble_color": "", + "lpl": 0, + "yeah_space_url": "", + "jump_to_url": "", + "check_info": { + "ts": 1723842307, + "ct": "8B947ABC" + }, + "voice_dm_info": { + "voice_url": "", + "file_format": "", + "text": "", + "file_duration": 0, + "file_id": "" + }, + "emoticon": { + "id": 0, + "emoticon_unique": "", + "text": "", + "perm": 0, + "url": "", + "in_player_area": 0, + "bulge_display": 0, + "is_dynamic": 0, + "height": 0, + "width": 0 + }, + "emots": null, + "id_str": "1a928b968afaa7825ea506ffe566bfbf16", + "wealth_level": 37, + "bubble_id_v2": 0, + "reply": { + "show_reply": true, + "reply_mid": 0, + "reply_uname": "", + "reply_uname_color": "", + "reply_is_mystery": false + }, + "group_medal": null, + "user": { + "uid": 20276964, + "base": { + "name": "咸菜拉面", + "face": "https://i0.hdslb.com/bfs/face/182b73f6b6274fcee7491219f511b1748c4bc712.jpg", + "name_color": 0, + "is_mystery": false, + "risk_ctrl_info": null, + "origin_info": { + "name": "咸菜拉面", + "face": "https://i0.hdslb.com/bfs/face/182b73f6b6274fcee7491219f511b1748c4bc712.jpg" + }, + "official_info": { + "role": 0, + "title": "", + "desc": "", + "type": -1 + }, + "name_color_str": "" + }, + "medal": { + "name": "小孩梓", + "level": 27, + "color_start": 398668, + "color_end": 6850801, + "color_border": 6809855, + "color": 398668, + "id": 13139, + "typ": 0, + "is_light": 1, + "ruid": 7706705, + "guard_level": 3, + "score": 50112778, + "guard_icon": "https://i0.hdslb.com/bfs/live/143f5ec3003b4080d1b5f817a9efdca46d631945.png", + "honor_icon": "", + "v2_medal_color_start": "#4775EFCC", + "v2_medal_color_end": "#4775EFCC", + "v2_medal_color_border": "#58A1F8FF", + "v2_medal_color_text": "#FFFFFFFF", + "v2_medal_color_level": "#000B7099", + "user_receive_count": 0 + }, + "wealth": null, + "title": { + "old_title_css_id": "title-86-1", + "title_css_id": "title-86-1" + }, + "guard": null, + "uhead_frame": null, + "guard_leader": { + "is_guard_leader": false + } + } + }, + { + "text": "下播啦~ 感谢大家的陪伴~ 下次见哦~", + "dm_type": 0, + "uid": 3546614675278489, + "nickname": "机器人管家_鱼", + "uname_color": "", + "timeline": "2024-08-18 00:07:36", + "isadmin": 0, + "vip": 0, + "svip": 0, + "medal": [ + 21, + "赴神明", + "Mr_钟明", + 27751673, + 1725515, + "", + 0, + 12632256, + 12632256, + 12632256, + 0, + 0, + 3493291261692485 + ], + "title": [ + "", + "" + ], + "user_level": [ + 11, + 0, + 6406234, + ">50000" + ], + "rank": 10000, + "teamid": 0, + "rnd": "1723910862", + "user_title": "", + "guard_level": 0, + "bubble": 0, + "bubble_color": "", + "lpl": 0, + "yeah_space_url": "", + "jump_to_url": "", + "check_info": { + "ts": 1723910856, + "ct": "9BD05026" + }, + "voice_dm_info": { + "voice_url": "", + "file_format": "", + "text": "", + "file_duration": 0, + "file_id": "" + }, + "emoticon": { + "id": 0, + "emoticon_unique": "", + "text": "", + "perm": 0, + "url": "", + "in_player_area": 0, + "bulge_display": 0, + "is_dynamic": 0, + "height": 0, + "width": 0 + }, + "emots": null, + "id_str": "2ee6101973eeb69931eb86ac7e66c0ca17", + "wealth_level": 23, + "bubble_id_v2": 0, + "reply": { + "show_reply": true, + "reply_mid": 0, + "reply_uname": "", + "reply_uname_color": "", + "reply_is_mystery": false + }, + "group_medal": null, + "user": { + "uid": 3546614675278489, + "base": { + "name": "机器人管家_鱼", + "face": "https://i1.hdslb.com/bfs/face/de737cd746a96742c07ced6c213aa25cf0429d90.jpg", + "name_color": 0, + "is_mystery": false, + "risk_ctrl_info": null, + "origin_info": { + "name": "机器人管家_鱼", + "face": "https://i1.hdslb.com/bfs/face/de737cd746a96742c07ced6c213aa25cf0429d90.jpg" + }, + "official_info": { + "role": 0, + "title": "", + "desc": "", + "type": -1 + }, + "name_color_str": "" + }, + "medal": { + "name": "赴神明", + "level": 21, + "color_start": 12632256, + "color_end": 12632256, + "color_border": 12632256, + "color": 1725515, + "id": 1231122, + "typ": 0, + "is_light": 0, + "ruid": 3493291261692485, + "guard_level": 0, + "score": 50001573, + "guard_icon": "", + "honor_icon": "", + "v2_medal_color_start": "#919298CC", + "v2_medal_color_end": "#919298CC", + "v2_medal_color_border": "#919298CC", + "v2_medal_color_text": "#FFFFFFFF", + "v2_medal_color_level": "#6C6C7299", + "user_receive_count": 0 + }, + "wealth": null, + "title": { + "old_title_css_id": "", + "title_css_id": "" + }, + "guard": null, + "uhead_frame": null, + "guard_leader": { + "is_guard_leader": false + } + } + }, + { + "text": "‫", + "dm_type": 0, + "uid": 20276964, + "nickname": "咸菜拉面", + "uname_color": "", + "timeline": "2024-08-18 05:05:05", + "isadmin": 0, + "vip": 0, + "svip": 0, + "medal": [ + 27, + "小孩梓", + "阿梓从小就很可爱", + 80397, + 398668, + "", + 0, + 6809855, + 398668, + 6850801, + 3, + 1, + 7706705 + ], + "title": [ + "title-86-1", + "title-86-1" + ], + "user_level": [ + 59, + 0, + 16752445, + 931 + ], + "rank": 10000, + "teamid": 0, + "rnd": "1723928706", + "user_title": "title-86-1", + "guard_level": 0, + "bubble": 0, + "bubble_color": "", + "lpl": 0, + "yeah_space_url": "", + "jump_to_url": "", + "check_info": { + "ts": 1723928705, + "ct": "8A379FF4" + }, + "voice_dm_info": { + "voice_url": "", + "file_format": "", + "text": "", + "file_duration": 0, + "file_id": "" + }, + "emoticon": { + "id": 0, + "emoticon_unique": "", + "text": "", + "perm": 0, + "url": "", + "in_player_area": 0, + "bulge_display": 0, + "is_dynamic": 0, + "height": 0, + "width": 0 + }, + "emots": null, + "id_str": "41e8b55dea381d494cfe60ba3466c11064", + "wealth_level": 37, + "bubble_id_v2": 0, + "reply": { + "show_reply": true, + "reply_mid": 0, + "reply_uname": "", + "reply_uname_color": "", + "reply_is_mystery": false + }, + "group_medal": null, + "user": { + "uid": 20276964, + "base": { + "name": "咸菜拉面", + "face": "https://i0.hdslb.com/bfs/face/182b73f6b6274fcee7491219f511b1748c4bc712.jpg", + "name_color": 0, + "is_mystery": false, + "risk_ctrl_info": null, + "origin_info": { + "name": "咸菜拉面", + "face": "https://i0.hdslb.com/bfs/face/182b73f6b6274fcee7491219f511b1748c4bc712.jpg" + }, + "official_info": { + "role": 0, + "title": "", + "desc": "", + "type": -1 + }, + "name_color_str": "" + }, + "medal": { + "name": "小孩梓", + "level": 27, + "color_start": 398668, + "color_end": 6850801, + "color_border": 6809855, + "color": 398668, + "id": 13139, + "typ": 0, + "is_light": 1, + "ruid": 7706705, + "guard_level": 3, + "score": 50112778, + "guard_icon": "https://i0.hdslb.com/bfs/live/143f5ec3003b4080d1b5f817a9efdca46d631945.png", + "honor_icon": "", + "v2_medal_color_start": "#4775EFCC", + "v2_medal_color_end": "#4775EFCC", + "v2_medal_color_border": "#58A1F8FF", + "v2_medal_color_text": "#FFFFFFFF", + "v2_medal_color_level": "#000B7099", + "user_receive_count": 0 + }, + "wealth": null, + "title": { + "old_title_css_id": "title-86-1", + "title_css_id": "title-86-1" + }, + "guard": null, + "uhead_frame": null, + "guard_leader": { + "is_guard_leader": false + } + } + } + ] + }, + "message": "", + "msg": "" +} +``` + +
+ ## 清晰度代码 | 代码 | 说明 | @@ -958,4 +2388,170 @@ curl -L -X GET 'https://api.live.bilibili.com/xlive/web-room/v2/index/getRoomPla } ``` - \ No newline at end of file + + + + + + +## 获取直播间主播信息 + +> https://api.live.bilibili.com/live_user/v1/UserInfo/get_anchor_in_room + +*请求方式: GET* + +**URL参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +|---------|-----|------|-----|-------| +| roomid | num | 直播间号 | 必要 | 可以为短号 | + + +**json回复:** + + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +|---------|-----|------|-----------------| +| code | num | 返回值 | 0:成功 (直播间不存在也为0) | +| message | str | 错误信息 | | +| msg | str | 错误信息 | | +| data | obj | 信息本体 | | + + + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +|-------------------------|-----------|--------|-----------------------------| +| info | obj | 主播信息 | | +| level | obj | 直播等级 | | +| san | num | 主播san值 | 12满分 | + + +`info`对象: + + +| 字段 | 类型 | 内容 | 备注 | +|-------------------|------|------------------|----------| +| uid | num | 主播mid | | +| uname | str | 主播用户名 | | +| face | str | 主播头像URL | | +| rank | str | 主播排名 | | +| platform_user_level | num | 平台用户等级 | | +| mobile_verify | num | 手机验证状态 | | +| identification | num | 身份认证状态 | | +| official_verify | obj | 认证信息 | | +| vip_type | num | VIP类型 | | +| gender | num | 主播性别 | -1:保密
0:女
1:男 | + + +`info`中的`official_verify`对象: + +| 字段 | 类型 | 内容 | 备注 | +|------|------|----------|-----| +| type | num | 主播认证类型 | -1:无
0:个人认证
1:机构认证 | +| desc | str | 主播认证信息 | | +| role | num | 未知 | | + +`level`对象: + + + +| 字段 | 类型 | 内容 | 备注 | +|--------------|------|------------------|----------| +| uid | num | 用户ID | | +| cost | num | 消费金额 | | +| rcost | num | 充值金额 | | +| user_score | str | 用户积分 | | +| vip | num | VIP状态 | | +| vip_time | str | VIP到期时间 | | +| svip | num | SVIP状态 | | +| svip_time | str | SVIP到期时间 | | +| update_time | str | 更新时间 | | +| master_level | obj | 主播等级 | | +| user_level | num | 用户等级 | | +| color | num | 颜色值 | | +| anchor_score | num | 主播积分 | | + + + +`level` 中的 `master_level`对象: + +| 字段 | 类型 | 内容 | 备注 | +|-------------------|------|------------------|----------| +| level | num | 主播等级 | | +| color | num | 颜色值 | | +| current | list | 当前积分 | | +| next | list | 下一等级积分 | | +| anchor_score | num | 主播积分 | | +| upgrade_score | num | 升级积分 | | +| master_level_color | num | 主播等级颜色值 | | +| sort | str | 排名 | | + + +**示例:** + +查询`roomid=1`的直播间主播信息 + +```shell +curl -G 'https://api.live.bilibili.com/live_user/v1/UserInfo/get_anchor_in_room' \ +--data-urlencode 'roomid=1' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "msg": "success", + "message": "success", + "data": { + "info": { + "uid": 9617619, + "uname": "哔哩哔哩直播", + "face": "https://i0.hdslb.com/bfs/face/8f6a614a48a3813d90da7a11894ae56a59396fcd.jpg", + "rank": "10000", + "platform_user_level": 6, + "mobile_verify": 1, + "identification": 1, + "official_verify": { + "type": 1, + "desc": "哔哩哔哩直播官方账号", + "role": 3 + }, + "vip_type": 2, + "gender": -1 + }, + "level": { + "uid": 9617619, + "cost": 7782673656, + "rcost": 20199200291, + "user_score": "0", + "vip": 0, + "vip_time": "0000-00-00 00:00:00", + "svip": 0, + "svip_time": "0000-00-00 00:00:00", + "update_time": "2024-08-08 17:13:12", + "master_level": { + "level": 40, + "color": 16746162, + "current": [0, 147013810], + "next": [0, 147013810], + "anchor_score": 201992002, + "upgrade_score": 0, + "master_level_color": 16746162, + "sort": "\u003E10000" + }, + "user_level": 60, + "color": 16752445, + "anchor_score": 201992002 + }, + "san": 12 + } +} +``` + +
diff --git a/docs/live/report.md b/docs/live/report.md new file mode 100644 index 0000000..0dd3ec5 --- /dev/null +++ b/docs/live/report.md @@ -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" +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "next_interval": 60 + } +} +``` + +
diff --git a/docs/login/login_action/password.md b/docs/login/login_action/password.md index b4206c1..10b2b61 100644 --- a/docs/login/login_action/password.md +++ b/docs/login/login_action/password.md @@ -109,7 +109,7 @@ data 对象: | 字段 | 类型 | 内容 | 备注 | |---------------|-----|-------------------|------------------------| -| message | str | 扫码状态信息 | | +| message | str | 扫码状态信息 | 若提示 `本次登录环境存在风险, 需使用手机号进行验证或绑定`, 参见 [手机号验证](#手机号验证) | | refresh_token | str | 刷新`refresh_token` | | | status | num | 0 | | | timestamp | num | 登录时间 | 未登录为`0`
时间戳 单位为毫秒 | @@ -480,4 +480,309 @@ public class Test3 { } } -``` \ No newline at end of file +``` + +## 手机号验证 + +### 简述 + +有时 [登录操作(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' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "recaptcha_type": "geetest", + "recaptcha_token": "8a418aa9eebe411599d759fc318d55e1", + "gee_challenge": "4e5353e7ab9f9aef0c97fa5a5b1ad101", + "gee_gt": "ac597a4506fee079629df5d8b66dd4fe" + } +} +``` + +
+ +### 发送验证码 + +> 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' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "captcha_key": "42403fb08ed2cd97afff14edefbae482" + } +} +``` + +
+ +### 验证手机验证码 + +> 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' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "code": "6eadf783c55a387b143773282b217682" + } +} +``` + +
+ +### 交换 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' +``` + +
+查看响应示例: + +```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" + } +} +``` + +
+ +
+查看响应头部示例: + +```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 +``` + +
diff --git a/docs/login/login_action/readme.md b/docs/login/login_action/readme.md index 5b0ebe0..f891531 100644 --- a/docs/login/login_action/readme.md +++ b/docs/login/login_action/readme.md @@ -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' +### 申请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' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "data": { + "result": { + "success": 1, + "gt": "bd111e81eda1cbb9f54425aafc0908ac", + "challenge": "2903a8eb967a1d990444cb23ea42f417", + "key": "76fb59fbd83a4d9d816162c5156fc964" + }, + "type": 1 + } +} +``` + +
+ ### 进行验证 本文档为 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) diff --git a/docs/login/login_notice.md b/docs/login/login_notice.md index bf876e4..73f6b5f 100644 --- a/docs/login/login_notice.md +++ b/docs/login/login_notice.md @@ -68,3 +68,194 @@ curl -G 'https://api.bilibili.com/x/safecenter/login_notice' \ ``` + +## 最近一周的登录情况 + +> 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:成功
-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" +``` + +
+查看响应示例: + +```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" + } + ] + } +} +``` + +
diff --git a/docs/login/member_center.md b/docs/login/member_center.md index 4c2765a..2378c80 100644 --- a/docs/login/member_center.md +++ b/docs/login/member_center.md @@ -660,4 +660,197 @@ curl 'https://api.bilibili.com/x/member/web/sign/update' \ +## 最近一周的经验记录 +> 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: 成功
-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 +``` + +
+查看响应示例: + +```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 + } +} +``` + +
+ +## 最近一周的节操记录 + +> 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: 成功
-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 +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "moral": 70, + "list": [], + "count": 0 + } +} +``` + +
diff --git a/docs/message/private_msg.md b/docs/message/private_msg.md index 5ca22c2..ae4e11e 100644 --- a/docs/message/private_msg.md +++ b/docs/message/private_msg.md @@ -101,6 +101,8 @@ 认证方式:Cookie(SESSDATA) +注: 该接口默认每 2 分钟请求一次 + **URL参数:** | 参数名 | 类型 | 内容 | 必要性 | 备注 | diff --git a/docs/misc/b23tv.md b/docs/misc/b23tv.md new file mode 100644 index 0000000..b90891b --- /dev/null +++ b/docs/misc/b23tv.md @@ -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 存在时无意义(可是 oid 不可能不存在啊) | +| 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 | + + +**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" +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "content": "【【官方 MV】Never Gonna Give You Up - Rick Astley-哔哩哔哩】 https://b23.tv/5x4wy5f", + "count": 0 + } +} +``` + +
diff --git a/docs/misc/buvid3_4.md b/docs/misc/buvid3_4.md index 91441d0..d9a0747 100644 --- a/docs/misc/buvid3_4.md +++ b/docs/misc/buvid3_4.md @@ -1,6 +1,6 @@ # 获取 buvid3 / buvid4 / b_nut -## 游客获取 buvid3 / buvid4 +## 接口获取 buvid3 / buvid4 > https://api.bilibili.com/x/frontend/finger/spi diff --git a/docs/misc/picture.md b/docs/misc/picture.md index b3c3f8a..52df611 100644 --- a/docs/misc/picture.md +++ b/docs/misc/picture.md @@ -1,6 +1,8 @@ # 图片格式化 -对于 `*.hdslb.com/bfs` 下的图片文件都可以使用以下可选格式化参数. +已知 `*.hdslb.com` `archive.biliimg.com` 等域名作用等效, 对于请求头 `Referer` 要求留空或在 `.bilibili.com` 等 B 站域名下 + +对于以上域名的 `/bfs/` 下的图片文件都可以使用以下可选格式化参数 使用 `@` 开始参数 (无论格式如何, 无论是否有参数, 通过计算 HASH 发现, 使用 `@` 均会导致返回图片不同), 多个参数以 `_` 分隔, 图片格式无需分隔且必须放在最后 diff --git a/docs/misc/sign/bili_ticket.md b/docs/misc/sign/bili_ticket.md index 6cfd5b2..6633b26 100644 --- a/docs/misc/sign/bili_ticket.md +++ b/docs/misc/sign/bili_ticket.md @@ -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: 成功
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) | + +**示例:** + +
+查看响应示例: + +```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 +} +``` + +
+ ## 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} 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); + } +})(); +``` diff --git a/docs/misc/sign/v_voucher.md b/docs/misc/sign/v_voucher.md new file mode 100644 index 0000000..bceb988 --- /dev/null +++ b/docs/misc/sign/v_voucher.md @@ -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:成功
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" +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "type": "geetest", + "token": "e7abdb050c3d4609979f1685137e3bc0", + "geetest": { + "challenge": "85118f8714875ca4c6d5641bb0ce9ddf", + "gt": "ac597a4506fee079629df5d8b66dd4fe" + }, + "biliword": null, + "phone": null, + "sms": null + } +} +``` + +
+ +## 从验证结果获取 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:成功
-111: csrf 校验失败
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" +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "is_valid": 1, + "grisk_id": "2e91cf2b67172ca8432fe7c9ab66a5c4" + } +} +``` + +
diff --git a/docs/misc/sign/wbi.md b/docs/misc/sign/wbi.md index 2c2d55f..78a9b37 100644 --- a/docs/misc/sign/wbi.md +++ b/docs/misc/sign/wbi.md @@ -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** diff --git a/docs/misc/time_stamp.md b/docs/misc/time_stamp.md index 6914205..58e0709 100644 --- a/docs/misc/time_stamp.md +++ b/docs/misc/time_stamp.md @@ -46,6 +46,59 @@ curl 'https://api.bilibili.com/x/report/click/now' +## 获取适用于 RTC 的时间戳 + +> https://api.live.bilibili.com/xlive/open-interface/v1/rtc/getTimestamp + +*请求方法: GET* + + + +**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' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "timestamp": 1723899823, + "microtime": 1723899823683 + } +} +``` + +
+ ## 获取服务器端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' ``` -
查看响应示例: ```js window.serverdate = Date.UTC(2021, 4, 16, 17, 31, 8); ``` +
diff --git a/docs/search/hot.md b/docs/search/hot.md index 02fdf2e..bf08331 100644 --- a/docs/search/hot.md +++ b/docs/search/hot.md @@ -65,6 +65,123 @@ curl 'https://api.bilibili.com/x/web-interface/search/default' +## 获取热搜列表 + +> https://api.bilibili.com/x/web-interface/search/square + +*请求方式: GET* + +**URL参数:** + +|参数名|类型|内容|必要性|备注| +|-|-|-|-|-| +|limit|num|结果限制|必要|范围 [1, 50]| +|platform|str|平台标识|不必要|web: web 端| + +**JSON回复:** + +根对象: + +|字段|类型|内容|备注| +|-|-|-|-| +|code|num|返回值|0: 成功
-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' +``` + +
+查看响应示例: + +```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": [] + } + } +} +``` + +
+ ## 获取热搜列表(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: 新
5: 热
6: [雾,咒,小丑(愚人节)] 具体看icon7: 直播中
8: 默认(无标签)
9: 梗
11: 话题
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:新
5:热
6:雾?
8:默认 | +| word_type | num | 条目属性 | 同 web 端 | | icon | str | 图标url | | | hot_id | num | 热词id | 大概是吧? | diff --git a/docs/search/search_request.md b/docs/search/search_request.md index 07a2a75..beab4e2 100644 --- a/docs/search/search_request.md +++ b/docs/search/search_request.md @@ -579,8 +579,6 @@ curl -G 'https://api.bilibili.com/x/web-interface/search/all/v2' \ - - ## 分类搜索(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项 diff --git a/docs/search/suggest.md b/docs/search/suggest.md index 4d9cef9..276b0d0 100644 --- a/docs/search/suggest.md +++ b/docs/search/suggest.md @@ -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`相同
有高亮显示时带有``的xml标签 | -| spid | num | ??? | 作用尚不明确 | - -`page caches`对象: - -| 字段 | 类型 | 内容 | 备注 | -| ---------- | ---- | ---- | ------------ | -| save cache | str | no | 作用尚不明确 | - -`sengine`对象: - -| 字段 | 类型 | 内容 | 备注 | -| ----- | ---- | ---- | ------------ | -| usage | num | 0 | 作用尚不明确 | +| 字段 | 类型 | 内容 | 备注 | +| ----- | ---- | ---------- | -------------------------------------------------- | +| value | str | 关键词内容 | | +| ref | num | 0 | 作用尚不明确 | +| name | str | 显示内容 | 带有 `` 的 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=洛天依' ```
-查看响应示例: +查看响应示例: ```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": "LEI神", - "spid": 5 - }, - { - "value": "LEIGH ELLEXSON", - "ref": 0, - "name": "LEIGH ELLEXSON", - "spid": 5 - }, - { - "value": "LEICA Q2", - "ref": 0, - "name": "LEICA Q2", - "spid": 5 - }, - { - "value": "LEIGHANNE", - "ref": 0, - "name": "LEIGHANNE", - "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": "洛天依", + "spid": 5, + "type": "" + }, + { + "value": "洛天依十二周年", + "term": "洛天依十二周年", + "ref": 0, + "name": "洛天依十二周年", + "spid": 5, + "type": "" + }, + { + "value": "洛天依演唱会", + "term": "洛天依演唱会", + "ref": 0, + "name": "洛天依演唱会", + "spid": 5, + "type": "" + }, + { + "value": "洛天依手办", + "term": "洛天依手办", + "ref": 0, + "name": "洛天依手办", + "spid": 5, + "type": "" + }, + { + "value": "洛天依歌曲", + "term": "洛天依歌曲", + "ref": 0, + "name": "洛天依歌曲", + "spid": 5, + "type": "" + }, + { + "value": "洛天依童话镇", + "term": "洛天依童话镇", + "ref": 0, + "name": "洛天依童话镇", + "spid": 5, + "type": "" + }, + { + "value": "洛天依东京不太热", + "term": "洛天依东京不太热", + "ref": 0, + "name": "洛天依东京不太热", + "spid": 5, + "type": "" + }, + { + "value": "洛天依霜雪千年", + "term": "洛天依霜雪千年", + "ref": 0, + "name": "洛天依霜雪千年", + "spid": 5, + "type": "" + }, + { + "value": "洛天依生日会", + "term": "洛天依生日会", + "ref": 0, + "name": "洛天依生日会", + "spid": 5, + "type": "" + }, + { + "value": "洛天依生日", + "term": "洛天依生日", + "ref": 0, + "name": "洛天依生日", + "spid": 5, + "type": "" + } + ] + }, + "stoken": "4020133863501304726" } ``` diff --git a/docs/user/info.md b/docs/user/info.md index 47234f1..58c4169 100644 --- a/docs/user/info.md +++ b/docs/user/info.md @@ -228,7 +228,7 @@ | id | content | notice_type | 示例用户 | |-----|-------------------------------------------------|-------------|-------------------------------------------------------------------------------------------------| -| 5 | 该用户存在争议行为,已冻结其帐号功能的使用 | 1 | [82385070](https://space.bilibili.com/82385070) | +| 5 | 该用户存在争议行为,已冻结其帐号功能的使用 | 1 || | 8 | 该用户存在较大争议,请谨慎甄别其内容 | 1 | [28062215](https://space.bilibili.com/28062215) | | 11 | 该账号涉及合约争议,暂冻结其账号功能使用。详见公告-> | 1 || | 16 | 该UP主内容存在争议,请注意甄别视频内信息 | 1 | [382534165](https://space.bilibili.com/382534165) | @@ -238,7 +238,7 @@ | 25 | 该用户涉及严重指控,暂冻结其账号功能使用 | 1 | [81447581](https://space.bilibili.com/81447581) | | 31 | 该用户涉及严重指控,暂冻结其账号功能使用 | 1 | [22439273](https://space.bilibili.com/22439273) | | 34 | 该用户涉及严重指控,暂冻结其账号功能使用 | 1 | [1640486775](https://space.bilibili.com/1640486775) | -| 36 | 该账户存在争议,请谨慎甄别 | 1 | [198297](https://space.bilibili.com/198297)
[18149131](https://space.bilibili.com/18149131) | +| 36 | 该账户存在争议,请谨慎甄别 | 1 || `data`中的`live_room`对象: diff --git a/docs/user/medals.md b/docs/user/medals.md new file mode 100644 index 0000000..dedccc5 --- /dev/null +++ b/docs/user/medals.md @@ -0,0 +1,822 @@ +# 所有粉丝勋章 + +## 指定用户的所有粉丝勋章信息 + +> https://api.live.bilibili.com/xlive/web-ucenter/user/MedalWall + +*请求方法: GET* + +认证方式: Cookie (SESSDATA) + + + +**URL参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| --------- | ---- | -------- | ------ | ---- | +| target_id | num | 目标 mid | 必要 | | + +**JSON回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ----------------------------- | +| code | num | 返回值 | 0: 成功
-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: 未直播
1: 正在直播
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: 未佩戴
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' +``` + +
+查看响应示例: + +```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 + } +} +``` + +
diff --git a/docs/user/space.md b/docs/user/space.md index 61f310d..d62edb3 100644 --- a/docs/user/space.md +++ b/docs/user/space.md @@ -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' \ ### 查询用户投稿相簿预览 +
+相簿功能已下线, 以下接口失效, 参见 +#801 + + > https://api.bilibili.com/x/space/album/index *请求方式:GET* @@ -2905,8 +2912,15 @@ curl -G 'https://api.bilibili.com/x/space/album/index' \
+
+ ### 查询用户投稿相簿明细 +
+ +相簿功能已下线, 以下接口失效 + + > 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' \
+ + ## 频道 @@ -3784,280 +3800,6 @@ curl -G 'https://api.bilibili.com/x/space/channel/video/check -## 收藏 - - - -### 查询用户创建的视频收藏夹 - -> https://api.bilibili.com/x/v3/fav/folder/created/list-all - -*请求方式:GET* - -认证方式:Cookie(SESSDATA) - -查看私有收藏夹时需要认证 - -**url参数:** - -| 参数名 | 类型 | 内容 | 必要性 | 备注 | -| ------ | ---- | ----------- | ------ | ---- | -| up_mid | num | 目标用户mid | 必要 | | - -**json回复:** - -根对象: - -| 字段 | 类型 | 内容 | 备注 | -| ------- | ----------------------------- | -------- | --------------------------- | -| code | num | 返回值 | 0:成功
-400:请求错误 | -| message | str | 错误信息 | 默认为0 | -| ttl | num | 1 | | -| data | 隐藏时:null
公开时:obj | 信息本体 | | - -`data`对象: - -| 字段 | 类型 | 内容 | 备注 | -| ----- | --------------------------------------- | -------------- | ---- | -| count | num | 创建的收藏夹数 | | -| list | 无收藏夹时:null
有收藏夹时: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:默认收藏夹
1:其他收藏夹 | -| 1 | 私有收藏夹 | 0:公开
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' -``` - -
-查看响应示例: - -```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 - }] - } -} -``` - -
- -### 查询用户收藏的视频收藏夹 - -> 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:成功
-101:账号未登录
-111:csrf校验失败
40022:签名过长 | -| message | str | 错误信息 | 默认为0 | -| ttl | num | 1 | | -| data | 隐藏时:null
公开时:obj | 信息本体 | | - -`data`对象: - -| 字段 | 类型 | 内容 | 备注 | -| ----- | --------------------------------------- | -------------- | ---- | -| count | num | 创建的收藏夹数 | | -| list | 无收藏夹时:null
有收藏夹时: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二进制处理
详细说明见下表 | -| 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:默认收藏夹
1:其他收藏夹 | 0:公开
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' -``` - -
-查看响应示例: - -```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 - }] - } -} -``` - -
- ## 课程 diff --git a/docs/user/status_number.md b/docs/user/status_number.md index 0f0ca26..e33ac45 100644 --- a/docs/user/status_number.md +++ b/docs/user/status_number.md @@ -145,10 +145,8 @@ curl -G 'https://api.bilibili.com/x/space/upstat' \ -## ~~订阅&投稿状态数(已弃用)~~ +## 用户导航栏状态数 -
-查看折叠内容 > 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)
只能查看自己的 | -| 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' ```
@@ -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 + } } ``` -
## 相簿投稿数 diff --git a/docs/video/collection.md b/docs/video/collection.md index 44e03f0..0e79db7 100644 --- a/docs/video/collection.md +++ b/docs/video/collection.md @@ -2,7 +2,7 @@ 请注意区分 **合集(seasons_archives)** 和 **视频列表(seasons_series)** -合集是后加入的功能, 图标为立体叠放的正方形(.icon-heji), 可以在创作中心管理 +合集是后加入的功能, 图标为立体叠放的正方形(.icon-heji), 可以在创作中心管理, 参见 [合集管理](../creativecenter/season.md) 列表即系列(series)或频道(channel), 图标为平面叠放的矩形且中央有播放按钮标识(.icon-ic_channel1), 在个人空间直接操作 @@ -907,6 +907,8 @@ curl -G "https://api.bilibili.com/x/polymer/web-space/home/seasons_series" \ } ``` + + ## 获取系列和合集视频 > https://api.bilibili.com/x/polymer/web-space/seasons_series_list @@ -1559,3 +1561,426 @@ curl -G "https://api.bilibili.com/x/series/archives" \ } } ``` + + + +## 根据关键词查找视频 + +> https://api.bilibili.com/x/series/recArchivesByKeywords + +*请求方式:GET* + +**URL参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | ---- | -------- | ------ | ---- | +| mid | num | 用户 mid | 必要 | | +| keywords | str | 关键词 | 必要 | 可为空, 即获取所有视频 | +| ps | num | 每页视频数 | 非必要 | 默认为 0, 留空为 20 | +| pn | num | 页码 | 非必要 | 留空为 1 | +| orderby | str | 排序方式 | 非必要 | 最新发布: pubdate(默认)
最多播放: views
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" +``` + +
+查看响应示例: + +```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 + } + } +} +``` + +
+ +## 创建视频列表 + +> 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" +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "series_id": 4269765 + } +} +``` + +
+ +## 删除视频列表 + +> 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" +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": {} +} +``` + +
+ +## 删除视频列表中的稿件 + +> 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" +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": {} +} +``` + +
+ +## 添加稿件至视频列表 + +> 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" +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": {} +} +``` + +
+ +## 编辑视频列表信息 + +> 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" +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": {} +} +``` + +
diff --git a/docs/video/player.md b/docs/video/player.md index fe0ff8c..25ca643 100644 --- a/docs/video/player.md +++ b/docs/video/player.md @@ -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
可为任意非空字符串| +|url|str|日志 URL|非必要|从 [上传接口](../creativecenter/upload.md#上传接口) 得到的 upos 协议 URL| +|task_type|num|任务类型|非必要|300: 播放卡顿
301: 进度条君无法调戏
354: 校园网无法访问
303: 弹幕无法显示
553: 跳过首尾时间有误
304: 出现浮窗广告
305: 无限小电视
302: 音画不同步
306: 黑屏
307: 其他| + +**JSON回复:** + +|字段|类型|内容|备注| +|-|-|-|-| +|code|num|返回值|0: 成功
-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" +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "task_id": 850448532 + } +} +``` + +
diff --git a/docs/video/report.md b/docs/video/report.md index 3f3d75c..3887374 100644 --- a/docs/video/report.md +++ b/docs/video/report.md @@ -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:播放中
1:开始播放
2:暂停
3:继续播放
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' \ ``` + +## 开始观看视频 (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:成功
-400:请求错误| +|message|str|错误信息|默认为 `0`| +|ttl|num|1|| + +**示例:** + +```shell +curl 'https://api.bilibili.com/x/click-interface/click/web/h5' \ +--data-urlencode 'aid=2' \ +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1 +} +``` + +
diff --git a/docs/video/status_number.md b/docs/video/status_number.md index bd669b6..905a6a9 100644 --- a/docs/video/status_number.md +++ b/docs/video/status_number.md @@ -1,6 +1,10 @@ # 视频状态数 ## 视频状态数(仅avid) + +
+该接口已失效 + > https://api.bilibili.com/archive_stat/stat *请求方式:GET* @@ -79,6 +83,8 @@ curl -G 'https://api.bilibili.com/archive_stat/stat' \
+ + ## 视频状态数(bvid/avid) > https://api.bilibili.com/x/web-interface/archive/stat diff --git a/docs/video/videostream_url.md b/docs/video/videostream_url.md index 78e0d4d..b1b1c8a 100644 --- a/docs/video/videostream_url.md +++ b/docs/video/videostream_url.md @@ -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/) | 值 | 含义 | 备注 | | ---- | -------------- | ------------------------------------------------------------ | diff --git a/docs/video_ranking/popular.md b/docs/video_ranking/popular.md index 2706878..112f00a 100644 --- a/docs/video_ranking/popular.md +++ b/docs/video_ranking/popular.md @@ -1,22 +1,18 @@ # 热门视频 -- [获取当前热门视频列表](#获取当前热门视频列表) - ---- - ## 获取当前热门视频列表 > https://api.bilibili.com/x/web-interface/popular _请求方式:GET_ +注: 当携带Cookie时返回的数据的排行是个性化的 + | 参数名 | 类型 | 内容 | 必要性 | 备注 | | ------ | ---- | -------- | ------ | --------- | | pn | num | 页码 | 非必要 | 默认为 1 | | ps | num | 每页项数 | 非必要 | 默认为 20 | ->> 注意:当携带Cookie时返回的数据的排行是个性化的 - **json 回复:** 根对象: @@ -45,8 +41,7 @@ _请求方式:GET_ `data`中的`list`数组中的对象: -基本同[获取视频详细信息(web端)](../video/info.md#获取视频详细信息(web端))中的data对象 - +基本同[获取视频详细信息(web端)](../video/info.md#获取视频详细信息web端)中的data对象 **示例:** @@ -54,12 +49,13 @@ _请求方式:GET_ ```shell curl -G 'https://api.bilibili.com/x/web-interface/popular' \ ---data-urlencode 'ps=20' \ ---data-urlencode 'pn=1' +--data-urlencode 'ps=2' \ +--data-urlencode 'pn=1' \ +-A 'qwq' ```
-查看响应示例: +查看响应示例: ```json { @@ -69,19 +65,90 @@ curl -G 'https://api.bilibili.com/x/web-interface/popular' \ "data": { "list": [ { - "aid": 260200041, + "aid": 1356452135, "videos": 1, - "tid": 212, - "tname": "美食侦探", + "tid": 250, + "tname": "出行", "copyright": 1, - "pic": "http://i1.hdslb.com/bfs/archive/02641bbfadc63f5224834b096cc6c440e14f385f.jpg", - "title": "街头碳水大师:当北方人看到 南方那么多面食…", - "pubdate": 1662198796, - "ctime": 1662198796, - "desc": "想不到这个南方街头,竟把我俩吃到深夜…", + "pic": "http://i2.hdslb.com/bfs/archive/5c3a47b7189caa84965c03b08007635a3c2e0405.jpg", + "title": "《抬您上泰山》", + "pubdate": 1722060600, + "ctime": 1722018603, + "desc": "转型的第一次尝试\n大家觉得还可以的话多多支持\n有什么意见请一定要提!\n谢谢观众老师们!!!", "state": 0, - "duration": 803, - "mission_id": 873400, + "duration": 138, + "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": 1339110285, + "name": "赵峰山西四人行", + "face": "https://i0.hdslb.com/bfs/face/6dfc87876cc8e6a0b81f113a5b3c1b473f48cb7a.jpg" + }, + "stat": { + "aid": 1356452135, + "view": 2465053, + "danmaku": 8467, + "reply": 4426, + "favorite": 46567, + "coin": 168267, + "share": 23180, + "now_rank": 0, + "his_rank": 2, + "like": 403250, + "dislike": 0, + "vt": 0, + "vv": 2465053 + }, + "dynamic": "更新了xdm 转型之作大家多多支持", + "cid": 1628605145, + "dimension": { + "width": 1080, + "height": 1920, + "rotate": 0 + }, + "short_link_v2": "https://b23.tv/BV1tz421i7zb", + "first_frame": "http://i1.hdslb.com/bfs/storyff/n240727sa1qmofe0nqz3he18b11gotmv_firsti.jpg", + "pub_location": "山东", + "cover43": "", + "bvid": "BV1tz421i7zb", + "season_type": 0, + "is_ogv": false, + "ogv_info": null, + "enable_vt": 0, + "ai_rcmd": null, + "rcmd_reason": { + "content": "百万播放", + "corner_mark": 0 + } + }, + { + "aid": 1906472398, + "videos": 1, + "tid": 221, + "tname": "野生动物", + "copyright": 1, + "pic": "http://i0.hdslb.com/bfs/archive/1aecafe48c53f8033bda883aad4e18f6a737e6b3.jpg", + "title": "杭州居然有科普展贩卖保护动物???", + "pubdate": 1722176718, + "ctime": 1722176718, + "desc": "-", + "state": 0, + "duration": 278, + "mission_id": 4016856, "rights": { "bp": 0, "elec": 0, @@ -99,50 +166,1024 @@ curl -G 'https://api.bilibili.com/x/web-interface/popular' \ "pay_free_watch": 0 }, "owner": { - "mid": 99157282, - "name": "盗月社食遇记", - "face": "http://i1.hdslb.com/bfs/face/c7fb5da587c2ec6b56ad47579933fda34c000457.jpg" + "mid": 14309659, + "name": "凛某人", + "face": "https://i1.hdslb.com/bfs/face/53a4bed97980363ed9cf5802d811c41a608f36ee.jpg" }, "stat": { - "aid": 260200041, - "view": 295188, - "danmaku": 3590, - "reply": 1465, - "favorite": 3651, - "coin": 12006, - "share": 2039, + "aid": 1906472398, + "view": 406829, + "danmaku": 786, + "reply": 2203, + "favorite": 5698, + "coin": 20079, + "share": 2052, "now_rank": 0, "his_rank": 0, - "like": 39568, - "dislike": 0 + "like": 81327, + "dislike": 0, + "vt": 0, + "vv": 406829 }, - "dynamic": "这玩意怎么可能不好吃呢?!", - "cid": 822798408, - "dimension": { "width": 1920, "height": 1080, "rotate": 0 }, - "short_link": "https://b23.tv/BV1fe411g7F5", - "short_link_v2": "https://b23.tv/BV1fe411g7F5", - "first_frame": "http://i1.hdslb.com/bfs/storyff/n220903a22ujdxvylswyat3oqlkj8wax_firsti.jpg", - "pub_location": "上海", - "bvid": "BV1fe411g7F5", + "dynamic": "", + "cid": 1630483865, + "dimension": { + "width": 1080, + "height": 1920, + "rotate": 0 + }, + "short_link_v2": "https://b23.tv/BV1MU411S7Cc", + "up_from_v2": 9, + "first_frame": "http://i0.hdslb.com/bfs/storyff/n240728sa1eky6tk8i78rs1xtdt7pgyd_firsti.jpg", + "pub_location": "浙江", + "cover43": "", + "bvid": "BV1MU411S7Cc", "season_type": 0, "is_ogv": false, "ogv_info": null, - "rcmd_reason": { "content": "很多人点赞", "corner_mark": 0 } + "enable_vt": 0, + "ai_rcmd": null, + "rcmd_reason": { + "content": "6万点赞", + "corner_mark": 0 + } + } + ], + "no_more": false + } +} +``` + +
+ +## 每周必看全部列表 + +> https://api.bilibili.com/x/web-interface/popular/series/list + +*请求方式: GET* + +**JSON回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | --------- | +| code | num | 返回值 | 0: 成功
-352: 请求被风控 | +| message | str | 错误信息 | 默认为 0 | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ----- | ------------ | ---- | +| list | array | 全部信息列表 | 套了个娃 | + +`data`对象中`list`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | ------------ | ---- | +| 0 | obj | 第 n+1 期 | | +| 1 | obj | 第 n 期 | | +| 2 | obj | 第 n-1 期 | | +| …… | obj | …… | …… | +| n | obj | 第 1 期 | | + +`list`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| -------- | ---- | ------------ | ---- | +| number | num | 期数 | | +| subject | str | 主题 | | +| status | num | 状态 | 2: 已结束 | +| name | str | 名称 | yyyy第n期 MM.dd - MM.dd | + +**示例:** + +```shell +curl -G 'https://api.bilibili.com/x/web-interface/popular/series/list' \ +-A '' +``` + +
+查看响应示例: + +```jsonc +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "list": [ + { + "number": 279, + "subject": "身残志坚钻石大盗", + "status": 2, + "name": "2024第279期 07.19 - 07.25" }, { - "aid": 472731550, + "number": 278, + "subject": "中国诸神最强简史", + "status": 2, + "name": "2024第278期 07.12 - 07.18" + }, + { + "number": 277, + "subject": "不用脚的射门大赛", + "status": 2, + "name": "2024第277期 07.05 - 07.11" + }, + { + "number": 276, + "subject": "火柴人VS几何", + "status": 2, + "name": "2024第276期 06.28 - 07.04" + }, + { + "number": 275, + "subject": "重磅自制三体动画", + "status": 2, + "name": "2024第275期 06.21 - 06.27" + }, + /// ... + { + "number": 42, + "subject": "【英雄联盟】——战士", + "status": 2, + "name": "2020第42期 01.03 - 01.09" + }, + { + "number": 41, + "subject": "2019年度鬼畜回顾", + "status": 2, + "name": "2019第41期 12.27 - 01.02" + }, + // ... + { + "number": 2, + "subject": "噬元兽大战哥斯拉", + "status": 2, + "name": "2019第2期 03.29 - 04.04" + }, + { + "number": 1, + "subject": "神仙爱情", + "status": 2, + "name": "2019第1期 03.22 - 03.28" + } + ] + } +} +``` + +
+ +## 每周必看选期详细信息 + +> https://api.bilibili.com/x/web-interface/popular/series/one + +*请求方式: GET* + +**URL参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | ---- | -------- | ------ | ---- | +| number | num | 期数 | 必要 | 默认为 1 | + +**JSON回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | --------- | +| code | num | 返回值 | 0: 成功
-352: 请求被风控
-404: 啥都木有 | +| message | str | 错误信息 | 默认为 0 | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| -------- | ---- | ------------ | ---- | +| config | obj | 选期信息 | | +| reminder | str | 提醒 | | +| list | array | 选期视频列表 | | + +`data`对象中的`config`对象: + +| 字段 | 类型 | 内容 | 备注 | +| -------- | ---- | ------------ | ---- | +| id | num | 选期ID | | +| type | str | 选期类型 | | +| number | num | 期数 | | +| subject | str | 主题 | | +| stime | num | 开始时间 | | +| etime | num | 结束时间 | | +| status | num | 状态 | 2: 已结束 | +| name | str | 名称 | yyyy第n期 MM.dd - MM.dd | +| label | str | 标题 | | +| hint | str | 提示 | | +| color | num | 颜色? | | +| cover | str | 封面 | | +| share_title | str | 分享标题 | | +| share_subtitle | str | 分享副标题 | | +| media_id | num | 媒体ID? | | + +`data`对象中的`list`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | ------------ | ---- | +| 0 | obj | 第 1 个视频 | | +| 1 | obj | 第 2 个视频 | | +| …… | obj | …… | …… | +| n | obj | 第 n 个视频 | | + +`list`数组中的对象: + +基本同[获取视频详细信息(web端)](../video/info.md#获取视频详细信息web端)中的data对象 + +**示例:** + +查看小破站第 3 期每周必看详细信息 + +```shell +curl -G 'https://api.bilibili.com/x/web-interface/popular/series/one' \ +--data-urlencode 'number=3' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "config": { + "id": 3, + "type": "weekly_selected", + "number": 3, + "subject": "人类首张黑洞照片", + "stime": 1554393600, + "etime": 1554998399, + "status": 2, + "name": "2019第3期 04.05 - 04.11", + "label": "第3期(0412更新)", + "hint": "本周热词:", + "color": 2, + "cover": "http://i0.hdslb.com/bfs/archive/c10fe5913a1e503bcd68db69158605df2bf54424.jpg", + "share_title": "人类首张黑洞照片 | B站每周必看2019年第3期", + "share_subtitle": "和B站小伙伴一起见证历史!黑洞到底长啥样?", + "media_id": 448239988 + }, + "reminder": "每周五晚18:00更新", + "list": [ + { + "aid": 48918074, + "videos": 1, + "tid": 201, + "tname": "科学科普", + "copyright": 1, + "pic": "http://i0.hdslb.com/bfs/archive/a2cbee9c1e2e854e161f1bddc04d657baf6e95f5.jpg", + "title": "人类第一张黑洞照片,来了!", + "pubdate": 1554904794, + "ctime": 1554904794, + "desc": "联合出品:中国科学技术协会、中国科学院计算机网络信息中心\n制作:中国科普博览\n科学审核:中国科学院国家天文台 苟利军\n实习生沈慧慧、李哲欣对本视频亦有贡献", + "state": 0, + "duration": 89, + "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": 407045223, + "name": "二次元的中科院物理所", + "face": "https://i0.hdslb.com/bfs/face/978ea07f22e54c2e62f01def8e815b59adacc5d0.jpg" + }, + "stat": { + "aid": 48918074, + "view": 1594796, + "danmaku": 23255, + "reply": 16022, + "favorite": 23084, + "coin": 26411, + "share": 10095, + "now_rank": 0, + "his_rank": 7, + "like": 62712, + "dislike": 0, + "vt": 0, + "vv": 1594796 + }, + "dynamic": "#趣味科普人文##科学##中科院#", + "cid": 85668198, + "dimension": { + "width": 1280, + "height": 720, + "rotate": 0 + }, + "short_link_v2": "https://b23.tv/BV1Nb411M7r8", + "cover43": "", + "bvid": "BV1Nb411M7r8", + "season_type": 0, + "is_ogv": false, + "ogv_info": null, + "enable_vt": 0, + "ai_rcmd": null, + "rcmd_reason": "和B站小伙伴一起见证历史!黑洞到底长啥样?错过直播的你还不快点进来。" + }, + { + "aid": 48678913, + "videos": 1, + "tid": 161, + "tname": "手工", + "copyright": 1, + "pic": "http://i0.hdslb.com/bfs/archive/8cda8b937795081c5620b95a06670fd15ed5f768.jpg", + "title": "破釜沉舟跑步机", + "pubdate": 1554694435, + "ctime": 1554694435, + "desc": "-", + "state": 0, + "duration": 138, + "rights": { + "bp": 0, + "elec": 0, + "download": 0, + "movie": 0, + "pay": 0, + "hd5": 1, + "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": 280793434, + "name": "手工耿", + "face": "http://i1.hdslb.com/bfs/face/b8a75ae7d2a0e2af1d36ca9f1084d850eebb28e3.jpg" + }, + "stat": { + "aid": 48678913, + "view": 12760040, + "danmaku": 20334, + "reply": 14432, + "favorite": 58473, + "coin": 179999, + "share": 146849, + "now_rank": 0, + "his_rank": 2, + "like": 436988, + "dislike": 0, + "vt": 0, + "vv": 12760040 + }, + "dynamic": "#手工##创意##自制#", + "cid": 85243779, + "dimension": { + "width": 1080, + "height": 1920, + "rotate": 0 + }, + "short_link_v2": "https://b23.tv/BV1eb411u7Pz", + "up_from_v2": 9, + "cover43": "", + "bvid": "BV1eb411u7Pz", + "season_type": 0, + "is_ogv": false, + "ogv_info": null, + "enable_vt": 0, + "ai_rcmd": null, + "rcmd_reason": "脑洞发明家手工耿最新力作!如果你恨一个人,就送他这台破釜沉舟跑步机吧。" + }, + { + "aid": 48316018, + "videos": 1, + "tid": 22, + "tname": "鬼畜调教", + "copyright": 1, + "pic": "http://i1.hdslb.com/bfs/archive/90a5f41351f7d8622f5c5e0aa163933e05830bd3.jpg", + "title": "【名师rap】游戏不打不成才", + "pubdate": 1554431709, + "ctime": 1554415633, + "desc": "欢迎收看由各位名师带来的精彩育儿饶舌讲座,教育孩子最科学的方法就是督促孩子打游戏,你学到了吗?\n如果想学习更多相关课程,可以收看名师讲堂·下一讲:如何让孩子爱上♂学习?(av2274779)", + "state": 0, + "duration": 156, + "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": 375375, + "name": "伊丽莎白鼠", + "face": "https://i0.hdslb.com/bfs/face/6c36ec15f6d7ddd9bdb558511521bd0256779e1c.jpg" + }, + "stat": { + "aid": 48316018, + "view": 8560735, + "danmaku": 25131, + "reply": 24307, + "favorite": 206726, + "coin": 382539, + "share": 88084, + "now_rank": 0, + "his_rank": 2, + "like": 476744, + "dislike": 0, + "vt": 0, + "vv": 8560735 + }, + "dynamic": "没想到吧,时隔4年的名师rap居然有续作!快点赞投币收藏,素质3连是我更新的最大动力!", + "cid": 84631475, + "dimension": { + "width": 1280, + "height": 720, + "rotate": 0 + }, + "short_link_v2": "https://b23.tv/BV1Yb411g7Mu", + "cover43": "", + "bvid": "BV1Yb411g7Mu", + "season_type": 0, + "is_ogv": false, + "ogv_info": null, + "enable_vt": 0, + "ai_rcmd": null, + "rcmd_reason": "爷爷,你关注的鬼畜UP主终终终终于更新啦!还是熟悉的全明星阵容,还是曾经的味道。" + }, + { + "aid": 48823532, + "videos": 1, + "tid": 21, + "tname": "日常", + "copyright": 1, + "pic": "http://i1.hdslb.com/bfs/archive/7cb8e384d34946564453a22131c50aa4eb308dfc.jpg", + "title": "随机理发!太丢人了!!早知道这样我还不如女装!", + "pubdate": 1554888608, + "ctime": 1554817240, + "desc": "太羞耻了!不能我一个受罪!收藏过2W就抽一个员工理跟我一样的发型!\n发现生活,改变自己\n体验世界的点点滴滴!\nav48289549 和UP主以物换物,最后竟然换到了中国boy的...!\nav48120567 赤身拳击!干翻拳击教练需要几拳?\nav47677645 精子捐献是怎样的体验?\nav47479428 名媛养成指南!\nav47006491 和“少爷”up主互换身份\nav46265017 200万粉UP主在上海开公司到底要花多少钱?\nav45061698 第一次去夜店是怎样的体验?", + "state": 0, + "duration": 347, + "mission_id": 11230, + "rights": { + "bp": 0, + "elec": 0, + "download": 0, + "movie": 0, + "pay": 0, + "hd5": 1, + "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": 808171, + "name": "吃素的狮子", + "face": "https://i1.hdslb.com/bfs/face/dd773c9572494338ada15aa10262a510f161baf1.jpg" + }, + "stat": { + "aid": 48823532, + "view": 1523181, + "danmaku": 13043, + "reply": 4401, + "favorite": 37835, + "coin": 186720, + "share": 5163, + "now_rank": 0, + "his_rank": 3, + "like": 161974, + "dislike": 0, + "vt": 0, + "vv": 1523181 + }, + "dynamic": "太羞耻了!不能我一个受罪!收藏过2W就抽一个员工理跟我一样的发型!", + "cid": 85496423, + "dimension": { + "width": 1920, + "height": 1080, + "rotate": 0 + }, + "short_link_v2": "https://b23.tv/BV1ib411T7bt", + "cover43": "", + "bvid": "BV1ib411T7bt", + "season_type": 0, + "is_ogv": false, + "ogv_info": null, + "enable_vt": 0, + "ai_rcmd": null, + "rcmd_reason": "男人就要对自己狠一点,狮子的这个新发型说实话还有点小帅呢!" + }, + { + "aid": 48880868, + "videos": 1, + "tid": 76, + "tname": "美食制作", + "copyright": 1, + "pic": "http://i2.hdslb.com/bfs/archive/8fd09f285109fc105a3427745329b0bdb055cc6d.jpg", + "title": "这个水果长得真漂亮,不如做成【水果奶酪三明治】吧~嘻嘻", + "pubdate": 1554897659, + "ctime": 1554880873, + "desc": "记得挑松软的吐司面包,吃起来是有点像甜点的口感!\nBGM:野餐面包 - Happy by Mikki Aglaganov", + "state": 0, + "duration": 192, + "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": 17409016, + "name": "爱做饭的芋头SAMA", + "face": "http://i1.hdslb.com/bfs/face/2182d21ff5ae520f392f55b59022bc17f43b4943.jpg" + }, + "stat": { + "aid": 48880868, + "view": 2231330, + "danmaku": 3383, + "reply": 3870, + "favorite": 52784, + "coin": 102138, + "share": 9293, + "now_rank": 0, + "his_rank": 8, + "like": 147138, + "dislike": 0, + "vt": 0, + "vv": 2231330 + }, + "dynamic": "还有什么能比美丽的三明治更让人心情大好吗?emm…吃掉它!", + "cid": 85602013, + "dimension": { + "width": 1920, + "height": 1080, + "rotate": 0 + }, + "short_link_v2": "https://b23.tv/BV19b411T7a7", + "cover43": "", + "bvid": "BV19b411T7a7", + "season_type": 0, + "is_ogv": false, + "ogv_info": null, + "enable_vt": 0, + "ai_rcmd": null, + "rcmd_reason": "这世上还有什么比新鲜的水果三明治更美好的吗?那就是一颗善良的心。" + }, + { + "aid": 48220814, + "videos": 1, + "tid": 183, + "tname": "影视剪辑", + "copyright": 1, + "pic": "http://i0.hdslb.com/bfs/archive/d4fc8471e6fe3bcdf1de4df43fabffaad74646b4.jpg", + "title": "【七代小丑/踩点/混剪/高燃】前方高能!欢乐与惊悚的踩点视觉盛宴!希斯莱杰诞辰40周年纪念。", + "pubdate": 1554368448, + "ctime": 1554341020, + "desc": "BGM:《Lock Me Up》 - The Cab\n 《Holocene》 - Bon Iver \n推荐耳机食用,从筹备到剪辑完成断断续续花了一个月,希望我的用心剪辑可以被更多的人看到。\n一直都想做个DC小丑群像剪辑,把所有我喜欢的银幕小丑都剪到一起,\n届时烦请各位小伙伴理性发言。不要在评论区和弹幕引战、人身攻击和散布演员谣言\n谢谢配合!\n要是喜欢这期的话,求点赞、收藏和硬币。\n做视频实属不易,小伙伴们的支持与鼓励是我继续做视频的动力!", + "state": 0, + "duration": 343, + "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": 27259842, + "name": "迪亚瓦尔Diaval", + "face": "https://i0.hdslb.com/bfs/face/ade2291e23d48050c1617dbaf3583b98d46be0dc.jpg" + }, + "stat": { + "aid": 48220814, + "view": 23693530, + "danmaku": 45208, + "reply": 10213, + "favorite": 833645, + "coin": 789760, + "share": 136694, + "now_rank": 0, + "his_rank": 3, + "like": 1085389, + "dislike": 0, + "vt": 0, + "vv": 23693530 + }, + "dynamic": "#希斯莱杰##自杀小队##小丑#", + "cid": 517786039, + "dimension": { + "width": 3840, + "height": 2160, + "rotate": 0 + }, + "season_id": 3223, + "short_link_v2": "https://b23.tv/BV1Jb411W7dH", + "first_frame": "http://i1.hdslb.com/bfs/storyff/n220227qn1sayugogts51k3m0m2cihw0_firsti.jpg", + "cover43": "", + "bvid": "BV1Jb411W7dH", + "season_type": 0, + "is_ogv": false, + "ogv_info": null, + "enable_vt": 0, + "ai_rcmd": null, + "rcmd_reason": "感谢希斯·莱杰为我们带来如此经典的银幕形象,愿你安好。" + }, + { + "aid": 48956942, "videos": 1, "tid": 17, "tname": "单机游戏", "copyright": 1, - "pic": "http://i1.hdslb.com/bfs/archive/7ebaad047fb96e5d14b8ebb2eabf4b39a4ef10a6.jpg", - "title": "卸载!!!!!", - "pubdate": 1662177000, - "ctime": 1662093287, - "desc": "再见!!!!!", + "pic": "http://i1.hdslb.com/bfs/archive/564e938ae040831fa1620981b2e6e33a51b72ffd.jpg", + "title": "【敖厂长】沙雕游戏主角死法超级华丽", + "pubdate": 1554957465, + "ctime": 1554957466, + "desc": "500万粉丝达成 收藏充电硬币庆祝一波!", "state": 0, - "duration": 1090, - "mission_id": 899516, + "duration": 785, + "rights": { + "bp": 0, + "elec": 0, + "download": 0, + "movie": 0, + "pay": 0, + "hd5": 1, + "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": 122879, + "name": "敖厂长", + "face": "https://i2.hdslb.com/bfs/face/71d85b84b0b2aa59009cd6af09b53aac309c3461.jpg" + }, + "stat": { + "aid": 48956942, + "view": 5272672, + "danmaku": 28520, + "reply": 9614, + "favorite": 51080, + "coin": 234581, + "share": 7342, + "now_rank": 0, + "his_rank": 1, + "like": 238148, + "dislike": 0, + "vt": 0, + "vv": 5272672 + }, + "dynamic": "#敖厂长#新视频庆祝500万粉丝达成!沙雕游戏主角死法超级华丽!", + "cid": 85738601, + "dimension": { + "width": 1920, + "height": 1080, + "rotate": 0 + }, + "short_link_v2": "https://b23.tv/BV1bb411M7G2", + "cover43": "", + "bvid": "BV1bb411M7G2", + "season_type": 0, + "is_ogv": false, + "ogv_info": null, + "enable_vt": 0, + "ai_rcmd": null, + "rcmd_reason": "恶意满满的摩托赛车游戏,制作组的重点完全放在了花式死法上啊喂→_→" + }, + { + "aid": 48949609, + "videos": 1, + "tid": 138, + "tname": "搞笑", + "copyright": 1, + "pic": "http://i1.hdslb.com/bfs/archive/970b7377cddc309b1793c0d7daace2a2a86e42a3.jpg", + "title": "探秘印度医药,真的有牛尿做的药吗?", + "pubdate": 1554951398, + "ctime": 1554951398, + "desc": "印度真有牛尿做的药吗?喝一口是什么味道?", + "state": 0, + "duration": 375, + "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": 176037767, + "name": "我是郭杰瑞", + "face": "http://i2.hdslb.com/bfs/face/6182455e4d61159121c223ddc7a3a381f2d4d056.jpg" + }, + "stat": { + "aid": 48949609, + "view": 1517839, + "danmaku": 13115, + "reply": 3538, + "favorite": 3016, + "coin": 16410, + "share": 2337, + "now_rank": 0, + "his_rank": 16, + "like": 46687, + "dislike": 0, + "vt": 0, + "vv": 1517839 + }, + "dynamic": "印度有牛尿做的药吗?我不是药神!", + "cid": 85723703, + "dimension": { + "width": 1920, + "height": 1080, + "rotate": 0 + }, + "short_link_v2": "https://b23.tv/BV1Lb411M7B9", + "cover43": "", + "bvid": "BV1Lb411M7B9", + "season_type": 0, + "is_ogv": false, + "ogv_info": null, + "enable_vt": 0, + "ai_rcmd": null, + "rcmd_reason": "继续跟随郭杰瑞走进印度。什么?你居然敢把印度神药当水喝w(゚Д゚)w" + }, + { + "aid": 48227749, + "videos": 1, + "tid": 222, + "tname": "小宠异宠", + "copyright": 1, + "pic": "http://i2.hdslb.com/bfs/archive/f42431037088b5ddceae79ca62df24cc78575eff.jpg", + "title": "华农兄弟:怀孕好几个月的香猪终于生了,一下生了9只小香猪", + "pubdate": 1554375629, + "ctime": 1554375634, + "desc": "华农兄弟:怀孕好几个月的香猪终于生了,一下生了9只小香猪", + "state": 0, + "duration": 151, + "rights": { + "bp": 0, + "elec": 0, + "download": 0, + "movie": 0, + "pay": 0, + "hd5": 1, + "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": 250858633, + "name": "华农兄弟", + "face": "https://i1.hdslb.com/bfs/face/bac504655c69ab937b0be4557e27535f794b0c66.jpg" + }, + "stat": { + "aid": 48227749, + "view": 1743011, + "danmaku": 6544, + "reply": 3757, + "favorite": 2755, + "coin": 17290, + "share": 2027, + "now_rank": 0, + "his_rank": 10, + "like": 57675, + "dislike": 0, + "vt": 0, + "vv": 1743011 + }, + "dynamic": "华农兄弟:怀孕好几个月的香猪终于生了,一下生了9只小香猪", + "cid": 84476924, + "dimension": { + "width": 3840, + "height": 2160, + "rotate": 0 + }, + "short_link_v2": "https://b23.tv/BV1pb411W7iY", + "pub_location": "江西", + "cover43": "", + "bvid": "BV1pb411W7iY", + "season_type": 0, + "is_ogv": false, + "ogv_info": null, + "enable_vt": 0, + "ai_rcmd": null, + "rcmd_reason": "刚出生小香猪超可爱啊,好想抱一只回家,再过几个月就可以....( ‵▽′)ψ" + }, + { + "aid": 48882824, + "videos": 1, + "tid": 182, + "tname": "影视杂谈", + "copyright": 1, + "pic": "http://i0.hdslb.com/bfs/archive/51e06a15b1a02478d7106931cd8bddda8c2c67ab.jpg", + "title": "电影最TOP 123: 难以超越的奇幻史诗巨制《指环王》三部曲", + "pubdate": 1554899413, + "ctime": 1554899415, + "desc": "本期咱来聊聊彼得•杰克逊执导的魔幻史诗巨著《指环王》三部曲。", + "state": 0, + "duration": 4632, + "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": 17819768, + "name": "电影最TOP", + "face": "http://i2.hdslb.com/bfs/face/6b2ade215ea603b495648875c925172a863d16d4.jpg" + }, + "stat": { + "aid": 48882824, + "view": 3771761, + "danmaku": 56684, + "reply": 6959, + "favorite": 73050, + "coin": 202173, + "share": 12895, + "now_rank": 0, + "his_rank": 2, + "like": 164801, + "dislike": 0, + "vt": 0, + "vv": 3771761 + }, + "dynamic": "#魔戒##指环王##史诗#", + "cid": 85605834, + "dimension": { + "width": 1280, + "height": 720, + "rotate": 0 + }, + "short_link_v2": "https://b23.tv/BV1db411T7He", + "cover43": "", + "bvid": "BV1db411T7He", + "season_type": 0, + "is_ogv": false, + "ogv_info": null, + "enable_vt": 0, + "ai_rcmd": null, + "rcmd_reason": "一小时重温影史经典《指环王》系列。不论再看多少遍,感动与震撼依旧。" + }, + { + "aid": 48473798, + "videos": 1, + "tid": 21, + "tname": "日常", + "copyright": 1, + "pic": "http://i1.hdslb.com/bfs/archive/c0eff150f8ba32fefdb14cf8de4e39a0a4982640.jpg", + "title": "和日本妹子结婚要花多少钱?日本的收入情况up听到后惊呆了。。。", + "pubdate": 1554536915, + "ctime": 1554536915, + "desc": "记得关注我豆奶子呀~谢谢您嘞!\n→av40409086 日本妹子为什么这么瘦\n→av42806782 日本妹子为啥冬天光腿\n→av43240232 日本妹子吃超难吃中国菜的反应\n→av40892710 日本妹子为啥牙齿不太好看\n→av42064376 日本妹子为啥胸大\n→av41491192 片尾曲 日语版念诗之王\n有什么疑问请弹幕留言!豆奶为您倾情解惑!", + "state": 0, + "duration": 350, + "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": 6574487, + "name": "纳豆奶奶", + "face": "https://i2.hdslb.com/bfs/face/0a8638b34173708fcf979bd1166fbb7fdb1110a4.jpg" + }, + "stat": { + "aid": 48473798, + "view": 4564805, + "danmaku": 21747, + "reply": 9727, + "favorite": 44873, + "coin": 175160, + "share": 7102, + "now_rank": 0, + "his_rank": 6, + "like": 256532, + "dislike": 0, + "vt": 0, + "vv": 4564805 + }, + "dynamic": "#日本文化##科普##吐槽#身边的男性友人看完这期表示非常喜欢,女性朋友更是爱不释手!结婚?日本收入?这些你最关心的问题都在这里!", + "cid": 84891041, + "dimension": { + "width": 1920, + "height": 1080, + "rotate": 0 + }, + "short_link_v2": "https://b23.tv/BV1pb411373L", + "cover43": "", + "bvid": "BV1pb411373L", + "season_type": 0, + "is_ogv": false, + "ogv_info": null, + "enable_vt": 0, + "ai_rcmd": null, + "rcmd_reason": "日本妹子坦露择偶标准,和你想象的一样吗?不过这和我又有什么关系呢_(:з」∠)_" + }, + { + "aid": 48138432, + "videos": 1, + "tid": 17, + "tname": "单机游戏", + "copyright": 1, + "pic": "http://i2.hdslb.com/bfs/archive/89baecb3461b6bfaa4a969c812282161a27ebc0d.jpg", + "title": "【老番茄】史上最骚杀手(第三集)", + "pubdate": 1554436829, + "ctime": 1554258253, + "desc": "第一集:av45629276 ; 第二集:av46295706\n如果收藏到4w会继续做下去的!\n这次请了好朋友Chimera君配音!没看过他视频的一定要去看一看!超级厉害!我特别崇拜的UP主!\nP.S.视频中对原剧情进行了部分改编。如:给女公关写情书的并非里科·戴尔加多,而是他的弟弟赫克托·戴尔加多。为了简化剧情,在视频中说成是里科所写。", + "state": 0, + "duration": 624, + "mission_id": 11225, "rights": { "bp": 0, "elec": 0, @@ -165,846 +1206,58 @@ curl -G 'https://api.bilibili.com/x/web-interface/popular' \ "face": "http://i0.hdslb.com/bfs/face/bc5ca101313d4db223c395d64779e76eb3482d60.jpg" }, "stat": { - "aid": 472731550, - "view": 997762, - "danmaku": 19350, - "reply": 4339, - "favorite": 44208, - "coin": 113024, - "share": 2172, - "now_rank": 0, - "his_rank": 7, - "like": 205331, - "dislike": 0 - }, - "dynamic": "", - "cid": 821658341, - "dimension": { "width": 1920, "height": 1080, "rotate": 0 }, - "short_link": "https://b23.tv/BV1AK411f7KR", - "short_link_v2": "https://b23.tv/BV1AK411f7KR", - "first_frame": "http://i0.hdslb.com/bfs/storyff/n220902a23i8b6s8004xd62mg3z2ol72_firsti.jpg", - "pub_location": "上海", - "bvid": "BV1AK411f7KR", - "season_type": 0, - "is_ogv": false, - "ogv_info": null, - "rcmd_reason": { "content": "20万点赞", "corner_mark": 0 } - }, - { - "aid": 730159604, - "videos": 1, - "tid": 173, - "tname": "桌游棋牌", - "copyright": 1, - "pic": "http://i1.hdslb.com/bfs/archive/524de9769a0c06d8300950e24b52dbdd7a192613.jpg", - "title": "老板?架空啦!", - "pubdate": 1662188531, - "ctime": 1662184216, - "desc": "希望你喜欢这次的视频,这次玩的是《我是大老板》。\n游戏的规则不算简单:\n轮到你时,你可以选择发起生意;\n当然你也可以选择补充手牌。\n做成生意会需要一些字母,相当于需要有人投资,ABCDEF就是各位投资人;\n身份类的字母是永久的,除非别人用招募牌给挖走;\n手牌中的字母是一次性的。\n为了成功完成生意,你作为老板需要和你的合伙人商量好价钱,完成后按约定分给合伙人。\n当然,失败的生意是挣不到钱的;\n并且,你作为老板可以 决定是否做这单生意。\n数个回合后,摇骰子决定游戏是否结束;\n游戏结束时,钱最多的人就赢了。\n注意", - "state": 0, - "duration": 941, - "mission_id": 917790, - "rights": { - "bp": 0, - "elec": 0, - "download": 0, - "movie": 0, - "pay": 0, - "hd5": 0, - "no_reprint": 1, - "autoplay": 1, - "ugc_pay": 0, - "is_cooperation": 1, - "ugc_pay_preview": 0, - "no_background": 0, - "arc_pay": 0, - "pay_free_watch": 0 - }, - "owner": { - "mid": 3913194, - "name": "高斯Goh", - "face": "http://i0.hdslb.com/bfs/face/d4c65b5c6be3f9d845c15401173f98b130728851.jpg" - }, - "stat": { - "aid": 730159604, - "view": 603101, - "danmaku": 6535, - "reply": 3197, - "favorite": 13123, - "coin": 22361, - "share": 1587, - "now_rank": 0, - "his_rank": 68, - "like": 87913, - "dislike": 0 - }, - "dynamic": "", - "cid": 822547268, - "dimension": { "width": 1920, "height": 1080, "rotate": 0 }, - "short_link": "https://b23.tv/BV1BD4y1B7ji", - "short_link_v2": "https://b23.tv/BV1BD4y1B7ji", - "first_frame": "http://i2.hdslb.com/bfs/storyff/n220903a21dbowrqfua2zw3hxxeffqtt_firsti.jpg", - "pub_location": "上海", - "bvid": "BV1BD4y1B7ji", - "season_type": 0, - "is_ogv": false, - "ogv_info": null, - "rcmd_reason": { "content": "8万点赞", "corner_mark": 1 } - }, - { - "aid": 942708210, - "videos": 1, - "tid": 85, - "tname": "小剧 场", - "copyright": 1, - "pic": "http://i1.hdslb.com/bfs/archive/fc453b388f94300e69134a67f2f02d3136462c60.jpg", - "title": "【火焰醉枪】卧槽!这火焰枪竟然不是特效,30个小时匠心制作……", - "pubdate": 1662087586, - "ctime": 1662087587, - "desc": "上期做了火焰醉剑后,大家都说想看火焰醉枪,这次熬了两个大夜拍完啦,制作不易,希望大家多多支持啊!", - "state": 0, - "duration": 156, - "mission_id": 926961, - "rights": { - "bp": 0, - "elec": 0, - "download": 0, - "movie": 0, - "pay": 0, - "hd5": 1, - "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": 432083444, - "name": "俩大叔的功夫梦", - "face": "http://i2.hdslb.com/bfs/face/40bfa8df7854402bdecd21a9c7a67bc1bb891637.jpg" - }, - "stat": { - "aid": 942708210, - "view": 1583053, - "danmaku": 2300, - "reply": 1596, - "favorite": 21206, - "coin": 48190, - "share": 3088, - "now_rank": 0, - "his_rank": 13, - "like": 219810, - "dislike": 0 - }, - "dynamic": "【火焰醉枪】卧槽!这火焰枪竟然不是特效,30个小时匠心制作……", - "cid": 821595336, - "dimension": { "width": 3840, "height": 2160, "rotate": 0 }, - "short_link": "https://b23.tv/BV1yW4y1q78t", - "short_link_v2": "https://b23.tv/BV1yW4y1q78t", - "first_frame": "http://i2.hdslb.com/bfs/storyff/n220902a2uf2p36okkkd5tj0koh3jk17_firsti.jpg", - "pub_location": "四川", - "bvid": "BV1yW4y1q78t", - "season_type": 0, - "is_ogv": false, - "ogv_info": null, - "rcmd_reason": { "content": "百万播放", "corner_mark": 1 } - }, - { - "aid": 985156462, - "videos": 1, - "tid": 137, - "tname": "明星综合", - "copyright": 1, - "pic": "http://i0.hdslb.com/bfs/archive/ee633bc1f33e88a08240cb5df19a768c007871fd.jpg", - "title": "【时代少年团】《哪吒》练习室版", - "pubdate": 1662199200, - "ctime": 1662133574, - "desc": "", - "state": 0, - "duration": 254, - "rights": { - "bp": 0, - "elec": 0, - "download": 0, - "movie": 0, - "pay": 0, - "hd5": 1, - "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": 3670216, - "name": "TF家族", - "face": "http://i1.hdslb.com/bfs/face/1c74336b9060d40d0ccf5e8bce7c0de34526b1e3.jpg" - }, - "stat": { - "aid": 985156462, - "view": 180284, - "danmaku": 20822, - "reply": 6925, - "favorite": 4740, - "coin": 6962, - "share": 1052, - "now_rank": 0, - "his_rank": 0, - "like": 28324, - "dislike": 0 - }, - "dynamic": "", - "cid": 822227418, - "dimension": { "width": 1920, "height": 1080, "rotate": 0 }, - "short_link": "https://b23.tv/BV1yt4y1j7RW", - "short_link_v2": "https://b23.tv/BV1yt4y1j7RW", - "first_frame": "http://i2.hdslb.com/bfs/storyff/n220902a23cnqomtt52rac3gi8wbif37_firsti.jpg", - "pub_location": "北京", - "bvid": "BV1yt4y1j7RW", - "season_type": 0, - "is_ogv": false, - "ogv_info": null, - "rcmd_reason": { "content": "明星综合·人气飙升", "corner_mark": 1 } - }, - { - "aid": 857527108, - "videos": 1, - "tid": 230, - "tname": "软件应用", - "copyright": 1, - "pic": "http://i0.hdslb.com/bfs/archive/9f495c058d7825b8d45f2701b4271affbf17442b.jpg", - "title": "【苏星河】我的这个微信,你们没人用过", - "pubdate": 1661953525, - "ctime": 1661952710, - "desc": "结尾有惊喜!", - "state": 0, - "duration": 654, - "mission_id": 668476, - "rights": { - "bp": 0, - "elec": 0, - "download": 0, - "movie": 0, - "pay": 0, - "hd5": 1, - "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": 598464467, - "name": "苏星河牛通", - "face": "http://i2.hdslb.com/bfs/face/836a17376b6d1c21200310137256c91731045d1b.jpg" - }, - "stat": { - "aid": 857527108, - "view": 6031262, - "danmaku": 10807, - "reply": 7949, - "favorite": 252749, - "coin": 111985, - "share": 20700, + "aid": 48138432, + "view": 19624690, + "danmaku": 58471, + "reply": 8593, + "favorite": 453185, + "coin": 1213654, + "share": 26329, "now_rank": 0, "his_rank": 1, - "like": 413858, - "dislike": 0 + "like": 1232305, + "dislike": 0, + "vt": 0, + "vv": 19624690 }, - "dynamic": "", - "cid": 820274225, - "dimension": { "width": 1920, "height": 1080, "rotate": 0 }, - "short_link": "https://b23.tv/BV1tV4y1H72k", - "short_link_v2": "https://b23.tv/BV1tV4y1H72k", - "first_frame": "http://i1.hdslb.com/bfs/storyff/n220831qn3fp342hh8svfbtvora7zon7_firsti.jpg", - "pub_location": "上海", - "bvid": "BV1tV4y1H72k", + "dynamic": "这个杀手真的太骚了!", + "cid": 84597412, + "dimension": { + "width": 1920, + "height": 1080, + "rotate": 0 + }, + "season_id": 14014, + "short_link_v2": "https://b23.tv/BV1Nb411W7uN", + "cover43": "", + "bvid": "BV1Nb411W7uN", "season_type": 0, "is_ogv": false, "ogv_info": null, - "rcmd_reason": { "content": "百万播放", "corner_mark": 1 } + "enable_vt": 0, + "ai_rcmd": null, + "rcmd_reason": "职业杀手(雾)大光头这次来到了哥伦比亚村庄,他会以怎样奇葩的方式达成目标呢?" }, { - "aid": 857678378, - "videos": 1, - "tid": 76, - "tname": "美食制作", - "copyright": 1, - "pic": "http://i1.hdslb.com/bfs/archive/5007b350acb31aa5f4a14c96190273d5590a6cb2.jpg", - "title": "《 中 式 炸 鸡 》", - "pubdate": 1662197400, - "ctime": 1662135610, - "desc": "三连吗\n谢谢", - "state": 0, - "duration": 248, - "mission_id": 816705, - "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": 337521240, - "name": "记录生活的蛋黄派", - "face": "http://i0.hdslb.com/bfs/face/9ba6c7a0d3a2ebfe9db2f46219ece98e210d0269.jpg" - }, - "stat": { - "aid": 857678378, - "view": 285421, - "danmaku": 5138, - "reply": 1694, - "favorite": 2757, - "coin": 9736, - "share": 763, - "now_rank": 0, - "his_rank": 0, - "like": 56170, - "dislike": 0 - }, - "dynamic": "谢谢", - "cid": 822249262, - "dimension": { "width": 1920, "height": 1080, "rotate": 0 }, - "short_link": "https://b23.tv/BV1sV4y1p7hB", - "short_link_v2": "https://b23.tv/BV1sV4y1p7hB", - "first_frame": "http://i1.hdslb.com/bfs/storyff/n220903qn1naqorns10fx528qp3fucqw_firsti.jpg", - "pub_location": "广东", - "bvid": "BV1sV4y1p7hB", - "season_type": 0, - "is_ogv": false, - "ogv_info": null, - "rcmd_reason": { "content": "5万点赞", "corner_mark": 1 } - }, - { - "aid": 602403491, - "videos": 1, - "tid": 161, - "tname": "手工", - "copyright": 1, - "pic": "http://i1.hdslb.com/bfs/archive/01bf653fd89126740b02c421207eb2519ee26f0c.jpg", - "title": "用超轻黏土捏一个小奶牛", - "pubdate": 1661607234, - "ctime": 1661607235, - "desc": "-", - "state": 0, - "duration": 60, - "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": 1160308896, - "name": "大米的摆摊日常", - "face": "http://i0.hdslb.com/bfs/face/2766a97e274c77166d208293c391b08e93cd7793.jpg" - }, - "stat": { - "aid": 602403491, - "view": 1055453, - "danmaku": 3500, - "reply": 2575, - "favorite": 23732, - "coin": 144083, - "share": 3469, - "now_rank": 0, - "his_rank": 42, - "like": 340294, - "dislike": 0 - }, - "dynamic": "", - "cid": 816374904, - "dimension": { "width": 1080, "height": 1920, "rotate": 0 }, - "short_link": "https://b23.tv/BV1pB4y157Bh", - "short_link_v2": "https://b23.tv/BV1pB4y157Bh", - "up_from_v2": 35, - "first_frame": "http://i1.hdslb.com/bfs/storyff/n220827a21lg9szf96xk8r3l38i3jet5_firsti.jpg", - "pub_location": "四川", - "bvid": "BV1pB4y157Bh", - "season_type": 0, - "is_ogv": false, - "ogv_info": null, - "rcmd_reason": { "content": "百万播放", "corner_mark": 1 } - }, - { - "aid": 217678690, - "videos": 1, - "tid": 138, - "tname": "搞笑", - "copyright": 1, - "pic": "http://i0.hdslb.com/bfs/archive/1b96235f6b4736f79430362f070f96f76741b8a5.jpg", - "title": "离谱到家了!两社恐挑战去7个UP主家零元购!", - "pubdate": 1662177000, - "ctime": 1662154182, - "desc": "感谢大家的观看,这期视频剪了一个月了。希望大家喜 欢\n三十六贱笑说:这期如果点赞40W,直接拍成系列。", - "state": 0, - "duration": 1918, - "mission_id": 753163, - "rights": { - "bp": 0, - "elec": 0, - "download": 0, - "movie": 0, - "pay": 0, - "hd5": 0, - "no_reprint": 1, - "autoplay": 1, - "ugc_pay": 0, - "is_cooperation": 1, - "ugc_pay_preview": 0, - "no_background": 0, - "arc_pay": 0, - "pay_free_watch": 0 - }, - "owner": { - "mid": 285499073, - "name": "东尼ookii", - "face": "http://i2.hdslb.com/bfs/face/456b2bff7e41ab212b74e9019fda1f26362e8723.jpg" - }, - "stat": { - "aid": 217678690, - "view": 976493, - "danmaku": 11559, - "reply": 1995, - "favorite": 8791, - "coin": 37190, - "share": 1776, - "now_rank": 0, - "his_rank": 31, - "like": 133451, - "dislike": 0 - }, - "dynamic": "超 级 离 谱 新 系 列 !!!", - "cid": 822326594, - "dimension": { "width": 1920, "height": 1080, "rotate": 0 }, - "short_link": "https://b23.tv/BV1Ja41137BA", - "short_link_v2": "https://b23.tv/BV1Ja41137BA", - "first_frame": "http://i2.hdslb.com/bfs/storyff/n220903qn2sc6o94iasldc2uix7nw6kz_firsti.jpg", - "pub_location": "广东", - "bvid": "BV1Ja41137BA", - "season_type": 0, - "is_ogv": false, - "ogv_info": null, - "rcmd_reason": { "content": "13万点赞", "corner_mark": 1 } - }, - { - "aid": 857726292, - "videos": 1, - "tid": 76, - "tname": "美食制作", - "copyright": 1, - "pic": "http://i0.hdslb.com/bfs/archive/1a9fe65a51c03d69fd1d4d50cff621e7b9112e29.jpg", - "title": "羊 肉 天 花 板", - "pubdate": 1662192000, - "ctime": 1662184515, - "desc": "羊肉串:\n其实我对羊肉串还是有些研究和追求的\n羊肉记得提前泡30分钟淡盐水去 膻味\n腌肉配方:2勺生抽 1勺蚝油 2勺白胡椒粉\n香料配方:半勺白糖 3勺孜然 2勺辣椒面\n同样的配方腌羊肉和香料也可以在家里炒 着着吃", - "state": 0, - "duration": 434, - "mission_id": 912283, - "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": 473524263, - "name": "澳洲阿彭", - "face": "http://i0.hdslb.com/bfs/face/954547cf631e4f986e5f9e3bfd65328600184b6f.jpg" - }, - "stat": { - "aid": 857726292, - "view": 335725, - "danmaku": 951, - "reply": 429, - "favorite": 3672, - "coin": 15611, - "share": 867, - "now_rank": 0, - "his_rank": 0, - "like": 45838, - "dislike": 0 - }, - "dynamic": "千万不要让猫进厨房", - "cid": 822587296, - "dimension": { "width": 3840, "height": 2160, "rotate": 0 }, - "season_id": 28525, - "short_link": "https://b23.tv/BV1tV4y1p7ux", - "short_link_v2": "https://b23.tv/BV1tV4y1p7ux", - "first_frame": "http://i0.hdslb.com/bfs/storyff/n220903a21elu6y2vu085u1gh47kqbdb_firsti.jpg", - "pub_location": "上海", - "bvid": "BV1tV4y1p7ux", - "season_type": 0, - "is_ogv": false, - "ogv_info": null, - "rcmd_reason": { "content": "", "corner_mark": 0 } - }, - { - "aid": 815203242, - "videos": 1, - "tid": 216, - "tname": "鬼畜剧场", - "copyright": 1, - "pic": "http://i1.hdslb.com/bfs/archive/04a85276faffd2f4bd59a4a7f36cf69833af0fc2.jpg", - "title": "科目三:作毙", - "pubdate": 1662114430, - "ctime": 1662114430, - "desc": "看来你 是真想跟我拼一下子", - "state": 0, - "duration": 72, - "mission_id": 870359, - "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": 7518140, - "name": "暂离二度", - "face": "http://i2.hdslb.com/bfs/face/3d31d41810f12de173515f83b150234bb08a6e72.jpg" - }, - "stat": { - "aid": 815203242, - "view": 892126, - "danmaku": 596, - "reply": 877, - "favorite": 13100, - "coin": 13068, - "share": 19249, - "now_rank": 0, - "his_rank": 92, - "like": 57099, - "dislike": 0 - }, - "dynamic": "", - "cid": 821964961, - "dimension": { "width": 1280, "height": 720, "rotate": 0 }, - "short_link": "https://b23.tv/BV1PG4y1r7JX", - "short_link_v2": "https://b23.tv/BV1PG4y1r7JX", - "first_frame": "http://i0.hdslb.com/bfs/storyff/n220902a21fhpl3fapghr9lxcwblqxu0_firsti.jpg", - "pub_location": "浙江", - "bvid": "BV1PG4y1r7JX", - "season_type": 0, - "is_ogv": false, - "ogv_info": null, - "rcmd_reason": { "content": "5万点赞", "corner_mark": 1 } - }, - { - "aid": 302736065, - "videos": 1, - "tid": 251, - "tname": "三农", - "copyright": 1, - "pic": "http://i1.hdslb.com/bfs/archive/a37fd6ed038127d2336d67c7e5726b9c016a0bae.jpg", - "title": "我又开始玩梗了,而且还进去了。", - "pubdate": 1662095667, - "ctime": 1662095667, - "desc": "-", - "state": 0, - "duration": 53, - "mission_id": 840062, - "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": 50316381, - "name": "疆域阿力木", - "face": "http://i0.hdslb.com/bfs/face/05626e28bbbb34f944f28791a75a2cef4f396a6e.jpg" - }, - "stat": { - "aid": 302736065, - "view": 3078837, - "danmaku": 2722, - "reply": 3193, - "favorite": 15765, - "coin": 22301, - "share": 3463, - "now_rank": 0, - "his_rank": 3, - "like": 461326, - "dislike": 0 - }, - "dynamic": "", - "cid": 821690665, - "dimension": { "width": 1080, "height": 1920, "rotate": 0 }, - "short_link": "https://b23.tv/BV19P411V7Kz", - "short_link_v2": "https://b23.tv/BV19P411V7Kz", - "up_from_v2": 36, - "first_frame": "http://i0.hdslb.com/bfs/storyff/n220902qn2fba1mpclsphj2deu0cb5hg_firsti.jpg", - "pub_location": "新疆", - "bvid": "BV19P411V7Kz", - "season_type": 0, - "is_ogv": false, - "ogv_info": null, - "rcmd_reason": { "content": "百万播放", "corner_mark": 1 } - }, - { - "aid": 557636142, - "videos": 1, - "tid": 138, - "tname": "搞笑", - "copyright": 1, - "pic": "http://i0.hdslb.com/bfs/archive/ff263e883790351a81caa336c372807a8aabd76c.jpg", - "title": "家里有游乐园?【杜海皇】", - "pubdate": 1662180876, - "ctime": 1662180434, - "desc": "希望各位观众老爷们喜欢这期视频!\n喜欢记得点赞/投币/收藏/分享!", - "state": 0, - "duration": 905, - "mission_id": 753163, - "rights": { - "bp": 0, - "elec": 0, - "download": 0, - "movie": 0, - "pay": 0, - "hd5": 0, - "no_reprint": 1, - "autoplay": 1, - "ugc_pay": 0, - "is_cooperation": 1, - "ugc_pay_preview": 0, - "no_background": 0, - "arc_pay": 0, - "pay_free_watch": 0 - }, - "owner": { - "mid": 178029850, - "name": "杜海皇", - "face": "http://i1.hdslb.com/bfs/face/133111338ef9d6ca04515a0b517b2e837bc41e2b.jpg" - }, - "stat": { - "aid": 557636142, - "view": 692389, - "danmaku": 17406, - "reply": 3198, - "favorite": 14095, - "coin": 24362, - "share": 1470, - "now_rank": 0, - "his_rank": 44, - "like": 98582, - "dislike": 0 - }, - "dynamic": "家里有游乐园?", - "cid": 822513886, - "dimension": { "width": 1920, "height": 1080, "rotate": 0 }, - "short_link": "https://b23.tv/BV1ae4y1d7z8", - "short_link_v2": "https://b23.tv/BV1ae4y1d7z8", - "first_frame": "http://i2.hdslb.com/bfs/storyff/n220903a2vmxll1f3m5f532fzheru0f6_firsti.jpg", - "pub_location": "上海", - "bvid": "BV1ae4y1d7z8", - "season_type": 0, - "is_ogv": false, - "ogv_info": null, - "rcmd_reason": { "content": "9万点赞", "corner_mark": 1 } - }, - { - "aid": 217653051, - "videos": 1, - "tid": 138, - "tname": "搞笑", - "copyright": 1, - "pic": "http://i1.hdslb.com/bfs/archive/f6e7436fc136c6e824d0cdcc527b366417c238b5.jpg", - "title": "不行了,我们真的土飞天了!!!", - "pubdate": 1662197177, - "ctime": 1662195861, - "desc": "宝剑嫂说点赞20W,立马开始学习究极无敌宇宙SSS难度土味舞蹈!!!\n我就不信她能学会!??\n\n邮箱:baojiansao@163.com\n记得投稿!!等你!!!", - "state": 0, - "duration": 564, - "mission_id": 753163, - "rights": { - "bp": 0, - "elec": 0, - "download": 0, - "movie": 0, - "pay": 0, - "hd5": 0, - "no_reprint": 1, - "autoplay": 1, - "ugc_pay": 0, - "is_cooperation": 1, - "ugc_pay_preview": 0, - "no_background": 0, - "arc_pay": 0, - "pay_free_watch": 0 - }, - "owner": { - "mid": 147166910, - "name": "雨哥到处跑", - "face": "http://i2.hdslb.com/bfs/face/5717b696a212199679c31857b46c3ba5c465ee06.jpg" - }, - "stat": { - "aid": 217653051, - "view": 186234, - "danmaku": 2498, - "reply": 745, - "favorite": 2573, - "coin": 7170, - "share": 1162, - "now_rank": 0, - "his_rank": 0, - "like": 34817, - "dislike": 0 - }, - "dynamic": "究!极!无!敌!宇!宙!\n土!味!之!王!!!", - "cid": 822750256, - "dimension": { "width": 1920, "height": 1080, "rotate": 0 }, - "short_link": "https://b23.tv/BV1ga41137Gs", - "short_link_v2": "https://b23.tv/BV1ga41137Gs", - "first_frame": "http://i1.hdslb.com/bfs/storyff/n220903a21l7ofzzwi97zg23eqr7n2ur_firsti.jpg", - "pub_location": "上海", - "bvid": "BV1ga41137Gs", - "season_type": 0, - "is_ogv": false, - "ogv_info": null, - "rcmd_reason": { "content": "", "corner_mark": 0 } - }, - { - "aid": 472678228, - "videos": 1, - "tid": 76, - "tname": "美食制作", - "copyright": 1, - "pic": "http://i1.hdslb.com/bfs/archive/e92f638626a4e7bfff43f0ff72faf35ff914d851.jpg", - "title": "谁能吃空这一盆,立马入职!", - "pubdate": 1662111000, - "ctime": 1662099066, - "desc": "想知道小胖说什么的看到最后!", - "state": 0, - "duration": 220, - "mission_id": 816705, - "rights": { - "bp": 0, - "elec": 0, - "download": 0, - "movie": 0, - "pay": 0, - "hd5": 1, - "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": 11452660, - "name": "p老板开饭了", - "face": "http://i1.hdslb.com/bfs/face/b1c8a639f1773284b3a7ceb00d62c54de1c8f470.jpg" - }, - "stat": { - "aid": 472678228, - "view": 1136045, - "danmaku": 541, - "reply": 1002, - "favorite": 7157, - "coin": 2192, - "share": 1122, - "now_rank": 0, - "his_rank": 65, - "like": 107942, - "dislike": 0 - }, - "dynamic": "完了,暴露了", - "cid": 821731282, - "dimension": { "width": 2160, "height": 3840, "rotate": 0 }, - "season_id": 619430, - "short_link": "https://b23.tv/BV12K411Z7ET", - "short_link_v2": "https://b23.tv/BV12K411Z7ET", - "first_frame": "http://i0.hdslb.com/bfs/storyff/n220902a21767eiq3pz6kpdf47u3h6c5_firsti.jpg", - "pub_location": "四川", - "bvid": "BV12K411Z7ET", - "season_type": 0, - "is_ogv": false, - "ogv_info": null, - "rcmd_reason": { "content": "百万播放", "corner_mark": 1 } - }, - { - "aid": 900009457, + "aid": 48871442, "videos": 1, "tid": 182, "tname": "影视杂谈", "copyright": 1, - "pic": "http://i2.hdslb.com/bfs/archive/533cb2685bcf5e64b29772dc87347466950710bd.jpg", - "title": "别抬头!天上的东西会吃人!2022最新科幻电影!", - "pubdate": 1661943707, - "ctime": 1661943707, - "desc": "《不》", + "pic": "http://i1.hdslb.com/bfs/archive/c917f4d21543461dcffe0230e0614abef4b54483.jpg", + "title": "DC超强反英雄「黑亚当」科普,《雷霆沙赞2》反派就是他了!", + "pubdate": 1554890417, + "ctime": 1554890426, + "desc": "DC超强反英雄「黑亚当」科普,《雷霆沙赞2》反派就是他了!", "state": 0, - "duration": 349, + "duration": 435, "rights": { "bp": 0, "elec": 0, "download": 0, "movie": 0, "pay": 0, - "hd5": 1, + "hd5": 0, "no_reprint": 1, "autoplay": 1, "ugc_pay": 0, @@ -1015,284 +1268,45 @@ curl -G 'https://api.bilibili.com/x/web-interface/popular' \ "pay_free_watch": 0 }, "owner": { - "mid": 688872987, - "name": "侃片大师兄", - "face": "http://i0.hdslb.com/bfs/face/8935b194271d1dac8ce4c99bdbbd80f682d4a939.jpg" + "mid": 7487399, + "name": "努力的Lorre", + "face": "http://i2.hdslb.com/bfs/face/c63ebeed7d49967e2348ef953b539f8de90c5140.jpg" }, "stat": { - "aid": 900009457, - "view": 2142899, - "danmaku": 763, - "reply": 687, - "favorite": 5943, - "coin": 587, - "share": 238, + "aid": 48871442, + "view": 1694250, + "danmaku": 2799, + "reply": 1588, + "favorite": 7199, + "coin": 15416, + "share": 1089, "now_rank": 0, - "his_rank": 85, - "like": 77420, - "dislike": 0 + "his_rank": 18, + "like": 49430, + "dislike": 0, + "vt": 0, + "vv": 1694250 }, - "dynamic": "", - "cid": 819990856, - "dimension": { "width": 1920, "height": 1080, "rotate": 0 }, - "short_link": "https://b23.tv/BV1EP4y1f71v", - "short_link_v2": "https://b23.tv/BV1EP4y1f71v", - "first_frame": "http://i2.hdslb.com/bfs/storyff/n220831qn23b5noftuzwf87zp2nxkfin_firsti.jpg", - "pub_location": "山东", - "bvid": "BV1EP4y1f71v", + "dynamic": "DC超强反英雄「黑亚当」科普,《雷霆沙赞2》反派就是他了!", + "cid": 85584748, + "dimension": { + "width": 1920, + "height": 1072, + "rotate": 0 + }, + "short_link_v2": "https://b23.tv/BV1wb411M73A", + "cover43": "", + "bvid": "BV1wb411M73A", "season_type": 0, "is_ogv": false, "ogv_info": null, - "rcmd_reason": { "content": "", "corner_mark": 0 } - }, - { - "aid": 645144956, - "videos": 1, - "tid": 208, - "tname": " 校园学习", - "copyright": 1, - "pic": "http://i0.hdslb.com/bfs/archive/4caba77c0ea7d95292c4e52dcfc1a2807318f068.jpg", - "title": "耗时一个月制作!不想任何学生错过这个视频啊啊!学习方法/中学/大学/研究生/考证/留学/成长/求职 | 开学解惑图鉴", - "pubdate": 1662177900, - "ctime": 1662127479, - "desc": "开学季啦,框框作为B站辅导员,为大家整理实用知识和经验参考,视频中所有的链接如下,如果 有帮助还请大家三连支持一波!!!!\n一、学习干货\n1、学习方法:\nBV1LU4y1g7no、BV14b411h7FM、BV1QX4y157mJ、BV1Ya4y1W7iT 、BV1X3411k7CX、BV1p741127kM\n2、中学学科:\n语文:BV1ZT4113744、BV1zB4y1w7Sk、BV1oE411K7Qq、BV18U4y1m7iV、BV16L4y157iZ\n数学:BV147411K7xu、BV1fJ411R", - "state": 0, - "duration": 439, - "mission_id": 895731, - "rights": { - "bp": 0, - "elec": 0, - "download": 0, - "movie": 0, - "pay": 0, - "hd5": 1, - "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": 40427625, - "name": "取景框看世界", - "face": "http://i0.hdslb.com/bfs/face/0d671560a6dd7f28247b3b7501d404a5b01280ea.jpg" - }, - "stat": { - "aid": 645144956, - "view": 137130, - "danmaku": 1686, - "reply": 597, - "favorite": 23723, - "coin": 10164, - "share": 1411, - "now_rank": 0, - "his_rank": 0, - "like": 20994, - "dislike": 0 - }, - "dynamic": "这是框框给所有学生党送上的开学礼物,你一定会喜欢的(=・ω・=)", - "cid": 822546678, - "dimension": { "width": 1920, "height": 1080, "rotate": 0 }, - "season_id": 682687, - "short_link": "https://b23.tv/BV1rY4y1T7Lk", - "short_link_v2": "https://b23.tv/BV1rY4y1T7Lk", - "first_frame": "http://i0.hdslb.com/bfs/storyff/n220903a2204tfiy965tnt32zfgxjhwn_firsti.jpg", - "pub_location": "上海", - "bvid": "BV1rY4y1T7Lk", - "season_type": 0, - "is_ogv": false, - "ogv_info": null, - "rcmd_reason": { "content": "", "corner_mark": 0 } - }, - { - "aid": 302509227, - "videos": 1, - "tid": 183, - "tname": "影视剪辑", - "copyright": 1, - "pic": "http://i0.hdslb.com/bfs/archive/72695f92333cc5c5dcdc5161ba98fa89a8ad081a.jpg", - "title": "“从不拍烂片的导演”", - "pubdate": 1661986407, - "ctime": 1661986407, - "desc": "-", - "state": 0, - "duration": 20, - "rights": { - "bp": 0, - "elec": 0, - "download": 0, - "movie": 0, - "pay": 0, - "hd5": 1, - "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": 241973789, - "name": "柯基剪辑c", - "face": "http://i2.hdslb.com/bfs/face/515688d6b0406ac9c242b3e0fbb36a5feabd50c8.jpg" - }, - "stat": { - "aid": 302509227, - "view": 169278, - "danmaku": 98, - "reply": 285, - "favorite": 9330, - "coin": 2736, - "share": 396, - "now_rank": 0, - "his_rank": 0, - "like": 34129, - "dislike": 0 - }, - "dynamic": "", - "cid": 820560843, - "dimension": { "width": 1920, "height": 1080, "rotate": 0 }, - "short_link": "https://b23.tv/BV1pP411L7yw", - "short_link_v2": "https://b23.tv/BV1pP411L7yw", - "up_from_v2": 8, - "first_frame": "http://i1.hdslb.com/bfs/storyff/n220901a232uv0w65umpau1641kk1ktt_firsti.jpg", - "pub_location": "江苏", - "bvid": "BV1pP411L7yw", - "season_type": 0, - "is_ogv": false, - "ogv_info": null, - "rcmd_reason": { "content": "", "corner_mark": 0 } - }, - { - "aid": 815038949, - "videos": 1, - "tid": 250, - "tname": "出行", - "copyright": 1, - "pic": "http://i2.hdslb.com/bfs/archive/f66582af3f5ea12b04d6f2bec1298fca308d33ce.jpg", - "title": "那天,我看到了54岁最帅的模样", - "pubdate": 1661769000, - "ctime": 1661756898, - "desc": "-", - "state": 0, - "duration": 91, - "mission_id": 834125, - "rights": { - "bp": 0, - "elec": 0, - "download": 0, - "movie": 0, - "pay": 0, - "hd5": 1, - "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": 2041168605, - "name": "他叫阿园", - "face": "http://i0.hdslb.com/bfs/face/ee0cee6afda83588c938a5279d47ce66633379e6.jpg" - }, - "stat": { - "aid": 815038949, - "view": 4203035, - "danmaku": 1797, - "reply": 3724, - "favorite": 69671, - "coin": 150880, - "share": 6483, - "now_rank": 0, - "his_rank": 1, - "like": 732835, - "dislike": 0 - }, - "dynamic": "", - "cid": 817949474, - "dimension": { "width": 1080, "height": 1920, "rotate": 0 }, - "short_link": "https://b23.tv/BV1VG4y167tn", - "short_link_v2": "https://b23.tv/BV1VG4y167tn", - "up_from_v2": 36, - "first_frame": "http://i0.hdslb.com/bfs/storyff/n220829a2246h1eks5qvfw17msnqjkun_firsti.jpg", - "pub_location": "浙江", - "bvid": "BV1VG4y167tn", - "season_type": 0, - "is_ogv": false, - "ogv_info": null, - "rcmd_reason": { "content": " 百万播放", "corner_mark": 1 } - }, - { - "aid": 900245725, - "videos": 1, - "tid": 138, - "tname": "搞笑", - "copyright": 1, - "pic": "http://i1.hdslb.com/bfs/archive/8e842aef4241d2f0971bfbf8289919f9417a2054.jpg", - "title": "我们管这叫军训,外国人管这叫实兵演习!", - "pubdate": 1662092612, - "ctime": 1662092612, - "desc": "素材来源:各大高校军训名场面!\nBGM:Wake (Live)", - "state": 0, - "duration": 185, - "rights": { - "bp": 0, - "elec": 0, - "download": 0, - "movie": 0, - "pay": 0, - "hd5": 1, - "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": 626297715, - "name": "荒草音乐", - "face": "http://i0.hdslb.com/bfs/face/d7b9ec37a9b159318cbf09d9d2ce43eba6cfaa12.jpg" - }, - "stat": { - "aid": 900245725, - "view": 792824, - "danmaku": 1603, - "reply": 2508, - "favorite": 11174, - "coin": 3072, - "share": 6911, - "now_rank": 0, - "his_rank": 0, - "like": 37460, - "dislike": 0 - }, - "dynamic": "", - "cid": 821649493, - "dimension": { "width": 1920, "height": 1080, "rotate": 0 }, - "short_link": "https://b23.tv/BV1DP4y1o7y1", - "short_link_v2": "https://b23.tv/BV1DP4y1o7y1", - "first_frame": "http://i1.hdslb.com/bfs/storyff/n220902a226id1e9dpruvu1a3ni88cad_firsti.jpg", - "pub_location": "四川", - "bvid": "BV1DP4y1o7y1", - "season_type": 0, - "is_ogv": false, - "ogv_info": null, - "rcmd_reason": { "content": "", "corner_mark": 0 } + "enable_vt": 0, + "ai_rcmd": null, + "rcmd_reason": "看完《沙赞》是不是还有些意犹未尽?来了解一下DC漫画中的真反派吧。" } - ], - "no_more": false + ] } } ``` -
\ No newline at end of file + + diff --git a/docs/video_ranking/precious_videos.md b/docs/video_ranking/precious_videos.md index 7eb8183..343b953 100644 --- a/docs/video_ranking/precious_videos.md +++ b/docs/video_ranking/precious_videos.md @@ -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' ``` -
-查看响应事例: -``` json +
+查看响应示例: + +```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标志性视频" + }, + // ... + ] + } } ``` +
diff --git a/docs/wallet/info.md b/docs/wallet/info.md new file mode 100644 index 0000000..e15fafe --- /dev/null +++ b/docs/wallet/info.md @@ -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: 成功
8006000004: 缺参
别的错误码在 errno | +| errno | num | 错误码 | 8006000004: 缺参
800501008: 内部错误(传的不是JSON)
800501007: 用户未登录 | +| msg | str | 返回信息 | SUCCESS: 成功
否则为错误信息 | +| 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' +``` + +
+查看响应示例: + +```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 +} +``` + +
diff --git a/docs/web_widget/header.md b/docs/web_widget/header.md new file mode 100644 index 0000000..7543697 --- /dev/null +++ b/docs/web_widget/header.md @@ -0,0 +1,133 @@ +# 首页横幅头图 + +## 获取方法 + +- ❎ 关注 UP 主 [壁纸喵](https://space.bilibili.com/6823116) 获取静态图片 + +- ✅ 通过主页获取头图接口获取静态图片与各部分及其动态偏移信息 + +## 获取首页头图 + +> https://api.bilibili.com/x/web-show/page/header + +*请求方式: GET* + +**URL参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | ---- | -------- | ------ | ---- | +| resource_id | num | 资源 ID? | 必要 | 默认为 `142`, 实测可为任意有效整数 | + +**JSON回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| -- | -- | -- | -- | +| code | num | 返回值 | 0: 成功 | +| message | str | 错误信息 | 默认为 0 | +| ttl | str | 1 | | +| data | obj | 信息本体 | | + +`data` 对象: + +| 字段 | 类型 | 内容 | 备注 | +| -- | -- | -- | -- | +| name | str | 空 | | +| pic | str | 静态头图 URL | | +| litpic | str | bilibili logo URL | | +| url | str | 空 | | +| is_split_layer | str | 是否分层 | 1: 是 | +| split_layer | str | 分层信息 | 一个套在字符串里的 JSON 对象 | + +`data` 对象中的`split_layer` 字符串里的 JSON 对象: + +| 字段 | 类型 | 内容 | 备注 | +| -- | -- | -- | -- | +| version | str | 版本号 | 目前为 `1` | +| layers | array | 层信息 | | + +`split_layer` 字符串里的 JSON 对象中的 `layers` 数组: + +| 项 | 类型 | 内容 | 备注 | +| -- | -- | -- | -- | +| 0 | obj | 第 1 个层信息 | | +| 2 | obj | 第 3 个层信息 | | +| 1 | obj | 第 2 个层信息 | | +| …… | obj | …… | | +| n | obj | 第 (n+1) 个层信息 | | + +`split_layer` 字符串里的 JSON 对象中的 `layers` 数组里的对象: + +| 字段 | 类型 | 内容 | 备注 | +| -- | -- | -- | -- | +| resources | obj | 图层资源 | | +| scale | obj | 缩放信息 | | +| rotate | obj | 路径? | 空 | +| translate | obj | 偏移信息 | | +| blur | obj | 模糊信息? | 空 | +| opacity | obj | 不透明度? | 内容 `wrap` 为 `clamp` | +| id | num | 层 ID | 似乎即图层索引 | +| name | str | 层名称 | | + +`layers` 数组里的对象中的 `resources` 对象: + +| 字段 | 类型 | 内容 | 备注 | +| -- | -- | -- | -- | +| src | str | 图层 URL | | +| id | num | 0 | | + +`layers` 数组里的对象中的 `scale` 对象: + +| 字段 | 类型 | 内容 | 备注 | +| -- | -- | -- | -- | +| initial | num | 初始缩放值? | | +| offset | num | 缩放偏移值? | 部分层无此项 | + +`layers` 数组里的对象中的 `translate` 对象: + +| 字段 | 类型 | 内容 | 备注 | +| -- | -- | -- | -- | +| offset | array | 偏移值? | `[x, y]`? 部分层无此项 | + +**示例:** + +获取 `Sat, 03 Aug 2024 01:41:35 GMT` 时刻的 B 站首页头图 + +```shell +curl -G "https://api.bilibili.com/x/web-show/page/header" \ +--data-urlencode "resource_id=142" +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "name": "", + "pic": "http://i0.hdslb.com/bfs/archive/e5b7fca0c001cbe0b77a2956e4c861d9f19c4575.png", + "litpic": "http://i0.hdslb.com/bfs/archive/c8fd97a40bf79f03e7b76cbc87236f612caef7b2.png", + "url": "", + "is_split_layer": 1, + "split_layer": "{\"version\":\"1\",\"layers\":[{\"resources\":[{\"src\":\"https://i0.hdslb.com/bfs/vc/75ec2d45ce8c942a1f7379d4641171da4d90ab0d.png\",\"id\":0}],\"scale\":{\"initial\":0.54},\"rotate\":{},\"translate\":{},\"blur\":{},\"opacity\":{\"wrap\":\"clamp\"},\"id\":0,\"name\":\"19-背景水\"},{\"resources\":[{\"src\":\"https://i0.hdslb.com/bfs/vc/286eb259a60a0eabfcde96d7ea92d239fe68b3fe.png\",\"id\":0}],\"scale\":{\"initial\":0.53},\"rotate\":{},\"translate\":{\"offset\":[10,0]},\"blur\":{},\"opacity\":{\"wrap\":\"clamp\"},\"id\":1,\"name\":\"18-再远景\"},{\"resources\":[{\"src\":\"https://i0.hdslb.com/bfs/vc/782d55aeca6cc75f51d2d630005f514a61a0ddfa.png\",\"id\":0}],\"scale\":{\"initial\":0.55},\"rotate\":{},\"translate\":{\"offset\":[10,0]},\"blur\":{},\"opacity\":{\"wrap\":\"clamp\"},\"id\":3,\"name\":\"16-远景房子1\"},{\"resources\":[{\"src\":\"https://i0.hdslb.com/bfs/vc/d6c941cf2d5fc6c717173f7e3f166dbc444aa15b.png\",\"id\":0}],\"scale\":{\"initial\":0.52},\"rotate\":{},\"translate\":{\"offset\":[30,0]},\"blur\":{},\"opacity\":{\"wrap\":\"clamp\"},\"id\":4,\"name\":\"15-两侧房子\"},{\"resources\":[{\"src\":\"https://i0.hdslb.com/bfs/vc/27e411d92729604aa594858beb5130ed60aad76d.png\",\"id\":0}],\"scale\":{\"initial\":0.55,\"offset\":0.2},\"rotate\":{},\"translate\":{\"offset\":[30,0]},\"blur\":{},\"opacity\":{\"wrap\":\"clamp\"},\"id\":2,\"name\":\"17-远景鲸鱼机\"},{\"resources\":[{\"src\":\"https://i0.hdslb.com/bfs/vc/09d0855b6b6d6965e8f02404777986237848c6c9.png\",\"id\":0}],\"scale\":{\"initial\":0.52},\"rotate\":{},\"translate\":{\"offset\":[300,10]},\"blur\":{},\"opacity\":{\"wrap\":\"clamp\"},\"id\":5,\"name\":\"14-中景鲸鱼机\"},{\"resources\":[{\"src\":\"https://i0.hdslb.com/bfs/vc/40878bbef514e2d4bf5d660fe1145c869567bec2.png\",\"id\":0}],\"scale\":{\"initial\":0.52},\"rotate\":{},\"translate\":{\"offset\":[20,0]},\"blur\":{},\"opacity\":{\"wrap\":\"clamp\"},\"id\":6,\"name\":\"13-窗外垃圾\"},{\"resources\":[{\"src\":\"https://i0.hdslb.com/bfs/vc/42485baddbca05d2c4c7710a0b76b74d303e06d7.png\",\"id\":0}],\"scale\":{\"initial\":0.54},\"rotate\":{},\"translate\":{\"offset\":[80,0]},\"blur\":{},\"opacity\":{\"wrap\":\"clamp\"},\"id\":7,\"name\":\"12-机场\"},{\"resources\":[{\"src\":\"https://i0.hdslb.com/bfs/vc/8ea0e95a8e5fc85ae227810925dba1ace1e9fcba.png\",\"id\":0}],\"scale\":{\"initial\":0.52},\"rotate\":{},\"translate\":{\"offset\":[120,0]},\"blur\":{},\"opacity\":{\"wrap\":\"clamp\"},\"id\":8,\"name\":\"11-空姐\"},{\"resources\":[{\"src\":\"https://i0.hdslb.com/bfs/vc/c13ca9c6405c71bf864ed2bc421680cb437f45ef.png\",\"id\":0}],\"scale\":{\"initial\":0.52},\"rotate\":{},\"translate\":{\"offset\":[80,40]},\"blur\":{},\"opacity\":{\"wrap\":\"clamp\"},\"id\":9,\"name\":\"10-泡泡04\"},{\"resources\":[{\"src\":\"https://i0.hdslb.com/bfs/vc/a43c6833d262301373234ffbd6934559d2ce7fb2.png\",\"id\":0}],\"scale\":{\"initial\":0.52},\"rotate\":{},\"translate\":{\"offset\":[100,50]},\"blur\":{},\"opacity\":{\"wrap\":\"clamp\"},\"id\":10,\"name\":\"09-泡泡03\"},{\"resources\":[{\"src\":\"https://i0.hdslb.com/bfs/vc/ce8c5e45230a6d3805baf60f5916f1cd441aac8e.png\",\"id\":0}],\"scale\":{\"initial\":0.54},\"rotate\":{},\"translate\":{\"offset\":[130,0]},\"blur\":{},\"opacity\":{\"wrap\":\"clamp\"},\"id\":11,\"name\":\"08-22\"},{\"resources\":[{\"src\":\"https://i0.hdslb.com/bfs/vc/cbf19f3682dfb02e62557d07fefaf241a80296a1.png\",\"id\":0}],\"scale\":{\"initial\":0.52},\"rotate\":{},\"translate\":{\"offset\":[200,0]},\"blur\":{},\"opacity\":{\"wrap\":\"clamp\"},\"id\":12,\"name\":\"07-近路人\"},{\"resources\":[{\"src\":\"https://i0.hdslb.com/bfs/vc/4a4c1f6b2977478c73e41f39a2910c3b3c33167e.webm\",\"id\":0}],\"scale\":{\"initial\":0.5},\"rotate\":{},\"translate\":{\"initial\":[1000,0],\"offset\":[20,0]},\"blur\":{},\"opacity\":{\"wrap\":\"clamp\"},\"id\":21,\"name\":\"右气泡\"},{\"resources\":[{\"src\":\"https://i0.hdslb.com/bfs/vc/7998ca9f0bc267375fb7b45f75626d96806f94d7.png\",\"id\":0}],\"scale\":{\"initial\":0.52},\"rotate\":{},\"translate\":{\"offset\":[300,0]},\"blur\":{},\"opacity\":{\"wrap\":\"clamp\"},\"id\":13,\"name\":\"06-两侧前景植物\"},{\"resources\":[{\"src\":\"https://i0.hdslb.com/bfs/vc/198efffbc58493300854c04ab0ea8d979a6f9223.png\",\"id\":0}],\"scale\":{\"initial\":0.52},\"rotate\":{},\"translate\":{\"offset\":[280,0]},\"blur\":{},\"opacity\":{\"wrap\":\"clamp\"},\"id\":15,\"name\":\"04-顶部摸鱼牌子\"},{\"resources\":[{\"src\":\"https://i0.hdslb.com/bfs/vc/142a486b8dd500a626a60b68ad993af8dabc8b55.png\",\"id\":0}],\"scale\":{\"initial\":0.52},\"rotate\":{},\"translate\":{\"offset\":[300,130]},\"blur\":{},\"opacity\":{\"wrap\":\"clamp\"},\"id\":16,\"name\":\"03-泡泡02\"},{\"resources\":[{\"src\":\"https://i0.hdslb.com/bfs/vc/bb6266e1525a51f7920fc8881e47cadeee271b0c.png\",\"id\":0}],\"scale\":{\"initial\":0.52},\"rotate\":{},\"translate\":{\"initial\":[200,0],\"offset\":[350,20]},\"blur\":{},\"opacity\":{\"wrap\":\"clamp\"},\"id\":17,\"name\":\"02-泡泡01\"},{\"resources\":[{\"src\":\"https://i0.hdslb.com/bfs/vc/cd68251cde11936871237ca94360acb451bf7ed2.png\",\"id\":0}],\"scale\":{\"initial\":0.52},\"rotate\":{},\"translate\":{\"initial\":[-200,0],\"offset\":[500,0]},\"blur\":{},\"opacity\":{\"initial\":0.5,\"wrap\":\"clamp\"},\"id\":18,\"name\":\"01-光\"},{\"resources\":[{\"src\":\"https://i0.hdslb.com/bfs/vc/426073f920477b718b8aee5ec141aca3889500f7.webm\",\"id\":0}],\"scale\":{\"initial\":0.54},\"rotate\":{},\"translate\":{\"initial\":[400,0],\"offset\":[50,0]},\"blur\":{},\"opacity\":{\"wrap\":\"clamp\"},\"id\":19,\"name\":\"中气泡\"},{\"resources\":[{\"src\":\"https://i0.hdslb.com/bfs/vc/0de9fb9822d2d00500abc8bdb143907eb1802ddb.webm\",\"id\":0}],\"scale\":{},\"rotate\":{},\"translate\":{\"initial\":[-700,0],\"offset\":[30,0]},\"blur\":{},\"opacity\":{\"wrap\":\"clamp\"},\"id\":20,\"name\":\"左气泡\"}]}", + "request_id": "1722649278" + } +} +``` + +
+ +## 图层组合处理 + +- **注意:** 部分图像只包含部分颜色通道, 在创建文件时务必注意! + +- 图层既包含静态 PNG 图片,也包含动态 WebM 视频, 此处忽略视频, 按照 `name` 字段前的数字作为顺序, 依次导入 GIMP (你也可以使用其她图像处理软件), 未进行偏移调整 + +- 接口提供的静态图片 http://i0.hdslb.com/bfs/archive/e5b7fca0c001cbe0b77a2956e4c861d9f19c4575.png + +- 手动导入合成的图片 https://archive.biliimg.com/bfs/archive/dc96f5d4e87a1985fc6085305d737f21f006f6a8.png +([备链](http://i0.hdslb.com/bfs/new_dyn/510715042e8847b7fd98d8253ca1f61a616368979.png))