This commit is contained in:
SessionHu 2025-07-08 11:10:50 +08:00
commit 64a0be0cf4
No known key found for this signature in database
GPG Key ID: 9E7E64C25FE3301A
26 changed files with 12131 additions and 2811 deletions

View File

@ -262,6 +262,10 @@ B站 API 采用 C/S 结构,大多数接口为 REST API 和 gRPC少部分接
- [ ] [关注UP直播情况](docs/live/follow_up_live.md)
- [ ] [直播心跳上报](docs/live/report.md)
- [ ] [直播间弹幕](docs/live/danmaku.md)
- [ ] [直播流水](docs/live/live_bill.md)
- [ ] [礼物相关](docs/live/gift.md)
- [ ] [大航海/粉丝团](docs/live/guard.md)
- [ ] [直播回放](docs/live/live_replay.md)
- [ ] [活动](docs/activity)
- [ ] [活动列表](docs/activity/list.md)
- [ ] [活动主题信息](docs/activity/info.md)

View File

@ -1,3 +1,74 @@
# 剧集地区一览
| ID | 名称 |
|----|-------|
| 1 | 中国大陆 |
| 2 | 日本 |
| 3 | 美国 |
| 4 | 英国 |
| 5 | 加拿大 |
| 6 | 中国香港 |
| 7 | 中国台湾 |
| 8 | 韩国 |
| 9 | 法国 |
| 10 | 泰国 |
| 11 | 马来西亚 |
| 12 | 新加坡 |
| 13 | 西班牙 |
| 14 | 俄罗斯 |
| 15 | 德国 |
| 16 | 其他 |
| 17 | 丹麦 |
| 18 | 乌克兰 |
| 19 | 以色列 |
| 20 | 伊朗 |
| 21 | 保加利亚 |
| 22 | 克罗地亚 |
| 23 | 冰岛 |
| 24 | 匈牙利 |
| 25 | 南非 |
| 26 | 印尼 |
| 27 | 印度 |
| 28 | 哥伦比亚 |
| 30 | 土耳其 |
| 31 | 墨西哥 |
| 32 | 委内瑞拉 |
| 33 | 巴西 |
| 34 | 希腊 |
| 35 | 意大利 |
| 36 | 挪威 |
| 37 | 捷克 |
| 38 | 摩洛哥 |
| 39 | 新西兰 |
| 40 | 智利 |
| 41 | 比利时 |
| 42 | 波兰 |
| 43 | 澳大利亚 |
| 44 | 爱尔兰 |
| 45 | 瑞典 |
| 46 | 瑞士 |
| 47 | 芬兰 |
| 48 | 苏联 |
| 49 | 荷兰 |
| 50 | 越南 |
| 51 | 阿根廷 |
| 52 | 马耳他 |
| 53 | 古巴 |
| 54 | 菲律宾 |
| 55 | 哈萨克斯坦 |
| 56 | 黎巴嫩 |
| 57 | 塞浦路斯 |
| 58 | 卡塔尔 |
| 59 | 阿联酋 |
| 60 | 奥地利 |
| 61 | 西德 |
| 62 | 卢森堡 |
| 63 | 罗马尼亚 |
| 64 | 印度尼西亚 |
| 65 | 南斯拉夫 |
| 66 | 蒙古 |
| 70 | 葡萄牙 |
# 剧集基本信息
## 剧集基本信息mdid方式
@ -57,10 +128,10 @@
`areas`数组中的对象:
| 字段 | 类型 | 内容 | 备注 |
|------|-----|--------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| id | num | 所属地区编号 | 1中国大陆<br />2日本<br />3美国<br />4英国<br />5加拿大<br/>6中国香港<br />7中国台湾<br/>8韩国<br />9法国<br />10泰国<br />12新加坡<br/>13西班牙<br/>14俄罗斯<br />15德国<br />16其他<br/>17丹麦<br/>18乌克兰<br/>19以色列<br/>20伊朗<br/>24匈牙利<br/>22克罗地亚<br/>23冰岛<br/>24匈牙利<br/>25南非<br/>26印尼<br/>27印度<br/>30土耳其<br/>31墨西哥<br/>32委内瑞拉<br/>33巴西<br/>34希腊<br/>35意大利<br />36挪威<br/>37捷克<br/>39新西兰<br />40智利<br/>41比利时<br/>42波兰<br/>43澳大利亚<br/>44爱尔兰<br/>45瑞典<br/>46瑞士<br/>47芬兰<br/>48苏联<br/>49荷兰<br/>51阿根廷<br/>53古巴<br/>54菲律宾<br/>55哈萨克斯坦 |
| name | str | 所属地区名称 | |
| 字段 | 类型 | 内容 | 备注 |
|------|-----|--------|-------------------|
| id | num | 所属地区编号 | [剧集地区一览](#剧集地区一览) |
| name | str | 所属地区名称 | |
`media`中的`new_ep`对象:
@ -141,262 +212,668 @@ curl -G 'https://api.bilibili.com/pgc/review/user' \
**url参数**
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| --------- | ---- | -------- | ------------ | ------------------------ |
| season_id | num | 番剧ssid | 必要(可选) | season_id与ep_id任选其一 |
| ep_id | num | 剧集epid | 必要(可选) | season_id与ep_id任选其一 |
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|-----------|-----|--------|--------|---------------------|
| season_id | num | 番剧ssid | 必要(可选) | season_id与ep_id任选其一 |
| ep_id | num | 剧集epid | 必要(可选) | season_id与ep_id任选其一 |
**json回复**
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | ----------------------- |
| code | num | 返回值 | 0成功<br />-404错误 |
| message | str | 错误信息 | 默认为success |
| ttl | num | 1 | 作用尚不明确 |
| result | obj | 信息本体 | |
| 字段 | 类型 | 内容 | 备注 |
|---------|-----|------|-------------------|
| code | num | 返回值 | 0成功<br />-404错误 |
| message | str | 错误信息 | 默认为success |
| result | obj | 信息本体 | |
`result`对象:
| 字段 | 类型 | 内容 | 备注 |
| --------------- | ------ | -------------------------- | ------------------------------------------ |
| activity | obj | 参与的活动 | |
| alias | str | 空 | 作用尚不明确 |
| bkg_cover | str | 网页背景图片url | 无则为空 |
| cover | str | 剧集封面图片url | |
| episodes | array | 正片剧集列表 | |
| evaluate | str | 简介 | |
| jp_title | str | 空 | 作用尚不明确 |
| link | str | 简介页面url | |
| media_id | num | 剧集mdid | |
| mode | num | 2 | 作用尚不明确 |
| new_ep | obj | 更新信息 | |
| payment | obj | 会员&付费信息 | 若无相关内容则无此项 |
| positive | obj | | |
| publish | obj | 发布信息 | |
| rating | obj | 评分信息 | 若无相关内容则无此项 |
| record | str | 备案号 | 无则为空 |
| rights | obj | 属性标志信息 | |
| season_id | num | 番剧ssid | |
| season_title | str | 剧集标题 | |
| seasons | array | 同系列所有季信息 | |
| section | array | 花絮、PV、番外等非正片内容 | 若无相关内容则无此项 |
| series | obj | 系列信息 | |
| share_copy | str | 《{标题}》+{备注} | |
| share_sub_title | str | 备注 | |
| share_url | str | 番剧播放页面url | |
| show | obj | 网页全屏标志 | |
| square_cover | str | 方形封面图片url | |
| stat | obj | 状态数 | |
| status | num | | |
| subtitle | str | 剧集副标题 | |
| title | str | 剧集标题 | |
| total | num | 总计正片集数 | 未完结:大多为-1<br />已完结:正整数 |
| type | num | 剧集类型 | 1番剧<br />2电影<br />3纪录片<br />4国创<br />5电视剧<br />7综艺 |
| up_info | obj | UP主信息 | 若无相关内容则无此项 |
| 字段 | 类型 | 内容 | 备注 |
|-------------------------|-------|----------------|----------------------------------------------------------|
| activity | obj | 参与的活动 | |
| actors | str | | |
| alias | str | 空 | 作用尚不明确 |
| areas | array | | |
| bkg_cover | str | 网页背景图片url | 无则为空 |
| cover | str | 剧集封面图片url | |
| delivery_fragment_video | bool | | |
| enable_vt | bool | | |
| episodes | array | 正片剧集列表 | |
| evaluate | str | 简介 | |
| freya | obj | | |
| hide_ep_vv_vt_dm | num | | |
| icon_font | obj | | |
| jp_title | str | 空 | 作用尚不明确 |
| link | str | 简介页面url | |
| media_id | num | 剧集mdid | |
| mode | num | 2 | 作用尚不明确 |
| multi_view_info | obj | | |
| new_ep | obj | 更新信息 | |
| payment | obj | 会员&付费信息 | 若无相关内容则无此项 |
| payPack | obj | 付费包信息 | 目前只有霹雳布袋戏付费套餐一种 |
| play_strategy | obj | | |
| positive | obj | | |
| publish | obj | 发布信息 | |
| rating | obj | 评分信息 | 若无相关内容则无此项 |
| record | str | 备案号 | 无则为空 |
| rights | obj | 属性标志信息 | |
| season_id | num | 番剧ssid | |
| season_title | str | 剧集标题 | |
| seasons | array | 同系列所有季信息 | |
| section | array | 花絮、PV、番外等非正片内容 | 若无相关内容则无此项 |
| section_bottom_desc | str | | |
| series | obj | 系列信息 | |
| share_copy | str | 《{标题}》+{备注} | |
| share_sub_title | str | 备注 | |
| share_url | str | 番剧播放页面url | |
| show | obj | 网页全屏标志 | |
| show_season_type | num | 1,2,3,4,5,7 | |
| square_cover | str | 方形封面图片url | |
| staff | str | 制作人员信息 | |
| stat | obj | 状态数 | |
| status | num | | |
| styles | array | 标签 | |
| subtitle | str | 剧集副标题 | |
| title | str | 剧集标题 | |
| total | num | 总计正片集数 | 未完结:大多为-1<br />已完结:正整数 |
| type | num | 剧集类型 | 1番剧<br />2电影<br />3纪录片<br />4国创<br />5电视剧<br />7综艺 |
| up_info | obj | UP主信息 | 若无相关内容则无此项 |
| user_status | obj | | |
`result`中的`activity`对象:
| 字段 | 类型 | 内容 | 备注 |
| ----------- | ---- | -------- | ------------ |
| head_bg_url | str | 空 | 作用尚不明确 |
| id | num | 活动id | |
| title | str | 活动标题 | |
| 字段 | 类型 | 内容 | 备注 |
|-------------|-------|------|--------|
| cover | str | | |
| head_bg_url | str | 空 | 作用尚不明确 |
| id | num | 活动id | |
| link | str | | |
| pendants | array | | |
| title | str | 活动标题 | |
`activity`中的`pendants`数组
| 字段名 | 类型 | 内容 | 备注 |
|-------|-----|----|----|
| image | str | | |
| name | str | | |
| pid | num | | |
`result`中的`areas`数组
| 字段名 | 类型 | 内容 | 备注 |
|------|-----|--------|-------------------|
| id | num | 所属地区编号 | [剧集地区一览](#剧集地区一览) |
| name | str | 所属地区名称 | |
`result`中的`episodes`数组:
| 项 | 类型 | 内容 | 备注 |
| ---- | ---- | --------------- | ------------ |
| 0 | obj | 正片第1集 | |
| n | obj | 正片第n+1集 | 按照顺序排列 |
| …… | obj | | |
| 项 | 类型 | 内容 | 备注 |
|----|-----|-----------|--------|
| 0 | obj | 正片第1集 | |
| n | obj | 正片第n+1集 | 按照顺序排列 |
| …… | obj | | |
`episodes`数组中的对象:
| 字段 | 类型 | 内容 | 备注 |
| ------------ | ---- | --------------------------------- | -------------------- |
| aid | num | 单集稿件avid | |
| badge | str | 标签文字 | 例如`会员`、`限免`等 |
| badge_info | obj | | |
| badge_type | num | | |
| bvid | str | 单集稿件bvid | |
| cid | num | 视频cid | |
| cover | str | 单集封面url | |
| dimension | obj | 分辨率信息 | |
| from | str | | |
| id | num | 单集epid | |
| link | str | 单集网页url | |
| long_title | str | 单集完整标题 | |
| pub_time | num | 发布时间 | 时间戳 |
| pv | num | 0 | 作用尚不明确 |
| release_date | str | 空 | 作用尚不明确 |
| rights | obj | | |
| share_copy | str | 《{标题}》+第n话+{单集完整标题} | |
| share_url | str | 单集网页url | |
| short_link | str | 单集网页url短链接 | |
| status | num | | |
| subtitle | str | 单集副标题 | 观看次数文字 |
| title | str | 单集标题 | |
| vid | str | 单集vid | vupload_+{cid} |
| 字段 | 类型 | 内容 | 备注 |
|--------------------|-------|---------------------|----------------|
| aid | num | 单集稿件avid | |
| archive_attr | num | | |
| badge | str | 标签文字 | 例如`会员`、`限免`等 |
| badge_info | obj | | |
| badge_type | num | | |
| bvid | str | 单集稿件bvid | |
| cid | num | 视频cid | |
| cover | str | 单集封面url | |
| dimension | obj | 分辨率信息 | |
| duration | num | | |
| enable_vt | bool | | |
| ep_id | num | | |
| from | str | | |
| id | num | 单集epid | |
| interaction | obj | | |
| is_sub_view | bool | | |
| is_view_hide | bool | | |
| link | str | 单集网页url | |
| long_title | str | 单集完整标题 | |
| multi_view_eps | array | | |
| pub_time | num | 发布时间 | 时间戳 |
| pv | num | 0 | 作用尚不明确 |
| release_date | str | 空 | 作用尚不明确 |
| rights | obj | | |
| section_type | num | | |
| share_copy | str | 《{标题}》+第n话+{单集完整标题} | |
| share_url | str | 单集网页url | |
| short_link | str | 单集网页url短链接 | |
| show_title | str | | |
| showDrmLoginDialog | bool | | |
| skip | obj | | |
| status | num | | |
| subtitle | str | 单集副标题 | 观看次数文字 |
| title | str | 单集标题 | |
| toast_title | str | | |
| vid | str | 单集vid | vupload_+{cid} |
`episodes`中的`badge_info`对象
| 字段名 | 类型 | 内容 | 备注 |
|----------------|-----|----|----|
| bg_color | str | | |
| bg_color_night | str | | |
| text | str | | |
`episodes`中的`dimension`对象
| 字段名 | 类型 | 内容 | 备注 |
|--------|-----|----|----|
| height | num | | |
| rotate | num | | |
| width | num | | |
`episodes`中的`interaction`对象
| 字段名 | 类型 | 内容 | 备注 |
|---------------|------|----|----|
| graph_version | num | | |
| interaction | bool | | |
`episodes`中的`multi_view_eps`数组
| 字段名 | 类型 | 内容 | 备注 |
|-------|-----|----|----|
| ep_id | num | | |
`episodes`中的`rights`对象
| 字段名 | 类型 | 内容 | 备注 |
|----------------|-----|----|----|
| allow_demand | num | | |
| allow_dm | num | | |
| allow_download | num | | |
| area_limit | num | | |
`episodes`中的`skip`对象
| 字段名 | 类型 | 内容 | 备注 |
|-----|-----|----|----|
| ed | obj | | |
| op | obj | | |
`skip`对象中的`ed`对象
| 字段名 | 类型 | 内容 | 备注 |
|-------|-----|----|----|
| end | num | | |
| start | num | | |
`skip`对象中的`op`对象
| 字段名 | 类型 | 内容 | 备注 |
|-------|-----|----|----|
| end | num | | |
| start | num | | |
`result`中的`freya`对象
| 字段名 | 类型 | 内容 | 备注 |
|-----------------|-----|----|----|
| bubble_desc | str | | |
| bubble_show_cnt | num | | |
| icon_show | num | | |
`result`中的`icon_font`对象
| 字段名 | 类型 | 内容 | 备注 |
|------|-----|----|----|
| name | str | | |
| text | str | | |
`result`中的`multi_view_info`对象
| 字段名 | 类型 | 内容 | 备注 |
|----------------------|------|----|----|
| changing_dance | str | | |
| is_multi_view_season | bool | | |
`result`中的`new_ep`对象:
| 字段 | 类型 | 内容 | 备注 |
| ------ | ---- | ------------ | ---------------- |
| desc | str | 更新备注 | |
| id | num | 最新一话epid | |
| is_new | num | 是否最新发布 | 0<br />1是 |
| title | str | 最新一话标题 | |
| 字段 | 类型 | 内容 | 备注 |
|--------|-----|----------|--------------|
| desc | str | 更新备注 | |
| id | num | 最新一话epid | |
| is_new | num | 是否最新发布 | 0<br />1是 |
| title | str | 最新一话标题 | |
`result`中的`payment`对象:
| 字段 | 类型 | 内容 | 备注 |
| ------------------- | ---- | ------------ | -------- |
| discount | num | 折扣 | 100为原价 |
| pay_type | obj | 支付相关 | |
| price | str | 售价 | |
| promotion | str | 推广信息 | |
| vip_discount | num | 大会员折扣 | |
| vip_first_promotion | str | | |
| vip_price | str | 大会员售价 | |
| vip_promotion | str | 大会员推广信息 | |
| 字段 | 类型 | 内容 | 备注 |
|---------------------|-----|---------|--------|
| discount | num | 折扣 | 100为原价 |
| pay_type | obj | 支付相关 | |
| price | str | 售价 | |
| promotion | str | 推广信息 | |
| tip | str | | |
| view_start_time | num | | |
| vip_discount | num | 大会员折扣 | |
| vip_first_promotion | str | | |
| vip_price | str | 大会员售价 | |
| vip_promotion | str | 大会员推广信息 | |
`payment`中的`pay_type`对象:
| 字段 | 类型 | 内容 | 备注 |
| ------------------- | ---- | ------------- | ------------------------- |
| allow_discount | num | 启用折扣 | 0<br />1<br />下同 |
| allow_pack | num | | |
| allow_ticket | num | 启用票券 | |
| allow_time_limit | num | 启用时间限制 | |
| allow_vip_discount | num | 启用大会员折扣 | |
| forbid_bb | num | 禁止使用B币券 | |
| 字段 | 类型 | 内容 | 备注 |
|--------------------|-----|---------|----------------------|
| allow_discount | num | 启用折扣 | 0<br />1<br />下同 |
| allow_pack | num | | |
| allow_ticket | num | 启用票券 | |
| allow_time_limit | num | 启用时间限制 | |
| allow_vip_discount | num | 启用大会员折扣 | |
| forbid_bb | num | 禁止使用B币券 | |
`result`中的`payPack`对象
| 字段名 | 类型 | 内容 | 备注 |
|-----------------------|-----|----|----|
| id | num | | |
| not_paid_text_for_app | str | | |
| paid_text_for_app | str | | |
| pay_pack_url | str | | |
| status | num | | |
| title | str | | |
`result`中的`play_strategy`对象
| 字段名 | 类型 | 内容 | 备注 |
|------------|-------|----|----|
| strategies | array | | |
`result`中的`positive`对象:
| 字段 | 类型 | 内容 | 备注 |
| ----- | ---- | ---- | ---- |
| id | num | | |
| title | str | | |
| 字段 | 类型 | 内容 | 备注 |
|-------|-----|----|----|
| id | num | | |
| title | str | | |
`result`中的`publish`对象:
| 字段 | 类型 | 内容 | 备注 |
| --------------- | ---- | ---------------- | ------------------------ |
| is_finish | num | 完结状态 | 0未完结<br />1已完结 |
| is_started | num | 是否发布 | 0未发布<br />1已发布 |
| pub_time | str | 发布时间 | YYYY-MM-DDD hh:mm:ss |
| pub_time_show | str | 发布时间文字介绍 | |
| unknow_pub_date | num | 0 | 作用尚不明确 |
| weekday | num | 0 | 作用尚不明确 |
| 字段 | 类型 | 内容 | 备注 |
|-----------------|-----|----------|----------------------|
| is_finish | num | 完结状态 | 0未完结<br />1已完结 |
| is_started | num | 是否发布 | 0未发布<br />1已发布 |
| pub_time | str | 发布时间 | YYYY-MM-DDD hh:mm:ss |
| pub_time_show | str | 发布时间文字介绍 | |
| unknow_pub_date | num | 0 | 作用尚不明确 |
| weekday | num | 0 | 作用尚不明确 |
`result`中的`rating`对象:
| 字段 | 类型 | 内容 | 备注 |
| ----- | ---- | ------------ | ---- |
| count | num | 总计评分人数 | |
| score | num | 评分 | |
| 字段 | 类型 | 内容 | 备注 |
|-------|-----|--------|----|
| count | num | 总计评分人数 | |
| score | num | 评分 | |
`result`中的`rights`对象:
| 字段 | 类型 | 内容 | 备注 |
| ----------------- | ---- | -------- | ------------------------------- |
| allow_bp | num | | |
| allow_bp_rank | num | | |
| allow_download | num | | |
| allow_review | num | | |
| area_limit | num | | |
| ban_area_show | num | | |
| can_watch | num | | |
| copyright | str | 版权标志 | bilibili授权<br />dujia独家 |
| forbid_pre | num | | |
| is_cover_show | num | | |
| is_preview | num | | |
| only_vip_download | num | | |
| resource | str | | |
| watch_platform | num | | |
| 字段 | 类型 | 内容 | 备注 |
|-------------------|-----|------|---------------------------|
| allow_bp | num | | |
| allow_bp_rank | num | | |
| allow_download | num | | |
| allow_review | num | | |
| area_limit | num | | |
| ban_area_show | num | | |
| can_watch | num | | |
| copyright | str | 版权标志 | bilibili授权<br />dujia独家 |
| forbid_pre | num | | |
| freya_white | num | | |
| is_cover_show | num | | |
| is_preview | num | | |
| only_vip_download | num | | |
| resource | str | | |
| watch_platform | num | | |
`result`中的`seasons`数组:
| 项 | 类型 | 内容 | 备注 |
| ---- | ---- | ----------------- | ------------ |
| 0 | obj | 同系列剧集1 | |
| n | obj | 同系列剧集n+1 | 按照顺序排列 |
| …… | obj | | |
| 项 | 类型 | 内容 | 备注 |
|----|-----|------------|--------|
| 0 | obj | 同系列剧集1 | |
| n | obj | 同系列剧集n+1 | 按照顺序排列 |
| …… | obj | | |
`seasons`数组中的对象:
| 字段 | 类型 | 内容 | 备注 |
| ------------ | ---- | ---- | ---- |
| badge | str | | |
| badge_info | obj | | |
| badge_type | num | | |
| cover | str | | |
| media_id | str | | |
| new_ep | num | | |
| season_id | obj | | |
| season_title | num | | |
| season_type | str | | |
| stat | obj | | |
| 字段 | 类型 | 内容 | 备注 |
|-----------------------|------|----|----|
| badge | str | | |
| badge_info | obj | | |
| badge_type | num | | |
| cover | str | | |
| enable_vt | bool | | |
| horizontal_cover_1610 | str | | |
| horizontal_cover_169 | str | | |
| icon_font | obj | | |
| media_id | num | | |
| new_ep | obj | | |
| season_id | num | | |
| season_title | str | | |
| season_type | num | | |
| stat | obj | | |
`seasons`中的`badge_info`对象
| 字段名 | 类型 | 内容 | 备注 |
|----------------|-----|----|----|
| bg_color | str | | |
| bg_color_night | str | | |
| text | str | | |
`seasons`中的`icon_font`对象
| 字段名 | 类型 | 内容 | 备注 |
|------|-----|----|----|
| name | str | | |
| text | str | | |
`seasons`中的`new_ep`对象
| 字段名 | 类型 | 内容 | 备注 |
|------------|-----|----|----|
| cover | str | | |
| id | num | | |
| index_show | str | | |
`seasons`中的`stat`对象
| 字段名 | 类型 | 内容 | 备注 |
|---------------|-----|----|----|
| favorites | num | | |
| series_follow | num | | |
| views | num | | |
| vt | num | | |
`result`中的`section`数组:
| 项 | 类型 | 内容 | 备注 |
| ---- | ---- | ----------------- | ------------ |
| 0 | obj | 其他内容块1 | |
| n | obj | 其他内容块n+1 | 按照顺序排列 |
| …… | obj | | |
| 项 | 类型 | 内容 | 备注 |
|----|-----|------------|--------|
| 0 | obj | 其他内容块1 | |
| n | obj | 其他内容块n+1 | 按照顺序排列 |
| …… | obj | | |
`section`数组中的对象:
| 字段 | 类型 | 内容 | 备注 |
| ---------- | ----- | -------- | ---- |
| episode_id | num | 0 | |
| episodes | array | 板块内容 | |
| id | num | 板块id | |
| title | str | 板块标题 | |
| type | num | | |
| 字段 | 类型 | 内容 | 备注 |
|-------------|-------|-------|----|
| attr | num | | |
| episode_id | num | 0 | |
| episode_ids | array | | |
| episodes | array | 板块内容 | |
| id | num | 板块id | |
| report | obj | | |
| title | str | 板块标题 | |
| type | num | | |
| type2 | num | | |
`episodes`数组中的对象
| 字段名 | 类型 | 内容 | 备注 |
|--------------------|------|----|----|
| aid | num | | |
| archive_attr | num | | |
| badge | str | | |
| badge_info | obj | | |
| badge_type | num | | |
| bvid | str | | |
| cid | num | | |
| cover | str | | |
| dimension | obj | | |
| duration | num | | |
| enable_vt | bool | | |
| ep_id | num | | |
| from | str | | |
| icon_font | obj | | |
| id | num | | |
| interaction | obj | | |
| is_view_hide | bool | | |
| link | str | | |
| link_type | str | | |
| long_title | str | | |
| pub_time | num | | |
| pv | num | | |
| release_date | str | | |
| report | obj | | |
| rights | obj | | |
| section_type | num | | |
| share_copy | str | | |
| share_url | str | | |
| short_link | str | | |
| show_title | str | | |
| showDrmLoginDialog | bool | | |
| skip | obj | | |
| stat | obj | | |
| stat_for_unity | obj | | |
| status | num | | |
| subtitle | str | | |
| title | str | | |
| toast_title | str | | |
| up_info | obj | | |
| vid | str | | |
`badge_info`对象
| 字段名 | 类型 | 内容 | 备注 |
|----------------|-----|----|----|
| bg_color | str | | |
| bg_color_night | str | | |
| text | str | | |
`dimension`对象
| 字段名 | 类型 | 内容 | 备注 |
|--------|-----|----|----|
| height | num | | |
| rotate | num | | |
| width | num | | |
`icon_font`对象
| 字段名 | 类型 | 内容 | 备注 |
|------|-----|----|----|
| name | str | | |
| text | str | | |
`interaction`对象
| 字段名 | 类型 | 内容 | 备注 |
|---------------|------|----|----|
| graph_version | num | | |
| interaction | bool | | |
`report`对象
| 字段名 | 类型 | 内容 | 备注 |
|--------------|-----|----|----|
| aid | str | | |
| ep_title | str | | |
| position | str | | |
| season_id | str | | |
| season_type | str | | |
| section_id | str | | |
| section_type | str | | |
`rights`对象
| 字段名 | 类型 | 内容 | 备注 |
|----------------|-----|----|----|
| allow_demand | num | | |
| allow_dm | num | | |
| allow_download | num | | |
| area_limit | num | | |
`skip`对象
| 字段名 | 类型 | 内容 | 备注 |
|-----|-----|----|----|
| ed | obj | | |
| op | obj | | |
`ed`对象
| 字段名 | 类型 | 内容 | 备注 |
|-------|-----|----|----|
| end | num | | |
| start | num | | |
`op`对象
| 字段名 | 类型 | 内容 | 备注 |
|-------|-----|----|----|
| end | num | | |
| start | num | | |
`stat_for_unity`对象
### 根对象 -> `result`对象 -> `section`数组中的对象 -> `episodes`数组中的对象 -> `stat_for_unity`对象
| 字段名 | 类型 | 内容 | 备注 |
|---------|-----|----|----|
| coin | num | | |
| danmaku | obj | | |
| likes | num | | |
| reply | num | | |
| vt | obj | | |
`danmaku`对象
| 字段名 | 类型 | 内容 | 备注 |
|-----------|-----|----|----|
| icon | str | | |
| pure_text | str | | |
| text | str | | |
| value | num | | |
`vt`对象
| 字段名 | 类型 | 内容 | 备注 |
|-----------|-----|----|----|
| icon | str | | |
| pure_text | str | | |
| text | str | | |
| value | num | | |
`stat`对象
| 字段名 | 类型 | 内容 | 备注 |
|----------|-----|----|----|
| coin | num | | |
| danmakus | num | | |
| likes | num | | |
| play | num | | |
| reply | num | | |
| vt | num | | |
`up_info`对象
| 字段名 | 类型 | 内容 | 备注 |
|--------------|-----|----|----|
| avatar | str | | |
| follower | num | | |
| is_follow | num | | |
| mid | num | | |
| uname | str | | |
| verify_type | num | | |
| verify_type2 | num | | |
`report`对象
| 字段名 | 类型 | 内容 | 备注 |
|--------------|-----|----|----|
| season_id | str | | |
| season_type | str | | |
| sec_title | str | | |
| section_id | str | | |
| section_type | str | | |
`result`中的`series`对象:
| 字段 | 类型 | 内容 | 备注 |
| ------------ | ---- | ------ | ---- |
| series_id | num | 系列id | |
| series_title | str | 系列名 | |
| 字段 | 类型 | 内容 | 备注 |
|--------------|-----|------|----|
| display_type | num | | |
| series_id | num | 系列id | |
| series_title | str | 系列名 | |
`result`中的`show`对象:
| 字段 | 类型 | 内容 | 备注 |
| ----------- | ---- | -------- | -------------------- |
| wide_screen | num | 是否全屏 | 0正常<br />1全屏 |
| 字段 | 类型 | 内容 | 备注 |
|-------------|-----|------|----------------|
| wide_screen | num | 是否全屏 | 0正常<br />1全屏 |
`result`中的`stat`对象:
| 字段 | 类型 | 内容 | 备注 |
| --------- | ---- | ------ | ---- |
| coins | num | 投币数 | |
| danmakus | num | 弹幕数 | |
| favorites | num | 收藏数 | |
| likes | num | 点赞数 | |
| reply | num | 评论数 | |
| share | num | 分享数 | |
| views | num | 播放数 | |
| 字段 | 类型 | 内容 | 备注 |
|-------------|-----|-----|----|
| coins | num | 投币数 | |
| danmakus | num | 弹幕数 | |
| favorite | num | | |
| favorites | num | 收藏数 | |
| follow_text | str | | |
| hot | num | | |
| likes | num | 点赞数 | |
| reply | num | 评论数 | |
| share | num | 分享数 | |
| views | num | 播放数 | |
| vt | num | | |
`result`中的`up_info`对象:
| 字段 | 类型 | 内容 | 备注 |
| ----------- | ---- | ----------- | ---- |
| avatar | str | 头像图片url | |
| follower | num | 粉丝数 | |
| is_follow | num | 0 | |
| mid | num | UP主mid | |
| pendant | obj | | |
| theme_type | num | 0 | |
| uname | str | UP主昵称 | |
| verify_type | num | | |
| vip_status | num | | |
| vip_type | num | | |
| 字段 | 类型 | 内容 | 备注 |
|----------------------|-----|---------|----|
| avatar | str | 头像图片url | |
| avatar_subscript_url | str | | |
| follower | num | 粉丝数 | |
| is_follow | num | 0 | |
| mid | num | UP主mid | |
| nickname_color | str | | |
| pendant | obj | | |
| theme_type | num | 0 | |
| uname | str | UP主昵称 | |
| verify_type | num | | |
| vip_label | obj | | |
| vip_status | num | | |
| vip_type | num | | |
`up_info`中的`pendant`对象
| 字段名 | 类型 | 内容 | 备注 |
|-------|-----|----|----|
| image | str | | |
| name | str | | |
| pid | num | | |
`up_info`中的`vip_label`对象
| 字段名 | 类型 | 内容 | 备注 |
|--------------|-----|----|----|
| bg_color | str | | |
| bg_style | num | | |
| border_color | str | | |
| text | str | | |
| text_color | str | | |
`result`中的`user_status`对象
| 字段名 | 类型 | 内容 | 备注 |
|---------------|-----|----|----|
| area_limit | num | | |
| ban_area_show | num | | |
| follow | num | | |
| follow_status | num | | |
| login | num | | |
| pay | num | | |
| pay_pack_paid | num | | |
| sponsor | num | | |
# 获取剧集分集信息

View File

@ -5,6 +5,8 @@
> https://api.bilibili.com/x/web-interface/zone
>
> https://api.live.bilibili.com/xlive/web-room/v1/index/getIpInfo
>
> https://app.bilibili.com/x/resource/ip
*请求方式GET*

View File

@ -3,6 +3,7 @@
## 动态详情
> https://api.bilibili.com/x/polymer/web-dynamic/v1/detail
> https://api.bilibili.com/x/polymer/web-dynamic/desktop/v1/detail
*请求方式: GET*

View File

@ -3,6 +3,8 @@
## 获取用户空间动态
> https://api.bilibili.com/x/polymer/web-dynamic/v1/feed/space
>
> https://api.bilibili.com/x/polymer/web-dynamic/desktop/v1/feed/space
*请求方法: GET*

File diff suppressed because it is too large Load Diff

View File

@ -408,10 +408,10 @@ curl 'https://api.live.bilibili.com/xlive/web-room/v1/dM/AjaxSetConfig' \
| bubble | num | (?) | 非必要 | 值为`0` |
| room\_type | num | (?) | 非必要 | `0` |
| jumpfrom | num | (?) | 非必要 | `0` |
| reply\_mid | num | (?) | 非必要 | `0` |
| reply\_mid | num | 要“@”的用户mid | 非必要 | 默认为`0` |
| reply\_attr | num | (?) | 非必要 | `0` |
| reply\_uname | str | (?) | 非必要 | `""` |
| replay\_dmid | str | (?) | 非必要 | `""` |
| reply\_uname | str | 要“@”的用户名称 | 非必要 | 默认为`""`提供reply\_mid时不需要提供 |
| replay\_dmid | str | 要回复的弹幕id | 非必要 | 默认为`""` |
| statistics | str | (?) | 非必要 | `{"appId":100,"platform":5}` |
| csrf_token | str | 同csrf | 非必要 | |

View File

@ -158,4 +158,160 @@ curl -G 'https://api.live.bilibili.com/xlive/web-ucenter/user/following' \
```
</details>
## 用户关注的所有UP且正在直播的列表PC端
> https://api.live.bilibili.com/xlive/web-ucenter/v1/xfetter/GetWebList
*请求方式GET*
认证方式CookieSESSDATA
**url参数**
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|-----|------|----------------------------------|-----|------------------|
| hit_ab | bool | 会影响到json回复中部分字段的值具体的影响效果会在下表列出。 | 非必要 | 默认为true不填为false |
**json回复**
根对象:
| 字段 | 类型 | 内容 | 备注 |
|---------|-----|------|------------------|
| code | num | 返回值 | 0成功<br />1参数错误 |
| msg | str | 错误信息 | 默认为空 |
| message | str | 错误信息 | 默认为空 |
| data | obj | 信息本体 | |
`data`对象:
| 字段 | 类型 | 内容 | 备注 |
|---------|------|--------------|--------------------------------------------------------------------|
| rooms | list | 正在直播的房间列表 | 受到url参数hit_ab的影响<br />true时能够获取到全部正在开播的直播间列表<br />false时只会获取到前10个。 |
| list | list | 正在直播的房间列表 | 疑似与rooms字段的内容相同并且同样受到url参数hit_ab的影响受影响的效果同rooms字段。 |
| count | num | 关注列表中正在直播的人数 | 受到url参数hit_ab的影响hit_ab为true时为0 |
| not_living_num | num | 关注列表中未开播的人数 | 受到url参数hit_ab的影响hit_ab为false时为0 |
`rooms`对象:
| 字段 | 类型 | 内容 | 备注 |
|---------|------|--------------|---------------------------------------------------------------|
| title | num | 直播间标题 | |
| room_id | num | 直播间真实id | |
| uid | num | 目标用户mid | |
| online | num | 观看人数 | 受url参数hit_ab的影响hit_ab为true时为0 |
| live_time | num | 已经直播的时长(单位为秒) | 受url参数hit_ab的影响hit_ab为true时为0 |
| live_status | num | 开播状态 | 0未开播<br />1直播中<br />2轮播中 |
| short_id | num | 直播间短id | 受url参数hit_ab的影响hit_ab为true时为0 |
| area | num | 分区id | 受url参数hit_ab的影响hit_ab为true时为0 |
| area_name | str | 分区名称 | |
| area_v2_id | num | 二级分区id | |
| area_v2_name | str | 二级分区名 | |
| area_v2_parent_name | str | 二级父分区名 | |
| area_v2_parent_id | num | 二级父分区id | |
| uname | str | 用户名 | |
| face | str | 用户头像图片链接 | |
| tag_name | str | 标签名 | |
| tags | str | 标签列表 | |
| cover_from_user | str | 直播间封面图片链接 | 受url参数hit_ab的影响hit_ab为true时为0 |
| keyframe | str | 关键帧图片链接 | 用于网页端悬浮展示。受url参数hit_ab的影响hit_ab为true时为0 |
| lock_till | str | 未知 | 时间日期格式为yyyy-MM-dd hh-mm-ss。<br />受url参数hit_ab的影响hit_ab为true时为空字符串 |
| hidden_till | str | 未知 | 时间日期格式为yyyy-MM-dd hh-mm-ss。<br />受url参数hit_ab的影响hit_ab为true时为空字符串 |
| broadcast_type | num | 广播类型 | |
| is_encrypt | bool | 直播间是否加密 | |
| link | str | 直播间链接 | 受url参数hit_ab的影响hit_ab为true时为空字符串 |
| nickname | str | 用户昵称 | 受url参数hit_ab的影响hit_ab为true时为空字符串 |
| roomname | str | 直播间名称 | 受url参数hit_ab的影响hit_ab为true时为空字符串 |
| roomid | num | 直播间真实id | 受url参数hit_ab的影响hit_ab为true时为0 |
| liveTime | num | 开播时间 | 受url参数hit_ab的影响hit_ab为true时为0 |
**示例:**
```shell
curl -G 'https://api.live.bilibili.com/xlive/web-ucenter/v1/xfetter/GetWebList' \
--header 'Cookie: SESSDATA=xxx' \
--data-urlencode 'hit_ab=false'
```
<details>
<summary>查看响应示例:</summary>
```json
{
"code": 0,
"message": "0",
"ttl": 1,
"data": {
"rooms": [
{
"title": "虚拟区优质跨年直播展演",
"room_id": 21496316,
"uid": 441666939,
"online": 2308,
"live_time": 17313,
"live_status": 1,
"short_id": 36,
"area": 6,
"area_name": "生活娱乐",
"area_v2_id": 744,
"area_v2_name": "虚拟Singer",
"area_v2_parent_name": "虚拟主播",
"area_v2_parent_id": 9,
"uname": "虚拟区官方频道",
"face": "https://i0.hdslb.com/bfs/face/a26b52bc7837ce6867802575d300ed70d5e6f2d5.jpg",
"tag_name": "",
"tags": "",
"cover_from_user": "https://i0.hdslb.com/bfs/live/new_room_cover/5d7a4526062cf1dc4e88e016638a856c1ac7db03.jpg",
"keyframe": "https://i0.hdslb.com/bfs/live-key-frame/keyframe12311645000021496316pkuk08.jpg",
"lock_till": "0000-00-00 00:00:00",
"hidden_till": "0000-00-00 00:00:00",
"broadcast_type": 0,
"is_encrypt": false,
"link": "https://live.bilibili.com/21496316?broadcast_type=0",
"nickname": "虚拟区官方频道",
"roomname": "虚拟区优质跨年直播展演",
"roomid": 21496316,
"liveTime": 1735617438
}
],
"list": [
{
"title": "虚拟区优质跨年直播展演",
"room_id": 21496316,
"uid": 441666939,
"online": 2308,
"live_time": 17313,
"live_status": 1,
"short_id": 36,
"area": 6,
"area_name": "生活娱乐",
"area_v2_id": 744,
"area_v2_name": "虚拟Singer",
"area_v2_parent_name": "虚拟主播",
"area_v2_parent_id": 9,
"uname": "虚拟区官方频道",
"face": "https://i0.hdslb.com/bfs/face/a26b52bc7837ce6867802575d300ed70d5e6f2d5.jpg",
"tag_name": "",
"tags": "",
"cover_from_user": "https://i0.hdslb.com/bfs/live/new_room_cover/5d7a4526062cf1dc4e88e016638a856c1ac7db03.jpg",
"keyframe": "https://i0.hdslb.com/bfs/live-key-frame/keyframe12311645000021496316pkuk08.jpg",
"lock_till": "0000-00-00 00:00:00",
"hidden_till": "0000-00-00 00:00:00",
"broadcast_type": 0,
"is_encrypt": false,
"link": "https://live.bilibili.com/21496316?broadcast_type=0",
"nickname": "虚拟区官方频道",
"roomname": "虚拟区优质跨年直播展演",
"roomid": 21496316,
"liveTime": 1735617438
}
],
"count": 1,
"not_living_num": 0
}
}
```
</details>

191
docs/live/gift.md Normal file
View File

@ -0,0 +1,191 @@
## 获取直播间内礼物
> https://api.live.bilibili.com/xlive/web-room/v1/giftPanel/roomGiftList
*请求方式GET*
认证方式:无 (无需添加Cookie)
**url参数**
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| -------------- | ---- | ---------- | ------ | -------------------------------- |
| platform | str | web | 必要 | |
| room_id | num | 主播房间号 | 必要 | |
| area_parent_id | num | 直播分区 | 非必要 | 不填写可能会获取不到部分活动礼物 |
| area_id | num | 直播子分区 | 非必要 | 不填写可能会获取不到部分活动礼物 |
**json回复**
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | ------- |
| code | num | 返回值 | 0成功 |
| message | str | 错误信息 | |
| data | obj | 信息本体 | |
`data.gift_config.base_config.list` 数组中的对象:
| 字段 | 类型 | 内容 | 备注 |
| ------------------- | ---- | ------------------- | --------------------------- |
| id | num | 礼物id | |
| name | str | 礼物名字 | |
| price | num | 该值/1000的单位为元 | |
| type | num | | |
| coin_type | str | 一般为gold即电池 | |
| effect | num | 特效类型? | 观察到可能出现的值为023 |
| stay_time | num | 礼物展示的时间? | 均为3 |
| animation_frame_num | num | 礼物动画帧数 | |
| desc | str | 礼物描述 | |
| img_basic | str | 礼物图片 | |
| gif | str | 礼物gif动画 | |
**示例:**
查询`room_id=23375552`的直播间礼物信息
```shell
curl 'https://api.live.bilibili.com/xlive/web-room/v1/giftPanel/roomGiftList?platform=pc&room_id=23174842'
```
## 获取盲盒概率
> https://api.live.bilibili.com/xlive/general-interface/v1/blindFirstWin/getInfo
*请求方式GET*
认证方式:无 (无需添加Cookie)
**url参数**
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| ------- | ---- | ---- | ---------------- | ---- |
| gift_id | num | | 盲盒对应的礼物id | |
**json回复**
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | ------- |
| code | num | 返回值 | 0成功 |
| message | str | 错误信息 | |
| data | obj | 信息本体 | |
`data`中的对象:
| 字段 | 类型 | 内容 | 备注 |
| --------------- | ----- | -------- | ---- |
| note_text | str | 描述 | |
| blind_price | num | 盲盒价格 | |
| blind_gift_name | str | 盲盒名字 | |
| gifts | array | 盲盒价格 | |
`gifts数组`中的对象:
| 字段 | 类型 | 内容 | 备注 |
| --------- | ---- | -------------- | ---- |
| gift_id | num | 爆出的礼物id | |
| price | num | 爆出的礼物价格 | |
| gift_name | str | 礼物名字 | |
| gift_img | str | 礼物图片 | |
| chance | str | 概率 | |
**示例:**
查询`心动盲盒`的概率
```shell
curl 'https://api.live.bilibili.com/xlive/general-interface/v1/blindFirstWin/getInfo?gift_id=32251'
```
<details>
<summary>查看响应示例:</summary>
```json
{
"code": 0,
"message": "0",
"ttl": 1,
"data": {
"note_text": "每日1次机会首次投喂盲盒时享首抽福利",
"blind_price": 15000,
"gifts": [
{
"gift_id": 32125,
"price": 2000,
"gift_name": "电影票",
"gift_img": "https://s1.hdslb.com/bfs/live/20864a10beaea541c7dce264d5bbc56676d63e4f.png",
"is_win_gift": 0,
"chance": "6%"
},
{
"gift_id": 32126,
"price": 9000,
"gift_name": "棉花糖",
"gift_img": "https://s1.hdslb.com/bfs/live/b555682af41551c28f8ad19dc5c4ed87943c84f4.png",
"is_win_gift": 0,
"chance": "44.5%"
},
{
"gift_id": 32128,
"price": 16000,
"gift_name": "爱心抱枕",
"gift_img": "https://s1.hdslb.com/bfs/live/824714c830966d7bec381e35ef808b1f478e21ee.png",
"is_win_gift": 1,
"chance": "45.56%"
},
{
"gift_id": 32281,
"price": 40000,
"gift_name": "绮彩权杖",
"gift_img": "https://s1.hdslb.com/bfs/live/5cecbf274a4205ef76ed3f11c6540f0c6743363c.png",
"is_win_gift": 1,
"chance": "3.7%"
},
{
"gift_id": 32282,
"price": 100000,
"gift_name": "时空之站",
"gift_img": "https://s1.hdslb.com/bfs/live/9ee53aedda3c891fdf23d35c14b3bdc4e0504a97.png",
"is_win_gift": 1,
"chance": "0.12%"
},
{
"gift_id": 34894,
"price": 200000,
"gift_name": "蛇形护符",
"gift_img": "https://s1.hdslb.com/bfs/live/2127dd998083a8981ef4e31a4e6787ce5a4d0f9f.png",
"is_win_gift": 1,
"chance": "0.08%"
},
{
"gift_id": 32132,
"price": 2233000,
"gift_name": "浪漫城堡",
"gift_img": "https://s1.hdslb.com/bfs/live/216fac597b3c5619d56ed332bcf5f880ea657e8e.png",
"is_win_gift": 1,
"chance": "0.04%"
}
],
"friday_yq_id": 106472,
"is_first": true,
"ab_res": 1,
"uid": 451537183,
"conf_id": 51,
"pre_imgs": [
{
"gift_id": 32132,
"preview_url": "http://i0.hdslb.com/bfs/live/e40708d0c8ef9505027ac33ad2a17a23e8e01139.mp4"
}
],
"blind_gift_name": "心动盲盒"
}
}
```
</details>

592
docs/live/guard.md Normal file
View File

@ -0,0 +1,592 @@
## 查询大航海成员
> https://api.live.bilibili.com/xlive/app-room/v2/guardTab/topListNew
*请求方式: GET*
认证方式无需Cookie
**URL参数**
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| --------- | ---- | -------- | ------ | --------------------------------------- |
| roomid | num | 直播间号 | 必要 | |
| page | num | 页数 | 必要 | |
| ruid | num | 主播id | 必要 | |
| page_size | num | 页大小 | 非必要 | 默认20最大30若超过则作为10处理 |
| typ | num | 排序方式 | 非必要 | typ=3,4,5分别为按周/月/总航海亲密度排序 |
**json回复**
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | ------- |
| code | num | 返回值 | 0成功 |
| message | str | 错误信息 | |
| data | obj | 信息本体 | |
`data`对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ----- | -------------- | --------------------------------------- |
| info | obj | 主播mid | |
| top3 | array | 整个列表的top3 |
| list | array | 大航海成员 | page=1时list[0]得到的会是榜单的第四名 |
`list`对象:
| 字段 | 类型 | 内容 | 备注 |
| --------- | ---- | -------- | ----- |
| ruid | num | 主播UID | |
| rank | num | 榜单排名 | |
| accompany | num | 陪伴天数 | |
| uinfo | obj | 用户信息 | |
| score | num | 亲密度 | 恒为0 |
`list`对象的`uinfo`
| 字段 | 类型 | 内容 | 备注 |
| ----- | ---- | ------------ | -------------------------------------------------------- |
| uid | num | 用户UID | |
| base | obj | 用户基本信息 | |
| medal | obj | 粉丝牌 | 与[此处](/bilibili-API-collect/docs/user/medals)基本一致 |
`list`对象的`uinfo`的`base`
| 字段 | 类型 | 内容 | 备注 |
| ---- | ------ | -------- | ---- |
| name | string | 用户名 | |
| face | string | 用戶头像 | |
**示例:**
查询`23174842`直播间的大航海成员
```shell
curl ' https://api.live.bilibili.com/xlive/app-room/v2/guardTab/topListNew?ruid=504140200&roomid=23174842&page=1'
```
<details>
<summary>查看响应示例:</summary>
```json
{
"code": 0,
"message": "0",
"ttl": 1,
"data": {
"info": {
"num": 23,
"page": 10,
"now": 1,
"achievement_level": 1,
"anchor_guard_achieve_level": 0,
"achievement_icon_src": "",
"buy_guard_icon_src": "https://i0.hdslb.com/bfs/live/4a481b491767f9d91165a4631252de4503d63a17.png",
"rule_doc_src": "",
"ex_background_src": "https://i0.hdslb.com/bfs/live/d0e938839a9dee733e8a7f9f6a3a132108ae22bc.png",
"color_start": "",
"color_end": "",
"tab_color": [
"#4DDDDBD5",
"#26CFCBC0"
],
"title_color": [
"#FFC9CCD0",
"#FF9499A0"
]
},
"list": [
{
"ruid": 504140200,
"rank": 4,
"accompany": 36,
"uinfo": {
"uid": 432911315,
"base": {
"name": "幻想乡的年华",
"face": "https://i2.hdslb.com/bfs/face/5ddde7a8466aa2d60d082ccfc08a0267445b193b.jpg",
"name_color": 0,
"is_mystery": false,
"risk_ctrl_info": null,
"origin_info": {
"name": "幻想乡的年华",
"face": "https://i2.hdslb.com/bfs/face/5ddde7a8466aa2d60d082ccfc08a0267445b193b.jpg"
},
"official_info": {
"role": 0,
"title": "",
"desc": "",
"type": -1
},
"name_color_str": ""
},
"medal": {
"name": "软饭兔",
"level": 25,
"color_start": 398668,
"color_end": 6850801,
"color_border": 16771156,
"color": 398668,
"id": 0,
"typ": 0,
"is_light": 1,
"ruid": 504140200,
"guard_level": 2,
"score": 0,
"guard_icon": "",
"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": null,
"guard": {
"level": 2,
"expired_str": ""
},
"uhead_frame": null,
"guard_leader": null
},
"score": 0
},
{
"ruid": 504140200,
"rank": 5,
"accompany": 513,
"uinfo": {
"uid": 7816639,
"base": {
"name": "在这样的时光",
"face": "https://i1.hdslb.com/bfs/face/3b0091dda76e095351907e9c708b9571716aa3e1.jpg",
"name_color": 0,
"is_mystery": false,
"risk_ctrl_info": null,
"origin_info": {
"name": "在这样的时光",
"face": "https://i1.hdslb.com/bfs/face/3b0091dda76e095351907e9c708b9571716aa3e1.jpg"
},
"official_info": {
"role": 0,
"title": "",
"desc": "",
"type": -1
},
"name_color_str": ""
},
"medal": {
"name": "软饭兔",
"level": 30,
"color_start": 2951253,
"color_end": 10329087,
"color_border": 6809855,
"color": 2951253,
"id": 0,
"typ": 0,
"is_light": 1,
"ruid": 504140200,
"guard_level": 3,
"score": 0,
"guard_icon": "",
"honor_icon": "",
"v2_medal_color_start": "#9660E5CC",
"v2_medal_color_end": "#9660E5CC",
"v2_medal_color_border": "#D47AFFFF",
"v2_medal_color_text": "#FFFFFFFF",
"v2_medal_color_level": "#6C00A099",
"user_receive_count": 0
},
"wealth": null,
"title": null,
"guard": {
"level": 3,
"expired_str": ""
},
"uhead_frame": null,
"guard_leader": null
},
"score": 0
}
],
"top3": [
{
"ruid": 504140200,
"rank": 1,
"accompany": 306,
"uinfo": {
"uid": 85743027,
"base": {
"name": "-小fa---",
"face": "https://i0.hdslb.com/bfs/face/82b2d0fef27b7b69be0d121b3ef0491504bbaae8.jpg",
"name_color": 0,
"is_mystery": false,
"risk_ctrl_info": null,
"origin_info": {
"name": "-小fa---",
"face": "https://i0.hdslb.com/bfs/face/82b2d0fef27b7b69be0d121b3ef0491504bbaae8.jpg"
},
"official_info": {
"role": 0,
"title": "",
"desc": "",
"type": -1
},
"name_color_str": ""
},
"medal": {
"name": "软饭兔",
"level": 30,
"color_start": 2951253,
"color_end": 10329087,
"color_border": 16771156,
"color": 2951253,
"id": 0,
"typ": 0,
"is_light": 1,
"ruid": 504140200,
"guard_level": 2,
"score": 0,
"guard_icon": "",
"honor_icon": "",
"v2_medal_color_start": "#9660E5CC",
"v2_medal_color_end": "#9660E5CC",
"v2_medal_color_border": "#D47AFFFF",
"v2_medal_color_text": "#FFFFFFFF",
"v2_medal_color_level": "#6C00A099",
"user_receive_count": 0
},
"wealth": null,
"title": null,
"guard": {
"level": 2,
"expired_str": ""
},
"uhead_frame": null,
"guard_leader": null
},
"score": 0
},
{
"ruid": 504140200,
"rank": 2,
"accompany": 1005,
"uinfo": {
"uid": 28601039,
"base": {
"name": "捏软软的上帝",
"face": "https://i2.hdslb.com/bfs/face/1f2a9b20294452d5c6ce9f40c66b186ef57b92e5.jpg",
"name_color": 0,
"is_mystery": false,
"risk_ctrl_info": null,
"origin_info": {
"name": "捏软软的上帝",
"face": "https://i2.hdslb.com/bfs/face/1f2a9b20294452d5c6ce9f40c66b186ef57b92e5.jpg"
},
"official_info": {
"role": 0,
"title": "",
"desc": "",
"type": -1
},
"name_color_str": ""
},
"medal": {
"name": "软饭兔",
"level": 29,
"color_start": 2951253,
"color_end": 10329087,
"color_border": 16771156,
"color": 2951253,
"id": 0,
"typ": 0,
"is_light": 1,
"ruid": 504140200,
"guard_level": 2,
"score": 0,
"guard_icon": "",
"honor_icon": "",
"v2_medal_color_start": "#9660E5CC",
"v2_medal_color_end": "#9660E5CC",
"v2_medal_color_border": "#D47AFFFF",
"v2_medal_color_text": "#FFFFFFFF",
"v2_medal_color_level": "#6C00A099",
"user_receive_count": 0
},
"wealth": null,
"title": null,
"guard": {
"level": 2,
"expired_str": ""
},
"uhead_frame": null,
"guard_leader": null
},
"score": 0
},
{
"ruid": 504140200,
"rank": 3,
"accompany": 95,
"uinfo": {
"uid": 3546834244995088,
"base": {
"name": "老实逸流-恩师软软riu",
"face": "https://i1.hdslb.com/bfs/face/0b1f95d926acfb06c8d7d9c66d2e1fabf3e1a3c4.jpg",
"name_color": 0,
"is_mystery": false,
"risk_ctrl_info": null,
"origin_info": {
"name": "老实逸流-恩师软软riu",
"face": "https://i1.hdslb.com/bfs/face/0b1f95d926acfb06c8d7d9c66d2e1fabf3e1a3c4.jpg"
},
"official_info": {
"role": 0,
"title": "",
"desc": "",
"type": -1
},
"name_color_str": ""
},
"medal": {
"name": "软饭兔",
"level": 28,
"color_start": 398668,
"color_end": 6850801,
"color_border": 16771156,
"color": 398668,
"id": 0,
"typ": 0,
"is_light": 1,
"ruid": 504140200,
"guard_level": 2,
"score": 0,
"guard_icon": "",
"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": null,
"guard": {
"level": 2,
"expired_str": ""
},
"uhead_frame": null,
"guard_leader": null
},
"score": 0
}
],
"my_follow_info": {
"accompany_days": 0,
"auto_renew": 0,
"renew_remind": {
"content": "",
"type": 0,
"hint": ""
},
"rank": 0,
"ruid": 0,
"uinfo": null,
"expired_time": ""
},
"guard_warn": {
"is_warn": 0,
"warn": "",
"expired": 0,
"will_expired": 0,
"address": ""
},
"exist_benefit": false,
"remind_benefit": "立即上船",
"ab": {
"guard_accompany_list": 1
},
"remind_msg": "头号粉丝大航海,上船后可上榜",
"typ": 0,
"extop": null,
"guard_leader": null,
"main_text": "",
"sub_text": "",
"btn_type": 1,
"prompt_text": "头号粉丝大航海,等你来上船"
}
}
```
</details>
## 查询粉丝团成员
> https://api.live.bilibili.com/xlive/general-interface/v1/rank/getFansMembersRank
*请求方式: GET*
认证方式无需Cookie
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| --------- | ---- | -------------- | ------------------- | ----------------------------------------------------------------------------------------------- |
| page | num | 页数 | 必要 | |
| ruid | num | 主播id | 必要 | |
| page_size | num | 每页返回的数量 | 必要 | 最大30若超过则作为10处理 |
| rank_type | num | 排序方式 | 非必要 | 1按照粉丝牌还亮着的粉丝团成员的亲密度排序<br> 2按照**所有**没上过舰的粉丝团成员的亲密度排序 |
| ts | num | 13位时间戳 | 当rank_type=2时必要 | 该值>=1000即可 |
**json回复**
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | ------- |
| code | num | 返回值 | 0成功 |
| message | str | 错误信息 | |
| data | obj | 信息本体 | |
`data`对象:
| 字段 | 类型 | 内容 | 备注 |
| ------------ | ----- | -------------- | ---- |
| item | array | 内容 | |
| num | num | 粉丝团成员数量 |
| medal_status | num | |
`list`对象
| 字段 | 类型 | 内容 | 备注 |
| ------------------ | ---- | ---------------------------------------------------------------- | ---- |
| user_rank | num | 排名 |
| uid | num | 用户UID |
| name | str | 用户名 |
| face | str | 用户头像 |
| score | num | 亲密度 |
| medal_name | str | 粉丝牌名字 |
| level | num | 粉丝牌等级 |
| target_id | num | 主播UID |
| guard_level | num | 大航海类型123分别为总督提督舰长 |
| medal_color_start | num | 粉丝牌渐变起始色 |
| medal_color_end | num | 粉丝牌渐变结束色 |
| medal_color_border | num | 粉丝牌边框颜色 |
| guard_icon | str | 大航海图标URL |
| uinfo_medal | obj | 粉丝牌,与[此处](/bilibili-API-collect/docs/user/medals)基本一致 |
**示例:**
查询用户`504140200`的粉丝团成员
```shell
curl 'https://api.live.bilibili.com/xlive/general-interface/v1/rank/getFansMembersRank?ruid=504140200&page_size=10&page=1'
```
<details>
<summary>查看响应示例:</summary>
```json
{
"code": 0,
"message": "0",
"ttl": 1,
"data": {
"item": [
{
"user_rank": 1,
"uid": 85743027,
"name": "小软兔のfa",
"face": "https://i0.hdslb.com/bfs/face/bdbcabf8d927844ae4f8f9c65862077e29afb989.jpg",
"score": 50990540,
"medal_name": "软饭兔",
"level": 30,
"target_id": 504140200,
"special": "",
"guard_level": 3,
"medal_color_start": 2951253,
"medal_color_end": 10329087,
"medal_color_border": 6809855,
"guard_icon": "https://i0.hdslb.com/bfs/live/143f5ec3003b4080d1b5f817a9efdca46d631945.png",
"honor_icon": "",
"uinfo_medal": {
"name": "软饭兔",
"level": 30,
"color_start": 2951253,
"color_end": 10329087,
"color_border": 6809855,
"color": 0,
"id": 0,
"typ": 0,
"is_light": 1,
"ruid": 504140200,
"guard_level": 3,
"score": 50990540,
"guard_icon": "https://i0.hdslb.com/bfs/live/143f5ec3003b4080d1b5f817a9efdca46d631945.png",
"honor_icon": "",
"v2_medal_color_start": "#9660E5CC",
"v2_medal_color_end": "#9660E5CC",
"v2_medal_color_border": "#D47AFFFF",
"v2_medal_color_text": "#FFFFFFFF",
"v2_medal_color_level": "#6C00A099",
"user_receive_count": 0
},
"tag": null,
"is_pokeable": false
},
{
"user_rank": 2,
"uid": 7816639,
"name": "在这样的时光",
"face": "https://i1.hdslb.com/bfs/face/3b0091dda76e095351907e9c708b9571716aa3e1.jpg",
"score": 50704568,
"medal_name": "软饭兔",
"level": 30,
"target_id": 504140200,
"special": "",
"guard_level": 3,
"medal_color_start": 2951253,
"medal_color_end": 10329087,
"medal_color_border": 6809855,
"guard_icon": "https://i0.hdslb.com/bfs/live/143f5ec3003b4080d1b5f817a9efdca46d631945.png",
"honor_icon": "",
"uinfo_medal": {
"name": "软饭兔",
"level": 30,
"color_start": 2951253,
"color_end": 10329087,
"color_border": 6809855,
"color": 0,
"id": 0,
"typ": 0,
"is_light": 1,
"ruid": 504140200,
"guard_level": 3,
"score": 50704568,
"guard_icon": "https://i0.hdslb.com/bfs/live/143f5ec3003b4080d1b5f817a9efdca46d631945.png",
"honor_icon": "",
"v2_medal_color_start": "#9660E5CC",
"v2_medal_color_end": "#9660E5CC",
"v2_medal_color_border": "#D47AFFFF",
"v2_medal_color_text": "#FFFFFFFF",
"v2_medal_color_level": "#6C00A099",
"user_receive_count": 0
},
"tag": null,
"is_pokeable": false
}
],
"num": 89,
"medal_status": 1
}
}
```
</details>

View File

@ -726,7 +726,7 @@ curl -G 'https://api.live.bilibili.com/xlive/web-room/v1/index/getRoomBaseInfo'
| keyframe | str | 直播间关键帧url | |
| lock_till | str | 直播间封禁信息 | |
| hidden_till | str | 直播间隐藏信息 | |
| broadcast_type | num | 直播类型 | 0:普通直播<br />1手机直播 |
| broadcast_type | num | 直播类型 | 0普通直播<br />1手机直播 |
**示例:**
@ -829,7 +829,7 @@ curl 'https://api.live.bilibili.com/room/v1/Room/get_status_info_by_uids' \
| dm_type | num | 弹幕类型 | |
| uid | num | 弹幕发送者的UID | |
| nickname | str | 弹幕发送者的昵称 | |
| uname_color | str | 弹幕发送者的颜色? | |
| uname_color | str | 弹幕发送者的昵称颜色? | |
| timeline | str | 弹幕发送时间 | 格式为`yyyy-MM-dd HH:mm:ss` |
| isadmin | num | 是否为管理员 | |
| vip | num | 是否为VIP? ||
@ -839,9 +839,9 @@ curl 'https://api.live.bilibili.com/room/v1/Room/get_status_info_by_uids' \
| user_level | array | 用户等级信息? | 格式不明 |
| rank | num | 排名? | [用户空间详细信息](../user/info.md#获取用户详细信息) |
| teamid | num | | |
| rnd | str | 发送时间? | UNIX 秒级时间戳 |
| user_title | 用户标题? | 格式不明 |
| guard_level | | | |
| rnd | str | 随机数种子? | |
| user_title | str | 用户头衔? |格式不明|
| guard_level | | 大航海等级? | |
| bubble | | | |
| bubble_color | | | |
| lpl | | | |
@ -849,15 +849,43 @@ curl 'https://api.live.bilibili.com/room/v1/Room/get_status_info_by_uids' \
| jump_to_url | | | |
| check_info | obj | 弹幕审核信息? | |
| voice_dm_info | obj | 语音弹幕信息? | |
| emoticon | obj | 表情信息? | |
| emots | null | | |
| emoticon | obj | 房间独有表情信息 | |
| emots | obj | 默认表情信息 | 结构为`表情名-信息`组成的键值对<br />如果信息不含默认表情,则返回 null |
| id_str | str | 弹幕ID? | |
| wealth_level | num | 财富等级? | |
| bubble_id_v2 | num | | |
| reply | obj | | |
| reply | obj | 回复的弹幕 | |
| group_medal | null | | |
| user | obj | 该用户信息 ||
`data`对象中的`emoticon`对象:
| 字段 | 类型 | 内容 | 备注 |
| --------------- | ---- | ------------------------ | ---------------------------- |
| id | num | 0 | |
| emoticon_unique | str | 表情的独特标识 | 格式为`room_房间号_表情id` |
| text | text | 表情的触发词 | |
| perm | num | 发送权限? | 1所有人都可发送 |
| url | str | 表情的图像链接 | |
| in_player_area | num | 是否显示在直播画面区域? | |
| bulge_display | num | 是否高亮显示? | |
| is_dynamic | num | 是否为动态表情 | 0静态图像<br />1动态图像 |
| height | num | 表情的高度 | |
| width | num | 表情的宽度 | |
`data`对象中的`emots`对象中的任意一个值对象:
| 字段 | 类型 | 内容 | 备注 |
| -------------- | ---- | ---------------- | ------------------------- |
| count | num | 重复发送数量 | |
| descript | str | 表情描述 | |
| emoji | str | 表情描述 | |
| emotion_id | num | 表情 id | |
| emotion_unique | str | 表情的独特标识符 | 格式可能为`emoji_表情 id` |
| height | num | 表情的宽度 | |
| url | str | 表情的图像链接 | |
| width | num | 表情的高度 | |
`data`对象中的`user`对象:
| 字段 | 类型 | 内容 | 备注 |

328
docs/live/live_bill.md Normal file
View File

@ -0,0 +1,328 @@
# 直播流水
## 获取所有礼物列表
> https://api.live.bilibili.com/gift/v1/master/getGiftTypes
*请求方式GET*
认证方式CookieSESSDATA
**json回复**
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ------- | ----- | -------- | -------------- |
| code | num | 返回值 | 0成功 |
| msg | str | 错误信息 | 默认为 success |
| message | str | 错误信息 | 默认为 success |
| data | array | 礼物列表 | |
`data` 数组:
| 字段 | 类型 | 内容 | 备注 |
| --------- | ---- | -------- | ------------------------------------------------------------------------------ |
| gift_id | num | 礼物 id | |
| gift_name | str | 礼物名称 | |
| price | num | 瓜子数量 | 电池礼物为金瓜子数量,银瓜子礼物为银瓜子数量。 (金瓜子数量 / 100 = 电池数量) |
*注:特殊礼物如舰长、提督、总督等没有 `price` 字段*
<details>
<summary>查看响应示例:</summary>
```jsonc
{
"code": 0,
"msg": "success",
"message": "success",
"data": [
{
"gift_id": 10001,
"gift_name": "总督"
},
{
"gift_id": 10002,
"gift_name": "提督"
},
{
"gift_id": 10003,
"gift_name": "舰长"
},
{
"gift_id": 12000,
"gift_name": "醒目留言"
},
{
"gift_id": 1,
"price": 100,
"gift_name": "辣条"
},
{
"gift_id": 3,
"price": 9900,
"gift_name": "B坷垃"
},
{
"gift_id": 6,
"price": 1000,
"gift_name": "亿圆"
},
{
"gift_id": 30426,
"price": 0,
"gift_name": "BLS能量石"
},
{
"gift_id": 30706,
"price": 1000,
"gift_name": "生日快乐"
},
{
"gift_id": 30707,
"price": 5200,
"gift_name": "生日蛋糕"
},
{
"gift_id": 30708,
"price": 52000,
"gift_name": "生日王冠"
},
{
"gift_id": 31049,
"price": 6600,
"gift_name": "干杯"
},
{
"gift_id": 31116,
"price": 6600,
"gift_name": "干杯"
},
{
"gift_id": 31251,
"price": 6600,
"gift_name": "干杯"
},
{
"gift_id": 31531,
"price": 0,
"gift_name": "PK票"
},
{
"gift_id": 31588,
"price": 19900,
"gift_name": "星河入梦"
},
{
"gift_id": 31589,
"price": 131400,
"gift_name": "我星永恒"
},
{
"gift_id": 32276,
"price": 0,
"gift_name": "粉丝团灯牌"
},
// ...
]
}
```
</details>
## 获取流水
> https://api.live.bilibili.com/xlive/revenue/v1/giftStream/getReceivedGiftStreamNextList
*请求方式GET*
认证方式CookieSESSDATA
请求参数:
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| ---------- | ------------- | ----------------------- | ---------- | -------------------------------------- |
| limit | num | 一页有多少条目 | 必要 | |
| coin_type | num | 礼物类型 | 必要 | 0 为所有1 为电池礼物2 为银瓜子礼物 |
| begin_time | date / string | 流水的日期 | 必要 | 格式为 yyyy-MM-dd |
| uname | string | 筛选的用户名 | 非必要 | |
| last_id | num | 上一页页末的礼物列表 id | 翻页时必要 | 见下方 `list` 数组说明 |
| gift_id | num | 筛选的礼物 id | | |
请求示例:`https://api.live.bilibili.com/xlive/revenue/v1/giftStream/getReceivedGiftStreamNextList?limit=20&coin_type=0&begin_time=2023-01-01`
请求示例(翻页时):`https://api.live.bilibili.com/xlive/revenue/v1/giftStream/getReceivedGiftStreamNextList?last_id=13834493&limit=20&coin_type=0&begin_time=2023-01-01`
**json 回复:**
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ------- | ------ | -------- | -------------- |
| code | num | 返回值 | 0成功 |
| msg | str | 错误信息 | 默认为 success |
| message | str | 错误信息 | 默认为 success |
| data | object | 流水 | |
`data` 对象:
| 字段 | 类型 | 内容 | 备注 |
| ------------- | ----- | -------------- | -------------- |
| has_more | num | 是否由下一页 | 1 为是0 为否 |
| total_hamster | num | 总的金仓鼠收益 | |
| list | array | 礼物列表 | |
`list` 数组:
| 字段 | 类型 | 内容 | 备注 |
| ------------------ | ---------- | ------------------------------------- | -------------------------- |
| uid | num | 送礼用户的 uid | |
| uname | str | 用户名 | |
| time | date / str | 送礼时间 | |
| gift_id | num | 礼物 id | |
| gift_name | str | 礼物名字 | |
| gift_img | str | 礼物图片链接 | |
| gift_num | num | 礼物数量 | |
| hamster | num | 金仓鼠数量 | |
| gold | num | 礼物价值(金瓜子) | |
| silver | num | 礼物价值(银瓜子) | |
| ios_hamster | num | 由 iOS 端送出的礼物所收到的金仓鼠 | |
| normal_hamster | num | 一般情况下收到的金仓鼠 | |
| ios_gold | num | 由 iOS 端送出的礼物所收到的金瓜子数量 | |
| normal_gold | num | 一般情况下收到的金瓜子数量 | |
| is_hybrid | bool | 是否混合 | 作用不明 |
| id | num | 此项 id | 用于翻页 |
| is_open_platfrom | num | 是否开放平台 | 作用不明 |
| open_platfrom_rate | num | 开放平台比率 (?) | 作用不明 |
| receive_title | str | | 作用不明 ,一般为 `"主播"` |
| room_id | num | 送礼房间id | 如果礼物为上舰,此项为 `0` |
<details>
<summary>查看响应示例:</summary>
```json
{
"code": 0,
"message": "0",
"ttl": 1,
"data": {
"list": [
{
"uid": 0000000000,
"uname": "XXXXXXX",
"time": "2023-01-01 00:00:00",
"gift_id": 31216,
"gift_name": "i了i了",
"gift_img": "https://s1.hdslb.com/bfs/live/1157a445487b39c0b7368d91b22290c60fa665b2.png",
"gift_num": 1,
"hamster": 50,
"gold": 100,
"silver": 0,
"ios_hamster": 0,
"normal_hamster": 50,
"ios_gold": 0,
"normal_gold": 100,
"is_hybrid": false,
"id": 14269551,
"is_open_platfrom": 0,
"open_platfrom_rate": 0,
"receive_title": "主播",
"room_id": 000001
},
{
"uid": 0000000000,
"uname": "XXXXXXX",
"time": "2023-01-01 00:00:00",
"gift_id": 10003,
"gift_name": "舰长",
"gift_img": "https://i0.hdslb.com/bfs/live/f1be2a2d5b227ce72641de1ad64bcc7f9e4111c3.png",
"gift_num": 1,
"hamster": 69000,
"gold": 138000,
"silver": 0,
"ios_hamster": 0,
"normal_hamster": 69000,
"ios_gold": 0,
"normal_gold": 138000,
"is_hybrid": false,
"id": 14258453,
"is_open_platfrom": 0,
"open_platfrom_rate": 0,
"receive_title": "主播",
"room_id": 000000
},
{
"uid": 0000000000,
"uname": "XXXXXXX",
"time": "2023-01-01 00:00:00",
"gift_id": 31036,
"gift_name": "小花花",
"gift_img": "https://s1.hdslb.com/bfs/live/8b40d0470890e7d573995383af8a8ae074d485d9.png",
"gift_num": 1,
"hamster": 50,
"gold": 100,
"silver": 0,
"ios_hamster": 0,
"normal_hamster": 50,
"ios_gold": 0,
"normal_gold": 100,
"is_hybrid": false,
"id": 14243903,
"is_open_platfrom": 0,
"open_platfrom_rate": 0,
"receive_title": "主播",
"room_id": 000001
},
{
"uid": 0000000000,
"uname": "XXXXXXX",
"time": "2023-01-01 00:00:00",
"gift_id": 30047,
"gift_name": "友谊的小船",
"gift_img": "https://s1.hdslb.com/bfs/live/b33c94c51b669bd88f811ecf5f4e34a1db22a648.png",
"gift_num": 1,
"hamster": 2450,
"gold": 4900,
"silver": 0,
"ios_hamster": 0,
"normal_hamster": 2450,
"ios_gold": 0,
"normal_gold": 4900,
"is_hybrid": false,
"id": 14242683,
"is_open_platfrom": 0,
"open_platfrom_rate": 0,
"receive_title": "主播",
"room_id": 000001
},
{
"uid": 0000000000,
"uname": "XXXXXXX",
"time": "2023-01-01 00:00:00",
"gift_id": 31738,
"gift_name": "粉丝团灯牌",
"gift_img": "https://s1.hdslb.com/bfs/live/cbed3bb0a894369b49ceaf0b5337b4491b75ac42.png",
"gift_num": 1,
"hamster": 0,
"gold": 1000,
"silver": 1000,
"ios_hamster": 0,
"normal_hamster": 0,
"ios_gold": 0,
"normal_gold": 0,
"is_hybrid": false,
"id": 14237376,
"is_open_platfrom": 0,
"open_platfrom_rate": 0,
"receive_title": "主播",
"room_id": 000001
}
],
"has_more": 1,
"total_hamster": 122050
}
}
```
</details>

1269
docs/live/live_replay.md Normal file

File diff suppressed because it is too large Load Diff

View File

@ -274,7 +274,7 @@ curl 'https://api.live.bilibili.com/room/v1/Room/update' \
| -------- | ---- | ------------------------ | ------ | ----------------------------------- |
| room_id | num | 直播间id | 必要 | 必须为自己的直播间id |
| area_v2 | num | 直播分区id子分区id | 必要 | 详见[直播分区](live_area.md) |
| platform | str | 直播平台 | 必要 | 直播姬pcpc_link<br />web在线直播web_link<br />bililinkandroid_link |
| platform | str | 直播平台 | 必要 | 直播姬pcpc_link<br />web在线直播web_link(已下线)<br />bililinkandroid_link |
| csrf | str | CSRF Token位于cookie | 必要 | |
**json回复**
@ -283,7 +283,7 @@ curl 'https://api.live.bilibili.com/room/v1/Room/update' \
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | ------------------------------------------------------------ |
| code | num | 返回值 | 0成功<br />65530token错误登录错误<br />1错误<br />60009分区不存在<br />60024: 目标分区需要人脸认证<br />60013非常抱歉您所在的地区受实名认证限制无法开播<br />**(其他错误码有待补充)** |
| code | num | 返回值 | 0成功<br />65530token错误登录错误<br />1错误<br />60009分区不存在<br />60013非常抱歉您所在的地区受实名认证限制无法开播<br />60024: 目标分区需要人脸认证<br />60037: web 在线开播已下线<br />**(其他错误码有待补充)** |
| msg | str | 错误信息 | 默认为空 |
| message | str | 错误信息 | 默认为空 |
| data | obj | 信息本体 | |
@ -296,7 +296,7 @@ curl 'https://api.live.bilibili.com/room/v1/Room/update' \
| status | str | 直播间状态 | `LIVE` |
| room_type | num | 0 | 作用尚不明确 |
| rtmp | obj | RTMP推流地址信息 | |
| protocols | array | | 作用尚不明确 |
| protocols | array | 推流协议、地址、密钥等信息<br />其中地址、密钥与 `rtmp` 字段的内容是一致的 | 协议只见到过 `rtmp` |
| try_time | str | | 作用尚不明确 |
| live_key | str | 标记直播场次的key | |
| sub_session_key | str | 信息变动标识 | |
@ -314,23 +314,23 @@ curl 'https://api.live.bilibili.com/room/v1/Room/update' \
| addr | str | RTMP推流发送地址 | **重要** |
| code | str | RTMP推流参数密钥 | **重要** |
| new_link | str | 获取CDN推流ip地址重定向信息的url | 没啥用 |
| provider | str | | 作用尚不明确 |
| provider | str | 推流云服务节点厂商 | `txy`: 腾讯云 |
`data`中的`protocols`数组:
| 项 | 类型 | 内容 | 备注 |
| ---- | ---- | ------ | ------------ |
| 0 | obj | | 作用尚不明确 |
| 0 | obj | `rtmp` 字段在地址和密钥上相同的推流协议信息 | |
`data`中的`protocols`数组中的对象:
| 字段 | 类型 | 内容 | 备注 |
| -------- | ---- | -------------------------------- | ------------ |
| protocol | str | rtmp | 作用尚不明确 |
| addr | str | RTMP推流发送地址 | |
| code | str | RTMP推流参数密钥 | |
| protocol | str | rtmp | 推流协议 |
| addr | str | RTMP推流发送地址 | 格式为 `rtmp://<推流节点>/live-bvc/` |
| code | str | RTMP推流参数密钥 | 格式为 `?streamname=live_<B站UID>_<未知数字>&key=<密钥>&schedule=rtmp&pflag=<开播平台标志>` |
| new_link | str | 获取CDN推流ip地址重定向信息的url | |
| provider | str | txy | 作用尚不明确 |
| provider | str | 推流云服务节点厂商 | `txy`: 腾讯云 |
`data`中的`notice`对象:
@ -431,6 +431,7 @@ curl 'https://api.live.bilibili.com/room/v1/Room/startLive' \
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| ------- | ---- | ------------------------ | ------ | -------------------- |
| platform | str | 直播平台 | 必要 | 直播姬pcpc_link<br />web在线直播web_link已下线<br />bililinkandroid_link |
| room_id | num | 直播间id | 必要 | 必须为自己的直播间id |
| csrf | str | CSRF Token位于cookie | 必要 | |
@ -480,6 +481,121 @@ curl 'https://api.live.bilibili.com/room/v1/Room/stopLive' \
</details>
## 预更新直播间信息
> https://api.live.bilibili.com/xlive/app-blink/v1/preLive/UpdatePreLiveInfo
*请求方法: POST*
认证方式CookieSESSDATA
鉴权方式Cookie中`bili_jct`的值正确并与`csrf`相同
**正文参数( application/x-www-form-urlencoded **
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| ----- | --- | ---- | ----- | --- |
| csrf | str | CSRF Token位于cookie | 必要 | |
| csrf_token | str | CSRF Token位于cookie | 必要 | |
| platform | str | 平台标识 | 必要 | 似乎可随意提供<br />网页端: web |
| mobi_app | str | 平台标识? | 必要 | 似乎可随意提供<br />网页端: web |
| build | num | 构建标识? | 必要 | 建议取`1`,似乎可随意提供 |
| cover | str | 直播封面链接 | 非必要 | 图片链接需要在`.hdslb.com`域名下 |
| title | str | 直播间标题 | 非必要 | 参见[更新直播间信息](#更新直播间信息)的title参数 |
| coverVertical | str | (?) | 非必要 | 作用尚不明确 |
| liveDirectionType | num | (?) | 非必要 | `1` |
| visit_id | str | (?) | 非必要 | `""` |
**json回复**
根对象:
| 字段 | 类型 | 内容 | 备注 |
| --- | --- | --- | --- |
| code | num | 返回值 | 0: 成功<br />1: 错误<br />100402: 图片地址不合法 |
| message | str | 错误信息 | 成功时为`"0"` |
| ttl | num | `1` | |
| data | obj | 内容本体 | |
`data`对象:
| 字段 | 类型 | 内容 | 备注 |
| --- | --- | --- | --- |
| audit_info | obj | 审核信息 | |
`data.audit_info`对象:
| 字段 | 类型 | 内容 | 备注 |
| --- | --- | --- | --- |
| audit_title | str | 被审核的标题 | |
| audit_title_status | num | 标题审核状态 | |
| audit_title_reason | str | 标题审核提示 | |
**示例:**
更新直播间封面
```shell
curl 'https://api.live.bilibili.com/xlive/app-blink/v1/preLive/UpdatePreLiveInfo' \
--data-urlencode 'platform=web' \
--data-urlencode 'mobi_app=web' \
--data-urlencode 'build=1' \
--data-urlencode 'cover=https://i0.hdslb.com/bfs/live/59fc254c1f51a962dbf69ae85e4920f2f6fb8dcd.png' \
--data-urlencode 'csrf=xxx' \
-b 'SESSDATA=xxx;bili_jct=xxx'
```
<details>
<summary>查看响应示例:</summary>
```json
{
"code": 0,
"message": "0",
"ttl": 1,
"data":{
"audit_info":{
"audit_title": "",
"audit_title_status": 0,
"audit_title_reason": ""
}
}
}
```
</details>
使用此接口更新直播间标题
```shell
curl 'https://api.live.bilibili.com/xlive/app-blink/v1/preLive/UpdatePreLiveInfo' \
--data-urlencode 'platform=web' \
--data-urlencode 'mobi_app=web' \
--data-urlencode 'build=1' \
--data-urlencode 'title=你好你好,我是花火~咱们来找点乐子吧?小灰毛,不要害羞嘛,要大胆的来,一起欢愉吧' \
--data-urlencode 'csrf=xxx' \
-b 'SESSDATA=xxx;bili_jct=xxx'
```
<details>
<summary>查看响应示例:</summary>
```json
{
"code": 0,
"message": "0",
"ttl": 1,
"data":{
"audit_info":{
"audit_title": "你好你好,我是花火~咱们来找点乐子吧?小灰毛,不要害羞嘛,要大胆的来,一起欢愉吧",
"audit_title_status": 2,
"audit_title_reason": "先发后审"
}
}
}
```
</details>
## 更新直播间公告

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,6 @@
# 直播间用户实用 API
## 获取用户持有的粉丝勋章信息
## 获取自己持有的粉丝勋章信息
> ~~https://api.live.bilibili.com/fans_medal/v5/live_fans_medal/iApiMedal~~ (旧)
> https://api.live.bilibili.com/xlive/app-ucenter/v1/user/GetMyMedals
@ -20,12 +20,12 @@
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | ------------------------------------------------- |
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | ----------------------------------------------------- |
| code | num | 返回值 | 0成功<br />-1002002参数异常<br />-500服务器异常 |
| message | str | 错误信息 | 默认为 "0" |
| ttl | num | 1 | |
| data | obj | 信息本体 | |
| message | str | 错误信息 | 默认为 "0" |
| ttl | num | 1 | |
| data | obj | 信息本体 | |
`data`对象:
@ -44,7 +44,7 @@
| guard_level | num | | |
| guard_medal_title | str | 加成状态 | |
| intimacy | num | 当前已得亲密度 | |
| is_lighted | num | 是否点亮 | 0未点亮<br />1点亮 |
| is_lighted | num | 是否点亮 | 0未点亮<br />1点亮 |
| level | num | 勋章等级 | |
| medal_name | str | 勋章名 | |
| medal_color_border | num | 勋章边框颜色信息 | 颜色数值为 10 进制的 16 进制值(下同) |
@ -116,6 +116,7 @@ curl https://api.live.bilibili.com/xlive/app-ucenter/v1/user/GetMyMedals?page=1&
</details>
## 佩戴勋章
> https://api.live.bilibili.com/xlive/web-room/v1/fansMedal/wear
@ -193,12 +194,12 @@ _请求方式GET_
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | ---------------------- |
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | ------------------------ |
| code | num | 返回值 | 0成功<br />1参数错误 |
| ttl | num | 1 | |
| message | str | 错误信息 | 默认为当日签到奖励内容 |
| data | obj | 信息本体 | 默认为空 |
| ttl | num | 1 | |
| message | str | 错误信息 | 默认为当日签到奖励内容 |
| data | obj | 信息本体 | 默认为空 |
(目前已下线)
@ -229,29 +230,29 @@ _请求方式GET_
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | ---------------------- |
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | ------- |
| code | num | 返回值 | 0成功 |
| ttl | num | 1 | |
| ttl | num | 1 | |
| message | str | 错误信息 | 默认为0 |
| data | obj | 信息本体 | |
| data | obj | 信息本体 | |
`data`对象:
| 字段 | 类型 | 内容 | 备注 |
| ----------------- | ----- | ---------------------------- | ---------------------- |
| text | str | 今日签到奖励信息 | 默认为空 |
| specialText | str | 连续签到奖励信息 | 默认为空 |
| 字段 | 类型 | 内容 | 备注 |
| ----------------- | ----- | ---------------------------- | ------------------------ |
| text | str | 今日签到奖励信息 | 默认为空 |
| specialText | str | 连续签到奖励信息 | 默认为空 |
| status | num | 签到状态 | 0未签到<br />1已签到 |
| allDays | num | 当月天数 | |
| curMonth | num | 当前月 | |
| curYear | num | 当前年 | |
| curDay | num | 当前日 | |
| curData | str | 当前日期(格式化) | eg: 2023-2-19 |
| hadSignDays | num | 当月已签到天数 | 默认为0 |
| newTask | num | 作用未知 | 默认为0 |
| signDaysList | array | 当月已签到日列表 | 默认为空 |
| signBonusDaysList | array | 当月已签到且有特殊奖励日列表 | 默认为空 |
| allDays | num | 当月天数 | |
| curMonth | num | 当前月 | |
| curYear | num | 当前年 | |
| curDay | num | 当前日 | |
| curData | str | 当前日期(格式化) | eg: 2023-2-19 |
| hadSignDays | num | 当月已签到天数 | 默认为0 |
| newTask | num | 作用未知 | 默认为0 |
| signDaysList | array | 当月已签到日列表 | 默认为空 |
| signBonusDaysList | array | 当月已签到且有特殊奖励日列表 | 默认为空 |
<details>
<summary>查看响应示例:</summary>
@ -308,12 +309,12 @@ _请求方式GET_
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | ---------------------- |
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | ------- |
| code | num | 返回值 | 0成功 |
| ttl | num | 1 | |
| ttl | num | 1 | |
| message | str | 错误信息 | 默认为0 |
| data | obj | 信息本体 | |
| data | obj | 信息本体 | |
`data`对象:
@ -368,3 +369,880 @@ _请求方式GET_
```
</details>
## 查询直播间贡献榜
> https://api.live.bilibili.com//xlive/general-interface/v1/rank/getOnlineGoldRank
*请求方式GET*
认证方式:无
**url 参数:**
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| -------- | ---- | -------------- | ------ | ------ |
| roomId | num | 房间号 | 必要 | |
| page | num | 返回结果页数 | 必要 | |
| pageSize | num | 返回结果页大小 | 必要 | 最大50 |
| ruid | num | 主播uid | 必要 | |
**json 回复:**
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | ---- |
| code | num | 返回值 | |
| message | str | 错误信息 | |
| ttl | num | 1 | |
| data | obj | 信息本体 |
`data`中的对象:
| 字段 | 类型 | 内容 | 备注 |
| -------------- | ----- | ------------ | ---- |
| onlineNum | num | 在线观众数量 | |
| OnlineRankItem | array | 结果 | | |
`OnlineRankItem`数组中的对象:
| 字段 | 类型 | 内容 | 备注 |
| ------------ | ---- | ------------ | ---- |
| userRank | num | 贡献值排名 | |
| uid | num | 用户id | | |
| name | str | 用户名字 | | |
| face | str | 用户头像 | | |
| score | num | 贡献值 | | |
| medalInfo | obj | 粉丝牌对象 | | |
| guard_level | num | 大航海类型 | | |
| wealth_level | num | 荣耀等级 | | |
| guard_level | num | 大航海类型 | | |
| uinfo | obj | 用户详细信息 | | |
`uinfo`对象:
| 字段 | 类型 | 内容 | 备注 |
| ----- | ---- | ------------ | ---- |
| uid | num | 用户uid | |
| base | obj | 用户基本信息 | | |
| medal | obj | 用户粉丝牌 | | |
| face | str | 用户头像 | | |
| guard | obj | 大航海 | | |
`guard`对象:
| 字段 | 类型 | 内容 | 备注 |
| ----------- | ---- | -------------- | ---- |
| level | num | 大航海类型 | |
| expired_str | str | 大航海到期时间 | | |
**示例:**
查询`23174842`直播间的大航海成员
```shell
curl 'https://api.live.bilibili.com//xlive/general-interface/v1/rank/getOnlineGoldRank?roomId=26854650&ruid=3493118494116797&page=3&pageSize=20'
```
<details>
<summary>查看响应示例:</summary>
```json
{
"code": 0,
"message": "0",
"ttl": 1,
"data": {
"onlineNum": 45,
"OnlineRankItem": [
{
"userRank": 1,
"uid": 36136895,
"name": "四月hallu",
"face": "https://i2.hdslb.com/bfs/face/5e5166ecc4c17d4dbc7a09dbb6bb749d9f537985.jpg",
"score": 3768,
"medalInfo": {
"guardLevel": 3,
"medalColorStart": 2951253,
"medalColorEnd": 10329087,
"medalColorBorder": 6809855,
"medalName": "钢板鹿",
"level": 29,
"targetId": 3493118494116797,
"isLight": 1
},
"guard_level": 3,
"wealth_level": 41,
"is_mystery": false,
"uinfo": {
"uid": 36136895,
"base": {
"name": "四月hallu",
"face": "https://i2.hdslb.com/bfs/face/5e5166ecc4c17d4dbc7a09dbb6bb749d9f537985.jpg",
"name_color": 0,
"is_mystery": false,
"risk_ctrl_info": {
"name": "四月hallu",
"face": "https://i2.hdslb.com/bfs/face/5e5166ecc4c17d4dbc7a09dbb6bb749d9f537985.jpg"
},
"origin_info": {
"name": "四月hallu",
"face": "https://i2.hdslb.com/bfs/face/5e5166ecc4c17d4dbc7a09dbb6bb749d9f537985.jpg"
},
"official_info": {
"role": 0,
"title": "",
"desc": "",
"type": -1
},
"name_color_str": ""
},
"medal": {
"name": "钢板鹿",
"level": 29,
"color_start": 2951253,
"color_end": 10329087,
"color_border": 6809855,
"color": 2951253,
"id": 0,
"typ": 0,
"is_light": 1,
"ruid": 3493118494116797,
"guard_level": 3,
"score": 50422604,
"guard_icon": "https://i0.hdslb.com/bfs/live/143f5ec3003b4080d1b5f817a9efdca46d631945.png",
"honor_icon": "",
"v2_medal_color_start": "#9660E5CC",
"v2_medal_color_end": "#9660E5CC",
"v2_medal_color_border": "#D47AFFFF",
"v2_medal_color_text": "#FFFFFFFF",
"v2_medal_color_level": "#6C00A099",
"user_receive_count": 0
},
"wealth": {
"level": 41,
"dm_icon_key": "ChronosWealth_4.png"
},
"title": null,
"guard": {
"level": 3,
"expired_str": "2025-07-07 23:59:59"
},
"uhead_frame": null,
"guard_leader": null
}
},
{
"userRank": 2,
"uid": 1182882611,
"name": "重生指令",
"face": "https://i2.hdslb.com/bfs/face/6762c39b424e6de5bf0292fd12a019201a501fb9.jpg",
"score": 1546,
"medalInfo": {
"guardLevel": 0,
"medalColorStart": 12632256,
"medalColorEnd": 12632256,
"medalColorBorder": 12632256,
"medalName": "雪狐咕",
"level": 24,
"targetId": 477792,
"isLight": 0
},
"guard_level": 3,
"wealth_level": 22,
"is_mystery": false,
"uinfo": {
"uid": 1182882611,
"base": {
"name": "重生指令",
"face": "https://i2.hdslb.com/bfs/face/6762c39b424e6de5bf0292fd12a019201a501fb9.jpg",
"name_color": 0,
"is_mystery": false,
"risk_ctrl_info": {
"name": "重生指令",
"face": "https://i2.hdslb.com/bfs/face/6762c39b424e6de5bf0292fd12a019201a501fb9.jpg"
},
"origin_info": {
"name": "重生指令",
"face": "https://i2.hdslb.com/bfs/face/6762c39b424e6de5bf0292fd12a019201a501fb9.jpg"
},
"official_info": {
"role": 0,
"title": "",
"desc": "",
"type": -1
},
"name_color_str": ""
},
"medal": {
"name": "雪狐咕",
"level": 24,
"color_start": 12632256,
"color_end": 12632256,
"color_border": 12632256,
"color": 1725515,
"id": 0,
"typ": 0,
"is_light": 0,
"ruid": 477792,
"guard_level": 0,
"score": 50010220,
"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": {
"level": 22,
"dm_icon_key": ""
},
"title": null,
"guard": {
"level": 3,
"expired_str": "2025-06-29 23:59:59"
},
"uhead_frame": null,
"guard_leader": null
}
},
{
"userRank": 3,
"uid": 35007043,
"name": "_单推哈鹿halluの狐狸",
"face": "https://i1.hdslb.com/bfs/face/6373a98189480661fc725494ab5ab68253522b8f.jpg",
"score": 1543,
"medalInfo": {
"guardLevel": 2,
"medalColorStart": 2951253,
"medalColorEnd": 10329087,
"medalColorBorder": 16771156,
"medalName": "钢板鹿",
"level": 29,
"targetId": 3493118494116797,
"isLight": 1
},
"guard_level": 2,
"wealth_level": 40,
"is_mystery": false,
"uinfo": {
"uid": 35007043,
"base": {
"name": "_单推哈鹿halluの狐狸",
"face": "https://i1.hdslb.com/bfs/face/6373a98189480661fc725494ab5ab68253522b8f.jpg",
"name_color": 0,
"is_mystery": false,
"risk_ctrl_info": {
"name": "_单推哈鹿halluの狐狸",
"face": "https://i1.hdslb.com/bfs/face/6373a98189480661fc725494ab5ab68253522b8f.jpg"
},
"origin_info": {
"name": "_单推哈鹿halluの狐狸",
"face": "https://i1.hdslb.com/bfs/face/6373a98189480661fc725494ab5ab68253522b8f.jpg"
},
"official_info": {
"role": 0,
"title": "",
"desc": "",
"type": -1
},
"name_color_str": ""
},
"medal": {
"name": "钢板鹿",
"level": 29,
"color_start": 2951253,
"color_end": 10329087,
"color_border": 16771156,
"color": 2951253,
"id": 0,
"typ": 0,
"is_light": 1,
"ruid": 3493118494116797,
"guard_level": 2,
"score": 50360413,
"guard_icon": "https://i0.hdslb.com/bfs/live/98a201c14a64e860a758f089144dcf3f42e7038c.png",
"honor_icon": "",
"v2_medal_color_start": "#9660E5CC",
"v2_medal_color_end": "#9660E5CC",
"v2_medal_color_border": "#D47AFFFF",
"v2_medal_color_text": "#FFFFFFFF",
"v2_medal_color_level": "#6C00A099",
"user_receive_count": 0
},
"wealth": {
"level": 40,
"dm_icon_key": "ChronosWealth_4.png"
},
"title": null,
"guard": {
"level": 2,
"expired_str": "2025-07-30 23:59:59"
},
"uhead_frame": null,
"guard_leader": null
}
},
{
"userRank": 7,
"uid": 44152084,
"name": "_柚_子_hallu",
"face": "https://i1.hdslb.com/bfs/face/137498c2c6a3231e5b6047af12a64bbd19627dcb.jpg",
"score": 324,
"medalInfo": {
"guardLevel": 3,
"medalColorStart": 398668,
"medalColorEnd": 6850801,
"medalColorBorder": 6809855,
"medalName": "钢板鹿",
"level": 26,
"targetId": 3493118494116797,
"isLight": 1
},
"guard_level": 3,
"wealth_level": 32,
"is_mystery": false,
"uinfo": {
"uid": 44152084,
"base": {
"name": "_柚_子_hallu",
"face": "https://i1.hdslb.com/bfs/face/137498c2c6a3231e5b6047af12a64bbd19627dcb.jpg",
"name_color": 0,
"is_mystery": false,
"risk_ctrl_info": {
"name": "_柚_子_hallu",
"face": "https://i1.hdslb.com/bfs/face/137498c2c6a3231e5b6047af12a64bbd19627dcb.jpg"
},
"origin_info": {
"name": "_柚_子_hallu",
"face": "https://i1.hdslb.com/bfs/face/137498c2c6a3231e5b6047af12a64bbd19627dcb.jpg"
},
"official_info": {
"role": 0,
"title": "",
"desc": "",
"type": -1
},
"name_color_str": ""
},
"medal": {
"name": "钢板鹿",
"level": 26,
"color_start": 398668,
"color_end": 6850801,
"color_border": 6809855,
"color": 398668,
"id": 0,
"typ": 0,
"is_light": 1,
"ruid": 3493118494116797,
"guard_level": 3,
"score": 50057285,
"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": {
"level": 32,
"dm_icon_key": ""
},
"title": null,
"guard": {
"level": 3,
"expired_str": "2025-06-27 23:59:59"
},
"uhead_frame": null,
"guard_leader": null
}
},
{
"userRank": 8,
"uid": 8242366,
"name": "翟赧hallu",
"face": "https://i1.hdslb.com/bfs/face/9b312f4146ca2c8a1d2e5468e345ecfb60be3874.jpg",
"score": 276,
"medalInfo": {
"guardLevel": 3,
"medalColorStart": 398668,
"medalColorEnd": 6850801,
"medalColorBorder": 6809855,
"medalName": "钢板鹿",
"level": 28,
"targetId": 3493118494116797,
"isLight": 1
},
"guard_level": 3,
"wealth_level": 35,
"is_mystery": false,
"uinfo": {
"uid": 8242366,
"base": {
"name": "翟赧hallu",
"face": "https://i1.hdslb.com/bfs/face/9b312f4146ca2c8a1d2e5468e345ecfb60be3874.jpg",
"name_color": 0,
"is_mystery": false,
"risk_ctrl_info": {
"name": "翟赧hallu",
"face": "https://i1.hdslb.com/bfs/face/9b312f4146ca2c8a1d2e5468e345ecfb60be3874.jpg"
},
"origin_info": {
"name": "翟赧hallu",
"face": "https://i1.hdslb.com/bfs/face/9b312f4146ca2c8a1d2e5468e345ecfb60be3874.jpg"
},
"official_info": {
"role": 0,
"title": "",
"desc": "",
"type": -1
},
"name_color_str": ""
},
"medal": {
"name": "钢板鹿",
"level": 28,
"color_start": 398668,
"color_end": 6850801,
"color_border": 6809855,
"color": 398668,
"id": 0,
"typ": 0,
"is_light": 1,
"ruid": 3493118494116797,
"guard_level": 3,
"score": 50208414,
"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": {
"level": 35,
"dm_icon_key": ""
},
"title": null,
"guard": {
"level": 3,
"expired_str": "2025-08-05 23:59:59"
},
"uhead_frame": null,
"guard_leader": null
}
},
{
"userRank": 9,
"uid": 418232,
"name": "lug7",
"face": "http://i2.hdslb.com/bfs/face/5d2c92beb774a4bb30762538bb102d23670ae9c0.gif",
"score": 171,
"medalInfo": {
"guardLevel": 3,
"medalColorStart": 398668,
"medalColorEnd": 6850801,
"medalColorBorder": 6809855,
"medalName": "钢板鹿",
"level": 26,
"targetId": 3493118494116797,
"isLight": 1
},
"guard_level": 3,
"wealth_level": 28,
"is_mystery": false,
"uinfo": {
"uid": 418232,
"base": {
"name": "lug7",
"face": "http://i2.hdslb.com/bfs/face/5d2c92beb774a4bb30762538bb102d23670ae9c0.gif",
"name_color": 0,
"is_mystery": false,
"risk_ctrl_info": {
"name": "lug7",
"face": "http://i2.hdslb.com/bfs/face/5d2c92beb774a4bb30762538bb102d23670ae9c0.gif"
},
"origin_info": {
"name": "lug7",
"face": "http://i2.hdslb.com/bfs/face/5d2c92beb774a4bb30762538bb102d23670ae9c0.gif"
},
"official_info": {
"role": 0,
"title": "",
"desc": "",
"type": -1
},
"name_color_str": ""
},
"medal": {
"name": "钢板鹿",
"level": 26,
"color_start": 398668,
"color_end": 6850801,
"color_border": 6809855,
"color": 398668,
"id": 0,
"typ": 0,
"is_light": 1,
"ruid": 3493118494116797,
"guard_level": 3,
"score": 50050050,
"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": {
"level": 28,
"dm_icon_key": ""
},
"title": null,
"guard": {
"level": 3,
"expired_str": "2025-06-15 23:59:59"
},
"uhead_frame": null,
"guard_leader": null
}
},
{
"userRank": 10,
"uid": 452228643,
"name": "很糊的小龔鬱hallu",
"face": "https://i0.hdslb.com/bfs/face/996fa85fe42d582dd013dcb435de3f3ff4d33f6c.jpg",
"score": 35,
"medalInfo": {
"guardLevel": 0,
"medalColorStart": 6126494,
"medalColorEnd": 6126494,
"medalColorBorder": 6126494,
"medalName": "牧斯",
"level": 6,
"targetId": 3493087074585126,
"isLight": 1
},
"guard_level": 3,
"wealth_level": 35,
"is_mystery": false,
"uinfo": {
"uid": 452228643,
"base": {
"name": "很糊的小龔鬱hallu",
"face": "https://i0.hdslb.com/bfs/face/996fa85fe42d582dd013dcb435de3f3ff4d33f6c.jpg",
"name_color": 0,
"is_mystery": false,
"risk_ctrl_info": {
"name": "很糊的小龔鬱hallu",
"face": "https://i0.hdslb.com/bfs/face/996fa85fe42d582dd013dcb435de3f3ff4d33f6c.jpg"
},
"origin_info": {
"name": "很糊的小龔鬱hallu",
"face": "https://i0.hdslb.com/bfs/face/996fa85fe42d582dd013dcb435de3f3ff4d33f6c.jpg"
},
"official_info": {
"role": 0,
"title": "",
"desc": "",
"type": -1
},
"name_color_str": ""
},
"medal": {
"name": "牧斯",
"level": 6,
"color_start": 6126494,
"color_end": 6126494,
"color_border": 6126494,
"color": 6126494,
"id": 0,
"typ": 0,
"is_light": 1,
"ruid": 3493087074585126,
"guard_level": 0,
"score": 3400,
"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
},
"wealth": {
"level": 35,
"dm_icon_key": ""
},
"title": null,
"guard": {
"level": 3,
"expired_str": "2025-06-19 23:59:59"
},
"uhead_frame": null,
"guard_leader": null
}
},
{
"userRank": 11,
"uid": 164871173,
"name": "奶浴-bllss",
"face": "https://i2.hdslb.com/bfs/face/f48dd7c1e432eb91e5fd286757c4e2600930f4c5.jpg",
"score": 26,
"medalInfo": null,
"guard_level": 3,
"wealth_level": 36,
"is_mystery": false,
"uinfo": {
"uid": 164871173,
"base": {
"name": "奶浴-bllss",
"face": "https://i2.hdslb.com/bfs/face/f48dd7c1e432eb91e5fd286757c4e2600930f4c5.jpg",
"name_color": 0,
"is_mystery": false,
"risk_ctrl_info": {
"name": "奶浴-bllss",
"face": "https://i2.hdslb.com/bfs/face/f48dd7c1e432eb91e5fd286757c4e2600930f4c5.jpg"
},
"origin_info": {
"name": "奶浴-bllss",
"face": "https://i2.hdslb.com/bfs/face/f48dd7c1e432eb91e5fd286757c4e2600930f4c5.jpg"
},
"official_info": {
"role": 0,
"title": "",
"desc": "",
"type": -1
},
"name_color_str": ""
},
"medal": null,
"wealth": {
"level": 36,
"dm_icon_key": ""
},
"title": null,
"guard": {
"level": 3,
"expired_str": "2025-07-20 23:59:59"
},
"uhead_frame": null,
"guard_leader": null
}
},
],
"ownInfo": {
"uid": 0,
"name": "",
"face": "",
"rank": -1,
"needScore": 0,
"score": 0,
"guard_level": 0,
"wealth_level": 0,
"is_mystery": false,
"uinfo": null
},
"tips_text": "投喂、点赞、发弹幕、持续观看均可上榜",
"value_text": "贡献值",
"ab": {
"guard_accompany_list": 1
},
"onlineNumText": "45"
}
}
```
</details>
## 查询自己在某直播间观看时长
> https://api.live.bilibili.com/xlive/general-interface/v1/guard/GuardActive
*请求方式GET*
认证方式CookieSESSDATA或 APP
**url 参数:**
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| -------- | ---- | ------- | ------ | ---- |
| platform | str | android | 必要 | |
| ruid | num | 主播uid | 必要 | |
**json 回复:**
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | ---- |
| code | num | 返回值 | |
| message | str | 错误信息 | |
| ttl | num | 1 | |
| data | obj | 信息本体 | |
`data`中的对象:
| 字段 | 类型 | 内容 | 备注 |
| ----------- | ---- | -------------- | ----------------------------- |
| ruid | num | 主播uid | |
| rusername | str | 主播用户名 | |
| rface | str | 主播头像 | |
| username | str | 自己的用户名 | |
| accomany | int | 大航海陪伴天数 | 似乎b站程序员把这个单词拼错了 |
| rusername | str | 主播用户名 | |
| watch_time | num | 观看时长 | 单位是秒 |
| up_medal | obj | 粉丝牌 | |
| guard_num_3 | num | 主播舰长数量 |
| guard_num_2 | num | 主播提督数量 | |
| guard_num_1 | num | 主播总督数量 | |
| is_live | num | 直播状态 | |
## 查询用户在直播间的信息
> https://api.live.bilibili.com/xlive/app-ucenter/v2/card/user
*请求方式GET*
认证方式:无
**url 参数:**
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| ------ | ---- | ----------- | ------ | ---- |
| uid | num | 目标用户uid | 必要 | |
| ruid | num | 主播uid | 必要 | |
**json 回复:**
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | ---- |
| code | num | 返回值 | |
| message | str | 错误信息 | |
| ttl | num | 1 | |
| data | obj | 信息本体 |
`data`对象:
| 字段 | 类型 | 内容 | 备注 |
| ------------- | ---- | ------------------ | ------------------------------ |
| uid | num | 目标用户id | |
| uname | str | 目标用户名 | |
| desc | str | 目标用户认证信息 | |
| face | str | 目标用户头像 | |
| follow_num | num | 目标用户粉丝数 | |
| attention_num | num | 目标用户关注数 |
| main_vip | num | 目标用户大会员状态 | 0无 2大会员 |
| is_block | num | 是否被拉黑? | 始终为0 |
| is_admin | num | 是否房管 | |
| is_black | num | 是否被关小黑屋 | |
| wealth_info | obj | 荣耀等级 | |
| fans_medal | obj | 粉丝牌 | 如果目标用户隐藏粉丝牌则为null |
`wealth_info`对象:
| 字段 | 类型 | 内容 | 备注 |
| ------------------ | ---- | -------------------------- | ---- |
| level | num | 荣耀等级 | |
| level_total_score | num | 下一等级的荣耀值 | |
| cur_score | num | 当前荣耀值 | |
| upgrade_need_score | num | 升到下一等级还差多少荣耀值 | |
**示例:**
```shell
curl 'https://api.live.bilibili.com/xlive/app-ucenter/v2/card/user?ruid=504140200&uid=504140200'
```
<details>
<summary>查看响应示例:</summary>
```json
{
"code": 0,
"message": "0",
"ttl": 1,
"data": {
"uid": 504140200,
"uname": "软软riu",
"face": "https://i1.hdslb.com/bfs/face/2d083d686b704eb7010e3d94595d47f5a89c8aef.jpg",
"verify_type": 0,
"desc": "bilibili UP主认证bilibili 知名虚拟UP主、直播高能主播",
"uname_color": 2171169,
"room_id": 23174842,
"pendant": "https://i1.hdslb.com/bfs/garb/open/8806f97581082d68edcf2207368290b3fb3491bb.png",
"pendant_from": 2,
"follow_num": 214882,
"attention_num": 202,
"relation_status": 1,
"privilege_type": 3,
"fans_medal": null,
"title_sum": 10,
"wearing_title": "",
"main_vip": 0,
"is_block": 0,
"is_admin": 0,
"fans_medal_list_url": "https://live.bilibili.com/p/html/live-fansmedal-wall/index.html?tId=504140200#/medal",
"wearing": {},
"is_black": 0,
"admin_level": 0,
"head_picture": "http://i0.hdslb.com/bfs/live/3f536f59e337a731c5367f623bca79b32197ddd5.png",
"head_text": "大航海舰长",
"head_url": "",
"head_business": 1,
"head_skin_icon": "http://i0.hdslb.com/bfs/live/d44e103f424f5ae01ef3d0133ef812f8241d15b0.png",
"privilege_center": {},
"is_nft": 0,
"nft_dmark": "https://i0.hdslb.com/bfs/live/9f176ff49d28c50e9c53ec1c3297bd1ee539b3d6.gif",
"is_real_fans": false,
"wealth_info": {
"uid": 504140200,
"level": 35,
"level_total_score": 6000000,
"cur_score": 5012900,
"upgrade_need_score": 987100,
"status": 1,
"dm_icon_key": ""
},
"guard": {
"accompany": 0,
"accompany_slake": 0
},
"chat_url_android": "activity://im/conversation/?conversation_type=1&reciveid=504140200",
"chat_url_ios": "bilibili://link/chat?session_id=s504140200",
"gift_star": null,
"is_mystery": false,
"text_control": null,
"uinfo_medal": null,
"guard_attire": {},
"flash_buy": 0,
"flash_buy_url": ""
}
}
```
</details>

View File

@ -32,20 +32,20 @@
`data` 对象:
| 字段 | 类型 | 内容 | 备注 |
| ------------- | ---- | ------------------ | -------------------------- |
| at | num | 未读at数 | |
| chat | num | 0 | 仅旧接口,**作用尚不明确** |
| coin | num | 未读投币数 | |
| danmu | num | 未读弹幕数 | |
| favorite | num | 未读收藏数 | |
| like | num | 未读点赞数 | |
| recv_like | num | 未读点赞数 | 同 `like` |
| recv_reply | num | 未读回复数 | 同 `reply` |
| reply | num | 未读回复数 | |
| sys_msg | num | 未读系统通知数 | |
| sys_msg_style | num | 1 | 仅新接口, **作用尚不明确** |
| up | num | 未读UP主助手信息数 | |
| 字段 | 类型 | 内容 | 备注 |
| --------------- | ---- | -------------------- | --------------------------- |
| at | num | 未读at数 | |
| chat | num | 0 | 仅旧接口,**作用尚不明确** |
| coin | num | 未读投币数 | |
| danmu | num | 未读弹幕数 | |
| favorite | num | 未读收藏数 | |
| like | num | 未读点赞数(旧) | |
| recv\_like | num | 未读收到喜欢数(新) | 同 `like` |
| recv\_reply | num | 未读回复与@数(新) | 即 `reply``at` 的值之和 |
| reply | num | 未读回复数(旧) | |
| sys\_msg | num | 未读系统通知数 | |
| sys\_msg\_style | num | 1 | 仅新接口, **作用尚不明确** |
| up | num | 未读UP主助手信息数 | |
**示例:**
@ -82,3 +82,177 @@ curl 'https://api.vc.bilibili.com/x/im/web/msgfeed/unread' \
```
</details>
## 获取"回复我的"信息
> <https://api.bilibili.com/x/msgfeed/reply>
*请求方式GET*
认证方式CookieSESSDATA
**URL参数:**
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| ------------ | ---- | ---------------- | ------ | ------------- |
| build | num | 客户端内部版本号 | 非必要 | 默认为 `0` |
| mobi_app | str | 平台标识 | 非必要 | 可为 `web` 等 |
| id | num | 起始 id | 非必要 | 详情见返回 |
| reply_time | num | 起始时间 | 非必要 | 详情见返回 |
| platform | str | 平台标识 | 非必要 | 可为 `web` 等 |
| web_location | str | 暂时不知道是啥 | 非必要 | |
**json回复**
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | ----------------------------- |
| code | num | 返回值 | 0成功<br />-101账号未登录 |
| message | str | 错误信息 | 默认为 0 |
| ttl | num | 1 | |
| data | obj | 信息本体 | |
`data` 对象:
| 字段 | 类型 | 内容 | 备注 |
| ------------ | ----- | ----------- | ------------------------------ |
| cursor | obj | 光标 | 下一次查询的指针 |
| items | array | 通知列表 | 数组,每个元素代表一条回复通知 |
| last_view_at | num | unix 时间戳 | 上次查看的时间 |
`cursor` 对象:
| 字段 | 类型 | 内容 | 备注 |
| ------ | ---- | ----------- | ---------------------------------------------- |
| is_end | bool | 是否结束 | `false` 表示还有更多数据 |
| id | num | 通知 id | 最后(旧)一条通知的 id用作下次查询的起始 id |
| time | num | unix 时间戳 | 最后一条通知的时间 |
`items` 数组中的对象(每条通知):
| 字段 | 类型 | 内容 | 备注 |
| ---------- | ---- | -------------------- | ---------------------------- |
| id | num | 通知 id | |
| user | obj | **回复者**的用户信息 | |
| item | obj | 通知详情 | |
| counts | num | 通知计数 | 固定为 `1`,可能表示单条通知 |
| is_multi | num | 是否多回复 | 固定为 `0`,可能表示单条回复 |
| reply_time | num | unix 时间戳 | 回复时间 |
`user` 对象(回复者信息):
| 字段 | 类型 | 内容 | 备注 |
| -------- | ---- | -------------- | ------------------------------ |
| mid | num | 用户 mid | |
| fans | num | 粉丝数 | 固定为 `0`,可能不返回实际数据 |
| nickname | str | 用户昵称 | |
| avatar | str | 头像 URL | |
| mid_link | str | 用户主页链接 | 固定为空字符串 |
| follow | bool | 是否关注该用户 | `false` 表示未关注 |
`item` 对象(通知详情):
| 字段 | 类型 | 内容 | 备注 |
| -------------------- | ----- | ---------------- | ----------------------------- |
| subject_id | num | 主体 id | |
| root_id | num | 根评论 id | 最顶层的评论 ID |
| source_id | num | 源评论 id | 直接回复的评论 ID |
| target_id | num | 目标评论 id | 被回复的评论 ID |
| type | str | 通知类型 | 固定为 `"reply"`(回复类型) |
| business_id | num | 业务类型 id | `1`=视频评论,`11`=动态评论 |
| business | str | 业务名称 | `"评论"``"视频"` |
| title | str | 通知标题 | 摘要文本 |
| desc | str | 描述 | 固定为空字符串 |
| image | str | 图片 URL | 固定为空字符串 |
| uri | str | 跳转链接 | web 端跳转链接 |
| native_uri | str | 客户端跳转链接 | 客户端专用跳转链接 |
| detail_title | str | 详细标题 | 固定为空字符串 |
| root_reply_content | str | 根评论内容 | 最顶层评论的文本内容 |
| source_content | str | 源评论内容 | 直接回复的评论内容 |
| target_reply_content | str | 目标评论内容 | 被回复的评论内容 |
| at_details | array | @的用户列表 | 数组,每个元素是被@的用户对象 |
| topic_details | array | 话题详情 | 固定为空数组 |
| hide_reply_button | bool | 是否隐藏回复按钮 | |
| hide_like_button | bool | 是否隐藏点赞按钮 | |
| like_state | num | 点赞状态 | `0`=未点赞 |
| danmu | null | 弹幕信息 | 固定为 `null` |
| message | str | 消息内容 | 固定为空字符串 |
`at_details` 数组中的对象(被@的用户):
| 字段 | 类型 | 内容 | 备注 |
| -------- | ---- | -------------- | ------------------ |
| mid | num | 用户 mid | |
| fans | num | 粉丝数 | 固定为 `0` |
| nickname | str | 用户昵称 | |
| avatar | str | 头像 URL | |
| mid_link | str | 用户主页链接 | 固定为空字符串 |
| follow | bool | 是否关注该用户 | `false` 表示未关注 |
**示例:**
```shell
curl 'https://api.bilibili.com/x/msgfeed/reply' \
-b 'SESSDATA=xxx'
```
<details>
<summary>查看响应示例:</summary>
```json
{
"code": 0,
"message": "0",
"data": {
"cursor": {
"is_end": true,
"id": 823260581625886,
"time": 1749474709
},
"items": [{
"id": 823260581625886,
"user": {
"mid": 3546910497441845,
"fans": 0,
"nickname": "佘总累了",
"avatar": "https://i2.hdslb.com/bfs/face/e45c62bd47729e07dd01a788988be865ed3d210e.jpg",
"mid_link": "",
"follow": false
},
"item": {
"subject_id": 1073543151725051921,
"root_id": 0,
"source_id": 265141324256,
"target_id": 0,
"type": "dynamic",
"business_id": 17,
"business": "动态",
"title": "我已成为哔哩哔哩第245743680位转正会员挑战转正答题考试获得60分。",
"desc": "",
"image": "",
"uri": "https://www.bilibili.com/opus/1073543151725051921#reply265141324256",
"native_uri": "bilibili://opus/detail/1073543151725051921?comment_root_id=265141324256&comment_on=1",
"detail_title": "",
"root_reply_content": "",
"source_content": "60",
"target_reply_content": "",
"at_details": [],
"topic_details": [],
"hide_reply_button": false,
"hide_like_button": false,
"like_state": 0,
"danmu": null,
"message": ""
},
"counts": 1,
"is_multi": 0,
"reply_time": 1749474709
}],
"last_view_at": 1749474724
}
}
```
</details>

View File

@ -50,7 +50,7 @@
| recommend_followed_reply | num | 被关注时自动推送作品 | 0关闭<br />1开启 |
| ai_intercept | num | 私信智能拦截 | 0关闭<br />1开启 |
| anti_harassment | null | 防骚扰和互动人群设置 | 此接口恒返回 `null` |
| set_recv_reply | num | 收到回复提醒(新) | 0所有人<br />1关注的人<br />2不接受任何消息提醒 |
| set_recv_reply | num | 回复与@提醒(新) | 0所有人<br />1关注的人<br />2不接受任何消息提醒 |
| set_recv_like | num | 收到喜欢提醒(新) | 0接收<br />2不接收 |
| set_new_follow | num | 新增粉丝提醒(新) | 0接收<br />2不接收 |

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -2917,6 +2917,299 @@ curl -G 'https://api.bilibili.com/x/space/arc/search' \
</details>
### 查询用户投稿明细APP、无需wbi鉴权
> https://app.biliapi.com/x/v2/space/archive/cursor
*请求方式GET*
可以获取APP端可获得的用户空间投稿所有信息
APP端请求对web端包容度最高无需Cookie以外的任何认证只需填写vmid即可查询
**url参数**
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| ------------- | ---- | ----------------------- | -------------- | ------------- |
| vmid | num | 目标用户mid | 必要 | |
| aid | num | 请求返回起始视频 | 首次请求不需要 | 填写上次请求返回最后视频的aid |
| order | str | 排序方式 | 非必要 | `click`代表最多播放,`pubdate`代表最新发布 |
| sort | str | 确有影响,但这是什么呢? | 非必要 | 创建时间: asc<br />修改时间: desc |
| access_key | str | APP登录Token | APP方式必要 | |
| appkey | str | APP密钥 | APP方式必要 | |
| build | num | 版本 | APP方式必要 | 可为`8130300` |
| c_locale | str | 语言 | 非必要 | zh_CN |
| channel | num | 频道 | 非必要 | |
| fnval | num | 视频流类型 | 非必要 | |
| fnver | num | 请求时提供的fnver | 非必要 | 可为 0 |
| force_host | num | 源url类型 | 非必要 | 0:无限制 1:使用http 2:使用https |
| fourk | num | 是否允许 4K 视频 | 非必要 | 画质最高 1080P0默认<br />画质最高 4K1 |
| include_cursor| bool | 未知 | 非必要 | 可为false |
| mobi_app | str | 平台标识 | 非必要 | 可为 `web`、`android` 等 |
| platform | str | 平台 | 非必要 | 可为`web` |
| ps | int | 每页条数 | 非必要 | 默认为 `20` |
| pn | int | 似乎不是页码 | 非必要 | 默认为 `32` |
| pn_policy | int | 未知 | 非必要 | 可为 `1` |
| s_locale | str | 语言 | 非必要 | zh_CN |
| statistics | str | 位置 | 非必要 | 可为{"appId":1,"platform":3,"version":"8.13.0","abtest":""} |
| ts | num | 秒级时间戳 | 非必要 | |
| voice_balance | num | 未知 | 非必要 | 默认为 `1` |
| sign | str | APP签名 | APP方式必要 | |
**json回复**
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | ---------------------------- |
| code | num | 返回值 | 0成功<br />-400请求错误 |
| message | str | 错误信息 | 默认为0 |
| ttl | num | 1 | |
| data | obj | 视频信息 | |
`data`对象:
| 字段 | 类型 | 内容 | 备注 |
| --------------------- | ------ | ------------- | ----------------------------- |
| count | num | 总数 | 0成功<br />-400请求错误 |
| episodic_button | obj | 播放按钮 | 播放按钮的显示文字与跳转链接 |
| has_next | bool | 有无后续 | truefalse没有 |
| has_prev | bool | 有无前置 | truefalse没有 |
| item | array | 视频列表 | 注意是item没有复数 |
| last_watched_locator | obj | 上次播放定位 | 上次播放定位的一些信息 |
| order | array | 排列方式 | 排列方式的显示与值 |
`episodic_button`对象
| 字段 | 类型 | 内容 | 备注 |
| ----- | ------ | ----------------- | ------ |
| text | str | 四个大字“播放全部” | |
| uri | str | 跳转链接 | |
`item`数组:
| 项 | 类型 | 内容 | 备注 |
| ---- | ---- | ------------ | ---- |
| 0 | obj | 视频信息1 | |
| n | obj | 视频信息(n+1) | |
| …… | obj | …… | …… |
`item`数组元素:
| 字段 | 类型 | 内容 | 备注 |
| ----------------- | ----- | ----------------------- | ------------------------ |
| author | str | 作者昵称 | |
| bvid | str | 视频bv号 | |
| cover | str | 封面url | |
| cover_icon | str | 封面icon未知 | |
| ctime | num | 应该是发布时间秒级时间戳 | |
| cursor_attr | obj | 上次观看标记 | |
| danmaku | num | 弹幕数 | |
| duration | num | 视频时长 | |
| first_cid | num | 首个频道cid | |
| goto | str | 应该是跳转去向类型 | 已知av为视频 |
| icon_type | num | icon类型未知 | |
| is_cooperation | bool | 是否为合作视频 | 如果true会有粉色合作视频标签 |
| is_fold | bool | 是否折叠?未知 | |
| is_live_playback | bool | 是否为直播回放 | 如果true会有粉色直播回放标签 |
| is_onself | bool | 是否自己?未知 | |
| is_pgc | bool | 是否开pgc | |
| is_popular | bool | 是否上热门 | 如果true会有热门标签 |
| is_pugv | bool | 未知 | |
| is_steins | bool | 未知 | |
| is_ugcpay | bool | 未知 | |
| length | num | 长度?未知 | |
| param | str | 参数实际为视频aid | |
| play | num | 播放量 | |
| publish_time_text | str | 发布时间汉字字符串版 | |
| state | bool | 状态?未知 | |
| subtitle | str | 子标题 | |
| three_points | array | 三点按钮内容 | 关于稍后再看和分享的显示内容 |
| title | str | 标题 | |
| tname | str | tag的name | |
| ugc_pay | num | ugc支付未知 | |
| uri | str | APP 跳转 uri | |
| video | num | 未知 | |
| view_content | str | 播放量字符串版 | |
`item`元素中的`cursor_attr`对象:
| 字段 | 类型 | 内容 | 备注 |
| ------------------- | ---- | ----------------------- | -------------------------------------- |
| is_last_watched_arc | bool | 是否为上次播放 | 如果ture则封面笼罩一层写有“上次播放”的灰幕 |
| rank | num | 视频所处该列表排名 | |
`last_watched_locator`对象:
| 字段 | 类型 | 内容 | 备注 |
| ------------------ | ----- | ----------------- | ------ |
| display_threshold | num | 显示阈值 | |
| insert_ranking | num | 嵌入排名 | |
| text | str | 定位上次观看字样 | |
`order`数组:
| 项 | 类型 | 内容 | 备注 |
| ---- | ---- | ------------ | ----------------- |
| 0 | obj | 最新发布的内容 | 内包括文字和值 |
| 1 | obj | 最多播放的内容 | 内包括文字和值 |
**示例:**
查询用户mid=1240283469的稿件
以播放量排序显示3个稿件但假设aid=1301087872及以前稿件已经加载过
> https://app.biliapi.com/x/v2/space/archive/cursor?vmid=1240283469&order=click&ps=3&aid=1301087872
输入浏览器
<details>
<summary>查看响应示例:</summary>
```json
{
"code": 0,
"message": "0",
"ttl": 1,
"data": {
"episodic_button": {
"text": "播放全部",
"uri": "bilibili://music/playlist/spacepage/1240283469?desc=1\u0026offset=0\u0026oid=0\u0026order=time\u0026page_type=1\u0026playlist_intro=UP%E4%B8%BB%E7%9A%84%E5%85%A8%E9%83%A8%E8%A7%86%E9%A2%91\u0026ps=20\u0026sort_field=2\u0026sort_hidden=1\u0026total_count=33\u0026user_name=%E7%A5%9E%E5%9D%A1%E5%86%9C%E8%8E%AB"
},
"order": [
{
"title": "最新发布",
"value": "pubdate"
},
{
"title": "最多播放",
"value": "click"
}
],
"count": 33,
"item": [
{
"title": "【神坡农二】后半段更是天籁!汉堡仙人神坡农二吃完快餐深情演唱《樱花树下的约定》",
"subtitle": "",
"tname": "搞笑",
"cover": "http://i2.hdslb.com/bfs/archive/3e5d02f50b2e0a756cc5e3dd7f705abc58c3a439.jpg",
"cover_icon": "",
"uri": "bilibili://video/1351875564?history_progress=0\u0026player_height=1920\u0026player_rotate=0\u0026player_width=1080",
"param": "1351875564",
"goto": "av",
"length": "",
"duration": 45,
"is_popular": false,
"is_steins": false,
"is_ugcpay": false,
"is_cooperation": false,
"is_pgc": false,
"is_live_playback": false,
"is_pugv": false,
"is_fold": false,
"is_oneself": false,
"play": 1248,
"danmaku": 1,
"ctime": 1710518403,
"ugc_pay": 0,
"author": "神坡农莫",
"state": false,
"bvid": "BV1H6421w7Gy",
"videos": 1,
"three_point": [
{
"type": "addtoview",
"icon": "https://i0.hdslb.com/bfs/app/25cc01346574a601dafd45c94226d92a67eed79a.png",
"text": "添加至稍后再看"
},
{
"type": "share",
"icon": "https://i0.hdslb.com/bfs/app/a5787f586c72f2d6f6ade4b33c64908938c4a01f.png",
"text": "分享",
"share_succ_toast": "分享成功",
"share_fail_toast": "分享失败",
"share_path": "pages/video/video?avid=1351875564",
"short_link": "https://b23.tv/BV1H6421w7Gy"
}
],
"first_cid": 1471110689,
"cursor_attr": {
"is_last_watched_arc": false,
"rank": 1
},
"view_content": "1248",
"icon_type": 0,
"publish_time_text": "3月16日"
},
{
"title": "【迪迦奥特曼】亲自配音?迪迦超战神联合网络新星神坡农二!共同打造奥特曼大电影!",
"subtitle": "",
"tname": "搞笑",
"cover": "http://i0.hdslb.com/bfs/archive/c6c94d16aeeefca148c1694e45fd352b22cac3fb.jpg",
"cover_icon": "",
"uri": "bilibili://video/1950389780?history_progress=0\u0026player_height=1080\u0026player_rotate=0\u0026player_width=1920",
"param": "1950389780",
"goto": "av",
"length": "",
"duration": 101,
"is_popular": false,
"is_steins": false,
"is_ugcpay": false,
"is_cooperation": false,
"is_pgc": false,
"is_live_playback": false,
"is_pugv": false,
"is_fold": false,
"is_oneself": false,
"play": 1184,
"danmaku": 0,
"ctime": 1707431804,
"ugc_pay": 0,
"author": "神坡农莫",
"state": false,
"bvid": "BV1fC411x7uf",
"videos": 1,
"three_point": [
{
"type": "addtoview",
"icon": "https://i0.hdslb.com/bfs/app/25cc01346574a601dafd45c94226d92a67eed79a.png",
"text": "添加至稍后再看"
},
{
"type": "share",
"icon": "https://i0.hdslb.com/bfs/app/a5787f586c72f2d6f6ade4b33c64908938c4a01f.png",
"text": "分享",
"share_succ_toast": "分享成功",
"share_fail_toast": "分享失败",
"share_path": "pages/video/video?avid=1950389780",
"short_link": "https://b23.tv/BV1fC411x7uf"
}
],
"first_cid": 1434820367,
"cursor_attr": {
"is_last_watched_arc": false,
"rank": 2
},
"view_content": "1184",
"icon_type": 0,
"publish_time_text": "2月9日"
}
],
"last_watched_locator": {
"display_threshold": 10,
"insert_ranking": 6,
"text": "定位至上次观看"
},
"has_next": true,
"has_prev": true
}
}
```
</details>
### 查询用户投稿相簿预览
<details>

View File

@ -71,7 +71,8 @@
| is_upower_preview | bool | 充电专属视频是否支持试看 | |
| no_cache | bool | 是否不允许缓存? | |
| pages | array | 视频分P列表 | |
| subtitle | obj | 视频CC字幕信息 | |
| subtitle | obj | 视频CC字幕信息 | |
| ugc_season | obj | 视频合集信息 | 不在合集中的视频无此项 |
| staff | array | 合作成员列表 | 非合作视频无此项 |
| is_season_display | bool | | |
| user_garb | obj | 用户装扮信息 | |
@ -223,6 +224,220 @@
| is_fake_account | num | 0 | 作用尚不明确 |
| is_deleted | num | 0 | 作用尚不明确 |
`ugc_season`对象:
| 字段 | 类型 | 内容 | 备注 |
|------------|-------|---------|--------|
| id | num | 视频合集id | |
| title | str | 视频合集标题 | |
| mid | str | 视频合集作者id | |
| intro | str | 视频合集介绍 | |
| sign_state | num | | 作用尚不明确 |
| attribute | num | 稿件属性位 | 详情见[属性数据文档](attribute_data.md#attribute字段值(稿件属性位)) |
| sections | array | 视频合集中分部列表名称可由up主自定义默认为正片 | |
| stat | obj | 视频合集状态数 | |
| ep_count | num | 视频合集中视频数量 | |
| season_type | num | 作用尚不明确 | |
| is_pay_season | bool | 是否为付费合集 | |
| enable_vt | num | 作用尚不明确 | |
`ugc_season`中的`sections`数组:
| 字段 | 类型 | 内容 | 备注 |
|------------|-------|---------|--------|
| season_id | num | 视频合集中分部所属视频合集id | |
| section_id | num | 视频合集中分部id | |
| title | str | 视频合集中分部标题 | |
| type | num | | 作用尚不明确 |
| episodes | array | 视频合集中分部的视频列表 | |
`sections`中的`episodes`数组:
| 字段 | 类型 | 内容 | 备注 |
|------------|-------|---------|--------|
| season_id | num | 视频合集中分部中视频所属视频合集id | |
| section_id | num | 视频合集中视频合集中分部中视频所属视频合集分部id | |
| id | num | 视频合集分部中视频id(以下简称视频) | |
| aid | num | 视频aid | |
| cid | num | 视频cid | |
| title | str | 视频标题 | |
| ~~attribute~~(已经弃用) | ~~num~~ | ~~稿件属性位配置~~ | 详情见[属性数据文档](attribute_data.md#attribute字段值(稿件属性位)) |
| arc | obj | 视频详细信息 | 基本同「[获取视频详细信息(web端)](#获取视频详细信息(web端))」中的data对象 |
`ugc_season`中的`stat`对象:
|字段 | 类型 | 内容 | 备注 |
|------------|-------|---------|--------|
| season_id | num | 视频合集id | |
| view | num | 视频合集总浏览量 | |
| danmaku | num | 视频合集总弹幕量 | |
| reply | num | 视频合集总评论量 | |
| fav | num | 视频合集总收藏数 | |
| coin | num | 视频合集总投币数 | |
| share | num | 视频合集总分享数 | |
| now_rank | num | 视频合集当前排名 | |
| his_rank | num | 视频合集历史排名 | |
| like | num | 视频合集总获赞数 | |
| vt | num | 作用尚不明确 | |
| vv | num | 作用尚不明确 | |
`ugc_season`示例
```jsonc
"ugc_season": {
"id": 2974525,
"title": "楚汉传奇",
"cover": "https://archive.biliimg.com/bfs/archive/5a853e8bd10a041360b45a462785d90a58ec469e.png",
"mid": 1557073149,
"intro": "",
"sign_state": 0,
"attribute": 140,
"sections": [
{
"season_id": 2974525,
"id": 3341804,
"title": "正片",
"type": 1,
"episodes": [
{
"season_id": 2974525,
"section_id": 3341804,
"id": 64976947,
"aid": 1804383120,
"cid": 1541093346,
"title": "项燕的10万大军惨败秦国临死前立下狠誓“楚虽三户亡秦必楚”",
"attribute": 0,
"arc": {
"aid": 1804383120,
"videos": 0,
"type_id": 0,
"type_name": "",
"copyright": 0,
"pic": "http://i1.hdslb.com/bfs/archive/9d0ebd0a8abd7b005466cb57632ddaa550d24dab.jpg",
"title": "项燕的10万大军惨败秦国临死前立下狠誓“楚虽三户亡秦必楚”",
"pubdate": 1715427472,
"ctime": 1715427472,
"desc": "",
"state": 0,
"duration": 612,
"rights": {
"bp": 0,
"elec": 0,
"download": 0,
"movie": 0,
"pay": 0,
"hd5": 0,
"no_reprint": 0,
"autoplay": 0,
"ugc_pay": 0,
"is_cooperation": 0,
"ugc_pay_preview": 0,
"arc_pay": 0,
"free_watch": 0
},
"author": {
"mid": 0,
"name": "",
"face": ""
},
"stat": {
"aid": 1804383120,
"view": 787330,
"danmaku": 1298,
"reply": 774,
"fav": 2589,
"coin": 1947,
"share": 271,
"now_rank": 0,
"his_rank": 0,
"like": 12320,
"dislike": 0,
"evaluation": "",
"argue_msg": "",
"vt": 2630119,
"vv": 787330
},
"dynamic": "",
"dimension": {
"width": 0,
"height": 0,
"rotate": 0
},
"desc_v2": null,
"is_chargeable_season": false,
"is_blooper": false,
"enable_vt": 0,
"vt_display": ""
},
"page": {
"cid": 1541093346,
"page": 1,
"from": "vupload",
"part": "项燕的10万大军惨败秦国临死前立下狠誓“楚虽三户亡秦必楚”",
"duration": 612,
"vid": "",
"weblink": "",
"dimension": {
"width": 1920,
"height": 1080,
"rotate": 0
}
},
"bvid": "BV1Tb421b7mi",
"pages": [
{
"cid": 1541093346,
"page": 1,
"from": "vupload",
"part": "项燕的10万大军惨败秦国临死前立下狠誓“楚虽三户亡秦必楚”",
"duration": 612,
"vid": "",
"weblink": "",
"dimension": {
"width": 1920,
"height": 1080,
"rotate": 0
}
}
]
},
{
"season_id": 2974525,
"section_id": 3341804,
"id": 65121012,
"aid": 1004394994,
"cid": 1542426326,
"title": "卢绾斗鸡输了,眼看十个手指头保不住,刘邦倾家荡产帮了他",
"attribute": 0,
"arc": {
///
}
}
]
}
],
"stat": {
"season_id": 3617611,
"view": 1826438,
"danmaku": 5193,
"reply": 3036,
"fav": 5970,
"coin": 2303,
"share": 663,
"now_rank": 0,
"his_rank": 0,
"like": 40848,
"vt": 0,
"vv": 0
},
"ep_count": 21,
"season_type": 1,
"is_pay_season": false,
"enable_vt": 0
}
```
`staff`数组:
| 项 | 类型 | 内容 | 备注 |

View File

@ -16,7 +16,7 @@
| ------------- | ---- | -------- | ------------ | ------------------ |
| aid | num | 稿件avid | 必要(可选) | avid与bvid任选一个 |
| bvid | str | 稿件bvid | 必要(可选) | avid与bvid任选一个 |
| graph_version | num | 剧情图id | 必要 | 位于`player.so`中 |
| graph_version | num | 剧情图id | 必要 | 可于[播放器](/docs/video/player.md)接口的 `interaction` 對象取得 |
| edge_id | num | 模块编号 | 非必要 | 0或留空为起始模块 |
**json回复**
@ -366,4 +366,4 @@ curl -G 'https://api.bilibili.com/x/stein/edgeinfo_v2' \
}
```
</details>
</details>

View File

@ -61,6 +61,7 @@ web 播放器的信息接口,提供正常播放需要的元数据,包括:
| online_count | num | 在线人数 | |
| need_login_subtitle | bool | 是否必须登陆才能查看字幕 | 是的 |
| preview_toast | str | `为创作付费,购买观看完整视频\|购买观看` | |
| interaction | obj | 互动视频资讯 | 若非互动视频,则无该栏位(直接没有该键,而非栏位值为空)|
| options | obj | | |
| guide_attention | any | | |
| jump_card | any | | |
@ -139,6 +140,16 @@ web 播放器的信息接口,提供正常播放需要的元数据,包括:
| team_type | str | | |
| team_name | str | | |
`data` 对象中的 `interaction` 对象 (如果有):
| 字段 | 类型 | 内容 | 备注 |
| --------- | ----- | -------- | ---- |
| graph_version | num | 剧情图id | |
| msg | str | | 未登入有机会返回 `登录后才能体验全部结局哦~` |
| error_toast | str | 错误信息? | 所有互动视频皆返回 `剧情图被修改已失效`,不确定有没有例外 |
| mark | num | 0? | |
| need_reload | num | 0? | |
`data`对象中的`elec_high_level`对象:
| 字段 | 类型 | 内容 | 备注 |

File diff suppressed because one or more lines are too long

View File

@ -49,6 +49,7 @@
| 512 | 是否需求杜比视界 | 需求 DASH 格式<br />大会员认证 |
| 1024 | 是否需求 8K 分辨率 | 需求 DASH 格式<br />需要`qn=127`<br />大会员认证 |
| 2048 | 是否需求 AV1 编码 | 需求 DASH 格式 |
| 4048 | 所有可用 DASH 视频流 | 即一次性返回所有可用 DASH 格式视频流 |
例如:请求 DASH 格式,且需要 HDR 的视频流,则`fnval=16|64=80`
@ -109,6 +110,7 @@
| avid | num | 稿件 avid | 必要(可选) | avid 与 bvid 任选一个 |
| bvid | str | 稿件 bvid | 必要(可选) | avid 与 bvid 任选一个 |
| cid | num | 视频 cid | 必要 | |
| gaia_source | str | view-card | 必要(非必要) | 无Cookie(SESSDATA)时需要此参数<br\>有则Cookie(SESSDATA)时不需要 |
| qn | num | 视频清晰度选择 | 非必要 | 未登录默认 32480P登录后默认 64720P<br />含义见 [上表](#qn视频清晰度标识)<br />**DASH 格式时无效** |
| fnval | num | 视频流格式标识 | 非必要 | 默认值为`1`MP4 格式)<br />含义见 [上表](#fnval视频流格式标识) |
| fnver | num | 0 | 非必要 | |
@ -135,6 +137,7 @@
| 字段 | 类型 | 内容 | 备注 |
| ------------------ | ----- | ----------------------------------------------- | ----------------------------------------------- |
| v_voucher | str | (?) | 需要参数`gaia_source=view-card` |
| from | str | `local` | |
| result | str | `suee` | |
| message | str | 空? | |