This commit is contained in:
z0z0r4
2025-06-19 10:46:43 +08:00
29 changed files with 11912 additions and 4691 deletions

View File

@@ -1 +0,0 @@
../user/space.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

@@ -167,6 +167,12 @@
**示例:**
```shell
curl -G 'https://api.bilibili.com/x/credit/v2/jury/case/info' \
--data-urlencode 'case_id=AC2SiaD8jlrL' \
-b 'SESSDATA=xxx'
```
<details>
<summary>查看响应示例:</summary>

View File

@@ -18,7 +18,7 @@
| timezone_offset | num | -480 | 非必要 | |
| platform | str | 平台 | 非必要 | `web` |
| gaia_source | str | 来源 | 非必要 | `main_web` |
| features | str | 功能 | 必要 | `itemOpusStyle,opusBigCover,onlyfansVote,endFooterHidden,decorationCard,onlyfansAssetsV2,ugcDelete,onlyfansQaCard,commentsNewVersion` |
| features | str | 功能 | 必要 | `itemOpusStyle,opusBigCover,onlyfansVote,endFooterHidden,decorationCard,onlyfansAssetsV2,ugcDelete,onlyfansQaCard,commentsNewVersion` |
| web_location | str | `333.1368` | 非必要 | |
| x-bili-device-req-json | obj | 设备信息? | 非必要 | `{"platform":"web","device":"pc"}` |
| x-bili-web-req-json | obj | 请求信息? | 非必要 | `{"spm_id":"333.1368"}` |

View File

@@ -2,7 +2,7 @@
## 获取空间充电公示列表
> https://api.bilibili.com/x/ugcpay-rank/elec/month/up
> <https://api.bilibili.com/x/ugcpay-rank/elec/month/up>
*请求方式GET*
@@ -20,7 +20,7 @@
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | ---------------------------- |
| code | num | 返回值 | 0成功 <br />-400请求错误<br />88214up主未开通充电 |
| code | num | 返回值 | 0成功<br />-400请求错误<br />88214up主未开通充电 |
| message | str | 错误信息 | |
| ttl | num | 0 | |
| data | obj | 数据本体 | |
@@ -71,8 +71,8 @@
```shell
curl -G 'https://api.bilibili.com/x/ugcpay-rank/elec/month/up' \
-A 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36' \
--data-urlencode 'up_mid=53456'
-A 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36' \
--data-urlencode 'up_mid=53456'
```
<details>
@@ -80,39 +80,39 @@ curl -G 'https://api.bilibili.com/x/ugcpay-rank/elec/month/up' \
```json
{
"code": 0,
"message": "",
"ttl": 0,
"data": {
"count": 8521,
"list": [
{
"uname": "云梦澡堂",
"avatar": "https://i1.hdslb.com/bfs/face/6589df5fdac0f80593f6a86e4d88dc08e25df3d2.jpg",
"mid": 53456,
"pay_mid": 1555775947,
"rank": 1,
"trend_type": 0,
"vip_info": { "vipDueMsec": 0, "vipStatus": 0, "vipType": 0 },
"message": "",
"message_hidden": 0
},
{
"uname": "在下小天子",
"avatar": "https://i1.hdslb.com/bfs/face/a3bfbe6186889bb50dcd87c1156d07a70227a25b.jpg",
"mid": 53456,
"pay_mid": 508630801,
"rank": 2,
"trend_type": 0,
"vip_info": { "vipDueMsec": 0, "vipStatus": 0, "vipType": 0 },
"message": "",
"message_hidden": 0
}
],
"total_count": 41919,
"total": 41919,
"special_day": 0
}
"code": 0,
"message": "",
"ttl": 0,
"data": {
"count": 8521,
"list": [
{
"uname": "云梦澡堂",
"avatar": "https://i1.hdslb.com/bfs/face/6589df5fdac0f80593f6a86e4d88dc08e25df3d2.jpg",
"mid": 53456,
"pay_mid": 1555775947,
"rank": 1,
"trend_type": 0,
"vip_info": { "vipDueMsec": 0, "vipStatus": 0, "vipType": 0 },
"message": "",
"message_hidden": 0
},
{
"uname": "在下小天子",
"avatar": "https://i1.hdslb.com/bfs/face/a3bfbe6186889bb50dcd87c1156d07a70227a25b.jpg",
"mid": 53456,
"pay_mid": 508630801,
"rank": 2,
"trend_type": 0,
"vip_info": { "vipDueMsec": 0, "vipStatus": 0, "vipType": 0 },
"message": "",
"message_hidden": 0
}
],
"total_count": 41919,
"total": 41919,
"special_day": 0
}
}
```
@@ -120,7 +120,7 @@ curl -G 'https://api.bilibili.com/x/ugcpay-rank/elec/month/up' \
## 获取视频充电鸣谢名单
> https://api.bilibili.com/x/web-interface/elec/show
> <https://api.bilibili.com/x/web-interface/elec/show>
*请求方式:GET*
@@ -161,25 +161,36 @@ curl -G 'https://api.bilibili.com/x/ugcpay-rank/elec/month/up' \
| 字段 | 类型 | 内容 | 备注 |
| ---------- | ---- | ------------------------ | ---------------- |
| show | bool | 是否展示视频充电鸣谢名单 | |
| state | num | 充电功能开启状态 | -1未开通充电功能<br />1已开通自定义充电<br />2已开通包月、自定义充电<br />3已开通高档、自定义充电 |
| state | num | 充电功能开启状态 | -1未开通充电功能<br />1已开通自定义充电<br />2已开通包月、自定义充电<br />3已开通包月高档、自定义充电 |
| title | str | 充电按钮显示文字 | 空字符串或 `充电``充电中` |
| jump_url | str | 跳转url | |
| icon | str | 充电图标 | |
| high_level | obj | 高档充电信息 | |
| high_level | obj | 充电专属视频信息 | |
| with_qa_id | num | 充电问答id | |
`show_info`中的`high_level`对象:
| 字段 | 类型 | 内容 | 备注 |
| -------------- | ---- | ------------------------ | ---------------- |
| privilege_type | num | | |
| title | str | | |
| sub_title | str | | |
| show_button | bool | | |
| button_text | str | | |
| jump_url | obj | | |
| intro | str | | |
| open | bool | | |
| new | bool | | |
| 字段 | 类型 | 内容 | 备注 |
| -------------- | ---- | ------------------------------ | ---------------- |
| privilege_type | num | 解锁视频所需最低定价档位的代码 | 见[充电档位代码与定价](../electric/monthly.md#充电档位代码privilege_type与定价) |
| title | str | 提示标题 | `该视频为「{充电档位名称}」专属视频` |
| sub_title | str | 提示子标题 | `开通「{充电档位定价}元档包月充电」即可观看` |
| show_button | bool | 是否显示按钮 | |
| button_text | str | 按钮文本 | `去开通` |
| jump_url | obj | 跳转url信息 | 详细信息有待补充 |
| intro | str | 充电介绍语 | |
| open | bool | | |
| new | bool | | |
| question_text | str | | |
| qa_detail_link | str | | |
`high_level`中的`jump_url`对象:
| 字段 | 类型 | 内容 | 备注 |
| --------------- | ---- | ----------------------- | ---- |
| up_link | str | UP主包月充电购买页面url | |
| paywall_link | str | 视频试看后的提示页面url | |
| previewbar_link | str | 视频预览页面url | |
`data`中的`list`数组:
@@ -219,16 +230,16 @@ avid方式
```shell
curl -G 'https://api.bilibili.com/x/web-interface/elec/show' \
--data-urlencode 'mid=53456' \
--data-urlencode 'aid=967773538'
--data-urlencode 'mid=53456' \
--data-urlencode 'aid=967773538'
```
bvid方式
```shell
curl -G 'https://api.bilibili.com/x/web-interface/elec/show' \
--data-urlencode 'mid=53456' \
--data-urlencode 'bvid=BV1up4y1y77i'
--data-urlencode 'mid=53456' \
--data-urlencode 'bvid=BV1up4y1y77i'
```
<details>
@@ -296,7 +307,7 @@ curl -G 'https://api.bilibili.com/x/web-interface/elec/show' \
## 查询我收到的充电列表
> https://pay.bilibili.com/bk/brokerage/listForCustomerRechargeRecord
> <https://pay.bilibili.com/bk/brokerage/listForCustomerRechargeRecord>
*请求方式GET*
@@ -370,10 +381,10 @@ curl -G 'https://api.bilibili.com/x/web-interface/elec/show' \
```shell
curl -G 'https://pay.bilibili.com/bk/brokerage/listForCustomerRechargeRecord' \
--data-urlencode 'currentPage=1' \
--data-urlencode 'pageSize=2' \
--data-urlencode 'customerId=10026' \
-b 'SESSDATA=xxx'
--data-urlencode 'currentPage=1' \
--data-urlencode 'pageSize=2' \
--data-urlencode 'customerId=10026' \
-b 'SESSDATA=xxx'
```
<details>
@@ -432,7 +443,7 @@ curl -G 'https://pay.bilibili.com/bk/brokerage/listForCustomerRechargeRecord' \
## 查询历史充电数据
> https://member.bilibili.com/x/h5/elec/rank/recent
> <https://member.bilibili.com/x/h5/elec/rank/recent>
*请求方式GET*
@@ -487,7 +498,7 @@ curl -G 'https://pay.bilibili.com/bk/brokerage/listForCustomerRechargeRecord' \
```shell
curl -G 'https://member.bilibili.com/x/h5/elec/rank/recent' \
-b 'SESSDATA=xxx'
-b 'SESSDATA=xxx'
```
<details>
@@ -495,36 +506,36 @@ curl -G 'https://member.bilibili.com/x/h5/elec/rank/recent' \
```json
{
"code": 0,
"message": "0",
"ttl": 1,
"data": {
"list": [
{
"aid": 0,
"bvid": "",
"elec_num": 50,
"title": "",
"uname": "",
"avatar": "",
"ctime": "2020-04-02 03:12:22"
},
{
"aid": 0,
"bvid": "",
"elec_num": 20,
"title": "",
"uname": "",
"avatar": "",
"ctime": "2020-04-02 03:12:00"
}
],
"pager": {
"current": 1,
"size": 20,
"total": 38
}
"code": 0,
"message": "0",
"ttl": 1,
"data": {
"list": [
{
"aid": 0,
"bvid": "",
"elec_num": 50,
"title": "",
"uname": "",
"avatar": "",
"ctime": "2020-04-02 03:12:22"
},
{
"aid": 0,
"bvid": "",
"elec_num": 20,
"title": "",
"uname": "",
"avatar": "",
"ctime": "2020-04-02 03:12:00"
}
],
"pager": {
"current": 1,
"size": 20,
"total": 38
}
}
}
```

View File

@@ -22,7 +22,7 @@
## 获取包月充电列表
> https://api.live.bilibili.com/xlive/revenue/v1/guard/getChargeRecord
> <https://api.live.bilibili.com/xlive/revenue/v1/guard/getChargeRecord>
*请求方式GET*
@@ -75,7 +75,7 @@
| item | array | 充电详情 | |
| start | num | 开始充电时间 | 秒级时间戳 |
| high_level_state | num | 是否可对UP主进行高档充电 | |
| elec_reply_state | num | 是否可对UP主进行专属问答 | 0否<br />1是<br />2 |
| elec_reply_state | num | 是否可对UP主进行专属问答 | 0否<br />1是<br />2状态未知 |
数组`list`中的对象中的`item`数组:
@@ -85,7 +85,6 @@
| n | obj | 充电档位(n+1) | |
| …… | obj | …… | …… |
数组`item`中的对象:
| 字段 | 类型 | 内容 | 备注 |
@@ -111,18 +110,17 @@
| signed_price | num | 下次续费金额 | 单位为千分之一元人民币 |
| pay_channel | num | 签约平台 | 2微信支付<br />4支付宝 |
| period | num | 下次充电天数 | |
| mobile_app | num | 充电渠道 | 可为`android`等 |
| mobile_app | str | 充电渠道 | 可为`android`等 |
**示例:**
获取自己正在使用的包月充电的列表
```shell
curl 'https://api.live.bilibili.com/xlive/revenue/v1/guard/getChargeRecord' \
--data-urlencode 'page=1' \
--data-urlencode 'type=1' \
-b 'SESSDATA=xxx'
--data-urlencode 'page=1' \
--data-urlencode 'type=1' \
-b 'SESSDATA=xxx'
```
<details>
@@ -130,108 +128,107 @@ curl 'https://api.live.bilibili.com/xlive/revenue/v1/guard/getChargeRecord' \
```json
{
"code": 0,
"message": "0",
"ttl": 1,
"data": {
"list": [
{
"up_uid": 2233,
"user_name": "2233",
"user_face": "https://i0.hdslb.com/bfs/face/noface.jpg",
"item": [
{
"privilege_type": 10,
"icon": "https://s1.hdslb.com/bfs/templar/york-static/lightning_icon@2x.png",
"name": "为TA充电",
"expire_time": 1703519999,
"renew": {
"uid": 425503913,
"ruid": 2233,
"goods_id": 174,
"status": 1,
"next_execute_time": 1703174400,
"signed_time": 1671618921,
"signed_price": 36000,
"pay_channel": 2,
"period": 366,
"mobile_app": "android"
},
"start_time": 1671618921,
"renew_list": [
{
"uid": 425503913,
"ruid": 2233,
"goods_id": 174,
"status": 1,
"next_execute_time": 1703174400,
"signed_time": 1671618921,
"signed_price": 36000,
"pay_channel": 2,
"period": 366,
"mobile_app": "android"
}
]
}
],
"start": 1669183804,
"high_level_state": 1,
"elec_reply_state": 1
"code": 0,
"message": "0",
"ttl": 1,
"data": {
"list": [
{
"up_uid": 2233,
"user_name": "2233",
"user_face": "https://i0.hdslb.com/bfs/face/noface.jpg",
"item": [
{
"privilege_type": 10,
"icon": "https://s1.hdslb.com/bfs/templar/york-static/lightning_icon@2x.png",
"name": "为TA充电",
"expire_time": 1703519999,
"renew": {
"uid": 425503913,
"ruid": 2233,
"goods_id": 174,
"status": 1,
"next_execute_time": 1703174400,
"signed_time": 1671618921,
"signed_price": 36000,
"pay_channel": 2,
"period": 366,
"mobile_app": "android"
},
{
"up_uid": 293793435,
"user_name": "社会易姐QwQ",
"user_face": "https://i0.hdslb.com/bfs/face/aebb2639a0d47f2ce1fec0631f412eaf53d4a0be.jpg",
"item": [
{
"privilege_type": 10,
"icon": "https://s1.hdslb.com/bfs/templar/york-static/lightning_icon@2x.png",
"name": "为TA充电",
"expire_time": 1681401599,
"renew": {
"uid": 425503913,
"ruid": 293793435,
"goods_id": 173,
"status": 1,
"next_execute_time": 1680364800,
"signed_time": 1677760921,
"signed_price": 5000,
"pay_channel": 4,
"period": 31,
"mobile_app": "android"
},
"start_time": 1677760921,
"renew_list": [
{
"uid": 425503913,
"ruid": 293793435,
"goods_id": 173,
"status": 1,
"next_execute_time": 1680364800,
"signed_time": 1677760921,
"signed_price": 5000,
"pay_channel": 4,
"period": 31,
"mobile_app": "android"
}
]
}
],
"start": 1676033795,
"high_level_state": 1,
"elec_reply_state": 1
}
"start_time": 1671618921,
"renew_list": [
{
"uid": 425503913,
"ruid": 2233,
"goods_id": 174,
"status": 1,
"next_execute_time": 1703174400,
"signed_time": 1671618921,
"signed_price": 36000,
"pay_channel": 2,
"period": 366,
"mobile_app": "android"
}
]
}
],
"page": 1,
"page_size": 10,
"total_page": 3,
"total_num": 22,
"is_more": 1
}
"start": 1669183804,
"high_level_state": 1,
"elec_reply_state": 1
},
{
"up_uid": 293793435,
"user_name": "社会易姐QwQ",
"user_face": "https://i0.hdslb.com/bfs/face/aebb2639a0d47f2ce1fec0631f412eaf53d4a0be.jpg",
"item": [
{
"privilege_type": 10,
"icon": "https://s1.hdslb.com/bfs/templar/york-static/lightning_icon@2x.png",
"name": "为TA充电",
"expire_time": 1681401599,
"renew": {
"uid": 425503913,
"ruid": 293793435,
"goods_id": 173,
"status": 1,
"next_execute_time": 1680364800,
"signed_time": 1677760921,
"signed_price": 5000,
"pay_channel": 4,
"period": 31,
"mobile_app": "android"
},
"start_time": 1677760921,
"renew_list": [
{
"uid": 425503913,
"ruid": 293793435,
"goods_id": 173,
"status": 1,
"next_execute_time": 1680364800,
"signed_time": 1677760921,
"signed_price": 5000,
"pay_channel": 4,
"period": 31,
"mobile_app": "android"
}
]
}
],
"start": 1676033795,
"high_level_state": 1,
"elec_reply_state": 1
}
],
"page": 1,
"page_size": 10,
"total_page": 3,
"total_num": 22,
"is_more": 1
}
}
```
</details>
表示自己从2022-11-23 14:10:04开始给“2233”包月充电并且在2022-12-21 18:35:21在微信开通了连续包年充电在2023-12-22 00:00:00的时候会自动续费36元并继续充电366天
@@ -240,7 +237,7 @@ curl 'https://api.live.bilibili.com/xlive/revenue/v1/guard/getChargeRecord' \
## UP主包月充电详情
> https://api.bilibili.com/x/upower/item/detail
> <https://api.bilibili.com/x/upower/item/detail>
*请求方式GET*
@@ -254,20 +251,26 @@ curl 'https://api.live.bilibili.com/xlive/revenue/v1/guard/getChargeRecord' \
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | --------------------------------------------------------------- |
| code | num | 返回值 | 0成功<br />-400请求错误<br />203101UP主未开通包月充电功能 |
| message | str | 错误信息 | 默认为0 |
| ttl | num | 1 | |
| data | obj | 信息本体 | |
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | --------------------------- |
| code | num | 返回值 | 0成功<br />-400请求错误 |
| message | str | 错误信息 | 默认为0 |
| ttl | num | 1 | |
| data | obj | 信息本体 | |
`data`对象:
| 字段 | 类型 | 内容 | 备注 |
| ----------- | ---- | ---------- | ---- |
| upower_rank | obj | 充电详情 | |
| item | obj | 充电欢迎语 | |
| user_card | obj | UP主信息 | |
| 字段 | 类型 | 内容 | 备注 |
| ------------------ | ---- | -------------------------- | ------------------------------ |
| upower_rank | obj | 充电详情 | |
| item | obj | 充电欢迎语信息 | |
| user_card | obj | UP主信息 | |
| upower_level | num | UP主开通的充电等级 | 1非高档充电<br />2高档充电 |
| elec_reply_state | num | 是否可对UP主进行专属问答 | |
| voucher_state | obj | 包月充电券信息 | **详细信息有待补充** |
| upower_right_count | obj | 不同充电档位下的充电权益数 | |
| only_contain_medal | bool | 享有的权益仅为粉丝勋章 | |
| privilege_type | num | 当前给该UP主包月充电的档位 | 见[充电档位代码与定价](#充电档位代码privilege_type与定价)若从未给该UP主包月充电过则为0 |
`data`中的`upower_rank`对象:
@@ -279,13 +282,13 @@ curl 'https://api.live.bilibili.com/xlive/revenue/v1/guard/getChargeRecord' \
`upower_rank`中的`list`数组:
| 项 | 类型 | 内容 | 备注 |
| ---- | ---- | --------- | ---------------- |
| 0 | obj | 用户1 | |
| n | obj | 用户(n+1) | 按照充电时间排序 |
| …… | obj | …… | …… |
| 项 | 类型 | 内容 | 备注 |
| ---- | ---- | --------- | -------------------------- |
| 0 | obj | 用户1 | |
| n | obj | 用户(n+1) | 按照最初充电时间排序 |
| …… | obj | …… | …… |
数组`list`中的对象:
`list`数组中的对象:
| 字段 | 类型 | 内容 | 备注 |
| -------- | ---- | --------------- | ---- |
@@ -308,15 +311,20 @@ curl 'https://api.live.bilibili.com/xlive/revenue/v1/guard/getChargeRecord' \
| avatar | str | UP主头像url | |
| nickname | str | UP主昵称 | |
`data`中的`upower_right_count`对象:
| 字段 | 类型 | 内容 | 备注 |
| -------------- | ---- | -------------------- | ---- |
| {充电档位代码} | num | 该档位下的充电权益数 | |
**示例:**
获取`mid=293793435`的包月充电详情
获取`mid=1265680561`的包月充电详情
```shell
curl 'https://api.bilibili.com/x/upower/item/detail' \
--data-urlencode 'up_mid=293793435' \
-b 'SESSDATA=xxx'
--data-urlencode 'up_mid=1265680561' \
-b 'SESSDATA=xxx'
```
<details>
@@ -324,31 +332,63 @@ curl 'https://api.bilibili.com/x/upower/item/detail' \
```json
{
"code": 0,
"message": "0",
"ttl": 1,
"data": {
"upower_rank": {
"total": 1,
"total_desc": "1+",
"list": [
{
"rank": 1,
"mid": 425503913,
"nickname": "晨叶梦春",
"avatar": "https://i2.hdslb.com/bfs/face/540ed71e2fb2ddd8967c21b392026c34fc15673e.jpg"
}
]
"code": 0,
"message": "0",
"ttl": 1,
"data": {
"upower_rank": {
"total": 5082,
"total_desc": "5000+",
"list": [
{
"rank": 1,
"mid": 1476475459,
"nickname": "一只屑椒",
"avatar": "https://i1.hdslb.com/bfs/face/dc721da215f4651e0472d566b146ee8fdf198dbe.jpg"
},
"item": {
"intro_video_aid": "",
"welcomes": "哈喽b站的小伙伴们我的充电计划升级啦 感兴趣就多多支持我吧~(゜-゜)つロ"
{
"rank": 2,
"mid": 275365317,
"nickname": "-陪我去看海吧i",
"avatar": "https://i0.hdslb.com/bfs/face/dd7547b13020e7f47549ad7908fd3fc58efadefc.jpg"
},
"user_card": {
"avatar": "https://i0.hdslb.com/bfs/face/aebb2639a0d47f2ce1fec0631f412eaf53d4a0be.jpg",
"nickname": "社会易姐QwQ"
{
"rank": 3,
"mid": 401909111,
"nickname": "Vege5able",
"avatar": "https://i2.hdslb.com/bfs/face/46b1fdc94c7851ec0c47817adeec13e3225da559.jpg"
}
}
]
},
"item": {
"intro_video_aid": "",
"welcomes": "哈喽b站的小伙伴们我的充电计划升级啦 感兴趣就多多支持我吧~(゜-゜)つロ"
},
"user_card": {
"avatar": "https://i1.hdslb.com/bfs/face/5ddddba98f0265265662a8f7d5383e528a98412b.jpg",
"nickname": "永雏塔菲"
},
"upower_level": 1,
"elec_reply_state": 1,
"voucher_state": {
"voucher_order_id": "95843e812210c455d1ea6e4714bf105a00",
"user_voucher_state": 2,
"vip_action": 0,
"voucher_name": "包月充电券6元档",
"validate_price": 0,
"validate_level": 0,
"activity": "",
"common_time": 0,
"high_level_time": 0,
"specify_up": 0,
"specify_level": 0
},
"upower_right_count": {
"10": 3
},
"only_contain_medal": false,
"privilege_type": 0
}
}
```
@@ -356,7 +396,7 @@ curl 'https://api.bilibili.com/x/upower/item/detail' \
## 与UP主的包月充电关系
> https://api.bilibili.com/x/upower/charge/follow/info
> <https://api.bilibili.com/x/upower/charge/follow/info>
*请求方式GET*
@@ -381,15 +421,19 @@ curl 'https://api.bilibili.com/x/upower/item/detail' \
`data`对象:
| 字段 | 类型 | 内容 | 备注 |
| ---------------- | ---- | ------------------------ | ------------------------------------------- |
| days | num | 已保持多少天包月充电状态 | |
| up_card | obj | UP主信息 | |
| user_card | obj | 自己的信息 | |
| remain_days | num | 剩余天数 | 未处于包月充电状态为-1 |
| remain_less_1day | num | 剩余的天数小于1天 | 0否<br />1是<br />未处于包月充电状态为0 |
| upower_rank | obj | 充电详情 | |
| upower_icon | str | 充电图标url | 仅在处于包月充电状态时有内容 |
| 字段 | 类型 | 内容 | 备注 |
| ------------------ | ---- | ------------------------------ | ------------------------------------------- |
| days | num | 已保持多少天包月充电状态 | |
| up_card | obj | UP主信息 | |
| user_card | obj | 自己的信息 | |
| remain_days | num | 剩余天数 | 未处于包月充电状态为-1 |
| remain_less_1day | num | 剩余的天数是否小于1天 | 0否<br />1是<br />未处于包月充电状态为0 |
| upower_rank | obj | 充电详情 | |
| upower_icon | str | 充电图标url | 仅在处于包月充电状态时有内容 |
| upower_right_count | obj | 当前自己享有该UP主的充电权益数 | |
| only_contain_medal | bool | 享有的权益仅为粉丝勋章 | |
| privilege_type | num | 当前给该UP主包月充电的档位代码 | 见[充电档位代码与定价](#充电档位代码privilege_type与定价)若未处于包月充电状态为0 |
| challenge_info | obj | 充电挑战信息 | **详细信息有待补充** |
`data`中的`up_card`对象:
@@ -436,11 +480,10 @@ curl 'https://api.bilibili.com/x/upower/item/detail' \
获取与`mid=293793435`的包月充电关系
```shell
curl 'https://api.bilibili.com/x/upower/charge/follow/info' \
--data-urlencode 'up_mid=293793435' \
-b 'SESSDATA=xxx'
--data-urlencode 'up_mid=293793435' \
-b 'SESSDATA=xxx'
```
<details>
@@ -448,37 +491,53 @@ curl 'https://api.bilibili.com/x/upower/charge/follow/info' \
```json
{
"code": 0,
"message": "0",
"ttl": 1,
"data": {
"days": 17,
"up_card": {
"mid": 293793435,
"nickname": "社会易姐QwQ",
"official_title": "",
"avatar": "https://i0.hdslb.com/bfs/face/aebb2639a0d47f2ce1fec0631f412eaf53d4a0be.jpg"
},
"user_card": {
"avatar": "https://i2.hdslb.com/bfs/face/540ed71e2fb2ddd8967c21b392026c34fc15673e.jpg",
"nickname": "晨叶梦春"
},
"remain_days": 15,
"remain_less_1day": 0,
"upower_rank": {
"total": 1,
"total_desc": "1+",
"list": [
{
"rank": 1,
"mid": 425503913,
"nickname": "晨叶梦春",
"avatar": "https://i2.hdslb.com/bfs/face/540ed71e2fb2ddd8967c21b392026c34fc15673e.jpg"
}
]
},
"upower_icon": "https://i0.hdslb.com/bfs/garb/item/33e2e72d9a0c855f036b4cb55448f44af67a0635.png"
"code": 0,
"message": "0",
"ttl": 1,
"data": {
"days": 17,
"up_card": {
"mid": 293793435,
"nickname": "社会易姐QwQ",
"official_title": "",
"avatar": "https://i0.hdslb.com/bfs/face/aebb2639a0d47f2ce1fec0631f412eaf53d4a0be.jpg"
},
"user_card": {
"avatar": "https://i2.hdslb.com/bfs/face/540ed71e2fb2ddd8967c21b392026c34fc15673e.jpg",
"nickname": "晨叶梦春"
},
"remain_days": 15,
"remain_less_1day": 0,
"upower_rank": {
"total": 1,
"total_desc": "1+",
"list": [
{
"rank": 1,
"mid": 425503913,
"nickname": "晨叶梦春",
"avatar": "https://i2.hdslb.com/bfs/face/540ed71e2fb2ddd8967c21b392026c34fc15673e.jpg"
}
]
},
"upower_icon": "https://i0.hdslb.com/bfs/garb/item/33e2e72d9a0c855f036b4cb55448f44af67a0635.png",
"upower_right_count": 2,
"only_contain_medal": false,
"privilege_type": 10,
"challenge_info": {
"challenge_id": "",
"description": "",
"challenge_type": 0,
"remaining_days": 0,
"end_time": "",
"progress": 0,
"targets": [],
"state": 0,
"end_time_unix": 0,
"pub_dyn": 0,
"dyn_content": ""
}
}
}
```
@@ -488,7 +547,7 @@ curl 'https://api.bilibili.com/x/upower/charge/follow/info' \
## 包月充电用户排名
> https://api.bilibili.com/x/upower/up/member/rank/v2
> <https://api.bilibili.com/x/upower/up/member/rank/v2>
*请求方式GET*
@@ -496,11 +555,12 @@ curl 'https://api.bilibili.com/x/upower/charge/follow/info' \
**url参数**
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| ------ | ---- | ----------- | ------ | -------- |
| up_mid | num | 目标用户mid | 必要 | |
| ps | num | 每页项数 | 必要 | 默认为20 |
| pn | num | 页码 | 必要 | 默认为1 |
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| -------------- | ---- | ------------ | ------ | --------- |
| up_mid | num | 目标用户mid | 必要 | |
| ps | num | 每页项数 | 必要 | 最大为101 |
| pn | num | 页码 | 必要 | |
| privilege_type | num | 充电档位代码 | 非必要 | 见[充电档位代码与定价](#充电档位代码privilege_type与定价),默认为可以显示排名的档位中**最高定价**的档位 |
**json回复**
@@ -515,22 +575,27 @@ curl 'https://api.bilibili.com/x/upower/charge/follow/info' \
`data`对象:
| 字段 | 类型 | 内容 | 备注 |
| ------------ | ----- | ------------ | ---- |
| up_info | obj | UP主信息 | |
| rank_info | array | 充电用户排名 | |
| user_info | obj | 自己的信息 | |
| member_total | num | 充电用户总数 | |
| 字段 | 类型 | 内容 | 备注 |
| -------------- | ----- | ------------------------------ | -------- |
| up_info | obj | UP主信息 | |
| rank_info | array | 当前档位的充电用户排名 | |
| user_info | obj | 自己在该档位下与UP主的充电关系 | |
| member_total | num | 当前档位的充电用户总数 | |
| privilege_type | num | 当前充电档位代码 | 见[充电档位代码与定价](#充电档位代码privilege_type与定价) |
| is_charge | bool | 自己是否给该UP主包月充电过 | 无论档位 |
| tabs | array | 可显示排名的充电档位代码列表 | |
| level_info | array | 可显示排名的充电档位信息 | |
`data`中的`up_info`对象:
| 字段 | 类型 | 内容 | 备注 |
| -------- | ---- | ------------ | ---------------------------------------- |
| mid | num | UP主mid | |
| nickname | str | UP主昵称 | |
| avatar | str | UP主头像url | |
| type | num | UP主认证类型 | -1无<br />0UP主认证<br />1机构认证 |
| title | str | UP主认证文字 | |
| 字段 | 类型 | 内容 | 备注 |
| ------------ | ---- | -------------------- | ---------------------------------------- |
| mid | num | UP主mid | |
| nickname | str | UP主昵称 | |
| avatar | str | UP主头像url | |
| type | num | UP主认证类型 | -1无<br />0UP主认证<br />1机构认证 |
| title | str | UP主认证文字 | |
| upower_state | num | UP主充电功能开启状态 | 0未开通充电功能<br />1已开通自定义充电<br />2已开通包月、自定义充电<br />3已开通包月高档、自定义充电 |
`data`中的`rank_info`数组:
@@ -559,19 +624,46 @@ curl 'https://api.bilibili.com/x/upower/charge/follow/info' \
| mid | num | 用户mid | |
| nickname | str | 用户昵称 | |
| avatar | str | 用户头像url | |
| rank | num | 包月充电排名 | 不在包月充电用户列表里为-1 |
| rank | num | 包月充电排名 | 不在该充电档位用户列表里为-1 |
| day | num | 包月充电天数 | |
| expire_at | num | 包月充电过期时间 | 秒级时间戳若从未给UP主包月充电为0 |
| remain_days | num | 未过期时:剩余天数<br />已过期且之前给UP主包月充电过自过期以来的天数 | |
| expire_at | num | 包月充电过期时间 | 秒级时间戳若从未给UP主在该档位下包月充电为0 |
| remain_days | num | 剩余天数 | 若该档位充电状态已失效为0 |
`data`中的`tabs`数组:
| 项 | 类型 | 内容 | 备注 |
| ---- | ---- | ------------- | ---------------- |
| 0 | num | 档位代码1 | |
| n | num | 档位代码(n+1) | |
| …… | num | …… | …… |
`data`中的`level_info`数组:
| 项 | 类型 | 内容 | 备注 |
| ---- | ---- | --------- | ---------------- |
| 0 | obj | 档位1 | |
| n | obj | 档位(n+1) | |
| …… | obj | …… | …… |
`level_info`数组中的对象:
| 字段 | 类型 | 内容 | 备注 |
| -------------- | ---- | -------------------- | ---------------------- |
| privilege_type | num | 当前充电档位代码 | 见[充电档位代码与定价](#充电档位代码privilege_type与定价) |
| name | str | 档位名称 | |
| price | num | 档位价格 | 单位为百分之一元人民币 |
| member_total | num | 当前档位的用户总数 | |
**示例:**
获取给`mid=293793435`包月充电的用户排名
获取给`mid=686127`包月充电的用户排名
```shell
curl 'https://api.bilibili.com/x/upower/up/member/rank/v2' \
--data-urlencode 'up_mid=293793435' \
-b 'SESSDATA=xxx'
--data-urlencode 'up_mid=686127' \
--data-urlencode 'ps=3' \
--data-urlencode 'pn=1' \
-b 'SESSDATA=xxx'
```
<details>
@@ -579,39 +671,75 @@ curl 'https://api.bilibili.com/x/upower/up/member/rank/v2' \
```json
{
"code": 0,
"message": "0",
"ttl": 1,
"data": {
"up_info": {
"mid": 293793435,
"nickname": "社会易姐QwQ",
"avatar": "https://i0.hdslb.com/bfs/face/aebb2639a0d47f2ce1fec0631f412eaf53d4a0be.jpg",
"type": -1,
"title": ""
},
"rank_info": [
{
"mid": 425503913,
"nickname": "晨叶梦春",
"avatar": "https://i2.hdslb.com/bfs/face/540ed71e2fb2ddd8967c21b392026c34fc15673e.jpg",
"rank": 1,
"day": 31,
"expire_at": 0,
"remain_days": 0
}
],
"user_info": {
"mid": 425503913,
"nickname": "晨叶梦春",
"avatar": "https://i2.hdslb.com/bfs/face/540ed71e2fb2ddd8967c21b392026c34fc15673e.jpg",
"rank": 1,
"day": 31,
"expire_at": 1678723199,
"remain_days": 15
},
"member_total": 1
}
"code": 0,
"message": "0",
"ttl": 1,
"data": {
"up_info": {
"mid": 686127,
"nickname": "籽岷",
"avatar": "https://i0.hdslb.com/bfs/face/7efb679569b2faeff38fa08f6f992fa1ada5e948.webp",
"type": 0,
"title": "2024百大UP主、知名游戏UP主",
"upower_state": 3
},
"rank_info": [
{
"mid": 187012867,
"nickname": "是我灬不配",
"avatar": "https://i1.hdslb.com/bfs/face/ad4d2ce0705fd766a0ade315f5a6a5984ce479f4.jpg",
"rank": 1,
"day": 682,
"expire_at": 0,
"remain_days": 0
},
{
"mid": 20135495,
"nickname": "和平时一样鸽",
"avatar": "https://i2.hdslb.com/bfs/face/0eef725964105f39b1f000a59f232d9094017544.jpg",
"rank": 2,
"day": 620,
"expire_at": 0,
"remain_days": 0
},
{
"mid": 490065730,
"nickname": "乔治Y-GYhaha",
"avatar": "https://i1.hdslb.com/bfs/face/e1753e1e43d7a7df5333c5a2f4d3ec1d0334ebe6.jpg",
"rank": 3,
"day": 527,
"expire_at": 0,
"remain_days": 0
}
],
"user_info": {
"mid": 425503913,
"nickname": "晨叶梦春",
"avatar": "https://i2.hdslb.com/bfs/face/540ed71e2fb2ddd8967c21b392026c34fc15673e.jpg",
"rank": -1,
"day": 0,
"expire_at": 0,
"remain_days": 0
},
"member_total": 46881,
"privilege_type": 50,
"is_charge": false,
"tabs": [50, 10],
"level_info": [
{
"privilege_type": 50,
"name": "审稿",
"price": 12800,
"member_total": 1082
},
{
"privilege_type": 10,
"name": "石粒",
"price": 600,
"member_total": 46158
}
]
}
}
```

File diff suppressed because it is too large Load Diff

507
docs/live/danmaku.md Normal file
View File

@@ -0,0 +1,507 @@
# 直播间弹幕
## 获取当前用户对应直播间可发弹幕配置
> https://api.live.bilibili.com/xlive/web-room/v1/dM/GetDMConfigByGroup
*请求方式: GET*
认证方式: Cookie (SESSDATA)
未登录也可以获取,但颜色只有白色可用,模式只有滚动。
**url参数**
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| ---- | --- | --- | ---- | --- |
| room_id | num | 直播间id | 必要 | |
| web_location | str | (?) | 非必要 | 作用尚不明确 |
| w_rid | str | wbi签名 | 非必要 | 不强制需要 |
| wts | num | 秒时间戳 | 非必要 | 不强制需要 |
**json回复**
根对象:
| 字段 | 类型 | 内容 | 备注 |
| --- | --- | --- | --- |
| code | num | 返回值 | 0: 成功<br />-400: 参数错误 |
| data | obj | 信息本体 | |
| message | str | 错误信息 | |
| msg | str | 信息 | 成功时存在,为`""`(空字符串) |
| ttl | num | `1` | 成功时不存在 |
`data` 对象:
| 字段 | 类型 | 内容 | 备注 |
| --- | --- | --- | --- |
| group | arr | 弹幕颜色组 | |
| mode | arr | 弹幕显示模式 | |
`data.group` 数组中对象:
| 字段 | 类型 | 内容 | 备注 |
| --- | --- | --- | --- |
| name | str | 显示名称 | |
| sort | num | 用于排序 | |
| color | arr | 该组颜色列表 | |
`data.group[i].color` 数组中对象:
| 字段 | 类型 | 内容 | 备注 |
| --- | --- | --- | --- |
| name | str | 颜色名 | |
| color | str | 十进制颜色值 | 发送弹幕用 |
| color\_hex | str | 十六进制颜色值 | 发送弹幕用 |
| status | num | 可用状态 | 0: 不可用<br />1: 可用 |
| weight | num | (?) | 作用尚不明确 |
| color\_id | num | 颜色id? | |
| origin | num | (?) | |
`data.mode` 数组中对象:
| 字段 | 类型 | 内容 | 备注 |
| --- | --- | --- | --- |
| name | str | 模式名称 | |
| mode | num | 模式值 | 发送弹幕用 |
| type | str | 模式类型 | |
| status | num | 可用状态 | 0: 不可用<br />1: 可用 |
**示例:**
获取未登录用户在直播间 `1` 的弹幕配置可用情况
```shell
curl 'https://api.live.bilibili.com/xlive/web-room/v1/dM/GetDMConfigByGroup?room_id=1'
```
<details>
<summary>查看响应示例:</summary>
```json
{
"code": 0,
"data": {
"group": [
{
"name": "普",
"sort": 0,
"color": [
{
"name": "白色",
"color": "16777215",
"color_hex": "ffffff",
"status": 1,
"weight": -9999,
"color_id": -9999,
"origin": 0
}
]
},
{
"name": "航",
"sort": 100,
"color": [
{
"name": "紫色",
"color": "14893055",
"color_hex": "e33fff",
"status": 0,
"weight": 0,
"color_id": 6,
"origin": 1
}
]
},
{
"name": "粉",
"sort": 200,
"color": [
{
"name": "松石绿",
"color": "5566168",
"color_hex": "54eed8",
"status": 0,
"weight": 99,
"color_id": 66,
"origin": 2
},
{
"name": "雨后蓝",
"color": "5816798",
"color_hex": "58c1de",
"status": 0,
"weight": 98,
"color_id": 67,
"origin": 2
},
{
"name": "星空蓝",
"color": "4546550",
"color_hex": "455ff6",
"status": 0,
"weight": 97,
"color_id": 68,
"origin": 2
},
{
"name": "紫罗兰",
"color": "9920249",
"color_hex": "975ef9",
"status": 0,
"weight": 96,
"color_id": 69,
"origin": 2
},
{
"name": "梦境红",
"color": "12802438",
"color_hex": "c35986",
"status": 0,
"weight": 95,
"color_id": 70,
"origin": 2
},
{
"name": "热力橙",
"color": "16747553",
"color_hex": "ff8c21",
"status": 0,
"weight": 94,
"color_id": 71,
"origin": 2
},
{
"name": "香槟金",
"color": "16774434",
"color_hex": "fff522",
"status": 0,
"weight": 93,
"color_id": 72,
"origin": 2
}
]
},
{
"name": "爷",
"sort": 300,
"color": [
{
"name": "红色",
"color": "16738408",
"color_hex": "ff6868",
"status": 0,
"weight": 0,
"color_id": 8,
"origin": 3
},
{
"name": "蓝色",
"color": "6737151",
"color_hex": "66ccff",
"status": 0,
"weight": 0,
"color_id": 7,
"origin": 3
}
]
},
{
"name": "活",
"sort": 400,
"color": [
{
"name": "盛典金",
"color": "16766720",
"color_hex": "ffd700",
"status": 0,
"weight": 100,
"color_id": 44,
"origin": 4
},
{
"name": "升腾蓝",
"color": "4286945",
"color_hex": "4169e1",
"status": 0,
"weight": 100,
"color_id": 43,
"origin": 4
},
{
"name": "青色",
"color": "65532",
"color_hex": "fffc",
"status": 0,
"weight": 0,
"color_id": 5,
"origin": 4
},
{
"name": "绿色",
"color": "8322816",
"color_hex": "7eff00",
"status": 0,
"weight": 0,
"color_id": 4,
"origin": 4
},
{
"name": "黄色弹幕",
"color": "16772431",
"color_hex": "ffed4f",
"status": 0,
"weight": 0,
"color_id": 3,
"origin": 4
},
{
"name": "橙色",
"color": "16750592",
"color_hex": "ff9800",
"status": 0,
"weight": 0,
"color_id": 2,
"origin": 4
},
{
"name": "粉色",
"color": "16741274",
"color_hex": "ff739a",
"status": 0,
"weight": 0,
"color_id": 1,
"origin": 4
}
]
}
],
"mode": [
{
"name": "滚动",
"mode": 1,
"type": "scroll",
"status": 1
},
{
"name": "底部",
"mode": 4,
"type": "bottom",
"status": 0
},
{
"name": "顶部",
"mode": 5,
"type": "top",
"status": 0
}
]
},
"message": "",
"msg": ""
}
```
</details>
## 设置弹幕样式
> https://api.live.bilibili.com/xlive/web-room/v1/dM/AjaxSetConfig
*请求方式: POST*
认证方式: Cookie (SESSDATA)
鉴权方式: Cookie中`bili_jct`的值正确并与`csrf`相同
**正文参数 (application/x-www-form-urlencoded)**
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| ---- | --- | --- | ---- | --- |
| csrf | str | CSRF Token位于cookie | 必要 | |
| csrf\_token | str | 同csrf | 非必要 | |
| room\_id | num | 直播间id | 必要 | |
| color | str | 颜色值 | 必要(可选) | color和mode任选一个 |
| mode | num | 弹幕模式 | 必要(可选) | color和mode任选一个 |
注1: 抓取到的color格式是`"0x"+六位十六进制小写颜色值`,实际不需要`0x`,且不区分大小写。
注2: 若color和mode同时存在将只处理colormode将被忽略。见[#1236(comment)](https://github.com/SocialSisterYi/bilibili-API-collect/issues/1236#issuecomment-2849019923)
**json回复**
根对象:
| 字段 | 类型 | 内容 | 备注 |
| --- | --- | --- | --- |
| code | num | 返回值 | 0: 成功<br />-101: 账号未登录<br />-500: 未达到使用条件<br />10064002: 参数错误<br />10065107: 颜色不存在 |
| message | str | 错误信息 | |
| ttl | num | `1` | |
| data | obj | 信息本体 | 部分情况不存在10064002时为`null` |
`data` 对象:
| 字段 | 类型 | 内容 | 备注 |
| --- | --- | --- | --- |
| status | num | 同code | |
| msg | str | 提示信息 | 成功时有内容 |
| roomid | num | 直播间id | |
**示例:**
更改直播间 `1017` 的弹幕颜色为白色
```shell
curl 'https://api.live.bilibili.com/xlive/web-room/v1/dM/AjaxSetConfig' \
--data-urlencode 'room_id=1017' \
--data-urlencode 'color=0xffffff' \
--data-urlencode 'csrf=xxx' \
-b 'SESSDATA=xxx;bili_jct=xxx'
```
<details>
<summary>查看响应示例:</summary>
```json
{
"code":0,
"message":"0",
"ttl":1,
"data":{
"status":0,
"msg":"设置成功~",
"roomid":1017
}
}
```
</details>
## 发送直播弹幕
> https://api.live.bilibili.com/msg/send
*请求方式: POST*
认证方式: Cookie (SESSDATA)
鉴权方式: Cookie中`bili_jct`的值正确并与`csrf`相同
**url参数**
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| ----- | ---- | --- | ----- | --- |
| w_rid | str | wbi签名 | 非必要 | 不强制需要 |
| wts | num | Unix 秒时间戳 | 非必要 | 不强制需要 |
**正文参数 (`application/x-www-form-urlencoded`或`multipart/form-data`)**
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| ---- | --- | --- | ---- | --- |
| csrf | str | CSRF Token位于cookie | 必要 | |
| roomid | num | 直播间id | 必要 | |
| msg | str | 弹幕内容 | 必要 | |
| rnd | num | 当前 Unix 秒时间戳 | 必要 | |
| fontsize | num | 字体大小 | 必要 | 默认为`25` |
| color | num | 十进制颜色值 | 必要 | 实际无效果 |
| mode | num | 展示模式 | 非必要 | 默认为`1` |
| bubble | num | (?) | 非必要 | 值为`0` |
| room\_type | num | (?) | 非必要 | `0` |
| jumpfrom | num | (?) | 非必要 | `0` |
| reply\_mid | num | (?) | 非必要 | `0` |
| reply\_attr | num | (?) | 非必要 | `0` |
| reply\_uname | str | (?) | 非必要 | `""` |
| replay\_dmid | str | (?) | 非必要 | `""` |
| statistics | str | (?) | 非必要 | `{"appId":100,"platform":5}` |
| csrf_token | str | 同csrf | 非必要 | |
**json回复**
根对象:
| 字段 | 类型 | 内容 | 备注 |
| --- | --- | --- | --- |
| code | num | 返回值 | `-101`:账号未登录<br />`-111`:csrf 校验失败<br />`-400`:请求错误,带有必须参数的信息<br />`1003212`:超出限制长度<br />`10031`:发送频率过快 |
| message | str | 错误信息 | |
| msg | str | 同`message` | |
| data | obj | 信息本体 | |
| ttl | num | `1` | 在小于0的code中存在 |
`data` 对象:
| 字段 | 类型 | 内容 | 备注 |
| --- | --- | --- | --- |
| mode_info | obj | 弹幕信息 | |
| dm_v2 | null | v2弹幕 | |
`data.mode_info` 对象:
基本上与[直播间信息流#弹幕 (DANMU_MSG)](message_stream.md#弹幕-danmu_msg)的`info[0][15]`对象相同。
**示例:**
给直播间 `1899237171` 发送内容为 `QwQ` 的弹幕
```shell
curl 'https://api.live.bilibili.com/msg/send' \
--data-urlencode 'roomid=1899237171' \
--data-urlencode 'msg=QwQ' \
--data-urlencode 'rnd=1744956003' \
--data-urlencode 'fontsize=25'
--data-urlencode 'color=16777215'
--data-urlencode 'csrf=xxx' \
-b 'SESSDATA=xxx;bili_jct=xxx'
```
<details>
<summary>查看响应示例:</summary>
```json
{
"code":0,
"data":{
"mode_info":{
"mode":0,
"show_player_type":0,
"extra":"{\"send_from_me\":true,\"master_player_hidden\":false,\"mode\":0,\"color\":16777215,\"dm_type\":0,\"font_size\":25,\"player_mode\":1,\"show_player_type\":0,\"content\":\"QwQ\",\"user_hash\":\"2402762465\",\"emoticon_unique\":\"\",\"bulge_display\":0,\"recommend_score\":7,\"main_state_dm_color\":\"\",\"objective_state_dm_color\":\"\",\"direction\":0,\"pk_direction\":0,\"quartet_direction\":0,\"anniversary_crowd\":0,\"yeah_space_type\":\"\",\"yeah_space_url\":\"\",\"jump_to_url\":\"\",\"space_type\":\"\",\"space_url\":\"\",\"animation\":{},\"emots\":null,\"is_audited\":false,\"id_str\":\"4e3ed8ede9409b234b5e1d64c06801ea3119\",\"icon\":null,\"show_reply\":true,\"reply_mid\":0,\"reply_uname\":\"\",\"reply_uname_color\":\"\",\"reply_is_mystery\":false,\"reply_type_enum\":0,\"hit_combo\":0,\"esports_jump_url\":\"\"}",
"user":{
"uid":438160221,
"base":{
"name":"weatfe",
"face":"https://i0.hdslb.com/bfs/face/member/noface.jpg",
"name_color":0,
"is_mystery":false,
"risk_ctrl_info":null,
"origin_info":{
"name":"weatfe",
"face":"https://i0.hdslb.com/bfs/face/member/noface.jpg"
},
"official_info":{
"role":0,
"title":"",
"desc":"",
"type":-1
},
"name_color_str":""
},
"medal":null,
"wealth":null,
"title":{
"old_title_css_id":"",
"title_css_id":""
},
"guard":null,
"uhead_frame":null,
"guard_leader":{
"is_guard_leader":false
}
}
},
"dm_v2":null
},
"message":"",
"msg":""
}
```
</details>

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>

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>

View File

@@ -78,7 +78,7 @@ curl 'https://api.live.bilibili.com/xlive/app-blink/v1/preLive/CreateRoom' \
## 更新直播间标题
## 更新直播间信息
> https://api.live.bilibili.com/room/v1/Room/update
@@ -92,10 +92,15 @@ curl 'https://api.live.bilibili.com/xlive/app-blink/v1/preLive/CreateRoom' \
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| ------- | ---- | ------------------------ | ------ | -------------------- |
| room_id | num | 直播间id | 必要 | 必须为自己的直播间id |
| title | str | 直播间标题 | | 最大20字符 |
| csrf | str | CSRF Token位于cookie | 必要 | |
| csrf_token | str | CSRF Token位于 cookie | | |
| csrf_token | str | CSRF Token位于 cookie | 非必要 | |
| platform | str | 平台标识 | 非必要 | |
| visit_id | str | (?) | 非必要 | 某种标识? |
| room_id | num | 直播间id | 必要 | 必须为自己的直播间id |
| title | str | 直播间标题 | 非必要 | 上限40个字符 |
| area\_id | num | 直播分区id子分区id | 非必要 | 详见[直播分区](live_area.md) |
| add\_tag | str | 要添加的标签 | 非必要 | 开播设置界面上限10个字符 |
| del\_tag | str | 要删除的标签 | 非必要 | 若存在`add_tag`时不起作用 |
**json回复**
@@ -103,10 +108,26 @@ curl 'https://api.live.bilibili.com/xlive/app-blink/v1/preLive/CreateRoom' \
| 字段 | 类型 | 内容 | 备注 |
| ------- | ------ | -------- | ------------------------------------------------------ |
| code | num | 返回值 | 0成功<br />65530token错误登录错误<br />1错误 |
| code | num | 返回值 | 0成功<br />-1操作太频繁<br />1错误<br />3未登录或鉴权失败<br />405不允许的请求方法<br />60009分区已下线<br />65530token错误登录错误<br /> |
| msg | str | 错误信息 | 默认为ok |
| message | str | 错误信息 | 默认为ok |
| data | array | 空 | |
| data | obj | 信息本体 | 部分失败情况下是`[]`(空数组) |
`data`对象:
| 字段 | 类型 | 内容 | 备注 |
| --------------- | ---- | ---- | ---- |
| sub_session_key | str | 信息变动标识 | |
| audit_info | obj | 标题审核信息 | |
`data`中的`audit_info`对象:
| 字段 | 类型 | 内容 | 备注 |
| ------------------ | ---- | ---- | ---- |
| audit_title_reason | str | 标题审核提示 | |
| audit_title_status | num | 标题审核状态 | |
| audit_title | str | 被审核的标题 | 更新标题时存在 |
| update_title | str | `""` | 作用尚不明确 |
**示例:**
@@ -114,10 +135,10 @@ curl 'https://api.live.bilibili.com/xlive/app-blink/v1/preLive/CreateRoom' \
```shell
curl 'https://api.live.bilibili.com/room/v1/Room/update' \
--data-urlencode 'room_id=10352053' \
--data-urlencode 'title=测试' \
--data-urlencode 'csrf=xxx' \
-b 'SESSDATA=xxx;bili_jct=xx'
--data-urlencode 'room_id=10352053' \
--data-urlencode 'title=测试' \
--data-urlencode 'csrf=xxx' \
-b 'SESSDATA=xxx;bili_jct=xx'
```
<details>
@@ -125,10 +146,111 @@ curl 'https://api.live.bilibili.com/room/v1/Room/update' \
```json
{
"code": 0,
"msg": "ok",
"message": "ok",
"data": []
"code":0,
"msg":"ok",
"message":"ok",
"data":{
"sub_session_key":"",
"audit_info":{
"audit_title_reason":"先发后审",
"update_title":"",
"audit_title_status":2,
"audit_title":"测试"
}
}
}
```
</details>
修改直播间`10352053`分区为`40`
```shell
curl 'https://api.live.bilibili.com/room/v1/Room/update' \
--data-urlencode 'room_id=10352053' \
--data-urlencode 'area_id=40' \
--data-urlencode 'csrf=xxx' \
-b 'SESSDATA=xxx;bili_jct=xx'
```
<details>
<summary>查看响应示例:</summary>
```json
{
"code": 0,
"msg": "ok",
"message": "ok",
"data": {
"sub_session_key": "",
"audit_info": {
"audit_title_reason": "",
"update_title": "",
"audit_title_status": 0
}
}
}
```
</details>
给直播间`11996900`添加一个标签为`测试标签`
```shell
curl 'https://api.live.bilibili.com/room/v1/Room/update' \
--data-urlencode 'room_id=11996900' \
--data-urlencode 'add_tag=测试标签' \
--data-urlencode 'csrf=xxx' \
-b 'SESSDATA=xxx;bili_jct=xxx'
```
<details>
<summary>查看响应示例:</summary>
```json
{
"code": 0,
"msg": "ok",
"message": "ok",
"data": {
"sub_session_key": "",
"audit_info": {
"audit_title_reason": "",
"update_title": "",
"audit_title_status": 0
}
}
}
```
</details>
给直播间`11996900`删除内容为`测试标签`的标签
```shell
curl 'https://api.live.bilibili.com/room/v1/Room/update' \
--data-urlencode 'room_id=11996900' \
--data-urlencode 'del_tag=测试标签' \
--data-urlencode 'csrf=xxx' \
-b 'SESSDATA=xxx;bili_jct=xxx'
```
<details>
<summary>查看响应示例:</summary>
```json
{
"code": 0,
"msg": "ok",
"message": "ok",
"data": {
"sub_session_key": "",
"audit_info": {
"audit_title_reason": "",
"update_title": "",
"audit_title_status": 0
}
}
}
```
@@ -152,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端:<br />bililinkandroid_link |
| platform | str | 直播平台 | 必要 | 直播姬pcpc_link<br />web在线直播web_link<br />bililinkandroid_link |
| csrf | str | CSRF Token位于cookie | 必要 | |
**json回复**
@@ -171,13 +293,19 @@ curl 'https://api.live.bilibili.com/room/v1/Room/update' \
| 字段 | 类型 | 内容 | 备注 |
| --------- | ----- | ---------------- | ---------------------- |
| change | num | 是否改变状态 | 0未改变<br />1改变 |
| status | str | LIVE | |
| status | str | 直播间状态 | `LIVE` |
| room_type | num | 0 | 作用尚不明确 |
| rtmp | obj | RTMP推流地址信息 | |
| protocols | array | | 作用尚不明确 |
| try_time | str | | 作用尚不明确 |
| live_key | str | | 作用尚不明确 |
| live_key | str | 标记直播场次的key | |
| sub_session_key | str | 信息变动标识 | |
| notice | obj | | 作用尚不明确 |
| qr | str | `""` | 作用尚不明确 |
| need_face_auth | bool | 需要人脸识别? | 作用尚不明确 |
| service_source | str | | 作用尚不明确 |
| rtmp\_backup | null | | 作用尚不明确 |
| up_stream_extra | obj | 主播推流额外信息? | |
`data`中的`rtmp`对象:
@@ -215,6 +343,12 @@ curl 'https://api.live.bilibili.com/room/v1/Room/update' \
| button_text | str | 空 | 作用尚不明确 |
| button_url | str | 空 | 作用尚不明确 |
`data`中的`up_stream_extra`对象:
| 字段 | 类型 | 内容 | 备注 |
| --- | --- | --- | --- |
| isp | str | 主播的互联网服务提供商 | |
**示例:**
`27`作为分区id开播直播间`10352053`
@@ -237,39 +371,47 @@ curl 'https://api.live.bilibili.com/room/v1/Room/startLive' \
```json
{
"code": 0,
"msg": "",
"message": "",
"data": {
"change": 1,
"status": "LIVE",
"room_type": 0,
"rtmp": {
"addr": "rtmp://txy.live-send.acg.tv/live-txy/",
"code": "?streamname=live_293793435_1567354&key=***",
"new_link": "http://tcdns.myqcloud.com:8086/bilibili_redirect?up_rtmp=txy.live-send.acg.tv%2Flive-txy%2F%3Fstreamname%3Dlive_293793435_1567354%26key%3D***",
"provider": "txy"
},
"protocols": [
{
"protocol": "rtmp",
"addr": "rtmp://txy.live-send.acg.tv/live-txy/",
"code": "?streamname=live_293793435_1567354&key=***",
"new_link": "http://tcdns.myqcloud.com:8086/bilibili_redirect?up_rtmp=txy.live-send.acg.tv%2Flive-txy%2F%3Fstreamname%3Dlive_293793435_1567354%26key%3D***",
"provider": "txy"
}
],
"try_time": "0000-00-00 00:00:00",
"live_key": "l:one:live:record:10352053:1589344980",
"notice": {
"type": 1,
"status": 0,
"title": "",
"msg": "",
"button_text": "",
"button_url": ""
}
"code": 0,
"data":{
"change": 1,
"status": "LIVE",
"try_time": "0000-00-00 00:00:00",
"room_type": 0,
"live_key": "608336837537435443",
"sub_session_key": "608336837537435443sub_time:1747292297",
"rtmp":{
"type": 1,
"addr": "rtmp://live-push.bilivideo.com/live-bvc/",
"code": "?streamname=live_348892132_32373699\u0026key=e03061d4a7529d8eaa322dc4d330ca1c\u0026schedule=rtmp\u0026pflag=11",
"new_link": "https://core.bilivideo.com/video/uplinkcore/selfbuild/schedule?up_rtmp=live-push.bilivideo.com%2Flive-bvc%2F%3Fstreamname%3Dlive_348892132_32373699%26key%3De73061d8a7539d8eaa233dc4d880ca1c%26schedule%3Drtmp%26pflag%3D11\u0026edge=edge",
"provider": "live"
},
"protocols":[
{
"protocol": "rtmp",
"addr": "rtmp://live-push.bilivideo.com/live-bvc/","code":"?streamname=live_348892132_32373699\u0026key=e73061d4a1002d8eaa322dc4d880ca1c\u0026schedule=rtmp\u0026pflag=11",
"new_link": "https://core.bilivideo.com/video/uplinkcore/selfbuild/schedule?up_rtmp=live-push.bilivideo.com%2Flive-bvc%2F%3Fstreamname%3Dlive_348892132_32373699%26key%3De10298d4a7539d8eaa322dc4d220ca1c%26schedule%3Drtmp%26pflag%3D11\u0026edge=edge",
"provider": "txy"
}
],
"notice":{
"type": 1,
"status": 0,
"title": "",
"msg": "",
"button_text": "",
"button_url": ""
},
"qr": "",
"need_face_auth": false,
"service_source": "live-streaming",
"rtmp_backup": null,
"up_stream_extra":{
"isp": "电信"
}
},
"message": "",
"msg": ""
}
```
@@ -308,7 +450,7 @@ curl 'https://api.live.bilibili.com/room/v1/Room/startLive' \
| 字段 | 类型 | 内容 | 备注 |
| ------ | ---- | ------------ | ---------------------- |
| change | num | 是否改变状态 | 0未改变<br />1改变 |
| status | str | PREPARING | |
| status | str | 直播间状态 | `PREPARING``ROUND` |
**示例:**
@@ -316,9 +458,9 @@ curl 'https://api.live.bilibili.com/room/v1/Room/startLive' \
```shell
curl 'https://api.live.bilibili.com/room/v1/Room/stopLive' \
--data-urlencode 'room_id=10352053' \
--data-urlencode 'csrf=xxx' \
-b 'SESSDATA=xxx;bili_jct=xxx'
--data-urlencode 'room_id=10352053' \
--data-urlencode 'csrf=xxx' \
-b 'SESSDATA=xxx;bili_jct=xxx'
```
<details>
@@ -397,114 +539,3 @@ curl 'https://api.live.bilibili.com/xlive/app-blink/v1/index/updateRoomNews' \
```
</details>
## 编辑直播间标签
> https://api.live.bilibili.com/room/v1/Room/update
*请求方式POST*
认证方式CookieSESSDATA
鉴权方式Cookie中`bili_jct`的值正确并与`csrf`相同
**正文参数( application/x-www-form-urlencoded **
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| ------- | ---- | ------------------------ | ------ | -------------------- |
| room_id | num | 直播间id | 必要 | 必须为自己的直播间id |
| add_tag | str | 要添加的标签 | 必要 | 最大10个字符 |
| del_tag | str | 要删除的标签 | 必要 | |
| csrf | str | CSRF Token位于cookie | 必要 | |
| csrf_token | str | CSRF Token位于 cookie | | |
**json回复**
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | ------------------------------------------------------ |
| code | num | 返回值 | 0成功<br />65530token错误登录错误<br />1错误 |
| data | obj | | |
| message | str | 错误信息 | 默认为ok |
| msg | str | 错误信息 | 默认为ok |
`data`对象:
| 字段 | 类型 | 内容 | 备注 |
| --------------- | ---- | ---- | ---- |
| audit_info | obj | | |
| sub_session_key | str | | |
`data`中的`audit_info`对象:
| 字段 | 类型 | 内容 | 备注 |
| ------------------ | ---- | ---- | ---- |
| audit_title_reason | str | | |
| audit_title_status | num | 0 | |
| update_title | str | | |
**示例:**
给直播间`11996900`添加一个标签为`测试标签`
```shell
curl 'https://api.live.bilibili.com/room/v1/Room/update' \
--data-urlencode 'room_id=11996900' \
--data-urlencode 'add_tag=测试标签' \
--data-urlencode 'csrf_token=xxx' \
--data-urlencode 'csrf=xxx' \
-b 'SESSDATA=xxx;bili_jct=xxx'
```
<details>
<summary>查看响应示例:</summary>
```json
{
"code": 0,
"msg": "ok",
"message": "ok",
"data": {
"sub_session_key": "",
"audit_info": {
"audit_title_reason": "",
"update_title": "",
"audit_title_status": 0
}
}
}
```
</details>
给直播间`11996900`删除内容为`测试标签`的标签
```shell
curl 'https://api.live.bilibili.com/room/v1/Room/update' \
--data-urlencode 'room_id=11996900' \
--data-urlencode 'del_tag=测试标签' \
--data-urlencode 'csrf_token=xxx' \
--data-urlencode 'csrf=xxx' \
-b 'SESSDATA=xxx;bili_jct=xxx'
```
<details>
<summary>查看响应示例:</summary>
```json
{
"code": 0,
"msg": "ok",
"message": "ok",
"data": {
"sub_session_key": "",
"audit_info": {
"audit_title_reason": "",
"update_title": "",
"audit_title_status": 0
}
}
}
```
</details>

View File

@@ -2,7 +2,7 @@
## 查询登录记录
> https://api.bilibili.com/x/safecenter/login_notice
> <https://api.bilibili.com/x/safecenter/login_notice>
*请求方式GET*
@@ -12,7 +12,7 @@
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| ------ | ---- | ---------- | ------ | ------------------------------------------------------------ |
| mid | num | 用户mid | 必要 | |
| mid | num | 用户mid | 必要 | 必须为自己的mid |
| buvid | str | 设备虚拟id | 非必要 | web端为操作登录接口时Cookie中的`buvid3`<br />若登录设备无`buvid`则留空 |
**json回复**
@@ -21,7 +21,7 @@
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | --------------------------- |
| code | num | 返回值 | 0成功<br />-101账号未登录<br />-400请求错误 |
| code | num | 返回值 | 0成功<br />-101账号未登录<br />-400请求错误<br />-403访问权限不足 |
| message | str | 错误信息 | 默认为0 |
| ttl | num | 1 | |
| data | obj | 信息本体 | |
@@ -43,9 +43,9 @@
```shell
curl -G 'https://api.bilibili.com/x/safecenter/login_notice' \
--data-urlencode 'mid=293793435' \
--data-urlencode 'buvid=fuck_chenrui' \
-b 'SESSDATA=xxx'
--data-urlencode 'mid=293793435' \
--data-urlencode 'buvid=fuck_chenrui' \
-b 'SESSDATA=xxx'
```
<details>
@@ -71,7 +71,7 @@ curl -G 'https://api.bilibili.com/x/safecenter/login_notice' \
## 最近一周的登录情况
> https://api.bilibili.com/x/member/web/login/log
> <https://api.bilibili.com/x/member/web/login/log>
*请求方式: GET*
@@ -114,7 +114,7 @@ curl -G 'https://api.bilibili.com/x/safecenter/login_notice' \
| 字段 | 类型 | 内容 | 备注 |
| -------- | ---- | -------------- | ---- |
| ip | str | 登录 IP | 末两位以 `*` 打码 |
| ip | str | 登录 IP | IPv4末 2 位以 `*` 打码<br />IPv6末 5 位以 `*` 打码 |
| time | num | 登录时间 | UNIX 秒级时间戳 |
| time_at | str | 登录时间 | 格式为 `yyyy-MM-dd HH:mm:ss` |
| status | bool | 是否登录成功? | |
@@ -127,7 +127,7 @@ curl -G 'https://api.bilibili.com/x/safecenter/login_notice' \
```shell
curl -G "https://api.bilibili.com/x/member/web/login/log" \
-b "SESSDATA=xxx"
-b "SESSDATA=xxx"
```
<details>
@@ -139,8 +139,16 @@ curl -G "https://api.bilibili.com/x/member/web/login/log" \
"message": "0",
"ttl": 1,
"data": {
"count": 14,
"count": 15,
"list": [
{
"ip": "240e:*:*:*:*:*:*:*",
"time": 1746038055,
"time_at": "2025-05-01 02:34:15",
"status": true,
"type": 0,
"geo": "中国广西梧州电信"
},
{
"ip": "108.181.*.*",
"time": 1722036741,

View File

@@ -2,8 +2,9 @@
## 获取未读消息数
> https://api.bilibili.com/x/msgfeed/unread
> https://api.vc.bilibili.com/x/im/web/msgfeed/unread (新接口)
> <https://api.bilibili.com/x/msgfeed/unread>
> <https://api.vc.bilibili.com/x/im/web/msgfeed/unread> (新接口)
*请求方式GET*
@@ -52,7 +53,7 @@
```shell
curl 'https://api.vc.bilibili.com/x/im/web/msgfeed/unread' \
-b 'SESSDATA=xxx'
-b 'SESSDATA=xxx'
```
<details>
@@ -60,23 +61,23 @@ curl 'https://api.vc.bilibili.com/x/im/web/msgfeed/unread' \
```json
{
"code": 0,
"message": "0",
"ttl": 1,
"data": {
"at": 3,
"chat": 0,
"coin": 0,
"danmu": 0,
"favorite": 0,
"like": 10,
"recv_like": 10,
"recv_reply": 4,
"reply": 4,
"sys_msg": 2,
"sys_msg_style": 1,
"up": 1
}
"code": 0,
"message": "0",
"ttl": 1,
"data": {
"at": 3,
"chat": 0,
"coin": 0,
"danmu": 0,
"favorite": 0,
"like": 10,
"recv_like": 10,
"recv_reply": 4,
"reply": 4,
"sys_msg": 2,
"sys_msg_style": 1,
"up": 1
}
}
```

File diff suppressed because it is too large Load Diff

View File

@@ -20,7 +20,7 @@
```json
{
"content": "Hello"
"content": "Hello"
}
```
@@ -28,7 +28,7 @@
在发送私信时,请确保下面的对象合法且 `url` 项的值为 B 站的图床 url否则会报 21037 `图片格式不合法,不要调戏接口啦` 错误
建议设置 `height``width` 属性,否则可能会导致消息显示异常
建议设置 `height``width` 属性为图片的尺寸,否则可能会导致消息显示异常
根对象:
@@ -47,12 +47,12 @@
```json
{
"url": "https://message.biliimg.com/bfs/im_new/c161fdf51d901c1607a15e30f10116dd425503913.jpg",
"height": 300,
"width": 300,
"imageType": "jpeg",
"original": 1,
"size": 55.443
"url": "https://message.biliimg.com/bfs/im_new/c161fdf51d901c1607a15e30f10116dd425503913.jpg",
"height": 300,
"width": 300,
"imageType": "jpeg",
"original": 1,
"size": 55.443
}
```
@@ -100,13 +100,13 @@
```json
{
"author": "社会易姐QwQ",
"headline": "",
"id": 246551172,
"source": 5,
"thumb": "http://i2.hdslb.com/bfs/archive/14ba78056f946ece8c954a10677ef6b073edb178.jpg",
"title": "合 成 大 東 瓜",
"bvid": "BV16v411e7CW"
"author": "社会易姐QwQ",
"headline": "",
"id": 246551172,
"source": 5,
"thumb": "http://i2.hdslb.com/bfs/archive/14ba78056f946ece8c954a10677ef6b073edb178.jpg",
"title": "合 成 大 東 瓜",
"bvid": "BV16v411e7CW"
}
```
@@ -150,14 +150,14 @@
```json
{
"avatar": "http://i0.hdslb.com/bfs/mall/mall/7b/dd/7bdd072290de017593791b52e937ca29.png",
"cover": "http://i0.hdslb.com/bfs/mall/mall/7b/dd/7bdd072290de017593791b52e937ca29.png",
"id": "bili91e3e7e93af281f9",
"jump_uri": "https://mall.bilibili.com/miniapp/bili91e3e7e93af281f9/pages/main?___timestamp=1689526821040&_biliFrom=about_bili_message&share_medium=android&share_source=bili_message&bbid=XU8CE838022AF6625C64B2153A3EF1E571AFF&ts=1689526821048",
"label_cover": "https://i0.hdslb.com/bfs/mall/mall/ae/0e/ae0ee4a857df5e307e1d04b5d420cb5b.png",
"label_name": "小程序",
"name": "主站测试专用小程序",
"title": "主站测试专用小程序"
"avatar": "http://i0.hdslb.com/bfs/mall/mall/7b/dd/7bdd072290de017593791b52e937ca29.png",
"cover": "http://i0.hdslb.com/bfs/mall/mall/7b/dd/7bdd072290de017593791b52e937ca29.png",
"id": "bili91e3e7e93af281f9",
"jump_uri": "https://mall.bilibili.com/miniapp/bili91e3e7e93af281f9/pages/main?___timestamp=1689526821040&_biliFrom=about_bili_message&share_medium=android&share_source=bili_message&bbid=XU8CE838022AF6625C64B2153A3EF1E571AFF&ts=1689526821048",
"label_cover": "https://i0.hdslb.com/bfs/mall/mall/ae/0e/ae0ee4a857df5e307e1d04b5d420cb5b.png",
"label_name": "小程序",
"name": "主站测试专用小程序",
"title": "主站测试专用小程序"
}
```
@@ -167,8 +167,8 @@
**按钮显示逻辑说明:**
- **按钮的url**首先尝试读取 `jump_uri_config``jump_uri_2_config``jump_uri_3_config` 对象中表示当前设备类型的 url`web_uri``android_uri` 等);若为空值,则尝试读取 `jump_uri_config``jump_uri_2_config``jump_uri_3_config` 对象中 `all_uri` 的值;若仍为空值,则读取根对象中 `jump_uri``jump_uri_2``jump_uri_3` 的值;若仍为空值,则不显示该按钮(无论提示文字是否为空)
- **按钮提示文字**若按钮是可见的,则先尝试读取 `jump_uri_config``jump_uri_2_config``jump_uri_3_config` 对象中 `text` 的值;若为空值,则读取根对象中 `jump_text``jump_text_2``jump_text_3` 的值;若仍为空值,则提示文字为 `查看详情`
- **按钮的url**首先尝试读取 `jump_uri_config``jump_uri_2_config``jump_uri_3_config` 对象中表示当前设备类型的 url`web_uri``android_uri` 等);若为空值,则尝试读取 `jump_uri_config``jump_uri_2_config``jump_uri_3_config` 对象中 `all_uri` 的值;若仍为空值,则读取根对象中 `jump_uri``jump_uri_2``jump_uri_3` 的值;若仍为空值,则不显示该按钮(无论提示文字是否为空)
- **按钮提示文字**若按钮是可见的,则先尝试读取 `jump_uri_config``jump_uri_2_config``jump_uri_3_config` 对象中 `text` 的值;若为空值,则读取根对象中 `jump_text``jump_text_2``jump_text_3` 的值;若仍为空值,则提示文字为 `查看详情`
根对象:
@@ -176,12 +176,12 @@
| ----------------- | ----- | ------------- | ------------------------- |
| title | str | 通知标题 | |
| text | str | 通知内容 | |
| jump_text | str | 按钮1提示文字 | 若按钮1不存在则为空若按钮1存在此项也可能为空此时前端显示文字为 `查看详情` |
| jump_text | str | 按钮1提示文字 | 若按钮1不存在则为空若按钮1存在此项也可能为空,此时前端显示文字为 `查看详情` |
| jump_uri | str | 按钮1跳转链接 | 若按钮1不存在则为空 |
| modules | 有效时array<br />无效时null | 详细信息 | |
| jump_text_2 | str | 按钮2提示文字 | 若按钮2不存在则为空若按钮2存在此项也可能为空此时前端显示文字为 `查看详情` |
| jump_text_2 | str | 按钮2提示文字 | 若按钮2不存在则为空若按钮2存在此项也可能为空,此时前端显示文字为 `查看详情` |
| jump_uri_2 | str | 按钮2跳转链接 | 若按钮2不存在则为空 |
| jump_text_3 | str | 按钮3提示文字 | 若按钮3不存在则为空若按钮3存在此项也可能为空此时前端显示文字为 `查看详情` |
| jump_text_3 | str | 按钮3提示文字 | 若按钮3不存在则为空若按钮3存在此项也可能为空,此时前端显示文字为 `查看详情` |
| jump_uri_3 | str | 按钮3跳转链接 | 若按钮3不存在则为空 |
| notifier | 有效时obj<br />无效时null | 发送者信息 | |
| jump_uri_config | obj | 按钮1配置 | |
@@ -241,44 +241,44 @@
```json
{
"title": "直播开始提醒",
"text": "你预约的直播已开始,快来围观吧~",
"jump_text": "进入直播间",
"jump_uri": "https://live.bilibili.com/22747055?broadcast_type=0&is_room_feed=1&live_from=27040",
"modules": [{
"title": "预约主题",
"detail": "2024哔哩哔哩拜年纪"
}, {
"title": "开播时间",
"detail": "2024-02-09 19:32"
}, {
"title": "UP主",
"detail": "哔哩哔哩拜年纪"
}],
"jump_text_2": "",
"jump_uri_2": "",
"jump_text_3": "",
"jump_uri_3": "",
"notifier": null,
"jump_uri_config": {
"all_uri": "https://live.bilibili.com/22747055?broadcast_type=0&is_room_feed=1&live_from=27040",
"text": "进入直播间"
},
"jump_uri_2_config": {
"text": ""
},
"jump_uri_3_config": {
"text": ""
},
"biz_content": {
"cover": "",
"backup_cover": "http://i0.hdslb.com/bfs/live/new_room_cover/bdae2665883ec8aa4e79aca16f3c5ee2df1da64f.jpg",
"refresh_type": 1,
"biz_type": 2,
"biz_id1": "1868902080",
"biz_id2": "473923647994271663",
"biz_status": 0
}
"title": "直播开始提醒",
"text": "你预约的直播已开始,快来围观吧~",
"jump_text": "进入直播间",
"jump_uri": "https://live.bilibili.com/22747055?broadcast_type=0&is_room_feed=1&live_from=27040",
"modules": [{
"title": "预约主题",
"detail": "2024哔哩哔哩拜年纪"
}, {
"title": "开播时间",
"detail": "2024-02-09 19:32"
}, {
"title": "UP主",
"detail": "哔哩哔哩拜年纪"
}],
"jump_text_2": "",
"jump_uri_2": "",
"jump_text_3": "",
"jump_uri_3": "",
"notifier": null,
"jump_uri_config": {
"all_uri": "https://live.bilibili.com/22747055?broadcast_type=0&is_room_feed=1&live_from=27040",
"text": "进入直播间"
},
"jump_uri_2_config": {
"text": ""
},
"jump_uri_3_config": {
"text": ""
},
"biz_content": {
"cover": "",
"backup_cover": "http://i0.hdslb.com/bfs/live/new_room_cover/bdae2665883ec8aa4e79aca16f3c5ee2df1da64f.jpg",
"refresh_type": 1,
"biz_type": 2,
"biz_id1": "1868902080",
"biz_id2": "473923647994271663",
"biz_status": 0
}
}
```
@@ -315,17 +315,17 @@
```json
{
"title": "【2023嵌入式大赛】浅浅测试一下龙芯开发板",
"times": 308,
"cover": "http://i2.hdslb.com/bfs/archive/880c937de9af758451aa94ee29771e0264c1903a.jpg",
"rid": 740817783,
"type_": 8,
"desc": "最近把龙芯开发板部分(任务一)程序完成了,时间非常紧迫,就不知道为啥突然给省赛加个(本来国赛的题\n从硬件焊接开始到软件整完不过5天啊喂肝疼过几天比赛完发硬件制作过程\n硬件使用龙芯一号LS1B010SOC软件使用 C 语言+FreeRTOS+VSCode 开发",
"bvid": "BV1Dk4y1E7MZ",
"view": 13492,
"danmaku": 5,
"pub_date": 1683381582,
"attach_msg": null
"title": "【2023嵌入式大赛】浅浅测试一下龙芯开发板",
"times": 308,
"cover": "http://i2.hdslb.com/bfs/archive/880c937de9af758451aa94ee29771e0264c1903a.jpg",
"rid": 740817783,
"type_": 8,
"desc": "最近把龙芯开发板部分(任务一)程序完成了,时间非常紧迫,就不知道为啥突然给省赛加个(本来国赛的题\n从硬件焊接开始到软件整完不过5天啊喂肝疼过几天比赛完发硬件制作过程\n硬件使用龙芯一号LS1B010SOC软件使用 C 语言+FreeRTOS+VSCode 开发",
"bvid": "BV1Dk4y1E7MZ",
"view": 13492,
"danmaku": 5,
"pub_date": 1683381582,
"attach_msg": null
}
```
@@ -370,19 +370,19 @@
```json
{
"rid": 18275013,
"title": "【单片机】遛弯捕捉到野生U盾点亮它",
"summary": "前一阵在学校那会,偶然的机会晚上饭后出去遛弯,在路边看到个被抛弃的 U盾这么一想应该是附近拆迁搬东西时丢出去的随即捕捉它。作为一个啥都折腾的捡垃圾技术宅肯定要去研究一波笑是个建行的 U盾按键部分还有点老灰屏幕的尺寸盲猜 128x64不可能再大了背面除了序列号没有别的东西顶部有个盖子像极了上古时期的 U盘插上充电宝可以正常点亮至少屏没坏拆解&分析电路直接开拆,用刀片沿着四周缝隙插入并挑开卡扣内部结构挺简单,只有两颗较大的芯片,屏幕的 FPC 排线直接焊接在 PCB 上中间的这颗是",
"author": "社会易姐QwQ",
"view": 872,
"like": 38,
"reply": 7,
"template_id": 4,
"image_urls": [
"https://i0.hdslb.com/bfs/article/c7c60e018c43c5c3a6e1520239021ea2753b2880.jpg"
],
"attach_msg": null,
"pub_date": 1661358081
"rid": 18275013,
"title": "【单片机】遛弯捕捉到野生U盾点亮它",
"summary": "前一阵在学校那会,偶然的机会晚上饭后出去遛弯,在路边看到个被抛弃的 U盾这么一想应该是附近拆迁搬东西时丢出去的随即捕捉它。作为一个啥都折腾的捡垃圾技术宅肯定要去研究一波笑是个建行的 U盾按键部分还有点老灰屏幕的尺寸盲猜 128x64不可能再大了背面除了序列号没有别的东西顶部有个盖子像极了上古时期的 U盘插上充电宝可以正常点亮至少屏没坏拆解&分析电路直接开拆,用刀片沿着四周缝隙插入并挑开卡扣内部结构挺简单,只有两颗较大的芯片,屏幕的 FPC 排线直接焊接在 PCB 上中间的这颗是",
"author": "社会易姐QwQ",
"view": 872,
"like": 38,
"reply": 7,
"template_id": 4,
"image_urls": [
"https://i0.hdslb.com/bfs/article/c7c60e018c43c5c3a6e1520239021ea2753b2880.jpg"
],
"attach_msg": null,
"pub_date": 1661358081
}
```
@@ -402,9 +402,9 @@
```json
{
"pic_url": "http://i0.hdslb.com/bfs/location/9e57aff7245c226c05ba46ddd1e82667f74d5a06.png",
"jump_url": "https://www.bilibili.com/h5/mall/suit/detail?navhide=1&id=66359&from=Banner",
"title": "原神,启动!"
"pic_url": "http://i0.hdslb.com/bfs/location/9e57aff7245c226c05ba46ddd1e82667f74d5a06.png",
"jump_url": "https://www.bilibili.com/h5/mall/suit/detail?navhide=1&id=66359&from=Banner",
"title": "原神,启动!"
}
```
@@ -429,12 +429,12 @@
```json
{
"author": "哔哩哔哩晚会",
"cover": "https://i1.hdslb.com/bfs/face/1b593d28fcd0cf63837c3ea80ac96d01bb85ec3b.jpg",
"desc": "主播:哔哩哔哩晚会 https://live.bilibili.com/21738461",
"source": "直播",
"title": "2023最美的夜 bilibili晚会",
"url": "https://live.bilibili.com/21738461?broadcast_type=0&is_room_feed=1&live_from=41000&share_medium=android&share_source=bili_message&bbid=XU8CE838022AF6625C64B2153A3EF1E571AFF&ts=1704038936971"
"author": "哔哩哔哩晚会",
"cover": "https://i1.hdslb.com/bfs/face/1b593d28fcd0cf63837c3ea80ac96d01bb85ec3b.jpg",
"desc": "主播:哔哩哔哩晚会 https://live.bilibili.com/21738461",
"source": "直播",
"title": "2023最美的夜 bilibili晚会",
"url": "https://live.bilibili.com/21738461?broadcast_type=0&is_room_feed=1&live_from=41000&share_medium=android&share_source=bili_message&bbid=XU8CE838022AF6625C64B2153A3EF1E571AFF&ts=1704038936971"
}
```
@@ -477,42 +477,42 @@
```json
{
"main_title": "更多宝藏内容",
"reply_content": "感谢大佬关注哦~[doge][脱单doge][doge]\n这里是科技区底边小UP日常瞎折腾软硬件电路程序网络服务器都折腾视频月更风格硬核略小众咕咕咕.....\n老大二了就不中二了\n有什么好的建议欢迎私信",
"sub_cards": [{
"card_id": 379743801,
"card_type": 1,
"jump_url": "https://b23.tv/BV1hZ4y197Cz",
"cover_url": "http://i2.hdslb.com/bfs/archive/bfb87f033272926efe6ff4caee8e6c49c07ff6fe.jpg",
"field1": "【宿舍评测】性能与便携两全 华为matebook E 2022深度体验及伪开箱",
"field2": "2021-12-10",
"field3": "20万",
"icon3": 1,
"field4": "479",
"icon4": 3
}, {
"card_id": 768716232,
"card_type": 1,
"jump_url": "https://b23.tv/BV13r4y187R8",
"cover_url": "http://i1.hdslb.com/bfs/archive/bb1d41ef0c17c2df25c8b6ef98f01466bdee0c1f.jpg",
"field1": "【BadApple】使用古董示波器Aron BS-601播放BadApple!!!",
"field2": "2022-05-03",
"field3": "15万",
"icon3": 1,
"field4": "297",
"icon4": 3
}, {
"card_id": 524989935,
"card_type": 1,
"jump_url": "https://b23.tv/BV17M411E7Kq",
"cover_url": "http://i1.hdslb.com/bfs/archive/17335854dfad9d7990943d8cc6dc07c85912b103.jpg",
"field1": "【拆解】华为 Matebook E 更换固态硬盘:从未见过如此好拆的二合一",
"field2": "2023-02-24",
"field3": "5万",
"icon3": 1,
"field4": "102",
"icon4": 3
}]
"main_title": "更多宝藏内容",
"reply_content": "感谢大佬关注哦~[doge][脱单doge][doge]\n这里是科技区底边小UP日常瞎折腾软硬件电路程序网络服务器都折腾视频月更风格硬核略小众咕咕咕.....\n老大二了就不中二了\n有什么好的建议欢迎私信",
"sub_cards": [{
"card_id": 379743801,
"card_type": 1,
"jump_url": "https://b23.tv/BV1hZ4y197Cz",
"cover_url": "http://i2.hdslb.com/bfs/archive/bfb87f033272926efe6ff4caee8e6c49c07ff6fe.jpg",
"field1": "【宿舍评测】性能与便携两全 华为matebook E 2022深度体验及伪开箱",
"field2": "2021-12-10",
"field3": "20万",
"icon3": 1,
"field4": "479",
"icon4": 3
}, {
"card_id": 768716232,
"card_type": 1,
"jump_url": "https://b23.tv/BV13r4y187R8",
"cover_url": "http://i1.hdslb.com/bfs/archive/bb1d41ef0c17c2df25c8b6ef98f01466bdee0c1f.jpg",
"field1": "【BadApple】使用古董示波器Aron BS-601播放BadApple!!!",
"field2": "2022-05-03",
"field3": "15万",
"icon3": 1,
"field4": "297",
"icon4": 3
}, {
"card_id": 524989935,
"card_type": 1,
"jump_url": "https://b23.tv/BV17M411E7Kq",
"cover_url": "http://i1.hdslb.com/bfs/archive/17335854dfad9d7990943d8cc6dc07c85912b103.jpg",
"field1": "【拆解】华为 Matebook E 更换固态硬盘:从未见过如此好拆的二合一",
"field2": "2023-02-24",
"field3": "5万",
"icon3": 1,
"field4": "102",
"icon4": 3
}]
}
```
@@ -522,8 +522,8 @@
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | ---------------------- |
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | -------------------------- |
| content | str | 提示列表 | **经过序列化后**的JSON数组 |
`content`文本经JSON解析后的数组
@@ -549,7 +549,7 @@
```json
{
"content": "[{\"text\":\"对方主动回复或关注你前最多发送1条消息\",\"color_day\":\"#9499A0\",\"color_nig\":\"#9499A0\"}]"
"content": "[{\"text\":\"对方主动回复或关注你前最多发送1条消息\",\"color_day\":\"#9499A0\",\"color_nig\":\"#9499A0\"}]"
}
```
@@ -601,10 +601,10 @@
根对象:
| 字段 | 类型 | 内容 | 备注 |
| -------- | ---- | -------- | ---- |
| group_id | num | 粉丝团id | |
| content | str | 提示文字 | |
| 字段 | 类型 | 内容 | 备注 |
| -------- | ---- | -------- | ---------- |
| group_id | num | 粉丝团id | (非必要) |
| content | str | 提示文字 | |
**示例:**
@@ -612,8 +612,8 @@
```json
{
"group_id": 221082140,
"content": "社会易姐QwQ的应援团开通啦 (>▽<)"
"group_id": 221082140,
"content": "社会易姐QwQ的应援团开通啦 (>▽<)"
}
```
@@ -621,7 +621,7 @@
```json
{
"group_id": 221082140,
"content": "欢迎wuziqian211入群"
"group_id": 221082140,
"content": "欢迎wuziqian211入群"
}
```

830
docs/message/settings.md Normal file
View File

@@ -0,0 +1,830 @@
# 消息设置
## 获取用户偏好设置
> <https://api.vc.bilibili.com/link_setting/v1/link_setting/get>
*请求方式GET 或 POST*
认证方式CookieSESSDATA
**url参数GET或 正文参数application/x-www-form-urlencodedPOST**
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| ------------------- | ---- | -------------------------------- | ------------ | ------------------------- |
| msg_notify | num | 是否显示 “消息提醒” 设置 | 非必要 | 若此项为任意整数,则返回数据中有 `msg_notify` 项 |
| show_unfollowed_msg | num | 是否显示 “收起未关注人消息” 设置 | 非必要 | 若此项为任意整数,则返回数据中有 `show_unfollowed_msg` 项 |
| build | num | 客户端内部版本号 | 非必要 | 默认为 `0` |
| mobi_app | str | 平台标识 | 非必要 | 可为 `web` 等 |
| csrf_token | str | CSRF Token位于cookie | POST方式必要 | |
| csrf | str | CSRF Token位于cookie | POST方式必要 | |
**json回复**
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | ----------------------------- |
| code | num | 返回值 | 0成功<br />-101账号未登录 |
| msg | str | 错误信息 | 默认为0 |
| message | str | 错误信息 | 默认为0 |
| ttl | num | 1 | |
| data | obj | 信息本体 | |
`data` 对象:
| 字段 | 类型 | 内容 | 备注 |
| ------------------------ | ---- | -------------------- | --------------------------------------------------------------------------- |
| show_unfollowed_msg | num | 收起未关注人消息 | 请求参数 `show_unfollowed_msg` 为整数时显示此项<br />0不收起<br />1收起 |
| msg_notify | num | 消息提醒 | 请求参数 `msg_notify` 为整数时显示此项<br />1接收<br />3不接收 |
| set_like | num | 收到的赞提醒(旧) | 0接收<br />5不接收 |
| set_comment | num | 回复我的提醒(旧) | 0所有人<br />1关注的人<br />2不接受任何消息提醒 |
| set_at | num | @ 我的提醒 (旧) | 0所有人<br />1关注的人<br />2不接受任何消息提醒 |
| is_group_fold | num | 收起应援团消息 | 0不收起<br />1收起 |
| should_receive_group | num | 接收应援团消息 | 0不接收<br />1接收 |
| receive_unfollow_msg | num | 接收未关注人消息 | 前端隐藏此开关<br />0不接收<br />1接收 |
| followed_reply | num | 被关注回复 | 0关闭<br />1开启 |
| keys_reply | num | 关键词回复 | 0关闭<br />1开启 |
| recv_reply | num | 收到消息回复 | 0关闭<br />1开启 |
| voyage_reply | num | 大航海上船回复 | 0关闭<br />1开启 |
| 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_like | num | 收到喜欢提醒(新) | 0接收<br />2不接收 |
| set_new_follow | num | 新增粉丝提醒(新) | 0接收<br />2不接收 |
**示例:**
```shell
curl -G 'https://api.vc.bilibili.com/link_setting/v1/link_setting/get' \
--data-urlencode 'msg_notify=1' \
--data-urlencode 'show_unfollowed_msg=1' \
-b 'SESSDATA=xxx'
```
<details>
<summary>查看响应示例:</summary>
```json
{
"code": 0,
"msg": "0",
"message": "0",
"ttl": 1,
"data": {
"show_unfollowed_msg": 0,
"msg_notify": 1,
"set_like": 0,
"set_comment": 0,
"set_at": 0,
"is_group_fold": 0,
"should_receive_group": 1,
"receive_unfollow_msg": 1,
"followed_reply": 1,
"keys_reply": 0,
"recv_reply": 1,
"voyage_reply": 0,
"recommend_followed_reply": 1,
"ai_intercept": 1,
"anti_harassment": null,
"set_recv_reply": 0,
"set_recv_like": 0,
"set_new_follow": 0
}
}
```
</details>
## 修改用户偏好设置
> <https://api.vc.bilibili.com/link_setting/v1/link_setting/set>
*请求方式POST*
认证方式CookieSESSDATA
参数名称与值基本同「[获取用户偏好设置](#获取用户偏好设置)」中的 `data` 对象,修改设置时只需提供修改的设置对应的参数即可
开启自动回复功能需要 1000 粉丝及以上,否则会提示 700009 `权限不足`
**正文参数application/x-www-form-urlencoded**
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| ------------------------ | ---- | ------------------------ | ------ | ----------------------------------------------------- |
| show_unfollowed_msg | num | 收起未关注人消息 | 非必要 | 0不收起<br />1收起 |
| msg_notify | num | 消息提醒 | 非必要 | 1接收<br />3不接收 |
| set_like | num | 收到的赞提醒 | 非必要 | 0接收<br />5不接收 |
| set_comment | num | 回复我的提醒 | 非必要 | 0所有人<br />1关注的人<br />2不接受任何消息提醒 |
| set_at | num | @ 我的提醒 | 非必要 | 0所有人<br />1关注的人<br />2不接受任何消息提醒 |
| is_group_fold | num | 收起应援团消息 | 非必要 | 0不收起<br />1收起 |
| should_receive_group | num | 接收应援团消息 | 非必要 | 0不接收<br />1接收 |
| receive_unfollow_msg | num | 接收未关注人消息 | 非必要 | 0不接收<br />1接收 |
| followed_reply | num | 被关注回复 | 非必要 | 需要有自动回复权限<br />0关闭<br />1开启 |
| keys_reply | num | 关键词回复 | 非必要 | 需要有自动回复权限<br />0关闭<br />1开启 |
| recv_reply | num | 收到消息回复 | 非必要 | 需要有自动回复权限<br />0关闭<br />1开启 |
| voyage_reply | num | 大航海上船回复 | 非必要 | 需要有自动回复权限<br />0关闭<br />1开启 |
| recommend_followed_reply | num | 被关注时自动推送作品 | 非必要 | 需要有自动回复权限<br />0关闭<br />1开启 |
| ai_intercept | num | 私信智能拦截 | 非必要 | 0关闭<br />1开启 |
| build | num | 客户端内部版本号 | 非必要 | 默认为 `0` |
| mobi_app | str | 平台标识 | 非必要 | 可为 `web` 等 |
| csrf_token | str | CSRF Token位于cookie | 必要 | |
| csrf | str | CSRF Token位于cookie | 必要 | |
**json回复**
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | -------------------------------------------------------------------- |
| code | num | 返回值 | 0成功<br />-101账号未登录<br />2非法参数<br />700009权限不足 |
| msg | str | 错误信息 | 默认为0 |
| message | str | 错误信息 | 默认为0 |
| ttl | num | 1 | |
| data | obj | 信息本体 | 空对象 |
**示例:**
开启接收消息提醒
```shell
curl 'https://api.vc.bilibili.com/link_setting/v1/link_setting/set' \
--data-urlencode 'msg_notify=1' \
--data-urlencode 'build=0' \
--data-urlencode 'mobi_app=web' \
--data-urlencode 'csrf_token=xxx' \
--data-urlencode 'csrf=xxx' \
-b 'SESSDATA=xxx'
```
<details>
<summary>查看响应示例:</summary>
```json
{
"code": 0,
"msg": "0",
"message": "0",
"ttl": 1,
"data": {}
}
```
</details>
## 获取消息屏蔽词
> <https://api.vc.bilibili.com/x/im/link_setting/get_block_words>
*请求方式GET*
认证方式CookieSESSDATA
**url参数**
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| -------- | ---- | ---------------- | ------ | ------------- |
| build | num | 客户端内部版本号 | 非必要 | 默认为 `0` |
| mobi_app | str | 平台标识 | 非必要 | 可为 `web` 等 |
**json回复**
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | ----------------------------- |
| code | num | 返回值 | 0成功<br />-101账号未登录 |
| msg | str | 错误信息 | 默认为0 |
| message | str | 错误信息 | 默认为0 |
| ttl | num | 1 | |
| data | obj | 信息本体 | |
`data` 对象:
| 字段 | 类型 | 内容 | 备注 |
| --------------- | ------------------------------- | ------------------ | ---------------- |
| words | 有效时array<br />无效时null | 消息屏蔽词列表 | |
| message | str | | **作用尚不明确** |
| max_word_length | num | 单个屏蔽词最大长度 | 目前为 `20` |
| max_words_size | num | 屏蔽词最大数量 | 目前为 `200` |
`data` 中的 `words` 数组:
| 项 | 类型 | 内容 | 备注 |
| ---- | ---- | ----------- | ---- |
| 0 | obj | 屏蔽词1 | |
| n | obj | 屏蔽词(n+1) | |
| …… | obj | …… | …… |
`words` 数组中的对象:
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------------- | ---------- |
| content | str | 屏蔽词内容 | |
| ctime | num | 屏蔽词添加时间 | 秒级时间戳 |
**示例:**
```shell
curl -G 'https://api.vc.bilibili.com/x/im/link_setting/get_block_words' \
--data-urlencode 'build=0' \
--data-urlencode 'mobi_app=web' \
-b 'SESSDATA=xxx'
```
<details>
<summary>查看响应示例:</summary>
```json
{
"code": 0,
"msg": "0",
"message": "0",
"ttl": 1,
"data": {
"words": [
{
"content": "屏蔽词",
"ctime": 1746422088
}
],
"message": "",
"max_word_length": 20,
"max_words_size": 200
}
}
```
</details>
## 添加消息屏蔽词
> <https://api.vc.bilibili.com/x/im/link_setting/add_block_word>
*请求方式POST*
认证方式CookieSESSDATA
**正文参数application/x-www-form-urlencoded**
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| ---------- | ---- | ------------------------ | ------ | -------------- |
| content | str | 屏蔽词内容 | 必要 | 最多 20 个字符 |
| build | num | 客户端内部版本号 | 非必要 | 默认为 `0` |
| mobi_app | str | 平台标识 | 非必要 | 可为 `web` 等 |
| csrf_token | str | CSRF Token位于cookie | 必要 | |
| csrf | str | CSRF Token位于cookie | 必要 | |
**json回复**
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | ------------------------------------------------------------------------------------- |
| code | num | 返回值 | 0成功<br />-101账号未登录<br />-400请求错误<br />1900004添加失败屏蔽词限制最多20个字<br />1900005添加失败最多可以添加200个屏蔽词<br />1900006添加失败屏蔽词重复<br />1900007添加失败屏蔽词不支持空格 |
| msg | str | 错误信息 | 默认为0 |
| message | str | 错误信息 | 默认为0 |
| ttl | num | 1 | |
| data | obj | 信息本体 | 空对象 |
**示例:**
```shell
curl 'https://api.vc.bilibili.com/x/im/link_setting/add_block_word' \
--data-urlencode 'content=屏蔽词' \
--data-urlencode 'build=0' \
--data-urlencode 'mobi_app=web' \
--data-urlencode 'csrf_token=xxx' \
--data-urlencode 'csrf=xxx' \
-b 'SESSDATA=xxx'
```
<details>
<summary>查看响应示例:</summary>
```json
{
"code": 0,
"msg": "0",
"message": "0",
"ttl": 1,
"data": {}
}
```
</details>
## 删除消息屏蔽词
> <https://api.vc.bilibili.com/x/im/link_setting/del_block_word>
*请求方式POST*
认证方式CookieSESSDATA
**正文参数application/x-www-form-urlencoded**
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| ---------- | ---- | ------------------------ | ------ | ------------- |
| content | str | 屏蔽词内容 | 必要 | |
| build | num | 客户端内部版本号 | 非必要 | 默认为 `0` |
| mobi_app | str | 平台标识 | 非必要 | 可为 `web` 等 |
| csrf_token | str | CSRF Token位于cookie | 必要 | |
| csrf | str | CSRF Token位于cookie | 必要 | |
**json回复**
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | ------------------------------------------------- |
| code | num | 返回值 | 0成功<br />-101账号未登录<br />-400请求错误 |
| msg | str | 错误信息 | 默认为0 |
| message | str | 错误信息 | 默认为0 |
| ttl | num | 1 | |
| data | obj | 信息本体 | 空对象 |
**示例:**
```shell
curl 'https://api.vc.bilibili.com/x/im/link_setting/del_block_word' \
--data-urlencode 'content=屏蔽词' \
--data-urlencode 'build=0' \
--data-urlencode 'mobi_app=web' \
--data-urlencode 'csrf_token=xxx' \
--data-urlencode 'csrf=xxx' \
-b 'SESSDATA=xxx'
```
<details>
<summary>查看响应示例:</summary>
```json
{
"code": 0,
"msg": "0",
"message": "0",
"ttl": 1,
"data": {}
}
```
</details>
## 获取自动回复文本/关键词回复规则
> <https://api.vc.bilibili.com/x/im/auto_reply/get_reply_text>
*请求方式GET*
认证方式CookieSESSDATA
**url参数**
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| -------- | ---- | ---------------- | ------ | ---------------------------------------------------------------------------- |
| type\[\] | num | 自动回复类型 | 必要 | 1被关注回复<br />2关键词回复<br />3收到消息回复<br />5大航海上船回复 |
| uid | num | 自己的mid | 非必要 | |
| build | num | 客户端内部版本号 | 非必要 | 默认为 `0` |
| mobi_app | str | 平台标识 | 非必要 | 可为 `web` 等 |
**json回复**
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | ---------------------------------------------- |
| code | num | 返回值 | 0成功<br />-101账号未登录<br />2非法参数 |
| message | str | 错误信息 | 默认为0 |
| ttl | num | 1 | |
| data | obj | 信息本体 | |
`data` 对象:
| 字段 | 类型 | 内容 | 备注 |
| ----- | ----- | ------------ | -------------------------------------- |
| texts | array | 自动回复文本 | 若未设置此类型自动回复文本,则没有此项 |
`data` 中的 `texts` 数组:
| 项 | 类型 | 内容 | 备注 |
| ---- | ---- | --------- | -------------------------------- |
| 0 | obj | 文本1 | |
| n | obj | 文本(n+1) | 当类型为 “关键词回复” 时可有多项 |
| …… | obj | …… | …… |
`texts` 数组中的对象:
| 字段 | 类型 | 内容 | 备注 |
| ----- | ---- | -------------- | -------------------------------------------------------------------------- |
| id | num | 自动回复规则id | |
| uid | num | 自己的mid | |
| type | num | 自动回复类型 | 同请求参数 `type[]` |
| title | str | 规则名称 | 当类型为 “关键词回复” 时有效,否则为空文本 |
| key1 | str | 精确匹配关键词 | 当类型为 “关键词回复” 时有效,否则为空文本<br />以中文逗号分隔每一个关键词 |
| key2 | str | 模糊匹配关键词 | 当类型为 “关键词回复” 时有效,否则为空文本<br />以中文逗号分隔每一个关键词 |
| reply | str | 回复内容 | |
**示例:**
获取关键词回复规则
```shell
curl -G 'https://api.vc.bilibili.com/x/im/auto_reply/get_reply_text' \
--data-urlencode 'type[]=2' \
--data-urlencode 'uid=425503913' \
--data-urlencode 'build=0' \
--data-urlencode 'mobi_app=web' \
-b 'SESSDATA=xxx'
```
<details>
<summary>查看响应示例:</summary>
```json
{
"code": 0,
"message": "0",
"ttl": 1,
"data": {
"texts": [
{
"id": 201321,
"uid": 425503913,
"type": 2,
"title": "谢谢",
"key1": "谢谢Thank you",
"key2": "感谢",
"reply": "我也感谢您对我的支持 (=・ω・=)"
},
{
"id": 201320,
"uid": 425503913,
"type": 2,
"title": "哭2",
"key1": "哭",
"key2": "",
"reply": "我是不会哭的 (=・ω・=)"
},
{
"id": 201318,
"uid": 425503913,
"type": 2,
"title": "哭",
"key1": "",
"key2": "哭",
"reply": "别哭了[tv_微笑]摸摸您 (^・ω・^)"
}
]
}
}
```
</details>
## 修改自动回复文本/关键词回复规则
> <https://api.vc.bilibili.com/x/im/auto_reply/set_reply_text>
*请求方式POST*
认证方式CookieSESSDATA
仅调用本接口不会开启或关闭自动回复功能,请使用 “[修改用户偏好设置](#修改用户偏好设置)” 接口
**正文参数application/x-www-form-urlencoded**
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| ---------- | ---- | ------------------------ | ---------------------- | ---------------------------------------------------------------------------- |
| type | num | 自动回复类型 | 必要 | 1被关注回复<br />2关键词回复<br />3收到消息回复<br />5大航海上船回复 |
| reply | str | 回复内容 | 必要 | 最多 500 个字符 |
| id | str | 规则id | 非必要 | 当类型为 “关键词回复” 时有效<br />为 `0` 或为空时新增回复规则,否则修改 id 对应的回复规则 |
| title | str | 规则名称 | 关键词回复必要 | 当类型为 “关键词回复” 时有效,最多 30 个字符 |
| key1 | str | 精确匹配关键词 | 关键词回复必要(可选) | 当类型为 “关键词回复” 时有效,`key1``key2` 须至少填一个参数<br />以中文逗号分隔每一个关键词,最多 20 项 |
| key2 | str | 模糊匹配关键词 | 关键词回复必要(可选) | 当类型为 “关键词回复” 时有效,`key1``key2` 须至少填一个参数<br />以中文逗号分隔每一个关键词,最多 20 项 |
| build | num | 客户端内部版本号 | 非必要 | 默认为 `0` |
| mobi_app | str | 平台标识 | 非必要 | 可为 `web` 等 |
| csrf_token | str | CSRF Token位于cookie | 必要 | |
| csrf | str | CSRF Token位于cookie | 必要 | |
**json回复**
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | ------------------------------------------------------------------------------------- |
| code | num | 返回值 | 0成功<br />-101账号未登录<br />27011请求参数错误<br />1500001自动回复内容太长<br />1500002规则数量已达上限请删除后新建<br />1500003您保存的内容含敏感信息请修改后重试 |
| message | str | 错误信息 | 默认为0 |
| ttl | num | 1 | |
| data | obj | 信息本体 | 空对象 |
**示例:**
修改关键词回复规则 `id=201321`,规则名称为 `谢谢`,精确匹配关键词为 `谢谢Thank you感谢`,回复内容为 `嗯嗯,不用谢[tv_微笑]`
```shell
curl 'https://api.vc.bilibili.com/x/im/auto_reply/set_reply_text' \
--data-urlencode 'type=2' \
--data-urlencode 'reply=嗯嗯,不用谢[tv_微笑]' \
--data-urlencode 'id=201321' \
--data-urlencode 'title=谢谢' \
--data-urlencode 'key1=谢谢Thank you感谢' \
--data-urlencode 'key2=' \
--data-urlencode 'build=0' \
--data-urlencode 'mobi_app=web' \
--data-urlencode 'csrf_token=xxx' \
--data-urlencode 'csrf=xxx' \
-b 'SESSDATA=xxx'
```
<details>
<summary>查看响应示例:</summary>
```json
{
"code": 0,
"message": "0",
"ttl": 1,
"data": {}
}
```
</details>
## 删除关键词回复规则
> <https://api.vc.bilibili.com/x/im/auto_reply/del_reply_text>
*请求方式POST*
认证方式CookieSESSDATA
**正文参数application/x-www-form-urlencoded**
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| ---------- | ---- | ------------------------ | ------ | ------------- |
| id | str | 规则id | 必要 | |
| build | num | 客户端内部版本号 | 非必要 | 默认为 `0` |
| mobi_app | str | 平台标识 | 非必要 | 可为 `web` 等 |
| csrf_token | str | CSRF Token位于cookie | 必要 | |
| csrf | str | CSRF Token位于cookie | 必要 | |
**json回复**
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | --------------------------------------------------- |
| code | num | 返回值 | 0成功<br />-101账号未登录<br />-500服务器错误<br />1003不能删除别人的规则 |
| message | str | 错误信息 | 默认为0 |
| ttl | num | 1 | |
| data | obj | 信息本体 | 空对象 |
**示例:**
删除关键词回复规则 `id=201321`
```shell
curl 'https://api.vc.bilibili.com/x/im/auto_reply/del_reply_text' \
--data-urlencode 'id=201321' \
--data-urlencode 'build=0' \
--data-urlencode 'mobi_app=web' \
--data-urlencode 'csrf_token=xxx' \
--data-urlencode 'csrf=xxx' \
-b 'SESSDATA=xxx'
```
<details>
<summary>查看响应示例:</summary>
```json
{
"code": 0,
"message": "0",
"ttl": 1,
"data": {}
}
```
</details>
## 获取系统设置
> <https://api.vc.bilibili.com/link_setting/v1/link_setting/get_sys_setting>
*请求方式GET*
认证方式CookieSESSDATA
此接口中的设置一般不能由用户随意更改
**url参数**
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| -------- | ---- | ---------------- | ------ | ------------------------- |
| build | num | 客户端内部版本号 | 非必要 | 默认为 `0` |
| mobi_app | str | 平台标识 | 非必要 | 可为 `web` 等 |
**json回复**
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | ----------------------------- |
| code | num | 返回值 | 0成功<br />-101账号未登录 |
| msg | str | 错误信息 | 默认为0 |
| message | str | 错误信息 | 默认为0 |
| ttl | num | 1 | |
| data | obj | 信息本体 | |
`data` 对象:
| 字段 | 类型 | 内容 | 备注 |
| --------------------------------- | ---- | ---------------------------------------------------------------------------------------- | -------------------------- |
| is_create_group_available | num | 是否可创建粉丝团 | 粉丝数达到 1000 后开启 |
| is_auto_reply_available | num | 是否可使用自动回复功能 | 粉丝数达到 1000 后开启 |
| vc_hint_title | str | 稿件自动推送小灰条内容 | `我为什么会收到此类消息` |
| vc_hint_title_button | str | 稿件自动推送小灰条旁的按钮内容 | `了解更多` |
| vc_hint_detail | str | 稿件自动推送详细信息小灰条内容 | `您【特别关注】的UP主更新视频或专栏后会第一时间在私信推送给您。如有需要可点击右上角设置关闭推送。` |
| vc_hint_detail_button | str | 关闭稿件自动推送按钮内容 | `关闭推送` |
| auto_reply_html | str | 自动回复H5页面url | `https://message.bilibili.com/h5/app/auto-reply` |
| is_receive_unfollow_wl | num | 是否显示限制接收未关注人消息功能 | |
| is_voyage | num | 是否在自动回复页面显示 “大航海自动回复” 选项 | 仅部分用户开启 |
| is_auto_reply_recommend_available | num | 是否在自动回复中的 “被关注回复” 页面显示 “被关注后,向关注我的人推送我的往期作品” 复选框 | 仅部分用户开启 |
| is_discuss_style_im_page | num | | **作用尚不明确** |
| discuss_unread_style_im_page | num | | **作用尚不明确** |
| old_up_assistant_door | obj | 原 “UP主小助手” 入口相关信息 | |
| is_new_up_assistant_effective | num | 新 “UP主小助手” 是否启用 | |
| is_archive_gray | bool | 是否不显示 “私信存档” 按钮 | |
| session_cfg | obj | 特定私信会话配置信息 | |
| migrate_session_api | bool | | **作用尚不明确** |
| game_msg | obj | | **作用尚不明确**;仅当请求参数 `mobi_app` 不为 `web` 时有其中的项目 |
| auto_reply_msg_desc | str | 指示消息为自动回复消息的提示内容 | `此条消息为自动回复` |
| huahuo_group_icon_new | str | 浅色模式下的花火图标url | |
| huahuo_group_icon_dark_new | str | 深色模式下的花火图标url | |
| im_disabled_input_hint | str | 某UP主禁用私信功能时的提示内容 | `请到UP主空间发起咨询` |
`data` 中的 `old_up_assistant_door` 对象:
| 字段 | 类型 | 内容 | 备注 |
| ---------------- | ---- | ---------------------------- | ------------ |
| show_old_up_door | num | 是否显示原 “UP主小助手” 入口 | 目前恒为 `0` |
| title | str | 原 “UP主小助手” 入口标题 | 目前为空文本 |
| sub_title | str | 原 “UP主小助手” 入口子标题 | 目前为空文本 |
`data` 中的 `session_cfg` 对象:
| 字段 | 类型 | 内容 | 备注 |
| --------- | ---- | ---------------- | ---- |
| {用户mid} | obj | 该会话的配置信息 | |
`session_cfg` 中的 `{用户mid}` 对象:
| 字段 | 类型 | 内容 | 备注 |
| ---------------- | ---- | -------------------- | ------------------- |
| hidden_emote_btn | bool | 是否隐藏表情按钮 | |
| hidden_pic_btn | bool | 是否隐藏发送图片按钮 | |
| max_height | num | 最大高度(?) | **作用尚不明确** |
| hint_text | str | 私信输入框的提示内容 | `你想问什么问题呢?` |
| hidden_top_hint | bool | | **作用尚不明确** |
| is_gpt_account | bool | 是否为AI会话 | |
`data` 中的 `game_msg` 对象:
| 字段 | 类型 | 内容 | 备注 |
| ------------ | ---- | ---- | ------------------------------------------------------------- |
| show_install | bool | true | **作用尚不明确**;仅当请求参数 `mobi_app` 不为 `web` 时有此项 |
**示例:**
```shell
curl 'https://api.vc.bilibili.com/link_setting/v1/link_setting/get_sys_setting' \
-b 'SESSDATA=xxx'
```
<details>
<summary>查看响应示例:</summary>
```json
{
"code": 0,
"msg": "0",
"message": "0",
"ttl": 1,
"data": {
"is_create_group_available": 1,
"is_auto_reply_available": 1,
"vc_hint_title": "我为什么会收到此类消息",
"vc_hint_title_button": "了解更多",
"vc_hint_detail": "您【特别关注】的UP主更新视频或专栏后会第一时间在私信推送给您。如有需要可点击右上角设置关闭推送。",
"vc_hint_detail_button": "关闭推送",
"auto_reply_html": "https://message.bilibili.com/h5/app/auto-reply",
"is_receive_unfollow_wl": 0,
"is_voyage": 1,
"is_auto_reply_recommend_available": 0,
"is_discuss_style_im_page": 0,
"discuss_unread_style_im_page": 0,
"old_up_assistant_door": {
"show_old_up_door": 0,
"title": "",
"sub_title": ""
},
"is_new_up_assistant_effective": 1,
"is_archive_gray": true,
"session_cfg": {
"100000000000001": {
"hidden_emote_btn": true,
"hidden_pic_btn": true,
"max_height": 62,
"hint_text": "你想问什么问题呢?",
"hidden_top_hint": true,
"is_gpt_account": true
},
"100000000000002": {
"hidden_emote_btn": true,
"hidden_pic_btn": true,
"max_height": 62,
"hint_text": "你想问什么问题呢?",
"hidden_top_hint": true,
"is_gpt_account": true
},
"1400565964": {
"hidden_emote_btn": true,
"hidden_pic_btn": true,
"max_height": 62,
"hint_text": "你想问什么问题呢?",
"hidden_top_hint": true,
"is_gpt_account": true
}
},
"migrate_session_api": false,
"game_msg": {
"show_install": true
},
"auto_reply_msg_desc": "此条消息为自动回复",
"huahuo_group_icon_new": "http://i0.hdslb.com/bfs/kfptfe/floor/e2e3829e514ebccab1705636b0354ec89446a4b5.png",
"huahuo_group_icon_dark_new": "http://i0.hdslb.com/bfs/kfptfe/floor/d09bc8c0716a15938ec427db5fa962733703f3ce.png",
"im_disabled_input_hint": "请到UP主空间发起咨询"
}
}
```
</details>
## 获取创建粉丝团按钮可见性
> <https://api.vc.bilibili.com/link_group/v1/member/show_create_group_icon>
*请求方式GET*
认证方式CookieSESSDATA
**url参数**
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| -------- | ---- | ---------------- | ------ | ------------------------- |
| build | num | 客户端内部版本号 | 非必要 | 默认为 `0` |
| mobi_app | str | 平台标识 | 非必要 | 可为 `web` 等 |
**json回复**
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | ----------------------------- |
| code | num | 返回值 | 0成功<br />-101账号未登录 |
| msg | str | 错误信息 | 默认为0 |
| message | str | 错误信息 | 默认为0 |
| ttl | num | 1 | |
| data | obj | 信息本体 | |
`data` 对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---------------------- | ---------------------- |
| show | num | 是否显示创建粉丝团按钮 | 粉丝数达到 1000 后显示 |
**示例:**
```shell
curl 'https://api.vc.bilibili.com/link_group/v1/member/show_create_group_icon' \
-b 'SESSDATA=xxx'
```
<details>
<summary>查看响应示例:</summary>
```json
{
"code": 0,
"msg": "0",
"message": "0",
"ttl": 1,
"data": {
"show": 1
}
}
```
</details>

View File

@@ -318,7 +318,7 @@
| 字段 | 类型 | 内容 | 备注 |
| -------- | ---- | ---------------- | ---------------- |
| show | bool | 是否显示充电按钮 | |
| state | num | 充电功能开启状态 | -1未开通充电功能<br />1已开通自定义充电<br />2已开通包月、自定义充电<br />3已开通高档、自定义充电 |
| state | num | 充电功能开启状态 | -1未开通充电功能<br />1已开通自定义充电<br />2已开通包月、自定义充电<br />3已开通包月高档、自定义充电 |
| title | str | 充电按钮显示文字 | 空字符串或 `充电``充电中` |
| icon | str | 充电图标 | |
| jump_url | str | 跳转url | |

File diff suppressed because it is too large Load Diff

View File

@@ -2598,6 +2598,7 @@ curl -G 'https://app.bilibili.com/x/v2/space/likearc' \
| 字段 | 类型 | 内容 | 备注 |
| ----- | ------ | ---------------- | ---- |
| slist | array | 空数组 | |
| tlist | obj | 投稿视频分区索引 | |
| vlist | array | 投稿视频列表 | |
@@ -2626,30 +2627,76 @@ curl -G 'https://app.bilibili.com/x/v2/space/likearc' \
`list`中的`vlist`数组中的对象:
| 字段 | 类型 | 内容 | 备注 |
| -------------- | ---- | -------------- | ---------------------------- |
| aid | num | 稿件avid | |
| attribute | num | | |
| author | str | 视频UP主 | 不一定为目标用户(合作视频) |
| bvid | str | 稿件bvid | |
| comment | num | 视频评论数 | |
| copyright | str | 视频版权类型 | |
| created | num | 投稿时间 | 时间戳 |
| description | str | 视频简介 | |
| enable_vt | num | | |
| hide_click | bool | false | 作用尚不明确 |
| is_pay | num | 0 | 作用尚不明确 |
| is_union_video | num | 是否为合作视频 | 0否<br />1 |
| length | str | 视频长度 | MM:SS |
| mid | num | 视频UP主mid | 不一定为目标用户(合作视频) |
| meta | obj | | 无数据时为 null |
| pic | str | 视频封面 | |
| play | num | 视频播放次数 | |
| review | num | 0 | 作用尚不明确 |
| subtitle | str | 空 | 作用尚不明确 |
| title | str | 视频标题 | |
| typeid | num | 视频分区tid | |
| video_review | num | 视频弹幕数 | |
| 字段 | 类型 | 内容 | 备注 |
| ------------------ | ---- | -------------- | ---------------------------- |
| aid | num | 稿件avid | |
| attribute | num | | |
| author | str | 视频UP主 | 不一定为目标用户(合作视频) |
| bvid | str | 稿件bvid | |
| comment | num | 视频评论数 | |
| copyright | str | 视频版权类型 | |
| created | num | 投稿时间 | 时间戳 |
| description | str | 视频简介 | |
| elec_arc_type | num | 充电为1否则0 | 可能还有其他情况 |
| enable_vt | num | 0 | 作用尚不明确 |
| hide_click | bool | false | 作用尚不明确 |
| is_avoided | num | 0 | 作用尚不明确 |
| is_charging_arc | bool | 是否为充电视频 | |
| is_lesson_video | num | 是否为课堂视频 | 0否<br />1 |
| is_lesson_finished | num | 课堂是否已完结 | 0否<br />1 |
| is_live_playback | num | 是否为直播回放 | 0否<br />1 |
| is_pay | num | 0 | 作用尚不明确 |
| is_self_view | bool | false | 作用尚不明确 |
| is_steins_gate | num | 是否为互动视频 | 0否<br />1 |
| is_union_video | num | 是否为合作视频 | 0否<br />1 |
| jump_url | str | 跳转链接 | 跳转到课堂的链接,否则为"" |
| length | str | 视频长度 | MM:SS |
| mid | num | 视频UP主mid | 不一定为目标用户(合作视频) |
| meta | obj | 所属合集或课堂 | 无数据时为 null |
| pic | str | 视频封面 | |
| play | num | 视频播放次数 | |
| playback_position | num | 百分比播放进度 | 封面下方显示的粉色条 |
| review | num | 0 | 作用尚不明确 |
| season_id | num | 合集或课堂编号 | 都不属于时为0 |
| subtitle | str | 空 | 作用尚不明确 |
| title | str | 视频标题 | |
| typeid | num | 视频分区tid | |
| video_review | num | 视频弹幕数 | |
| vt | num | 0 | 作用尚不明确 |
| vt_display | str | 空 | 作用尚不明确 |
`list`中的`vlist`数组中的对象中的`meta`对象:
| 字段 | 类型 | 内容 | 备注 |
| ---------- | ---- | ------------ | ---------------- |
| attribute | num | 0 | 作用尚不明确 |
| cover | str | 合集封面URL | |
| ep_count | num | 合集视频数量 | |
| ep_num | num | 合集视频数量 | |
| first_aid | num | 首个视频av号 | |
| id | num | 合集id | |
| intro | str | 合集介绍 | |
| mid | num | UP主uid | 若为课堂则为0 |
| ptime | num | unix时间(s) | 最后更新时间 |
| sign_state | num | 0 | 作用尚不明确 |
| stat | obj | 合集统计数据 | |
| title | str | 合集名称 | |
`list`中的`vlist`数组中的对象中的`meta`对象中的`stat`对象:
| 字段 | 类型 | 内容 | 备注 |
| ---------- | ---- | ------------ | -------------------- |
| coin | num | 合集总投币数 | |
| danmaku | num | 合集总弹幕数 | |
| favorite | num | 合集总收藏数 | |
| like | num | 合集总点赞数 | |
| mtime | num | unix时间(s) | 其他统计数据更新时间 |
| reply | num | 合集总评论数 | |
| season_id | num | 合集id | |
| share | num | 合集总分享数 | |
| view | num | 合集总播放量 | |
| vt | num | 0 | 作用尚不明确 |
| vv | num | 0 | 作用尚不明确 |
`data`中的`page`对象:
@@ -2684,100 +2731,485 @@ curl -G 'https://api.bilibili.com/x/space/arc/search' \
```json
{
"code": 0,
"message": "0",
"ttl": 1,
"data": {
"list": {
"tlist": {
"1": {
"tid": 1,
"count": 26,
"name": "动画"
},
"160": {
"tid": 160,
"count": 42,
"name": "生活"
},
"211": {
"tid": 211,
"count": 3,
"name": "美食"
},
"3": {
"tid": 3,
"count": 33,
"name": "音乐"
},
"4": {
"tid": 4,
"count": 72,
"name": "游戏"
}
},
"vlist": [
{
"comment": 3558,
"typeid": 47,
"play": 1275661,
"pic": "//i2.hdslb.com/bfs/archive/90157806a34646ac2d4c6af3e8b6156cb3460d14.jpg",
"subtitle": "",
"description": "第一期BV1ak4y1B7aG\n第二期BV1eA411Y7FN\n脚本/绘画/配音/动画/片尾曲warma\n第三期终于做完啦这是一个以我平时发呆的时候想到的一些灵感组成的冷笑话合集名字叫《沃玛的生活》可以当作日常搞笑单元小动画来看。\n如果你喜欢这个系列的话请点赞投币收藏一键三连给我一些继续制作的动力吧我真的非常非常需要更多的动力\n祝看得开心~\n我的微博@_warma_",
"copyright": "",
"title": "【warma】沃玛的新番更新从现在开始放飞自我【沃玛的生活/第三期】",
"review": 0,
"author": "Warma",
"mid": 53456,
"created": 1605844817,
"length": "05:16",
"video_review": 7470,
"aid": 585275804,
"bvid": "BV1sz4y1y7KJ",
"hide_click": false,
"is_pay": 0,
"is_union_video": 0,
"is_steins_gate": 0
},
{
"comment": 2979,
"typeid": 21,
"play": 840676,
"pic": "//i2.hdslb.com/bfs/archive/b43f88c6ebae8fdc7dfb663f6f6f2931b924c763.jpg",
"subtitle": "",
"description": "前一阵子过生日,大家的礼物经过几番转寄终于收到了~于是录了这期礼物开箱视频。\n现在也在感慨大家的礼物真的都太强了居然这些全都是手工做的真的好厉害\n这些手工礼物背后得花多少时间和心力啊……这些对我来说都是无价的礼物制作礼物的大家真的有心了谢谢\n收到这些礼物真的很开心视频的封面也是在这样激动的情况下画出来的祝你看得开心~\n我的微博@_warma_",
"copyright": "",
"title": "【warma】来开箱大家寄来的生日礼物",
"review": 0,
"author": "Warma",
"mid": 53456,
"created": 1604635221,
"length": "24:28",
"video_review": 10476,
"aid": 287744380,
"bvid": "BV1xf4y1q7XN",
"hide_click": false,
"is_pay": 0,
"is_union_video": 0,
"is_steins_gate": 0
}
]
},
"page": {
"pn": 1,
"ps": 2,
"count": 176
},
"episodic_button": {
"text": "播放全部",
"uri": "//www.bilibili.com/medialist/play/53456?from=space"
}
}
"code": 0,
"message": "0",
"ttl": 1,
"data": {
"list": {
"slist": [],
"tlist": {
"1": {
"tid": 1,
"count": 3,
"name": "动画"
},
"129": {
"tid": 129,
"count": 1,
"name": "舞蹈"
},
"160": {
"tid": 160,
"count": 96,
"name": "生活"
},
"177": {
"tid": 177,
"count": 4,
"name": "纪录片"
},
"181": {
"tid": 181,
"count": 50,
"name": "影视"
},
"188": {
"tid": 188,
"count": 444,
"name": "科技"
},
"196": {
"tid": 196,
"count": 2,
"name": "课堂"
}
},
"vlist": [{
"comment": 985,
"typeid": 250,
"play": 224185,
"pic": "http://i0.hdslb.com/bfs/archive/5e56c10a9bd67f2fcac46fdd0fc2caa8769700c8.jpg",
"subtitle": "",
"description": "这一次我们的样片日记首次来到了西藏在桃花季开启了藏东样片之旅这趟“开荒”之旅我们跋山涉水一路硬刚多亏有路虎卫士这样的神队友撑全场这次的素材我们也上传到了官网ysjf.com/material欢迎大家去看看~如果你喜欢这期视频,请多多支持我们,并把视频分享给你的朋友们一起看看!",
"copyright": "1",
"title": "和朋友去西藏拍样片日记……",
"review": 0,
"author": "影视飓风",
"mid": 946974,
"created": 1745290800,
"length": "22:11",
"video_review": 2365,
"aid": 114375683741573,
"bvid": "BV1ac5yzhE94",
"hide_click": false,
"is_pay": 0,
"is_union_video": 1,
"is_steins_gate": 0,
"is_live_playback": 0,
"is_lesson_video": 0,
"is_lesson_finished": 0,
"lesson_update_info": "",
"jump_url": "",
"meta": {
"id": 2046621,
"title": "样片日记",
"cover": "https://archive.biliimg.com/bfs/archive/e2ca3e5a6672cf35c9e61ac02e8d739cc0aafa8b.jpg",
"mid": 946974,
"intro": "",
"sign_state": 0,
"attribute": 140,
"stat": {
"season_id": 2046621,
"view": 31755096,
"danmaku": 171253,
"reply": 33685,
"favorite": 409505,
"coin": 935105,
"share": 199467,
"like": 1791607,
"mtime": 1745309513,
"vt": 0,
"vv": 0
},
"ep_count": 13,
"first_aid": 238588630,
"ptime": 1745290800,
"ep_num": 13
},
"is_avoided": 0,
"season_id": 2046621,
"attribute": 16793984,
"is_charging_arc": false,
"elec_arc_type": 0,
"vt": 0,
"enable_vt": 0,
"vt_display": "",
"playback_position": 0,
"is_self_view": false
}, {
"comment": 0,
"typeid": 197,
"play": 8506,
"pic": "https://archive.biliimg.com/bfs/archive/489f3df26a190a152ad479bfe50a73f1cd4c43c5.jpg",
"subtitle": "",
"description": "8节课Tim和青青带你用iPhone拍出电影感",
"copyright": "1",
"title": "【影视飓风】只看8节课用iPhone拍出电影感",
"review": 0,
"author": "影视飓风",
"mid": 946974,
"created": 1744865737,
"length": "00:00",
"video_review": 9,
"aid": 114351440726681,
"bvid": "BV1WB5ezxEnz",
"hide_click": false,
"is_pay": 0,
"is_union_video": 0,
"is_steins_gate": 0,
"is_live_playback": 0,
"is_lesson_video": 1,
"is_lesson_finished": 1,
"lesson_update_info": "8",
"jump_url": "https://www.bilibili.com/cheese/play/ss190402215",
"meta": {
"id": 190402215,
"title": "【影视飓风】只看8节课用iPhone拍出电影感",
"cover": "https://archive.biliimg.com/bfs/archive/489f3df26a190a152ad479bfe50a73f1cd4c43c5.jpg",
"mid": 0,
"intro": "",
"sign_state": 0,
"attribute": 0,
"stat": {
"season_id": 190402215,
"view": 1111222,
"danmaku": 1853,
"reply": 0,
"favorite": 0,
"coin": 0,
"share": 0,
"like": 0,
"mtime": 0,
"vt": 0,
"vv": 0
},
"ep_count": 0,
"ptime": 1744865737,
"ep_num": 0
},
"is_avoided": 0,
"season_id": 190402215,
"attribute": 1073758592,
"is_charging_arc": false,
"elec_arc_type": 0,
"vt": 0,
"enable_vt": 0,
"vt_display": "",
"playback_position": 0,
"is_self_view": false
}]
},
"page": {
"pn": 1,
"ps": 42,
"count": 786
},
"episodic_button": {
"text": "播放全部",
"uri": "//www.bilibili.com/medialist/play/946974?from=space"
},
"is_risk": false,
"gaia_res_type": 0,
"gaia_data": null
}
}
```
</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

@@ -67,11 +67,12 @@
| is_chargeable_season | bool | | |
| is_story | bool | 是否可以在 Story Mode 展示? | |
| is_upower_exclusive | bool | 是否为充电专属视频 | |
| is_upower_pay | bool | | |
| is_upower_play | bool | | |
| 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`数组:
| 项 | 类型 | 内容 | 备注 |
@@ -676,7 +891,7 @@ https://i1.hdslb.com/bfs/archive/ea0dd34bf41e23a68175680a00e3358cd249105f.jpg
`data`中的`Tags`数组:
基本同「[获取视频TAG信息](tags.md#获取视频TAG信息)」中的data数组
基本同「[获取视频TAG信息(新)](tags.md#获取视频TAG信息)」中的data数组
`data`中的`Reply`对象:

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

@@ -60,7 +60,8 @@ web 播放器的信息接口,提供正常播放需要的元数据,包括:
| now_time | num | 当前 UNIX 秒级时间戳 | |
| online_count | num | 在线人数 | |
| need_login_subtitle | bool | 是否必须登陆才能查看字幕 | 是的 |
| preview_toast | str | `为创作付费,购买观看完整视频|购买观看` | |
| preview_toast | str | `为创作付费,购买观看完整视频\|购买观看` | |
| interaction | obj | 互动视频资讯 | 若非互动视频,则无该栏位(直接没有该键,而非栏位值为空)|
| options | obj | | |
| guide_attention | any | | |
| jump_card | any | | |
@@ -70,10 +71,10 @@ web 播放器的信息接口,提供正常播放需要的元数据,包括:
| show_switch | obj | | |
| bgm_info | obj | 背景音乐信息 | |
| toast_block | bool | | |
| is_upower_exclusive | bool | 充电专属? | |
| is_upower_exclusive | bool | 是否为充电专属视频 | |
| is_upower_play | bool | | |
| is_ugc_pay_preview | bool | | |
| elec_high_level | obj | | |
| elec_high_level | obj | 充电专属视频信息 | |
| disable_show_up_info | bool | | |
`data` 对象中的 `options` 对象:
@@ -126,7 +127,7 @@ web 播放器的信息接口,提供正常播放需要的元数据,包括:
|subtitle_url|str| 资源 url 地址 | |
|type| num | 0 | |
`view_point` 数组内的元素:
`data`对象中的`view_point` 数组内的元素:
| 字段 | 类型 | 内容 | 备注 |
| --------- | ----- | -------- | ---- |
@@ -139,6 +140,32 @@ 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`对象:
| 字段 | 类型 | 内容 | 备注 |
| -------------- | ---- | ------------------------------ | ---------------- |
| privilege_type | num | 解锁视频所需最低定价档位的代码 | 见[充电档位代码与定价](../electric/monthly.md#充电档位代码privilege_type与定价) |
| title | str | 提示标题 | `该视频为「{充电档位名称}」专属视频` |
| sub_title | str | 提示子标题 | `开通「{充电档位定价}元档包月充电」即可观看` |
| show_button | bool | 是否显示按钮 | |
| button_text | str | 按钮文本 | `去开通` |
| jump_url | obj | 跳转url信息 | 详细信息有待补充 |
| intro | str | 充电介绍语 | |
| open | bool | | |
| new | bool | | |
| question_text | str | | |
| qa_detail_link | str | | |
**示例:**
未登录, `aid=1906473802`

File diff suppressed because one or more lines are too long

View File

@@ -1,8 +1,132 @@
# 视频TAG
## 获取视频TAG信息
## 获取视频TAG信息(新)
> https://api.bilibili.com/x/tag/archive/tags
> <https://api.bilibili.com/x/web-interface/view/detail/tag>
*请求方式GET*
认证方式CookieSESSDATA
**url参数**
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| ------ | ---- | -------- | ------------ | -------------------------------- |
| aid | num | 稿件avid | 必要(可选) | avid与bvid任选一个 |
| bvid | str | 稿件bvid | 必要(可选) | avid与bvid任选一个 |
| cid | num | 分P cid | 非必要 | 提供此参数可返回对应分P的BGM信息 |
**json回复**
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ------- | ----- | -------- | --------------------------- |
| code | num | 返回值 | 0成功<br />-400请求错误 |
| message | str | 错误信息 | 默认为0 |
| ttl | num | 1 | |
| data | array | TAG列表 | 无TAG为空 |
`data`数组:
| 项 | 类型 | 内容 | 备注 |
| ---- | ---- | -------------- | ---- |
| 0 | obj | 第1个TAG | |
| n | obj | 第n+1个TAG | |
| …… | obj | …… | …… |
`data`数组中的对象:
| 字段 | 类型 | 内容 | 备注 |
| -------- | ---- | ---------- | ------------------------------------------------------------ |
| tag_id | num | tag_id | 当`tag_type`不为`bgm`时有效 |
| tag_name | str | TAG名称 | |
| music_id | str | 背景音乐id | 当`tag_type``bgm`时有效,以`MA`开头 |
| tag_type | str | TAG类型 | `old_channel`:普通标签<br />`topic`:话题<br />`bgm`:背景音乐 |
| jump_url | str | 跳转url | 当`tag_type``topic``bgm`时有效 |
**示例:**
查询视频`av89772773`/`BV1M741177Kg`的TAG
avid方式
```shell
curl -G 'https://api.bilibili.com/x/web-interface/view/detail/tag' \
--data-urlencode 'aid=89772773' \
--data-urlencode 'cid=153322313' \
-b 'SESSDATA=xxx'
```
bvid方式
```shell
curl -G 'https://api.bilibili.com/x/web-interface/view/detail/tag' \
--data-urlencode 'bvid=BV1M741177Kg' \
--data-urlencode 'cid=153322313' \
-b 'SESSDATA=xxx'
```
<details>
<summary>查看响应示例:</summary>
```json
{
"code": 0,
"message": "0",
"ttl": 1,
"data": [
{
"tag_id": 0,
"tag_name": "发现《Other Side》",
"music_id": "MA456128506519140428",
"tag_type": "bgm",
"jump_url": "https://music.bilibili.com/h5/music-detail?music_id=MA456128506519140428&cid=153322313&aid=89772773&na_close_hide=1"
},
{
"tag_id": 12620189,
"tag_name": "异度侵入",
"music_id": "",
"tag_type": "old_channel",
"jump_url": ""
},
{
"tag_id": 707,
"tag_name": "ED",
"music_id": "",
"tag_type": "old_channel",
"jump_url": ""
},
{
"tag_id": 1394,
"tag_name": "动漫",
"music_id": "",
"tag_type": "old_channel",
"jump_url": ""
},
{
"tag_id": 13289329,
"tag_name": "异度侵入ed原图",
"music_id": "",
"tag_type": "old_channel",
"jump_url": ""
},
{
"tag_id": 7520816,
"tag_name": "bilibili新星计划",
"music_id": "",
"tag_type": "old_channel",
"jump_url": ""
}
]
}
```
</details>
## 获取视频TAG信息
> <https://api.bilibili.com/x/tag/archive/tags>
*请求方式GET*
@@ -19,12 +143,12 @@
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ------- | ------ | -------- | ---------------------------- |
| code | num | 返回值 | 0成功 <br />-400请求错误 |
| message | str | 错误信息 | 默认为0 |
| ttl | num | 1 | |
| data | array | TAG列表 | 无TAG为空 |
| 字段 | 类型 | 内容 | 备注 |
| ------- | ----- | -------- | --------------------------- |
| code | num | 返回值 | 0成功<br />-400请求错误 |
| message | str | 错误信息 | 默认为0 |
| ttl | num | 1 | |
| data | array | TAG列表 | 无TAG为空 |
`data`数组:
@@ -38,7 +162,7 @@
| 字段 | 类型 | 内容 | 备注 |
| ------------- | ---- | -------------- | ------------------------------------------------------------ |
| tag_id | num | tag_id | |
| tag_id | num | tag_id | |
| tag_name | str | TAG名称 | |
| cover | str | TAG图片url | |
| head_cover | str | TAG页面头图url | |
@@ -46,7 +170,7 @@
| short_content | str | TAG简介 | |
| type | num | | |
| state | num | 0 | |
| ctime | num | 创建时间 | 时间戳 |
| ctime | num | 创建时间 | 秒级时间戳 |
| count | obj | 状态数 | |
| is_atten | num | 是否关注 | 0未关注<br />1已关注<br />需要登录(Cookie) <br />未登录为0 |
| likes | num | 0 | 作用尚不明确 |
@@ -54,7 +178,7 @@
| attribute | num | 0 | 作用尚不明确 |
| liked | num | 是否已经点赞 | 0未点赞<br />1已点赞<br />需要登录(Cookie) <br />未登录为0 |
| hated | num | 是否已经点踩 | 0未点踩<br />1已点踩<br />需要登录(Cookie) <br />未登录为0 |
| extra_attr | num | ? ? ? | |
| extra_attr | num | ? ? ? | |
`data`数组中的对象中的`count`对象:
@@ -89,115 +213,115 @@ curl -G 'https://api.bilibili.com/x/tag/archive/tags' \
```json
{
"code": 0,
"message": "0",
"ttl": 1,
"data": [{
"tag_id": 12620189,
"tag_name": "异度侵入",
"cover": "",
"head_cover": "",
"content": "",
"short_content": "",
"type": 1,
"state": 0,
"ctime": 1576235749,
"count": {
"view": 0,
"use": 6392,
"atten": 8938
},
"is_atten": 1,
"likes": 1,
"hates": 0,
"attribute": 0,
"liked": 0,
"hated": 0
}, {
"tag_id": 7520816,
"tag_name": "bilibili新星计划",
"cover": "",
"head_cover": "",
"content": "",
"short_content": "",
"type": 4,
"state": 0,
"ctime": 1529717850,
"count": {
"view": 0,
"use": 1967314,
"atten": 65082
},
"is_atten": 0,
"likes": 0,
"hates": 0,
"attribute": 0,
"liked": 0,
"hated": 0
}, {
"tag_id": 707,
"tag_name": "ED",
"cover": "",
"head_cover": "",
"content": "",
"short_content": "",
"type": 3,
"state": 0,
"ctime": 1436866637,
"count": {
"view": 0,
"use": 62646,
"atten": 75642
},
"is_atten": 1,
"likes": 0,
"hates": 0,
"attribute": 0,
"liked": 0,
"hated": 0
}, {
"tag_id": 1394,
"tag_name": "动漫",
"cover": "http://i0.hdslb.com/bfs/tag/d08c5fe17ceb793e7ce95d9c67392743b33b46d0.jpg",
"head_cover": "",
"content": " “动漫”是动画和漫画的合称与缩写。在其他语言相当少用。随着现代传媒技术的发展动画animation或anime和漫画comicsmanga特别是故事性漫画之间联系日趋紧密两者常被合而为“动漫”。\n  由于漫画本身的发展形成了现代故事漫画的表现形式,将影视艺术融入漫画之中,使得漫画与动画更容易结合,影视艺术独特的地方在于它能通过镜头的推拉摇移和片段剪辑的蒙太奇技巧来表达想法和感受。漫画正是吸收了影视艺术的这两个特点。当讲述的故事越发复杂、人物越发丰富的时候,传统单线式叙事的方法就越行不通,蒙太奇的介入就成为一种需要了;当漫画家在传统表现手段中无法找到更合适的抒发感情的方法的时候,当读者需要作品有更强的冲击力和表现力的时候,各种镜头的灵活运用就成为一种必需了。一部现代故事漫画往往集远、中、近、特四种镜头于一身,漫画家往往能熟练地运用镜头的移动和各种蒙太奇剪接,对故事特定部分的情绪和氛围进行渲染。这就是现代故事漫画容易和动画结合的一个原因,因为它天生就像动画的分镜头剧本,读者在看漫画时如同在看一部电影。正是有着这样的相似性所以如今将动画和漫画合称为“动漫”。",
"short_content": "",
"type": 3,
"state": 0,
"ctime": 1436866637,
"count": {
"view": 0,
"use": 1134143,
"atten": 113030
},
"is_atten": 0,
"likes": 0,
"hates": 0,
"attribute": 0,
"liked": 0,
"hated": 0
}, {
"tag_id": 13289329,
"tag_name": "异度侵入ed原图",
"cover": "",
"head_cover": "",
"content": "",
"short_content": "",
"type": 1,
"state": 0,
"ctime": 1581948411,
"count": {
"view": 0,
"use": 3,
"atten": 0
},
"is_atten": 0,
"likes": 0,
"hates": 0,
"attribute": 0,
"liked": 0,
"hated": 0
}]
"code": 0,
"message": "0",
"ttl": 1,
"data": [{
"tag_id": 12620189,
"tag_name": "异度侵入",
"cover": "",
"head_cover": "",
"content": "",
"short_content": "",
"type": 1,
"state": 0,
"ctime": 1576235749,
"count": {
"view": 0,
"use": 6392,
"atten": 8938
},
"is_atten": 1,
"likes": 1,
"hates": 0,
"attribute": 0,
"liked": 0,
"hated": 0
}, {
"tag_id": 7520816,
"tag_name": "bilibili新星计划",
"cover": "",
"head_cover": "",
"content": "",
"short_content": "",
"type": 4,
"state": 0,
"ctime": 1529717850,
"count": {
"view": 0,
"use": 1967314,
"atten": 65082
},
"is_atten": 0,
"likes": 0,
"hates": 0,
"attribute": 0,
"liked": 0,
"hated": 0
}, {
"tag_id": 707,
"tag_name": "ED",
"cover": "",
"head_cover": "",
"content": "",
"short_content": "",
"type": 3,
"state": 0,
"ctime": 1436866637,
"count": {
"view": 0,
"use": 62646,
"atten": 75642
},
"is_atten": 1,
"likes": 0,
"hates": 0,
"attribute": 0,
"liked": 0,
"hated": 0
}, {
"tag_id": 1394,
"tag_name": "动漫",
"cover": "http://i0.hdslb.com/bfs/tag/d08c5fe17ceb793e7ce95d9c67392743b33b46d0.jpg",
"head_cover": "",
"content": " “动漫”是动画和漫画的合称与缩写。在其他语言相当少用。随着现代传媒技术的发展动画animation或anime和漫画comicsmanga特别是故事性漫画之间联系日趋紧密两者常被合而为“动漫”。\n  由于漫画本身的发展形成了现代故事漫画的表现形式,将影视艺术融入漫画之中,使得漫画与动画更容易结合,影视艺术独特的地方在于它能通过镜头的推拉摇移和片段剪辑的蒙太奇技巧来表达想法和感受。漫画正是吸收了影视艺术的这两个特点。当讲述的故事越发复杂、人物越发丰富的时候,传统单线式叙事的方法就越行不通,蒙太奇的介入就成为一种需要了;当漫画家在传统表现手段中无法找到更合适的抒发感情的方法的时候,当读者需要作品有更强的冲击力和表现力的时候,各种镜头的灵活运用就成为一种必需了。一部现代故事漫画往往集远、中、近、特四种镜头于一身,漫画家往往能熟练地运用镜头的移动和各种蒙太奇剪接,对故事特定部分的情绪和氛围进行渲染。这就是现代故事漫画容易和动画结合的一个原因,因为它天生就像动画的分镜头剧本,读者在看漫画时如同在看一部电影。正是有着这样的相似性所以如今将动画和漫画合称为“动漫”。",
"short_content": "",
"type": 3,
"state": 0,
"ctime": 1436866637,
"count": {
"view": 0,
"use": 1134143,
"atten": 113030
},
"is_atten": 0,
"likes": 0,
"hates": 0,
"attribute": 0,
"liked": 0,
"hated": 0
}, {
"tag_id": 13289329,
"tag_name": "异度侵入ed原图",
"cover": "",
"head_cover": "",
"content": "",
"short_content": "",
"type": 1,
"state": 0,
"ctime": 1581948411,
"count": {
"view": 0,
"use": 3,
"atten": 0
},
"is_atten": 0,
"likes": 0,
"hates": 0,
"attribute": 0,
"liked": 0,
"hated": 0
}]
}
```
@@ -205,7 +329,7 @@ curl -G 'https://api.bilibili.com/x/tag/archive/tags' \
## 点赞&取消点赞视频TAG
> https://api.bilibili.com/x/tag/archive/like2
> <https://api.bilibili.com/x/tag/archive/like2>
*请求方式POST*
@@ -218,7 +342,7 @@ curl -G 'https://api.bilibili.com/x/tag/archive/tags' \
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| ------ | ---- | ------------------------ | ------ | ---- |
| aid | num | 稿件avid | 必要 | |
| tag_id | num | tag_id | 必要 | |
| tag_id | num | tag_id | 必要 | |
| csrf | str | CSRF Token位于cookie | 必要 | |
**json回复**
@@ -258,20 +382,20 @@ curl 'https://api.bilibili.com/x/tag/archive/like2' \
## 点踩&取消点踩视频TAG
> https://api.bilibili.com/x/tag/archive/hate2
> <https://api.bilibili.com/x/tag/archive/hate2>
*请求方式POST*
认证方式CookieSESSDATA
重复访问为取消
重复请求为取消
**正文参数( application/x-www-form-urlencoded **
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| ------ | ---- | ------------------------ | ------ | ---- |
| aid | num | 稿件avid | 必要 | |
| tag_id | num | tag_id | 必要 | |
| tag_id | num | tag_id | 必要 | |
| csrf | str | CSRF Token位于cookie | 必要 | |
**json回复**

View File

@@ -18,6 +18,7 @@
| 64 | 720P 高清 | WEB 端默认值<br />~~B站前端需要登录才能选择但是直接发送请求可以不登录就拿到 720P 的取流地址~~<br />**无 720P 时则为 720P60** |
| 74 | 720P60 高帧率 | 登录认证 |
| 80 | 1080P 高清 | TV 端与 APP 端默认值<br />登录认证 |
| 100 | 智能修复 | 人工智能增强画质<br />大会员认证
| 112 | 1080P+ 高码率 | 大会员认证 |
| 116 | 1080P60 高帧率 | 大会员认证 |
| 120 | 4K 超清 | 需要`fnval&128=128``fourk=1`<br />大会员认证 |

View File

@@ -43,7 +43,7 @@
| bind_phone | str | 绑定的手机号 | 星号隐藏部分信息 |
| taobao_account | 有效时obj<br />无效时null | 绑定的淘宝账号 | |
`list`数组中的对象
`list`数组:
| 索引 | 类型 | 内容 | type | 备注 |
| ---- | ---- | -------------------------------- | ---- | ------------------------------- |
@@ -57,7 +57,7 @@
| 7 | obj | ~~王者荣耀~~)游戏礼盒兑换状态 | 8 | 每日可领取,目前 state 固定为 1 |
| 8 | obj | 每日 10 经验领取状态 | 9 | 每日可领取,未完成时 state 为 2 |
`list`中的对象:
`list`数组中的对象:
| 字段 | 类型 | 内容 | 备注 |
| ----------------- | ---- | -------------------- | ----------------------------------------------------- |