diff --git a/.vuepress/public/logo2.jpg b/.vuepress/public/logo2.jpg new file mode 100644 index 0000000000..199eefc2de Binary files /dev/null and b/.vuepress/public/logo2.jpg differ diff --git a/.vuepress/theme/index.js b/.vuepress/theme/index.js new file mode 100644 index 0000000000..5baed348c3 --- /dev/null +++ b/.vuepress/theme/index.js @@ -0,0 +1,3 @@ +module.exports = { + extend: '@vuepress/theme-default' +} \ No newline at end of file diff --git a/.vuepress/theme/layouts/Layout.vue b/.vuepress/theme/layouts/Layout.vue new file mode 100644 index 0000000000..2b29082c8f --- /dev/null +++ b/.vuepress/theme/layouts/Layout.vue @@ -0,0 +1,21 @@ + + + \ No newline at end of file diff --git a/assets/img/2233login.png b/assets/img/2233login.png new file mode 100644 index 0000000000..3d9ff56226 Binary files /dev/null and b/assets/img/2233login.png differ diff --git a/assets/img/activit.svg b/assets/img/activit.svg new file mode 100644 index 0000000000..b210f77f14 --- /dev/null +++ b/assets/img/activit.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/assets/img/add.svg b/assets/img/add.svg new file mode 100644 index 0000000000..ecdea954c7 --- /dev/null +++ b/assets/img/add.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + diff --git a/assets/img/akari.jpg b/assets/img/akari.jpg new file mode 100644 index 0000000000..5e5ea0bc91 Binary files /dev/null and b/assets/img/akari.jpg differ diff --git a/assets/img/ban.png b/assets/img/ban.png new file mode 100644 index 0000000000..a51f5b95d5 Binary files /dev/null and b/assets/img/ban.png differ diff --git a/assets/img/battery-100.png b/assets/img/battery-100.png new file mode 100644 index 0000000000..4336d56f48 Binary files /dev/null and b/assets/img/battery-100.png differ diff --git a/assets/img/bilibili.svg b/assets/img/bilibili.svg new file mode 100644 index 0000000000..e5cd8eed57 --- /dev/null +++ b/assets/img/bilibili.svg @@ -0,0 +1,44 @@ + + + diff --git a/assets/img/blackroom.svg b/assets/img/blackroom.svg new file mode 100644 index 0000000000..10c801dfb2 --- /dev/null +++ b/assets/img/blackroom.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/img/channel.svg b/assets/img/channel.svg new file mode 100644 index 0000000000..308e4df03a --- /dev/null +++ b/assets/img/channel.svg @@ -0,0 +1,6 @@ + + + diff --git a/assets/img/class.svg b/assets/img/class.svg new file mode 100644 index 0000000000..51797d1d1e --- /dev/null +++ b/assets/img/class.svg @@ -0,0 +1,7 @@ + + + \ No newline at end of file diff --git a/assets/img/coin.svg b/assets/img/coin.svg new file mode 100644 index 0000000000..d58a86ebf4 --- /dev/null +++ b/assets/img/coin.svg @@ -0,0 +1,7 @@ + + + diff --git a/assets/img/collect.svg b/assets/img/collect.svg new file mode 100644 index 0000000000..b382480659 --- /dev/null +++ b/assets/img/collect.svg @@ -0,0 +1,9 @@ + + + \ No newline at end of file diff --git a/assets/img/comment.svg b/assets/img/comment.svg new file mode 100644 index 0000000000..f5cf6b1c0a --- /dev/null +++ b/assets/img/comment.svg @@ -0,0 +1,7 @@ + + + \ No newline at end of file diff --git a/assets/img/delete.svg b/assets/img/delete.svg new file mode 100644 index 0000000000..6901d1a9de --- /dev/null +++ b/assets/img/delete.svg @@ -0,0 +1,9 @@ + + + \ No newline at end of file diff --git a/assets/img/download.svg b/assets/img/download.svg new file mode 100644 index 0000000000..dca94f28de --- /dev/null +++ b/assets/img/download.svg @@ -0,0 +1,7 @@ + + + diff --git a/assets/img/fav.svg b/assets/img/fav.svg new file mode 100644 index 0000000000..eea2122741 --- /dev/null +++ b/assets/img/fav.svg @@ -0,0 +1,6 @@ + + + diff --git a/assets/img/follow.svg b/assets/img/follow.svg new file mode 100644 index 0000000000..900076bdc9 --- /dev/null +++ b/assets/img/follow.svg @@ -0,0 +1,23 @@ + + + + + + + + + + diff --git a/assets/img/history.png b/assets/img/history.png new file mode 100644 index 0000000000..dc42b04222 Binary files /dev/null and b/assets/img/history.png differ diff --git a/assets/img/home.svg b/assets/img/home.svg new file mode 100644 index 0000000000..21b5eb9c80 --- /dev/null +++ b/assets/img/home.svg @@ -0,0 +1,6 @@ + + + \ No newline at end of file diff --git a/assets/img/like.svg b/assets/img/like.svg new file mode 100644 index 0000000000..cfc8cb18fe --- /dev/null +++ b/assets/img/like.svg @@ -0,0 +1,5 @@ + + + diff --git a/assets/img/live.svg b/assets/img/live.svg new file mode 100644 index 0000000000..4bd4e557ba --- /dev/null +++ b/assets/img/live.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/img/loadTV.gif b/assets/img/loadTV.gif new file mode 100644 index 0000000000..33ebcd88d6 Binary files /dev/null and b/assets/img/loadTV.gif differ diff --git a/assets/img/logo.png b/assets/img/logo.png new file mode 100644 index 0000000000..57fedbddee Binary files /dev/null and b/assets/img/logo.png differ diff --git a/assets/img/logo2.jpg b/assets/img/logo2.jpg new file mode 100644 index 0000000000..199eefc2de Binary files /dev/null and b/assets/img/logo2.jpg differ diff --git a/assets/img/musicplus.svg b/assets/img/musicplus.svg new file mode 100644 index 0000000000..a32c24e081 --- /dev/null +++ b/assets/img/musicplus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/img/ploading.gif b/assets/img/ploading.gif new file mode 100644 index 0000000000..1a8c97d044 Binary files /dev/null and b/assets/img/ploading.gif differ diff --git a/assets/img/ranking.svg b/assets/img/ranking.svg new file mode 100644 index 0000000000..c827ff1b3a --- /dev/null +++ b/assets/img/ranking.svg @@ -0,0 +1,4 @@ + + + diff --git a/assets/img/read.svg b/assets/img/read.svg new file mode 100644 index 0000000000..8d16156881 --- /dev/null +++ b/assets/img/read.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/img/relation.svg b/assets/img/relation.svg new file mode 100644 index 0000000000..a9e42ecd0c --- /dev/null +++ b/assets/img/relation.svg @@ -0,0 +1,10 @@ + + + \ No newline at end of file diff --git a/assets/img/share.svg b/assets/img/share.svg new file mode 100644 index 0000000000..ca3b8fc8d8 --- /dev/null +++ b/assets/img/share.svg @@ -0,0 +1,5 @@ + + + diff --git a/assets/img/sponsorQR.jpg b/assets/img/sponsorQR.jpg new file mode 100644 index 0000000000..9178ffc1a8 Binary files /dev/null and b/assets/img/sponsorQR.jpg differ diff --git a/assets/img/sub.svg b/assets/img/sub.svg new file mode 100644 index 0000000000..907fce8cc2 --- /dev/null +++ b/assets/img/sub.svg @@ -0,0 +1,5 @@ + + + \ No newline at end of file diff --git a/assets/img/tebietuijian.svg b/assets/img/tebietuijian.svg new file mode 100644 index 0000000000..4623fa613f --- /dev/null +++ b/assets/img/tebietuijian.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/img/topic.svg b/assets/img/topic.svg new file mode 100644 index 0000000000..b26e7a0b88 --- /dev/null +++ b/assets/img/topic.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/img/toview.png b/assets/img/toview.png new file mode 100644 index 0000000000..cd1e0aebde Binary files /dev/null and b/assets/img/toview.png differ diff --git a/assets/img/tuiguang.svg b/assets/img/tuiguang.svg new file mode 100644 index 0000000000..52aac0e2ee --- /dev/null +++ b/assets/img/tuiguang.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/img/video_up.svg b/assets/img/video_up.svg new file mode 100644 index 0000000000..e8987f58fe --- /dev/null +++ b/assets/img/video_up.svg @@ -0,0 +1,6 @@ + + + diff --git a/assets/zone_icon/ad.svg b/assets/zone_icon/ad.svg new file mode 100644 index 0000000000..3004bbff2e --- /dev/null +++ b/assets/zone_icon/ad.svg @@ -0,0 +1,14 @@ + + + + + + \ No newline at end of file diff --git a/assets/zone_icon/animal.svg b/assets/zone_icon/animal.svg new file mode 100644 index 0000000000..4f7708d15f --- /dev/null +++ b/assets/zone_icon/animal.svg @@ -0,0 +1,11 @@ + + + + + \ No newline at end of file diff --git a/assets/zone_icon/anime.svg b/assets/zone_icon/anime.svg new file mode 100644 index 0000000000..fd797d334b --- /dev/null +++ b/assets/zone_icon/anime.svg @@ -0,0 +1,16 @@ + + + + + + + + + \ No newline at end of file diff --git a/assets/zone_icon/car.svg b/assets/zone_icon/car.svg new file mode 100644 index 0000000000..6d30f0a31e --- /dev/null +++ b/assets/zone_icon/car.svg @@ -0,0 +1,20 @@ + + + + + + + + \ No newline at end of file diff --git a/assets/zone_icon/cinephile.svg b/assets/zone_icon/cinephile.svg new file mode 100644 index 0000000000..cad39f4b32 --- /dev/null +++ b/assets/zone_icon/cinephile.svg @@ -0,0 +1,14 @@ + + + + + + \ No newline at end of file diff --git a/assets/zone_icon/comic.svg b/assets/zone_icon/comic.svg new file mode 100644 index 0000000000..bb78da2983 --- /dev/null +++ b/assets/zone_icon/comic.svg @@ -0,0 +1,20 @@ + + + + + + + + \ No newline at end of file diff --git a/assets/zone_icon/dance.svg b/assets/zone_icon/dance.svg new file mode 100644 index 0000000000..87a5ad12eb --- /dev/null +++ b/assets/zone_icon/dance.svg @@ -0,0 +1,10 @@ + + + + + + \ No newline at end of file diff --git a/assets/zone_icon/digital.svg b/assets/zone_icon/digital.svg new file mode 100644 index 0000000000..56ea8f9343 --- /dev/null +++ b/assets/zone_icon/digital.svg @@ -0,0 +1,13 @@ + + + + + + + + \ No newline at end of file diff --git a/assets/zone_icon/documentary.svg b/assets/zone_icon/documentary.svg new file mode 100644 index 0000000000..fcaf707f1c --- /dev/null +++ b/assets/zone_icon/documentary.svg @@ -0,0 +1,31 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/assets/zone_icon/douga.svg b/assets/zone_icon/douga.svg new file mode 100644 index 0000000000..5cf324c490 --- /dev/null +++ b/assets/zone_icon/douga.svg @@ -0,0 +1,14 @@ + + + + + + \ No newline at end of file diff --git a/assets/zone_icon/ent.svg b/assets/zone_icon/ent.svg new file mode 100644 index 0000000000..d938420ef9 --- /dev/null +++ b/assets/zone_icon/ent.svg @@ -0,0 +1,17 @@ + + + + + + + \ No newline at end of file diff --git a/assets/zone_icon/fashion.svg b/assets/zone_icon/fashion.svg new file mode 100644 index 0000000000..cfb662132e --- /dev/null +++ b/assets/zone_icon/fashion.svg @@ -0,0 +1,11 @@ + + + + + \ No newline at end of file diff --git a/assets/zone_icon/food.svg b/assets/zone_icon/food.svg new file mode 100644 index 0000000000..e554eb589a --- /dev/null +++ b/assets/zone_icon/food.svg @@ -0,0 +1,32 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/assets/zone_icon/game.svg b/assets/zone_icon/game.svg new file mode 100644 index 0000000000..59a2188401 --- /dev/null +++ b/assets/zone_icon/game.svg @@ -0,0 +1,9 @@ + + + + + \ No newline at end of file diff --git a/assets/zone_icon/guochuang.svg b/assets/zone_icon/guochuang.svg new file mode 100644 index 0000000000..a10c3e970c --- /dev/null +++ b/assets/zone_icon/guochuang.svg @@ -0,0 +1,11 @@ + + + + + \ No newline at end of file diff --git a/assets/zone_icon/information.svg b/assets/zone_icon/information.svg new file mode 100644 index 0000000000..c33d83818a --- /dev/null +++ b/assets/zone_icon/information.svg @@ -0,0 +1,17 @@ + + + + + + + \ No newline at end of file diff --git a/assets/zone_icon/kichiku.svg b/assets/zone_icon/kichiku.svg new file mode 100644 index 0000000000..2d74f850ba --- /dev/null +++ b/assets/zone_icon/kichiku.svg @@ -0,0 +1,16 @@ + + + + + + + + \ No newline at end of file diff --git a/assets/zone_icon/knowledge.svg b/assets/zone_icon/knowledge.svg new file mode 100644 index 0000000000..8ede0d7744 --- /dev/null +++ b/assets/zone_icon/knowledge.svg @@ -0,0 +1,18 @@ + + + + + + + + + \ No newline at end of file diff --git a/assets/zone_icon/life.svg b/assets/zone_icon/life.svg new file mode 100644 index 0000000000..ad03a79991 --- /dev/null +++ b/assets/zone_icon/life.svg @@ -0,0 +1,8 @@ + + + + \ No newline at end of file diff --git a/assets/zone_icon/movie.svg b/assets/zone_icon/movie.svg new file mode 100644 index 0000000000..5f691a4d94 --- /dev/null +++ b/assets/zone_icon/movie.svg @@ -0,0 +1,11 @@ + + + + + \ No newline at end of file diff --git a/assets/zone_icon/music.svg b/assets/zone_icon/music.svg new file mode 100644 index 0000000000..408c93ce12 --- /dev/null +++ b/assets/zone_icon/music.svg @@ -0,0 +1,11 @@ + + + + + \ No newline at end of file diff --git a/assets/zone_icon/sports.svg b/assets/zone_icon/sports.svg new file mode 100644 index 0000000000..bd4c97e3d1 --- /dev/null +++ b/assets/zone_icon/sports.svg @@ -0,0 +1,8 @@ + + + + \ No newline at end of file diff --git a/assets/zone_icon/tech.svg b/assets/zone_icon/tech.svg new file mode 100644 index 0000000000..4c3795b1cd --- /dev/null +++ b/assets/zone_icon/tech.svg @@ -0,0 +1,12 @@ + + + + + + \ No newline at end of file diff --git a/assets/zone_icon/teleplay.svg b/assets/zone_icon/teleplay.svg new file mode 100644 index 0000000000..a6a39afd10 --- /dev/null +++ b/assets/zone_icon/teleplay.svg @@ -0,0 +1,11 @@ + + + + + \ No newline at end of file diff --git a/docs/APP_widget/splash.md b/docs/APP_widget/splash.md new file mode 100644 index 0000000000..93e62de800 --- /dev/null +++ b/docs/APP_widget/splash.md @@ -0,0 +1,572 @@ +# APP端开屏图片 + +- [获取APP端开屏图片列表](#获取APP端开屏图片列表) +- [获取APP端开屏幕广告信息](#获取APP端开屏幕广告信息) + +--- + +## 获取APP端开屏图片列表 + +> https://app.bilibili.com/x/v2/splash/brand/list + +*请求方式:GET* + +鉴权方式:APP + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +|--------|-----|-------|---------|-----| +| appkey | str | APP密钥 | APP方式必要 | | +| ts | num | 当前时间戳 | APP方式必要 | | +| sign | str | APP签名 | APP方式必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +|---------|-----|------|---------------------------------------| +| code | num | 返回值 | 0:成功
-3:API校验密匙错误
-400:请求错误 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +|---------------|-------|--------|--------| +| pull_interval | num | 1800 | 作用尚不明确 | +| forcibly | bool | false | 作用尚不明确 | +| rule | str | order | 作用尚不明确 | +| list | array | 开屏图片列表 | | +| show | array | 默认显示项 | | + +`data`中的`list`数组: + +| 项 | 类型 | 内容 | 备注 | +|-----|-----|-----------|-----| +| 0 | obj | 开屏图片1 | | +| n | obj | 开屏图片(n+1) | | +| …… | obj | …… | …… | + +`list`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +|----------|-----|---------------------|-----| +| id | num | 开屏图片id | | +| thumb | str | 开屏图片url | | +| logo_url | str | “bilibili”logo图片url | | + +`data`中的`show`数组: + +| 项 | 类型 | 内容 | 备注 | +|-----|-----|-------|-----| +| 0 | obj | 套了个娃? | | + +`show`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +|-------------|-----|--------|--------| +| id | num | 开屏图片id | | +| begin_time | num | 起始时间? | 时间戳 | +| end_time | num | 结束时间? | 时间戳 | +| probability | num | 0 | 作用尚不明确 | +| duration | num | 显示时间? | 单位为毫秒 | + +**示例:** + +```shell +curl -G 'https://app.bilibili.com/x/v2/splash/brand/list' \ +--data-urlencode 'appkey=1d8b6e7d45233436' \ +--data-urlencode 'ts=0' \ +--data-urlencode 'sign=78a89e153cd6231a4a4d55013aa063ce' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "pull_interval": 1800, + "forcibly": false, + "rule": "order", + "list": [ + { + "id": 10, + "thumb": "http://i0.hdslb.com/bfs/archive/e2d2f57e08b511d1a47203859f7bddb4ef9d4e16.png", + "logo_url": "http://i0.hdslb.com/bfs/archive/ecc9b29bb4b803daf2a46fe5ef71bf530300162c.png" + }, + { + "id": 11, + "thumb": "http://i0.hdslb.com/bfs/archive/fe737da5cdedf9dad038e5fd30e957be8a063bc2.png", + "logo_url": "http://i0.hdslb.com/bfs/archive/ecc9b29bb4b803daf2a46fe5ef71bf530300162c.png" + }, + { + "id": 12, + "thumb": "http://i0.hdslb.com/bfs/archive/574469a4a20f41ba4dc9ecd41d15f94eea875ed9.png", + "logo_url": "http://i0.hdslb.com/bfs/archive/ecc9b29bb4b803daf2a46fe5ef71bf530300162c.png" + }, + { + "id": 13, + "thumb": "http://i0.hdslb.com/bfs/archive/af0f4f611faa34340bd4f91def1973ccbfb8fbb3.png", + "logo_url": "http://i0.hdslb.com/bfs/archive/ecc9b29bb4b803daf2a46fe5ef71bf530300162c.png" + }, + { + "id": 14, + "thumb": "http://i0.hdslb.com/bfs/archive/1d40e975b09d5c87b11b3ae0c9ce6c6b82f63d9e.png", + "logo_url": "http://i0.hdslb.com/bfs/archive/ecc9b29bb4b803daf2a46fe5ef71bf530300162c.png" + } + ], + "show": [ + { + "id": 12, + "begin_time": 1597564800, + "end_time": 1630753108, + "probability": 0, + "duration": 700 + } + ] + } +} +``` + +
+ +如id=11的图片为: + +![]( https://i0.hdslb.com/bfs/archive/fe737da5cdedf9dad038e5fd30e957be8a063bc2.png ) + + +## 获取APP端开屏幕广告信息 + +> https://app.bilibili.com/x/v2/splash/list + +*请求方式: GET* + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +|----------|-----|-----------------------|-----|-----| +| build | int | 客户端内部版本号 | 必要 | | +| mobi_app | str | android, iphone, ipad | 必要 | | +| platform | str | android, ios | 必要 | | +| height | int | 屏幕高度 | 必要 | | +| width | int | 屏幕宽度 | 必要 | | +| birth | str | 生日日期(四位数,例 0101) | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +|---------|-----|------|---------------------------------------| +| code | num | 返回值 | 0:成功
-3:API校验密匙错误
-400:请求错误 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +|-------------------|--------|---------------------|---------| +| splash_request_id | 当前请求id | 长度为33, 前13位是当前秒级时间戳 | | +| max_time | int | 最长显示时间? | | +| min_interval | int | 最少显示时间? | 千分之一秒单位 | +| pull_interval | int | 显示时间? | | +| keep_ids | int | 显示时间? | | +| list | list | 广告 list | | + +`list`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +|----------------------------|-------|---------------|--------| +| id | int | 广告id | | +| type | int | 1 | | +| card_type | int | 39 | | +| duration | int | 持续时间? | | +| begin_time | int | 开始展示时间 | 秒级时间戳 | +| end_time | int | 停止展示时间 | 毫秒级时间戳 | +| thumb | url | 广告图片 | | +| hash | str | 作用尚不明确 | | +| logo_url | str | 空值 | | +| logo_hash | str | 空值 | | +| skip | int | 是否跳转? | | +| uri | str | 跳转的url | | +| video_url | str | 视频url | | +| video_hash | str | 视频hash | | +| video_width | num | 视频宽度 | | +| video_height | num | 视频高度 | | +| uri_title | str | 空值 | | +| source | int | 929 | | +| cm_mark | int | 1 | | +| ad_cb | str | 作用尚不明确 | | +| resource_id | int | 926 | | +| request_id | str | 作用尚不明确 | | +| client_ip | str | 客户端IP | | +| is_ad | bool | 作用尚不明确 | | +| is_ad_loc | bool | 作用尚不明确 | | +| schema_title | str | 滑动进入第三方应用 | | +| schema_callup_white_list | array | 跳转的 APP 的白名单 | | +| extra | obj | 显示信息? | | +| enable_pre_download | bool | 是否可以当场下载 APP? | | +| enable_background_download | bool | 是否可以静默下载 APP? | | +| interact_type | int | 是否可以跳转(互动)? | | +| interact_url | str | 跳转(互动) url | | +| interact_distance | int | 作用尚不明确 | | +| guide_button_list | array | 所有的按钮 | | +| mark_with_skip_style | num | 作用尚不明确 | | +| skip_button_height | num | 作用尚不明确 | | + +`extra`对象: + +| 字段 | 类型 | 内容 | 备注 | +|----------------------------|-------|-----|-----| +| use_ad_web_v2 | bool | | | +| show_urls | array | | | +| click_urls | array | | | +| show_1s_urls | array | | | +| download_whitelist | array | | | +| open_whitelist | array | | | +| card | obj | | | +| report_time | num | | | +| sales_type | num | | | +| special_industry | bool | | | +| preload_landingpage | num | | | +| share_info | obj | | | +| upzone_entrance_type | num | | | +| upzone_entrance_report_id | num | | | +| topview_pic_url | str | | | +| topview_video_url | str | | | +| click_area | num | | | +| shop_id | num | | | +| up_mid | num | | | +| track_id | str | | | +| enable_store_direct_launch | int | | | +| enable_double_jump | bool | | | +| store_callup_card | bool | | | +| enable_h5_alert | bool | | | +| special_industry_style | num | | | +| macro_replace_priority | num | | | +| feedback_panel_style | num | | | +| ad_content_type | num | | | +| enable_h5_pre_load | num | | | +| hot_activity_id | num | | | +| product_id | num | | | +| landingpage_download_style | num | | | + +`guide_button_list` 中的对象: + +| 字段 | 类型 | 内容 | 备注 | +|------------------------------|-------|-----|-------| +| id | int | | | +| x | int | | | +| y | int | | | +| bg_color | str | | | +| bg_color_night | str | | | +| text_color | str | | | +| text_color_night | str | | | +| guide_instructions | str | | | +| guide_instructions_new | str | 空值 | | +| width | str | | | +| jump_url | str | | | +| schema_package_name | str | | | +| schema_title | str | | | +| schema_title_new | str | 空值 | | +| height | str | | | +| slide_threshold_value | str | | | +| slide_border_color | str | | | +| guide_image_url | str | | | +| guide_image_md5 | str | | | +| interact_style | str | | | +| jump_image_url | str | | | +| jump_image_md5 | str | | | +| schema_image_url | str | | | +| schema_image_md5 | str | | | +| click_expand_ratio | str | | | +| logo_image_url | str | | | +| logo_image_md5 | str | | | +| related_ids | array | 空 | | +| schema_list | array | 空 | | +| font_ratio | num | | | +| seq | num | | | +| degrade_type | num | | | +| twist_angle | num | | | +| twist_speed | num | | | +| secondary_guide_instructions | str | | | +| secondary_font_ratio | num | | | +| secondary_text_color | str | | | +| secondary_text_color_night | str | | | +| activity_time | num | | 秒级时间戳 | +| time_show_type | num | | | + +**示例:** + +```shell +curl -X GET 'https://app.bilibili.com/x/v2/splash/list' \ + --data-urlencode 'build=999999999' \ + --data-urlencode 'mobi_app=android' \ + --data-urlencode 'platform=android' \ + --data-urlencode 'height=1920' \ + --data-urlencode 'width=1080' \ + --data-urlencode 'birth=0101' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "max_time": 4, + "min_interval": 14400, + "pull_interval": 900, + "keep_ids": null, + "list": [ + { + "id": 9460, + "type": 1, + "card_type": 39, + "duration": 5, + "begin_time": 1663689600, + "end_time": 1663775999, + "thumb": "https://i0.hdslb.com/bfs/sycp/creative_img/202208/cb001c291c6011940e29531dcce6b1e8.webp", + "hash": "712d3df973f99fdcd30c2419d19630dc", + "logo_url": "", + "logo_hash": "", + "skip": 1, + "uri": "https://market.m.taobao.com/app/mwdk-industry/mwdk-shopping-base/pages/peppa.html?disableNav=YES&merchantCode=HM&pageId=105240&path=%2Fact%2Frax%2Fmanual1455861656935693595&renderChannelCode=HM&siteCode=HM_8_7dd8299642994fa196f9a9aae4fd4391_3&spma=a225z&usePayment=alipayMiniApp&utm_campaign=dwlx&utm_source=1234&targetShopId=199273419", + "video_url": "http://upos-sz-static.bilivideo.com/ssaxcode/89/jl/n220831a21uql976d44zun4y0ykmjl89-1-SPLASH.mp4", + "video_hash": "ae10333c160452cc2755d079db10b597", + "video_width": 1080, + "video_height": 1920, + "uri_title": "", + "source": 929, + "cm_mark": 1, + "ad_cb": "COfrARC7jxUY9EkgADDWwCE4oQdCIDE2NjM2NDY2MzY1ODhxMTcyYTI2YTE5MmE5NnE1NDE0SKy0xMi1MFIG5aSp5rSlaP///////////wFw////////////AYABS4gB5+sBsgEg8mQFw0bBxGOGYE8OBhMOd3DE8OGFZXhookrFX4s3UrrwAruPFdgD9Ek=", + "resource_id": 926, + "request_id": "1663646636588q172a26a192a96q5414", + "client_ip": "117.14.146.37", + "is_ad": true, + "is_ad_loc": true, + "schema_title": "滑动进入第三方应用", + "schema_callup_white_list": [ + "tmall", + "taobao", + "openapp.jdmobile", + "weixin", + "alipays", + "tbopen", + "eleme", + "qqmusic", + "pddopen", + "upwallet", + "yocial://plaza/?tab=0", + "hiapplink", + "meiju", + "midea-meiju", + "uclink", + "qklink", + "taobaolite", + "lazyaudio", + "meituanwaimai", + "baiduboxapp://", + "baiduboxapp", + "fleamarket", + "dewuapp", + "duappmoblink", + "cmblife", + "imeituan", + "vmall", + "music", + "pinduoduo" + ], + "extra": { + "use_ad_web_v2": true, + "show_urls": [ + "https://g.cn.miaozhen.com/x/k=2315612&p=8EUuC&dx=__IPDX__&rt=2&pro=s&ns=__IP__&ni=__IESID__&v=__LOC__&xa=__ADPLATFORM__&tr=__REQUESTID__&vg=__AUTOPLAY__&nh=__AUTOREFRESH__&mo=__OS__&m0=__OPENUDID__&m0a=__DUID__&m1=__ANDROIDID1__&m1a=__ANDROIDID__&m2=__IMEI__&m4=__AAID__&m5=__IDFA__&m6=__MAC1__&m6a=__MAC__&m11=__OAID__&m14=__CAID__&m5a=__IDFV__&mn=__ANAME__&m5b=__IDFA1__&m11a=__OAID1__&m14a=__CAID1__&o=" + ], + "click_urls": [ + "https://e.cn.miaozhen.com/r/k=2315612&p=8EUuC&dx=__IPDX__&rt=2&pro=s&ns=__IP__&ni=__IESID__&v=__LOC__&xa=__ADPLATFORM__&tr=__REQUESTID__&mo=__OS__&m0=__OPENUDID__&m0a=__DUID__&m1=__ANDROIDID1__&m1a=__ANDROIDID__&m2=__IMEI__&m4=__AAID__&m5=__IDFA__&m6=__MAC1__&m6a=__MAC__&m11=__OAID__&m14=__CAID__&m5a=__IDFV__&mn=__ANAME__&m5b=__IDFA1__&m11a=__OAID1__&m14a=__CAID1__&o=" + ], + "show_1s_urls": [], + "download_whitelist": [], + "open_whitelist": [ + "tmall", + "taobao", + "openapp.jdmobile", + "weixin", + "alipays", + "tbopen", + "eleme", + "qqmusic", + "pddopen", + "upwallet", + "yocial://plaza/?tab=0", + "hiapplink", + "meiju", + "midea-meiju", + "uclink", + "qklink", + "taobaolite", + "lazyaudio", + "meituanwaimai", + "baiduboxapp://", + "baiduboxapp", + "fleamarket", + "dewuapp", + "duappmoblink", + "cmblife", + "imeituan", + "vmall", + "music", + "pinduoduo" + ], + "card": { + "card_type": 0, + "extreme_team_status": false, + "support_transition": false, + "under_player_interaction_style": 0, + "grade_denominator": 0, + "star_level": 0, + "live_booking_population_threshold": 0, + "ori_mark_hidden": 0, + "use_multi_cover": false, + "fold_time": 0, + "live_room_popularity": 0, + "live_tag_show": false, + "grade_level": 0 + }, + "report_time": 0, + "sales_type": 75, + "special_industry": false, + "preload_landingpage": 0, + "share_info": {}, + "upzone_entrance_type": 0, + "upzone_entrance_report_id": 0, + "topview_pic_url": "", + "topview_video_url": "", + "click_area": 0, + "shop_id": 0, + "up_mid": 0, + "track_id": "pbaes.Y5ATuPVlG6ysPF6cvl6W8B-BYexhSJzrKH3NYfC3KIHDb9W5cxPA4_FTEPWYDED5DjfRwb3tcrLppYAqQ87SSg==", + "enable_store_direct_launch": 0, + "enable_double_jump": false, + "store_callup_card": false, + "enable_h5_alert": false, + "special_industry_style": 0, + "macro_replace_priority": 1, + "feedback_panel_style": 0, + "ad_content_type": 0, + "enable_h5_pre_load": 0, + "hot_activity_id": 0, + "product_id": 0, + "landingpage_download_style": 2 + }, + "enable_pre_download": true, + "enable_background_download": true, + "interact_type": 1, + "interact_url": "https://market.m.taobao.com/app/mwdk-industry/mwdk-shopping-base/pages/peppa.html?disableNav=YES&merchantCode=HM&pageId=105240&path=%2Fact%2Frax%2Fmanual1455861656935693595&renderChannelCode=HM&siteCode=HM_8_7dd8299642994fa196f9a9aae4fd4391_3&spma=a225z&usePayment=alipayMiniApp&utm_campaign=dwlx&utm_source=1234&targetShopId=199273419", + "interact_distance": 60, + "guide_button_list": [ + { + "id": 49037, + "x": 50, + "y": 78, + "bg_color": "#80000000", + "bg_color_night": "#80000000", + "text_color": "#FFFFFFFF", + "text_color_night": "#FFFFFFFF", + "guide_instructions": "点击进入活动页", + "guide_instructions_new": "", + "width": 70, + "jump_url": "https://market.m.taobao.com/app/mwdk-industry/mwdk-shopping-base/pages/peppa.html?disableNav=YES&merchantCode=HM&pageId=105240&path=%2Fact%2Frax%2Fmanual1455861656935693595&renderChannelCode=HM&siteCode=HM_8_7dd8299642994fa196f9a9aae4fd4391_3&spma=a225z&usePayment=alipayMiniApp&utm_campaign=dwlx&utm_source=1234&targetShopId=199273419", + "schema_package_name": "", + "schema_title": "", + "schema_title_new": "", + "height": 7, + "slide_threshold_value": 5, + "slide_border_color": "#40FFFFFF", + "guide_image_url": "", + "guide_image_md5": "", + "interact_style": 6, + "jump_image_url": "https://i0.hdslb.com/bfs/sycp/creative_img/202208/f61a66cf54bc71d9bd1b81bde79c0140.json", + "jump_image_md5": "26d8b4b516f83a3f9b15fef643464cc6", + "schema_image_url": "https://i0.hdslb.com/bfs/sycp/creative_img/202208/f61a66cf54bc71d9bd1b81bde79c0140.json", + "schema_image_md5": "26d8b4b516f83a3f9b15fef643464cc6", + "click_expand_ratio": 100, + "logo_image_url": "https://i0.hdslb.com/bfs/sycp/mgk/img/202106/17006d50ec506813727b1cb5c6fc58b1.png", + "logo_image_md5": "86bc1b68ce4708d918cd4e01a975ca17", + "related_ids": [], + "schema_list": [], + "font_ratio": 0.23, + "seq": 0, + "degrade_type": 1, + "twist_angle": 0, + "twist_speed": -1, + "secondary_guide_instructions": "", + "secondary_font_ratio": 0, + "secondary_text_color": "", + "secondary_text_color_night": "", + "activity_time": 1662532059, + "time_show_type": 0 + }, + { + "id": 49040, + "x": 50, + "y": 83, + "bg_color": "#80000000", + "bg_color_night": "#80000000", + "text_color": "#FFFFFFFF", + "text_color_night": "#FFFFFFFF", + "guide_instructions": "即可前往 开吃新品", + "guide_instructions_new": "", + "width": 64, + "jump_url": "https://market.m.taobao.com/app/mwdk-industry/mwdk-shopping-base/pages/peppa.html?disableNav=YES&merchantCode=HM&pageId=105240&path=%2Fact%2Frax%2Fmanual1455861656935693595&renderChannelCode=HM&siteCode=HM_8_7dd8299642994fa196f9a9aae4fd4391_3&spma=a225z&usePayment=alipayMiniApp&utm_campaign=dwlx&utm_source=1234&targetShopId=199273419", + "schema_package_name": "", + "schema_title": "滑动进入第三方应用", + "schema_title_new": "", + "height": 3, + "slide_threshold_value": 5, + "slide_border_color": "#40FFFFFF", + "guide_image_url": "", + "guide_image_md5": "", + "interact_style": 3, + "jump_image_url": "https://i0.hdslb.com/bfs/sycp/creative_img/202208/f61a66cf54bc71d9bd1b81bde79c0140.json", + "jump_image_md5": "26d8b4b516f83a3f9b15fef643464cc6", + "schema_image_url": "https://i0.hdslb.com/bfs/sycp/creative_img/202208/f61a66cf54bc71d9bd1b81bde79c0140.json", + "schema_image_md5": "26d8b4b516f83a3f9b15fef643464cc6", + "click_expand_ratio": 100, + "logo_image_url": "https://i0.hdslb.com/bfs/sycp/mgk/img/202106/17006d50ec506813727b1cb5c6fc58b1.png", + "logo_image_md5": "86bc1b68ce4708d918cd4e01a975ca17", + "related_ids": [ + 49037 + ], + "schema_list": [], + "font_ratio": 0.23, + "seq": 99, + "degrade_type": 0, + "twist_angle": 0, + "twist_speed": -1, + "secondary_guide_instructions": "", + "secondary_font_ratio": 0, + "secondary_text_color": "", + "secondary_text_color_night": "", + "activity_time": 1662532059, + "time_show_type": 0 + } + ], + "mark_with_skip_style": 0, + "skip_button_height": 0.0557 + } + ], + "splash_request_id": "1663646636605q172a24a57a232q5796" + } +} +``` +
\ No newline at end of file diff --git a/docs/album/action.md b/docs/album/action.md new file mode 100644 index 0000000000..774a4abbb6 --- /dev/null +++ b/docs/album/action.md @@ -0,0 +1,176 @@ +# 相簿操作 + +- [~~点赞相簿~~](#~~点赞相簿~~) +- [~~收藏相簿~~](#~~收藏相簿~~) +- [取消收藏相簿](#取消收藏相簿) + +--- + +## ~~点赞相簿~~ + +> https://api.vc.bilibili.com/link_draw/v2/Vote/operate + +*请求方式:POST* + +认证方式:Cookie(SESSDATA) + +**正文参数( application/x-www-form-urlencoded ):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ---------- | ---- | ------------------------ | ------ | ---------------------- | +| doc_id | num | 相簿id | 必要 | | +| type | num | 操作方式 | 必要 | 1:点赞
2:取消赞 | +| csrf_token | str | CSRF Token(位于cookie) | 非必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------------------ | +| code | num | 返回值 | 0:成功
1:参数错误
3:未登录
110022:已经操作过了 | +| msg | str | 错误信息 | 默认为success | +| message | str | 错误信息 | 默认为success | +| data | obj | 数据本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | -------- | ---------------------- | +| type | num | 操作方式 | 1:点赞
2:取消赞 | + +**示例:** + +点赞相簿`id=99184721` + +```shell +curl 'https://api.vc.bilibili.com/link_draw/v2/Vote/operate' \ +--data-urlencode 'doc_id=99184721' \ +--data-urlencode 'type=1' \ +--data-urlencode 'csrf_token=xxx' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "msg": "success", + "message": "success", + "data": { + "type": 1 + } +} +``` + +
+ +## ~~收藏相簿~~ + +> https://api.vc.bilibili.com/user_plus/v1/Fav/add + +*请求方式:POST* + +认证方式:Cookie(SESSDATA) + +**正文参数( application/x-www-form-urlencoded ):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ---------- | ---- | ------------------------ | ------ | ------------ | +| fav_id | num | 相簿id | 必要 | | +| biz_type | num | 2 | 必要 | 作用尚不明确 | +| csrf_token | str | CSRF Token(位于cookie) | 非必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ----- | -------- | ------------------------------------------------------------ | +| code | num | 返回值 | 0:成功
-400:参数错误
-500:未登录
-507:已收藏 | +| msg | str | 错误信息 | 默认为OK | +| message | str | 错误信息 | 默认为OK | +| data | array | 空 | | + +**示例:** + +收藏相簿`id=99184721` + +```shell +curl 'https:///api.vc.bilibili.com/user_plus/v1/Fav/add' \ +--data-urlencode 'fav_id=99184721' \ +--data-urlencode 'biz_type=2' \ +--data-urlencode 'csrf_token=xxx' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + + +```json +{ + "code": 0, + "msg": "OK", + "message": "OK", + "data": [] +} +``` + +
+ +## 取消收藏相簿 + +> https://api.vc.bilibili.com/user_plus/v1/Fav/delete + +*请求方式:POST* + +认证方式:Cookie(SESSDATA) + +**正文参数( application/x-www-form-urlencoded ):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ---------- | ---- | ------------------------ | ------ | ------------ | +| fav_id | num | 相簿id | 必要 | | +| biz_type | num | 2 | 必要 | 作用尚不明确 | +| csrf_token | str | CSRF Token(位于cookie) | 非必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ----- | -------- | --------------------------------------------- | +| code | num | 返回值 | 0:成功
-400:参数错误
-500:未登录 | +| msg | str | 错误信息 | 默认为OK | +| message | str | 错误信息 | 默认为OK | +| data | array | 空 | | + +**示例:** + +取消收藏相簿`id=99184721` + +```shell +curl 'https://api.vc.bilibili.com/user_plus/v1/Fav/delete' \ +--data-urlencode 'fav_id=99184721' \ +--data-urlencode 'biz_type=2' \ +--data-urlencode 'csrf_token=xxx' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + + +```json +{ + "code": 0, + "msg": "OK", + "message": "OK", + "data": [] +} +``` + +
\ No newline at end of file diff --git a/docs/album/activity_list.md b/docs/album/activity_list.md new file mode 100644 index 0000000000..adcb2cc272 --- /dev/null +++ b/docs/album/activity_list.md @@ -0,0 +1,152 @@ +# 相簿活动列表 + +- [获取相簿热门活动列表](#获取相簿热门活动列表) + +--- + +## 获取相簿热门活动列表 + +> https://api.vc.bilibili.com/photo_activity/v2/Activity/list + +*请求方式:GET* + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| --------- | ---- | -------- | ------ | --------------------------------------------- | +| type | num | 活动类型 | 非必要 | 0:全部
1:展示类
2:比赛类 | +| biz | num | 分区 | 非必要 | 0:全部
1:画友
2:摄影
默认为0 | +| page_num | num | 页码 | 非必要 | 默认为4 | +| page_size | num | 每页项数 | 非必要 | 默认为0 | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------ | +| code | num | 返回值 | 0:成功
1:参数错误 | +| msg | str | 错误信息 | 默认为success | +| message | str | 错误信息 | 默认为success | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----------- | ----- | ---------- | ---- | +| total_count | str | 总计活动数 | | +| items | array | 活动列表 | | + +`data`中的`items`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | ---------- | ---- | +| 0 | obj | 活动 1 | | +| n | obj | 活动 (n+1) | | +| …… | obj | …… | …… | + +`data`中的`items`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---------- | ---- | ------------- | ------------------------ | +| cover | str | 活动图片url | | +| title | str | 活动标题 | | +| link | str | 活动页面url | | +| type | num | 活动类型 | 1:展示类
2:比赛类 | +| biz | num | 所属分区 | 1:画友
2:摄影 | +| tag | str | 活动关联的TAG | | +| start_time | num | 开始时间 | 时间戳 | +| end_time | num | 结束时间 | 时间戳 | +| desc | str | 备注 | | +| desc_type | num | 活动状态 | 1:已结束
2:进行中 | + +**示例:** + +获取`画友`分区,全部类型的5条活动 + +```shell +curl -G 'https://api.vc.bilibili.com/photo_activity/v2/Activity/list' \ +--data-urlencode 'type=0' \ +--data-urlencode 'biz=1' \ +--data-urlencode 'page_num=0' \ +--data-urlencode 'page_size=5' +``` + +
+查看响应示例: + + +```json +{ + "code": 0, + "msg": "success", + "message": "success", + "data": { + "total_count": 21, + "items": [ + { + "cover": "http://i0.hdslb.com/bfs/vc/344d175cf88f217ce8bd0f004a2c5e770eff2e03.png", + "title": "#月饼拟人#创作大赛!丰厚奖励等你来拿!", + "link": "https://www.bilibili.com/read/cv1102416", + "type": 1, + "biz": 1, + "tag": "", + "start_time": 1535817600, + "end_time": 1540915200, + "desc": "已结束", + "desc_type": 1 + }, + { + "cover": "http://i0.hdslb.com/bfs/vc/63d48fbc37f0142a9c72e06ebc950d4089f881d6.png", + "title": "「ISLAND」同人绘画大赛", + "link": "https://www.bilibili.com/blackboard/activity-rkOlNomMQ.html", + "type": 2, + "biz": 1, + "tag": "ISLAND同人绘画", + "start_time": 1530720000, + "end_time": 1534435200, + "desc": "已结束", + "desc_type": 1 + }, + { + "cover": "http://i0.hdslb.com/bfs/vc/08d20bc6c10e1e310946ebaaf56c2c90c921644d.jpg", + "title": "我家大师兄脑子有坑同人绘画大赛", + "link": "https://www.bilibili.com/blackboard/activity-S1lV0Ot6M.html", + "type": 2, + "biz": 1, + "tag": "兄坑同人绘画大赛", + "start_time": 1525449600, + "end_time": 1528473600, + "desc": "已结束", + "desc_type": 1 + }, + { + "cover": "http://i0.hdslb.com/bfs/vc/4eb48398ec0824e96fc878235536f2e0b4a8aef5.jpg", + "title": "国宝复“活”计划", + "link": "https://www.bilibili.com/blackboard/activity-SJ4hL_UFz.html", + "type": 2, + "biz": 1, + "tag": "国宝复“活”计划", + "start_time": 1521388800, + "end_time": 1525017600, + "desc": "已结束", + "desc_type": 1 + }, + { + "cover": "http://i0.hdslb.com/bfs/vc/9068f91f62ea5a36cbafff263d7e47af99cc9836.jpg", + "title": "画师专访——管郁生", + "link": "https://www.bilibili.com/blackboard/interview-guanyusheng.html", + "type": 1, + "biz": 1, + "tag": "", + "start_time": 1517414400, + "end_time": 0, + "desc": "进行中", + "desc_type": 2 + } + ] + } +} +``` + +
\ No newline at end of file diff --git a/docs/album/info.md b/docs/album/info.md new file mode 100644 index 0000000000..8a1e46b813 --- /dev/null +++ b/docs/album/info.md @@ -0,0 +1,249 @@ +# 相簿基本信息 + +- [获取相簿详细信息](#获取相簿详细信息) + +--- + +## 获取相簿详细信息 + +>https://api.vc.bilibili.com/link_draw/v1/doc/detail + +*请求方式:GET* + +认证方式:Cookie(SESSDSTA) + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | ---- | ---------- | ------ | ---- | +| doc_id | num | 目标相簿id | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ----------------------------------- | +| code | num | 返回值 | 0:成功
110001:找不到目标相簿 | +| msg | str | 错误信息 | 默认为success | +| message | str | 错误信息 | 默认为success | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | -------- | ---- | +| user | obj | 作者信息 | | +| item | obj | 相簿信息 | | + +`data`中的`user`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------------ | ---- | ---------- | ---- | +| uid | num | 作者mid | | +| head_url | str | 头像url | | +| name | str | 昵称 | | +| vip | obj | 会员信息 | | +| upload_count | str | 相簿投稿数 | | + +`user`中的`vip`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------------- | ---- | ------------ | ------------------------------------------------- | +| vipType | num | 会员类型 | 0:无
1:月度大会员
2:年度及以上大会员 | +| vipDueDate | num | 会员到期时间 | 毫秒 时间戳 | +| dueRemark | str | 空 | 作用尚不明确 | +| accessStatus | num | 0 | 作用尚不明确 | +| vipStatus | num | 会员开通状态 | 0:无
1:有 | +| vipStatusWarn | str | 空 | 作用尚不明确 | +| themeType | num | 0 | 作用尚不明确 | +| label | obj | ? | 作用尚不明确 | + +`vip`中的`label`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | ---- | ------------ | +| path | str | 空 | 作用尚不明确 | + +`data`中的`item`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----------------- | ----- | ------------------ | ------------------------------------------------------------ | +| biz | num | 相簿分区 | 1:画友
2:摄影
3:日常 | +| doc_id | num | 相簿id | | +| poster_uid | num | 作者mid | | +| category | str | 子分区标识 | cos:cosplay
daily:日常
illustration:插画
comic:漫画
draw:其他
sifu:私服 | +| type | num | 相簿类型 | 0:原创
1:同人 | +| title | str | 标题 | | +| tags | array | 相簿TAG | | +| pictures | array | 相簿图片 | | +| source | null | | 作用尚不明确 | +| upload_time | str | 投稿时间(时间码) | YYYY-MM-DD hh:mm:ss | +| upload_timestamp | num | 投稿时间(时间戳) | | +| upload_time_text | str | 投稿时间(文本) | | +| description | str | 简介 | | +| role | null | | 作用尚不明确 | +| settings | obj | 权限配置 | | +| already_collected | num | 是否已收藏 | 需要登录(Cookie)
否则恒为0 | +| already_liked | num | 0 | 作用尚不明确 | +| user_status | num | 0 | 作用尚不明确 | +| at_control | str | 空 | 作用尚不明确 | +| view_count | num | 观看数 | | +| like_count | num | 0 | 作用尚不明确 | +| collect_count | num | 收藏数 | | +| verify_status | num | 1 | 作用尚不明确 | +| already_voted | num | 是否已点赞 | 需要登录(Cookie)
否则恒为0 | +| vote_count | num | 点赞数 | | +| comment_count | num | 评论数 | | + +`item`中的`tags`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | --------- | ---- | +| 0 | obj | TAG 1 | | +| n | obj | TAG (n+1) | | +| …… | obj | …… | …… | + +`item`中的`tags`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| -------- | ---- | --------------- | --------------- | +| tag | str | TAG名 | | +| type | num | 类型? | | +| category | str | TAG所属子分区名 | | +| link | str | 活动页面url | 是活动TAG有此项 | +| text | str | TAG名 | | +| name | str | TAG名 | | + +`item`中的`pictures`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | ---------- | ---- | +| 0 | obj | 图片 1 | | +| n | obj | 图片 (n+1) | | +| …… | obj | …… | …… | + +`item`中的`pictures`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---------- | ---- | -------- | ----------- | +| img_src | str | 图片url | | +| img_width | num | 图片宽度 | | +| img_height | num | 图片高度 | | +| img_size | num | 图片大小 | 单位为KByte | + +`item`中的`settings`对象: + +| 字段 | 类型 | 内容 | 备注 | +| -------------- | ---- | ------------ | ------------------------------------------------------------ | +| copy_forbidden | num | 禁止转载标志 | 0:不设置转载权限
1:开放授权-署名-非商用转载
2:作者授权-署名-非商用转载
3:禁止转载 | + +**示例:** + +查询相簿`id=99184721`的详细信息 + +```shell +curl -G 'https://api.vc.bilibili.com/link_draw/v1/doc/detail' \ +--data-urlencode 'doc_id=99184721' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + + +```json +{ + "code": 0, + "msg": "success", + "message": "success", + "data": { + "user": { + "uid": 813818, + "head_url": "https://i2.hdslb.com/bfs/face/26b12390399f3e82fb913922938f8a6662d28665.jpg", + "name": "QYS3", + "vip": { + "vipType": 2, + "vipDueDate": 1613750400000, + "dueRemark": "", + "accessStatus": 0, + "vipStatus": 1, + "vipStatusWarn": "", + "themeType": 0, + "label": { + "path": "" + } + }, + "upload_count": "171" + }, + "item": { + "biz": 1, + "doc_id": 99184721, + "poster_uid": 813818, + "category": "illustration", + "type": 1, + "title": "旅行", + "tags": [ + { + "tag": "魔女之旅", + "type": 4, + "category": "illustration", + "text": "魔女之旅", + "name": "魔女之旅" + }, + { + "tag": "伊蕾娜", + "type": 3, + "category": "illustration", + "text": "伊蕾娜", + "name": "伊蕾娜" + }, + { + "tag": "旅行", + "type": 3, + "category": "illustration", + "text": "旅行", + "name": "旅行" + }, + { + "tag": "魔女", + "type": 3, + "category": "illustration", + "text": "魔女", + "name": "魔女" + } + ], + "pictures": [ + { + "img_src": "https://i0.hdslb.com/bfs/album/d531e3dae34ef65b44ecdb2914d4cc4f5a4da998.jpg", + "img_width": 1236, + "img_height": 1600, + "img_size": 508 + } + ], + "source": null, + "upload_time": "2020-11-23 23:03:12", + "upload_timestamp": 1606143792, + "upload_time_text": "3天前", + "description": "伊蕾娜世界第一~!", + "role": null, + "settings": { + "copy_forbidden": 0 + }, + "already_collected": 0, + "already_liked": 0, + "user_status": 0, + "at_control": "", + "view_count": 143699, + "like_count": 0, + "collect_count": 54, + "verify_status": 1, + "already_voted": 0, + "vote_count": 2258, + "comment_count": 98 + } + } +} +``` + +
\ No newline at end of file diff --git a/docs/album/list.md b/docs/album/list.md new file mode 100644 index 0000000000..763e534369 --- /dev/null +++ b/docs/album/list.md @@ -0,0 +1,2442 @@ +# 相簿列表 + +- [获取画友首页列表](#获取画友首页列表) +- [获取摄影首页列表](#获取摄影首页列表) +- [获取画友列表](#获取画友列表) +- [获取摄影列表](#获取摄影列表) +- [获取指定用户的相簿列表](#获取指定用户的相簿列表) + +--- + +## 获取画友首页列表 + +> https://api.vc.bilibili.com/link_draw/v2/Doc/index + +*请求方式:GET* + +认证方式:Cookie(SESSDSTA) + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| --------- | ---- | -------- | ------ | ------------------------------------------- | +| type | str | 排序方式 | 必要 | recommend:推荐
hot:最热
new:最新 | +| page_num | num | 页码 | 非必要 | 默认为1 | +| page_size | num | 每页项数 | 非必要 | 默认为45 | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------ | +| code | num | 返回值 | 0:成功
1:参数错误 | +| msg | str | 错误信息 | 默认为success | +| message | str | 错误信息 | 默认为success | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----------- | ----- | ---------- | ---- | +| items | array | 相簿列表 | | +| total_count | num | 总计条目数 | | + +`data`中的`items`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | ---------- | ---- | +| 0 | obj | 相簿 1 | | +| n | obj | 相簿 (n+1) | | +| …… | obj | …… | …… | + +`data`中的`items`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | -------- | ---- | +| user | obj | 作者信息 | | +| item | obj | 相簿信息 | | + +`data`中的`items`数组中的对象中的`user`对象: + +| 字段 | 类型 | 内容 | 备注 | +| -------- | ---- | ------- | ---- | +| uid | num | 作者mid | | +| head_url | str | 头像url | | +| name | str | 昵称 | | + +`data`中的`items`数组中的对象中的`item`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------------- | ----- | ---------- | --------------------------------- | +| doc_id | num | 相簿id | | +| poster_uid | num | 作者mid | | +| pictures | array | 相簿图片 | | +| title | str | 标题 | | +| category | str | 子分区名 | | +| upload_time | num | 投稿时间 | 时间戳 | +| already_liked | num | 0 | 作用尚不明确 | +| already_voted | num | 是否已点赞 | 需要登录(Cookie)
否则恒为0 | + +`item`中的`pictures`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | ---------- | ---- | +| 0 | obj | 图片 1 | | +| n | obj | 图片 (n+1) | | +| …… | obj | …… | …… | + +`item`中的`pictures`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---------- | ---- | -------- | ---- | +| img_src | str | 图片url | | +| img_width | num | 图片宽度 | | +| img_height | num | 图片高度 | | + +**示例:** + +用按热度排序方式获取画友首页列表 + +```shell +curl -G 'https://api.vc.bilibili.com/link_draw/v2/Doc/index' \ +--data-urlencode 'type=hot' \ +--data-urlencode 'page_num=1' \ +--data-urlencode 'page_size=5' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "msg": "success", + "message": "success", + "data": { + "items": [ + { + "user": { + "uid": 813818, + "head_url": "http://i2.hdslb.com/bfs/face/26b12390399f3e82fb913922938f8a6662d28665.jpg", + "name": "QYS3" + }, + "item": { + "doc_id": 99184721, + "poster_uid": 813818, + "pictures": [ + { + "img_src": "http://i0.hdslb.com/bfs/album/d531e3dae34ef65b44ecdb2914d4cc4f5a4da998.jpg", + "img_width": 1236, + "img_height": 1600, + "img_size": 508 + } + ], + "title": "旅行", + "category": "illustration", + "upload_time": 1606143792, + "already_liked": 0, + "already_voted": 1 + } + }, + { + "user": { + "uid": 813818, + "head_url": "http://i2.hdslb.com/bfs/face/26b12390399f3e82fb913922938f8a6662d28665.jpg", + "name": "QYS3" + }, + "item": { + "doc_id": 99456663, + "poster_uid": 813818, + "pictures": [ + { + "img_src": "http://i0.hdslb.com/bfs/album/cb202244684de733f026240b60ac28bb32ba39fd.jpg", + "img_width": 849, + "img_height": 1200, + "img_size": 513 + }, + { + "img_src": "http://i0.hdslb.com/bfs/album/30b8fb29d4ab3237018be7aeddc678fff9860885.jpg", + "img_width": 849, + "img_height": 1200, + "img_size": 513 + } + ], + "title": "大头", + "category": "illustration", + "upload_time": 1606405574, + "already_liked": 0, + "already_voted": 0 + } + }, + { + "user": { + "uid": 2244861, + "head_url": "http://i2.hdslb.com/bfs/face/7fd263548d587465b9f2ad5797e483b6c9182941.jpg", + "name": "Slancx" + }, + "item": { + "doc_id": 186801, + "poster_uid": 2244861, + "pictures": [ + { + "img_src": "http://i0.hdslb.com/bfs/vc/cd9443a37ce08ec5b3df65166107f7cae23172e3.jpg", + "img_width": 1939, + "img_height": 2841, + "img_size": 1824 + }, + { + "img_src": "http://i0.hdslb.com/bfs/vc/8c282a9d76372c4ff3cc27b92fbeb2feb6b45767.jpg", + "img_width": 1954, + "img_height": 2902, + "img_size": 1996 + }, + { + "img_src": "http://i0.hdslb.com/bfs/vc/a9e0163001ce17f996b205f95627ea550b5793db.jpg", + "img_width": 3778, + "img_height": 5728, + "img_size": 6070 + } + ], + "title": "边边封面", + "category": "illustration", + "upload_time": 1504255746, + "already_liked": 0, + "already_voted": 0 + } + }, + { + "user": { + "uid": 751036, + "head_url": "http://i2.hdslb.com/bfs/face/be1cf20d37cd104b32e2e935fb2ef65bfe09e2bc.jpg", + "name": "洛书23333333" + }, + "item": { + "doc_id": 1091581, + "poster_uid": 751036, + "pictures": [ + { + "img_src": "http://i0.hdslb.com/bfs/album/e78d3f6bbc487a003a3a72677c1975f781ac2090.jpg", + "img_width": 1289, + "img_height": 1108, + "img_size": 188 + } + ], + "title": "青鸟", + "category": "illustration", + "upload_time": 1512041349, + "already_liked": 0, + "already_voted": 0 + } + }, + { + "user": { + "uid": 21833522, + "head_url": "http://i2.hdslb.com/bfs/face/9037fc1027d780083ecc2e818b512b69b9267e7c.jpg", + "name": "欧阳鹏杰-OY" + }, + "item": { + "doc_id": 835730, + "poster_uid": 21833522, + "pictures": [ + { + "img_src": "http://i0.hdslb.com/bfs/vc/acb88974c768aa24c092927ae59291023d55f175.jpg", + "img_width": 1200, + "img_height": 832, + "img_size": 914 + }, + { + "img_src": "http://i0.hdslb.com/bfs/vc/9dff2455d595835c8a214d73f3cf10633304acbe.jpg", + "img_width": 3000, + "img_height": 2000, + "img_size": 2305 + }, + { + "img_src": "http://i0.hdslb.com/bfs/vc/643f775358085c55b598b1d6f5941ea0114344ea.jpg", + "img_width": 1494, + "img_height": 1000, + "img_size": 475 + } + ], + "title": "OY超写实钢笔画:轨迹", + "category": "illustration", + "upload_time": 1509533004, + "already_liked": 0, + "already_voted": 0 + } + } + ] + } +} +``` + +
+ +## 获取摄影首页列表 + +> https://api.vc.bilibili.com/link_draw/v2/Photo/index + +*请求方式:GET* + +认证方式:Cookie(SESSDSTA) + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| --------- | ---- | -------- | ------ | --------------- | +| type | str | 排序方式 | 必要 | recommend:推荐 | +| page_num | num | 页码 | 非必要 | 默认为1 | +| page_size | num | 每页项数 | 非必要 | 默认为45 | + +**json回复:** + +见[获取画友首页列表](#获取画友首页列表)中的响应内容 + +**示例:** + +用推荐方式获取画友首页列表 + +```shell +curl -G 'https://api.vc.bilibili.com/link_draw/v2/Photo/index' \ +--data-urlencode 'type=recommend' \ +--data-urlencode 'page_num=1' \ +--data-urlencode 'page_size=5' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "msg": "success", + "message": "success", + "data": { + "items": [ + { + "user": { + "uid": 2487587, + "head_url": "https://i0.hdslb.com/bfs/face/4cd0d05708c4826737eef2cf3c5cb3c5361a2a2a.jpg", + "name": "是茶茶茶茶子呀" + }, + "item": { + "doc_id": 1164937, + "poster_uid": 2487587, + "pictures": [ + { + "img_src": "https://i0.hdslb.com/bfs/album/07019ac09fa0bc63a6403eb28db1222792ab4768.jpg", + "img_width": 2048, + "img_height": 3623, + "img_size": 3501 + }, + { + "img_src": "https://i0.hdslb.com/bfs/album/469cdb91f88822cbaf9639b2fa12b0a481e3ac60.jpg", + "img_width": 2048, + "img_height": 3072, + "img_size": 3173 + }, + { + "img_src": "https://i0.hdslb.com/bfs/album/61d5a369f93debbc3187026fd35df8f994156f3b.jpg", + "img_width": 2048, + "img_height": 1365, + "img_size": 1788 + }, + { + "img_src": "https://i0.hdslb.com/bfs/album/39f4bf47a96842a5834e5a49420fbf960bc7f5b7.jpg", + "img_width": 2048, + "img_height": 1365, + "img_size": 2046 + }, + { + "img_src": "https://i0.hdslb.com/bfs/album/4f14ad7008f0b5ce3a99c4234543f8ee05ecbfd8.jpg", + "img_width": 2048, + "img_height": 1365, + "img_size": 2154 + }, + { + "img_src": "https://i0.hdslb.com/bfs/album/6aebb9afb4139b8a83da8f276a20ab9201b29bb9.jpg", + "img_width": 2048, + "img_height": 3072, + "img_size": 3109 + }, + { + "img_src": "https://i0.hdslb.com/bfs/album/1942e0ffd95283898b0ee0fa5e236cdf146cf492.jpg", + "img_width": 2048, + "img_height": 1365, + "img_size": 1342 + }, + { + "img_src": "https://i0.hdslb.com/bfs/album/02e83961560492ae947347b2c49ae0aad305790b.jpg", + "img_width": 2048, + "img_height": 1365, + "img_size": 1537 + }, + { + "img_src": "https://i0.hdslb.com/bfs/album/8cadaf8660136fae7f75cb35b56fd6b39fe4913c.jpg", + "img_width": 2048, + "img_height": 3072, + "img_size": 3430 + }, + { + "img_src": "https://i0.hdslb.com/bfs/album/1ac1fdbb883b68a65d5e575a43c68c56afa98b91.jpg", + "img_width": 2048, + "img_height": 3072, + "img_size": 4446 + }, + { + "img_src": "https://i0.hdslb.com/bfs/album/352242d86a6689fb9935a76360ddc010edc844ea.jpg", + "img_width": 2048, + "img_height": 1365, + "img_size": 1443 + } + ], + "title": "COS 明日香", + "category": "cos", + "upload_time": 1512184831, + "already_liked": 0, + "already_voted": 0 + } + }, + { + "user": { + "uid": 13104471, + "head_url": "https://i1.hdslb.com/bfs/face/af36442eafccc5b743cc1aff7922d84fd9279005.jpg", + "name": "Shika小鹿鹿鹿" + }, + "item": { + "doc_id": 1225984, + "poster_uid": 13104471, + "pictures": [ + { + "img_src": "https://i0.hdslb.com/bfs/album/6ba1d9a136566c21a3950c8707a6c3b3121b81bb.jpg", + "img_width": 1728, + "img_height": 1080, + "img_size": 315 + }, + { + "img_src": "https://i0.hdslb.com/bfs/album/be5d659cde3b17c8ec60db503e33769a6a0183ae.jpg", + "img_width": 1080, + "img_height": 1620, + "img_size": 348 + }, + { + "img_src": "https://i0.hdslb.com/bfs/album/14676962db356877a81b175024da24230305688e.jpg", + "img_width": 1080, + "img_height": 1620, + "img_size": 256 + }, + { + "img_src": "https://i0.hdslb.com/bfs/album/ee3f7b04f17c2b612311b145a7dde5bf782e91ae.jpg", + "img_width": 1728, + "img_height": 1080, + "img_size": 242 + }, + { + "img_src": "https://i0.hdslb.com/bfs/album/88e88b000379d0e51346e74d84dfc3952f17d34b.jpg", + "img_width": 1080, + "img_height": 1620, + "img_size": 312 + }, + { + "img_src": "https://i0.hdslb.com/bfs/album/16342927703a298024fce2e0a16018bdf9f3e634.jpg", + "img_width": 1728, + "img_height": 1080, + "img_size": 318 + }, + { + "img_src": "https://i0.hdslb.com/bfs/album/1098a86a0b186840b4eec74cae6a92b16dcfaf5c.jpg", + "img_width": 1728, + "img_height": 1080, + "img_size": 288 + }, + { + "img_src": "https://i0.hdslb.com/bfs/album/7bd01b575e391f218a4c86e04964fab514aed2b7.jpg", + "img_width": 1728, + "img_height": 1080, + "img_size": 336 + }, + { + "img_src": "https://i0.hdslb.com/bfs/album/2aca94992789eb6ea35a4a398f0f98c83ac48449.jpg", + "img_width": 1620, + "img_height": 1080, + "img_size": 302 + } + ], + "title": "清月之辉——阎魔", + "category": "cos", + "upload_time": 1512472775, + "already_liked": 0, + "already_voted": 0 + } + }, + { + "user": { + "uid": 2651372, + "head_url": "https://i1.hdslb.com/bfs/face/06285d510887ab8f08f3639de021273d31aa6e9f.jpg", + "name": "假酒澡堂" + }, + "item": { + "doc_id": 1161521, + "poster_uid": 2651372, + "pictures": [ + { + "img_src": "https://i0.hdslb.com/bfs/album/41b7f22f31faedf0e6fb7ea694e5cd460ed01744.jpg", + "img_width": 2667, + "img_height": 4000, + "img_size": 7063 + }, + { + "img_src": "https://i0.hdslb.com/bfs/album/66af6e9685516820a92aa959caf47776afd95899.jpg", + "img_width": 4000, + "img_height": 2667, + "img_size": 5164 + }, + { + "img_src": "https://i0.hdslb.com/bfs/album/f69af7f3802aec88616e3d0567930eb74a0c0b49.jpg", + "img_width": 4000, + "img_height": 2667, + "img_size": 6863 + }, + { + "img_src": "https://i0.hdslb.com/bfs/album/cabd2bd20c2b47bcebb8a33c2f645ecbfe610aac.jpg", + "img_width": 6480, + "img_height": 4320, + "img_size": 13374 + }, + { + "img_src": "https://i0.hdslb.com/bfs/album/2780c80797cfb709d3d00b884f0c8c491c2fb33e.jpg", + "img_width": 2667, + "img_height": 4000, + "img_size": 5553 + }, + { + "img_src": "https://i0.hdslb.com/bfs/album/c221300d9c9949eb2654dc65288437d2509716e9.jpg", + "img_width": 6480, + "img_height": 4320, + "img_size": 14213 + }, + { + "img_src": "https://i0.hdslb.com/bfs/album/be4710e76452d48aaae6a45e4ad813248a79efe2.jpg", + "img_width": 4000, + "img_height": 2667, + "img_size": 4733 + }, + { + "img_src": "https://i0.hdslb.com/bfs/album/c87cabbfcdca90e9136d7c66e4b9b9ec586af957.jpg", + "img_width": 4000, + "img_height": 2667, + "img_size": 5654 + }, + { + "img_src": "https://i0.hdslb.com/bfs/album/65892d474ae09290f4e7f64461f0c21b4ee4664c.jpg", + "img_width": 4000, + "img_height": 2667, + "img_size": 4657 + } + ], + "title": "奥雅之光-异梦守护者", + "category": "cos", + "upload_time": 1512168749, + "already_liked": 0, + "already_voted": 0 + } + }, + { + "user": { + "uid": 7732095, + "head_url": "https://i0.hdslb.com/bfs/face/d0c465d55d457bd15760651e2eb7f9278055b40c.jpg", + "name": "超高校级的鲷鱼烧" + }, + "item": { + "doc_id": 1159580, + "poster_uid": 7732095, + "pictures": [ + { + "img_src": "https://i0.hdslb.com/bfs/album/256ee4ccd4f3ed859fd71702513a345c2b4beeb4.jpg", + "img_width": 2159, + "img_height": 1569, + "img_size": 801 + }, + { + "img_src": "https://i0.hdslb.com/bfs/album/c76707f83078c61d48a8ff1ee2888542bb64cef3.jpg", + "img_width": 1480, + "img_height": 1973, + "img_size": 617 + }, + { + "img_src": "https://i0.hdslb.com/bfs/album/a363e8ac04a90d4aecb567ff278a88b051886122.jpg", + "img_width": 1620, + "img_height": 2160, + "img_size": 876 + }, + { + "img_src": "https://i0.hdslb.com/bfs/album/06bc09d1927ba65e7210650e0cfe887d37b7871b.jpg", + "img_width": 1620, + "img_height": 2160, + "img_size": 885 + }, + { + "img_src": "https://i0.hdslb.com/bfs/album/ea5e47d7c99b1be8f799b1bf356ef81d58926a0c.jpg", + "img_width": 2160, + "img_height": 1620, + "img_size": 701 + } + ], + "title": "lolita私影", + "category": "sifu", + "upload_time": 1512148075, + "already_liked": 0, + "already_voted": 0 + } + }, + { + "user": { + "uid": 65579886, + "head_url": "https://i2.hdslb.com/bfs/face/b5f66542be47c508dd425d13fb7245655bc02413.jpg", + "name": "丹砂Scorpius" + }, + "item": { + "doc_id": 1177247, + "poster_uid": 65579886, + "pictures": [ + { + "img_src": "https://i0.hdslb.com/bfs/album/53b14da232bb4aacc7bfeeba0caf8ebb1d9f0395.jpg", + "img_width": 3000, + "img_height": 2001, + "img_size": 3959 + }, + { + "img_src": "https://i0.hdslb.com/bfs/album/58f2fbc6c285571fa31cc032fb790fae5f8ffac0.jpg", + "img_width": 3000, + "img_height": 2001, + "img_size": 4106 + }, + { + "img_src": "https://i0.hdslb.com/bfs/album/018f4ddacf1ae792d2e6169ee394f336155d369e.jpg", + "img_width": 4000, + "img_height": 2668, + "img_size": 6534 + }, + { + "img_src": "https://i0.hdslb.com/bfs/album/874e31e7e3d6a3653c797583e6643d5d778d7a2c.jpg", + "img_width": 3000, + "img_height": 2001, + "img_size": 5484 + }, + { + "img_src": "https://i0.hdslb.com/bfs/album/7ff9b60bcecd80b5923194dee4de29251b37ce2c.jpg", + "img_width": 2000, + "img_height": 2998, + "img_size": 5969 + }, + { + "img_src": "https://i0.hdslb.com/bfs/album/0926b507b8e6ff11951b36732e9a089d49836e0e.jpg", + "img_width": 2000, + "img_height": 3000, + "img_size": 3671 + }, + { + "img_src": "https://i0.hdslb.com/bfs/album/c55994fbf1e8a20425066bd6f4acc4347c197d11.jpg", + "img_width": 3000, + "img_height": 2001, + "img_size": 3069 + }, + { + "img_src": "https://i0.hdslb.com/bfs/album/03e621a23626d8d9f584a0d0663e1a77bd2832f1.jpg", + "img_width": 3000, + "img_height": 2001, + "img_size": 4339 + } + ], + "title": "天涯明月刀ol明月心", + "category": "cos", + "upload_time": 1512214505, + "already_liked": 0, + "already_voted": 0 + } + } + ], + "total_count": 200 + } +} +``` + +
+ +## 获取画友列表 + +> https://api.vc.bilibili.com/link_draw/v2/Doc/list + +*请求方式:GET* + +认证方式:Cookie(SESSDSTA) + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| --------- | ---- | -------- | ------ | ------------------------------------------------------------ | +| category | str | 类型 | 必要 | all:全部
illustration:插画
comic:漫画
draw:其他 | +| type | str | 排序方式 | 必要 | hot:最热
new:最新 | +| page_num | num | 页码 | 非必要 | 默认为1 | +| page_size | num | 每页项数 | 非必要 | 默认为45 | + +**json回复:** + +见[获取画友首页列表](#获取画友首页列表)中的响应内容 + +**示例:** + +用按热度排序方式获取`全部`类型的画友列表 + +```shell +curl -G 'https://api.vc.bilibili.com/link_draw/v2/Doc/list' \ +--data-urlencode 'category=all' \ +--data-urlencode 'type=hot' \ +--data-urlencode 'page_num=1' \ +--data-urlencode 'page_size=5' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "msg": "success", + "message": "success", + "data": { + "total_count": 500, + "items": [ + { + "user": { + "uid": 1403138, + "head_url": "https://i0.hdslb.com/bfs/face/member/noface.jpg", + "name": "莉莎娜" + }, + "item": { + "doc_id": 99421434, + "poster_uid": 1403138, + "pictures": [ + { + "img_src": "https://i0.hdslb.com/bfs/album/5191163a4f1a2e567adda32f4dd6d4c024455d8d.png", + "img_width": 2286, + "img_height": 1760, + "img_size": 4147 + }, + { + "img_src": "https://i0.hdslb.com/bfs/album/74943ba725ee352d95e8356d9c7f823b329e51bf.png", + "img_width": 812, + "img_height": 1218, + "img_size": 885 + }, + { + "img_src": "https://i0.hdslb.com/bfs/album/c0b17e496963203fb966ea046bddcc0d26dee066.png", + "img_width": 812, + "img_height": 1218, + "img_size": 892 + }, + { + "img_src": "https://i0.hdslb.com/bfs/album/099327c21f789294c6e8f2e9de9a280bed80eea5.png", + "img_width": 812, + "img_height": 1216, + "img_size": 895 + }, + { + "img_src": "https://i0.hdslb.com/bfs/album/4ae0365073300541ab34b214499a7e4e79d6d205.png", + "img_width": 812, + "img_height": 1216, + "img_size": 875 + }, + { + "img_src": "https://i0.hdslb.com/bfs/album/5912fd5dc436580f3d5d59e089c4119da532635a.png", + "img_width": 812, + "img_height": 1218, + "img_size": 921 + }, + { + "img_src": "https://i0.hdslb.com/bfs/album/6e0ac1a10d1e55439cb8347df8948d263321cc42.png", + "img_width": 812, + "img_height": 1218, + "img_size": 971 + }, + { + "img_src": "https://i0.hdslb.com/bfs/album/fa4738bfda93079e9db0df0bdd67ecf316eba099.png", + "img_width": 812, + "img_height": 1218, + "img_size": 860 + }, + { + "img_src": "https://i0.hdslb.com/bfs/album/d841f61d1ffdcdd8ae0831307c6479f3b8a2c803.png", + "img_width": 812, + "img_height": 1216, + "img_size": 839 + }, + { + "img_src": "https://i0.hdslb.com/bfs/album/685b75cff31f98af4881e3c1af5f58703ef8780e.png", + "img_width": 812, + "img_height": 1216, + "img_size": 928 + }, + { + "img_src": "https://i0.hdslb.com/bfs/album/2deb81f4813843c628a0cfbd3fe033e3f70ddd95.png", + "img_width": 812, + "img_height": 1218, + "img_size": 932 + }, + { + "img_src": "https://i0.hdslb.com/bfs/album/d93d03bc4f17ef4bf684f8eb8b0f48ef4c52f204.png", + "img_width": 812, + "img_height": 1218, + "img_size": 875 + }, + { + "img_src": "https://i0.hdslb.com/bfs/album/06e00c35e198de27a69a00284fb99b1ca6b77ca0.png", + "img_width": 812, + "img_height": 1216, + "img_size": 991 + }, + { + "img_src": "https://i0.hdslb.com/bfs/album/f1c18fd5cc062623d0b7789fc20ee5938aa83c37.png", + "img_width": 846, + "img_height": 725, + "img_size": 877 + }, + { + "img_src": "https://i0.hdslb.com/bfs/album/7f937d022f34f72fd9c7dcf25122671b9d6c87b4.png", + "img_width": 847, + "img_height": 733, + "img_size": 896 + }, + { + "img_src": "https://i0.hdslb.com/bfs/album/5e693c5d3b995d5553357b2b2e270ccc68562f91.png", + "img_width": 848, + "img_height": 740, + "img_size": 967 + }, + { + "img_src": "https://i0.hdslb.com/bfs/album/e8f1574af6244f8f4df5876f2bce4a9b03b02021.png", + "img_width": 848, + "img_height": 741, + "img_size": 1181 + }, + { + "img_src": "https://i0.hdslb.com/bfs/album/ceca23740750a545b26c2b35b12d357e24b887af.png", + "img_width": 856, + "img_height": 748, + "img_size": 1246 + }, + { + "img_src": "https://i0.hdslb.com/bfs/album/98439a15f2a8fdaa16c20b18d436894f2a667969.png", + "img_width": 837, + "img_height": 745, + "img_size": 1248 + }, + { + "img_src": "https://i0.hdslb.com/bfs/album/cda219582d4bc824a0f3b276944bb440f94c3365.jpg", + "img_width": 550, + "img_height": 441, + "img_size": 53 + } + ], + "title": "ufotable 剧场版", + "category": "draw", + "upload_time": 1606386642, + "already_liked": 0, + "already_voted": 0 + } + }, + { + "user": { + "uid": 5030761, + "head_url": "https://i0.hdslb.com/bfs/face/2feef28d962b0e5c8bbd573cffe84d5e13277747.jpg", + "name": "深井玑" + }, + "item": { + "doc_id": 3674543, + "poster_uid": 5030761, + "pictures": [ + { + "img_src": "https://i0.hdslb.com/bfs/album/c52e9b3a1fa307095cac0e82f5932baba4f0a286.png", + "img_width": 6142, + "img_height": 4724, + "img_size": 5314 + } + ], + "title": "小02", + "category": "illustration", + "upload_time": 1524970836, + "already_liked": 0, + "already_voted": 0 + } + }, + { + "user": { + "uid": 401154, + "head_url": "https://i1.hdslb.com/bfs/face/4c57866c6c8f21ff2fc8577369a613ed8397fae8.jpg", + "name": "oO大黄Oo" + }, + "item": { + "doc_id": 979620, + "poster_uid": 401154, + "pictures": [ + { + "img_src": "https://i0.hdslb.com/bfs/vc/8f5342382b5c92a14cd37f93e887124813ba2163.jpg", + "img_width": 1920, + "img_height": 1051, + "img_size": 549 + } + ], + "title": "八云家的早晨", + "category": "illustration", + "upload_time": 1510916676, + "already_liked": 0, + "already_voted": 0 + } + }, + { + "user": { + "uid": 21833522, + "head_url": "https://i2.hdslb.com/bfs/face/9037fc1027d780083ecc2e818b512b69b9267e7c.jpg", + "name": "欧阳鹏杰-OY" + }, + "item": { + "doc_id": 663050, + "poster_uid": 21833522, + "pictures": [ + { + "img_src": "https://i0.hdslb.com/bfs/vc/7b20f041ad7c04bbaf8c54ba520be6fd4953583e.jpg", + "img_width": 770, + "img_height": 999, + "img_size": 798 + }, + { + "img_src": "https://i0.hdslb.com/bfs/vc/0710b08b54013b06249170e8adf08b41a41030aa.jpg", + "img_width": 1024, + "img_height": 1024, + "img_size": 475 + }, + { + "img_src": "https://i0.hdslb.com/bfs/vc/09f168697210ce4ff62df3f0f1284574795ea96b.png", + "img_width": 863, + "img_height": 1283, + "img_size": 1257 + } + ], + "title": "OY手绘:白玫瑰", + "category": "illustration", + "upload_time": 1507952704, + "already_liked": 0, + "already_voted": 0 + } + } + ] + } +} +``` + +
+ +## 获取摄影列表 + +> https://api.vc.bilibili.com/link_draw/v2/Photo/list + +*请求方式:GET* + +认证方式:Cookie(SESSDSTA) + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| --------- | ---- | -------- | ------ | --------------------------- | +| category | str | 类型 | 必要 | cos:Cosplay
sifu:私服 | +| type | str | 排序方式 | 必要 | hot:最热
new:最新 | +| page_num | num | 页码 | 非必要 | 默认为1 | +| page_size | num | 每页项数 | 非必要 | 默认为45 | + +**json回复:** + +见[获取画友首页列表](#获取画友首页列表)中的响应内容 + +**示例:** + +用按热度排序方式获取`Cosplay`类型的摄影列表 + +```shell +curl -G 'https://api.vc.bilibili.com/link_draw/v2/Photo/list' \ +--data-urlencode 'category=cos' \ +--data-urlencode 'type=hot' \ +--data-urlencode 'page_num=1' \ +--data-urlencode 'page_size=5' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "msg": "success", + "message": "success", + "data": { + "total_count": 500, + "items": [ + { + "user": { + "uid": 639050, + "head_url": "http://i0.hdslb.com/bfs/face/cb5ea5f15e4503cc26598bd307faa2a5413f914f.jpg", + "name": "Mayuri阮陌" + }, + "item": { + "doc_id": 1207334, + "poster_uid": 639050, + "pictures": [ + { + "img_src": "http://i0.hdslb.com/bfs/album/323049c9389d31525ab301e22915a3343172216e.jpg", + "img_width": 969, + "img_height": 599, + "img_size": 210 + }, + { + "img_src": "http://i0.hdslb.com/bfs/album/3e2fb000f8865092f378a480ab454fea3aa09380.jpg", + "img_width": 1920, + "img_height": 2880, + "img_size": 1369 + }, + { + "img_src": "http://i0.hdslb.com/bfs/album/b3aa55a8529935692be9a2d9e0ccf65e9bae6d87.jpg", + "img_width": 1920, + "img_height": 2880, + "img_size": 520 + }, + { + "img_src": "http://i0.hdslb.com/bfs/album/90a1b083e7d1c876aa6a82cf6440d11e84d8b4c3.jpg", + "img_width": 1920, + "img_height": 2880, + "img_size": 1442 + }, + { + "img_src": "http://i0.hdslb.com/bfs/album/eb1af3d84f2238ca63717a5c7e10a23d55d577c7.jpg", + "img_width": 1920, + "img_height": 2880, + "img_size": 1155 + }, + { + "img_src": "http://i0.hdslb.com/bfs/album/69bae275fce8d85cc1822cd520675281fa8f89a9.jpg", + "img_width": 1920, + "img_height": 2880, + "img_size": 1606 + }, + { + "img_src": "http://i0.hdslb.com/bfs/album/fbb77786fd531d081ea2867ae93cc1231326da58.jpg", + "img_width": 1920, + "img_height": 2880, + "img_size": 1329 + } + ], + "title": "式雪鸟", + "category": "cos", + "upload_time": 1512360622, + "already_liked": 0, + "already_voted": 0 + } + }, + { + "user": { + "uid": 55183010, + "head_url": "http://i0.hdslb.com/bfs/face/9484cb85e2f3acc4fcc953deab4090424b5a5aa3.jpg", + "name": "HaneAme雨波" + }, + "item": { + "doc_id": 99103637, + "poster_uid": 55183010, + "pictures": [ + { + "img_src": "http://i0.hdslb.com/bfs/album/99cfb9601146d85622d0950b4689e2016e827ca6.jpg", + "img_width": 1366, + "img_height": 2048, + "img_size": 395 + } + ], + "title": "雨波 cos少女前线 OTS14 cos", + "category": "cos", + "upload_time": 1606070733, + "already_liked": 0, + "already_voted": 0 + } + }, + { + "user": { + "uid": 55183010, + "head_url": "http://i0.hdslb.com/bfs/face/9484cb85e2f3acc4fcc953deab4090424b5a5aa3.jpg", + "name": "HaneAme雨波" + }, + "item": { + "doc_id": 99103785, + "poster_uid": 55183010, + "pictures": [ + { + "img_src": "http://i0.hdslb.com/bfs/album/bfb54c1ef7b9891ab458f2171fb1c115b8c94147.jpg", + "img_width": 1366, + "img_height": 2048, + "img_size": 601 + }, + { + "img_src": "http://i0.hdslb.com/bfs/album/2e8fd0d327cabc6ff9aa3fdc7f21d12949cd3774.jpg", + "img_width": 1366, + "img_height": 2048, + "img_size": 383 + }, + { + "img_src": "http://i0.hdslb.com/bfs/album/82050a1badfd2cce0e3888b0de501da8d0052285.jpg", + "img_width": 2048, + "img_height": 1366, + "img_size": 445 + }, + { + "img_src": "http://i0.hdslb.com/bfs/album/25223cd3d5bb7e4e96bdf5dded8538e9737762c4.jpg", + "img_width": 1366, + "img_height": 2048, + "img_size": 497 + } + ], + "title": "雨波 cos 英雄联盟阿狸KDA cos", + "category": "cos", + "upload_time": 1606071173, + "already_liked": 0, + "already_voted": 0 + } + }, + { + "user": { + "uid": 12429622, + "head_url": "http://i2.hdslb.com/bfs/face/af7fd8dfba51c0735303a381e1d7115c6dd13ad5.jpg", + "name": "ayaco_" + }, + "item": { + "doc_id": 6029076, + "poster_uid": 12429622, + "pictures": [ + { + "img_src": "http://i0.hdslb.com/bfs/album/41bd20d921f8310243856665ee15c9f4a2dca89a.jpg", + "img_width": 1080, + "img_height": 720, + "img_size": 775 + }, + { + "img_src": "http://i0.hdslb.com/bfs/album/e6f7ea5b8f74d97239d307db43851341a802ee58.jpg", + "img_width": 591, + "img_height": 5672, + "img_size": 2714 + }, + { + "img_src": "http://i0.hdslb.com/bfs/album/af1795fb3873202f4668d0a598c36371f4b0addb.jpg", + "img_width": 591, + "img_height": 5641, + "img_size": 2305 + }, + { + "img_src": "http://i0.hdslb.com/bfs/album/15cf752ba3c3568828c5245cedd21d74b05b79cc.jpg", + "img_width": 591, + "img_height": 5602, + "img_size": 2158 + }, + { + "img_src": "http://i0.hdslb.com/bfs/album/6b19e916ad10e167503d1e002211cf84457f780b.jpg", + "img_width": 1080, + "img_height": 720, + "img_size": 571 + }, + { + "img_src": "http://i0.hdslb.com/bfs/album/a92b4286a1322c1315a18520af27759ee13bee69.jpg", + "img_width": 591, + "img_height": 887, + "img_size": 580 + }, + { + "img_src": "http://i0.hdslb.com/bfs/album/104001f3ea13753f5a74ca40f302c8bf82fd75ee.jpg", + "img_width": 591, + "img_height": 887, + "img_size": 479 + }, + { + "img_src": "http://i0.hdslb.com/bfs/album/6edb8fe0835c2ab284012889abe5306ed0122eb1.jpg", + "img_width": 1080, + "img_height": 720, + "img_size": 622 + }, + { + "img_src": "http://i0.hdslb.com/bfs/album/ef1be9ab93fae60f5425c2a5e6411bdb72a16bee.jpg", + "img_width": 591, + "img_height": 887, + "img_size": 389 + }, + { + "img_src": "http://i0.hdslb.com/bfs/album/7250c928a6458cd30face9403889c8bb9eda19ef.jpg", + "img_width": 1080, + "img_height": 635, + "img_size": 550 + }, + { + "img_src": "http://i0.hdslb.com/bfs/album/34439287647262eb80d6d4f16f38b4801f32c193.jpg", + "img_width": 591, + "img_height": 887, + "img_size": 472 + }, + { + "img_src": "http://i0.hdslb.com/bfs/album/253325d97fce756812a73eb609d8e082bf1eae12.jpg", + "img_width": 1080, + "img_height": 720, + "img_size": 576 + }, + { + "img_src": "http://i0.hdslb.com/bfs/album/00a05300453d0b14e44ba2051cc3714dabc46fd1.jpg", + "img_width": 1080, + "img_height": 720, + "img_size": 1047 + }, + { + "img_src": "http://i0.hdslb.com/bfs/album/1416e50ce1ab2e364212ebb2503cec247ca8642d.jpg", + "img_width": 1080, + "img_height": 720, + "img_size": 582 + }, + { + "img_src": "http://i0.hdslb.com/bfs/album/23661c4843e4c1d32aa7432683153be3813d771a.jpg", + "img_width": 591, + "img_height": 887, + "img_size": 372 + }, + { + "img_src": "http://i0.hdslb.com/bfs/album/161753dced7278876055e38114e3773106dbedf5.jpg", + "img_width": 4743, + "img_height": 3162, + "img_size": 1395 + }, + { + "img_src": "http://i0.hdslb.com/bfs/album/224ff973a91566b3dc364fde122e71520b56fdc6.jpg", + "img_width": 591, + "img_height": 887, + "img_size": 432 + }, + { + "img_src": "http://i0.hdslb.com/bfs/album/6495534c72147d512c79b4c2bbc06011635d4913.jpg", + "img_width": 591, + "img_height": 886, + "img_size": 453 + }, + { + "img_src": "http://i0.hdslb.com/bfs/album/0474e1479a0228cc6e97891f0f4d1cdbc1370222.jpg", + "img_width": 591, + "img_height": 887, + "img_size": 370 + }, + { + "img_src": "http://i0.hdslb.com/bfs/album/5a19599960129f2060c125e3896d20dccf5a6f25.jpg", + "img_width": 591, + "img_height": 887, + "img_size": 367 + } + ], + "title": "剑网3cos明教成女", + "category": "cos", + "upload_time": 1532692182, + "already_liked": 0, + "already_voted": 0 + } + }, + { + "user": { + "uid": 25000899, + "head_url": "http://i2.hdslb.com/bfs/face/4017d03cfe42da7a0c93277cb46fb5a47a9b2415.jpg", + "name": "狩子和光哥" + }, + "item": { + "doc_id": 13690635, + "poster_uid": 25000899, + "pictures": [ + { + "img_src": "http://i0.hdslb.com/bfs/album/5f497ae7b064c5e323ad1e008b0068d3fb95b3f0.jpg", + "img_width": 1908, + "img_height": 3332, + "img_size": 3852 + }, + { + "img_src": "http://i0.hdslb.com/bfs/album/96e6743d04b0d31e9c17e171d767ceab75c9ac35.jpg", + "img_width": 1908, + "img_height": 3392, + "img_size": 3444 + }, + { + "img_src": "http://i0.hdslb.com/bfs/album/2116c3fe1bb5fbfd77a641fd0c29c6e6408b050e.jpg", + "img_width": 1908, + "img_height": 3328, + "img_size": 3793 + }, + { + "img_src": "http://i0.hdslb.com/bfs/album/6de08b62d633a84e5e50c8da0b42334f88ca50cb.jpg", + "img_width": 1812, + "img_height": 3176, + "img_size": 3513 + }, + { + "img_src": "http://i0.hdslb.com/bfs/album/02f1e419e79e45572c671a534f4271f411f2771f.jpg", + "img_width": 1908, + "img_height": 3392, + "img_size": 3660 + }, + { + "img_src": "http://i0.hdslb.com/bfs/album/348bf5b4f887f3ecd690cb1a1442bdda43898652.jpg", + "img_width": 3814, + "img_height": 3392, + "img_size": 7891 + }, + { + "img_src": "http://i0.hdslb.com/bfs/album/c50a2cc182c8ad07850e2f364b76d14cd6b1729c.jpg", + "img_width": 3839, + "img_height": 2160, + "img_size": 1630 + }, + { + "img_src": "http://i0.hdslb.com/bfs/album/b051883ca18556c78e72bf07d3981324394541c8.jpg", + "img_width": 2437, + "img_height": 2159, + "img_size": 1869 + }, + { + "img_src": "http://i0.hdslb.com/bfs/album/42e5f13601067a772d5ddc47a8756fecfec9f8cb.jpg", + "img_width": 2121, + "img_height": 3023, + "img_size": 2021 + } + ], + "title": "玉藻前", + "category": "cos", + "upload_time": 1548154774, + "already_liked": 0, + "already_voted": 0 + } + } + ] + } +} +``` + +
+ +## 获取指定用户的相簿列表 + +> https://api.vc.bilibili.com/link_draw/v1/doc/others + +*请求方式:GET* + +认证方式:Cookie(SESSDSTA) + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ---------- | ---- | -------- | ------ | --------------------------------------------- | +| biz | num | 分区 | 非必要 | 0:全部
1:画友
2:摄影
默认为0 | +| poster_uid | num | 作者mid | 必要 | 默认为20 | +| page_num | num | 页码 | 非必要 | 默认为1 | +| page_size | num | 每页项数 | 非必要 | 默认为45 | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------ | +| code | num | 返回值 | 0:成功
1:参数错误 | +| msg | str | 错误信息 | 默认为success | +| message | str | 错误信息 | 默认为success | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----------- | ----- | ---------- | ---- | +| total_count | str | 总计相簿数 | | +| user | obj | 作者信息 | | +| items | array | 相簿列表 | | + +`data`中的`user`对象: + +| 字段 | 类型 | 内容 | 备注 | +| -------- | ---- | ------- | ---- | +| uid | str | 作者mid | | +| head_url | str | 头像url | | +| name | str | 昵称 | | + +`data`中的`item`对象: + +同[获取画友首页列表](#获取画友首页列表)中的`item`对象 + +**示例:** + +获取用户` 1360010 `的所有类型相簿 + +```shell +curl -G 'https://api.vc.bilibili.com/link_draw/v1/doc/others' \ +--data-urlencode 'biz=0' \ +--data-urlencode 'poster_uid=1360010' \ +--data-urlencode 'page_num=1' \ +--data-urlencode 'page_size=5' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "msg": "success", + "message": "success", + "data": { + "total_count": "290", + "user": { + "uid": "1360010", + "head_url": "https://i2.hdslb.com/bfs/face/865c7b03575a69822e503ef291ac26199c6a540a.jpg", + "name": "楚楚子" + }, + "items": [ + { + "biz": 3, + "doc_id": 85097979, + "poster_uid": 1360010, + "category": "daily", + "type": 0, + "title": "", + "tags": [], + "pictures": [ + { + "img_src": "https://i0.hdslb.com/bfs/album/65604d9697a644686c6ad811f9663a9fe308b164.jpg", + "img_width": 1347, + "img_height": 1792, + "img_size": 363 + }, + { + "img_src": "https://i0.hdslb.com/bfs/album/3f4448059ddaa8cbcd9094851ecfb84b184b0dc9.jpg", + "img_width": 1347, + "img_height": 1792, + "img_size": 506 + }, + { + "img_src": "https://i0.hdslb.com/bfs/album/edd1b6b424c078ba6a5b267db355cf7e8522f27a.jpg", + "img_width": 1347, + "img_height": 1792, + "img_size": 424 + }, + { + "img_src": "https://i0.hdslb.com/bfs/album/a615ce43ce3412060e487c3fcbc73ed08da23c56.jpg", + "img_width": 2268, + "img_height": 4032, + "img_size": 2192 + } + ], + "source": null, + "upload_time": "2020-08-03 16:48:30", + "upload_timestamp": 1596444510, + "upload_time_text": "3月前", + "description": "“绝望吧~!”\n#江之岛盾子#弹丸论破# \n黑历史重刷,终于又出了盾子 ​​​", + "role": null, + "settings": { + "copy_forbidden": 0 + }, + "already_collected": 0, + "already_liked": 0, + "user_status": 0, + "at_control": "", + "view_count": 53822, + "like_count": 0, + "collect_count": 40, + "verify_status": 1 + }, + { + "biz": 3, + "doc_id": 84200785, + "poster_uid": 1360010, + "category": "daily", + "type": 0, + "title": "", + "tags": [], + "pictures": [ + { + "img_src": "https://i0.hdslb.com/bfs/album/8aa4ad3fc7b9f01a21f4c398565788bbe92cff2d.jpg", + "img_width": 2464, + "img_height": 3280, + "img_size": 2059 + } + ], + "source": null, + "upload_time": "2020-07-29 18:06:52", + "upload_timestamp": 1596017212, + "upload_time_text": "4月前", + "description": "莫西莫西?", + "role": null, + "settings": { + "copy_forbidden": 0 + }, + "already_collected": 0, + "already_liked": 0, + "user_status": 0, + "at_control": "", + "view_count": 49659, + "like_count": 0, + "collect_count": 6, + "verify_status": 1 + }, + { + "biz": 3, + "doc_id": 83943309, + "poster_uid": 1360010, + "category": "daily", + "type": 0, + "title": "", + "tags": [], + "pictures": [ + { + "img_src": "https://i0.hdslb.com/bfs/album/4f4321bec1ddc55a3ed98b63a40175ec90820b4a.jpg", + "img_width": 2464, + "img_height": 3280, + "img_size": 2432 + }, + { + "img_src": "https://i0.hdslb.com/bfs/album/e2ed6aecfa713e109867198a1b0292eb9180aec9.jpg", + "img_width": 2464, + "img_height": 3280, + "img_size": 1949 + }, + { + "img_src": "https://i0.hdslb.com/bfs/album/92694ea7db527663a8c97a6747125e12c6300bc4.jpg", + "img_width": 2464, + "img_height": 3280, + "img_size": 1978 + }, + { + "img_src": "https://i0.hdslb.com/bfs/album/1757e958088dc7477fae30f2bf0daba034dd5de2.jpg", + "img_width": 2464, + "img_height": 3280, + "img_size": 1849 + }, + { + "img_src": "https://i0.hdslb.com/bfs/album/60d55f032f4332387a165d6aa4e7ab0d2f628b1d.jpg", + "img_width": 2464, + "img_height": 3280, + "img_size": 2032 + }, + { + "img_src": "https://i0.hdslb.com/bfs/album/12bdbda0c8ea40505449ef4f4ad764780ad991ec.jpg", + "img_width": 1623, + "img_height": 2160, + "img_size": 1068 + }, + { + "img_src": "https://i0.hdslb.com/bfs/album/4e51f06fb2c9aedfd077eb9341ada50aea5a2d50.jpg", + "img_width": 2464, + "img_height": 3280, + "img_size": 2106 + }, + { + "img_src": "https://i0.hdslb.com/bfs/album/5e8d27655c9741b0cb8c3e257677b9fc14b4cb5b.jpg", + "img_width": 2996, + "img_height": 3289, + "img_size": 3347 + }, + { + "img_src": "https://i0.hdslb.com/bfs/album/0018b04da7f9897b0a80dae64267fda16a7d3249.jpg", + "img_width": 700, + "img_height": 659, + "img_size": 122 + } + ], + "source": null, + "upload_time": "2020-07-28 02:18:39", + "upload_timestamp": 1595873919, + "upload_time_text": "4月前", + "description": "CP26第一天的集邮#CP26#\np1@流一_喵喵喵喵喵喵 流一爸爸太好看呜呜\np2@星之迟迟 我迟哥天仙下凡 新本太可了推荐\np3@紅吸式咖啡 师姐是俺永远的珍宝!\np4@伏笔小哥哥 我家儿子人间导弹杀伤力巨大[doge]\np5@鹤祈W 我家鹅鹅[喜极而泣]老色批又偷偷亲我\np6@拉花一哥虚年gg 虚虚今天也是又白又可口\np7@沐阳_阳阳阳阳羊哞 又御又有气场爱了\nP8战利品?", + "role": null, + "settings": { + "copy_forbidden": 0 + }, + "already_collected": 0, + "already_liked": 0, + "user_status": 0, + "at_control": "[{\"type\":1,\"location\":86,\"length\":7,\"data\":\"44500220\"}]", + "view_count": 67546, + "like_count": 0, + "collect_count": 18, + "verify_status": 1 + }, + { + "biz": 3, + "doc_id": 83305352, + "poster_uid": 1360010, + "category": "daily", + "type": 0, + "title": "", + "tags": [], + "pictures": [ + { + "img_src": "https://i0.hdslb.com/bfs/album/9700a04ea0adc0fc4e0d0be54432210f7cb0ca08.jpg", + "img_width": 2996, + "img_height": 4096, + "img_size": 3687 + }, + { + "img_src": "https://i0.hdslb.com/bfs/album/bea5b177169027506afb7f11f91aecaf770f50a8.jpg", + "img_width": 2232, + "img_height": 4032, + "img_size": 2435 + }, + { + "img_src": "https://i0.hdslb.com/bfs/album/94c170c09acfc22bcdf541dc2a173cac0c3ca5eb.jpg", + "img_width": 1080, + "img_height": 1080, + "img_size": 349 + }, + { + "img_src": "https://i0.hdslb.com/bfs/album/53b082a3352a4cbf05dd796b60fe06ad5ba443f9.jpg", + "img_width": 2148, + "img_height": 2864, + "img_size": 1712 + } + ], + "source": null, + "upload_time": "2020-07-24 11:12:03", + "upload_timestamp": 1595560323, + "upload_time_text": "4月前", + "description": "cp26认衣服。?[笑哭]\nD1, 瑶-遇见神鹿(游场\nD2,嘉德罗斯-酒吞童子(凹凸世界展台8.1馆CPB25 ​​​", + "role": null, + "settings": { + "copy_forbidden": 0 + }, + "already_collected": 0, + "already_liked": 0, + "user_status": 0, + "at_control": "", + "view_count": 45415, + "like_count": 0, + "collect_count": 5, + "verify_status": 1 + }, + { + "biz": 3, + "doc_id": 81307632, + "poster_uid": 1360010, + "category": "daily", + "type": 0, + "title": "", + "tags": [], + "pictures": [ + { + "img_src": "https://i0.hdslb.com/bfs/album/bf3e274cf5a013a9ae8ddfaa756ad4f22d643ff4.jpg", + "img_width": 2464, + "img_height": 3280, + "img_size": 2418 + }, + { + "img_src": "https://i0.hdslb.com/bfs/album/e8ad8f1297048e9adbcd70c8ca589dc306679c6e.jpg", + "img_width": 1656, + "img_height": 2205, + "img_size": 692 + }, + { + "img_src": "https://i0.hdslb.com/bfs/album/44e2d7d566833a67b151b5f0eba67bb70c34e6b7.jpg", + "img_width": 2464, + "img_height": 3280, + "img_size": 2430 + }, + { + "img_src": "https://i0.hdslb.com/bfs/album/0c11a891a71a567899b45801049cb44e8e09984b.jpg", + "img_width": 2464, + "img_height": 3280, + "img_size": 2513 + }, + { + "img_src": "https://i0.hdslb.com/bfs/album/92e0f0a0e6c38c693511b705acfd25caa9c14125.jpg", + "img_width": 1656, + "img_height": 2205, + "img_size": 664 + }, + { + "img_src": "https://i0.hdslb.com/bfs/album/235e63ecfa8db0bb21a4dbd4d82c7be321c96b73.jpg", + "img_width": 2464, + "img_height": 3280, + "img_size": 2149 + }, + { + "img_src": "https://i0.hdslb.com/bfs/album/98a3eb965f07a75b24d59cc6446a7752ad8211bd.jpg", + "img_width": 1656, + "img_height": 2205, + "img_size": 580 + }, + { + "img_src": "https://i0.hdslb.com/bfs/album/0dc3637addb53bf8ebea2a1896f41bcedafee42f.jpg", + "img_width": 1656, + "img_height": 2205, + "img_size": 669 + }, + { + "img_src": "https://i0.hdslb.com/bfs/album/f1ccbe4b61022cea2545eaa4cd26ac0617f9c12c.jpg", + "img_width": 2464, + "img_height": 3280, + "img_size": 3329 + } + ], + "source": null, + "upload_time": "2020-07-12 01:03:34", + "upload_timestamp": 1594487014, + "upload_time_text": "4月前", + "description": "绿茶公主切?听说你想和我一起喝奶茶\n新风格自拍⁄(⁄ ⁄•⁄ω⁄•⁄ ⁄)⁄希望喜欢\n\n裙子和领结是我家 海盐气泡", + "role": null, + "settings": { + "copy_forbidden": 0 + }, + "already_collected": 0, + "already_liked": 0, + "user_status": 0, + "at_control": "", + "view_count": 80832, + "like_count": 0, + "collect_count": 110, + "verify_status": 1 + }, + { + "biz": 3, + "doc_id": 80611117, + "poster_uid": 1360010, + "category": "daily", + "type": 0, + "title": "", + "tags": [], + "pictures": [ + { + "img_src": "https://i0.hdslb.com/bfs/album/4cb935b7f542891c42e5b90a8cd6a9cc3817fdad.jpg", + "img_width": 1728, + "img_height": 3072, + "img_size": 1136 + }, + { + "img_src": "https://i0.hdslb.com/bfs/album/d99cd3d16fb1353a4dd42e72f4a1b4dce786bdf7.jpg", + "img_width": 1728, + "img_height": 3072, + "img_size": 1429 + }, + { + "img_src": "https://i0.hdslb.com/bfs/album/4a5b947929a8a748a1cd8a165e07e39cf9efbac1.jpg", + "img_width": 1728, + "img_height": 3072, + "img_size": 1052 + }, + { + "img_src": "https://i0.hdslb.com/bfs/album/c9972c6681e22d50f03bc80337f09c5bca12ce83.jpg", + "img_width": 1728, + "img_height": 3072, + "img_size": 1324 + }, + { + "img_src": "https://i0.hdslb.com/bfs/album/57137ce057e0c8098b17ed7ef9dbd6230cc08f31.jpg", + "img_width": 1728, + "img_height": 3072, + "img_size": 1361 + }, + { + "img_src": "https://i0.hdslb.com/bfs/album/f6ef2ffe0de5e336e12be620a2460fb9226da2d7.jpg", + "img_width": 1728, + "img_height": 3072, + "img_size": 1261 + }, + { + "img_src": "https://i0.hdslb.com/bfs/album/75c9012a5447025f533539e7e0c91aa7d47436e1.jpg", + "img_width": 1728, + "img_height": 3072, + "img_size": 986 + }, + { + "img_src": "https://i0.hdslb.com/bfs/album/07088481611b53a35bffc797e00ab39361cac764.jpg", + "img_width": 1728, + "img_height": 3072, + "img_size": 1361 + }, + { + "img_src": "https://i0.hdslb.com/bfs/album/2126d4a1f5882d1bd37db64e5acb17b3ba70a454.jpg", + "img_width": 1728, + "img_height": 3072, + "img_size": 991 + } + ], + "source": null, + "upload_time": "2020-07-07 14:13:32", + "upload_timestamp": 1594102412, + "upload_time_text": "4月前", + "description": "出镜:楚楚子\n摄影@猫尾先生DK \n服装@诺琪旗舰店 \n后勤:鹤祈 伏笔\n#cosplay##cos##cos正片##初音未来##初音ミク##初音##Miku##初音miku# ​​​", + "role": null, + "settings": { + "copy_forbidden": 0 + }, + "already_collected": 0, + "already_liked": 0, + "user_status": 0, + "at_control": "", + "view_count": 72419, + "like_count": 0, + "collect_count": 93, + "verify_status": 1 + }, + { + "biz": 3, + "doc_id": 80314152, + "poster_uid": 1360010, + "category": "daily", + "type": 0, + "title": "", + "tags": [], + "pictures": [ + { + "img_src": "https://i0.hdslb.com/bfs/album/8debaeafd8463f06132f46776d2e100d7fc7da62.jpg", + "img_width": 2160, + "img_height": 3840, + "img_size": 2793 + }, + { + "img_src": "https://i0.hdslb.com/bfs/album/c930d2b3b8533b28c18ebd69d7bb62027a96dc64.jpg", + "img_width": 3072, + "img_height": 4096, + "img_size": 3688, + "img_tags": [ + { + "tid": 0, + "orientation": 2, + "type": 2, + "text": "鹤祈w", + "mid": 319699970, + "textString": "@鹤祈w", + "x": 69531, + "y": 74547, + "source_type": 0, + "item_id": 0 + }, + { + "tid": 0, + "orientation": 2, + "type": 2, + "text": "楚楚子", + "mid": 1360010, + "textString": "@楚楚子", + "x": 24845, + "y": 88315, + "source_type": 0, + "item_id": 0 + } + ] + } + ], + "source": null, + "upload_time": "2020-07-05 15:30:19", + "upload_timestamp": 1593934219, + "upload_time_text": "4月前", + "description": "又出了拉姆蕾姆双子快乐!#蕾姆##拉姆##从零开始的异世界生活#", + "role": null, + "settings": { + "copy_forbidden": 0 + }, + "already_collected": 0, + "already_liked": 0, + "user_status": 0, + "at_control": "", + "view_count": 53346, + "like_count": 0, + "collect_count": 27, + "verify_status": 1 + }, + { + "biz": 3, + "doc_id": 78948058, + "poster_uid": 1360010, + "category": "daily", + "type": 0, + "title": "", + "tags": [], + "pictures": [ + { + "img_src": "https://i0.hdslb.com/bfs/album/63d3158d33e4e7e74b04ad522841b746795a2c58.jpg", + "img_width": 1080, + "img_height": 1080, + "img_size": 321 + } + ], + "source": null, + "upload_time": "2020-06-25 12:47:54", + "upload_timestamp": 1593060474, + "upload_time_text": "5月前", + "description": "端午节安康哦!大家", + "role": null, + "settings": { + "copy_forbidden": 0 + }, + "already_collected": 0, + "already_liked": 0, + "user_status": 0, + "at_control": "", + "view_count": 56377, + "like_count": 0, + "collect_count": 19, + "verify_status": 1 + }, + { + "biz": 3, + "doc_id": 78732068, + "poster_uid": 1360010, + "category": "daily", + "type": 0, + "title": "", + "tags": [], + "pictures": [ + { + "img_src": "https://i0.hdslb.com/bfs/album/bce1fbe78f222b669cd2ecf154faee55fffa4c22.jpg", + "img_width": 828, + "img_height": 1295, + "img_size": 431 + } + ], + "source": null, + "upload_time": "2020-06-23 20:06:14", + "upload_timestamp": 1592913974, + "upload_time_text": "5月前", + "description": "阿荣正片发我微博了(楚楚子w)\n还有转发抽500软妹币哦~[tv_调侃]", + "role": null, + "settings": { + "copy_forbidden": 0 + }, + "already_collected": 0, + "already_liked": 0, + "user_status": 0, + "at_control": "", + "view_count": 49872, + "like_count": 0, + "collect_count": 2, + "verify_status": 1 + }, + { + "biz": 3, + "doc_id": 78601963, + "poster_uid": 1360010, + "category": "daily", + "type": 0, + "title": "", + "tags": [], + "pictures": [ + { + "img_src": "https://i0.hdslb.com/bfs/album/952125a9d23e9845c359752919d7a4919c5146b2.jpg", + "img_width": 2160, + "img_height": 3840, + "img_size": 2219 + }, + { + "img_src": "https://i0.hdslb.com/bfs/album/206a554bf8ca9f8f5b20f819a3a3d4caaf8cc7c8.jpg", + "img_width": 2160, + "img_height": 3840, + "img_size": 2093 + } + ], + "source": null, + "upload_time": "2020-06-22 17:17:02", + "upload_timestamp": 1592817422, + "upload_time_text": "5月前", + "description": "“拉菲…喜欢指挥官”\n#碧蓝航线#", + "role": null, + "settings": { + "copy_forbidden": 0 + }, + "already_collected": 0, + "already_liked": 0, + "user_status": 0, + "at_control": "", + "view_count": 47885, + "like_count": 0, + "collect_count": 6, + "verify_status": 1 + }, + { + "biz": 3, + "doc_id": 77719612, + "poster_uid": 1360010, + "category": "daily", + "type": 0, + "title": "", + "tags": [], + "pictures": [ + { + "img_src": "https://i0.hdslb.com/bfs/album/8c78cfc991f160e649530ef124958a40174d1edf.jpg", + "img_width": 2464, + "img_height": 3280, + "img_size": 2902 + }, + { + "img_src": "https://i0.hdslb.com/bfs/album/e7e5d9fd004461ccc06bd4a2070fe8984cc910ab.jpg", + "img_width": 1906, + "img_height": 1080, + "img_size": 182 + } + ], + "source": null, + "upload_time": "2020-06-15 11:59:27", + "upload_timestamp": 1592193567, + "upload_time_text": "5月前", + "description": "#转生成为了只有乙女游戏破灭FLAG的邪恶##转生恶役只好拔除破灭旗标##卡塔丽娜##COS#\n猴王来了(不是)", + "role": null, + "settings": { + "copy_forbidden": 0 + }, + "already_collected": 0, + "already_liked": 0, + "user_status": 0, + "at_control": "", + "view_count": 52101, + "like_count": 0, + "collect_count": 5, + "verify_status": 1 + }, + { + "biz": 3, + "doc_id": 77344908, + "poster_uid": 1360010, + "category": "daily", + "type": 0, + "title": "", + "tags": [], + "pictures": [ + { + "img_src": "https://i0.hdslb.com/bfs/album/a7d74d4ee9fc7b000ce325f56d7f20c2f46097ce.jpg", + "img_width": 614, + "img_height": 584, + "img_size": 35 + } + ], + "source": null, + "upload_time": "2020-06-12 17:58:43", + "upload_timestamp": 1591955923, + "upload_time_text": "5月前", + "description": "都和你们说了多少次了我没有男朋友,我有女朋友!!!!别问了[笑哭]giao", + "role": null, + "settings": { + "copy_forbidden": 0 + }, + "already_collected": 0, + "already_liked": 0, + "user_status": 0, + "at_control": "", + "view_count": 48760, + "like_count": 0, + "collect_count": 0, + "verify_status": 1 + }, + { + "biz": 3, + "doc_id": 77340591, + "poster_uid": 1360010, + "category": "daily", + "type": 0, + "title": "", + "tags": [], + "pictures": [ + { + "img_src": "https://i0.hdslb.com/bfs/album/d53eae5957290841e99182b57dec41b73536c31f.jpg", + "img_width": 1440, + "img_height": 1080, + "img_size": 247 + } + ], + "source": null, + "upload_time": "2020-06-12 17:20:47", + "upload_timestamp": 1591953647, + "upload_time_text": "5月前", + "description": "昨天的自拍[tv_斜眼笑][tv_doge]", + "role": null, + "settings": { + "copy_forbidden": 0 + }, + "already_collected": 0, + "already_liked": 0, + "user_status": 0, + "at_control": "", + "view_count": 43730, + "like_count": 0, + "collect_count": 1, + "verify_status": 1 + }, + { + "biz": 3, + "doc_id": 77255303, + "poster_uid": 1360010, + "category": "daily", + "type": 0, + "title": "", + "tags": [], + "pictures": [ + { + "img_src": "https://i0.hdslb.com/bfs/album/0ec917d17f79e7dbd07e60c4eba78add95f8db1e.jpg", + "img_width": 1080, + "img_height": 1619, + "img_size": 292 + }, + { + "img_src": "https://i0.hdslb.com/bfs/album/d3509348d52329d415a0022a1d79651645201dfc.jpg", + "img_width": 1080, + "img_height": 1620, + "img_size": 531 + }, + { + "img_src": "https://i0.hdslb.com/bfs/album/6e2b6f49b6c8650ade51e66c4dc6008a4fd10b9e.jpg", + "img_width": 1619, + "img_height": 1080, + "img_size": 235 + }, + { + "img_src": "https://i0.hdslb.com/bfs/album/c31455b0d11a982f09fdcd13ce24354743410a95.jpg", + "img_width": 1080, + "img_height": 1619, + "img_size": 353 + }, + { + "img_src": "https://i0.hdslb.com/bfs/album/d6bcaf3c8cdcd5d680e359f20b7514e39337ed0c.jpg", + "img_width": 1619, + "img_height": 1080, + "img_size": 253 + }, + { + "img_src": "https://i0.hdslb.com/bfs/album/4151fe1cf8f4a47c3843f12ae10eb8449660d80f.jpg", + "img_width": 1080, + "img_height": 1619, + "img_size": 413 + }, + { + "img_src": "https://i0.hdslb.com/bfs/album/29e2f6361e0773342b9f8adae7c44515231415da.jpg", + "img_width": 1619, + "img_height": 1080, + "img_size": 337 + }, + { + "img_src": "https://i0.hdslb.com/bfs/album/88b42ea572b95ba2d0bbdec0253f3cf5f87bf1e9.jpg", + "img_width": 1080, + "img_height": 1619, + "img_size": 459 + }, + { + "img_src": "https://i0.hdslb.com/bfs/album/4f96eea84478eaeccf80b5e34b263e6d7e04e382.jpg", + "img_width": 1619, + "img_height": 1080, + "img_size": 325 + } + ], + "source": null, + "upload_time": "2020-06-11 21:10:12", + "upload_timestamp": 1591881012, + "upload_time_text": "5月前", + "description": "#LOLITA##国牌LOLITA##LOLITA装扮#\n 🌹雾都小姐🍷酒红色🍷\n\n出镜:楚楚子\n裙子:@Neverland星芙颂 \n\n摄影感谢@夜_綰灵 ​​​", + "role": null, + "settings": { + "copy_forbidden": 0 + }, + "already_collected": 0, + "already_liked": 0, + "user_status": 0, + "at_control": "", + "view_count": 48652, + "like_count": 0, + "collect_count": 20, + "verify_status": 1 + }, + { + "biz": 3, + "doc_id": 76904631, + "poster_uid": 1360010, + "category": "daily", + "type": 0, + "title": "", + "tags": [], + "pictures": [ + { + "img_src": "https://i0.hdslb.com/bfs/album/d89d1ae4dbb98c7b4ab40d3cb76543b4d5b9d471.jpg", + "img_width": 3987, + "img_height": 4032, + "img_size": 2898 + }, + { + "img_src": "https://i0.hdslb.com/bfs/album/8292a3ffe10baaf3b957605bc9fa450848746598.jpg", + "img_width": 3987, + "img_height": 4032, + "img_size": 3059 + }, + { + "img_src": "https://i0.hdslb.com/bfs/album/e6992efada737c6340b400ad8541ec8f550cd490.jpg", + "img_width": 4016, + "img_height": 4000, + "img_size": 2628 + }, + { + "img_src": "https://i0.hdslb.com/bfs/album/b4af594407dc4115779aa82d30000005f1940cee.jpg", + "img_width": 4000, + "img_height": 4012, + "img_size": 2602 + }, + { + "img_src": "https://i0.hdslb.com/bfs/album/6bc9ed0a4456806972793c8c9ff6b6dab7d82492.jpg", + "img_width": 828, + "img_height": 831, + "img_size": 156 + } + ], + "source": null, + "upload_time": "2020-06-08 17:19:55", + "upload_timestamp": 1591607995, + "upload_time_text": "5月前", + "description": "做了粉丝向小周边是蕾姆cos的扑克牌\n可以拿去打扑克[tv_点赞]搜店铺【楚王的宝库】就看到了,54张➕铁盒包装➕包邮 ​​​", + "role": null, + "settings": { + "copy_forbidden": 0 + }, + "already_collected": 0, + "already_liked": 0, + "user_status": 0, + "at_control": "", + "view_count": 40875, + "like_count": 0, + "collect_count": 1, + "verify_status": 1 + }, + { + "biz": 3, + "doc_id": 76895569, + "poster_uid": 1360010, + "category": "daily", + "type": 0, + "title": "", + "tags": [], + "pictures": [ + { + "img_src": "https://i0.hdslb.com/bfs/album/0f35f75e31dd1298673207292f06ed73c44ab7d6.jpg", + "img_width": 1080, + "img_height": 1620, + "img_size": 290 + }, + { + "img_src": "https://i0.hdslb.com/bfs/album/487f3ba4891b52825965337cc67b386cd61ef2ae.jpg", + "img_width": 1080, + "img_height": 1620, + "img_size": 403 + }, + { + "img_src": "https://i0.hdslb.com/bfs/album/01e0a911f6efab97191def3d3fab36d656f395a4.jpg", + "img_width": 1080, + "img_height": 1620, + "img_size": 306 + }, + { + "img_src": "https://i0.hdslb.com/bfs/album/62903ff9bad9d8f67fa44d0ec745f041f7c48e69.jpg", + "img_width": 1620, + "img_height": 1080, + "img_size": 230 + }, + { + "img_src": "https://i0.hdslb.com/bfs/album/f4ff78679627139c8f0bad222cd4a148cfc48212.jpg", + "img_width": 1080, + "img_height": 1620, + "img_size": 277 + }, + { + "img_src": "https://i0.hdslb.com/bfs/album/8444278d213ee9a88ee4e0672999625b9fe08ac3.jpg", + "img_width": 1080, + "img_height": 1620, + "img_size": 244 + }, + { + "img_src": "https://i0.hdslb.com/bfs/album/b726178928cd90091dbb424a1d67e65509b27415.jpg", + "img_width": 1080, + "img_height": 1512, + "img_size": 322 + }, + { + "img_src": "https://i0.hdslb.com/bfs/album/736c90c02dafb3bf846936220084505a0da2ff55.jpg", + "img_width": 1620, + "img_height": 1080, + "img_size": 394 + }, + { + "img_src": "https://i0.hdslb.com/bfs/album/3fe89476c5f6572e7c42f10af219adf8cb80fa5b.jpg", + "img_width": 1620, + "img_height": 1080, + "img_size": 370 + } + ], + "source": null, + "upload_time": "2020-06-08 15:41:20", + "upload_timestamp": 1591602080, + "upload_time_text": "5月前", + "description": "死亡爱丽丝联动蕾姆\n\n蕾姆:楚楚子\n服装@悠悠cos微博 \n摄影@菜菜1911 \n\n#从零开始的异世界生活##蕾姆##COSPLAY#", + "role": null, + "settings": { + "copy_forbidden": 0 + }, + "already_collected": 0, + "already_liked": 0, + "user_status": 0, + "at_control": "[{\"type\":1,\"location\":32,\"length\":8,\"data\":\"92962087\"}]", + "view_count": 62523, + "like_count": 0, + "collect_count": 74, + "verify_status": 1 + }, + { + "biz": 3, + "doc_id": 76277041, + "poster_uid": 1360010, + "category": "daily", + "type": 0, + "title": "", + "tags": [], + "pictures": [ + { + "img_src": "https://i0.hdslb.com/bfs/album/04b5e6ca741e16504e32a8afcaff02d26e3dbb02.jpg", + "img_width": 2105, + "img_height": 2105, + "img_size": 756 + } + ], + "source": null, + "upload_time": "2020-06-03 20:58:17", + "upload_timestamp": 1591189097, + "upload_time_text": "5月前", + "description": "听说最近虚拟女友很火?我也想应聘一下(๑¯ω¯๑)\n你们喜欢哪种声音的呢?\n定制虚拟恋人的方式在评论区\n顺便我在评论区抓一个粉丝做一期体验视频\n记得关注我和【甜味陪伴】哦[tv_害羞]", + "role": null, + "settings": { + "copy_forbidden": 0 + }, + "already_collected": 0, + "already_liked": 0, + "user_status": 0, + "at_control": "", + "view_count": 53645, + "like_count": 0, + "collect_count": 4, + "verify_status": 1 + }, + { + "biz": 3, + "doc_id": 74762578, + "poster_uid": 1360010, + "category": "daily", + "type": 0, + "title": "", + "tags": [], + "pictures": [ + { + "img_src": "https://i0.hdslb.com/bfs/album/6d9c4a1c5a313880c9917b7a37810d37d06df056.png", + "img_width": 1792, + "img_height": 828, + "img_size": 4752 + }, + { + "img_src": "https://i0.hdslb.com/bfs/album/9a5e21c9e620fd58f4ffa0f23c6758c6be004c16.png", + "img_width": 1792, + "img_height": 828, + "img_size": 5322 + } + ], + "source": null, + "upload_time": "2020-05-23 10:33:32", + "upload_timestamp": 1590201212, + "upload_time_text": "6月前", + "description": "我冲了!#碧蓝航线#", + "role": null, + "settings": { + "copy_forbidden": 0 + }, + "already_collected": 0, + "already_liked": 0, + "user_status": 0, + "at_control": "", + "view_count": 71068, + "like_count": 0, + "collect_count": 1, + "verify_status": 1 + }, + { + "biz": 3, + "doc_id": 74397184, + "poster_uid": 1360010, + "category": "daily", + "type": 0, + "title": "", + "tags": [], + "pictures": [ + { + "img_src": "https://i0.hdslb.com/bfs/album/de4711846523f58a1e17da281a3033b40296e5c6.jpg", + "img_width": 5304, + "img_height": 7952, + "img_size": 16275 + } + ], + "source": null, + "upload_time": "2020-05-20 13:34:51", + "upload_timestamp": 1589952891, + "upload_time_text": "6月前", + "description": "是金发辣妹风格的jk\n520表白大家\n裙子是我家的万佳灯火@风間original \n感谢摄影:远野咲夜", + "role": null, + "settings": { + "copy_forbidden": 0 + }, + "already_collected": 0, + "already_liked": 0, + "user_status": 0, + "at_control": "", + "view_count": 74593, + "like_count": 0, + "collect_count": 12, + "verify_status": 1 + }, + { + "biz": 3, + "doc_id": 74246310, + "poster_uid": 1360010, + "category": "daily", + "type": 0, + "title": "", + "tags": [], + "pictures": [ + { + "img_src": "https://i0.hdslb.com/bfs/album/e4541718610d4f19c9228bebf580db4f96e7a911.png", + "img_width": 1792, + "img_height": 828, + "img_size": 3884 + } + ], + "source": null, + "upload_time": "2020-05-19 10:06:53", + "upload_timestamp": 1589854013, + "upload_time_text": "6月前", + "description": "上古老婆队我也有了[tv_微笑]开心", + "role": null, + "settings": { + "copy_forbidden": 0 + }, + "already_collected": 0, + "already_liked": 0, + "user_status": 0, + "at_control": "", + "view_count": 48537, + "like_count": 0, + "collect_count": 0, + "verify_status": 1 + } + ] + } +} +``` + +
\ No newline at end of file diff --git a/docs/album/recommend_author.md b/docs/album/recommend_author.md new file mode 100644 index 0000000000..6f05606c70 --- /dev/null +++ b/docs/album/recommend_author.md @@ -0,0 +1,171 @@ +# 相簿推荐作者 + +- [获取摄影推荐作者](#获取摄影推荐作者) +- [获取画友推荐作者](#获取画友推荐作者) + +--- + +## 获取摄影推荐作者 + +> https://api.vc.bilibili.com/link_draw/v2/Photo/uper + +*请求方式:GET* + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | ---- | -------- | ------ | ------- | +| num | num | 请求数量 | 非必要 | 默认为6 | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ----- | -------- | ------------- | +| code | num | 返回值 | 0:成功 | +| msg | str | 错误信息 | 默认为success | +| message | str | 错误信息 | 默认为success | +| data | array | 信息本体 | | + +`data`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | ---------- | ---- | +| 0 | obj | 作者 1 | | +| n | obj | 作者 (n+1) | | +| …… | obj | …… | …… | + +`data`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----------- | ---- | ------- | ------------ | +| uid | num | 作者mid | | +| head_url | str | 头像url | | +| name | str | 昵称 | | +| is_followed | num | 0 | 作用尚不明确 | + +**示例:** + +请求获取摄影推荐作者,数量为5 + +```shell +curl -G 'https://api.vc.bilibili.com/link_draw/v2/Photo/uper' \ +--data-urlencode 'num=5' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "msg": "success", + "message": "success", + "data": [ + { + "uid": 36974706, + "head_url": "https://i2.hdslb.com/bfs/face/fa7ef3a5124e2ebfd2094e0bc2f42c752c1abd21.jpg", + "name": "幹物小幺", + "is_followed": 0 + }, + { + "uid": 3223860, + "head_url": "https://i0.hdslb.com/bfs/face/c5400d25eb7700cd41d88dff5b800bd55ec27cfe.jpg", + "name": "您算哪根葱", + "is_followed": 0 + }, + { + "uid": 941228, + "head_url": "https://i2.hdslb.com/bfs/face/f38f000d4df21e9bea96d3573efdf81ae02f4ddf.jpg", + "name": "碳酸熊卡", + "is_followed": 0 + }, + { + "uid": 2624541, + "head_url": "https://i0.hdslb.com/bfs/face/86ccd746af8b1e8bfcdd432de7f0ce1e2b2cb8b0.jpg", + "name": "_一之濑光", + "is_followed": 0 + }, + { + "uid": 29963706, + "head_url": "https://i1.hdslb.com/bfs/face/c054f097f1b882fc6ad8a67d0f0f88e3acd3bc88.jpg", + "name": "公子温温温如", + "is_followed": 0 + } + ] +} +``` + +
+ +## 获取画友推荐作者 + +> https://api.vc.bilibili.com/link_draw/v2/Doc/drawer + +*请求方式:GET* + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | ---- | -------- | ------ | ------- | +| num | num | 请求数量 | 非必要 | 默认为6 | + +**json回复:** + +见[获取摄影推荐作者](#获取摄影推荐作者)中的响应内容 + +**示例:** + +请求获取画友推荐作者,数量为5 + +```shell +curl -G 'https://api.vc.bilibili.com/link_draw/v2/Doc/drawer' \ +--data-urlencode 'num=5' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "msg": "success", + "message": "success", + "data": [ + { + "uid": 7905675, + "head_url": "http://i1.hdslb.com/bfs/face/d4765fd020e8b96e331861cb4d6a3afde4e70d1d.jpg", + "name": "我真的是离城", + "is_followed": 0 + }, + { + "uid": 20356494, + "head_url": "http://i0.hdslb.com/bfs/face/0686141506894df969832d7dda91f2a0c4cdc24b.jpg", + "name": "ZM-PANDA", + "is_followed": 0 + }, + { + "uid": 4836885, + "head_url": "http://i1.hdslb.com/bfs/face/48822c5aa7aeae9d3dd2010388baa2b0e1c5cc0a.jpg", + "name": "六六子w", + "is_followed": 0 + }, + { + "uid": 2575079, + "head_url": "http://i1.hdslb.com/bfs/face/cb3d6f4fb2fbe5aa85ab8773a1a19cec6d8ff1e1.jpg", + "name": "念萦墨葵", + "is_followed": 0 + }, + { + "uid": 1904878, + "head_url": "http://i0.hdslb.com/bfs/face/f6de926b3905ec7bb9e36202d80eb931d12f70ac.jpg", + "name": "fedsnk", + "is_followed": 0 + } + ] +} +``` + +
+ diff --git a/docs/article/articles.md b/docs/article/articles.md new file mode 100644 index 0000000000..8cb4ef6e9c --- /dev/null +++ b/docs/article/articles.md @@ -0,0 +1,315 @@ +# 文集基本信息 + +- [获取文集基本信息](#获取文集基本信息) + +--- + +## 获取文集基本信息 + +> https://api.bilibili.com/x/article/list/web/articles + +*请求方式:GET* + +认证方式:Cookie(SESSDATA) + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | ---- | -------- | ------ | ---- | +| id | num | 文集rlid | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ----------------------------------------------- | +| code | num | 返回值 | 0:成功
-400:请求错误
-404:无此信息 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| --------- | ----- | ---------------- | ------------------------------------------------------------ | +| list | obj | 文集概览 | | +| articles | array | 文集内的文章列表 | | +| author | obj | 文集作者信息 | | +| last | obj | - | 作用尚不明确
结构与data.articles[]中相似 | +| attention | bool | 是否关注文集作者 | false:未关注
true:已关注
需要登录(Cookie)
未登录为false | + +`data`中的`list`对象: + +| 字段 | 类型 | 内容 | 备注 | +| -------------- | ---- | --------------- | ------------ | +| id | num | 文集rlid | | +| mid | num | 文集作者mid | | +| name | str | 文集名称 | | +| image_url | str | 文集封面图片url | | +| update_time | num | 文集更新时间 | 时间戳 | +| ctime | num | 文集创建时间 | 时间戳 | +| publish_time | num | 文集发布时间 | 时间戳 | +| summary | str | 文集简介 | | +| words | num | 文集字数 | | +| read | num | 文集阅读量 | | +| articles_count | num | 文集内文章数量 | | +| state | num | 1或3 | 作用尚不明确 | +| reason | str | 空 | 作用尚不明确 | +| apply_time | str | 空 | 作用尚不明确 | +| check_time | str | 空 | 作用尚不明确 | + +`data`中的`articles`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | ------------------- | ---- | +| 0 | obj | 文集中第1篇文章 | | +| n | obj | 文集中第(n+1)篇文章 | | + +`data`中的`articles`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------------ | ----- | -------------- | ------------------------------------------------------------ | +| id | num | 专栏cvid | | +| title | str | 文章标题 | | +| state | num | 0 | 作用尚不明确 | +| publish_time | num | 发布时间 | 秒时间戳 | +| words | num | 文章字数 | | +| image_urls | array | 文章封面 | | +| category | obj | 文章标签 | | +| categories | array | 文章标签列表 | | +| summary | str | 文章摘要 | | +| stats | obj | 文章状态数信息 | | +| like_state | num | 是否点赞 | 0:未点赞
1:已点赞
需要登录(Cookie)
未登录为0 | + +`articles`数组中的对象中的`stats`: + +| 字段 | 类型 | 内容 | 备注 | +| -------- | ---- | ---------- | ---- | +| view | num | 阅读数 | | +| favorite | num | 收藏数 | | +| like | num | 点赞数 | | +| dislike | num | 点踩数 | | +| reply | num | 评论数 | | +| share | num | 分享数 | | +| coin | num | 投币数 | | +| dynamic | num | 动态转发数 | | + +`articles`数组中的对象中的`author`: + +| 字段 | 类型 | 内容 | 备注 | +| --------------- | ---- | -------------- | ---- | +| mid | num | 作者mid | | +| name | str | 作者昵称 | | +| face | str | 作者头像url | | +| official_verify | obj | 作者认证信息 | | +| nameplate | obj | 作者勋章 | | +| vip | obj | 作者大会员状态 | | + +**示例:** + +查询文集`rl207146`的基本信息 + +```shell +curl -G 'https://api.bilibili.com/x/article/list/web/articles' \ +--data-urlencode 'id=207146' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "list": { + "id": 207146, + "mid": 293793435, + "name": "B站api研究笔记", + "image_url": "https://i0.hdslb.com/bfs/article/96d2b3d2a72e6497a011c885ab9245c51507ce18.png", + "update_time": 1585036952, + "ctime": 1582718126, + "publish_time": 1585045493, + "summary": "", + "words": 8697, + "read": 1654, + "articles_count": 3, + "state": 1, + "reason": "", + "apply_time": "", + "check_time": "" + }, + "articles": [ + { + "id": 4815593, + "title": "【B站API】api研究笔记ep1-视频基本信息", + "state": 0, + "publish_time": 1582643908, + "words": 2906, + "image_urls": [ + "https://i0.hdslb.com/bfs/article/00497c8df7130f22e5b953694b8931a22d32f133.jpg" + ], + "category": { + "id": 26, + "parent_id": 17, + "name": "数码" + }, + "categories": [ + { + "id": 17, + "parent_id": 0, + "name": "科技" + }, + { + "id": 26, + "parent_id": 17, + "name": "数码" + } + ], + "summary": "各位小可爱们大家好啊,终于可以结束我长达一年的咕咕了.........在这蝠想联翩的日子里也闲的没事,除了上课就是睡觉,还不如搞点事情哪个猿不想拥有自己的B站爬虫呢(误),当然自制一个B站的综合信息台也是可以的,比如显示粉丝数 获赞数(掉粉警告)于是就萌生了这个研究B站api的想法,以后也会继续不定期分享我的主体思路是利用Chrome中的F12工具进行分析,再用curl进行验证先从视频下手吧qwq我们以av2075941为例network检测下,有各种图片、视频、网页、js。。。。。的传输记录", + "stats": { + "view": 578, + "favorite": 19, + "like": 26, + "dislike": 0, + "reply": 19, + "share": 6, + "coin": 10, + "dynamic": 0 + }, + "like_state": 0 + }, + { + "id": 4820548, + "title": "【B站API】api研究笔记ep2-视频其他信息", + "state": 0, + "publish_time": 1582688189, + "words": 4319, + "image_urls": [ + "https://i0.hdslb.com/bfs/article/2416ee72759a5c2c8bba0f10d42e789fc0c0ae2b.jpg" + ], + "category": { + "id": 26, + "parent_id": 17, + "name": "数码" + }, + "categories": [ + { + "id": 17, + "parent_id": 0, + "name": "科技" + }, + { + "id": 26, + "parent_id": 17, + "name": "数码" + } + ], + "summary": "大家中午好鸭昨天我们研究了B站api的获取方法和使用方法 这一期我们继续分享另一个从网页中寻找api的方法以及研究视频的其他api接口以av170001为例首先打开视频,在F12的network下的监控中加载页面筛选XHR对象用搜索法的效率较低,不如我们直接进行筛选&观察通过对资源路径的观察可以猜到某些有关的项比如playurl有可能是播放的地址,pagelist可能是分P列表,view不就是昨天研究的『视频基本信息』吗通过继续分析我总结出了以下api这个可以在只想获取简介时应用,而不用处理多余", + "stats": { + "view": 737, + "favorite": 14, + "like": 18, + "dislike": 0, + "reply": 14, + "share": 1, + "coin": 1, + "dynamic": 0 + }, + "like_state": 0 + }, + { + "id": 5263184, + "title": "【B站API】api研究笔记Special-AV与BV互转", + "state": 0, + "publish_time": 1585045493, + "words": 1472, + "image_urls": [ + "https://i0.hdslb.com/bfs/article/b520939046899303cfcac1511308eb87ede760d7.jpg" + ], + "category": { + "id": 26, + "parent_id": 17, + "name": "数码" + }, + "categories": [ + { + "id": 17, + "parent_id": 0, + "name": "科技" + }, + { + "id": 26, + "parent_id": 17, + "name": "数码" + } + ], + "summary": "昨天视频新编号BV上线了,所有视频的编号默认都变成了BVxxx,不再是avxxx,兼容在链接和搜索中输入av号,评论区和动态av和bv都可以一键传送显然日益增长的投稿量对于编号是个问题,int是有上限的,但一串“乱码”缺少了灵魂,还会让我们想到磁力链接或者熊掌盘的链接(手动狗头)看到av170001,我会想到“法克儿~~”,但看到BV17x411w7KC,我?????其实av号并没有消失,只不过它已经隐藏于大众的视野里了,av和bv本质上是可以双向转换的方法一(电脑版推荐):打开一个视频,会发现", + "stats": { + "view": 343, + "favorite": 9, + "like": 13, + "dislike": 0, + "reply": 9, + "share": 0, + "coin": 2, + "dynamic": 0 + }, + "like_state": 0 + } + ], + "author": { + "mid": 293793435, + "name": "社会易姐QwQ", + "face": "http://i1.hdslb.com/bfs/face/aebb2639a0d47f2ce1fec0631f412eaf53d4a0be.jpg", + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0 + }, + "official_verify": { + "type": -1, + "desc": "" + }, + "nameplate": { + "nid": 4, + "name": "青铜殿堂", + "image": "http://i1.hdslb.com/bfs/face/2879cd5fb8518f7c6da75887994c1b2a7fe670bd.png", + "image_small": "http://i1.hdslb.com/bfs/face/6707c120e00a3445933308fd9b7bd9fad99e9ec4.png", + "level": "普通勋章", + "condition": "单个自制视频总播放数>=1万" + }, + "vip": { + "type": 2, + "status": 1, + "due_date": 0, + "vip_pay_type": 0, + "theme_type": 0, + "label": null + } + }, + "last": { + "id": 0, + "title": "", + "state": 0, + "publish_time": 0, + "words": 0, + "image_urls": [ ], + "category": { + "id": 0, + "parent_id": 0, + "name": "" + }, + "categories": [ ], + "summary": "" + }, + "attention": true + } +} +``` + +
\ No newline at end of file diff --git a/docs/article/category.md b/docs/article/category.md new file mode 100644 index 0000000000..833fa40f0f --- /dev/null +++ b/docs/article/category.md @@ -0,0 +1,81 @@ +# 专栏分类 + +## 游戏 + +| id | parent_id | name | +|-----|-----------|------| +| 1 | 0 | 游戏 | +| 6 | 1 | 单机游戏 | +| 7 | 1 | 电子竞技 | +| 8 | 1 | 手机游戏 | +| 9 | 1 | 网络游戏 | +| 10 | 1 | 桌游棋牌 | + +## 动画 + +| id | parent_id | name | +|-----|-----------|------| +| 2 | 0 | 动画 | +| 4 | 2 | 动漫杂谈 | +| 5 | 2 | 动漫资讯 | +| 31 | 2 | 动画技术 | + +## 生活 + +| id | parent_id | name | +|-----|-----------|------| +| 3 | 0 | 生活 | +| 13 | 3 | 美食 | +| 14 | 3 | 时尚 | +| 15 | 3 | 日常 | +| 21 | 3 | 萌宠 | +| 22 | 3 | 运动 | + +## 轻小说 + +| id | parent_id | name | +|-----|-----------|------| +| 16 | 0 | 轻小说 | +| 18 | 16 | 原创连载 | +| 19 | 16 | 同人连载 | +| 20 | 16 | 小说杂谈 | +| 32 | 16 | 短篇小说 | + +## 科技 + +| id | parent_id | name | +|-----|-----------|------| +| 17 | 0 | 科技 | +| 25 | 17 | 人文历史 | +| 26 | 17 | 数码 | +| 27 | 17 | 汽车 | +| 33 | 17 | 自然 | +| 34 | 17 | 学习 | + +## 影视 + +| id | parent_id | name | +|-----|-----------|------| +| 28 | 0 | 影视 | +| 12 | 28 | 电影 | +| 35 | 28 | 电视剧 | +| 36 | 28 | 纪录片 | +| 37 | 28 | 综艺 | + +## 兴趣 + +| id | parent_id | name | +|-----|-----------|------| +| 29 | 0 | 兴趣 | +| 11 | 29 | 模型手办 | +| 23 | 29 | 绘画 | +| 24 | 29 | 手工 | +| 38 | 29 | 摄影 | +| 39 | 29 | 音乐舞蹈 | + +## 笔记 + +| id | parent_id | name | +|-----|-----------|------| +| 41 | 0 | 笔记 | +| 42 | 41 | 全部笔记 | diff --git a/docs/article/info.md b/docs/article/info.md new file mode 100644 index 0000000000..fcf4b7e3d8 --- /dev/null +++ b/docs/article/info.md @@ -0,0 +1,186 @@ +# 专栏基本信息 + +- [获取专栏文章基本信息](#获取专栏文章基本信息) + +--- + +## 获取专栏文章基本信息 + +> https://api.bilibili.com/x/article/viewinfo + +*请求方式:GET* + +认证方式:Cookie(SESSDATA) + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | ---- | -------- | ------ | ---- | +| id | num | 专栏cvid | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ----------------------------------------------- | +| code | num | 返回值 | 0:成功
-400:请求错误
-404:无此信息 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----------------- | ------ | ---------------- | ------------------------------------------------------------ | +| like | num | 是否点赞 | 0:未点赞
1:已点赞
需要登录(Cookie)
未登录为0 | +| attention | bool | 是否关注文章作者 | false:未关注
true:已关注
需要登录(Cookie)
未登录为false | +| favorite | bool | 是否收藏 | false:未收藏
true:已收藏
需要登录(Cookie)
未登录为false | +| coin | num | 为文章投币数 | | +| stats | obj | 状态数信息 | | +| title | str | 文章标题 | | +| banner_url | str | 文章头图url | | +| mid | num | 文章作者mid | | +| author_name | str | 文章作者昵称 | | +| is_author | bool | true | 作用尚不明确 | +| image_urls | array | 动态封面 | | +| origin_image_urls | array | 封面图片 | | +| shareable | bool | true | 作用尚不明确 | +| show_later_watch | bool | true | 作用尚不明确 | +| show_small_window | bool | true | 作用尚不明确 | +| in_list | bool | 是否收于文集 | false:否
true:是 | +| pre | num | 上一篇文章cvid | 无为0 | +| next | num | 下一篇文章cvid | 无为0 | +| share_channels | array | 分享方式列表 | | +| type | num | 文章类别 | 0:文章
2:笔记 | + + +`stats`对象: + +| 字段 | 类型 | 内容 | 备注 | +| -------- | ---- | ---------- | ---- | +| view | num | 阅读数 | | +| favorite | num | 收藏数 | | +| like | num | 点赞数 | | +| dislike | num | 点踩数 | | +| reply | num | 评论数 | | +| share | num | 分享数 | | +| coin | num | 投币数 | | +| dynamic | num | 动态转发数 | | + +`data`中的`image_urls`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | --------------- | ---- | +| 0 | str | 动态封面图片url | | + +`data`中的`origin_image_urls`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | --------------- | ---- | +| 0 | str | 文章封面图片url | | + +`data`中的`share_channels`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | -------------- | ---- | +| 0 | obj | 分享项:qq | | +| 1 | obj | 分享项:qq空间 | | +| 2 | obj | 分享项:微信 | | +| 3 | obj | 分享项:朋友圈 | | +| 4 | obj | 分享项:微博 | | + +`data`中的`share_channels`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------------- | ---- | ----------- | ---- | +| name | str | 分享名称 | | +| picture | str | 分享图片url | | +| share_channel | str | 分享代号 | | + +**示例:** + +查询文章`cv2`的基本信息 + +```shell +curl -G 'https://api.bilibili.com/x/article/viewinfo' \ +--data-urlencode 'id=2' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "like": 0, + "attention": false, + "favorite": false, + "coin": 0, + "stats": { + "view": 1072619, + "favorite": 5481, + "like": 16465, + "dislike": 0, + "reply": 1865, + "share": 351, + "coin": 3436, + "dynamic": 37 + }, + "title": "专栏行为准则 ", + "banner_url": "https://i0.hdslb.com/bfs/article/131b1d41b857d5308f5bff36591d117bddc48d96.jpg@90p.webp", + "mid": 144900660, + "author_name": "专栏小天使", + "is_author": true, + "image_urls": [ + "https://i0.hdslb.com/bfs/article/0a72422ce8e77d8512f010d93b1b7f9bc4e64e52.jpg" + ], + "origin_image_urls": [ + "https://i0.hdslb.com/bfs/article/131b1d41b857d5308f5bff36591d117bddc48d96.jpg" + ], + "shareable": true, + "show_later_watch": true, + "show_small_window": true, + "in_list": false, + "pre": 115914, + "next": 38575, + "share_channels": [ + { + "name": "QQ", + "picture": "https://i0.hdslb.com/bfs/album/114ccfb3a999df9c4d11f274c8c61a804c8f8803.png", + "share_channel": "QQ" + }, + { + "name": "QQ空间", + "picture": "https://i0.hdslb.com/bfs/album/30e9608bbce725bca45b5910866f60ab4d5e18b3.png", + "share_channel": "QZONE" + }, + { + "name": "微信", + "picture": "https://i0.hdslb.com/bfs/album/658af3c22431cd78bb7c50be3394f7c032eba12c.png", + "share_channel": "WEIXIN" + }, + { + "name": "朋友圈", + "picture": "https://i0.hdslb.com/bfs/album/c1ebcec8c5302f29f792d15f04e0d6dcef53ec27.png", + "share_channel": "WEIXIN_MONMENT" + }, + { + "name": "微博", + "picture": "https://i0.hdslb.com/bfs/album/3707fc23f7d3e24022712320284b0de9aa78c87d.png", + "share_channel": "SINA" + } + ], + "type": 0, + "video_url": "", + "location": "", + "disable_share": false + } +} +``` + +
diff --git a/docs/article/like_coin_fav.md b/docs/article/like_coin_fav.md new file mode 100644 index 0000000000..469186cf03 --- /dev/null +++ b/docs/article/like_coin_fav.md @@ -0,0 +1,178 @@ +# 专栏投币&点赞&收藏 + +- [点赞文章](#点赞文章) +- [投币文章](#投币文章) +- [收藏文章](#收藏文章) + +--- + +## 点赞文章 + + + +> https://api.bilibili.com/x/article/like + +*请求方式:POST* + +认证方式:Cookie(SESSDATA) + +**正文参数( application/x-www-form-urlencoded ):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | ---- | ------------------- | ------ | ---------------------- | +| id | num | 文章cvid | 必要 | | +| type | num | 操作方式 | 必要 | 1:点赞
2:取消赞 | +| csrf | str | CSRF Token(位于cookie) | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------------------ | +| code | num | 返回值 | 0:成功
-101:账号未登录
-111:csrf校验失败
-400:请求错误
10003:不存在该稿件
65006:已赞过
65004:取消点赞失败 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | + +**示例:** + +为文章`cv5806746`点赞 + +```shell +curl 'https://api.bilibili.com/x/article/like' \ +--data-urlencode 'id=5806746' \ +--data-urlencode 'type=1' \ +--data-urlencode 'csrf=xxx' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1 +} +``` + +
+ +## 投币文章 + + + +> https://api.bilibili.com/x/web-interface/coin/add + +*请求方式:POST* + +认证方式:Cookie(SESSDATA) + +**正文参数( application/x-www-form-urlencoded ):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| -------- | ---- | ------------------- | ------ | ------- | +| aid | num | 文章cvid | 必要 | | +| upid | num | 文章作者mid | 必要 | | +| multiply | num | 投币数量 | 必要 | 上限为2 | +| avtype | num | 2 | 必要 | 必须为2 | +| csrf | str | CSRF Token(位于cookie) | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------------------ | +| code | num | 返回值 | 0:成功
-101:账号未登录
-102:账号被封停
-104:硬币不足
-111:csrf校验失败
-400:请求错误
10003:不存在该稿件
34002:不能给自己投币
34003:非法的投币数量
34005:超过投币上限 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +data 对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | ------------ | ----------------------------------------------------- | +| like | bool | 是否点赞成功 | true:成功
false:失败
已赞过则附加点赞失败 | + +**示例:** + +为文章`cv5806746`投币1枚 + +```shell +curl 'https://api.bilibili.com/x/web-interface/coin/add' \ +--data-urlencode 'aid=5806746' \ +--data-urlencode 'upid=486980924' \ +--data-urlencode 'multiply=1' \ +--data-urlencode 'avtype=2' \ +--data-urlencode 'csrf=xxx' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "like": false + } +} +``` + +
+ +## 收藏文章 + + + +>https://api.bilibili.com/x/article/favorites/add + +*请求方式:POST* + +认证方式:Cookie(SESSDATA) + +**正文参数( application/x-www-form-urlencoded ):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | ---- | ------------------- | ------ | ---- | +| id | num | 文章cvid | 必要 | | +| csrf | str | CSRF Token(位于cookie) | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------------------ | +| code | num | 返回值 | 0:成功
-101:账号未登录
-111:csrf校验失败
-400:请求错误
-404:无此项 | +| message | str | 错误信息 | 正确为success | +| data | obj | 信息本体 | | + +**示例:** + +收藏文章`cv5806746` + +```shell +curl 'https://api.bilibili.com/x/article/favorites/add' \ +--data-urlencode 'id=5806746' \ +--data-urlencode 'csrf=xxx' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1 +} +``` + +
diff --git a/docs/article/list.md b/docs/article/list.md new file mode 100644 index 0000000000..54b845d0e2 --- /dev/null +++ b/docs/article/list.md @@ -0,0 +1,677 @@ +# 获取用户专栏信息 + +- [获取用户专栏文章列表](#获取用户专栏文章列表) +- [获取用户专栏文集列表](#获取用户专栏文集列表) + +--- + +## 获取用户专栏文章列表 + +> https://api.bilibili.com/x/space/article + +*请求方式:GET* + +认证方式:Cookie(SESSDATA) + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +|------|-----|-------|--------------------------------------------------------------------------|-----| +| mid | num | 用户uid | | √ | +| pn | num | | 默认:1 | | +| ps | num | | 默认:30
范围:[1,30] | | +| sort | str | | `publish_time`:最新发布
`view`:最多阅读
`fav`:最多收藏
默认:`publish_time` | | + +**json回复:** + +根对象 + +| 字段 | 类型 | 内容 | 备注 | +|---------|-----|------|--------------------| +| code | num | 返回值 | 0:成功
-400:请求错误 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +`data`对象 + +| 字段名 | 类型 | 内容 | 备注 | +|----------|-------|----------|-----| +| articles | array | 专栏文章信息列表 | | +| pn | num | 本次请求分页页数 | | +| ps | num | 本次请求分页大小 | | +| count | num | 专栏文章总数 | | + +`data`对象 -> `articles`数组中的对象 + +| 字段名 | 类型 | 内容 | 备注 | +|-------------------|-------|----------|------| +| id | num | 专栏文章id | | +| category | obj | 分类 | | +| categories | array | 分类 | | +| title | str | 标题 | | +| summary | str | 摘要 | | +| banner_url | str | 封面图 | | +| template_id | num | | | +| state | num | | | +| author | obj | UP主信息 | | +| reprint | num | | | +| image_urls | array | | | +| publish_time | num | 发布时间戳 | 单位:秒 | +| ctime | num | 提交时间戳 | 单位:秒 | +| stats | obj | 专栏文章数据统计 | | +| tags | array | 标签 | | +| words | num | | | +| dynamic | str | 粉丝动态文案 | | +| origin_image_urls | array | | | +| list | | `null` | | +| is_like | bool | | | +| media | obj | | | +| apply_time | str | `空串` | | +| check_time | str | `空串` | | +| original | num | | | +| act_id | num | | | +| dispute | | `null` | | +| authenMark | | `null` | | +| cover_avid | num | | | +| top_video_info | | `null` | | +| type | num | | | + +`data`对象 -> `articles`数组中的对象 -> `category`对象 + +| 字段名 | 类型 | 内容 | 备注 | +|-----------|-----|--------|-----| +| id | num | 分类id | | +| parent_id | num | 父级分类id | | +| name | str | 分类名称 | | + +`data`对象 -> `articles`数组中的对象 -> `categories`数组中的对象 + +| 字段名 | 类型 | 内容 | 备注 | +|-----------|-----|--------|-----| +| id | num | 分类id | | +| parent_id | num | 父级分类id | | +| name | str | 分类名称 | | + +`data`对象 -> `articles`数组中的对象 -> `author`对象 + +| 字段名 | 类型 | 内容 | 备注 | +|-----------------|-----|--------|-----| +| mid | num | 用户uid | | +| name | str | 用户名 | | +| face | str | 头像 | | +| pendant | obj | 头像框信息 | | +| official_verify | obj | 账号认证信息 | | +| nameplate | obj | 成就勋章信息 | | +| vip | obj | 大会员信息 | | + +`data`对象 -> `articles`数组中的对象 -> `author`对象 -> `pendant`对象 + +| 字段名 | 类型 | 内容 | 备注 | +|--------|-----|----------|-----| +| pid | num | 头像框id | | +| name | str | 头像框名称 | | +| image | str | 头像框图片url | | +| expire | num | 过期时间 | | + +`data`对象 -> `articles`数组中的对象 -> `author`对象 -> `official_verify`对象 + +| 字段名 | 类型 | 内容 | 备注 | +|------|-----|------|------------------------------| +| type | num | 是否认证 | -1:无
0:个人认证
1:机构认证 | +| desc | str | 认证备注 | | + +`data`对象 -> `articles`数组中的对象 -> `author`对象 -> `nameplate`对象 + +| 字段名 | 类型 | 内容 | 备注 | +|-------------|-----|---------|-----| +| nid | num | 勋章id | | +| name | str | 勋章名称 | | +| image | str | 勋章图标 | | +| image_small | str | 勋章图标(小) | | +| level | str | 勋章等级 | | +| condition | str | 获取条件 | | + +`data`对象 -> `articles`数组中的对象 -> `author`对象 -> `vip`对象 + +| 字段名 | 类型 | 内容 | 备注 | +|------------------|-----|------------|---------------------------------| +| type | num | 大会员类型 | 0:无
1:月大会员
2:年度及以上大会员 | +| status | num | 大会员状态 | 0:无
1:有 | +| due_date | num | 大会员过期时间时间戳 | 单位:毫秒 | +| vip_pay_type | num | 支付类型 | | +| theme_type | num | `0` | | +| label | obj | 大会员标签 | | +| avatar_subscript | num | 是否显示大会员图标 | 0:不显示
1:显示 | +| nickname_color | str | 大会员昵称颜色 | | + +`data`对象 -> `articles`数组中的对象 -> `author`对象 -> `vip`对象 -> `label`对象 + +| 字段名 | 类型 | 内容 | 备注 | +|-------------|-----|--------|------------------------------------------------------------------------------------------------------------------------------| +| path | str | `空串` | | +| text | str | 会员类型文案 | `大会员` `年度大会员` `十年大会员` `百年大会员` `最强绿鲤鱼` | +| label_theme | str | 会员标签 | vip:大会员
annual_vip:年度大会员
ten_annual_vip:十年大会员
hundred_annual_vip:百年大会员
fools_day_hundred_annual_vip:最强绿鲤鱼 | + +`data`对象 -> `articles`数组中的对象 -> `stats`对象 + +| 字段名 | 类型 | 内容 | 备注 | +|----------|-----|-----|-------| +| view | num | 浏览数 | | +| favorite | num | 收藏数 | | +| like | num | 点赞数 | | +| dislike | num | 点踩数 | 恒为`0` | +| reply | num | 回复数 | | +| share | num | 转发数 | | +| coin | num | 投币数 | | +| dynamic | num | | | + +`data`对象 -> `articles`数组中的对象 -> `tags`数组中的对象 + +| 字段名 | 类型 | 内容 | 备注 | +|------|-----|------|-----| +| tid | num | 标签id | | +| name | str | 标签名称 | | + +`data`对象 -> `articles`数组中的对象 -> `media`对象 + +| 字段名 | 类型 | 内容 | 备注 | +|-----------|-----|------|-----| +| score | num | `0` | | +| media_id | num | `0` | | +| title | str | `空串` | | +| cover | str | `空串` | | +| area | str | `空串` | | +| type_id | num | `0` | | +| type_name | str | `空串` | | +| spoiler | num | `0` | | + +**示例:** + +```shell +curl -L -X GET 'https://api.bilibili.com/x/space/article?mid=300021061&pn=1&ps=2&sort=publish_time' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "articles": [ + { + "id": 18989884, + "category": { + "id": 15, + "parent_id": 3, + "name": "日常" + }, + "categories": [ + { + "id": 3, + "parent_id": 0, + "name": "生活" + }, + { + "id": 15, + "parent_id": 3, + "name": "日常" + } + ], + "title": "B站UP主日报2022年10月08日23点(v1.1)", + "summary": "冠:罗翔说刑法(2485.45万粉,+7204) 涨:肯德基(+18.37万粉) 掉:Overidea_China(-186850粉) 播:开心锤锤(+927.56万) 赞:荒草音乐(+31.02万) 赞:飞翔的丘丘人(+22.08万) 充:冰糖IO(+210)", + "banner_url": "https://i0.hdslb.com/bfs/article/5e53260f58f77fff0b8ba6b20179db85b8741b76.jpg", + "template_id": 4, + "state": 0, + "author": { + "mid": 300021061, + "name": "狸工智能", + "face": "https://i1.hdslb.com/bfs/face/4cba9bc9d6cf6935a37ec156dedb8f8d26c1df95.jpg", + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0 + }, + "official_verify": { + "type": -1, + "desc": "" + }, + "nameplate": { + "nid": 3, + "name": "白银殿堂", + "image": "https://i2.hdslb.com/bfs/face/f6a31275029365ae5dc710006585ddcf1139bde1.png", + "image_small": "https://i2.hdslb.com/bfs/face/b09cdb4c119c467cf2d15db5263b4f539fa6e30b.png", + "level": "高级勋章", + "condition": "单个自制视频总播放数>=10万" + }, + "vip": { + "type": 0, + "status": 0, + "due_date": 0, + "vip_pay_type": 0, + "theme_type": 0, + "label": { + "path": "", + "text": "", + "label_theme": "" + }, + "avatar_subscript": 0, + "nickname_color": "" + } + }, + "reprint": 0, + "image_urls": [ + "https://i0.hdslb.com/bfs/article/8e5497f7854e7df3468fbc29b0dd10fcf17d1223.png" + ], + "publish_time": 1665278884, + "ctime": 1665278884, + "stats": { + "view": 689, + "favorite": 2, + "like": 61, + "dislike": 0, + "reply": 18, + "share": 0, + "coin": 1, + "dynamic": 0 + }, + "words": 0, + "dynamic": "狸子的UP主日报📰v1.1,每天稳定更新~(如果咕咕咕了,请艾特狸子LePtC检查狐务器 [tv_微笑] #排行榜##大数据##狸工智能#", + "origin_image_urls": [ + "https://i0.hdslb.com/bfs/article/5e53260f58f77fff0b8ba6b20179db85b8741b76.jpg" + ], + "list": null, + "is_like": false, + "media": { + "score": 0, + "media_id": 0, + "title": "", + "cover": "", + "area": "", + "type_id": 0, + "type_name": "", + "spoiler": 0 + }, + "apply_time": "", + "check_time": "", + "original": 1, + "act_id": 0, + "dispute": null, + "authenMark": null, + "cover_avid": 0, + "top_video_info": null, + "type": 0 + }, + { + "id": 18972446, + "category": { + "id": 15, + "parent_id": 3, + "name": "日常" + }, + "categories": [ + { + "id": 3, + "parent_id": 0, + "name": "生活" + }, + { + "id": 15, + "parent_id": 3, + "name": "日常" + } + ], + "title": "B站UP主日报2022年10月07日23点(v1.1)", + "summary": "冠:罗翔说刑法(2484.73万粉,+8020) 涨:靖菌命(+3.61万粉) 掉:Overidea_China(-8593粉) 播:开心锤锤(+971.44万) 赞:荒草音乐(+53.14万) 赞:南方都市报(+18.05万) 充:内德维德(+190)", + "banner_url": "https://i0.hdslb.com/bfs/article/5e53260f58f77fff0b8ba6b20179db85b8741b76.jpg", + "template_id": 4, + "state": 0, + "author": { + "mid": 300021061, + "name": "狸工智能", + "face": "https://i1.hdslb.com/bfs/face/4cba9bc9d6cf6935a37ec156dedb8f8d26c1df95.jpg", + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0 + }, + "official_verify": { + "type": -1, + "desc": "" + }, + "nameplate": { + "nid": 3, + "name": "白银殿堂", + "image": "https://i2.hdslb.com/bfs/face/f6a31275029365ae5dc710006585ddcf1139bde1.png", + "image_small": "https://i2.hdslb.com/bfs/face/b09cdb4c119c467cf2d15db5263b4f539fa6e30b.png", + "level": "高级勋章", + "condition": "单个自制视频总播放数>=10万" + }, + "vip": { + "type": 0, + "status": 0, + "due_date": 0, + "vip_pay_type": 0, + "theme_type": 0, + "label": { + "path": "", + "text": "", + "label_theme": "" + }, + "avatar_subscript": 0, + "nickname_color": "" + } + }, + "reprint": 0, + "image_urls": [ + "https://i0.hdslb.com/bfs/article/8e5497f7854e7df3468fbc29b0dd10fcf17d1223.png" + ], + "publish_time": 1665189149, + "ctime": 1665189149, + "stats": { + "view": 1021, + "favorite": 1, + "like": 66, + "dislike": 0, + "reply": 21, + "share": 2, + "coin": 2, + "dynamic": 0 + }, + "tags": [ + { + "tid": 1598, + "name": "粉丝" + }, + { + "tid": 422982, + "name": "狸子" + }, + { + "tid": 526616, + "name": "大数据" + }, + { + "tid": 14082112, + "name": "狸工智能" + }, + { + "tid": 438, + "name": "排行榜" + } + ], + "words": 0, + "dynamic": "狸子的UP主日报📰v1.1,每天稳定更新~(如果咕咕咕了,请艾特狸子LePtC检查狐务器 [tv_微笑] #排行榜##大数据##狸工智能#", + "origin_image_urls": [ + "https://i0.hdslb.com/bfs/article/5e53260f58f77fff0b8ba6b20179db85b8741b76.jpg" + ], + "list": null, + "is_like": false, + "media": { + "score": 0, + "media_id": 0, + "title": "", + "cover": "", + "area": "", + "type_id": 0, + "type_name": "", + "spoiler": 0 + }, + "apply_time": "", + "check_time": "", + "original": 1, + "act_id": 0, + "dispute": null, + "authenMark": null, + "cover_avid": 0, + "top_video_info": null, + "type": 0 + } + ], + "pn": 1, + "ps": 2, + "count": 1563 + } +} +``` + +
+ +## 获取用户专栏文集列表 + +> https://api.bilibili.com/x/article/up/lists + +*请求方式:GET* + +认证方式:Cookie(SESSDATA) + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +|----------|-----|-------|-----|-------------------| +| mid | num | 用户uid | √ | | +| sort | num | 排序方式 | | 0:最近更新
1:最多阅读 | +| jsonp | str | | | | +| callback | str | | | | + +**json回复:** + +根对象 + +| 字段名 | 类型 | 内容 | 备注 | +|---------|-----|------|--------------------| +| code | num | 响应码 | 0:成功
-400:请求错误 | +| message | str | 0 | | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +`data`对象 + +| 字段名 | 类型 | 内容 | 备注 | +|-------|-------|--------|-----| +| lists | array | 文集信息列表 | | +| total | num | 文集总数 | | + +`data`对象 -> `lists`数组中的对象 + +| 字段名 | 类型 | 内容 | 备注 | +|----------------|-----|---------|------| +| id | num | 文集id | | +| mid | num | 作者uid | | +| name | str | 文集名称 | | +| image_url | str | 封面 | | +| update_time | num | 最后更新时间戳 | 单位:秒 | +| ctime | num | 创建时间戳 | 单位:秒 | +| publish_time | num | | 单位:秒 | +| summary | str | `空串` | | +| words | num | 总字数 | | +| read | num | 阅读量 | | +| articles_count | num | 包含文章数 | | +| state | num | `1` | | +| reason | str | `空串` | | +| apply_time | str | `空串` | | +| check_time | str | `空串` | | + +**示例:** + +```shell +curl -X GET 'https://api.bilibili.com/x/article/up/lists' \ + --data-urlencode 'mid=2859372' \ + --data-urlencode 'sort=0' +``` + +
+点击查看 + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "lists": [ + { + "id": 77163, + "mid": 2859372, + "name": "碟报", + "image_url": "https://i0.hdslb.com/bfs/article/96d2b3d2a72e6497a011c885ab9245c51507ce18.png", + "update_time": 1664854854, + "ctime": 1554785697, + "publish_time": 1664863200, + "summary": "", + "words": 71532, + "read": 478726, + "articles_count": 113, + "state": 1, + "reason": "", + "apply_time": "", + "check_time": "" + }, + { + "id": 26407, + "mid": 2859372, + "name": "周榜", + "image_url": "https://i0.hdslb.com/bfs/article/96d2b3d2a72e6497a011c885ab9245c51507ce18.png", + "update_time": 1664721205, + "ctime": 1537942450, + "publish_time": 1664721307, + "summary": "", + "words": 102099, + "read": 1366280, + "articles_count": 206, + "state": 1, + "reason": "", + "apply_time": "", + "check_time": "" + }, + { + "id": 107952, + "mid": 2859372, + "name": "制作委员会", + "image_url": "https://i0.hdslb.com/bfs/article/96d2b3d2a72e6497a011c885ab9245c51507ce18.png", + "update_time": 1646663919, + "ctime": 1563107348, + "publish_time": 1646910000, + "summary": "", + "words": 47564, + "read": 72911, + "articles_count": 10, + "state": 1, + "reason": "", + "apply_time": "", + "check_time": "" + }, + { + "id": 26457, + "mid": 2859372, + "name": "实时榜", + "image_url": "https://i0.hdslb.com/bfs/article/96d2b3d2a72e6497a011c885ab9245c51507ce18.png", + "update_time": 1603115712, + "ctime": 1537955117, + "publish_time": 1603115719, + "summary": "", + "words": 206741, + "read": 1136352, + "articles_count": 76, + "state": 1, + "reason": "", + "apply_time": "", + "check_time": "" + }, + { + "id": 49769, + "mid": 2859372, + "name": "预测", + "image_url": "https://i0.hdslb.com/bfs/article/96d2b3d2a72e6497a011c885ab9245c51507ce18.png", + "update_time": 1593933314, + "ctime": 1546153226, + "publish_time": 1593933314, + "summary": "", + "words": 2518, + "read": 55123, + "articles_count": 6, + "state": 1, + "reason": "", + "apply_time": "", + "check_time": "" + }, + { + "id": 96916, + "mid": 2859372, + "name": "书籍周榜", + "image_url": "https://i0.hdslb.com/bfs/article/96d2b3d2a72e6497a011c885ab9245c51507ce18.png", + "update_time": 1559815260, + "ctime": 1559815159, + "publish_time": 1559815577, + "summary": "", + "words": 272, + "read": 2955, + "articles_count": 1, + "state": 1, + "reason": "", + "apply_time": "", + "check_time": "" + }, + { + "id": 96610, + "mid": 2859372, + "name": "原始周榜存档", + "image_url": "https://i0.hdslb.com/bfs/article/96d2b3d2a72e6497a011c885ab9245c51507ce18.png", + "update_time": 1559721231, + "ctime": 1559720762, + "publish_time": 1559721271, + "summary": "", + "words": 290, + "read": 1498, + "articles_count": 1, + "state": 1, + "reason": "", + "apply_time": "", + "check_time": "" + }, + { + "id": 26453, + "mid": 2859372, + "name": "杂谈", + "image_url": "https://i0.hdslb.com/bfs/article/96d2b3d2a72e6497a011c885ab9245c51507ce18.png", + "update_time": 1557303117, + "ctime": 1537954625, + "publish_time": 1557303168, + "summary": "", + "words": 10673, + "read": 38363, + "articles_count": 4, + "state": 1, + "reason": "", + "apply_time": "", + "check_time": "" + }, + { + "id": 59028, + "mid": 2859372, + "name": "新春访谈", + "image_url": "https://i0.hdslb.com/bfs/article/96d2b3d2a72e6497a011c885ab9245c51507ce18.png", + "update_time": 1549878596, + "ctime": 1549343048, + "publish_time": 1549884125, + "summary": "", + "words": 33472, + "read": 34597, + "articles_count": 13, + "state": 1, + "reason": "", + "apply_time": "", + "check_time": "" + } + ], + "total": 9 + } +} +``` + +
diff --git a/docs/audio/action.md b/docs/audio/action.md new file mode 100644 index 0000000000..192c0fda6b --- /dev/null +++ b/docs/audio/action.md @@ -0,0 +1,154 @@ +# 音频投币&收藏 + +- [查询音频收藏状态](#查询音频收藏状态) +- [查询音频投币数](#查询音频投币数) +- [投币音频](#投币音频) + +--- + +## 查询音频收藏状态 + +> https://www.bilibili.com/audio/music-service-c/web/collections/songs-coll + +*请求方式:GET* + +认证方式:Cookie(SESSDATA) + +鉴权方式:Cookie中`DedeUserID`存在且不为0 + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | ---- | -------- | ------ | ---- | +| sid | num | 音频auid | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | -------- | ------------------------------------------------------------ | +| code | num | 返回值 | 0:成功
72000000:参数错误
72010002:账号未登陆
7201006:该音频不存在或已被下架 | +| msg | str | 错误信息 | 默认为success | +| data | bool | 是否收藏 | false:未收藏
true:已收藏 | + +**示例:** + +查询音频`au13598`的收藏状态 + +```shell +curl -G 'https://www.bilibili.com/audio/music-service-c/web/collections/songs-coll' \ +--data-urlencode 'sid=13598' \ +-b 'SESSDATA=xxx;DedeUserID=1;' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "msg": "success", + "data": true +} +``` + +
+ +## 查询音频投币数 + +> https://www.bilibili.com/audio/music-service-c/web/coin/audio + +*请求方式:GET* + +认证方式:Cookie(SESSDATA) + +鉴权方式:Cookie中`DedeUserID`存在且不为0 + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | ---- | -------- | ------ | ---- | +| sid | num | 音频auid | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | -------- | ------------------------------------------------------------ | +| code | num | 返回值 | 0:成功
72000000:参数错误
72010002:账号未登陆
7201006:该音频不存在或已被下架 | +| msg | str | 错误信息 | 默认为success | +| data | num | 投币数量 | 0为未投币,上限为2 | + +**示例:** + +查询音频`au13598`的投币数 + +```shell +curl -G 'https://www.bilibili.com/audio/music-service-c/web/coin/audio' \ +--data-urlencode 'sid=15664' \ +-b 'SESSDATA=xxx;DedeUserID=1;' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "msg": "success", + "data": 1 +} +``` + +
+ +## 投币音频 + +> https://www.bilibili.com/audio/music-service-c/web/coin/add + +*请求方式:POST* + +认证方式:Cookie(SESSDATA) + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| -------- | ---- | ------------------------- | ------ | ---- | +| sid | num | 音频 auid | 必要 | | +| multiply | num | 投币数量(最大为 2) | 必要 | | +| csrf | str | CSRF Token(位于 cookie) | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | --------- | ------------------------------------------------------------ | +| code | num | 返回值 | 0:成功
72000000:参数错误
72010002:账号未登陆
7201006:该音频不存在或已被下架 | +| msg | str | 错误信息 | 默认为 0 | +| data | str | 当前投币数量 | 0 为未投币,上限为 2 | + +**示例:** + +为音频`au13598`投币 + +```shell +curl -G 'https://www.bilibili.com/audio/music-service-c/web/coin/add' \ +--data-urlencode 'sid=15664' \ +-b 'SESSDATA=xxx;DedeUserID=1;' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "msg": "0", + "data": "1" +} +``` + +
diff --git a/docs/audio/info.md b/docs/audio/info.md new file mode 100644 index 0000000000..893cee8bbd --- /dev/null +++ b/docs/audio/info.md @@ -0,0 +1,432 @@ +# 歌曲基本信息 + +- [查询歌曲基本信息](#查询歌曲基本信息) +- [查询歌曲TAG](#查询歌曲TAG) +- [查询歌曲创作成员列表](#查询歌曲创作成员列表) +- [获取歌曲歌词](#获取歌曲歌词) + +--- + +## 查询歌曲基本信息 + +> https://www.bilibili.com/audio/music-service-c/web/song/info + +*请求方式:GET* + +认证方式:Cookie(SESSDATA) + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | ---- | -------- | ------ | ---- | +| sid | num | 音频auid | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ----------------------------- | -------- | ------------------------------------------------------------ | +| code | num | 返回值 | 0:成功
72000000:参数错误
7201006:该音频不存在或已被下架
72010027:版权音乐重定向 | +| msg | str | 错误信息 | 默认为success | +| data | 正确时:obj
错误时:null | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---------- | ------ | ------------------ | ------------------ | +| id | num | 音频auid | | +| uid | num | UP主mid | | +| uname | str | UP主昵称 | | +| author | str | 作者名 | | +| title | str | 歌曲标题 | | +| cover | str | 封面图片url | | +| intro | str | 歌曲简介 | | +| lyric | str | lrc歌词url | | +| crtype | num | 1 | **作用尚不明确** | +| duration | num | 歌曲时间长度 | 单位为秒 | +| passtime | num | 歌曲发布时间 | 时间戳 | +| curtime | num | 当前请求时间 | 时间戳 | +| aid | num | 关联稿件avid | 无为0 | +| bvid | str | 关联稿件bvid | 无为空 | +| cid | num | 关联视频cid | 无为0 | +| msid | num | 0 | **作用尚不明确** | +| attr | num | 0 | **作用尚不明确** | +| limit | num | 0 | **作用尚不明确** | +| activityId | num | 0 | **作用尚不明确** | +| limitdesc | str | 空 | **作用尚不明确** | +| ctime | null | - | **作用尚不明确** | +| statistic | obj | 状态数 | | +| vipInfo | obj | UP主会员状态 | | +| collectIds | array | 歌曲所在的收藏夹mlid | 需要登录(SESSDATA) | +| coin_num | num | 投币数 | | + +`data`中的`statistic`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ---- | +| sid | num | 音频auid | | +| play | num | 播放次数 | | +| collect | num | 收藏数 | | +| comment | num | 评论数 | | +| share | num | 分享数 | | + +`data`中的`vipInfo`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------------ | ---- | ------------ | ----------------------------------- | +| type | num | 会员类型 | 0:无
1:月会员
2:年会员 | +| status | num | 会员状态 | 0:无
1:有 | +| due_date | num | 会员到期时间 | 时间戳 毫秒 | +| vip_pay_type | num | 会员开通状态 | 0:无
1:有 | + +`data`中的`collectIds`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | ------------------------- | ---- | +| 0 | num | 第1个所在的收藏夹mlid | | +| n | num | 第(n+1)个所在的收藏夹mlid | | +| …… | num | …… | …… | + +**示例:** + +查询音频`au13598`的基本信息 + +```shell +curl -G 'https://www.bilibili.com/audio/music-service-c/web/song/info' \ +--data-urlencode 'sid=13598' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "msg": "success", + "data": { + "id": 13598, + "uid": 486183, + "uname": "排骨教主", + "author": "排骨教主", + "title": "牵丝戏", + "cover": "http://i0.hdslb.com/bfs/music/cf50d93b4dc08bfc6d3112041d6de0e56045ac5b.jpg", + "intro": "自制 这次要特别感谢山东省京剧院的各位年轻的老师们对我戏腔发声的悉心指导\n关注排骨的微博@排骨节操收割机\n排骨QQ群456237456\n感谢@妄北没睡够(新浪微博) 画的视频图,太美了!!!!!\n", + "lyric": "http://i0.hdslb.com/bfs/music/150587810313598.lrc", + "crtype": 1, + "duration": 239, + "passtime": 1501640683, + "curtime": 1590154258, + "aid": 2554020, + "bvid": "BV1us411S7E6", + "cid": 3990196, + "msid": 0, + "attr": 0, + "limit": 0, + "activityId": 0, + "limitdesc": "", + "ctime": null, + "statistic": { + "sid": 13598, + "play": 1028516, + "collect": 30914, + "comment": 523, + "share": 384 + }, + "vipInfo": { + "type": 2, + "status": 1, + "due_date": 1620316800000, + "vip_pay_type": 0 + }, + "collectIds": [ + 15967839 + ], + "coin_num": 1777 + } +} +``` + +
+ +## 查询歌曲TAG + +> https://www.bilibili.com/audio/music-service-c/web/tag/song + +*请求方式:GET* + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | ---- | -------- | ------ | ---- | +| sid | num | 音频auid | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ------ | -------- | ------------- | +| code | num | 返回值 | 0:成功 | +| msg | str | 错误信息 | 默认为success | +| data | array | TAG列表 | 无为空 | + +`data`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | -------- | ---- | +| 0 | str | TAG1 | | +| n | str | TAG(n+1) | | +| …… | str | …… | …… | + +`data`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | ---------- | ---------------- | +| type | str | song | **作用尚不明确** | +| subtype | num | ??? | **作用尚不明确** | +| key | num | TAG id?? | **作用尚不明确** | +| info | str | TAG名 | | + +**示例:** + +查询音频`au15664`的TAG + +```shell +curl -G 'https://www.bilibili.com/audio/music-service-c/web/tag/song' \ +--data-urlencode 'sid=15664' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "msg": "success", + "data": [ + { + "type": "song", + "subtype": 0, + "key": 1, + "info": "音乐" + }, + { + "type": "song", + "subtype": 1, + "key": 3, + "info": "人声" + }, + { + "type": "song", + "subtype": 2, + "key": 2, + "info": "翻唱" + }, + { + "type": "song", + "subtype": 3, + "key": 33, + "info": "日语" + }, + { + "type": "song", + "subtype": 5, + "key": 41, + "info": "网络歌曲" + }, + { + "type": "song", + "subtype": 4, + "key": 7, + "info": "流行" + } + ] +} +``` + +
+ +## 查询歌曲创作成员列表 + +> https://www.bilibili.com/audio/music-service-c/web/member/song + +*请求方式:GET* + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | ---- | -------- | ------ | ---- | +| sid | num | 音频auid | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ------ | ------------ | ------------- | +| code | num | 返回值 | 0:成功 | +| msg | str | 错误信息 | 默认为success | +| data | array | 成员类型列表 | 无为空 | + +`data`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | ------------- | ---- | +| 0 | str | 成员类型1 | | +| n | str | 成员类型(n+1) | | +| …… | str | …… | …… | + +`data`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ------ | ------------ | ------------------------------------------------------------ | +| list | array | 成员列表 | | +| type | num | 成员类型代码 | 1:歌手
2:作词
3:作曲
4:编曲
5:后期/混音
7:封面制作
8:音源
9:调音
10:演奏
11:乐器
127:UP主 | + +`data`数组中的对象中的`list`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | --------- | ---- | +| 0 | str | 成员1 | | +| n | str | 成员(n+1) | | +| …… | str | …… | …… | + +`list`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| --------- | ---- | ---------- | ---------------- | +| mid | num | 0 | **作用尚不明确** | +| name | str | 成员名 | | +| member_id | num | 成员id?? | **作用尚不明确** | + +**示例:** + +查询音频`au815861`的创作成员信息 + +```shell +curl -G 'https://www.bilibili.com/audio/music-service-c/web/member/song' \ +--data-urlencode 'sid=815861' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "msg": "success", + "data": [ + { + "list": [ + { + "mid": 0, + "name": "匀子Cyrena", + "member_id": 164341 + } + ], + "type": 1 + }, + { + "list": [ + { + "mid": 0, + "name": "圣月樱泪 ", + "member_id": 12349 + } + ], + "type": 2 + }, + { + "list": [ + { + "mid": 0, + "name": "Days的Wing翼", + "member_id": 13777 + } + ], + "type": 3 + }, + { + "list": [ + { + "mid": 0, + "name": "Days的Wing翼", + "member_id": 13777 + } + ], + "type": 4 + }, + { + "list": [ + { + "mid": 0, + "name": "嘟比Dubi", + "member_id": 40902 + } + ], + "type": 5 + }, + { + "list": [ + { + "mid": 0, + "name": "匀子Cyrena", + "member_id": 164222 + } + ], + "type": 127 + } + ] +} +``` + +
+ +## 获取歌曲歌词 + +> https://www.bilibili.com/audio/music-service-c/web/song/lyric + +*请求方式:GET* + +同[查询歌曲基本信息](#查询歌曲基本信息)中的lrc歌词 + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | ---- | -------- | ------ | ---- | +| sid | num | 音频auid | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ----------------------------- | --------------- | ------------- | +| code | num | 返回值 | 0:成功 | +| msg | str | 错误信息 | 默认为success | +| data | 正确时:str
错误时:null | lrc格式歌词信息 | 无为空 | + +**示例:** + +获取音频`au15664`的歌词信息 + +```shell +curl -G 'https://www.bilibili.com/audio/music-service-c/web/song/lyric' \ +--data-urlencode 'sid=15664' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "msg": "success", + "data": "[ar:萧忆情]\n\n[ti:威风堂堂]\n\n[00:26.64]引诱谁去摘下禁果\n\n[00:28.11]甜美滋味偷咬一口\n\n[00:30.03]触及到了最深处果核\n\n[00:31.82]身体开始颤抖\n\n[00:33.85]舌尖已濡湿双腿内侧\n\n[00:35.55]神经末梢警报响彻\n\n[00:37.39]自内而外逐渐变得火热\n\n[00:39.14]现在无须再遵守规则\n\n[00:42.14]还故作矜持说违心的话\n\n[00:45.84]为何动作不停下\n\n[00:47.85]停下来\n\n[00:48.39]已经快停不下来\n\n[00:49.42]还想索取更多\n\n[00:50.46]踩碎那PRIDE\n\n[00:51.41]忘记毫无意义的理智存在\n\n[00:53.27]让暧昧因子在四处的徘徊\n\n[00:55.19]给我收起你那\n\n[00:56.21]太虚伪的STYLE\n\n[00:57.01]直白赤裸的爱\n\n[00:58.00]最原始的DIVE\n\n[00:58.86]喘息中断续的声音叫期待\n\n[01:00.65]别掩饰此刻\n\n[01:01.50]那让人意乱情迷的SMILE\n\n[01:10.90]缓慢吐息迷惑双眼的雾\n\n[01:12.49]强制禁锢身下轻舔锁骨\n\n[01:14.23]就让封锁的心渐渐领悟\n\n[01:15.97]别继续装无辜\n\n[01:17.54]开始脱下的衬衫\n\n[01:19.08]最后的纽扣解开它\n\n[01:20.98]快感get\n\n[01:21.85]从此不顾一切\n\n[01:23.32]还在犹豫什么\n\n[01:24.78]Darling\n\n[01:26.54]站在自由世界的正中央\n\n[01:30.09]窥探你幻想的是否太过浪荡\n\n[01:33.99]太难耐\n\n[01:34.41]分分秒秒太难耐\n\n[01:35.61]床笫间的狩猎\n\n[01:36.63]充满野心的TRY\n\n[01:37.66]不承认口头上无理的摊牌\n\n[01:39.58]只想要在身体里深埋\n\n[01:41.34]现在由我掌控\n\n[01:42.36]随心所欲的LIFE\n\n[01:43.40]给你要的未来\n\n[01:44.41]永远不腐坏\n\n[01:45.32]所有的阴暗面统统藏起来\n\n[01:46.70]仅为你一人展现那能骄傲夸耀的MIND\n\n[01:49.90]将不安的情绪碾至粉末\n\n[01:53.14]抹在你胸口印上最鲜艳的红\n\n[02:21.06]别打算缩起来置身之外\n\n[02:22.64]无论何时\n\n[02:23.27]NO TIME\n\n[02:23.58]ALL RIGHT\n\n[02:24.21]打破一切的羞耻值\n\n[02:25.43]哪里奇怪\n\n[02:26.06]哪里奇怪\n\n[02:26.68]哪里奇怪\n\n[02:27.30]BURN BURN BURN\n\n[02:28.22]想要的就是那\n\n[02:29.17]啊 没错\n\n[02:29.87]再给我更多的触摸\n\n[02:31.62]顺位交换贴近肌肤的DANCE\n\n[02:33.34]好吧 肆无忌惮\n\n[02:34.98]停下来\n\n[02:35.35]已经快停不下来\n\n[02:36.50]还想索取更多\n\n[02:37.68]踩碎那PRIDE\n\n[02:38.38]忘记毫无意义的理智存在\n\n[02:40.27]让暧昧因子在四处的徘徊\n\n[02:42.11]给我收起你那\n\n[02:43.16]太虚伪的STYLE\n\n[02:44.00]直白赤裸的爱\n\n[02:45.06]最原始的DIVE\n\n[02:45.90]喘息中断续的声音叫期待\n\n[02:47.76]别掩饰此刻那让人意乱情迷的SMILE\n\n[02:50.64]将不安的情绪碾至粉末\n\n[02:54.09]抹在你胸口印上最鲜艳的红\n\n[02:58.35]抛弃所有只想拥有此刻\n\n" +} +``` + +
diff --git a/docs/audio/music_list.md b/docs/audio/music_list.md new file mode 100644 index 0000000000..258beb59eb --- /dev/null +++ b/docs/audio/music_list.md @@ -0,0 +1,790 @@ +# 歌单&音频收藏夹详细信息 + +- [歌单&音频收藏夹详细信息](#歌单音频收藏夹详细信息) + - [查询自己创建的歌单](#查询自己创建的歌单) + - [查询音频收藏夹(默认歌单)信息](#查询音频收藏夹默认歌单信息) + - [查询热门歌单](#查询热门歌单) + - [查询热门榜单](#查询热门榜单) + +--- + +## 查询自己创建的歌单 + +> https://www.bilibili.com/audio/music-service-c/web/collections/list + +*请求方式:GET* + +认证方式:Cookie(SESSDATA) + +鉴权方式:Cookie中`DedeUserID`存在且不为0 + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | ---- | -------- | ------ | ---- | +| pn | num | 页码 | 必要 | | +| ps | num | 每页项数 | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ----------------------------- | -------- | ----------------------------------------------------- | +| code | num | 返回值 | 0:成功
72000000:参数错误
72010002:未登录 | +| msg | str | 错误信息 | 默认为success | +| data | 正确时:obj
错误时:null | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| --------- | ------ | ------------ | ---- | +| curPage | num | 当前页码 | | +| pageCount | num | 总计页数 | | +| totalSize | num | 总计收藏夹数 | | +| pageSize | num | 当前页面项数 | | +| data | array | 歌单列表 | | + +`data`中的`data`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | ----------------- | ---- | +| 0 | obj | 音频收藏夹mlid1 | | +| n | obj | 音频收藏夹mlid(n+1) | | +| …… | obj | …… | …… | + +`data`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| --------- | ------ | ------------------------ | -------------------------------- | +| id | num | 音频收藏夹mlid | | +| uid | num | 创建用户mid | | +| uname | str | 创建用户昵称 | | +| title | str | 歌单标题 | | +| type | num | 收藏夹属性 | 0:普通收藏夹
1:默认收藏夹 | +| published | num | 是否公开 | 0:不公开
1:公开 | +| cover | str | 歌单封面图片url | | +| ctime | num | 歌单创建时间 | 时间戳 | +| song | num | 歌单中的音乐数量 | | +| desc | str | 歌单备注信息 | | +| sids | array | 歌单中的音乐 | | +| menuId | num | 音频收藏夹对应的歌单amid | | +| statistic | obj | 歌单状态数信息 | | + +`data`中的`sids`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | ------------------- | ---------------- | +| 0 | num | 收藏的音频auid1 | | +| n | num | 收藏的音频auid(n+1) | 按照歌单顺序排列 | +| …… | num | …… | …… | + +`data`中的`statistic`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | ------------------------ | ---- | +| sid | num | 音频收藏夹对应的歌单amid | | +| play | num | 播放数 | | +| collect | num | 收藏数 | | +| comment | null | 评论数 | | +| share | num | 分享数 | | + +**示例:** + +```shell +curl -G 'https://www.bilibili.com/audio/music-service-c/web/collections/list' \ +--data-urlencode 'ps=2' \ +--data-urlencode 'pn=1' \ +-b 'SESSDATA=xxx;DedeUserID=1;' +``` + +共计创建了两个歌单,如下 + +
+查看响应示例: + +```json +{ + "code": 0, + "msg": "success", + "data": { + "curPage": 1, + "pageCount": 1, + "totalSize": 2, + "pageSize": 2, + "data": [ + { + "id": 15967839, + "uid": 293793435, + "uname": "社会易姐QwQ", + "title": "默认歌单", + "type": 1, + "published": 1, + "cover": "http://i0.hdslb.com/bfs/music/1e079693701d2f525850c288fcc48fa4259a73f6.jpg", + "ctime": 1519295502, + "song": 13, + "desc": "", + "sids": [ + 11673, + 276404, + 15664, + 737904, + 108588, + 1286999, + 658085, + 682118, + 736952, + 48716, + 15711, + 13598, + 57744 + ], + "menuId": 15958713, + "statistic": { + "sid": 15958713, + "play": 0, + "collect": 0, + "comment": null, + "share": 0 + } + }, + { + "id": 30894022, + "uid": 293793435, + "uname": "社会易姐QwQ", + "title": "test", + "type": 0, + "published": 1, + "cover": "", + "ctime": 1590154346, + "song": 0, + "desc": "test1", + "sids": [], + "menuId": 30866686, + "statistic": { + "sid": 30866686, + "play": 0, + "collect": 0, + "comment": 0, + "share": 0 + } + } + ] + } +} +``` + +
+ +## 查询音频收藏夹(默认歌单)信息 + +> https://www.bilibili.com/audio/music-service-c/web/collections/info + +*请求方式:GET* + +认证方式:Cookie(SESSDATA) + +鉴权方式:Cookie中`DedeUserID`存在且不为0 + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | ---- | ------------ | ------ | ------------------ | +| sid | num | 音频收藏夹mlid | 必要 | 必须为默认收藏夹mlid | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ----------------------------- | -------- | ----------------------------------------------------- | +| code | num | 返回值 | 0:成功
72000000:参数错误
72010002:未登录 | +| msg | str | 错误信息 | 默认为success | +| data | 正确时:obj
错误时:null | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| --------- | ------ | ------------------------ | ---------------------- | +| id | num | 音频收藏夹mlid | | +| uid | num | 创建用户mid | | +| uname | str | 创建用户昵称 | | +| title | str | 默认歌单 | 恒为`默认歌单` | +| type | num | 1 | 恒为`1` | +| published | num | 是否公开 | 0:不公开
1:公开 | +| cover | str | 歌单封面图片url | | +| ctime | num | 歌单创建时间 | 时间戳 | +| song | num | 歌单中的音乐数量 | | +| desc | str | 空 | 恒为空 | +| sids | array | 歌单中的音乐 | | +| menuId | num | 音频收藏夹对应的歌单amid | 与普通歌单不同通用 | +| statistic | obj | 歌单状态数信息 | | + +`data`中的`sids`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | ------------------- | ---------------- | +| 0 | num | 收藏的音频auid1 | | +| n | num | 收藏的音频auid(n+1) | 按照歌单顺序排列 | +| …… | num | …… | …… | + +`data`中的`statistic`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | ------------------------ | ---- | +| sid | num | 音频收藏夹对应的歌单amid | | +| play | num | 0 | | +| collect | num | 0 | | +| comment | null | - | | +| share | num | 0 | | + +**示例:** + +查询我的默认歌单,id为` 15967839 ` + +```shell +curl -G 'https://www.bilibili.com/audio/music-service-c/web/collections/info' \ +--data-urlencode 'sid=15967839 ' \ +-b 'SESSDATA=xxx;DedeUserID=1;' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "msg": "success", + "data": { + "id": 15967839, + "uid": 293793435, + "uname": "社会易姐QwQ", + "title": "默认歌单", + "type": 1, + "published": 1, + "cover": "http://i0.hdslb.com/bfs/music/1e079693701d2f525850c288fcc48fa4259a73f6.jpg", + "ctime": 1519295502, + "song": 13, + "desc": "", + "sids": [ + 11673, + 276404, + 15664, + 737904, + 108588, + 1286999, + 658085, + 682118, + 736952, + 48716, + 15711, + 13598, + 57744 + ], + "menuId": 15958713, + "statistic": { + "sid": 15958713, + "play": 0, + "collect": 0, + "comment": null, + "share": 0 + } + } +} +``` + +
+ + +## 查询热门歌单 + +> https://www.bilibili.com/audio/music-service-c/web/menu/hit + +*请求方式:GET* + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| --- | --- | ---- | --- | --- | +| pn | num | 页码 | 必要 | | +| ps | num | 每页项数 | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---- | --------------------- | ---- | ----------------------------------------- | +| code | num | 返回值 | 0:成功
72000000:参数错误
72010002:未登录 | +| msg | str | 错误信息 | 默认为success | +| data | 正确时:obj
错误时:null | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| --------- | ----- | ------ | --- | +| curPage | num | 当前页码 | | +| pageCount | num | 总计页数 | | +| totalSize | num | 总计收藏夹数 | | +| pageSize | num | 当前页面项数 | | +| data | array | 歌单列表 | | + +`data`中的`data`数组: + +| 项 | 类型 | 内容 | 备注 | +| --- | --- | -------------- | --- | +| 0 | obj | 音频收藏夹mlid1 | | +| n | obj | 音频收藏夹mlid(n+1) | | +| …… | obj | …… | …… | + +`data`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| --------- | --- | -------------- | ----------------------------- | +| menuId | num | 音频收藏夹对应的歌单amid | | +| uid | num | 创建用户mid | | +| uname | str | 创建用户昵称 | | +| title | str | 歌单标题 | | +| cover | str | 歌单封面图片url | | +| intro | str | 歌单介绍 | | +| type | num | 歌单属性 | 1:普通歌单
2:置顶歌单
5:PGC歌单 | +| off | num | 歌单是否公开 | 0:公开
1:私密 | +| ctime | num | 歌单创建时间 | 时间戳 | +| curtime | num | 当前时间 | 时间戳 | +| statistic | obj | 歌单状态数信息 | | +| snum | num | 歌单包含歌曲个数 | | + +`data`中的`statistic`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | --- | -------------- | --- | +| sid | num | 音频收藏夹对应的歌单amid | | +| play | num | 播放数 | | +| collect | num | 收藏数 | | +| comment | num | 评论数 | | +| share | num | 分享数 | | + +**示例:** + +```shell +curl -G 'https://www.bilibili.com/audio/music-service-c/web/menu/hit' \ + +--data-urlencode 'ps=1' \ + +--data-urlencode 'pn=6' +``` + +使用参数:`ps=1&qn=2` + +
+查看响应示例: + +```json +{ + "code": 0, + "msg": "success", + "data": { + "curPage": 1, + "pageCount": 1, + "totalSize": 11, + "pageSize": 3, + "data": [{ + "menuId": 10624, + "uid": 32708543, + "uname": "大家的音乐姬", + "title": "新曲推荐", + "cover": "http://i0.hdslb.com/bfs/music/a32c1ed4f6ec3f74f8240f4486a750dda3a509e5.jpg", + "intro": "每天11:00更新,为你推送最新音乐", + "type": 2, + "off": 0, + "ctime": 1501209433, + "curtime": 1655712354, + "statistic": { + "sid": 10624, + "play": 2366255, + "collect": 20565, + "comment": 1104, + "share": 622 + }, + "snum": 16, + "attr": 0, + "isDefault": 0, + "collectionId": 0 + }, { + "menuId": 125312, + "uid": 32708543, + "uname": "大家的音乐姬", + "title": "丧甜可口?你意想不到的软萌电音", + "cover": "http://i0.hdslb.com/bfs/music/04f6c29ed094368253bc05fecb7bf990cee2d3a3.jpg", + "intro": "这个化学反应是怦然心动?", + "type": 1, + "off": 0, + "ctime": 1533298738, + "curtime": 1655712354, + "statistic": { + "sid": 125312, + "play": 298018, + "collect": 9928, + "comment": 89, + "share": 239 + }, + "snum": 19, + "attr": 0, + "isDefault": 0, + "collectionId": 0 + }, { + "menuId": 26241, + "uid": 32708543, + "uname": "大家的音乐姬", + "title": "那些听了会泪目的动漫歌曲", + "cover": "http://i0.hdslb.com/bfs/music/006832318fc85fdf287667d51d83dba3b78be808.jpg", + "intro": "那些年陪伴我们的动漫歌曲,你还记得吗?\n", + "type": 1, + "off": 0, + "ctime": 1509608572, + "curtime": 1655712354, + "statistic": { + "sid": 26241, + "play": 370120, + "collect": 8390, + "comment": 110, + "share": 131 + }, + "snum": 12, + "attr": 0, + "isDefault": 0, + "collectionId": 0 + }] + } +} +``` + +
+ +## 查询热门榜单 + +> https://www.bilibili.com/audio/music-service-c/web/menu/rank + +*请求方式:GET* + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| --- | --- | ---- | --- | --- | +| pn | num | 页码 | 必要 | | +| ps | num | 每页项数 | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---- | --------------------- | ---- | ----------------------------------------- | +| code | num | 返回值 | 0:成功
72000000:参数错误
72010002:未登录 | +| msg | str | 错误信息 | 默认为success | +| data | 正确时:obj
错误时:null | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| --------- | ----- | ------ | --- | +| curPage | num | 当前页码 | | +| pageCount | num | 总计页数 | | +| totalSize | num | 总计收藏夹数 | | +| pageSize | num | 当前页面项数 | | +| data | array | 歌单列表 | | + +`data`中的`data`数组: + +| 项 | 类型 | 内容 | 备注 | +| --- | --- | -------------- | --- | +| 0 | obj | 音频收藏夹mlid1 | | +| n | obj | 音频收藏夹mlid(n+1) | | +| …… | obj | …… | …… | + +`data`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| --------- | ----- | -------------- | ----------------------------- | +| menuId | num | 音频收藏夹对应的歌单amid | | +| uid | num | 创建用户mid | | +| uname | str | 创建用户昵称 | | +| title | str | 歌单标题 | | +| cover | str | 歌单封面图片url | | +| intro | str | 歌单介绍 | | +| type | num | 歌单属性 | 1:普通歌单
2:置顶歌单
5:PGC歌单 | +| off | num | 歌单是否公开 | 0:公开
1:私密 | +| ctime | num | 歌单创建时间 | 时间戳 | +| curtime | num | 当前时间 | 时间戳 | +| statistic | obj | 歌单状态数信息 | | +| snum | num | 歌单包含歌曲个数 | | +| audios | array | 歌单中的音乐信息(部分) | | + +`data`数组中的`statistic`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | --- | -------------- | --- | +| sid | num | 音频收藏夹对应的歌单amid | | +| play | num | 收藏数 | | +| collect | num | 点赞数 | | +| comment | num | 评论数 | | +| share | num | 分享数 | | + +`data`数组中的`audios`数组: + +| 项 | 类型 | 内容 | 备注 | +| --- | --- | ------- | --- | +| 0 | obj | 音频1 | | +| n | obj | 音频(n+1) | | +| …… | obj | …… | …… | + +`audios`数组中的`audios`对象: + +| 字段 | 类型 | 内容 | 备注 | +| -------- | --- | ---- | ------- | +| id | num | 音频id | | +| title | str | 音频标题 | | +| duration | num | 音频时长 | 单位:秒(s) | + + + +**示例:** + +```shell +curl -G 'https://www.bilibili.com/audio/music-service-c/web/menu/rank' \ + +--data-urlencode 'ps=1' \ + +--data-urlencode 'pn=6' +``` + +使用参数:`ps=1&qn=6` + +
+查看响应示例: + +```json +{ + "code": 0, + "msg": "success", + "data": { + "curPage": 1, + "pageCount": 2, + "totalSize": 12, + "pageSize": 6, + "data": [{ + "menuId": 10624, + "uid": 32708543, + "uname": "大家的音乐姬", + "title": "新曲推荐", + "cover": "http://i0.hdslb.com/bfs/music/a32c1ed4f6ec3f74f8240f4486a750dda3a509e5.jpg", + "intro": "每天11:00更新,为你推送最新音乐", + "type": 2, + "off": 0, + "ctime": 1501209433, + "curtime": 1655713346, + "statistic": { + "sid": 10624, + "play": 2366255, + "collect": 20565, + "comment": 1104, + "share": 622 + }, + "snum": 16, + "attr": 0, + "isDefault": 0, + "collectionId": 0, + "audios": [{ + "id": 1572281, + "title": "【Mitchie M】Nechusho No!No! (feat. 初音未来 & MEIKO)", + "duration": 112 + }, { + "id": 1551077, + "title": "【洛天依原创】双星伴生", + "duration": 197 + }, { + "id": 1544428, + "title": "【小柔】寄り酔い(cover)", + "duration": 216 + }] + }, { + "menuId": 10627, + "uid": 32708543, + "uname": "大家的音乐姬", + "title": "热歌榜(每日11:00更新)", + "cover": "http://i0.hdslb.com/bfs/music/bc735b32ab123f7ddc602b9194defae2cd66062f.jpg", + "intro": "每日上午11:00更新,精选三日内热门投稿作品。", + "type": 2, + "off": 0, + "ctime": 1501211353, + "curtime": 1655713346, + "statistic": { + "sid": 10627, + "play": 2289612, + "collect": 11437, + "comment": 434, + "share": 223 + }, + "snum": 20, + "attr": 0, + "isDefault": 0, + "collectionId": 0, + "audios": [{ + "id": 1955567, + "title": "山海(原唱:草东没有派对)", + "duration": 215 + }, { + "id": 923884, + "title": "platiunm", + "duration": 181 + }, { + "id": 1954370, + "title": "Dark Dawn v1", + "duration": 200 + }] + }, { + "menuId": 10628, + "uid": 32708543, + "uname": "大家的音乐姬", + "title": "原创榜(每日11:00更新)", + "cover": "http://i0.hdslb.com/bfs/music/58782504cefb307878d12422fd365ed7f971fad1.jpg", + "intro": "每日上午11:00更新,精选三日内原创投稿音乐。", + "type": 2, + "off": 0, + "ctime": 1501211627, + "curtime": 1655713346, + "statistic": { + "sid": 10628, + "play": 395817, + "collect": 2583, + "comment": 314, + "share": 88 + }, + "snum": 20, + "attr": 0, + "isDefault": 0, + "collectionId": 0, + "audios": [{ + "id": 923884, + "title": "platiunm", + "duration": 181 + }, { + "id": 1954370, + "title": "Dark Dawn v1", + "duration": 200 + }, { + "id": 1954654, + "title": "张真源 - 你要快乐 (Live)", + "duration": 235 + }] + }, { + "menuId": 10629, + "uid": 32708543, + "uname": "大家的音乐姬", + "title": "中文人声三日榜", + "cover": "http://i0.hdslb.com/bfs/music/f547e3b96d3f283eaa6a3a071de22092fb5101f8.jpg", + "intro": "每日上午11:00更新,精选三日内中文人声投稿音乐。", + "type": 2, + "off": 0, + "ctime": 1501211818, + "curtime": 1655713346, + "statistic": { + "sid": 10629, + "play": 842507, + "collect": 5102, + "comment": 362, + "share": 137 + }, + "snum": 20, + "attr": 0, + "isDefault": 0, + "collectionId": 0, + "audios": [{ + "id": 1955567, + "title": "山海(原唱:草东没有派对)", + "duration": 215 + }, { + "id": 1955546, + "title": "爱你", + "duration": 86 + }, { + "id": 1954654, + "title": "张真源 - 你要快乐 (Live)", + "duration": 235 + }] + }, { + "menuId": 10630, + "uid": 32708543, + "uname": "大家的音乐姬", + "title": "日文人声三日榜", + "cover": "http://i0.hdslb.com/bfs/music/7dd5d629f50481e22e2f5eced510f5fbd89f5233.jpg", + "intro": "每日上午11:00更新,精选三日内日文人声投稿音乐。", + "type": 2, + "off": 0, + "ctime": 1501211959, + "curtime": 1655713346, + "statistic": { + "sid": 10630, + "play": 891268, + "collect": 8671, + "comment": 601, + "share": 169 + }, + "snum": 20, + "attr": 0, + "isDefault": 0, + "collectionId": 0, + "audios": [{ + "id": 1954053, + "title": "派对浪客诸葛孔明 插入歌『ChocoPate』久远七海 starring Lezel", + "duration": 117 + }, { + "id": 1956316, + "title": "ただ君に晴れ(只给予你的晴天)", + "duration": 196 + }, { + "id": 1956321, + "title": "うまぴょい伝説(马儿蹦跳传说)", + "duration": 262 + }] + }, { + "menuId": 10631, + "uid": 32708543, + "uname": "大家的音乐姬", + "title": "VOCALOID三日榜", + "cover": "http://i0.hdslb.com/bfs/music/ce8b1646cbbd5513de7976ba81d0fd9c340c1899.jpg", + "intro": "每日上午11:00更新,精选三日内VOCALOID投稿音乐。", + "type": 2, + "off": 0, + "ctime": 1501212166, + "curtime": 1655713346, + "statistic": { + "sid": 10631, + "play": 170112, + "collect": 2900, + "comment": 528, + "share": 60 + }, + "snum": 10, + "attr": 0, + "isDefault": 0, + "collectionId": 0, + "audios": [{ + "id": 1954717, + "title": "弦歌引-翻调", + "duration": 230 + }, { + "id": 1956148, + "title": "告RADIO - 春色リップ", + "duration": 253 + }, { + "id": 1954302, + "title": "susan说", + "duration": 195 + }] + }] + } +} +``` + +
diff --git a/docs/audio/musicstream_url.md b/docs/audio/musicstream_url.md new file mode 100644 index 0000000000..82fa2f365c --- /dev/null +++ b/docs/audio/musicstream_url.md @@ -0,0 +1,282 @@ +# 音频流URL + + + +- [获取音频流URL(无法获取付费音频)(web端)](#获取音频流url无法获取付费音频web端) +- [获取音频流URL(可获取付费音频)(双端)](#获取音频流url可获取付费音频双端) +- [音频流的获取](#音频流的获取) + +--- + +音质`qn`参数: + +| 代码 | 含义 | +| ---- | -------------------- | +| 0 | 流畅 128K | +| 1 | 标准 192K | +| 2 | 高品质 320K | +| 3 | 无损 FLAC (大会员) | + +## 获取音频流URL(无法获取付费音频)(web端) + +> https://www.bilibili.com/audio/music-service-c/web/url + +*请求方式:GET* + +**注:web端无法播放完整付费歌曲,付费歌曲为30s试听片段** + +本接口仅能获取192K音质的音频 + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | ---- | -------- | ------ | ---- | +| sid | num | 音频auid | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | -------- | ----------------------------------------------------------- | +| code | num | 返回值 | 0:成功
7201006:未找到或已下架
72000000:请求错误 | +| msg | str | 错误信息 | 默认为success | +| data | obj | 数据本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| --------- | ----- | --------- | --------------------------------------- | +| sid | num | 音频auid | | +| type | num | 音质标识 | -1:试听片段(192K)
1:192K | +| info | str | 空 | **作用尚不明确** | +| timeout | num | 有效时长 | 单位为秒
一般为3h | +| size | num | 文件大小 | 单位为字节
当`type`为-1时`size`为0 | +| cdns | array | 音频流url | | +| qualities | null | - | | +| title | null | - | | +| cover | null | - | | + +`data`对象的`cdns`数组: + + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | ------------- | ---- | +| 0 | str | 音频流url | | +| 1 | str | 备用音频流url | | + +**示例:** + +```shell +curl -G 'https://www.bilibili.com/audio/music-service-c/web/url' \ +--data-urlencode 'sid=sid=15664' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "msg": "success", + "data": { + "sid": 15664, + "type": 1, + "info": "", + "timeout": 10800, + "size": 4853263, + "cdns": [ + "https://upos-sz-mirrorkodo.bilivideo.com/ugaxcode/7bf6a3a3e94421ccc653f005457b1e8c-192k.m4a?deadline=1595331310&gen=uga&os=kodobv&uparams=deadline,gen,os&upsig=0ecd3c7a8d9539f260239d8fa4c093db", + "https://upos-sz-mirrorks3.bilivideo.com/ugaxcode/7bf6a3a3e94421ccc653f005457b1e8c-192k.m4a?deadline=1595331310&gen=uga&os=ks3bv&uparams=deadline,gen,os&upsig=f3fe53aff56655b1b7264ae4ab65872e" + ], + "qualities": null, + "title": null, + "cover": null + } +} +``` + +
+ +## 获取音频流URL(可获取付费音频)(双端) + +> https://api.bilibili.com/audio/music-service-c/url + +*请求方式:GET* + +认证方式:APP或Cookie(SESSDATA) + +**注:付费音乐需要有带大会员或音乐包的账号登录(Cookie或APP),否则为试听片段** + +无损音质需要登录的用户为会员 + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ---------- | ---- | ------------ | ----------- | -------------- | +| access_key | str | APP登录Token | APP方式必要 | | +| songid | num | 音频auid | 必要 | | +| quality | num | 音质代码 | 必要 | **详情见上表** | +| privilege | num | 必须为`2` | 必要 | | +| mid | num | 当前用户mid | 必要 | 可为任意值 | +| platform | str | 平台标识 | 必要 | 可为任意值 | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | -------- | ----------------------------------------------------------- | +| code | num | 返回值 | 0:成功
7201006:未找到或已下架
72000000:请求错误 | +| msg | str | 错误信息 | 默认为success | +| data | obj | 数据本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| --------- | ----- | ----------- | ------------------------------------------------------------ | +| sid | num | 音频auid | | +| type | num | 音质标识 | -1:试听片段(192K)
0:128K
1:192K
2:320K
3:FLAC | +| info | str | 空 | **作用尚不明确** | +| timeout | num | 有效时长 | 单位为秒
一般为3h | +| size | num | 文件大小 | 单位为字节
当`type`为-1时`size`为0 | +| cdns | array | 音频流url | | +| qualities | array | 音质列表 | | +| title | str | 音频标题 | | +| cover | str | 音频封面url | | + +`data`对象的`cdns`数组: + + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | ------------- | ---- | +| 0 | str | 音频流url | | +| 1 | str | 备用音频流url | | + +`data`对象的`qualities`数组: + + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | ----------- | ---------------- | +| 0 | obj | 音质1 | 音质由高向低顺序 | +| n | obj | 音质(n+1) | | + +`qualities`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----------- | ---- | ---------------- | ---------------------- | +| type | num | 音质代码 | **详情见上表** | +| desc | str | 音质名称 | | +| size | num | 该音质的文件大小 | 单位为字节 | +| bps | str | 比特率标签 | | +| tag | str | 音质标签 | | +| require | num | 是否需要会员权限 | 0:不需要
1:需要 | +| requiredesc | str | 会员权限标签 | | + +**示例:** + +获取音频`au682118`的音频流url,音质为`3(无损)` + +Cookie方式: + +```shell +curl -G 'https://api.bilibili.com/audio/music-service-c/url +--data-urlencode 'songid=682118' \ +--data-urlencode 'quality=3' \ +--data-urlencode 'privilege=2' \ +--data-urlencode 'platform=android' \ +--data-urlencode 'mid=293793435' \ +-b 'SESSDATA=xxx' +``` + +APP方式: + +```shell +curl -G 'https://api.bilibili.com/audio/music-service-c/url +--data-urlencode 'access_key=xxx' \ +--data-urlencode 'songid=682118' \ +--data-urlencode 'quality=3' \ +--data-urlencode 'privilege=2' \ +--data-urlencode 'platform=android' \ +--data-urlencode 'mid=293793435' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "msg": "success", + "data": { + "sid": 682118, + "type": 3, + "info": "", + "timeout": 10800, + "size": 34456494, + "cdns": [ + "https://upos-sz-mirrorkodo.bilivideo.com/ugaxcode/m190102ws2pzf6jitbem841vq2x0du5x-flac.flac?deadline=1595332269&gen=uga&os=kodobv&uparams=deadline,gen,os&upsig=ac2284d97a61ef8758681eccf621c56d", + "https://upos-sz-mirrorks3.bilivideo.com/ugaxcode/m190102ws2pzf6jitbem841vq2x0du5x-flac.flac?deadline=1595332269&gen=uga&os=ks3bv&uparams=deadline,gen,os&upsig=3ac7d94dda5664f6f95dbfffeb289744" + ], + "qualities": [ + { + "type": 3, + "desc": "无损音质", + "size": 34456494, + "bps": "", + "tag": "SQ", + "require": 1, + "requiredesc": "付费享受" + }, + { + "type": 2, + "desc": "高品质", + "size": 10788682, + "bps": "320kbit/s", + "tag": "HQ", + "require": 0, + "requiredesc": "" + }, + { + "type": 1, + "desc": "标准", + "size": 6491973, + "bps": "192kbit/s", + "tag": "", + "require": 0, + "requiredesc": "" + }, + { + "type": 0, + "desc": "流畅", + "size": 4343667, + "bps": "128kbit/s", + "tag": "", + "require": 0, + "requiredesc": "" + } + ], + "title": "aLIEz", + "cover": "http://i0.hdslb.com/bfs/music/61d3f8cfdce14d2d1b006af59559c9bd22a2d21b.jpg" + } +} +``` + +
+ +## 音频流的获取 + +将`data`.`cdns`.`[0]`或`data`.`cdns`.`[1]`中的内容作为url进行GET操作 + +需要验证请求`user-agent` 不为空 + +**user-agent错误并且referer不在`*.bilibili.com`域名下的情况下会导致403 Forbidden,故无法获取** + +**以上述音频url为例:** + +```shell +wget 'https://upos-sz-mirrorkodo.bilivideo.com/ugaxcode/m190102ws2pzf6jitbem841vq2x0du5x-flac.flac?deadline=1595332269&gen=uga&os=kodobv&uparams=deadline,gen,os&upsig=ac2284d97a61ef8758681eccf621c56d' \ +-O 'Download_music.flac' +``` + +响应正文将返回一个flac文件 diff --git a/docs/audio/status_number.md b/docs/audio/status_number.md new file mode 100644 index 0000000000..fa5b66cc58 --- /dev/null +++ b/docs/audio/status_number.md @@ -0,0 +1,67 @@ +# 音频状态数 + +- [歌曲状态数](#歌曲状态数) + +--- + +## 歌曲状态数 + +>https://www.bilibili.com/audio/music-service-c/web/stat/song + +*请求方式:GET* + +唯缺投币数2333333 + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | ---- | -------- | ------ | ---- | +| sid | num | 音频auid | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | -------- | ------------------------------- | +| code | num | 返回值 | 0:成功
72000000:参数错误 | +| msg | str | 错误信息 | 默认为success | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ---- | +| sid | num | 音频auid | | +| play | num | 播放次数 | | +| collect | num | 收藏数 | | +| comment | num | 评论数 | | +| share | num | 分享数 | | + +**示例:** + +查询歌曲`au15664`的状态数 + +```shell +curl -G 'https://www.bilibili.com/audio/music-service-c/web/stat/song' \ +--data-urlencode 'sid=15664' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "msg": "success", + "data": { + "sid": 15664, + "play": 1377390, + "collect": 44340, + "comment": 2756, + "share": 4114 + } +} +``` + +
diff --git a/docs/bangumi/follow.md b/docs/bangumi/follow.md new file mode 100644 index 0000000000..e46beea92c --- /dev/null +++ b/docs/bangumi/follow.md @@ -0,0 +1,129 @@ +# 追番相关 + +- [追番](#追番) +- [取消追番](#取消追番) + +--- + +## 追番 +> https://api.bilibili.com/pgc/web/follow/add + +*请求方式:POST* + +鉴权方式:Cookie(SESSDATA) + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +|----------|-----|--------|-----|-----| +| season_id | str | 剧集ssid | 必要 | | +| csrf | str | csrf token(位于cookies中的bili_jct) | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | ------ | ------------------------------- | +| code | num | 返回值 | 0:成功
-111:csrf校验失败 | +| message | str | 信息 | 成功时:success | +| result | obj |见下表| | + +根对象中的`result`对象: + +| 字段 | 类型 | 内容 | 备注 | +| -------- | ---- | ---------- | ---- | +| fmid | num | 0 | | +| relation | bool | false | | +| status | num | 2 | | +| toast | str | 自己追的番就要好好看完哟^o^ | | + +**示例:** + +追番`ssid=41410`的番剧 + +```shell +curl -G 'https://api.bilibili.com/pgc/web/follow/add' \ +--data-urlencode 'season_id=41410' \ +--data-urlencode 'csrf=xxx' \ +``` + +
+ +查看响应示例: + +```json +{ + "code": 0, + "message": "success", + "result": { + "fmid": 0, + "relation": false, + "status": 2, + "toast": "自己追的番就要好好看完哟^o^" + } +} +``` +
+ +## 取消追番 + +> https://api.bilibili.com/pgc/web/follow/del + +*请求方式:POST* + +鉴权方式:Cookie(SESSDATA) + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| --------- | ---- | ----------------------------------- | ------ | ---- | +| season_id | str | 剧集ssid | 必要 | | +| csrf | str | csrf token(位于cookies中的bili_jct) | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | ------ | ------------------------------- | +| code | num | 返回值 | 0:成功
-111:csrf校验失败 | +| message | str | 信息 | 成功时:success | +| result | obj | 见下表 | | + +根对象中的`result`对象: + +| 字段 | 类型 | 内容 | 备注 | +| -------- | ---- | ---------- | ---- | +| fmid | num | 0 | | +| relation | bool | true | | +| status | num | 0 | | +| toast | str | 已取消追番 | | + +**示例:** + +取消`ssid=41410`的追番 + +```shell +curl -G 'https://api.bilibili.com/pgc/web/follow/del' \ +--data-urlencode 'season_id=41410' \ +--data-urlencode 'csrf=xxx' \ +``` + +
+ +查看响应示例: + +```json +{ + "code": 0, + "message": "success", + "result": { + "fmid": 0, + "relation": false, + "status": 0, + "toast": "已取消追番" + } +} +``` +
diff --git a/docs/bangumi/info.md b/docs/bangumi/info.md new file mode 100644 index 0000000000..857257cdec --- /dev/null +++ b/docs/bangumi/info.md @@ -0,0 +1,1029 @@ +# 剧集基本信息 + +- [剧集基本信息(mdid方式)](#剧集基本信息mdid方式) +- [获取剧集明细(web端)(ssid/epid方式)](#获取剧集明细web端ssidepid方式) +- [获取剧集分集信息](#获取剧集分集信息) + +--- + +## 剧集基本信息(mdid方式) + + +> https://api.bilibili.com/pgc/review/user + +*请求方式:GET* + +鉴权方式:Cookie(SESSDATA)或APP + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +|----------|-----|--------|-----|-----| +| media_id | str | 剧集mdid | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +|---------|-----|------|----------------------------------| +| code | num | 返回值 | 0:成功
-400:请求错误
-404:错误 | +| message | str | 错误信息 | 默认为success | +| result | obj | 信息本体 | | + +`result`对象: + +| 字段 | 类型 | 内容 | 备注 | +|--------|-----|--------|----------| +| media | obj | 剧集信息 | | +| review | obj | 用户操作信息 | 仅登录时存在此项 | + +`result`中的`media`对象: + +| 字段 | 类型 | 内容 | 备注 | +|--------------------|-------|-----------|--------------------------------------------------------------| +| areas | array | 地区 | | +| cover | str | 封面图片url | | +| horizontal_picture | str | 横板封面图片url | | +| media_id | num | 剧集mdid | | +| new_ep | obj | 最新一话信息 | | +| rating | obj | 评分信息 | | +| season_id | num | 剧集ssid | | +| share_url | url | 剧集详情页连接 | | +| title | str | 标题 | | +| type | num | 剧集类型id | 1:番剧
2:电影
3:纪录片
4:国创
5:电视剧
6:漫画
7:综艺 | +| type_name | str | 剧集类型 | | + +`media`中的`areas`数组: + +| 项 | 类型 | 内容 | 备注 | +|-----|-----|-----------|-----| +| 0 | obj | 地区信息1 | | +| n | obj | 地区信息(n+1) | | +| …… | obj | …… | | + +`areas`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +|------|-----|--------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| id | num | 所属地区编号 | 1:中国大陆
2:日本
3:美国
4:英国
5:加拿大
6:中国香港
7:中国台湾
8:韩国
9:法国
10:泰国
12:新加坡
13:西班牙
14:俄罗斯
15:德国
16:其他
17:丹麦
18:乌克兰
19:以色列
20:伊朗
24:匈牙利
22:克罗地亚
23:冰岛
24:匈牙利
25:南非
26:印尼
27:印度
30:土耳其
31:墨西哥
32:委内瑞拉
33:巴西
34:希腊
35:意大利
36:挪威
37:捷克
39:新西兰
40:智利
41:比利时
42:波兰
43:澳大利亚
44:爱尔兰
45:瑞典
46:瑞士
47:芬兰
48:苏联
49:荷兰
51:阿根廷
53:古巴
54:菲律宾
55:哈萨克斯坦 | +| name | str | 所属地区名称 | | + +`media`中的`new_ep`对象: + +| 字段 | 类型 | 内容 | 备注 | +|------------|-----|-----------|--------------------| +| id | num | 最新一话的epid | | +| index | str | 最新一话名称 | | +| index_show | str | 最新一话显示名称 | eg. `第1话`、`更新至第4话` | + +`media`中的`rating`对象: + +| 字段 | 类型 | 内容 | 备注 | +|-------|-----|--------|-----| +| count | num | 总计评分人数 | | +| score | num | 评分 | | + +`result`中的`review`对象: + +| 字段 | 类型 | 内容 | 备注 | +|---------|-----|-----|--------| +| is_coin | num | 0 | 作用尚不明确 | +| is_open | num | 1 | 作用尚不明确 | + +**示例:** + +查询剧集`md28220978`的基本信息 + +```shell +curl -G 'https://api.bilibili.com/pgc/review/user' \ +--data-urlencode 'media_id=28220978' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "success", + "result": { + "media": { + "areas": [ + { + "id": 2, + "name": "日本" + } + ], + "cover": "http://i0.hdslb.com/bfs/bangumi/8aa0bfce050c72c6626b63d3093a88527c251026.jpg", + "horizontal_picture": "http://i0.hdslb.com/bfs/bangumi/8aa0bfce050c72c6626b63d3093a88527c251026.jpg", + "media_id": 28220978, + "new_ep": { + "id": 21278, + "index": "14", + "index_show": "全14话" + }, + "rating": { + "count": 80693, + "score": 9.9 + }, + "season_id": 1172, + "share_url": "https://www.bilibili.com/bangumi/media/md28220978", + "title": "轻音少女 第一季", + "type": 1, + "type_name": "番剧" + } + } +} +``` + +
+ +## 获取剧集明细(web端)(ssid/epid方式) + +> https://api.bilibili.com/pgc/view/web/season + +*请求方式:GET* + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| --------- | ---- | -------- | ------------ | ------------------------ | +| season_id | num | 番剧ssid | 必要(可选) | season_id与ep_id任选其一 | +| ep_id | num | 剧集epid | 必要(可选) | season_id与ep_id任选其一 | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ----------------------- | +| code | num | 返回值 | 0:成功
-404:错误 | +| message | str | 错误信息 | 默认为success | +| ttl | num | 1 | 作用尚不明确 | +| 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
已完结:正整数 | +| type | num | 剧集类型 | 1:番剧
2:电影
3:纪录片
4:国创
5:电视剧
7:综艺 | +| up_info | obj | UP主信息 | 若无相关内容则无此项 | + +`result`中的`activity`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----------- | ---- | -------- | ------------ | +| head_bg_url | str | 空 | 作用尚不明确 | +| id | num | 活动id | | +| title | str | 活动标题 | | + +`result`中的`episodes`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | --------------- | ------------ | +| 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} | + +`result`中的`new_ep`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------ | ---- | ------------ | ---------------- | +| desc | str | 更新备注 | | +| id | num | 最新一话epid | | +| is_new | num | 是否最新发布 | 0:否
1:是 | +| title | str | 最新一话标题 | | + +`result`中的`payment`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------------------- | ---- | ---- | ---- | +| discount | num | | | +| pay_type | obj | | | +| price | str | | | +| promotion | str | | | +| tip | str | | | +| vip_discount | num | | | +| vip_first_promotion | str | | | +| vip_promotion | str | | | + +`result`中的`positive`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----- | ---- | ---- | ---- | +| id | num | | | +| title | str | | | + +`result`中的`publish`对象: + +| 字段 | 类型 | 内容 | 备注 | +| --------------- | ---- | ---------------- | ------------------------ | +| is_finish | num | 完结状态 | 0:未完结
1:已完结 | +| is_started | num | 是否发布 | 0:未发布
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 | 评分 | | + +`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:授权
dujia:独家 | +| forbid_pre | 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 | | | + +`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 | | | + +`result`中的`section`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | ----------------- | ------------ | +| 0 | obj | 其他内容块1 | | +| n | obj | 其他内容块(n+1) | 按照顺序排列 | +| …… | obj | | | + +`section`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---------- | ----- | -------- | ---- | +| episode_id | num | 0 | | +| episodes | array | 板块内容 | | +| id | num | 板块id? | | +| title | str | 板块标题 | | +| type | num | ? | | + +`result`中的`series`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------------ | ---- | ------ | ---- | +| series_id | num | 系列id | | +| series_title | str | 系列名 | | + +`result`中的`show`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----------- | ---- | -------- | -------------------- | +| wide_screen | num | 是否全屏 | 0:正常
1:全屏 | + +`result`中的`stat`对象: + +| 字段 | 类型 | 内容 | 备注 | +| --------- | ---- | ------ | ---- | +| coins | num | 投币数 | | +| danmakus | num | 弹幕数 | | +| favorites | num | 收藏数 | | +| likes | num | 点赞数 | | +| reply | num | 评论数 | | +| share | num | 分享数 | | +| views | 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 | | | + +# 获取剧集分集信息 + +> https://api.bilibili.com/pgc/web/season/section + +*请求方式:GET* + +鉴权方式:Cookie(SESSDATA)或APP + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +|-----------|-----|--------|-----|-----| +| season_id | str | 剧集ssid | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +|---------|-----|------|-------------------| +| code | num | 返回值 | 0:成功
-404:错误 | +| message | str | 错误信息 | 默认为success | +| result | obj | 信息本体 | | + +`result`对象: + +| 字段 | 类型 | 内容 | 备注 | +|--------------|-------|--------|-----| +| main_section | obj | 正片信息 | | +| section | array | 花絮、PV等 | | + +`result`中的`main_section`对象: + +| 字段 | 类型 | 内容 | 备注 | +|----------|-------|------------------------------|-----| +| episodes | array | 分集信息 | | +| id | num | 分组id | | +| type | num | 0:正片
1:PV&其他
2:OP&ED | | +| title | str | | | + +`episodes`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +|-------------|-----|----------|-----| +| aid | num | 视频av号 | | +| badge | str | | | +| badge_info | obj | | | +| badge_type | num | 0 | | +| cid | num | 分集cid | | +| cover | str | 分集封面 | | +| from | str | bangumi | | +| id | num | 分集epId | | +| is_premiere | num | 0 | | +| long_title | str | 长标题 | | +| share_url | str | 分集播放页url | | +| status | num | 2 | | +| title | str | 短标题 | | +| vid | str | | | + +`badge_info`对象: + +| 字段 | 类型 | 内容 | 备注 | +|----------------|-----|-----|-----| +| bg_color | str | | | +| bg_color_night | str | | | +| text | str | | | + +`section`数组中的对象: + +**同`main_section`对象** + +**示例:** + +```shell +curl -L -X GET 'https://api.bilibili.com/pgc/web/season/section?season_id=42290' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "success", + "result": { + "main_section": { + "episodes": [ + { + "aid": 300876247, + "badge": "", + "badge_info": { + "bg_color": "#FB7299", + "bg_color_night": "#BB5B76", + "text": "" + }, + "badge_type": 0, + "cid": 772096113, + "cover": "http://i0.hdslb.com/bfs/archive/c09aec64c1787e287b0187498a4443177cc2112c.jpg", + "from": "bangumi", + "id": 606591, + "is_premiere": 0, + "long_title": "瞒天过海!罪犯新选组", + "share_url": "https://www.bilibili.com/bangumi/play/ep606591", + "status": 2, + "title": "1", + "vid": "" + }, + { + "aid": 555940678, + "badge": "", + "badge_info": { + "bg_color": "#FB7299", + "bg_color_night": "#BB5B76", + "text": "" + }, + "badge_type": 0, + "cid": 779868818, + "cover": "http://i0.hdslb.com/bfs/archive/52ccef75fc179c7f8a4f2ff989a1249c78f564e0.jpg", + "from": "bangumi", + "id": 606592, + "is_premiere": 0, + "long_title": "光芒四射!遗物日本刀", + "share_url": "https://www.bilibili.com/bangumi/play/ep606592", + "status": 2, + "title": "2", + "vid": "" + }, + { + "aid": 216208730, + "badge": "", + "badge_info": { + "bg_color": "#FB7299", + "bg_color_night": "#BB5B76", + "text": "" + }, + "badge_type": 0, + "cid": 779450100, + "cover": "http://i0.hdslb.com/bfs/archive/7eee64ff758fb426b6cd16bc7d525f4de98fd4dc.jpg", + "from": "bangumi", + "id": 606596, + "is_premiere": 0, + "long_title": "乔装打扮!潜入花街", + "share_url": "https://www.bilibili.com/bangumi/play/ep606596", + "status": 2, + "title": "3", + "vid": "" + }, + { + "aid": 386385026, + "badge": "", + "badge_info": { + "bg_color": "#FB7299", + "bg_color_night": "#BB5B76", + "text": "" + }, + "badge_type": 0, + "cid": 786667756, + "cover": "http://i0.hdslb.com/bfs/archive/6851be597e1fa496a8b1486000e83654c2fac45c.jpg", + "from": "bangumi", + "id": 606597, + "is_premiere": 0, + "long_title": "一探究竟!神秘妖刀", + "share_url": "https://www.bilibili.com/bangumi/play/ep606597", + "status": 2, + "title": "4", + "vid": "" + }, + { + "aid": 729094525, + "badge": "", + "badge_info": { + "bg_color": "#FB7299", + "bg_color_night": "#BB5B76", + "text": "" + }, + "badge_type": 0, + "cid": 793386614, + "cover": "http://i0.hdslb.com/bfs/archive/5dfa30d48188b26c616a05745132a59f6823dade.jpg", + "from": "bangumi", + "id": 606598, + "is_premiere": 0, + "long_title": "展现无遗!和尚与医生的决心", + "share_url": "https://www.bilibili.com/bangumi/play/ep606598", + "status": 2, + "title": "5", + "vid": "" + }, + { + "aid": 599314561, + "badge": "", + "badge_info": { + "bg_color": "#FB7299", + "bg_color_night": "#BB5B76", + "text": "" + }, + "badge_type": 0, + "cid": 798315932, + "cover": "http://i0.hdslb.com/bfs/archive/3daae9ee434d335ff9e5a9d8244bc1e6b7ffa8d0.jpg", + "from": "bangumi", + "id": 606599, + "is_premiere": 0, + "long_title": "直捣敌巢!败德白川屋", + "share_url": "https://www.bilibili.com/bangumi/play/ep606599", + "status": 2, + "title": "6", + "vid": "" + }, + { + "aid": 259686552, + "badge": "", + "badge_info": { + "bg_color": "#FB7299", + "bg_color_night": "#BB5B76", + "text": "" + }, + "badge_type": 0, + "cid": 807199844, + "cover": "http://i0.hdslb.com/bfs/archive/9ff73932c210abe64373be6f3959c2eee6c7470b.jpg", + "from": "bangumi", + "id": 606600, + "is_premiere": 0, + "long_title": "全力阻止!新选组解散", + "share_url": "https://www.bilibili.com/bangumi/play/ep606600", + "status": 2, + "title": "7", + "vid": "" + }, + { + "aid": 514942530, + "badge": "", + "badge_info": { + "bg_color": "#FB7299", + "bg_color_night": "#BB5B76", + "text": "" + }, + "badge_type": 0, + "cid": 814175863, + "cover": "http://i0.hdslb.com/bfs/archive/31a19bf3af61e58f1e8c4a387779fc3272cb47a7.jpg", + "from": "bangumi", + "id": 606601, + "is_premiere": 0, + "long_title": "激烈战斗!池田屋事件", + "share_url": "https://www.bilibili.com/bangumi/play/ep606601", + "status": 2, + "title": "8", + "vid": "" + }, + { + "aid": 515024193, + "badge": "", + "badge_info": { + "bg_color": "#FB7299", + "bg_color_night": "#BB5B76", + "text": "" + }, + "badge_type": 0, + "cid": 819960797, + "cover": "http://i0.hdslb.com/bfs/archive/68a0a12a74e99b6cd85cfa0fb7be70d82d8b6558.jpg", + "from": "bangumi", + "id": 606602, + "is_premiere": 0, + "long_title": "真心炸裂!人之思绪 鬼之念想", + "share_url": "https://www.bilibili.com/bangumi/play/ep606602", + "status": 2, + "title": "9", + "vid": "" + }, + { + "aid": 430293537, + "badge": "", + "badge_info": { + "bg_color": "#FB7299", + "bg_color_night": "#BB5B76", + "text": "" + }, + "badge_type": 0, + "cid": 827739564, + "cover": "http://i0.hdslb.com/bfs/archive/6411f71c947ba9b011ca0fe2891334147ef1e14d.jpg", + "from": "bangumi", + "id": 606603, + "is_premiere": 0, + "long_title": "全力守护!美利坚黑船", + "share_url": "https://www.bilibili.com/bangumi/play/ep606603", + "status": 2, + "title": "10", + "vid": "" + }, + { + "aid": 858116183, + "badge": "", + "badge_info": { + "bg_color": "#FB7299", + "bg_color_night": "#BB5B76", + "text": "" + }, + "badge_type": 0, + "cid": 833436271, + "cover": "http://i0.hdslb.com/bfs/archive/48736284b5cf0f3515cddb95f1c1b8658ec6c5ff.jpg", + "from": "bangumi", + "id": 606604, + "is_premiere": 0, + "long_title": "勇往直前!京都大决战", + "share_url": "https://www.bilibili.com/bangumi/play/ep606604", + "status": 2, + "title": "11", + "vid": "" + }, + { + "aid": 773279679, + "badge": "会员", + "badge_info": { + "bg_color": "#FB7299", + "bg_color_night": "#BB5B76", + "text": "会员" + }, + "badge_type": 0, + "cid": 840839493, + "cover": "http://i0.hdslb.com/bfs/archive/316f7c8a750699bf53ee44d43669fabb0271be86.jpg", + "from": "bangumi", + "id": 606605, + "is_premiere": 0, + "long_title": "替身传说!罪犯新选组", + "share_url": "https://www.bilibili.com/bangumi/play/ep606605", + "status": 13, + "title": "12", + "vid": "" + } + ], + "id": 81861, + "title": "正片", + "type": 0 + }, + "section": [ + { + "episodes": [ + { + "aid": 898153042, + "badge": "", + "badge_info": { + "bg_color": "#FB7299", + "bg_color_night": "#BB5B76", + "text": "" + }, + "badge_type": 0, + "cid": 766274696, + "cover": "http://i0.hdslb.com/bfs/archive/ac27ed20081e99fc36720ef0714f81d8df2c279a.png", + "from": "bangumi", + "id": 576387, + "is_premiere": 0, + "long_title": "", + "share_url": "https://www.bilibili.com/bangumi/play/ep576387", + "status": 2, + "title": "PV", + "vid": "" + }, + { + "aid": 215937670, + "badge": "", + "badge_info": { + "bg_color": "#FB7299", + "bg_color_night": "#BB5B76", + "text": "" + }, + "badge_type": 0, + "cid": 773008915, + "cover": "http://i0.hdslb.com/bfs/archive/0a6b589e9175dfee1d9699fb55c5c0677941994a.png", + "from": "bangumi", + "id": 606995, + "is_premiere": 0, + "long_title": "", + "share_url": "https://www.bilibili.com/bangumi/play/ep606995", + "status": 2, + "title": "西川贵教", + "vid": "" + }, + { + "aid": 813460609, + "badge": "", + "badge_info": { + "bg_color": "#FB7299", + "bg_color_night": "#BB5B76", + "text": "" + }, + "badge_type": 0, + "cid": 773007362, + "cover": "http://i0.hdslb.com/bfs/archive/6c8f4136731c1c2f8171f5c006f79f0603d11bdf.png", + "from": "bangumi", + "id": 606998, + "is_premiere": 0, + "long_title": "", + "share_url": "https://www.bilibili.com/bangumi/play/ep606998", + "status": 2, + "title": "幕末替身声优采访", + "vid": "" + }, + { + "aid": 556287340, + "badge": "", + "badge_info": { + "bg_color": "#FB7299", + "bg_color_night": "#BB5B76", + "text": "" + }, + "badge_type": 0, + "cid": 785468206, + "cover": "http://i0.hdslb.com/bfs/archive/77564ca30f1a4d3a64cfc292a7fd989c09a30027.png", + "from": "bangumi", + "id": 660464, + "is_premiere": 0, + "long_title": "", + "share_url": "https://www.bilibili.com/bangumi/play/ep660464", + "status": 2, + "title": "声优对谈 01", + "vid": "" + }, + { + "aid": 984099086, + "badge": "", + "badge_info": { + "bg_color": "#FB7299", + "bg_color_night": "#BB5B76", + "text": "" + }, + "badge_type": 0, + "cid": 792637456, + "cover": "http://i0.hdslb.com/bfs/archive/77564ca30f1a4d3a64cfc292a7fd989c09a30027.png", + "from": "bangumi", + "id": 669591, + "is_premiere": 0, + "long_title": "", + "share_url": "https://www.bilibili.com/bangumi/play/ep669591", + "status": 2, + "title": "声优对谈 02", + "vid": "" + }, + { + "aid": 259364452, + "badge": "", + "badge_info": { + "bg_color": "#FB7299", + "bg_color_night": "#BB5B76", + "text": "" + }, + "badge_type": 0, + "cid": 798995285, + "cover": "http://i0.hdslb.com/bfs/archive/77564ca30f1a4d3a64cfc292a7fd989c09a30027.png", + "from": "bangumi", + "id": 670446, + "is_premiere": 0, + "long_title": "", + "share_url": "https://www.bilibili.com/bangumi/play/ep670446", + "status": 2, + "title": "声优对谈 03", + "vid": "" + }, + { + "aid": 772146427, + "badge": "", + "badge_info": { + "bg_color": "#FB7299", + "bg_color_night": "#BB5B76", + "text": "" + }, + "badge_type": 0, + "cid": 808201440, + "cover": "http://i0.hdslb.com/bfs/archive/77564ca30f1a4d3a64cfc292a7fd989c09a30027.png", + "from": "bangumi", + "id": 672539, + "is_premiere": 0, + "long_title": "", + "share_url": "https://www.bilibili.com/bangumi/play/ep672539", + "status": 2, + "title": "声优对谈 04", + "vid": "" + }, + { + "aid": 687381109, + "badge": "", + "badge_info": { + "bg_color": "#FB7299", + "bg_color_night": "#BB5B76", + "text": "" + }, + "badge_type": 0, + "cid": 814826609, + "cover": "http://i0.hdslb.com/bfs/archive/77564ca30f1a4d3a64cfc292a7fd989c09a30027.png", + "from": "bangumi", + "id": 676133, + "is_premiere": 0, + "long_title": "", + "share_url": "https://www.bilibili.com/bangumi/play/ep676133", + "status": 2, + "title": "声优对谈 05", + "vid": "" + }, + { + "aid": 730289528, + "badge": "", + "badge_info": { + "bg_color": "#FB7299", + "bg_color_night": "#BB5B76", + "text": "" + }, + "badge_type": 0, + "cid": 826951152, + "cover": "http://i0.hdslb.com/bfs/archive/77564ca30f1a4d3a64cfc292a7fd989c09a30027.png", + "from": "bangumi", + "id": 676134, + "is_premiere": 0, + "long_title": "", + "share_url": "https://www.bilibili.com/bangumi/play/ep676134", + "status": 2, + "title": "声优对谈 07", + "vid": "" + }, + { + "aid": 602813211, + "badge": "", + "badge_info": { + "bg_color": "#FB7299", + "bg_color_night": "#BB5B76", + "text": "" + }, + "badge_type": 0, + "cid": 826951370, + "cover": "http://i0.hdslb.com/bfs/archive/77564ca30f1a4d3a64cfc292a7fd989c09a30027.png", + "from": "bangumi", + "id": 676135, + "is_premiere": 0, + "long_title": "", + "share_url": "https://www.bilibili.com/bangumi/play/ep676135", + "status": 2, + "title": "声优对谈 08", + "vid": "" + }, + { + "aid": 515295782, + "badge": "", + "badge_info": { + "bg_color": "#FB7299", + "bg_color_night": "#BB5B76", + "text": "" + }, + "badge_type": 0, + "cid": 826951255, + "cover": "http://i0.hdslb.com/bfs/archive/77564ca30f1a4d3a64cfc292a7fd989c09a30027.png", + "from": "bangumi", + "id": 676137, + "is_premiere": 0, + "long_title": "", + "share_url": "https://www.bilibili.com/bangumi/play/ep676137", + "status": 2, + "title": "声优对谈 09", + "vid": "" + }, + { + "aid": 815269384, + "badge": "", + "badge_info": { + "bg_color": "#FB7299", + "bg_color_night": "#BB5B76", + "text": "" + }, + "badge_type": 0, + "cid": 826951558, + "cover": "http://i0.hdslb.com/bfs/archive/77564ca30f1a4d3a64cfc292a7fd989c09a30027.png", + "from": "bangumi", + "id": 676138, + "is_premiere": 0, + "long_title": "", + "share_url": "https://www.bilibili.com/bangumi/play/ep676138", + "status": 2, + "title": "声优对谈 10", + "vid": "" + } + ], + "id": 82126, + "title": "PV&其他", + "type": 1 + }, + { + "episodes": [ + { + "aid": 556712105, + "badge": "", + "badge_info": { + "bg_color": "#FB7299", + "bg_color_night": "#BB5B76", + "text": "" + }, + "badge_type": 0, + "cid": 794382832, + "cover": "http://i0.hdslb.com/bfs/archive/1f4ab8b9af0689900e7c486c4e676e27988091be.png", + "from": "bangumi", + "id": 670062, + "is_premiere": 0, + "long_title": "", + "share_url": "https://www.bilibili.com/bangumi/play/ep670062", + "status": 2, + "title": "NCOP", + "vid": "" + }, + { + "aid": 259129266, + "badge": "", + "badge_info": { + "bg_color": "#FB7299", + "bg_color_night": "#BB5B76", + "text": "" + }, + "badge_type": 0, + "cid": 794382772, + "cover": "http://i0.hdslb.com/bfs/archive/d08738a452187a0229c3b99beaf1cb4ff868a030.png", + "from": "bangumi", + "id": 670063, + "is_premiere": 0, + "long_title": "", + "share_url": "https://www.bilibili.com/bangumi/play/ep670063", + "status": 2, + "title": "NCED", + "vid": "" + } + ], + "id": 85065, + "title": "OP&ED", + "type": 2 + } + ] + } +} +``` + +
\ No newline at end of file diff --git a/docs/bangumi/timeline.md b/docs/bangumi/timeline.md new file mode 100644 index 0000000000..cfbe41c480 --- /dev/null +++ b/docs/bangumi/timeline.md @@ -0,0 +1,804 @@ +# 番剧或影视时间线 + +- [获取番剧或影视时间线](#获取番剧或影视时间线) + +--- + +## 获取番剧或影视时间线 + + +> https://api.bilibili.com/pgc/web/timeline +*请求方式:GET* + +鉴权方式:Cookie(SESSDATA)或APP + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| -------- | ---- | ------------ | ------ | ----------------------------- | +| types | str | 类别 | 必要 | 1:`番剧`
3:`电影`
4:`国创` | +| before | num | 开始于前几日 | 必要 | ∈N∩[0,7] | +| after | num | 结束于后几日 | 必要 | ∈N∩[0,7] | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ----- | -------- | ------------------------------------------- | +| code | num | 返回值 | 0:成功
-400:请求错误
-404:错误 | +| message | str | 错误信息 | 默认为success | +| result | array | 信息本体 | | + +`result`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | --------------------------- | ---- | +| 0 | obj | `before`天前信息 | | +| n | obj | 从`before`天前开始第n天信息 | | +| …… | obj | …… | | + +`result`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----------- | ----- | -------------- | ----------------- | +| date | str | 当日日期 | | +| date_ts | num | 当日日期时间戳 | | +| day_of_week | num | 一周中第几天 | ∈N∩[1,7] | +| episodes | array | 剧集列表 | | +| is_today | num | 是否今日 | | + +`result`数组中的对象中的`episodes`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | ----------- | ---- | +| 0 | obj | 剧集1 | | +| n | obj | 剧集(n+1) | | +| …… | obj | …… | | + +`episodes`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----------- | ---- | -------------- | --------------- | +| cover | str | 封面图url | | +| delay | num | 是否推迟 | | +| delay_id | num | 推迟一话epid | | +| delay_index | str | 推迟一话名称 | | +| delay_reason | str | 推迟原因 | | +| ep_cover | str | 最新一话图url | | +| episode_id | num | 最新一话的epid | | +| pub_index | str | 最新一话名称 | | +| pub_time | str | 发布时间 | | +| pub_ts | num | 发布时间戳 | | +| published | num | 是否已发布 | | +| follows | str | - | | +| plays | str | - | | +| season_id | num | 剧集ssid | | +| square_cover | str | 缩略图url | | +| title | str | 剧集标题 | | + +**示例:** + +查询从`3`天前到`7`天后的`番剧`时间轴 + +```shell +curl -G 'https://api.bilibili.com/pgc/web/timeline' \ +--data-urlencode 'types=1' \ +--data-urlencode 'before=3' \ +--data-urlencode 'after=7' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "success", + "result": [ + { + "date": "5-15", + "date_ts": 1652544000, + "day_of_week": 7, + "episodes": [ + { + "cover": "http://i0.hdslb.com/bfs/bangumi/image/9918f6e67c26d6bd1ddad8dab70bcc7af3bfae9b.png", + "delay": 0, + "delay_id": 0, + "delay_index": "", + "delay_reason": "", + "ep_cover": "http://i0.hdslb.com/bfs/archive/0067a09911e2fa252a3ef5126d8dc5392189dd8a.jpg", + "episode_id": 508403, + "follows": "-", + "plays": "-", + "pub_index": "第3话", + "pub_time": "01:30", + "pub_ts": 1652549400, + "published": 1, + "season_id": 41416, + "square_cover": "http://i0.hdslb.com/bfs/bangumi/image/926fd09277605204c2f7c94b322de3156ef9da52.png", + "title": "式守同学不只可爱而已" + }, + { + "cover": "http://i0.hdslb.com/bfs/bangumi/image/3a9815ca239735c51fc7daf2399c3721bbe00160.png", + "delay": 0, + "delay_id": 0, + "delay_index": "", + "delay_reason": "", + "ep_cover": "http://i0.hdslb.com/bfs/archive/56e8d4b13dac855c51060dcda286be049fde4a46.png", + "episode_id": 466766, + "follows": "-", + "plays": "-", + "pub_index": "第6话", + "pub_time": "11:00", + "pub_ts": 1652583600, + "published": 1, + "season_id": 41005, + "square_cover": "http://i0.hdslb.com/bfs/bangumi/image/b3dd92da1ca35758f329fa5aa649991b118a98ca.png", + "title": "鬼灭之刃 无限列车篇 中配版" + }, + { + "cover": "http://i0.hdslb.com/bfs/bangumi/image/71d54cae830d32a5af776dcc46632146fbdba868.jpg", + "delay": 0, + "delay_id": 0, + "delay_index": "", + "delay_reason": "", + "ep_cover": "http://i0.hdslb.com/bfs/archive/00c1dff8457183671f0402e0a2826313a1994a9b.jpg", + "episode_id": 480434, + "follows": "-", + "plays": "-", + "pub_index": "第240话", + "pub_time": "17:30", + "pub_ts": 1652607000, + "published": 1, + "season_id": 5978, + "square_cover": "http://i0.hdslb.com/bfs/bangumi/3121473d5dd03a9bcccb8490034207e724e731b3.jpg", + "title": "博人传 火影忍者新时代" + }, + { + "cover": "http://i0.hdslb.com/bfs/bangumi/image/91e75030be41d67b9f19b96bb512b0c98ae781bd.png", + "delay": 0, + "delay_id": 0, + "delay_index": "", + "delay_reason": "", + "ep_cover": "http://i0.hdslb.com/bfs/archive/e701f39cef52e6b0737e3463faf7cb0cee61e935.jpg", + "episode_id": 510647, + "follows": "-", + "plays": "-", + "pub_index": "第4话", + "pub_time": "20:00", + "pub_ts": 1652616000, + "published": 1, + "season_id": 41557, + "square_cover": "http://i0.hdslb.com/bfs/bangumi/image/4329384cba4ab0390eae1a84a719e4649bf61cfb.png", + "title": "这个治疗有点烦" + }, + { + "cover": "http://i0.hdslb.com/bfs/bangumi/image/c9723d8c77d881a8debba2852d580e97826b43d0.png", + "delay": 0, + "delay_id": 0, + "delay_index": "", + "delay_reason": "", + "ep_cover": "http://i0.hdslb.com/bfs/archive/2a01ab590fd8b1331096b94cc6fc09dbdad1bbec.png", + "episode_id": 478918, + "follows": "-", + "plays": "-", + "pub_index": "第7话", + "pub_time": "21:00", + "pub_ts": 1652619600, + "published": 1, + "season_id": 41591, + "square_cover": "http://i0.hdslb.com/bfs/bangumi/image/1ffa24e100583c3aa96812dea680943291c5c384.jpg", + "title": "恋爱游戏世界对路人角色很不友好" + } + ], + "is_today": 0 + }, + { + "date": "5-16", + "date_ts": 1652630400, + "day_of_week": 1, + "episodes": [ + { + "cover": "http://i0.hdslb.com/bfs/bangumi/image/e468c854628b97b5373baaf4c43e1346a9806baa.png", + "delay": 0, + "delay_id": 0, + "delay_index": "", + "delay_reason": "", + "ep_cover": "http://i0.hdslb.com/bfs/archive/219161297558531d2475da73e863dc237e83baa1.png", + "episode_id": 511342, + "follows": "-", + "plays": "-", + "pub_index": "第1话", + "pub_time": "20:00", + "pub_ts": 1652702400, + "published": 1, + "season_id": 41419, + "square_cover": "http://i0.hdslb.com/bfs/bangumi/image/75a291010c128ce2de17267fd2a4842d19898236.png", + "title": "魔法使黎明期" + } + ], + "is_today": 0 + }, + { + "date": "5-17", + "date_ts": 1652716800, + "day_of_week": 2, + "episodes": [ + { + "cover": "http://i0.hdslb.com/bfs/bangumi/image/4e6c505b1b1631c542ea76c3da1ce08bb43faad6.jpg", + "delay": 0, + "delay_id": 0, + "delay_index": "", + "delay_reason": "", + "ep_cover": "http://i0.hdslb.com/bfs/archive/bf37e15c52889a7a9dca16346354bb7c6663c899.png", + "episode_id": 510132, + "follows": "-", + "plays": "-", + "pub_index": "第146话", + "pub_time": "18:00", + "pub_ts": 1652781600, + "published": 1, + "season_id": 23841, + "square_cover": "http://i0.hdslb.com/bfs/bangumi/5c2f289eac0ec49bc5e6b9483f4191c42ffa2254.jpg", + "title": "美妙☆频道" + }, + { + "cover": "http://i0.hdslb.com/bfs/bangumi/image/9eef1df9ab157be52d2c4d70d3500442f00cafc3.png", + "delay": 0, + "delay_id": 0, + "delay_index": "", + "delay_reason": "", + "ep_cover": "http://i0.hdslb.com/bfs/archive/d9831c3170bcbba38edc2204ee5059f583823913.png", + "episode_id": 509043, + "follows": "-", + "plays": "-", + "pub_index": "第11话", + "pub_time": "18:00", + "pub_ts": 1652781600, + "published": 1, + "season_id": 38950, + "square_cover": "http://i0.hdslb.com/bfs/bangumi/image/13fd7c96659a20c61409e155a2a913a59348d122.png", + "title": "魔法纪录 魔法少女小圆外传 第二季" + } + ], + "is_today": 0 + }, + { + "date": "5-18", + "date_ts": 1652803200, + "day_of_week": 3, + "episodes": [ + { + "cover": "http://i0.hdslb.com/bfs/bangumi/image/fba0229f1a6eec6ed692b7ae91c634d5cbde0727.png", + "delay": 0, + "delay_id": 0, + "delay_index": "", + "delay_reason": "", + "ep_cover": "http://i0.hdslb.com/bfs/bangumi/image/0ebefe529449ff98d544395d1576402bb0d0ae5b.png", + "episode_id": 510498, + "follows": "-", + "plays": "-", + "pub_index": "第7话", + "pub_time": "21:00", + "pub_ts": 1652878800, + "published": 0, + "season_id": 41413, + "square_cover": "http://i0.hdslb.com/bfs/bangumi/image/247f8326019e035338529306e94baea3336c43b4.png", + "title": "盾之勇者成名录 第二季" + } + ], + "is_today": 1 + }, + { + "date": "5-19", + "date_ts": 1652889600, + "day_of_week": 4, + "episodes": [ + { + "cover": "http://i0.hdslb.com/bfs/bangumi/image/99277ce3f41d1cb4dcda9f6010ebe9c9e6d345e5.jpg", + "delay": 0, + "delay_id": 0, + "delay_index": "", + "delay_reason": "", + "ep_cover": "http://i0.hdslb.com/bfs/bangumi/image/c989d496e3a075e8bc134b0d4d53d6ca5c2ae634.jpg", + "episode_id": 510760, + "follows": "-", + "plays": "-", + "pub_index": "第2话", + "pub_time": "12:00", + "pub_ts": 1652932800, + "published": 0, + "season_id": 41417, + "square_cover": "http://i0.hdslb.com/bfs/bangumi/image/ef45828cb99309169e95d1bf54ec833d7968bf22.png", + "title": "夏日重现" + }, + { + "cover": "http://i0.hdslb.com/bfs/bangumi/image/1cd26af47cf9d9ca045ec36f56ce14a66867438d.png", + "delay": 0, + "delay_id": 0, + "delay_index": "", + "delay_reason": "", + "ep_cover": "http://i0.hdslb.com/bfs/bangumi/image/3dc8d348937528779b7ad9a3070d37276518080f.png", + "episode_id": 399655, + "follows": "-", + "plays": "-", + "pub_index": "第50话", + "pub_time": "18:00", + "pub_ts": 1652954400, + "published": 0, + "season_id": 38353, + "square_cover": "http://i0.hdslb.com/bfs/bangumi/image/4bd7b0a4c270ce62ca2adf3e18487a96e4fde92e.png", + "title": "通灵王" + }, + { + "cover": "http://i0.hdslb.com/bfs/bangumi/image/5f5b16bc8edd1310fbf0ac8bce04a11144dc858e.png", + "delay": 0, + "delay_id": 0, + "delay_index": "", + "delay_reason": "", + "ep_cover": "http://i0.hdslb.com/bfs/bangumi/image/aed167a32445ed294ea75ed674442c766d56cb2a.png", + "episode_id": 511494, + "follows": "-", + "plays": "-", + "pub_index": "第4话", + "pub_time": "23:00", + "pub_ts": 1652972400, + "published": 0, + "season_id": 41422, + "square_cover": "http://i0.hdslb.com/bfs/bangumi/image/924c550415ccdd142145dbf102bd81fcbb018ffd.png", + "title": "骸骨骑士大人奇幻世界冒险中" + } + ], + "is_today": 0 + }, + { + "date": "5-20", + "date_ts": 1652976000, + "day_of_week": 5, + "episodes": [ + { + "cover": "http://i0.hdslb.com/bfs/bangumi/image/a29f3b00a94d1b4a029054f72963cc10d98bae99.jpg", + "delay": 0, + "delay_id": 0, + "delay_index": "", + "delay_reason": "", + "ep_cover": "http://i0.hdslb.com/bfs/bangumi/image/4b9b98677b039b9126614f5a5259aa1484cea227.jpg", + "episode_id": 510757, + "follows": "-", + "plays": "-", + "pub_index": "第2话", + "pub_time": "01:28", + "pub_ts": 1652981280, + "published": 0, + "season_id": 41520, + "square_cover": "http://i0.hdslb.com/bfs/bangumi/image/2a0ca7be587039eef380f802f8ae71bd21d2ea2c.png", + "title": "街角魔族 第二季" + }, + { + "cover": "http://i0.hdslb.com/bfs/bangumi/image/ecb52c79def9f5a6099c5a0770f56e20479fb008.jpg", + "delay": 0, + "delay_id": 0, + "delay_index": "", + "delay_reason": "", + "ep_cover": "http://i0.hdslb.com/bfs/bangumi/image/36d3079e1b24395b07f9f95128adc9568459c3e5.png", + "episode_id": 478238, + "follows": "-", + "plays": "-", + "pub_index": "第17话", + "pub_time": "02:25", + "pub_ts": 1652984700, + "published": 0, + "season_id": 40873, + "square_cover": "http://i0.hdslb.com/bfs/bangumi/image/13f437706d3f27dee7566a5e489928605663e40f.png", + "title": "川尻小玉的懒散生活" + }, + { + "cover": "http://i0.hdslb.com/bfs/bangumi/image/a7517ca25c5c7a132a16f589e3a3c4d9f49af196.png", + "delay": 0, + "delay_id": 0, + "delay_index": "", + "delay_reason": "", + "ep_cover": "http://i0.hdslb.com/bfs/bangumi/image/17f34f6c51b8b9371af1998f0612d51f0ba03df2.png", + "episode_id": 508842, + "follows": "-", + "plays": "-", + "pub_index": "第6话", + "pub_time": "07:00", + "pub_ts": 1653001200, + "published": 0, + "season_id": 41534, + "square_cover": "http://i0.hdslb.com/bfs/bangumi/image/3267da68f7f832ccfc7eaa77c6ab3fb806d2de98.png", + "title": "银河英雄传说:全新命题 激战" + }, + { + "cover": "http://i0.hdslb.com/bfs/bangumi/image/fecb68763f24d371167389abedf05742b0bf024f.png", + "delay": 0, + "delay_id": 0, + "delay_index": "", + "delay_reason": "", + "ep_cover": "http://i0.hdslb.com/bfs/bangumi/image/f4116e5dcc44d6104cd72d9e0e833cde3959a835.png", + "episode_id": 476164, + "follows": "-", + "plays": "-", + "pub_index": "第32话", + "pub_time": "18:25", + "pub_ts": 1653042300, + "published": 0, + "season_id": 38366, + "square_cover": "http://i0.hdslb.com/bfs/bangumi/image/56b8e4369871fc0c55bfa9df3f3f8002d40f0691.png", + "title": "妖怪手表" + }, + { + "cover": "http://i0.hdslb.com/bfs/bangumi/image/81c9dc929e6071a2d42f1b5a207bbcef4a1aead7.png", + "delay": 0, + "delay_id": 0, + "delay_index": "", + "delay_reason": "", + "ep_cover": "http://i0.hdslb.com/bfs/bangumi/image/7c62ad9f559ee6b0fafc1c08d990636c21c4fa8d.png", + "episode_id": 510653, + "follows": "-", + "plays": "-", + "pub_index": "第7话", + "pub_time": "21:30", + "pub_ts": 1653053400, + "published": 0, + "season_id": 41432, + "square_cover": "http://i0.hdslb.com/bfs/bangumi/image/930ae7ff644dc31ada9abcb3ea30fee5fbc6f397.png", + "title": "约会大作战 第四季" + }, + { + "cover": "http://i0.hdslb.com/bfs/bangumi/image/d464543dd6720efd43e5487acee74b646423b4d1.jpg", + "delay": 0, + "delay_id": 0, + "delay_index": "", + "delay_reason": "", + "ep_cover": "http://i0.hdslb.com/bfs/bangumi/image/ca7a19d51feb54162d8f286af416aa5a804e72c4.png", + "episode_id": 511497, + "follows": "-", + "plays": "-", + "pub_index": "第7话", + "pub_time": "22:00", + "pub_ts": 1653055200, + "published": 0, + "season_id": 41418, + "square_cover": "http://i0.hdslb.com/bfs/bangumi/image/ab50117450baffba62c71c80052ecbad1842a1f3.png", + "title": "恋爱要在世界征服后" + } + ], + "is_today": 0 + }, + { + "date": "5-21", + "date_ts": 1653062400, + "day_of_week": 6, + "episodes": [ + { + "cover": "http://i0.hdslb.com/bfs/bangumi/image/68aee547fc85b1eab8be3d5c7e946276e4252b79.png", + "delay": 0, + "delay_id": 0, + "delay_index": "", + "delay_reason": "", + "ep_cover": "http://i0.hdslb.com/bfs/bangumi/image/75583ce830522c6fd391cd6ffac31e3ab96db50e.png", + "episode_id": 510568, + "follows": "-", + "plays": "-", + "pub_index": "第8话", + "pub_time": "00:30", + "pub_ts": 1653064200, + "published": 0, + "season_id": 39725, + "square_cover": "http://i0.hdslb.com/bfs/bangumi/image/a4fa3f4ecaa4efc883aa1ef2ca7ed736edb38b8c.png", + "title": "理科生坠入情网,故尝试证明。 第二季" + }, + { + "cover": "http://i0.hdslb.com/bfs/bangumi/image/f711a34e0f18293ba5068fd85d8de891bb01c2be.jpg", + "delay": 0, + "delay_id": 0, + "delay_index": "", + "delay_reason": "", + "ep_cover": "http://i0.hdslb.com/bfs/bangumi/image/aa3e0fc7ecb422c7c8ed107267befaa18f6dcf89.png", + "episode_id": 510935, + "follows": "-", + "plays": "-", + "pub_index": "第8话", + "pub_time": "00:30", + "pub_ts": 1653064200, + "published": 0, + "season_id": 41506, + "square_cover": "http://i0.hdslb.com/bfs/bangumi/image/d2dea82606b8dd0ee7934c62dbc7016b0a17255f.png", + "title": "处刑少女的生存之道" + }, + { + "cover": "http://i0.hdslb.com/bfs/bangumi/image/91ec1f4bc4af307dbfbd68c9ba6d838b27adee0f.png", + "delay": 0, + "delay_id": 0, + "delay_index": "", + "delay_reason": "", + "ep_cover": "http://i0.hdslb.com/bfs/bangumi/image/6d9499e4e5453e5e353939980524102c3b707edb.png", + "episode_id": 477129, + "follows": "-", + "plays": "-", + "pub_index": "第8话", + "pub_time": "01:25", + "pub_ts": 1653067500, + "published": 0, + "season_id": 39180, + "square_cover": "http://i0.hdslb.com/bfs/bangumi/image/f23cf19d1d6068e83edfd6b3d207ce692ef58ef3.png", + "title": "测不准的阿波连同学" + }, + { + "cover": "http://i0.hdslb.com/bfs/bangumi/image/bad807ac5a8d4094ead26c08ec2d9b97dbb8c4a1.png", + "delay": 0, + "delay_id": 0, + "delay_index": "", + "delay_reason": "", + "ep_cover": "http://i0.hdslb.com/bfs/bangumi/image/8e563a29a9fb6b91df791a12eb5f869d038fc1e9.png", + "episode_id": 510677, + "follows": "-", + "plays": "-", + "pub_index": "第2话", + "pub_time": "02:00", + "pub_ts": 1653069600, + "published": 0, + "season_id": 41533, + "square_cover": "http://i0.hdslb.com/bfs/bangumi/image/4ef341fa95646a7c2549e08ba00358b411fba0ee.png", + "title": "舞动不止" + }, + { + "cover": "http://i0.hdslb.com/bfs/bangumi/image/4ab5cf1efbd1c5883b8f0580cb0304f5452c4665.png", + "delay": 0, + "delay_id": 0, + "delay_index": "", + "delay_reason": "", + "ep_cover": "http://i0.hdslb.com/bfs/bangumi/image/8ea1f90444d04a0b989584df9f18e59a824b0e90.png", + "episode_id": 341403, + "follows": "-", + "plays": "-", + "pub_index": "第71话", + "pub_time": "09:30", + "pub_ts": 1653096600, + "published": 0, + "season_id": 34425, + "square_cover": "http://i0.hdslb.com/bfs/bangumi/image/ae36d43ebe7ea7176d18bab794de3d8930284feb.png", + "title": "勇者斗恶龙 达伊的大冒险" + }, + { + "cover": "http://i0.hdslb.com/bfs/bangumi/image/23f393513ab8fdfbb351aa80e8b7423e7361ad98.png", + "delay": 0, + "delay_id": 0, + "delay_index": "", + "delay_reason": "", + "ep_cover": "http://i0.hdslb.com/bfs/bangumi/image/d470a1bf53c96210f2238024dc1947f52cb58f3a.png", + "episode_id": 510681, + "follows": "-", + "plays": "-", + "pub_index": "第2话", + "pub_time": "18:00", + "pub_ts": 1653127200, + "published": 0, + "season_id": 41535, + "square_cover": "http://i0.hdslb.com/bfs/bangumi/image/f3f69f8747e8464ba46b9bbe24678966809c8021.png", + "title": "Love All Play热血羽毛球" + }, + { + "cover": "http://i0.hdslb.com/bfs/bangumi/image/38e2a273f528fd01c34f1fc4df0f69c64487efad.png", + "delay": 0, + "delay_id": 0, + "delay_index": "", + "delay_reason": "", + "ep_cover": "http://i0.hdslb.com/bfs/bangumi/image/6c108526eade13d04882b803f1d1e0dfe2a1886e.png", + "episode_id": 459329, + "follows": "-", + "plays": "-", + "pub_index": "第1101话", + "pub_time": "19:30", + "pub_ts": 1653132600, + "published": 0, + "season_id": 33378, + "square_cover": "http://i0.hdslb.com/bfs/bangumi/image/ecc9a64f3f43eb00ee2bf1549b6ab76182cf5f8b.png", + "title": "名侦探柯南" + }, + { + "cover": "http://i0.hdslb.com/bfs/bangumi/image/f641f81aa1933d73c91d5ef76b525acbcdbcf3e7.png", + "delay": 0, + "delay_id": 0, + "delay_index": "", + "delay_reason": "", + "ep_cover": "http://i0.hdslb.com/bfs/bangumi/image/c7ccf71fcf65b4e5655403b01a7af3529d2891e8.png", + "episode_id": 510754, + "follows": "-", + "plays": "-", + "pub_index": "第10话", + "pub_time": "20:00", + "pub_ts": 1653134400, + "published": 0, + "season_id": 39433, + "square_cover": "http://i0.hdslb.com/bfs/bangumi/image/1b4cc42a3909ad2d03563d3163b105c6cad80d20.png", + "title": "鬼灭之刃 游郭篇" + } + ], + "is_today": 0 + }, + { + "date": "5-22", + "date_ts": 1653148800, + "day_of_week": 7, + "episodes": [ + { + "cover": "http://i0.hdslb.com/bfs/bangumi/image/3a9815ca239735c51fc7daf2399c3721bbe00160.png", + "delay": 0, + "delay_id": 0, + "delay_index": "", + "delay_reason": "", + "ep_cover": "http://i0.hdslb.com/bfs/bangumi/image/30908825b7c8076b9d7b58d8cd949a87f48866e6.png", + "episode_id": 466767, + "follows": "-", + "plays": "-", + "pub_index": "第7话", + "pub_time": "11:00", + "pub_ts": 1653188400, + "published": 0, + "season_id": 41005, + "square_cover": "http://i0.hdslb.com/bfs/bangumi/image/b3dd92da1ca35758f329fa5aa649991b118a98ca.png", + "title": "鬼灭之刃 无限列车篇 中配版" + }, + { + "cover": "http://i0.hdslb.com/bfs/bangumi/image/71d54cae830d32a5af776dcc46632146fbdba868.jpg", + "delay": 0, + "delay_id": 0, + "delay_index": "", + "delay_reason": "", + "ep_cover": "http://i0.hdslb.com/bfs/bangumi/image/3baf5335e3f1df882b54d69c0c6c9ffa76069eef.png", + "episode_id": 480435, + "follows": "-", + "plays": "-", + "pub_index": "第241话", + "pub_time": "17:30", + "pub_ts": 1653211800, + "published": 0, + "season_id": 5978, + "square_cover": "http://i0.hdslb.com/bfs/bangumi/3121473d5dd03a9bcccb8490034207e724e731b3.jpg", + "title": "博人传 火影忍者新时代" + }, + { + "cover": "http://i0.hdslb.com/bfs/bangumi/image/91e75030be41d67b9f19b96bb512b0c98ae781bd.png", + "delay": 0, + "delay_id": 0, + "delay_index": "", + "delay_reason": "", + "ep_cover": "http://i0.hdslb.com/bfs/bangumi/image/cff6617c1c7e28f8cd9db3d33d5366a5029e3aa9.png", + "episode_id": 510648, + "follows": "-", + "plays": "-", + "pub_index": "第5话", + "pub_time": "20:00", + "pub_ts": 1653220800, + "published": 0, + "season_id": 41557, + "square_cover": "http://i0.hdslb.com/bfs/bangumi/image/4329384cba4ab0390eae1a84a719e4649bf61cfb.png", + "title": "这个治疗有点烦" + }, + { + "cover": "http://i0.hdslb.com/bfs/bangumi/image/c9723d8c77d881a8debba2852d580e97826b43d0.png", + "delay": 0, + "delay_id": 0, + "delay_index": "", + "delay_reason": "", + "ep_cover": "http://i0.hdslb.com/bfs/bangumi/image/c91b2b96c272eb28aa3dd74aa58fc272fc62d577.png", + "episode_id": 478919, + "follows": "-", + "plays": "-", + "pub_index": "第8话", + "pub_time": "21:00", + "pub_ts": 1653224400, + "published": 0, + "season_id": 41591, + "square_cover": "http://i0.hdslb.com/bfs/bangumi/image/1ffa24e100583c3aa96812dea680943291c5c384.jpg", + "title": "恋爱游戏世界对路人角色很不友好" + } + ], + "is_today": 0 + }, + { + "date": "5-23", + "date_ts": 1653235200, + "day_of_week": 1, + "episodes": [ + { + "cover": "http://i0.hdslb.com/bfs/bangumi/image/e468c854628b97b5373baaf4c43e1346a9806baa.png", + "delay": 0, + "delay_id": 0, + "delay_index": "", + "delay_reason": "", + "ep_cover": "http://i0.hdslb.com/bfs/bangumi/image/26f87214a2481680a93bfda294ac080c0b336a40.png", + "episode_id": 511343, + "follows": "-", + "plays": "-", + "pub_index": "第2话", + "pub_time": "20:00", + "pub_ts": 1653307200, + "published": 0, + "season_id": 41419, + "square_cover": "http://i0.hdslb.com/bfs/bangumi/image/75a291010c128ce2de17267fd2a4842d19898236.png", + "title": "魔法使黎明期" + } + ], + "is_today": 0 + }, + { + "date": "5-24", + "date_ts": 1653321600, + "day_of_week": 2, + "episodes": [ + { + "cover": "http://i0.hdslb.com/bfs/bangumi/image/4e6c505b1b1631c542ea76c3da1ce08bb43faad6.jpg", + "delay": 0, + "delay_id": 0, + "delay_index": "", + "delay_reason": "", + "ep_cover": "http://i0.hdslb.com/bfs/bangumi/image/4e6c505b1b1631c542ea76c3da1ce08bb43faad6.jpg", + "episode_id": 510133, + "follows": "-", + "plays": "-", + "pub_index": "第147话", + "pub_time": "18:00", + "pub_ts": 1653386400, + "published": 0, + "season_id": 23841, + "square_cover": "http://i0.hdslb.com/bfs/bangumi/5c2f289eac0ec49bc5e6b9483f4191c42ffa2254.jpg", + "title": "美妙☆频道" + }, + { + "cover": "http://i0.hdslb.com/bfs/bangumi/image/9eef1df9ab157be52d2c4d70d3500442f00cafc3.png", + "delay": 0, + "delay_id": 0, + "delay_index": "", + "delay_reason": "", + "ep_cover": "http://i0.hdslb.com/bfs/bangumi/image/a651c55bb430cdea19d5f4253969d1f7b83567c7.png", + "episode_id": 509044, + "follows": "-", + "plays": "-", + "pub_index": "第12话", + "pub_time": "18:00", + "pub_ts": 1653386400, + "published": 0, + "season_id": 38950, + "square_cover": "http://i0.hdslb.com/bfs/bangumi/image/13fd7c96659a20c61409e155a2a913a59348d122.png", + "title": "魔法纪录 魔法少女小圆外传 第二季" + } + ], + "is_today": 0 + }, + { + "date": "5-25", + "date_ts": 1653408000, + "day_of_week": 3, + "episodes": [ + { + "cover": "http://i0.hdslb.com/bfs/bangumi/image/fba0229f1a6eec6ed692b7ae91c634d5cbde0727.png", + "delay": 0, + "delay_id": 0, + "delay_index": "", + "delay_reason": "", + "ep_cover": "http://i0.hdslb.com/bfs/bangumi/image/0ebefe529449ff98d544395d1576402bb0d0ae5b.png", + "episode_id": 510499, + "follows": "-", + "plays": "-", + "pub_index": "第8话", + "pub_time": "21:00", + "pub_ts": 1653483600, + "published": 0, + "season_id": 41413, + "square_cover": "http://i0.hdslb.com/bfs/bangumi/image/247f8326019e035338529306e94baea3336c43b4.png", + "title": "盾之勇者成名录 第二季" + } + ], + "is_today": 0 + } + ] +} +``` + +
\ No newline at end of file diff --git a/docs/bangumi/videostream_url.md b/docs/bangumi/videostream_url.md new file mode 100644 index 0000000000..72461b8713 --- /dev/null +++ b/docs/bangumi/videostream_url.md @@ -0,0 +1,366 @@ +# 视频流URL + + + +B站的番剧视频为http流媒体,需要对应的api以视频id获取取流url,并进行取流 + +- [qn视频清晰度标识](#qn视频清晰度标识) +- [fnver视频流版本标识](#fnver视频流版本标识) +- [fnval视频流格式标识](#fnval视频流格式标识) +- [视频伴音音质代码](#视频伴音音质代码) +- [获取番剧视频流URL](#获取番剧视频流URL) +- [视频的取流(web端及APP端)](#视频的取流web端及APP端) + +--- + +## qn视频清晰度标识 + +**注:该值在dash模式且非下载模式时无效** + +| 值 | 含义 | 备注 | +|-----|-------------|-----------------------------------------------------------------------------| +| 6 | 240P 极速 | 仅mp4方式支持 | +| 16 | 360P 流畅 | | +| 32 | 480P 清晰 | | +| 64 | 720P 高清 | web端默认值
B站前端需要登录才能选择,但是直接发送请求可以不登录就拿到720P的取流地址
**无720P时则为720P60** | +| 74 | 720P60 高帧率 | 需要认证登录账号 | +| 80 | 1080P 高清 | TV端与APP端默认值
需要认证登录账号 | +| 112 | 1080P+ 高码率 | 大多情况需求认证大会员账号 | +| 116 | 1080P60 高帧率 | 大多情况需求认证大会员账号 | +| 120 | 4K 超清 | 需要`fnval&128=128`且`fourk=1`
大多情况需求认证大会员账号 | +| 125 | HDR 真彩色 | 仅支持dash方式
需要`fnval&64=64`
大多情况需求认证大会员账号 | +| 126 | 杜比视界 | 仅支持dash方式
需要`fnval&512=512`
大多情况需求认证大会员账号 | +| 127 | 8K 超高清 | 仅支持dash方式
需要`fnval&1024=1024`
大多情况需求认证大会员账号 | + +例如:请求1080P+的视频,则`qn=112` + +## fnver视频流版本标识 + +目前该值恒为0,即`fnver=0` + +## fnval视频流格式标识 + +该代码为二进制属性位,如需组合功能需要使用`OR`运算结合一下数值 + +| 值 | 含义 | 备注 | +|------|-------------|-------------------------------------------------------------| +| 0 | flv格式 | 仅H.264编码
部分老视频存在分段现象
与mp4格式及dash格式互斥 | +| 1 | mp4格式 | 仅H.264编码
不存在视频分段
与flv格式及dash格式互斥 | +| 16 | dash格式 | H.264编码或H.265编码
部分老视频的清晰度上限低于flv格式
与mp4格式及flv格式互斥 | +| 64 | 是否需求 HDR 视频 | 必须为dash格式
需要`qn=125`
大多情况需求认证大会员账号 | +| 128 | 是否需求 4K 分辨率 | 该值与`fourk`字段协同作用
需要`qn=120`
大多情况需求认证大会员账号 | +| 256 | 是否需求杜比音频 | 必须为dash格式
大多情况需求认证大会员账号 | +| 512 | 是否需求杜比视界 | 必须为dash格式
大多情况需求认证大会员账号 | +| 1024 | 是否需求 8K 分辨率 | 必须为dash格式
需要`qn=127`
大多情况需求认证大会员账号 | +| 2048 | 是否需求 av1 编码 | 必须为dash格式 | + +例如:请求dash格式且需要HDR的视频流,则`fnval=16|64=80` + +## 视频编码代码 + +| 值 | 含义 | 备注 | +|-----|--------|----------| +| 7 | AVC编码 | 8K视频无此格式 | +| 12 | HEVC编码 | | +| 13 | AV1编码 | | + +## 视频伴音音质代码 + +| 值 | 含义 | +|-------|------| +| 30216 | 64K | +| 30232 | 132K | +| 30280 | 192K | + +## 获取番剧视频流URL + +> https://api.bilibili.com/pgc/player/web/playurl + +*请求方式:GET* + +认证方式:Cookie(SESSDATA) + +--- + +关于视频流会员鉴权: + +- 获取480P及以上清晰度视频时需要登录(Cookie) + +- 获取高帧率(1080P60)/高码率(1080P+)视频时需要有大会员的账号登录(Cookie) + +- 获取会员专属番剧视频时需要登录(Cookie) + +--- + +获取的url有效时间为120min,超时失效需要重新获取 + +**部分视频**会有**分段**,需要特别注意 + +若视频有分P,仅为单P的视频的url,换P则需更换cid重新获取 + +需要设置Referer为`https://www.bilibili.com`,否则无法获取1080清晰度以上的流信息。 + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +|---------------|-----|----------|--------|--------------------------------------------------------------------------------------------------| +| avid | num | 稿件avid | 非必要 | | +| bvid | str | 稿件bvid | 非必要 | | +| ep_id | num | 稿件epid | 必要(可选) | ep_id与cid任选一个 | +| cid | num | 视频cid | 必要(可选) | ep_id与cid任选一个 | +| qn | num | 视频清晰度选择 | 非必要 | 未登录默认32(480P)
登录默认64(720P)
**值含义见上表**
注:dash方式无效 | +| fnval | num | 视频获取方式选择 | 非必要 | 默认为0
0 2:flv方式(可能会有分段)
1:低清mp4方式(仅240P与360P,且限速65K/s)
16 80:dash方式(音视频分流,支持H.265) | +| fnver | num | 0 | 非必要 | 固定为0 | +| fourk | num | 是否允许4K视频 | 非必要 | 默认为0
画质最高1080P:0
画质最高4K:1 | +| session | str | | 非必要 | 从视频播放页的网页源码中获取 | +| from_client | str | BROWSER | 非必要 | | +| drm_tech_type | num | 2 | 非必要 | | + + + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +|---------|-----------------------|------|------------------------------------| +| code | num | 返回值 | 0:成功
-400:请求错误
-404:无视频 | +| message | str | 错误信息 | 成功为success | +| result | 有效时:obj
无效时:null | 数据本体 | | + +`result`对象: + +| 字段 | 类型 | 内容 | 备注 | +|--------------------|-------|-----------------------------------|----------------------------| +| code | num | 0 | 作用尚不明确 | +| is_preview | num | 0 | 作用尚不明确 | +| fnver | num | 请求时提供的fnver | | +| fnval | num | 请求时提供的fnval | | +| video_project | bool | true | | +| type | str | 视频流类型(DASH、FLV、MP4) | DASH | +| bp | num | 是否可以承包 | 0 | +| vip_type | num | 当前用户大会员类型 | | +| vip_status | num | 当前用户大会员状态 | | +| is_drm | bool | false | | +| no_rexcode | num | 0 | | +| has_paid | bool | false | | +| status | num | 2 | | +| from | str | local | 作用尚不明确 | +| result | str | suee | 作用尚不明确 | +| message | str | 空 | 作用尚不明确 | +| quality | num | 当前的视频分辨率代码 | **值含义见上表** | +| format | str | 视频格式 | | +| timelength | num | 视频长度 | 单位为毫秒
不同分辨率/格式可能有略微差异 | +| accept_format | str | 视频支持的全部格式 | 每项用`,`分隔 | +| accept_description | array | 视频支持的分辨率列表 | | +| accept_quality | array | 视频支持的分辨率代码列表 | **值含义见上表** | +| video_codecid | num | 默认选择视频流的编码id | 见**视频编码代码** | +| seek_param | str | 固定值:start | 作用尚不明确 | +| seek_type | str | offset(dash、flv)
second(mp4) | 作用尚不明确 | +| durl | array | 视频分段 | **注:仅flv/mp4存在此项** | +| dash | obj | dash音视频流信息 | **注:仅dash存在此项** | +| support_formats | array | 支持格式的详细信息 | | +| clip_info_list | array | | 空,待补充 | +| record_info | obj | 备案登记信息 | | + +`result`中的`accept_description`数组: + +| 项 | 类型 | 内容 | 备注 | +|-----|-----|------------|-----| +| 0 | str | 分辨率名称1 | | +| n | str | 分辨率名称(n+1) | | +| …… | str | …… | | + +`result`中的`accept_quality`数组: + +| 项 | 类型 | 内容 | 备注 | +|-----|-----|------------|-----| +| 0 | str | 分辨率代码1 | | +| n | str | 分辨率代码(n+1) | | +| …… | str | …… | | + +`result`中的`support_formats`数组: + +| 项 | 类型 | 内容 | 备注 | +|-----|-----|---------------|-----| +| 0 | obj | 播放格式详细信息1 | | +| n | obj | 播放格式详细信息(n+1) | | +| …… | obj | …… | | + +`support_formats`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +|-----------------|-------|---------|-----| +| quality | num | 视频清晰度代码 | | +| format | str | 视频格式 | | +| new_description | str | 格式描述 | | +| description | str | 格式描述 | | +| display_desc | str | 格式描述 | | +| superscript | str | (?) | | +| codecs | array | 编码格式列表 | | +| need_login | bool | 需要登录 | | +| need_vip | bool | 需要大会员 | | + +`support_formats`中的`codecs`数组: + +| 项 | 类型 | 内容 | 备注 | +|-----|-----|------|-----------------------------| +| 0 | str | 编码格式 | 如:avc1.640032,意为AVC编码 | +| 1 | str | 编码格式 | 如:hev1.1.6.L153.90,意为HEVC编码 | + +`result`中的`record_info`对象: + +| 项 | 类型 | 内容 | 备注 | +|-------------|-----|------|-----------------------| +| record_icon | str | 空串 | | +| record | str | 显示文案 | 登记号:10417060172092207 | + +--- + +**flv/mp4方式:** + +`result`中的`durl`数组: + +| 项 | 类型 | 内容 | 备注 | +|-----|-----|-------------|------------------| +| 0 | obj | 视频分段1信息 | **注:仅flv方式具有分段** | +| n | obj | 视频分段(n+1)信息 | | +| …… | obj | …… | | + +`durl`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +|------------|-------|--------|-----------------------------------| +| order | num | 视频分段序号 | 某些视频会分为多个片段(从1顺序增长) | +| length | num | 视频长度 | 单位为毫秒 | +| size | num | 视频大小 | 单位为Byte | +| vhead | str | 空 | 作用尚不明确 | +| url | str | 视频流url | **注:url内容存在转义符**
有效时间为120min | +| backup_url | array | 备用视频流 | | + +`durl`数组中的对象中的`backup_url`数组: + +| 项 | 类型 | 内容 | 备注 | +|-----|-----|----------------|-----------------------------------| +| 0 | str | 备用视频流url 1 | **注:url内容存在转义符**
有效时间为120min | +| n | str | 备用视频流url (n+1) | | +| …… | str | …… | | + +**示例:** + +**视频无分段时:** + +获取视频`ep85046`/`av2325306`中的1P(cid=`3629601`)的视频流url,清晰度为480p,使用flv方式获取 + +avid/epid方式: + +```shell +curl -G 'https://api.bilibili.com/pgc/player/web/playurl' \ +--data-urlencode 'avid=2325306' \ +--data-urlencode 'cid=3629601' \ +--data-urlencode 'ep_id=85046' \ +-b 'SESSDATA=xxx' +``` +https://api.bilibili.com/pgc/player/web/playurl?avid=2325306&cid=3629601&ep_id=85046 + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "success", + "result": { + "accept_format": "flv480,mp4", + "code": 0, + "seek_param": "start", + "is_preview": 0, + "fnval": 0, + "video_project": true, + "fnver": 0, + "type": "FLV", + "bp": 0, + "result": "suee", + "seek_type": "offset", + "from": "local", + "video_codecid": 7, + "record_info": { + "record_icon": "", + "record": "" + }, + "durl": [ + { + "size": 111138876, + "ahead": "", + "length": 1394090, + "vhead": "", + "backup_url": [ + "https://upos-sz-mirrorcoso1.bilivideo.com/upgcxcode/01/96/3629601/3629601_da8-1-32.flv?e=ig8euxZM2rNcNbRVhwdVhwdlhWdVhwdVhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1656098195&gen=playurlv2&os=coso1bv&oi=2946990771&trid=a1db84b216ea45dd89225f02a09093fdp&mid=0&platform=pc&upsig=878be08cc0e6bdea705952529e7e6785&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&bvc=vod&nettype=0&orderid=1,3&agrr=1&bw=79726&logo=40000000", + "https://upos-sz-mirrorcos.bilivideo.com/upgcxcode/01/96/3629601/3629601_da8-1-32.flv?e=ig8euxZM2rNcNbRVhwdVhwdlhWdVhwdVhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1656098195&gen=playurlv2&os=cosbv&oi=2946990771&trid=a1db84b216ea45dd89225f02a09093fdp&mid=0&platform=pc&upsig=8c31064c84d8e981704815992cfe315c&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&bvc=vod&nettype=0&orderid=2,3&agrr=1&bw=79726&logo=40000000" + ], + "url": "https://cn-lnsy-cu-v-02.bilivideo.com/upgcxcode/01/96/3629601/3629601_da8-1-32.flv?e=ig8euxZM2rNcNbRVhwdVhwdlhWdVhwdVhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1656098195&gen=playurlv2&os=bcache&oi=2946990771&trid=0000a1db84b216ea45dd89225f02a09093fdp&mid=0&platform=pc&upsig=7a5c4f25b9056359127191390a73bedc&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&cdnid=3281&bvc=vod&nettype=0&orderid=0,3&agrr=1&bw=79726&logo=80000000", + "order": 1, + "md5": "" + } + ], + "no_rexcode": 0, + "format": "flv480", + "support_formats": [ + { + "display_desc": "480P", + "superscript": "", + "codecs": [ ], + "format": "flv480", + "description": "清晰 480P", + "quality": 32, + "new_description": "480P 清晰" + }, + { + "display_desc": "360P", + "superscript": "", + "codecs": [ ], + "format": "mp4", + "description": "流畅 360P", + "quality": 16, + "new_description": "360P 流畅" + } + ], + "message": "", + "accept_quality": [ + 32, + 16 + ], + "quality": 32, + "timelength": 1394090, + "has_paid": false, + "clip_info_list": [ ], + "accept_description": [ + "清晰 480P", + "流畅 360P" + ], + "status": 2 + } +} +``` + +
+ +## 视频的取流(web端及APP端) + +**注意:** + +1. 如flv模式则可能产生分段情况,将`$.data.durl[1-n].url`或`$.data.durl[1-n].backup_url[0]`中的内容作为url进行GET操作, 如果有多个视频, 需要手动合并处理 +2. 如mp4模式则需要获取对应的视频流(方法同上) +3. 如dash模式则需要同时获取对应的视频流和伴音流(方法同上) +4. web端取流需要验证防盗链,即`referer`为 `.bilibili.com`域名下且UA不能为空;app端也需要验证防盗链,即UA需要含有`Mozilla/5.0 BiliDroid/*.*.* (bbcallen@gmail.com)`(*为版本);如`referer`或UA错误的情况会被判定为盗链,返回403 Forbidden故无法取流 +5. **注意unicode转义符** + +以上述视频流url为例: + +```shell +wget 'https://upos-sz-mirrorhwo1.bilivideo.com/upgcxcode/01/96/3629601/3629601_da8-1-32.flv?e=ig8euxZM2rNcNbRVhwdVhwdlhWdVhwdVhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1656098026&gen=playurlv2&os=hwo1bv&oi=0&trid=f0a1d2d854264369803462f3dd524154p&mid=0&platform=pc&upsig=76c1438153942fda51fbf4eb07e6e5a1&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&bvc=vod&nettype=0&orderid=0,2&agrr=1&bw=79726&logo=80000000' \ +--referer 'https://www.bilibili.com' \ +-O 'Download_video.flv' +``` + +响应正文将返回一个flv文件 diff --git a/docs/blackroom/banlist.md b/docs/blackroom/banlist.md new file mode 100644 index 0000000000..ea54f6f812 --- /dev/null +++ b/docs/blackroom/banlist.md @@ -0,0 +1,304 @@ +# 封禁公示 + +- [获取封禁用户公示列表](#获取封禁用户公示列表) +- [封禁处理公示详情](#封禁处理公示详情) + +--- + +###### 表1:已知的封禁原因类型代码总览: + +| 代码 | 含义 | +| ---- | -------------------- | +| 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 | 发布不适宜内容 | +| 29 | 违反运营规则 | +| 30 | 恶意创建话题 | +| 31 | 发布违规抽奖 | +| 32 | 恶意冒充他人 | + +###### 表2:已知的违规类型代码: + +| 代码 | 含义 | +| ---- | -------- | +| 0 | 全部类型 | +| 1 | 评论 | +| 2 | 弹幕 | +| 3 | 私信 | +| 4 | 标签 | +| 5 | 个人资料 | +| 6 | 投稿 | +| 8 | 专栏 | +| 10 | 动态 | +| 11 | 相簿 | + +## 获取封禁用户公示列表 + +> https://api.bilibili.com/x/credit/blocked/list + +*请求方式:GET* + +每页最多10项 + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | ---- | -------- | ------ | ------------------------------------------------------------ | +| btype | num | 来源筛选 | 非必要 | 空:全部类型
`0`:系统封禁
`1`:风纪仲裁(仲裁系统升级后此类型已不再更新) | +| otype | num | 类型筛选 | 非必要 | **见[表2](#表2已知的违规类型代码)**
默认为`0`:全部类型 | +| pn | num | 页码 | 非必要 | 默认为`1` | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ------ | -------- | ------------ | +| code | num | 返回值 | `0`:成功 | +| message | str | 错误信息 | 默认为`0` | +| ttl | num | `1` | | +| data | array | 公示列表 | | + +`data`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ------ | --------------- | ---- | +| 0 | object | 封禁公示1 | | +| n | object | 封禁公示(n+1) | | +| …… | object | …… | …… | + +`data`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------------------- | ---- | ---------------- | ------------------------------------------- | +| id | num | 封禁公示id | | +| uname | str | 对象用户名 | | +| face | str | 对象用户头像url | | +| uid | num | 对象用户mid | | +| originTitle | str | 来源标题 | | +| blockedRemark | str | | | +| originUrl | str | 来源url | | +| originContentModify | str | 裁决正文 | | +| originType | num | 来源类型 | **见[表2](#表2已知的违规类型代码)** | +| originTypeName | str | 来源名 | | +| punishTitle | str | 公示标题 | | +| punishTime | num | 处罚时间 | 时间戳 | +| punishType | num | 处理手段类型 | `2`:封禁
`3`:永久封禁 | +| punishTypeName | str | 处理手段名 | | +| moralNum | num | `0`节操值 | 被封禁用户节操值均为`0` | +| blockedDays | num | 封禁天数 | 永封为`0` | +| publishStatus | num | `1` | 作用尚不明确 | +| blockedType | num | 处理来源 | `0`:系统封禁
1:风纪仲裁 | +| blockedForever | num | 是否永封 | `0`:非永封
`1`:永封 | +| reasonType | num | 封禁原因类型 | **见[表1](#表1已知的封禁原因类型代码总览)** | +| reasonTypeName | str | 封禁原因类型名称 | | +| operatorName | str | 空 | 作用尚不明确 | +| caseId | num | 仲裁信息id | 系统封禁时固定为0 | +| ctime | num | 创建时间 | 时间戳 | +| commentSum | num | 该条目评论数 | | + +**示例:** + +查询所有类型,所有来源的第1页的封禁公示列表 + +```shell +curl -G 'https://api.bilibili.com/x/credit/blocked/list' \ +--data-urlencode 'btype=' \ +--data-urlencode 'otype=0' \ +--data-urlencode 'pn=1' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": [{ + "id": 1118220, + "uname": "漫城林语", + "face": "http://i2.hdslb.com/bfs/face/970f2da4a58f83879e69e259f4a9d3587cba03f0.jpg", + "uid": 135913, + "originTitle": "【罗翔】聊聊网络喷子与键盘侠", + "blockedRemark": "内容涉及人身攻击", + "originUrl": "https://www.bilibili.com/video/av752825895", + "originContentModify": "

案情:

1、大量刷屏/引战

我看新闻了,竹鼠全部被ZF无害化处理了,看的爽死我了,亏死你们,啊哈哈哈(x10)

【BV16g4y187he,2020-4-21 10:46:23~10:46:47】

2、大量人身攻击

N * * L

Deine Mu**er ist tot. (x10)

【BV1rk4y1R7id,2020-4-21 20:31:08~20:32:23】

3、引战

每次看他厨房乱七八糟的,可能有数不清的小强,你们还看美食看的有味也是奇PA

【BV1Kg4y1z7mA,2020-4-22  00:52:37】

批注:

满地狼藉招摇过,人皆愤懑怒拳握。

余恶不堪漏夜扫,正气于心涤龌龊。


(发现违规引战、人身攻击、刷屏评论,请按照相应分类进行举报。若发现反复进行上述行为,可联系工作人员反馈相关违规账号信息,我们会予以排查。)

(案例感想请发布在小黑屋评论区讨论,请勿骚扰被封禁的用户)

【本次判罚为管理员判定,请注意案件右上无蓝色标记(风纪委员众裁)】


", + "originType": 1, + "originTypeName": "评论", + "punishTitle": "在评论中发布人身攻击言论", + "punishTime": 1587494264, + "punishType": 3, + "punishTypeName": "永久封禁", + "moralNum": 0, + "blockedDays": 0, + "publishStatus": 1, + "blockedType": 0, + "blockedForever": 1, + "reasonType": 7, + "reasonTypeName": "发布人身攻击言论", + "operatorName": "", + "caseId": 0, + "ctime": 1587494264, + "commentSum": 606 + }, { + "id": 1091621, + "uname": "风纪委员会会长零八", + "face": "http://i1.hdslb.com/bfs/face/6ea4296f7591b9a724f540a41d48df728a0881b0.jpg", + "uid": 305542374, + "originTitle": "巅峰赛大乔游走辅助,队友说自家法师湖南卫视都不敢像法师这么演哈哈!", + "blockedRemark": "内容涉及传播不实信息", + "originUrl": "https://www.bilibili.com/video/av882552073", + "originContentModify": "

具体违规情况说明:

  1. 经查实确认,该账号从未申请从未担任过风纪委员职务。

  2. 发布多条 “您的稿件/评论涉及违规,即将下架/删除”的恐吓性言论。

  3. 谎称曾经封禁了某个up主,事实上风纪委员无法封禁up主投稿,且该up也从未被封禁。

  4. 威胁他人“要不要到小黑屋坐坐”,事实上风纪委员无法直接封禁用户。通过管理员封禁或风纪委员投票封禁的账号亦有据实申诉的机会。

  5. 故意挑衅他人“那你可以试着骂我,我们试试(举报)有没有用”。

  6. 误导他人“此评论区和弹幕无需保持礼仪”。

批注:

如您发现:假冒风纪委员身份招摇撞骗、炫耀风纪委员身份、借风纪委员职务之便威胁恐吓他人、在风纪观点中发布违规内容等违规行为,请及时联系我们进行举报。您可直接将举报材料发送至judgement@bilibili.com。

(案例感想请发布在小黑屋评论区讨论,请勿骚扰被封禁的用户)

【本次判罚为管理员判定,请注意案件右上无蓝色标记(风纪委员众裁)】

", + "originType": 1, + "originTypeName": "评论", + "punishTitle": "在评论中发布传播不实信息", + "punishTime": 1585560309, + "punishType": 2, + "punishTypeName": "封禁", + "moralNum": 0, + "blockedDays": 15, + "publishStatus": 1, + "blockedType": 0, + "blockedForever": 0, + "reasonType": 18, + "reasonTypeName": "发布传播不实信息", + "operatorName": "", + "caseId": 0, + "ctime": 1585560309, + "commentSum": 2379 + }, + ………… + ] +} +``` + +
+ +## 封禁处理公示详情 + +> https://api.bilibili.com/x/credit/blocked/info + +*请求方式:GET* + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | ---- | ---------- | ------ | ---- | +| id | num | 封禁公示id | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ----------------------------------------------- | +| code | num | 返回值 | 0:成功
-400:请求错误
-404:无此信息 | +| message | str | 错误信息 | 默认为`0` | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------------------- | ---- | ---------------- | ------------------------------------------- | +| id | num | 封禁公示id | | +| uname | str | 对象用户名 | | +| face | str | 对象用户头像url | | +| uid | num | 对象用户mid | | +| originTitle | str | 来源标题 | | +| blockedRemark | str | | | +| originUrl | str | 来源url | | +| originContentModify | str | 裁决正文 | | +| originType | num | 来源类型 | **见[表2](#表2已知的违规类型代码)** | +| originTypeName | str | 来源名 | | +| punishTitle | str | 公示标题 | | +| punishTime | num | 处罚时间 | 时间戳 | +| punishType | num | 处理手段类型 | `2`:封禁
`3`:永久封禁 | +| punishTypeName | str | 处理手段名 | | +| moralNum | num | `0`节操值 | 被封禁用户节操值均为`0` | +| blockedDays | num | 封禁天数 | 永封为`0` | +| publishStatus | num | `1` | 作用尚不明确 | +| blockedType | num | 处理来源 | `0`:系统封禁
`1`:风纪仲裁 | +| blockedForever | num | 是否永封 | `0`:非永封
`1`:永封 | +| reasonType | num | 封禁原因类型 | **见[表1](#表1已知的封禁原因类型代码总览)** | +| reasonTypeName | str | 封禁原因类型名称 | | +| operatorName | str | 空 | 作用尚不明确 | +| caseId | num | 仲裁信息id | 系统封禁时固定为0 | +| ctime | num | 创建时间 | 时间戳 | +| commentSum | num | 该条目评论数 | | + +**示例:** + +查询公示id为`1091621`的公示详情 + +```shell +curl -G 'https://api.bilibili.com/x/credit/blocked/info' \ +--data-urlencode 'id=1091621' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "id": 1091621, + "uname": "风纪委员会会长零八", + "face": "http://i1.hdslb.com/bfs/face/6ea4296f7591b9a724f540a41d48df728a0881b0.jpg", + "uid": 305542374, + "originTitle": "巅峰赛大乔游走辅助,队友说自家法师湖南卫视都不敢像法师这么演哈哈!", + "blockedRemark": "内容涉及传播不实信息", + "originUrl": "https://www.bilibili.com/video/BV1qK4y1C7dd", + "originContentModify": "

具体违规情况说明:

  1. 经查实确认,该账号从未申请从未担任过风纪委员职务。

  2. 发布多条 “您的稿件/评论涉及违规,即将下架/删除”的恐吓性言论。

  3. 谎称曾经封禁了某个up主,事实上风纪委员无法封禁up主投稿,且该up也从未被封禁。

  4. 威胁他人“要不要到小黑屋坐坐”,事实上风纪委员无法直接封禁用户。通过管理员封禁或风纪委员投票封禁的账号亦有据实申诉的机会。

  5. 故意挑衅他人“那你可以试着骂我,我们试试(举报)有没有用”。

  6. 误导他人“此评论区和弹幕无需保持礼仪”。

批注:

如您发现:假冒风纪委员身份招摇撞骗、炫耀风纪委员身份、借风纪委员职务之便威胁恐吓他人、在风纪观点中发布违规内容等违规行为,请及时联系我们进行举报。您可直接将举报材料发送至judgement@bilibili.com。

(案例感想请发布在小黑屋评论区讨论,请勿骚扰被封禁的用户)

【本次判罚为管理员判定,请注意案件右上无蓝色标记(风纪委员众裁)】

", + "originType": 1, + "originTypeName": "评论", + "punishTitle": "在评论中发布传播不实信息", + "punishTime": 1585560309, + "punishType": 2, + "punishTypeName": "封禁", + "moralNum": 0, + "blockedDays": 15, + "publishStatus": 1, + "blockedType": 0, + "blockedForever": 0, + "reasonType": 18, + "reasonTypeName": "发布传播不实信息", + "operatorName": "", + "caseId": 0, + "ctime": 1585560309, + "commentSum": 2379 + } +} +``` + +
diff --git a/docs/blackroom/jury/action.md b/docs/blackroom/jury/action.md new file mode 100644 index 0000000000..2ebcf5650c --- /dev/null +++ b/docs/blackroom/jury/action.md @@ -0,0 +1,367 @@ +# 仲裁操作 + +- [申请加入风纪委员会](#申请加入风纪委员会) +- [拉取新案件](#拉取新案件) +- [进行仲裁投票](#进行仲裁投票) + +--- + +## 申请加入风纪委员会 + +> https://api.bilibili.com/x/credit/v2/jury/apply + +*请求方式:POST* + +认证方式:Cookie + +只有用户会员90天内无违规、实名认证且非封禁状态才可以申请加入风纪委员会 + + +申请成功后可获得30天资格 + +**正文参数( application/x-www-form-urlencoded):** + +| 参数名 | 类型 | 内容 | 必要性 | +| ------ | ---- | ---------------------- | ------ | +| csrf | str | cookie中`bili_jct`的值 | 必要 | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | ------ | ------------------------------------------------------------ | +| code | num | 返回值 | 0:成功
-101:账号未登录
-111:csrf 校验失败
25001:申请等级限制(会员等级<3)
25002:没有实名认证
25003:90天内有封禁记录
25013:不能重复申请风纪委资格
25016:当日风纪委员名额已发完 | +| message | str | 信息 | 默认为0 | +| ttl | num | 1 | | + + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1 +} +``` + +
+ +#### 旧API +
+查看旧版API: + +> https://api.bilibili.com/x/credit/jury/apply + +*请求方式:POST* + +认证方式:Cookie(SESSDATA)或APP + +只有用户会员等级≥Lv4、90天内无违规、实名认证且非封禁状态才可以申请加入风纪委员会 + +每日10:00开放新名额 + +申请成功后可获得30天资格 + +**正文参数( application/x-www-form-urlencoded ):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ---------- | ---- | ------------------------ | -------------- | ---- | +| access_key | str | APP登录Token | APP方式必要 | | +| csrf | str | CSRF Token(位于cookie) | Cookie方式必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | ------ | ------------------------------------------------------------ | +| code | num | 返回值 | 0:成功
-101:账号未登录
-111:csrf 校验失败
25001:申请等级限制(会员等级<3)
25002:没有实名认证
25003:90天内有封禁记录
25013:不能重复申请风纪委资格
25016:当日风纪委员名额已发完 | +| message | str | 信息 | 默认为0 | +| ttl | num | 1 | | + +**示例:** + +Cookie方式: + +```shell +curl 'https://api.bilibili.com/x/credit/jury/apply' \ +--data-urlencode 'csrf=xxx' \ +-b 'SESSDATA=xxx' +``` + +APP方式: + +```shell +curl 'https://api.bilibili.com/x/credit/jury/apply' \ +--data-urlencode 'access_key=xxx' +``` +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1 +} +``` + +
+
+ +## 拉取新案件 + +> https://api.bilibili.com/x/credit/v2/jury/case/next + +*请求方式:GET* + +认证方式:Cookie + +**标头参数(Headers):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | ---- | ------ | ------ | ---- | +| Cookie | str | Cookie | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ------ | -------- | ------------------------------------------------------------ | +| code | num | 返回值 | 0:成功
25006:风纪委员资格已过期
25008:没有案件
25014:已审满 | +| message | str | 信息 | 默认为0,当code不为0时,显示错误信息 | +| ttl | num | 1 | 作用尚不明确 | +| data | object | 数据本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | ---------- | ---- | +| case_id | str | 仲裁案件id | | + +**示例:** + +Cookie方式: + +```shell +curl -G 'https://api.bilibili.com/x/credit/v2/jury/case/next' \ +--header 'cookie: XXXXX' +``` + + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "case_id": "AC2m4HlrIrHv" + } +} +``` + +
+ +#### 旧API +
+查看旧版API: + +> https://api.bilibili.com/x/credit/jury/caseObtain + +*请求方式:POST* + +认证方式:Cookie(SESSDATA)或APP + +**正文参数( application/x-www-form-urlencoded ):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ---------- | ---- | ------------------------ | -------------- | ---- | +| access_key | str | APP登录Token | APP方式必要 | | +| csrf | str | CSRF Token(位于cookie) | Cookie方式必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ------ | -------- | ------------------------------------------------------------ | +| code | num | 返回值 | 0:成功
25005:不是风纪委员
25008:没有案件
25014:已审满 | +| message | str | 信息 | 默认为0 | +| ttl | num | 1 | 作用尚不明确 | +| data | object | 数据本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | ---------- | ---- | +| id | num | 仲裁案件id | | + +**示例:** + +Cookie方式: + +```shell +curl 'https://api.bilibili.com/x/credit/jury/caseObtain' \ +--data-urlencode 'csrf=xxx' \ +-b 'SESSDATA=xxx' +``` + +APP方式: + +```shell +curl 'https://api.bilibili.com/x/credit/jury/caseObtain' \ +--data-urlencode 'access_key=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "id": 1239790 + } +} +``` + +
+
+ + +## 进行仲裁投票 + +> https://api.bilibili.com/x/credit/v2/jury/vote + +*请求方式:POST* + +认证方式:Cookie + +**正文参数( application/x-www-form-urlencoded ):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| --------- | ---- | ---------------------- | ------ | ----------------------------------------------------- | +| case_id | str | 案件id | 必要 | | +| vote | num | 投票类型 | 必要 | 见「[众裁信息](judgement_info.md)」中表 | +| insiders | num | 是否观看此类视频 | 非必要 | 默认值为0
见「[众裁信息](judgement_info.md)」中表 | +| content | str | 理由 | 非必要 | | +| anonymous | num | 是否匿名 | 非必要 | 默认值为0
0:不匿名
1:匿名 | +| csrf | str | cookie中`bili_jct`的值 | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | ------ | ------------------------------------------------------------ | +| code | num | 返回值 | 0:成功
-101:未登录
-111:csrf 错误
-400:请求错误(投票类型错误)
25005:不是风纪委员
25011:投票类型错误
25018:不能进行此操作

*注:新版本对于一个不存在的`case_id`,不会报错。* | +| message | str | 信息 | 默认为0 | +| ttl | num | 1 | 作用尚不明确 | + + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1 +} +``` + +
+ +#### 旧API +
+查看旧版API: +> https://api.bilibili.com/x/credit/jury/vote + +*请求方式:POST* + +认证方式:Cookie(SESSDATA)或APP + +**正文参数( application/x-www-form-urlencoded ):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------------- | ---- | ------------------------ | -------------- | --------------------------------------- | +| cid | num | 案件id | 必要 | | +| vote | num | 投票类型 | 必要 | 见「[众裁信息](judgement_info.md)」中表 | +| content | str | 理由 | 非必要 | 见「[众裁信息](judgement_info.md)」中表 | +| likes | nums | 支持的观点 | 非必要 | | +| hates | nums | 反对的观点 | 非必要 | | +| attr | num | 是否匿名 | 非必要 | 0:匿名
1:不匿名 | +| apply_type | num | 是否更改原因 | 非必要 | 0:保持原来原因
1:投票给新原因 | +| origin_reason | num | 原始原因 | 非必要 | 见「封禁公示」中表 | +| apply_reason | num | 新原因 | 非必要 | 见「封禁公示」中表 | +| csrf | str | CSRF Token(位于cookie) | Cookie方式必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | ------ | ------------------------------------------------------------ | +| code | num | 返回值 | 0:成功
-101:未登录
-111:csrf 错误
-400:请求错误(投票类型错误)
25005:不是风纪委员
25009: 案件不存在
25011:投票类型错误
25012:重复投票 | +| message | str | 信息 | 默认为0 | +| ttl | num | 1 | 作用尚不明确 | + +**示例:** + +为案件`2333`投票,建议封禁,无理由,不匿名,无支持/反对观点,不修改投票原因 + +Cookie方式: + +```shell +curl 'https://api.bilibili.com/x/credit/jury/vote' \ +--data-urlencode 'cid=2333' \ +--data-urlencode 'vote=1' \ +--data-urlencode 'content=' \ +--data-urlencode 'likes=' \ +--data-urlencode 'hates=' \ +--data-urlencode 'attr=1' \ +--data-urlencode 'apply_type=0' \ +--data-urlencode 'origin_reason=' \ +--data-urlencode 'apply_reason=' \ +--data-urlencode 'csrf=xxx' \ +-b 'SESSDATA=xxx' +``` + +APP方式: + +```shell +curl 'https://api.bilibili.com/x/credit/jury/vote' \ +--data-urlencode 'access_key=xxx' \ +--data-urlencode 'cid=2333' \ +--data-urlencode 'vote=1' \ +--data-urlencode 'content=' \ +--data-urlencode 'likes=' \ +--data-urlencode 'hates=' \ +--data-urlencode 'attr=1' \ +--data-urlencode 'apply_type=0' \ +--data-urlencode 'origin_reason=' \ +--data-urlencode 'apply_reason=' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1 +} +``` + +
+
\ No newline at end of file diff --git a/docs/blackroom/jury/base_info.md b/docs/blackroom/jury/base_info.md new file mode 100644 index 0000000000..abf9a8bba5 --- /dev/null +++ b/docs/blackroom/jury/base_info.md @@ -0,0 +1,338 @@ +# 风纪委员会用户基本信息 + +- [基本数据](#基本数据) +- [统计信息](#统计信息) + - [新API(2021年10月任期之后)](#新api2021年10月任期之后) + - [旧API](#旧api) +- [检查申请风纪委员会资格](#检查申请风纪委员会资格) + +--- + +## 基本数据 + +> https://api.bilibili.com/x/credit/v2/jury/jury + +_请求方式:GET_ + +认证方式:Cookie(SESSDATA)或 APP + +**url 参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ---------- | ---- | -------------- | ------------ | ---- | +| access_key | str | APP 登录 Token | APP 方式必要 | | + +**json 回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ------ | -------- | ----------------------------- | +| code | num | 返回值 | 0:成功
-101:账号未登录 | +| message | str | 信息 | 默认为 0 | +| ttl | num | 1 | | +| data | object | 数据本体 | | + +`data` 对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------------ | ---- | ------------ | -------------------------------------------------------------------------------------------------- | +| allow_apply | bool | true | 尚不明确(用户从未担任风纪委员时也为 true) | +| apply_status | num | 任期审核状态 | -1 资格失效,且未申请
0 刚申请连任时
5 申请后,等待审核
3 申请连任成功,status 为 1 | +| case_total | num | 总众裁数 | | +| err_msg | str | 空 | 尚不明确 | +| face | str | 用户头像 url | | +| status | num | 当前资格状态 | 0 未曾拥有资格
1 任期内
2 资格失效 | +| term_end | num | 任期结束时间 | 时间戳(秒级),无任期时为 0 | +| uname | str | 用户昵称 | | + +**旧API** + +部分字段信息停留在 2021 年 10 月。 + +
+查看旧 api: + +> https://api.bilibili.com/x/credit/jury/jury (旧) + +根数据与新 API 一致,`data` 对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---------- | ---- | -------------------- | ---------------------------- | +| caseTotal | num | 总众裁数 | | +| face | str | 用户头像 url | | +| restDays | num | 当前资格剩余天数 | 自 2021 年 10 月起,固定为 0 | +| rightRadio | num | 当前裁决正确率百分比 | 裁决数小于 3 时固定为 50 | +| status | num | 当前状态 | 1:具有资格
2:资格失效 | +| uname | str | 用户昵称 | | + +
+ +## 统计信息 + +#### 新API(2021年10月任期之后) + +>https://api.bilibili.com/x/credit/v2/jury/kpi + +*方式:GET* + +认证方式:Cookie + +***备注**:该api只收录2021年10月开始,风纪委员改版之后的数据,且每次只返回一次任期的数据。* + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------- | ---- | ------- | ------------ | -------------------------------------- | +| term_id | num | 任期 id | 可不传此参数或将值留空或设为`0` | 未传参或留空时,**只**返回最近一次已结束的任期的数据 | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ------ | -------- | ------------------------------------------------------------ | +| code | num | 返回值 | 0:成功
-101:账号未登录
25018:不能进行此操作(还没有成为新风纪委员,或传入了不属于你的`term_id`) | +| message | str | 信息 | 默认为 0 | +| ttl | num | 1 | | +| data | object | 数据本体 | | + +`data` 对象: + +| 项 | 类型 | 内容 | 备注 | +| --------------- | ------ | ------------------ | ------------------------------------------------------------ | +| mid | num | 用户 UID | | +| uname | str | 留空 | | +| face | str | 留空 | | +| term_id | num | 任期 ID | 未传入`term_id`时,返回的是最近一次已结束的任期的id | +| term_start | num | 任期开始时间 | 时间戳,精确到秒 | +| term_end | num | 任期结束时间 | 时间戳,精确到秒 | +| case_total | num | 任内总投票数 | | +| active_days | num | 活跃天数 | | +| like_num | num | 发表观点,被点赞数 | | +| accuracy_rate | num | 投中率 | 所选观点与大多数风纪委员一致,记为一次“投中” | +| pass | num | 任期是否合格 | 0 不合格
1 合格 | +| status | num | 当前资格状态 | 0 未曾拥有资格
1 任期内
2 资格失效 | +| apply_status | num | 当前资格申请状态 | -1 资格失效,且未申请
0 刚申请连任时
5 申请后,等待审核
3 申请连任成功,status 为 1 | +| prev_term_id | num | 上一任期的任期 ID | 新版风纪委员启用后的第一个任期,此项的值为 0 | +| next_term_id | num | 下一任期的任期 ID | 若当前任期尚未结束,此项的值为 0 | +| rewards | object | 任期奖励 | 有`pendant`和`coin`两个子项 | +| rewards.pendant | num | 头像挂件礼包 ID | 合格后一般为 1,不合格为 0 | +| rewards.coin | num | 硬币礼包 ID | 合格后一般为 3,不合格为 0 | + +
+查看响应示例: + +注:本示例未传入`term_id`,返回的是最近一次已结束任期的统计结果 + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "mid": 10001, + "uname": "", + "face": "", + "term_id": 300009, + "term_start": 1669100000, + "term_end": 1671690000, + "case_total": 591, + "active_days": 30, + "like_num": 0, + "accuracy_rate": 74, + "pass": 1, + "status": 1, + "apply_status": 3, + "prev_term_id": 300007, + "next_term_id": 0, + "rewards": { + "pendant": 1, + "coin": 3 + } + } +} +``` +
+ +#### 旧API +
+查看旧 api: + +> https://api.bilibili.com/x/credit/jury/kpi (旧) + +*方式:GET* + +认证方式:Cookie(SESSDATA)或APP + +***备注**:该api只统计到2021年9月任期,风纪委员改版之前。风纪委员改版之后的数据未收录* + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ---------- | ---- | ------------ | ----------- | ---- | +| access_key | str | APP登录Token | APP方式必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ----- | -------- | ----------------------------- | +| code | num | 返回值 | 0:成功
-101:账号未登录 | +| message | str | 信息 | 默认为0 | +| ttl | num | 1 | | +| data | array | 数据本体 | | + +`data`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | ----------------- | ---- | +| 0 | obj | 第1个月统计 | | +| n | obj | 第(n+1)个月统计 | | +| …… | obj | …… | …… | + +`data` 数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------------- | ---- | -------------------------------- | --------------------- | +| id | num | 0 | | +| mid | num | 用户id | | +| number | num | 风纪委员编号 | | +| day | num | 数据生成时间(也是任期结束时间) | 时间戳,精确到秒 | +| rate | num | 任期完成度 | 1=A;2=S;3=S+;4=S++ | +| rank | num | 尚不明确 | | +| rankper | num | 尚不明确 | | +| rankTotal | num | 尚不明确 | | +| point | num | 32767 | | +| activeDays | num | 活跃天数 | | +| voteTotal | num | 投票总数 | | +| voteRadio | num | 投中率 | | +| blockedTotal | num | 尚不明确 | | +| termStart | num | 任期开始时间 | 时间戳,精确到秒 | +| termEnd | num | 任期结束时间(数据生成时间一致) | 时间戳,精确到秒 | +| opinion_likes | num | 观点获赞 | | + +**示例:** + +Cookie方式: + +```shell +curl 'https://api.bilibili.com/x/credit/jury/kpi' \ +-b 'SESSDATA=xxx' +``` + +APP方式: + +```shell +curl -G 'https://api.bilibili.com/x/credit/jury/kpi' \ +--data-urlencode 'access_key=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": [ + { + "id": 0, + "mid": 114343368, + "number": 199046, + "day": 1539792000, + "rate": 1, + "rank": 0, + "rankper": 1, + "rankTotal": 39584, + "point": 32767, + "activeDays": 23, + "voteTotal": 422, + "voteRadio": 0, + "blockedTotal": 0, + "termStart": 1537200000, + "termEnd": 1539792000, + "opinion_likes": 18 + } + ] +} +``` + +
+
+ +## 检查申请风纪委员会资格 + +> ~~https://api.bilibili.com/x/credit/jury/requirement~~ (旧版) + +> https://api.bilibili.com/x/credit/v2/jury/requirement (新版) + +*请求方式:GET* + +认证方式:Cookie(SESSDATA)或APP + +新版 api 与旧版的区别仅在新版没有 `level` 字段(新版风纪委员没有等级限制)。 + +只有用户~~会员等级≥Lv4、~~ 90 天内无违规、实名认证且非封禁状态才可以申请加入风纪委员会。 + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ---------- | ---- | ------------ | ----------- | ---- | +| access_key | str | APP登录Token | APP方式必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ------ | -------- | ----------------------------- | +| code | num | 返回值 | 0:成功
-101:账号未登录 | +| message | str | 信息 | 默认为0 | +| ttl | num | 1 | | +| data | object | 数据本体 | | + +`data` 对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | ---------------- | ------------------------------------- | +| blocked | bool | 是否被封禁 | true:是
false:否
**下同** | +| cert | bool | 是否实名认证 | | +| level | bool | 等级是否>=4 | 新版无该字段 | +| rule | bool | 是否90天内无违规 | | + +**示例:** + +Cookie方式: + +```shell +curl 'https://api.bilibili.com/x/credit/v2/jury/requirement' \ +-b 'SESSDATA=xxx' +``` + +APP方式: + +```shell +curl -G 'https://api.bilibili.com/x/credit/v2/jury/requirement' \ +--data-urlencode 'access_key=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "blocked": false, + "cert": true, + "rule": true + } +} +``` + +
diff --git a/docs/blackroom/jury/judgement_info.md b/docs/blackroom/jury/judgement_info.md new file mode 100644 index 0000000000..2182dc5975 --- /dev/null +++ b/docs/blackroom/jury/judgement_info.md @@ -0,0 +1,998 @@ +# 众裁信息 + +- [查询投票过的单个案件](#查询投票过的单个案件) +- [查询案件众裁信息](#查询案件众裁信息) +- [查询我的众裁记录](#查询我的众裁记录) +- [获取众议观点](#获取众议观点) + +--- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
投票类型码总览
代码含义
0未投票
1封禁
2
3弃权
4删除
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
投票选项码总览
任务类型代码含义
单条评论(弹幕)1合适
2一般
3不合适
4无法判断
评论(弹幕)氛围11
12一般
13
14无法判断
+ + + +## 查询投票过的单个案件 + +> https://api.bilibili.com/x/credit/v2/jury/case/info + +*请求方式:GET* + +认证方式:Cookie(SESSDATA)或APP + +可查询任意案件,无论自己是否参与投票。 + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | ------------ | ------ | ------------- | ------------- | +| access_key | str | APP登录Token | APP方式必要 | | +| case_id | str | 案件id | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ------ | -------- | ------------ | +| code | num | 返回值 | 0:成功
-101:账号未登录
-400:请求错误 | +| message | str | 信息 | 默认为0 | +| ttl | num | 1 | | +| data | object | 数据本体 | | + +`data` 对象: + +| 字段 | 类型 | 内容 | 备注 | +| --------- | ------ | -------- | ------------ | +| case_id | str | 案件id | | +| case_type | num | 任务类型 | 1:单条评论
2:评论氛围
3:单条弹幕
4:弹幕氛围 | +| jury_state | num | `1` | 改版后未见过其它值 | +| participate | num | 是否投票 | 0:未投票
1:已投票 | +| vote_items | object | 投票选项 | 见开头「投票选项码总览」 | +| default_vote | num | 默认投票选项 | `4`或`14`即`无法判断` | +| status | num | 裁决状态(新版) | 0:进行中
1:已结束 | +| origin_start | num | 案件关联视频,播放进度条起始坐标 | 单位:`秒` | +| avid | num | 视频av号 | | +| cid | num | 弹幕池id | 弹幕相关参见「[xml弹幕](https://github.com/SocialSisterYi/bilibili-API-collect/blob/master/danmaku/danmaku_xml.md)」 | +| vote_cd | num | `-1` | 暂不明确 | +| result | num | 众议结论 | 见开头「投票选项码总览」 | +| result_text | str | 众议结论文本 | | +| title | str | 视频标题 | | +| case_info | object | 案件信息 | 见「[附表1](#附表1data-对象下的case_info对象)」 | +| my_point | object | 我的观点 | 见「[附表4](#附表4data-对象下的my_point对象)」 | +| vote_info | object | 投票信息 | 见「[附表5](#附表5data-对象下的vote_info对象)」 | + +###### 附表1:`data` 对象下的`case_info`对象 + +| 字段 | 类型 | 内容 | 备注 | +| ------------ | ------ | ------------ | ------------------------------------------------------------ | +| comment | object | 单条评论信息 | 仅当`case_type`为`1`有值。见「[附表2](#附表2评论信息)」 | +| danmu_img | str | 弹幕截图 | 仅当`case_type`为`4`有值,截图URL | +| comments | object | 若干条评论 | 仅当`case_type`为`2`有值。见「[附表2](#附表2评论信息)」 | +| single_danmu | str | 单条弹幕信息 | 仅当`case_type`为`3`有值。见「[附表3](#附表3弹幕信息)」 | + +###### 附表2:评论信息 + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | ---- | ---- | +| mid | num | 用户uid | | +| uname | str | 用户名 | | +| face | str | 用户头像 | 头像URL | +| content | str | 评论内容 | | +| child_comments | object | 子评论(对该评论的回复) | 见「[附表2](#附表2评论信息)」,单条评论和子评论下无`child_comments`字段 | + +###### 附表3:弹幕信息 + +| 字段 | 类型 | 内容 | 备注 | +| -------- | ---- | -------- | ------------------------------------------------------------ | +| id_str | str | 弹幕dmid | 见「[xml弹幕](https://github.com/SocialSisterYi/bilibili-API-collect/blob/master/danmaku/danmaku_xml.md#%E5%B1%9E%E6%80%A7-p)」 | +| content | str | 弹幕内容 | | +| progress | num | | 尚不明确 | + +###### 附表4:`data` 对象下的`my_point`对象 + +记录了某个风纪委员的某个投票(观点)信息 + +| 字段 | 类型 | 内容 | 备注 | +| ----------- | ---- | ---------------- | ------------------------------------------------------------ | +| opid | num | 观点编号 | 每当某个一个风纪委员给某个仲裁案件发表观点,就+1 | +| mid | num | 风纪委员用户ID | | +| uname | str | 风纪委员用户名 | 风纪委勾选匿名投票则显示“匿名用户” | +| face | str | 头像URL | 头像 | +| vote | num | 投票选项 | “合适题”分别为 `1` 或者 `2` 或者 `3` 或者 `4`,
对应:“合适”、“一般”、“不合适”、“无法判断”

“氛围题”分别为 `11` 或者 `12` 或者 `13` 或者 `14`,
对应:“好”、“一般”、“差”、“无法判断”

注释
合适题:“单条弹幕(评论)是否合适?”
氛围题:“弹幕(评论区)氛围如何” | +| vote_text | | 内容为空 | *现在系统已不再展示其他风纪委所投的票* | +| content | str | 观点内容 | 该风纪委员所发表的观点内容 | +| anonymous | num | 0 | 尚不明确 | +| like | num | 被点赞数量 | | +| hate | num | 被点踩数量 | | +| like_status | num | 点赞(踩)状态 | 本账号是否给该条评论点赞:
0:没做操作;1:给评论点赞;2:给评论点踩 | +| vote_time | num | 投票时间 | 时间戳,精确到秒 | +| insiders | num | 是否观看此类视频 | 1:平时观看此类视频;0:平时不观看此类视频 | + +###### 附表5:`data` 对象下的`vote_info`对象 + +| 字段 | 类型 | 内容 | 备注 | +| --------------- | ----- | -------- | -------------------------------------------- | +| all_count | num | 总投票数 | | +| counts | array | 观点分布 | 格式:`[合适, 一般, 不合适, 无法判断]` | +| insiders_counts | array | 行为分布 | 格式:`[平时会看此类视频, 平时不看此类视频]` | + +**示例:** + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "case_id": "AC2SiaD8jlrL", + "case_type": 3, + "jury_state": 1, + "participate": 1, + "vote_items": [ + { + "vote": 1, + "vote_text": "合适" + }, + { + "vote": 2, + "vote_text": "一般" + }, + { + "vote": 3, + "vote_text": "不合适" + }, + { + "vote": 4, + "vote_text": "无法判断" + } + ], + "default_vote": 4, + "status": 1, + "origin_start": 0, + "avid": 727792866, + "cid": 756815216, + "vote_cd": -1, + "result": 3, + "result_text": "不合适", + "title": "“国家队”守门员和朋友打赌,谁能在湿滑的地面踢进足球就送美刀", + "case_info": { + "comment": null, + "danmu_img": "", + "comments": null, + "single_danmu": { + "id_str": "1086612690354524160", + "content": "这守门员干啥呢?给块骨头我家狗都比他防的好", + "progress": 27859 + } + }, + "my_point": { + "opid": 10001, + "mid": 10001, + "uname": "风纪委员用户名", + "face": "http://i0.hdslb.com/bfs/face/e48952d599dbf011c2235239fafa2bf0deccef5a.jpg", + "vote": 3, + "vote_text": "不合适", + "content": "", + "anonymous": 0, + "like": 0, + "hate": 0, + "like_status": 0, + "vote_time": 1663655000, + "insiders": 1 + }, + "vote_info": { + "all_count": 306, + "counts": [90, 33, 177, 6], + "insiders_counts": [245, 61] + } + } +} +``` +
+ +#### 旧 api + +
+查看旧 api: + +> https://api.bilibili.com/x/credit/jury/juryCase + +*请求方式:GET* + +认证方式:Cookie(SESSDATA)或APP + +只能查询自己参与众裁的 + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | ------------ | ------ | ------------- | ------------- | +| access_key | str | APP登录Token | APP方式必要 | | +| cid | num | 案件id | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ------ | -------- | ------------ | +| code | num | 返回值 | 0:成功
-101:账号未登录
-400:请求错误
25010:没有权限查看案件 | +| message | str | 信息 | 默认为0 | +| ttl | num | 1 | | +| data | object | 数据本体 | | + +`data` 对象: + +| 字段 | 类型 | 内容 | 备注 | +| --------- | ------ | -------- | ------------ | +| id | num | 案件id | | +| mid | num | 被举报用户mid | | +| status | num | 裁决状态 | 1:投票中
2:停止发放
3:复核中(结案中)
4:已裁决
5:待重启
6:未裁决
7:冻结中
8:队列中 | +| statusTitle | str | 封禁时间文字 | `judgeType`=1时有效 | +| originType | num | 来源类型 | 见「封禁公示」中表 | +| reasonType | num | 原因类型 | 见「封禁公示」中表 | +| originContent | str | 被举报的原文 | | +| punishResult | num | 处理结果 | 0:无
1:封禁3天
2:封禁7天
3:永封
4:其他封禁天数
5:封禁15天
6:仅删除不封禁 | +| punishTitle | str | 处罚原因 | | +| judgeType | num | 裁决类型 | `status`=4时有效
0:未裁决
1:违规
2:不违规 | +| originUrl | str | 来源url | | +| blockedDays | num | 封禁时间 | `judgeType`=1时有效 | +| putTotal | num | ??? | 作用尚不明确 | +| voteRule | num | 投票不违规人数 | | +| voteBreak | num | 投票建议封禁人数 | | +| voteDelete | num | 投票建议删除人数 | | +| startTime | num | 裁决起始时间 | 时间戳 | +| endTime | num | 裁决截止时间 | 时间戳
未结案固定为24小时 | +| ctime | num | 举报创建时间 | 时间戳 | +| mtime | num | 开始拉取时间 | 时间戳 | +| originTitle | str | 来源标题 | | +| relationId | str | 违规关系标识字 | {评论rpid}-{违规类型id}-{来源对象id} | +| face | str | 被举报用户头像url | | +| uname | str | 被举报用户昵称 | | +| vote | num | 我的投票 | **见上表** | +| case_type | num | 众裁类型 | 0:小众众裁
1:大众众裁 | + +**示例:** + +查询案件`1239790`的信息 + +Cookie方式: + +```shell +curl -G 'https://api.bilibili.com/x/credit/jury/juryCase' \ +--data-urlencode 'cid=1239790' \ +-b 'SESSDATA=xxx' +``` + +APP方式: + +```shell +curl -G 'https://api.bilibili.com/x/credit/jury/juryCase' \ +--data-urlencode 'access_key=xxx' \ +--data-urlencode 'cid=1239790' \ +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "id": 1239790, + "mid": 351783425, + "status": 4, + "statusTitle": "封禁7天", + "originType": 1, + "reasonType": 9, + "originContent": "up主,在和平精英里的喷子是霰(xian)弹枪,不是散(san)弹枪。", + "punishResult": 0, + "punishTitle": "在评论中发布引战言论", + "judgeType": 2, + "originUrl": "https://www.bilibili.com/video/BV15x411X7eV/#reply1728344012", + "blockedDays": 7, + "putTotal": 272, + "voteRule": 409, + "voteBreak": 17, + "voteDelete": 89, + "startTime": 1594467941, + "endTime": 1594471525, + "ctime": 1594464499, + "mtime": 1594471678, + "originTitle": "和平精英揭秘真相68:氪金试水最新抽奖活动,到底是亏了还是赚了?", + "relationId": "1728344012-1-57465308", + "face": "http://i2.hdslb.com/bfs/face/e1018566c615059b664dc6eae3a5235c31cd92fe.jpg", + "uname": "零酱a", + "vote": 4, + "case_type": 0 + } +} +``` + +
+
+ +## 查询案件众裁信息 + +注:这是一个旧版的API,暂未找到对应的新版API。 +
+展开: +> https://api.bilibili.com/x/credit/jury/caseInfo + +*请求方式:GET* + +注:该接口无需登录 + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | ---- | ------ | ------ | ---- | +| cid | num | 案件id | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | -------------------------------- | -------- | --------------------------- | +| code | num | 返回值 | 0:成功
-400:请求错误 | +| message | str | 信息 | 默认为0 | +| ttl | num | 1 | | +| data | 有效时:object
无效时:null | 数据本体 | | + +`data` 对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------------- | ---- | ----------------- | ------------------------------------------------------------ | +| id | num | 案件id | | +| mid | num | 被举报用户mid | | +| status | num | 裁决状态 | 1:投票中
2:停止发放
3:复核中(结案中)
4:已裁决
5:待重启
6:未裁决
7:冻结中
8:队列中 | +| originType | num | 来源类型 | 见「封禁公示」中表 | +| reasonType | num | 原因类型 | 见「封禁公示」中表 | +| originContent | str | 被举报的原文 | | +| punishResult | num | 处理结果 | 0:无
1:封禁3天
2:封禁7天
3:永封
4:其他封禁天数
5:封禁15天
6:仅删除不封禁 | +| judgeType | num | 裁决类型 | `status`=4时有效
0:未裁决
1:违规
2:不违规 | +| originUrl | str | 来源url | | +| blockedDays | num | 封禁时间 | `judgeType`=1时有效 | +| putTotal | num | ??? | 作用尚不明确 | +| voteRule | num | 投票不违规人数 | | +| voteBreak | num | 投票建议封禁人数 | | +| voteDelete | num | 投票建议删除人数 | | +| startTime | num | 裁决起始时间 | 时间戳 | +| endTime | num | 裁决截止时间 | 时间戳
未结案固定为24小时 | +| ctime | num | 举报创建时间 | 时间戳 | +| mtime | num | 开始拉取时间 | 时间戳 | +| originTitle | str | 来源标题 | | +| relationId | str | 违规关系标识字 | {评论rpid}-{违规类型id}-{来源对象id} | +| face | str | 被举报用户头像url | | +| uname | str | 被举报用户昵称 | | +| vote | num | 0 | 固定为0 | +| case_type | num | 众裁类型 | 0:小众众裁
1:大众众裁 | + +**示例:** + +查询案件`1239790`的信息 + +```shell +curl -G 'https://api.bilibili.com/x/credit/jury/juryCase' \ +--data-urlencode 'cid=1239790' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "id": 1239790, + "mid": 351783425, + "status": 4, + "originType": 1, + "reasonType": 9, + "originContent": "up主,在和平精英里的喷子是霰(xian)弹枪,不是散(san)弹枪。", + "punishResult": 0, + "judgeType": 2, + "originUrl": "https://www.bilibili.com/video/BV15x411X7eV/#reply1728344012", + "blockedDays": 7, + "putTotal": 272, + "voteRule": 409, + "voteBreak": 17, + "voteDelete": 89, + "startTime": 1594467941, + "endTime": 1594471525, + "ctime": 1594464499, + "mtime": 1594471678, + "originTitle": "和平精英揭秘真相68:氪金试水最新抽奖活动,到底是亏了还是赚了?", + "relationId": "1728344012-1-57465308", + "face": "http://i2.hdslb.com/bfs/face/e1018566c615059b664dc6eae3a5235c31cd92fe.jpg", + "uname": "零酱a", + "vote": 0, + "case_type": 0 + } +} +``` +
+
+ +## 查询我的众裁记录 + +> https://api.bilibili.com/x/credit/v2/jury/case/list + +*请求方式:GET* + +认证方式:Cookie + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ---------- | ---- | ------------ | ----------- | -------------------- | +| pn | num | 页码 | 非必要 | 默认为1 | +| ps | num | 每页显示数量 | 非必要 | 默认为30
最大30 | + +**Headers参数** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | ---- | ---- | ------ | ---- | +| cookie | str | | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---------- | ------ | ------------ | ------------------------------------------------- | +| code | num | 返回值 | 0:成功
-101:账号未登录
-400:请求错误 | +| message | str | 信息 | 默认为0 | +| ttl | num | 1 | | +| data | object | 数据本体 | | +| data.total | num | 仲裁案例数 | | +| data.list | array | 仲裁记录列表 | | + +`list`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ------ | --------------- | ------------ | +| 0 | object | 仲裁记录1 | | +| n | object | 仲裁记录(n+1) | 按照时间顺序 | +| …… | object | …… | …… | + +`list`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| --------- | ---- | ------------ | ------------------------------------------------------------ | +| case_id | str | 案件id | | +| case_type | num | 案件类型 | 1:单条评论
2:评论氛围
3:单条弹幕
4:弹幕氛围 | +| status | num | 裁决状态 | 0:投票中
1:已结束 | +| vote | num | 投票选项 | “单条评论(弹幕)”分别为 `1` 或者 `2` 或者 `3` 或者 `4`,
对应:“合适”、“一般”、“不合适”、“无法判断”

“评论(弹幕)氛围”分别为 `11` 或者 `12` 或者 `13` 或者 `14`,
对应:“好”、“一般”、“差”、“无法判断” | +| vote_text | str | 投票选项文本 | *参考上条* | +| vote_time | num | 投票时间 | 时间戳,精确到秒 | + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "total": 5428, + "list": [ + { + "case_id": "AC2sOiNenwj1", + "case_type": 4, + "status": 1, + "vote": 11, + "vote_text": "好", + "vote_time": 1662700609 + } + ] + } +} +``` + +
+ +#### 旧 api + +
+查看旧版API: + +> https://api.bilibili.com/x/credit/jury/caseList + +*请求方式:GET* + +认证方式:Cookie(SESSDATA)或APP + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | ------------ | ------ | ------------- | ------------- | +| access_key | str | APP登录Token | APP方式必要 | | +| pn | num | 页码 | 非必要 | 默认为1 | +| ps | num | 每页显示数量 | 非必要 | 默认为30
最大30 | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ------ | -------- | ------------ | +| code | num | 返回值 | 0:成功
-101:账号未登录
-400:请求错误 | +| message | str | 信息 | 默认为0 | +| ttl | num | 1 | | +| data | array | 仲裁记录列表 | | + +`data`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ------ | --------------- | ------------ | +| 0 | object | 仲裁记录1 | | +| n | object | 仲裁记录(n+1) | 按照时间顺序 | +| …… | object | …… | …… | + +`data`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------------- | ---- | ----------------- | ------------------------------------------------------------ | +| id | num | 案件id | | +| mid | num | 被举报用户mid | | +| status | num | 裁决状态 | 1:投票中
2:停止发放
3:复核中(结案中)
4:已裁决
5:待重启
6:未裁决
7:冻结中
8:队列中 | +| originType | num | 来源类型 | 见「封禁公示」中表 | +| reasonType | num | 原因类型 | 见「封禁公示」中表 | +| originContent | str | 被举报的原文 | | +| punishResult | num | 处理结果 | 0:无
1:封禁3天
2:封禁7天
3:永封
4:其他封禁天数
5:封禁15天
6:仅删除不封禁 | +| punishTitle | str | 处罚原因 | | +| judgeType | num | 裁决类型 | `status`=4时有效
0:未裁决
1:违规
2:不违规 | +| originUrl | str | 来源url | | +| blockedDays | num | 封禁时间 | `judgeType`=1时有效 | +| putTotal | num | ??? | 作用尚不明确 | +| voteRule | num | 投票不违规人数 | | +| voteBreak | num | 投票建议封禁人数 | | +| voteDelete | num | 投票建议删除人数 | | +| startTime | num | 裁决起始时间 | 时间戳 | +| endTime | num | 裁决截止时间 | 时间戳
未结案固定为24小时 | +| ctime | num | 举报创建时间 | 时间戳 | +| mtime | num | 开始拉取时间 | 时间戳 | +| originTitle | str | 来源标题 | | +| relationId | str | 违规关系标识字 | {评论rpid}-{违规类型id}-{来源对象id} | +| face | str | 被举报用户头像url | | +| uname | str | 被举报用户昵称 | | +| vote | num | 我的投票 | **见上表** | +| voteTime | num | 我的裁决时间 | 毫秒 时间戳 | +| case_type | num | 众裁类型 | 0:小众众裁
1:大众众裁 | + +**示例:** + +查询我的历史众裁,第1页,每页显示1个案件 + +Cookie方式: + +```shell +curl -G 'https://api.bilibili.com/x/credit/jury/caseList' \ +--data-urlencode 'ps=1' \ +--data-urlencode 'pn=1' \ +-b 'SESSDATA=xxx' +``` + +APP方式: +```shell +curl -G 'https://api.bilibili.com/x/credit/jury/caseList' \ +--data-urlencode 'access_key=xxx' \ +--data-urlencode 'ps=1' \ +--data-urlencode 'pn=1' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": [ + { + "id": 1241808, + "mid": 298264370, + "status": 4, + "originType": 1, + "reasonType": 9, + "originContent": "别在发这种傻逼视频了好吗?真要搞到禁摩才甘心。", + "punishResult": 6, + "punishTitle": "在评论中发布引战言论", + "judgeType": 1, + "originUrl": "https://www.bilibili.com/video/av328669697/#reply3165369965", + "blockedDays": 7, + "putTotal": 251, + "voteRule": 14, + "voteBreak": 140, + "voteDelete": 373, + "startTime": 1594528662, + "endTime": 1594530687, + "ctime": 1594528108, + "mtime": 1594530802, + "originTitle": "我这里有记录仪!略略略略略略哈哈哈,干得漂亮!", + "relationId": "3165369965-1-328669697", + "face": "http://i1.hdslb.com/bfs/face/d69912bb2a51f08176bcdbf4ba15e4c2b0962ad9.jpg", + "uname": "MyLSTicKnight", + "vote": 4, + "voteTime": 1594528700000, + "case_type": 0 + } + ] +} +``` + +
+
+ +## 获取众议观点 + +> https://api.bilibili.com/x/credit/v2/jury/case/opinion + +*请求方式:GET* + +认证方式:Cookie + +**标头参数(Headers):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | ---- | ------ | ------ | ---- | +| Cookie | str | Cookie | 必要 | | + +**URL参数(Query Params):** + +| 参数名 | 类型 | 内容 | 备注 | +| ------- | ---- | ---------- | ------------------------------------------- | +| case_id | str | 仲裁案件id | **必填** | +| pn | num | | 显示第x页(default = 1) | +| ps | num | | 每页显示y条观点(Max = 20)(default = 10) | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ------ | -------- | ------------------------------------------------- | +| code | num | 返回值 | 0:成功;
-400:`ps`参数大于可允许的最大值`20` | +| message | str | 信息 | 默认为0 | +| ttl | num | 1 | 作用尚不明确 | +| data | object | 数据本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----- | ----- | -------------------------- | ---- | +| total | num | 当前案件众议观点总数 | | +| list | array | 无数据时是一个空数组:“[]” | | + +`data.list`对象是一个数组,里面包含`ps`个object(参数`ps`见上文,object结构见「[附表4](#附表4data-对象下的my_point对象)」) + +**示例:** + +查看案件`AC1xx411c7ac`的众议观点,每页`2`项,查看第`1`页 + +```shell +curl -G 'https://api.bilibili.com/x/credit/v2/jury/case/opinion' \ +--data-urlencode 'case_id=AC1xx411c7ac' \ +--data-urlencode 'pn=1' \ +--data-urlencode 'ps=2' \ +--header 'cookie: xxxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "total": 48, + "list": [ + { + "opid": 46087379, + "mid": 22006415, + "uname": "匿名用户", + "face": "http://i0.hdslb.com/bfs/face/e48952d599dbf011c2235239fafa2bf0deccef5a.jpg", + "vote": 11, + "vote_text": "", + "content": "正常评论", + "anonymous": 1, + "like": 0, + "hate": 0, + "like_status": 0, + "vote_time": 1661430391, + "insiders": 1 + }, + { + "opid": 46087280, + "mid": 19243907, + "uname": "匿名用户", + "face": "http://i0.hdslb.com/bfs/face/e85d7ab3425d3dd0f0796bd7f945b47ac27ca82a.jpg", + "vote": 11, + "vote_text": "", + "content": "并未发现明显问题。", + "anonymous": 1, + "like": 0, + "hate": 0, + "like_status": 0, + "vote_time": 1661430337, + "insiders": 0 + } + ] + } +} +``` + +
+ +#### 旧 api + +
+查看旧版API: + +> https://api.bilibili.com/x/credit/jury/case/opinion + +*请求方式:GET* + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | ------------ | ------ | ------------- | ------------- | +| cid | num | 案件id | 必要 | | +| ps | num | 每页项数 | 非必要 | 默认为10 | +| pn | num | 页码 | 非必要 | 默认为1 | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ------ | -------- | ------------ | +| code | num | 返回值 | 0:成功
-400:请求错误 | +| message | str | 信息 | 默认为0 | +| ttl | num | 1 | | +| data | object | 数据本体 | | + +`data` 对象: + +| 字段 | 类型 | 内容 | 备注 | +| --------- | ------ | -------- | ------------ | +| count | num | 观点总数 | | +| opinion | 有效时:array
无效时:null | 观点列表 | | + +`data` 中的`opinion` 数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ------ | ----------- | ------------ | +| 0 | object | 观点1 | | +| n | object | 观点(n+1) | 按照时间顺序 | +| …… | object | …… | …… | + +`opinion` 数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| --------- | ------ | -------- | ------------ | +| mid | num | 用户mid | 仅非匿名有此项 | +| face | str | 用户头像 | 仅非匿名有此项 | +| name | str | 用户昵称 | 仅非匿名有此项 | +| opid | num | 观点id | | +| vote | num | 投票选择 | **见上表** | +| content | str | 观点内容 | | +| attr | num | 是否匿名 | 0:匿名
1:不匿名 | +| hate | num | 喜欢人数 | | +| like | num | 不喜欢人数 | | + +**示例:** + +查看案件`1239790`的众议观点,每页10项,查看第一页 + +```shell +curl -G 'https://api.bilibili.com/x/credit/jury/case/opinion' \ +--data-urlencode 'cid=1239790' \ +--data-urlencode 'ps=10' \ +--data-urlencode 'pn=1' \ +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "count": 23, + "opinion": [ + { + "opid": 250943982, + "vote": 2, + "content": "不懂,正常的科普也有人杠吗?没文化真可怕", + "attr": 0, + "hate": 0, + "like": 0 + }, + { + "mid": 59894, + "face": "http://i2.hdslb.com/bfs/face/0cc48fc40867537d5a09a125e90f76183efbfdfa.gif", + "name": "雷歐諾斯", + "opid": 250956267, + "vote": 2, + "content": "这个虽然不是正确的说法,但本身是一种观点。而且已经成为一种梗了。不属于引战。", + "attr": 1, + "hate": 0, + "like": 0 + }, + { + "opid": 250956259, + "vote": 2, + "content": "正常科普,不构成引战。", + "attr": 0, + "hate": 0, + "like": 0 + }, + { + "mid": 215020429, + "face": "http://i1.hdslb.com/bfs/face/1d43c302e67db4d21b9c5c0f0dc0b8786e8086d5.jpg", + "name": "瞎子广_广告歌41", + "opid": 250955160, + "vote": 2, + "content": "这个其实也没啥事真的", + "attr": 1, + "hate": 0, + "like": 0 + }, + { + "mid": 108194360, + "face": "http://i0.hdslb.com/bfs/face/b78c92a69ff9977b7d08d4f7edc0a051a3d6ea3e.jpg", + "name": "籽云奕", + "opid": 250953998, + "vote": 2, + "content": "仅仅是科普评论,无过激言论", + "attr": 1, + "hate": 0, + "like": 0 + }, + { + "mid": 34503714, + "face": "http://i2.hdslb.com/bfs/face/eb2d0853235a56d035303f4f3614dcb6e0cf66fa.jpg", + "name": "十六夜紅月丶", + "opid": 250950982, + "vote": 2, + "content": "无过激言论,正常科普罢了", + "attr": 1, + "hate": 0, + "like": 0 + }, + { + "opid": 250950973, + "vote": 2, + "content": "其实两种读法都是正确的,虽然想要纠正别人的错误。不过自己本身就错了。还是保留吧,没什么引战的", + "attr": 0, + "hate": 0, + "like": 0 + }, + { + "mid": 436136443, + "face": "http://i1.hdslb.com/bfs/face/6b4151d8e030eddd073add6ef18ccbb00aa48d0f.jpg", + "name": "兄弟好牛啤", + "opid": 250950417, + "vote": 2, + "content": "有点经典的争议,但可能还会有人不知道", + "attr": 1, + "hate": 0, + "like": 0 + }, + { + "mid": 87385400, + "face": "http://i2.hdslb.com/bfs/face/0f567e7fa49bcef22010f3ff78e90553d8fffb09.jpg", + "name": "小学生de王者荣耀", + "opid": 250950402, + "vote": 2, + "content": "合理纠正up主的错误,建议追究恶意举报者的责任", + "attr": 1, + "hate": 0, + "like": 0 + }, + { + "opid": 250949840, + "vote": 2, + "content": "正常科普,没有过激言论,建议保留", + "attr": 0, + "hate": 0, + "like": 0 + } + ] + } +} +``` + +
+
diff --git a/docs/broadcast/readme.md b/docs/broadcast/readme.md new file mode 100644 index 0000000000..3e59ef793b --- /dev/null +++ b/docs/broadcast/readme.md @@ -0,0 +1,184 @@ +# 全站广播 + +可用的广播服务: + +- [视频实时信息](video_room.md)√ + +## 获取广播服务器地址 + +> https://api.bilibili.com/x/web-interface/broadcast/servers + +*请求方式:GET* + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| -------- | ---- | -------- | ------ | --------------------------------- | +| platform | str | 平台选择 | 必要 | 为web时输出域名
其他时输出ip | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | --------------------------- | +| code | num | 返回值 | 0:成功
-400:请求错误 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------------- | ------ | ------------------ | ---- | +| domain | str | 广播服务器url | | +| tcp_port | num | tcp端口 | | +| ws_port | num | websocket端口 | | +| wss_port | num | websocket ssl端口 | | +| heartbeat | num | 最大心跳包间隔时间 | | +| nodes | array | 服务节点地址列表 | | +| backoff | obj | ??? | | +| heartbeat_max | num | ??? | | + +`data`中的`nodes`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | ------------- | ---- | +| 0 | str | 服务节点1 | | +| n | str | 服务节点(n+1) | | +| …… | str | …… | | + +`data`中的`backoff`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---------- | ---- | ------ | ---- | +| max_delay | num | ??? | | +| base_delay | num | ??? | | +| factor | num | ??? | | +| jitter | num | ??? | | + +示例: + +当`platform`=`web`时,不显示节点ip + +```shell +curl -G 'https://api.bilibili.com/x/web-interface/broadcast/servers' \ +--data-urlencode 'platform=web' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "domain": "broadcast.chat.bilibili.com", + "tcp_port": 7821, + "ws_port": 7822, + "wss_port": 7823, + "heartbeat": 30, + "nodes": ["broadcast.chat.bilibili.com"], + "backoff": { + "max_delay": 300, + "base_delay": 3, + "factor": 1.8, + "jitter": 0.3 + }, + "heartbeat_max": 3 + } +} +``` + +
+ +当`platform`=其他时,显示节点ip + +```shell +curl -G 'https://api.bilibili.com/x/web-interface/broadcast/servers' \ +--data-urlencode 'platform=1' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "domain": "broadcast.chat.bilibili.com", + "tcp_port": 7821, + "ws_port": 7822, + "wss_port": 7823, + "heartbeat": 30, + "nodes": ["134.175.207.130", "120.92.150.90", "120.92.150.212", "192.144.173.136", "154.8.217.108"], + "backoff": { + "max_delay": 300, + "base_delay": 3, + "factor": 1.8, + "jitter": 0.3 + }, + "heartbeat_max": 3 + } +} +``` + +
+ +## 服务器数据包 + +连接服务器分为三种方式,分别是ws wss tcp,数据包分为上行和下行 + +单个数据包分为头部和正文 + +其中上行的有认证包 心跳包,下行的有认证包回复 心跳包回复 普通包 + +建立连接后超过30s内未发送认证包,或握手后30s内未发送心跳包,或发送了错误的认证包,都会被强制断开连接 + +操作流程: + +1.发送认证包,等待接收认证回复 + +2.确认握手成功后,每30s内发送心跳包,并立即接收心跳包回复 + +3.空闲时间接收普通包 + +### 数据包结构 + +头部通用于上行和下行数据包 + +头部格式: + +| 偏移量 | 长度(字节) | 类型 | 含义 | +| ------ | ------------ | ------ | ---------------------------------------------------- | +| 0x00 | 4 | uint32 | 封包总大小(头部大小+正文大小) | +| 0x04 | 2 | uint16 | 头部大小(一般为0x0012,18字节) | +| 0x06 | 2 | uint16 | 协议版本,可取常数1 | +| 0x08 | 4 | uint32 | 操作码(包类型)
**见下表** | +| 0x0C | 4 | uint32 | sequence(请求次数),可取常数1
对于普通包恒为0 | +| 0x10 | 2 | uint16 | 保留,一般为0 | + +操作码: + +| 代码 | 含义 | +| ---- | -------- | +| 2 | 心跳 | +| 3 | 心跳回复 | +| 7 | 认证 | +| 8 | 认证回复 | +| 1000 | 实时弹幕 | + +**示例:** + +以下为一个认证包示例,正文为文本`test` + +``` +00000000 00 00 00 16 00 12 00 01 00 00 00 07 00 00 00 01 |................| +00000010 00 00 74 65 73 74 |..test| +``` + + diff --git a/docs/broadcast/video_room.md b/docs/broadcast/video_room.md new file mode 100644 index 0000000000..b49d79d741 --- /dev/null +++ b/docs/broadcast/video_room.md @@ -0,0 +1,152 @@ +# 视频实时信息 + +- [认证包(上行)](#认证包上行) +- [认证包回复(下行)](#认证包回复下行) +- [心跳包(上行)](#心跳包上行) +- [心跳包回复(实时观看数)(下行)](#心跳包回复实时观看数下行) +- [普通包(实时弹幕)(下行)](#普通包实时弹幕下行) + +--- + +## 认证包(上行) + +**正文内容json:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| -------- | ------ | -------- | ------------------------------ | +| room_id | str | 目标视频 | `video://{稿件avid}/{视频cid}` | +| platform | str | 平台标识 | 默认为`web` | +| accepts | array | 操作标识 | | + +`array`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | ---- | ------------ | +| 0 | num | 1000 | 作用尚不明确 | +| 1 | num | 1015 | 作用尚不明确 | + +**示例:** + +发送视频`av706`(1P的cid为` 3724723 `)的认证包 + +``` +00000000 00 00 00 55 00 12 00 01 00 00 00 07 00 00 00 01 |...U............| +00000010 00 00 7b 22 72 6f 6f 6d 5f 69 64 22 3a 22 76 69 |..{"room_id":"vi| +00000020 64 65 6f 3a 2f 2f 37 30 36 2f 33 37 32 34 37 32 |deo://706/372472| +00000030 33 22 2c 22 70 6c 61 74 66 72 6f 6d 22 3a 22 77 |3","platfrom":"w| +00000040 65 62 22 2c 22 61 63 63 65 70 74 73 22 3a 5b 31 |eb","accepts":[1| +00000050 30 30 30 2c 31 30 31 35 5d 7d |000,1015]}| +``` + +## 认证包回复(下行) + +**正文内容json:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | -------- | +| code | num | 返回值 | 0:成功 | +| message | str | 错误信息 | 默认为OK | +| version | num | 版本号 | | + +示例: + +``` +00000000 00 00 00 37 00 12 00 01 00 00 00 08 00 00 00 01 |...7............| +00000010 00 00 7b 22 63 6f 64 65 22 3a 30 2c 22 6d 65 73 |..{"code":0,"mes| +00000020 73 61 67 65 22 3a 22 4f 4b 22 2c 22 76 65 72 73 |sage":"OK","vers| +00000030 69 6f 6e 22 3a 31 7d |ion":1}| +``` + +## 心跳包(上行) + +正文可为任意内容或为空 + +**示例:** + +正文为空的示例 + +``` +00000000 00 00 00 12 00 12 00 01 00 00 00 02 00 00 00 01 |................| +00000010 00 00 |..| +``` + +正文为`[object Object]`的示例 + +``` +00000000 00 00 00 21 00 12 00 01 00 00 00 02 00 00 00 01 |...!............| +00000010 00 00 5b 6f 62 6a 65 63 74 20 4f 62 6a 65 63 74 |..[object Object| +00000020 5d |]| +``` + +## 心跳包回复(实时观看数)(下行) + +**正文内容json:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | -------- | +| code | num | 返回值 | 0:成功 | +| message | str | 错误信息 | 默认为OK | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | ---------------- | ---- | +| room | obj | 视频实时观看信息 | | + +`data`中的`room`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | ------------ | ------------------------------ | +| online | num | 实时观看人数 | | +| room_id | str | 目标视频 | `video://{稿件avid}/{视频cid}` | + +**示例:** + +当前视频`av706`实时观看人数为13 + +``` +00000000 00 00 00 68 00 12 00 01 00 00 00 03 00 00 00 01 |...h............| +00000010 00 00 7b 22 63 6f 64 65 22 3a 30 2c 22 6d 65 73 |..{"code":0,"mes| +00000020 73 61 67 65 22 3a 22 30 22 2c 22 64 61 74 61 22 |sage":"0","data"| +00000030 3a 7b 22 72 6f 6f 6d 22 3a 7b 22 6f 6e 6c 69 6e |:{"room":{"onlin| +00000040 65 22 3a 31 33 2c 22 72 6f 6f 6d 5f 69 64 22 3a |e":13,"room_id":| +00000050 22 76 69 64 65 6f 3a 2f 2f 37 30 36 2f 33 37 32 |"video://706/372| +00000060 34 37 32 33 22 7d 7d 7d |4723"}}}| +``` + +## 普通包(实时弹幕)(下行) + +**正文内容json:** + +根数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | ------------ | ------------------------------------------------------------ | +| 0 | str | 弹幕属性信息 | 详见[「弹幕」中的属性 p](https://github.com/SocialSisterYi/bilibili-API-collect/blob/master/danmaku/danmaku_xml.md) | +| 1 | str | 弹幕内容 | | + +**示例:** + +弹幕属性为`0.25,1,25,16777215,1588433046,1588431486568150,0,33ad5d91,32134068443807747` + +弹幕内容为`此生无悔入东方,来世愿生幻想乡` + +``` +00000000 00 00 00 91 00 12 00 01 00 00 03 e8 00 00 00 00 |................| +00000010 00 00 5b 22 30 2e 32 35 2c 31 2c 32 35 2c 31 36 |..["0.25,1,25,16| +00000020 37 37 37 32 31 35 2c 31 35 38 38 34 33 33 30 34 |777215,158843304| +00000030 36 2c 31 35 38 38 34 33 31 34 38 36 35 36 38 31 |6,15884314865681| +00000040 35 30 2c 30 2c 33 33 61 64 35 64 39 31 2c 33 32 |50,0,33ad5d91,32| +00000050 31 33 34 30 36 38 34 34 33 38 30 37 37 34 37 22 |134068443807747"| +00000060 2c 22 e6 ad a4 e7 94 9f e6 97 a0 e6 82 94 e5 85 |,"此 生 无 悔| +00000070 a5 e4 b8 9c e6 96 b9 ef bc 8c e6 9d a5 e4 b8 96 |入 东 方 ,来 世 | +00000080 e6 84 bf e7 94 9f e5 b9 bb e6 83 b3 e4 b9 a1 22 |愿 生 幻 想 乡"| +00000090 5d |]| +``` diff --git a/docs/cheese/info.md b/docs/cheese/info.md new file mode 100644 index 0000000000..5bf90a538d --- /dev/null +++ b/docs/cheese/info.md @@ -0,0 +1,645 @@ +# 课程基本信息 + +- [获取课程基本信息](#获取课程基本信息) +- [获取课程分集列表](#获取课程分集列表) + +--- + +课程ssid与epid和番剧不互通 + +课程avid与普通视频绝大部分api接口不能互通,少部分互通接口如下: + +1. 获取视频简介 +2. 查询视频状态数 +3. 查询分P列表 +4. 视频快照 +5. 获取弹幕(使用cid) +6. 发送弹幕 +7. 高能进度条(使用cid) + +## 获取课程基本信息 + +> https://api.bilibili.com/pugv/view/web/season + +*请求方式:GET* + +认证方式:Cookie(SESSDATA) + +鉴权方式:referer为 `.bilibili.com`域名下 + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| --------- | ---- | -------- | ------------ | -------------------------------------------------- | +| season_id | num | 课程ssid | 必要(可选) | season_id与ep_id任选其一
**与番剧ssid不互通** | +| ep_id | num | 课程epid | 必要(可选) | season_id与ep_id任选其一
**与番剧epid不互通** | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ----------------------- | +| code | num | 返回值 | 0:成功
-404:错误 | +| message | str | 错误信息 | 默认为success | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------------------- | ------ | ----------------------------- | ------------------------------------------------------------ | +| brief | obj | 课程概述信息 | | +| coupon | obj | 优惠信息 | 若无优惠则无此项 | +| cover | str | 课程封面url | | +| episode_page | obj | 课程分集信息 | | +| episode_sort | num | 1 | **作用尚不明确** | +| episodes | array | 课程分集列表 | | +| faq | obj | 常见问题信息1 | 合并格式 | +| faq1 | obj | 常见问题信息2 | 分离格式 | +| payment | obj | 付费信息 | | +| purchase_note | obj | 购买须知信息 | | +| purchase_protocol | obj | 付费内容协议信息 | | +| release_bottom_info | str | 底部更新状态文字 | | +| release_info | str | 更新状态文字+更新连载状态文字 | | +| release_info2 | str | 更新连载状态文字 | | +| release_status | str | 更新状态文字 | | +| season_id | num | 课程ssid | **与番剧ssid不互通** | +| share_url | str | 页面url | | +| short_link | str | bilibili uri链接 | | +| stat | obj | 播放数信息 | | +| status | num | 10 | **作用尚不明确** | +| subtitle | str | 课程简介信息 | | +| title | str | 课程标题 | | +| up_info | obj | UP主信息 | | +| user_status | obj | 用户状态信息 | **需要登录(SESSDATA)且referer为`https://www.bilibili.com`** | + +`data`中的`brief`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ------ | -------- | ---- | +| content | str | 空 | | +| img | array | 简介图片 | | +| title | str | 课程概述 | | +| type | num | 2 | | + +`brief`中的`img`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | --------------- | ---- | +| 0 | obj | 简介图片1 | | +| n | obj | 简介图片(n+1) | | +| …… | obj | …… | …… | + +`img`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------------ | ---- | ----------- | ---------------- | +| aspect_ratio | num | ??? | **作用尚不明确** | +| url | str | 简介图片url | | + +`data`中的`coupon`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----------- | ---- | --------- | ------------------- | +| amount | num | 折扣乘数 | | +| expire_time | str | 结束时间 | YYYY-MM-DD HH:MM:SS | +| start_time | str | 起始时间 | YYYY-MM-DD HH:MM:SS | +| status | num | ??? | **作用尚不明确** | +| title | str | 优惠标题 | | +| token | str | 领取token | | + +`data`中的`episode_page`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----- | ---- | -------- | ---- | +| next | bool | false | | +| num | num | 1 | | +| size | num | 总计集数 | | +| total | num | 总计集数 | | + +`data`中的`episodes`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | --------------- | ---- | +| 0 | obj | 课程分集1 | | +| n | obj | 课程分集(n+1) | | +| …… | obj | …… | …… | + +`episodes`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| -------------- | ---- | ---------------- | ------------------------------------------------------------ | +| aid | num | 课程分集avid | **与普通稿件avid部分不互通** | +| cid | num | 课程分集cid | **与普通视频cid部分不互通** | +| duration | num | 课程分集时间长度 | 单位为秒 | +| from | str | pugv | | +| id | num | 课程分集epid | **与番剧epid不互通** | +| index | num | 课程分集数 | | +| page | num | 1 | | +| play | num | 课程分集播放量 | | +| release_date | num | 课程分集发布时间 | 时间戳 | +| status | num | 分集权限属性 | 1:可观看
2:不可观看 | +| title | str | 课程分集标题 | | +| watched | bool | 是否观看该集 | **需要登录(SESSDATA)且referer为`https://www.bilibili.com`**
false:未观看
true:已观看 | +| watchedHistory | num | 该集观看历史 | **需要登录(SESSDATA)且referer为`https://www.bilibili.com`** | + +`data`中的`faq`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | --------------- | ---- | +| content | str | 常见问题信息 | | +| link | str | 常见问题页面url | | +| title | str | 常见问题 | | + +`data`中的`faq1`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----- | ------ | ------------ | ---- | +| items | array | 常见问题列表 | | +| title | str | 常见问题 | | + +`faq1`中的`items`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | --------------- | ---- | +| 0 | obj | 常见问题1 | | +| n | obj | 常见问题(n+1) | | +| …… | obj | …… | …… | + +`items`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| -------- | ---- | -------- | ---- | +| answer | str | 回答信息 | | +| question | str | 问题信息 | | + +`data`中的`payment`对象: + +| 字段 | 类型 | 内容 | 备注 | +| --------------- | ---- | -------------------- | ----------------------- | +| desc | str | 付费价格说明 | | +| discount_desc | str | 折扣说明信息 | 若无优惠则无此项 | +| discount_prefix | str | 折扣类型前缀 | 若无优惠则无此项 | +| pay_shade | str | 观看所有视频付费说明 | | +| price | num | 课程价格 | 单位为B币(折扣后价格) | +| price_format | str | 课程价格 | 单位为B币折扣后价格) | + +`data`中的`purchase_note`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------------------- | ---- | +| content | str | 购买须知信息文字内容 | | +| link | str | 购买须知页面url | | +| title | str | 购买须知 | | + +`data`中的`purchase_protocol`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----- | ---- | ------------------- | ---- | +| link | str | 付费内容协议页面url | | +| title | str | 付费内容协议 | | + +`data`中的`stat`对象: + +| 字段 | 类型 | 内容 | 备注 | +| --------- | ---- | -------------- | ---- | +| play | num | 播放量 | | +| play_desc | str | 播放量文字信息 | | + +`data`中的`up_info`对象: + +| 字段 | 类型 | 内容 | 备注 | +| --------- | ---- | ------------ | ------------------------------------------------------------ | +| avatar | str | UP主头像url | | +| brief | str | UP主备注 | 非个人签名 | +| follower | num | UP主粉丝数 | | +| is_follow | num | 是否关注UP主 | **需要登录(SESSDATA)且referer为`https://www.bilibili.com`**
0:未关注
1:已关注 | +| link | str | UP主空间url | | +| mid | num | UP主uid | | +| pendant | obj | ??? | **作用尚不明确** | +| uname | str | UP主昵称 | | + +`up_info`中的`pendant`对象: + +| 字段 | 类型 | 内容 | 备注 | +| -------- | ---- | ---- | ---------------- | +| image | str | 空 | **作用尚不明确** | +| name | str | 空 | **作用尚不明确** | +| follower | num | 0 | **作用尚不明确** | + +`data`中的`user_status`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------------- | ---- | -------- | ------------------------ | +| favored | num | 是否收藏 | 0:未收藏
1:已收藏 | +| favored_count | num | 1 | **作用尚不明确** | +| payed | num | 是否购买 | 0:未购买
1:已购买 | +| progress | obj | 课程进度 | 未登录无此项 | + +`user_status`中的`progress`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------------- | ---- | ------------------ | -------- | +| last_ep_id | num | 最后观看的epid | | +| last_ep_index | str | 最后观看的标题 | | +| last_time | num | 最后观看的时间进度 | 单位为秒 | + +**示例:** + +查询课程`ss61`或分集`ep790`的信息 + +ssid方式: + +```shell +curl -G 'https://api.bilibili.com/pugv/view/web/season' \ +--data-urlencode 'season_id=61' \ +-b 'SESSDATA=xxx' \ +-e 'https://www.bilibili.com' +``` + +epid方式: + +```shell +curl -G 'https://api.bilibili.com/pugv/view/web/season' \ +--data-urlencode 'ep_id=790' \ +-b 'SESSDATA=xxx' \ +-e 'https://www.bilibili.com' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "data": { + "brief": { + "content": "", + "img": [ + { + "aspect_ratio": 0.9375, + "url": "http://i0.hdslb.com/bfs/archive/29942f338ee570632838403a09871bad130cfe9a.jpg" + }, + { + "aspect_ratio": 0.9375, + "url": "http://i0.hdslb.com/bfs/archive/913e5c37d836d7954ae9ca19da62a43ba5b34219.jpg" + }, + { + "aspect_ratio": 1.3359375, + "url": "http://i0.hdslb.com/bfs/archive/a974555bd4a52f0aa865bd192c1e3401ed4cb0ad.jpg" + }, + { + "aspect_ratio": 1.3359375, + "url": "http://i0.hdslb.com/bfs/archive/73cd7669b251db9d2b62b921bee49a137c3d65dc.jpg" + }, + { + "aspect_ratio": 1.0625, + "url": "http://i0.hdslb.com/bfs/archive/b084ac8f6710c8eddbc58770a4254508de75eb02.jpg" + }, + { + "aspect_ratio": 1.2890625, + "url": "http://i0.hdslb.com/bfs/archive/44e32c2cf64b894563829ce65bbef199220f4121.jpg" + }, + { + "aspect_ratio": 1.3203125, + "url": "http://i0.hdslb.com/bfs/archive/90764fd095810565713b92606dc9cd0cfb25adae.jpg" + }, + { + "aspect_ratio": 1.15234375, + "url": "http://i0.hdslb.com/bfs/archive/c35ca0ced0ad075a2c13b8fdc1e47b88573bce45.jpg" + } + ], + "title": "课程概述", + "type": 2 + }, + "coupon": { + "amount": 0.66, + "expire_time": "2020-06-30 00:00:00", + "start_time": "2020-05-21 00:00:00", + "status": 1, + "title": "【上新限时6.6折】《唐盾:0-N4日语精讲》", + "token": "B20200521135929161905873" + }, + "cover": "http://i0.hdslb.com/bfs/archive/95d4de9e6691ccc2b18f087f5f654652dee3c01b.jpg", + "episode_page": { + "next": false, + "num": 1, + "size": 66, + "total": 66 + }, + "episode_sort": 1, + "episodes": [ + { + "aid": 76973173, + "cid": 132105993, + "duration": 2223, + "from": "pugv", + "id": 790, + "index": 1, + "page": 1, + "play": 2406406, + "release_date": 1574762407, + "status": 1, + "title": "唐盾:一起从0基础学日语吧(含50音 词汇试听)", + "watched": false, + "watchedHistory": 0 + }, + { + "aid": 77114885, + "cid": 132110244, + "duration": 3003, + "from": "pugv", + "id": 795, + "index": 2, + "page": 1, + "play": 49100, + "release_date": 1574766759, + "status": 2, + "title": "50音あ行假名/音调/送气与不送气音", + "watched": false, + "watchedHistory": 0 + }, + { + "aid": 77120689, + "cid": 131913553, + "duration": 3253, + "from": "pugv", + "id": 797, + "index": 3, + "page": 1, + "play": 49518, + "release_date": 1574770029, + "status": 2, + "title": "50音图的か行、さ行、た行假名", + "watched": false, + "watchedHistory": 0 + }, + ………… + ], + "faq": { + "content": "Q:课程在什么时间更新?\nA:课程更新频次以页面前端展示为准。购买成功后,课程更新将通过账号动态提示,方便及时观看。\n\nQ:课程购买后有收看时间限制吗?\nA:购买后除不可抗力因素外,课程均可永久收看,请您放心购买。\n\nQ:原价购买课程后,如遇到优惠折扣,是否可以退还差价或重新购买?\nA:虚拟商品付款后无法返还,请您随时留意各类课程折扣信息,按需购买。\n\nQ:购买课程后是否可以加入老师的粉丝群或者用户群?\nA:如老师设置用户群,我们将邀您加入,但我们无法承诺所有老师均提供用户群服务,感谢理解。", + "link": "http://m.bilibili.com", + "title": "常见问题" + }, + "faq1": { + "items": [ + { + "answer": "课程更新频次以页面前端展示为准。购买成功后,课程更新将通过账号动态提示,方便及时观看。", + "question": "课程在什么时间更新?" + }, + { + "answer": "购买后除不可抗力因素外,课程均可永久收看,请您放心购买。", + "question": "课程购买后有收看时间限制吗?" + }, + { + "answer": "虚拟商品付款后无法返还,请您随时留意各类课程折扣信息,按需购买。", + "question": "原价购买课程后,如遇到优惠折扣,是否可以退还差价或重新购买?" + }, + { + "answer": "如老师设置用户群,我们将邀您加入,但我们无法承诺所有老师均提供用户群服务,感谢理解。", + "question": "购买课程后是否可以加入老师的粉丝群或者用户群?" + } + ], + "title": "常见问题" + }, + "payment": { + "desc": "券后 262.68 B币起/53期", + "discount_desc": "262.68 B币", + "discount_prefix": "券后", + "pay_shade": "券后支付 262.68 B币即可观看所有视频", + "price": 398.0, + "price_format": "398" + }, + "purchase_note": { + "content": "1. 本内容为付费内容,购买成功后方可观看。
2. 本内容为虚拟服务,已购买内容不支持退款,敬请谅解。
3. 实际购买价格以页面展示的价格及订单结算页显示价格为准。
4. 如您在购买付费内容时有任何疑问,可随时咨询在线客服。
完整的购买协议,请点击阅读《bilibili付费内容购买协议》", + "link": "https://www.bilibili.com/blackboard/activity-y-SJTTYBp.html", + "title": "购买须知" + }, + "purchase_protocol": { + "link": "https://www.bilibili.com/blackboard/activity-y-SJTTYBp.html", + "title": "bilibili付费内容购买协议" + }, + "release_bottom_info": "没有更多啦~", + "release_info": "已完结,共53期", + "release_info2": "共53期", + "release_status": "已完结", + "season_id": 61, + "share_url": "https://m.bilibili.com/cheese/play/ss61", + "short_link": "bilibili://cheese/season/61", + "stat": { + "play": 2878146, + "play_desc": "287.8万播放" + }, + "status": 10, + "subtitle": "新东方名师唐盾的精品日语课,包含50音/N5/N4的词汇/语法/课文/练习精讲,让我们一起轻松学日语~", + "title": "唐盾:0-N4日语精讲", + "up_info": { + "avatar": "http://i1.hdslb.com/bfs/face/564421428d1f74314ed50e16a8f570ad968828b0.jpg", + "brief": "唐盾:前新东方日语名师,倾注日语教学、翻译14年。曾任新东方欧亚教育长沙中心总监。", + "follower": 21333, + "is_follow": 0, + "link": "https://space.bilibili.com/19452605", + "mid": 19452605, + "pendant": { + "image": "", + "name": "", + "pid": 0 + }, + "uname": "盾盾桑教你学日语" + }, + "user_status": { + "favored": 1, + "favored_count": 1, + "payed": 0, + "progress": { + "last_ep_id": 790, + "last_ep_index": "唐盾:一起从0基础学日语吧(含50音 词汇试听)", + "last_time": 1 + } + } + }, + "message": "success" +} +``` + +
+ +## 获取课程分集列表 + +> https://api.bilibili.com/pugv/view/web/ep/list + +*请求方式:GET* + +认证方式:Cookie(SESSDATA) + +鉴权方式:referer为 `.bilibili.com`域名下 + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| --------- | ---- | -------- | ------ | -------------------- | +| season_id | num | 课程ssid | 必要 | **与番剧ssid不互通** | +| ps | num | 每页项数 | 非必要 | 默认为50 | +| pn | num | 页码 | 非必要 | 默认为1 | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ----------------------- | +| code | num | 返回值 | 0:成功
-404:错误 | +| message | str | 错误信息 | 默认为success | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----- | ------ | ------------ | ---- | +| items | array | 课程分集列表 | | +| page | obj | 列表分页信息 | | + +`data`中的`items`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | --------------- | ---- | +| 0 | obj | 课程分集1 | | +| n | obj | 课程分集(n+1) | | +| …… | obj | …… | …… | + +`items`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| -------------- | ---- | ---------------- | ------------------------------------------------------------ | +| aid | num | 课程分集avid | **与普通稿件avid部分不互通** | +| cid | num | 课程分集cid | **与普通视频cid部分不互通** | +| duration | num | 课程分集时间长度 | 单位为秒 | +| from | str | pugv | | +| id | num | 课程分集epid | **与番剧epid不互通** | +| index | num | 课程分集数 | | +| page | num | 1 | | +| play | num | 课程分集播放量 | | +| release_date | num | 课程分集发布时间 | 时间戳 | +| status | num | 分集权限属性 | 1:可观看
2:不可观看 | +| title | str | 课程分集标题 | | +| watched | bool | 是否观看该集 | **需要登录(SESSDATA)且referer为`https://www.bilibili.com`**
false:未观看
true:已观看 | +| watchedHistory | num | 该集观看历史 | **需要登录(SESSDATA)且referer为`https://www.bilibili.com`** | + +`data`中的`page`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----- | ---- | -------------- | ----------------------------------------- | +| next | bool | 是否存在下一页 | false:不存在下一页
true:存在下一页 | +| num | num | 当前页码 | | +| size | num | 每页项数 | | +| total | num | 总价项数 | | + +**示例:** + +按照每页5项查询课程`ss61`的分集列表第1页 + +```shell +curl -G 'https://api.bilibili.com/pugv/view/web/ep/list' \ +--data-urlencode 'season_id=61' \ +--data-urlencode 'ps=5 ' \ +--data-urlencode 'pn=1' \ +-b 'SESSDATA=xxx' \ +-e 'https://www.bilibili.com' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "data": { + "items": [ + { + "aid": 76973173, + "cid": 132105993, + "duration": 2223, + "from": "pugv", + "id": 790, + "index": 1, + "page": 1, + "play": 2406951, + "release_date": 1574762407, + "status": 1, + "title": "唐盾:一起从0基础学日语吧(含50音 词汇试听)", + "watched": false, + "watchedHistory": 0 + }, + { + "aid": 77114885, + "cid": 132110244, + "duration": 3003, + "from": "pugv", + "id": 795, + "index": 2, + "page": 1, + "play": 49106, + "release_date": 1574766759, + "status": 2, + "title": "50音あ行假名/音调/送气与不送气音", + "watched": false, + "watchedHistory": 0 + }, + { + "aid": 77120689, + "cid": 131913553, + "duration": 3253, + "from": "pugv", + "id": 797, + "index": 3, + "page": 1, + "play": 49522, + "release_date": 1574770029, + "status": 2, + "title": "50音图的か行、さ行、た行假名", + "watched": false, + "watchedHistory": 0 + }, + { + "aid": 77606110, + "cid": 132897199, + "duration": 2823, + "from": "pugv", + "id": 806, + "index": 4, + "page": 1, + "play": 35800, + "release_date": 1575128696, + "status": 2, + "title": "50音图的な行、は行、ま行假名", + "watched": false, + "watchedHistory": 0 + }, + { + "aid": 78015255, + "cid": 133651764, + "duration": 2165, + "from": "pugv", + "id": 812, + "index": 5, + "page": 1, + "play": 25842, + "release_date": 1575446218, + "status": 2, + "title": "や行、ら行、わ行假名、拨音", + "watched": false, + "watchedHistory": 0 + } + ], + "page": { + "next": true, + "num": 1, + "size": 5, + "total": 66 + } + }, + "message": "success" +} +``` + +
diff --git a/docs/cheese/videostream_url.md b/docs/cheese/videostream_url.md new file mode 100644 index 0000000000..2b54655222 --- /dev/null +++ b/docs/cheese/videostream_url.md @@ -0,0 +1,226 @@ +# 课程视频流URL + +- [获取课程视频流URL(web端)](#获取课程视频流URLweb端) + +--- + + + +## 获取课程视频流URL(web端) + +> https://api.bilibili.com/pugv/player/web/playurl + +*请求方式:GET* + +认证方式:Cookie(SESSDATA) + +**注:** + +1. 本接口为课程视频专用,故与普通视频不互通 +2. 大部分使用方法及视频的取流方法继承[视频流url文档](../video/videostream_url.md) + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | ---- | -------------- | ------ | ------------------------------------------------------------ | +| avid | num | 课程avid | 必要 | | +| ep_id | num | 课程epid | 必要 | | +| cid | num | 视频cid | 必要 | | +| qn | num | 视频清晰度选择 | 非必要 | 参考[qn定义](../video/videostream_url.md#qn视频清晰度标识) | +| fnver | num | 视频流版本 | 非必要 | 参考[fnver定义](../video/videostream_url.md#fnver视频流版本标识) | +| fnval | num | 视频流类型 | 非必要 | 参考[fnval定义](../video/videostream_url.md#fnval视频流格式标识) | +| fourk | num | 是否允许4K视频 | 非必要 | 默认为0
画质最高1080P:0
画质最高4K:1 | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------------------ | +| code | num | 返回值 | 0:成功
-400:请求错误
-404:无视频
-403:权限不足(未购买) | +| message | str | 错误信息 | 默认为success | +| data | obj | 数据本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------------------ | ------ | ---------------------- | ---------------------------------------- | +| accept_format | str | 视频支持的分辨率的格式 | | +| code | num | 0 | | +| durl | array | 视频分段 | | +| seek_param | str | start | | +| no_rexcode | num | 0 | | +| format | str | 视频格式 | | +| fnval | num | 0 | | +| video_project | bool | true | | +| fnver | num | 0 | | +| message | str | 空 | | +| type | str | 视频格式 | | +| accept_quality | array | 视频支持的分辨率列表 | | +| quality | num | 视频分辨率代码 | **值含义见上表** | +| timelength | num | 视频长度 | 单位为毫秒
不同分辨率可能有略微差异 | +| result | str | suee | **作用尚不明确** | +| seek_type | str | offset | **作用尚不明确** | +| has_paid | bool | false | **作用尚不明确** | +| supportFormats | array | 视频分辨率详细列表 | | +| from | str | local | **作用尚不明确** | +| video_codecid | num | ??? | **作用尚不明确** | +| accept_description | array | 视频支持的分辨率列表 | | +| status | num | 0 | **作用尚不明确** | + +`data`中的`durl`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | ----------------- | ---- | +| 0 | obj | 视频分段1信息 | | +| n | obj | 视频分段(n+1)信息 | | +| …… | obj | …… | | + +`durl`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---------- | ------ | ------------ | ---------------------------------- | +| size | num | 视频大小 | 单位为Byte | +| ahead | str | 空 | 作用尚不明确 | +| length | num | 视频长度 | 单位为毫秒 | +| vhead | str | 空 | 作用尚不明确 | +| backup_url | array | 备用视频流 | | +| url | str | 视频流url | 链接有效时间为120min | +| order | num | 视频分段序号 | 某些视频会分为多个片段 | + +`durl`数组中的对象中的`backup_url`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | ------------- | ---------------- | +| 0 | str | 备用视频流url | 有效时间为120min | + +`data`中的`supportFormats`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | ------------------- | ---- | +| 0 | obj | 分辨率详细信息1 | | +| n | obj | 分辨率详细信息(n+1) | | +| …… | obj | …… | …… | + +`supportFormats`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----------- | ---- | ---------- | ---- | +| format | str | 分辨率名称 | | +| description | atr | 分辨率备注 | | +| quality | num | 分辨率代码 | | + +`data`中的`accept_description`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | --------------- | ---- | +| 0 | str | 分辨率名称1 | | +| n | str | 分辨率名称(n+1) | | +| …… | str | …… | …… | + +**示例:** + +获取课程`ep790`(cid=`132105993`,avid=`76973173`)的视频流url,清晰度为1080P60 + +```shell +curl -G 'https://api.bilibili.com/pugv/player/web/playurl' \ +--data-urlencode 'ep_id=790' \ +--data-urlencode 'avid=76973173' \ +--data-urlencode 'cid=132105993' \ +--data-urlencode 'qn=116' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "data": { + "accept_format": "flv_p60,flv720_p60,flv,flv720,flv480,flv360", + "code": 0, + "durl": [ + { + "size": 1105854161, + "ahead": "", + "length": 2222204, + "vhead": "", + "backup_url": [ + "https://upos-sz-mirrorks3c.bilivideo.com/upgcxcode/93/59/132105993/132105993_da2-1-116.flv?e=ig8euxZM2rNcNbNghzTBhwdlhbNz7bUVhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1591596728&gen=playurl&os=ks3cbv&oi=606633803&trid=76bea9a9e56f4cb89a9aff2f8213c9acu&platform=pc&upsig=b271bf493bff32ffe62969582c8d18b4&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,platform&mid=0&orderid=1,2&logo=40000000" + ], + "url": "https://upos-sz-mirrorks3.bilivideo.com/upgcxcode/93/59/132105993/132105993_da2-1-116.flv?e=ig8euxZM2rNcNbNghzTBhwdlhbNz7bUVhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1591596728&gen=playurl&os=ks3bv&oi=606633803&trid=76bea9a9e56f4cb89a9aff2f8213c9acu&platform=pc&upsig=6a8ae3711bd0bb2a484ec2427d659b14&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,platform&mid=0&orderid=0,2&logo=80000000", + "order": 1, + "md5": "" + } + ], + "seek_param": "start", + "no_rexcode": 0, + "format": "flv_p60", + "fnval": 0, + "video_project": true, + "fnver": 0, + "message": "", + "type": "FLV", + "accept_quality": [ + 116, + 74, + 80, + 64, + 32, + 16 + ], + "quality": 116, + "timelength": 2222204, + "result": "suee", + "seek_type": "offset", + "has_paid": false, + "supportFormats": [ + { + "format": "flv_p60", + "description": "高清 1080P60", + "quality": 116 + }, + { + "format": "flv720_p60", + "description": "高清 720P60", + "quality": 74 + }, + { + "format": "flv", + "description": "高清 1080P", + "quality": 80 + }, + { + "format": "flv720", + "description": "高清 720P", + "quality": 64 + }, + { + "format": "flv480", + "description": "清晰 480P", + "quality": 32 + }, + { + "format": "flv360", + "description": "流畅 360P", + "quality": 16 + } + ], + "from": "local", + "video_codecid": 7, + "accept_description": [ + "高清 1080P60", + "高清 720P60", + "高清 1080P", + "高清 720P", + "清晰 480P", + "流畅 360P" + ], + "status": 0 + }, + "message": "success" +} +``` + +
\ No newline at end of file diff --git a/docs/clientinfo/client_info.md b/docs/clientinfo/client_info.md new file mode 100644 index 0000000000..525b60f48e --- /dev/null +++ b/docs/clientinfo/client_info.md @@ -0,0 +1,95 @@ +# 终端信息查询 + +- [终端信息查询](#终端信息查询) + +--- + +## 终端信息查询 + +> https://api.bilibili.com/client_info + +*请求方式:任意* + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------- | +| code | num | 返回值 | 0:成功 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| -------- | -------- | ------------------- | ------------ | +| country | str | 国家/地区名 | | +| ip | str | 公网IP地址 | | +| province | str | 省/州 | 非必须存在项 | +| city | str | 城市 | 非必须存在项 | +| district | district | ? | | +| isp | str | 运营商名 | | +| dns | str | dns服务器ip | | +| dns_isp | str | dns服务器ip运营商名 | | +| headers | obj | 头部字段 | | + +`data`中的`headers`对象: + +| 字段 | 类型 | 内容 | 备注 | +| --------------------------------- | ---- | ----------------- | ---- | +| HTTP_ACCEPT_ENCODING | str | | | +| HTTP_X_CACHE_SERVER | str | CDN服务器名 | | +| HTTP_X_CACHE_SERVER_ADDR | str | CDN服务器ip | | +| HTTP_X_BACKEND_BILI_REAL_IP | str | 真实服务器ip | | +| HTTP_X_BACKEND_BILI_REAL_IPPORT | str | 真实服务器端口 | | +| HTTP_X_BACKEND_BILI_REAL_IP_CHAIN | str | 真实服务器ip+端口 | | +| HTTP_X_SCHEME | str | 访问协议 | | +| HTTP_HOST | str | 访问域名 | | +| HTTP_USER_AGENT | str | 客户端UA | | +| HTTP_ACCEPT | str | | | +| HTTP_CACHE_CONTROL | str | | | + +**示例:** + +```shell +curl 'https://api.bilibili.com/client_info' +``` + +
+查看响应示例: + + +```json +{ + "code": 0, + "message": "ok", + "data": { + "country": "中国", + "ip": "36.40.120.140", + "province": "陕西", + "city": "渭南", + "district": null, + "isp": "电信", + "dns": null, + "dns_isp": null, + "headers": { + "HTTP_ACCEPT_ENCODING": "gzip", + "HTTP_X_CACHE_SERVER": "ks-bj-webcdn-07", + "HTTP_X_CACHE_SERVER_ADDR": "10.33.2.170", + "HTTP_X_BACKEND_BILI_REAL_IP": "36.40.120.140", + "HTTP_X_BACKEND_BILI_REAL_IPPORT": "22058", + "HTTP_X_BACKEND_BILI_REAL_IP_CHAIN": "36.40.120.140:22058", + "HTTP_X_SCHEME": "https", + "HTTP_HOST": "api.bilibili.com", + "HTTP_USER_AGENT": "PostmanRuntime/7.26.8", + "HTTP_ACCEPT": "*/*", + "HTTP_CACHE_CONTROL": "no-cache" + } + } +} +``` + +
+ diff --git a/docs/clientinfo/ip.md b/docs/clientinfo/ip.md new file mode 100644 index 0000000000..e24b20c857 --- /dev/null +++ b/docs/clientinfo/ip.md @@ -0,0 +1,66 @@ +# 通过ip确定地理位置 + +- [通过ip确定位置](#通过ip确定位置) + +--- + +## 通过ip确定位置 + +> https://api.bilibili.com/x/web-interface/zone + +*请求方式:GET* + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------- | +| code | num | 返回值 | 0:成功 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------------ | ---- | ------------- | ------------ | +| addr | str | 公网IP地址 | | +| country | str | 国家/地区名 | | +| province | str | 省/州 | 非必须存在项 | +| city | str | 城市 | 非必须存在项 | +| isp | str | 运营商名 | | +| latitude | num | 纬度 | | +| longitude | num | 经度 | | +| zone_id | num | ip数据库id | | +| country_code | num | 国家/地区代码 | | + +**示例:** + +```shell +curl 'https://api.bilibili.com/x/web-interface/zone' +``` + +
+查看响应示例: + +```json +{ + "code":0, + "message":"0", + "ttl":1, + "data":{ + "addr":"36.40.120.145", + "country":"中国", + "province":"陕西", + "city":"渭南", + "isp":"电信", + "latitude":34.4995, + "longitude":109.492821, + "zone_id":4472912, + "country_code":86 + } +} +``` + +
diff --git a/docs/comment/action.md b/docs/comment/action.md new file mode 100644 index 0000000000..f1e3794d3c --- /dev/null +++ b/docs/comment/action.md @@ -0,0 +1,544 @@ +# 评论区操作 + +- [发表评论](#发表评论) +- [点赞评论](#点赞评论) +- [点踩评论](#点踩评论) +- [删除评论](#删除评论) +- [置顶评论](#置顶评论) +- [举报评论](#举报评论) + +--- + +## 发表评论 + +> https://api.bilibili.com/x/v2/reply/add + +*请求方式:POST* + +认证方式:Cookie(SESSDATA)或APP + +**正文参数( application/x-www-form-urlencoded ):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ---------- | ---- | ------------------------ | -------------- | ------------------------------------------------------------ | +| access_key | str | APP登录Token | APP方式必要 | | +| type | num | 评论区类型代码 | 必要 | **[类型代码见表](readme.md#评论区类型代码)** | +| oid | num | 目标评论区id | 必要 | | +| root | num | 根评论rpid | 非必要 | 二级评论以上使用 | +| parent | num | 父评论rpid | 非必要 | 二级评论同根评论id
大于二级评论为要回复的评论id | +| message | str | 发送评论内容 | 必要 | 最大1000字符
表情使用表情转义符 | +| plat | num | 发送平台标识 | 非必要 | 1:web端
2:安卓客户端
3:ios客户端
4:wp客户端
默认为1 | +| csrf | str | CSRF Token(位于cookie) | Cookie方式必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------------------ | +| code | num | 返回值 | 0:成功
-101:账号未登录
-102:账号被封停
-111:csrf校验失败
-400:请求错误
-404:无此项
-509:请求过于频繁
12001:已经存在评论主题
12002:评论区已关闭
12003:禁止回复
12006:没有该评论
12009:评论主体的type不合法
12015:需要评论验证码
12016:评论内容包含敏感信息
12025:评论字数过多
12035:该账号被UP主列入评论黑名单
12051:重复评论,请勿刷屏
12052:评论区已关闭
**(其他错误码有待补充)** | +| message | str | 错误信息 |
| +| ttl | num | 1 | | +| data | obj | 数据本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| -------------- | ----------------------------- | -------------- | ------------------------------------------------------------ | +| success_action | num | 0 | **作用尚不明确** | +| success_toast | str | 状态文字 | | +| need_captcha | bool | false | 评论需要验证码(未证实) | +| url | str | 空 | **作用尚不明确** | +| rpid | num | 评论rpid | | +| rpid_str | str | 评论rpid | 字串格式 | +| dialog | num | 回复对方rpid | 若为一级评论则为0
若为二级评论则为该评论id
大于二级评论为上一级评论id | +| dialog_str | str | 回复对方rpid | 字串格式 | +| root | num | 根评论rpid | 若为一级评论则为0
大于一级评论则为根评论id | +| root_str | str | 根评论rpid | 字串格式 | +| parent | num | 回复父评论rpid | 若为一级评论则为0
若为二级评论则为根评论id
大于二级评论为上一级评论id | +| parent_str | str | 回复父评论rpid | 字串格式 | +| emote | obj | 表情转义符信息 | [对象定义见表](readme.md#评论条目对象) | +| reply | 有效时:obj
无效时:null | | [对象定义见表](readme.md#评论条目对象) | + +**示例:** + +给视频`av243322853`发送内容为`测试test[泠鸢yousa_awsl]`的评论(带有表情转义符),平台标识为1(web端) + +```shell +curl 'https://api.bilibili.com/x/v2/reply/add' \ +--data-urlencode 'type=1' \ +--data-urlencode 'oid=243322853' \ +--data-urlencode 'message=测试test[泠鸢yousa_awsl]' \ +--data-urlencode 'plat=1' \ +--data-urlencode 'csrf=xxx' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "success_action": 0, + "success_toast": "发送成功", + "need_captcha": false, + "url": "", + "rpid": 3043212039, + "rpid_str": "3043212039", + "dialog": 0, + "dialog_str": "0", + "root": 0, + "root_str": "0", + "parent": 0, + "parent_str": "0", + "emote": { + "[泠鸢yousa_awsl]": { + "id": 2086, + "package_id": 93, + "state": 0, + "type": 3, + "attr": 0, + "text": "[泠鸢yousa_awsl]", + "url": "http://i0.hdslb.com/bfs/emote/7663b729161bd4556c2ec318c07791000743eb56.png", + "meta": { + "size": 2 + }, + "mtime": 1589776042 + } + }, + "reply": { + "rpid": 3043212039, + "oid": 243322853, + "type": 1, + "mid": 293793435, + "root": 0, + "parent": 0, + "dialog": 0, + "count": 0, + "rcount": 0, + "state": 0, + "fansgrade": 0, + "attr": 0, + "ctime": 1592233764, + "rpid_str": "3043212039", + "root_str": "0", + "parent_str": "0", + "like": 0, + "action": 0, + "member": { + "mid": "293793435", + "uname": "社会易姐QwQ", + "sex": "男", + "sign": "高中技术宅一枚,爱好MC&电子&8-bit音乐&数码&编程,资深猿厨", + "avatar": "http://i1.hdslb.com/bfs/face/aebb2639a0d47f2ce1fec0631f412eaf53d4a0be.jpg", + "rank": "10000", + "DisplayRank": "0", + "level_info": { + "current_level": 5, + "current_min": 0, + "current_exp": 0, + "next_exp": 0 + }, + "pendant": { + "pid": 1888, + "name": "泠鸢yousa", + "image": "http://i0.hdslb.com/bfs/garb/item/3e66e712b8e70c6b02393c54ad5fd8d993eb39f9.png", + "expire": 0, + "image_enhance": "http://i0.hdslb.com/bfs/garb/item/3e66e712b8e70c6b02393c54ad5fd8d993eb39f9.png" + }, + "nameplate": { + "nid": 0, + "name": "", + "image": "", + "image_small": "", + "level": "", + "condition": "" + }, + "official_verify": { + "type": -1, + "desc": "" + }, + "vip": { + "vipType": 2, + "vipDueDate": 1612454400000, + "dueRemark": "", + "accessStatus": 0, + "vipStatus": 1, + "vipStatusWarn": "", + "themeType": 0, + "label": { + "path": "", + "text": "年度大会员", + "label_theme": "annual_vip" + } + }, + "fans_detail": null, + "following": 0, + "is_followed": 0, + "user_sailing": { + "pendant": { + "id": 1888, + "name": "泠鸢yousa", + "image": "http://i0.hdslb.com/bfs/garb/item/3e66e712b8e70c6b02393c54ad5fd8d993eb39f9.png", + "jump_url": "", + "type": "suit" + }, + "cardbg": null, + "cardbg_with_focus": null + } + }, + "content": { + "message": "测试test[泠鸢yousa_awsl]", + "plat": 1, + "device": "", + "members": [], + "emote": { + "[泠鸢yousa_awsl]": { + "id": 2086, + "package_id": 93, + "state": 0, + "type": 3, + "attr": 0, + "text": "[泠鸢yousa_awsl]", + "url": "http://i0.hdslb.com/bfs/emote/7663b729161bd4556c2ec318c07791000743eb56.png", + "meta": { + "size": 2 + }, + "mtime": 1589776042 + } + }, + "jump_url": {}, + "max_line": 0 + }, + "replies": null, + "assist": 0, + "folder": { + "has_folded": false, + "is_folded": false, + "rule": "https://www.bilibili.com/blackboard/foldingreply.html" + }, + "up_action": { + "like": false, + "reply": false + }, + "show_follow": false + } + } +} +``` + +
+ +## 点赞评论 + +> https://api.bilibili.com/x/v2/reply/action + +*请求方式:POST* + +认证方式:Cookie(SESSDATA)或APP + +点赞成功后会同时消去该评论的点踩 + +**正文参数( application/x-www-form-urlencoded ):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ---------- | ---- | ------------------------ | -------------- | -------------------------------------------- | +| access_key | str | APP登录Token | APP方式必要 | | +| type | num | 评论区类型代码 | 必要 | **[类型代码见表](readme.md#评论区类型代码)** | +| oid | num | 目标评论区id | 必要 | | +| rpid | num | 目标评论rpid | 必要 | | +| action | num | 操作代码 | 非必要 | 默认为0
0:取消赞
1:点赞 | +| csrf | str | CSRF Token(位于cookie) | Cookie方式必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------------------ | +| code | num | 返回值 | 0:成功
-101:账号未登录
-102:账号被封停
-111:csrf校验失败
-400:请求错误
-404:无此项
-509:请求过于频繁
12002:评论区已关闭
12004:禁止操作 赞或踩
12006:没有该评论
12009:评论主体的type不合法
12011:不合法的赞或踩
**(其他错误码有待补充)** | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | + +**示例:** + +点赞视频`av243322853`下评论`rpid=3039053308` + +```shell +curl 'https://api.bilibili.com/x/v2/reply/action' \ +--data-urlencode 'type=1' \ +--data-urlencode 'oid=243322853' \ +--data-urlencode 'rpid=3039053308' \ +--data-urlencode 'action=1' \ +--data-urlencode 'csrf=xxx' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1 +} +``` + +
+ +## 点踩评论 + +> https://api.bilibili.com/x/v2/reply/hate + +*请求方式:POST* + +认证方式:Cookie(SESSDATA)或APP + +点踩成功后会同时消去该评论的点赞 + +**正文参数( application/x-www-form-urlencoded ):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ---------- | ---- | ------------------------ | -------------- | -------------------------------------------- | +| access_key | str | APP登录Token | APP方式必要 | | +| type | num | 评论区类型代码 | 必要 | **[类型代码见表](readme.md#评论区类型代码)** | +| oid | num | 目标评论区id | 必要 | | +| rpid | num | 目标评论rpid | 必要 | | +| action | num | 操作代码 | 非必要 | 默认为0
0:取消踩
1:点踩 | +| csrf | str | CSRF Token(位于cookie) | Cookie方式必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------------------ | +| code | num | 返回值 | 0:成功
-101:账号未登录
-102:账号被封停
-111:csrf校验失败
-400:请求错误
-404:无此项
-509:请求过于频繁
12002:评论区已关闭
12004:禁止操作 赞或踩
12006:没有该评论
12009:评论主体的type不合法
12011:不合法的赞或踩
**(其他错误码有待补充)** | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | + +**示例:** + +点踩视频`av243322853`下评论`rpid=3039053308` + +```shell +curl 'https://api.bilibili.com/x/v2/reply/hate' \ +--data-urlencode 'type=1' \ +--data-urlencode 'oid=243322853' \ +--data-urlencode 'rpid=3039053308' \ +--data-urlencode 'action=1' \ +--data-urlencode 'csrf=xxx' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1 +} +``` + +
+ +## 删除评论 + +> https://api.bilibili.com/x/v2/reply/del + +*请求方式:POST* + +认证方式:Cookie(SESSDATA)或APP + +只能删除自己的评论,或自己管理的评论区下的评论 + +**正文参数( application/x-www-form-urlencoded ):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ---------- | ---- | ------------------------ | -------------- | -------------------------------------------- | +| access_key | str | APP登录Token | APP方式必要 | | +| type | num | 评论区类型代码 | 必要 | **[类型代码见表](readme.md#评论区类型代码)** | +| oid | num | 目标评论区id | 必要 | | +| rpid | num | 目标评论rpid | 必要 | | +| csrf | str | CSRF Token(位于cookie) | Cookie方式必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------------------ | +| code | num | 返回值 | 0:成功
-101:账号未登录
-102:账号被封停
-111:csrf校验失败
-400:请求错误
-403:权限不足
-404:无此项
-509:请求过于频繁
12002:评论区已关闭
12009:评论主体的type不合法
12022:已经被删除了
**(其他错误码有待补充)** | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | **作用尚不明确** | + +**示例:** + +删除`av243322853`下评论`rpid=3039053308` + +```shell +curl 'https://api.bilibili.com/x/v2/reply/del' \ +--data-urlencode 'type=1' \ +--data-urlencode 'oid=243322853' \ +--data-urlencode 'rpid=3039053308' \ +--data-urlencode 'csrf=xxx' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1 +} +``` + +
+ +## 置顶评论 + +> https://api.bilibili.com/x/v2/reply/top + +*请求方式:POST* + +认证方式:Cookie(SESSDATA)或APP + +只能置顶自己管理的评论区中的一级评论 + +**正文参数( application/x-www-form-urlencoded ):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ---------- | ---- | ------------------------ | -------------- | -------------------------------------------- | +| access_key | str | APP登录Token | APP方式必要 | | +| type | num | 评论区类型代码 | 必要 | **[类型代码见表](readme.md#评论区类型代码)** | +| oid | num | 目标评论区id | 必要 | | +| rpid | num | 目标评论rpid | 必要 | | +| action | num | 操作代码 | 非必要 | 默认为0
0:取消置顶
1:设为置顶 | +| csrf | str | CSRF Token(位于cookie) | Cookie方式必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------------------ | +| code | num | 返回值 | 0:成功
-101:账号未登录
-102:账号被封停
-111:csrf校验失败
-400:请求错误
-403:权限不足
-404:无此项
-509:请求过于频繁
12002:评论区已关闭
12006:没有该评论
12009:评论主体的type不合法
12029:已经有置顶评论
12030:不能置顶非一级评论
**(其他错误码有待补充)** | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | + +**示例:** + +置顶视频`av243322853`下评论`rpid=2940645593` + +```shell +curl 'https://api.bilibili.com/x/v2/reply/top' \ +--data-urlencode 'type=1' \ +--data-urlencode 'oid=243322853' \ +--data-urlencode 'rpid=2940645593' \ +--data-urlencode 'action=1' \ +--data-urlencode 'csrf=xxx' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1 +} +``` + +
+ +## 举报评论 + +> https://api.bilibili.com/x/v2/reply/report + +*请求方式:POST* + +认证方式:Cookie(SESSDATA)或APP + +**正文参数( application/x-www-form-urlencoded ):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ---------- | ---- | ------------------------ | -------------- | -------------------------------------------- | +| access_key | str | APP登录Token | APP方式必要 | | +| type | num | 评论区类型代码 | 必要 | **[类型代码见表](readme.md#评论区类型代码)** | +| oid | num | 目标评论区id | 必要 | | +| rpid | num | 目标评论rpid | 必要 | | +| reason | num | 举报类型 | 必要 | **类型代码见下表** | +| content | str | 其他举报备注 | 非必要 | `reason=0`时有效 | +| csrf | str | CSRF Token(位于cookie) | Cookie方式必要 | | + +举报类型`reason`: + +| 代码 | 含义 | +| ---- | -------------- | +| 0 | 其他 | +| 1 | 垃圾广告 | +| 2 | 色情 | +| 3 | 刷屏 | +| 4 | 引战 | +| 5 | 剧透 | +| 6 | 政治 | +| 7 | 人身攻击 | +| 8 | 内容不相关 | +| 9 | 违法违规 | +| 10 | 低俗 | +| 11 | 非法网站 | +| 12 | 赌博诈骗 | +| 13 | 传播不实信息 | +| 14 | 怂恿教唆信息 | +| 15 | 侵犯隐私 | +| 16 | 抢楼 | +| 17 | 青少年不良信息 | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------------------ | +| code | num | 返回值 | 0:成功
-101:账号未登录
-102:账号被封停
-111:csrf校验失败
-400:请求错误
-403:权限不足
-404:无此项
-500:服务器错误
-509:请求过于频繁
12002:评论区已关闭
12006:没有该评论
12008:已经举报过了
12009:评论主体的type不合法
12019:举报过于频繁
**(其他错误码有待补充)** | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | + +**示例:** + +举报视频` av752881391 `下评论`rpid=3062537442`,理由是`引战` + +```shell +curl 'https://api.bilibili.com/x/v2/reply/report' \ +--data-urlencode 'type=1' \ +--data-urlencode 'oid=752881391' \ +--data-urlencode 'rpid=3062537442' \ +--data-urlencode 'reason=4' \ +--data-urlencode 'csrf=xxx' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1 +} +``` + +
diff --git a/docs/comment/list.md b/docs/comment/list.md new file mode 100644 index 0000000000..7bf73cf5f6 --- /dev/null +++ b/docs/comment/list.md @@ -0,0 +1,5853 @@ +# 评论区明细 + +- [获取评论区明细_翻页加载](#获取评论区明细_翻页加载) +- [获取评论区明细_懒加载](#获取评论区明细_懒加载) +- [获取指定评论的回复](#获取指定评论的回复) +- [获取指定评论对话树](#获取指定评论对话树) +- [获取评论区热评](#获取评论区热评) +- [~~获取指定评论信息~~](#~~获取指定评论信息~~) +- [获取评论区评论总数](#获取评论区评论总数) + +--- + +## 获取评论区明细_翻页加载 + +> https://api.bilibili.com/x/v2/reply + +*请求方式:GET* + +认证方式:Cookie(SESSDATA)或APP + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ---------- | ---- | -------------- | ------------ | -------------------------------------------------------- | +| access_key | str | APP 登录 Token | APP 方式必要 | | +| type | num | 评论区类型代码 | 必要 | [类型代码见表](readme.md#评论区类型代码) | +| oid | num | 目标评论区 id | 必要 | | +| sort | num | 排序方式 | 非必要 | 默认为0
0:按时间
1:按点赞数
2:按回复数 | +| nohot | num | 是否不显示热评 | 非必要 | 默认为0
1:不显示
0:显示 | +| ps | num | 每页项数 | 非必要 | 默认为20
定义域:1-49 | +| pn | num | 页码 | 非必要 | 默认为1 | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ----------------------------- | -------- | ------------------------------------------------------------ | +| code | num | 返回值 | 0:成功
-400:请求错误
-404:无此项
12002:评论区已关闭
12009:评论主体的type不合法 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | 正确时:obj
错误时:null | 数据本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------------ | -------------------------------- | -------- | ---------------- | +| page | obj | 页信息 | | +| config | obj | 评论区显示控制 | | +| replies | 禁用时:null
正常时:array | 评论列表 | | +| hots | 禁用时:null
正常时:array | 热评列表 | | +| upper | obj | 置顶评论 | | +| top | null | (?) | | +| notice | 无效时:null
有效时:obj | 评论区公告信息 | | +| vote | num | 投票评论? | | +| blacklist | num | (?) | | +| assist | num | (?) | | +| mode | num | 评论区类型id | | +| support_mode | array | 评论区支持的类型id | | +| folder | obj | 折叠相关信息 | | +| lottery_card | null | (?) | | +| show_bvid | bool | 显示bvid? | | +| control | obj | 评论区输入属性 | | + +`data`中的`page`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------ | ---- | ------------ | ---- | +| num | num | 当前页码 | | +| size | num | 每页项数 | | +| count | num | 根评论条数 | | +| acount | num | 总计评论条数 | | + +`data`中的`config`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------------ | ---- | ------------------------- | ---- | +| showadmin | num | 是否显示管理置顶 | | +| showentry | num | (?) | | +| showfloor | num | 是否显示楼层号 | | +| showtopic | num | 是否显示话题 | | +| show_up_flag | bool | 是否显示“UP 觉得很赞”标志 | | +| read_only | bool | 是否只读评论区 | | +| show_del_log | bool | 是否显示删除记录 | | + +`data`中的`replies`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | -------------- | -------------------------------------- | +| 0 | obj | 评论条目 1 | [对象定义见表](readme.md#评论条目对象) | +| n | obj | 评论条目 (n+1) | 按照指定的顺序排列 | +| …… | obj | …… | …… | + +`data`中的`hots`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | -------------- | -------------------------------------- | +| 0 | obj | 热评条目 1 | [对象定义见表](readme.md#评论条目对象) | +| n | obj | 热评条目 (n+1) | 按照热评热度排列 | +| …… | obj | …… | …… | + +`data`中的`upper`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ----------------------------- | ---------- | -------------------------------------- | +| mid | num | UP 主 mid | | +| top | 有效时:obj
无效时:null | 置顶条目 | [对象定义见表](readme.md#评论条目对象) | +| vote | 有效时:obj
无效时:null | 投票评论? | | + +`data`中的`notice`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | ---------------- | ---- | +| content | str | 公告正文 | | +| id | num | 公告 id | | +| link | str | 公告页面链接 url | | +| title | str | 公告标题 | | + +`data`中的`folder`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---------- | ---- | ---------------------- | ---- | +| has_folded | bool | 评论区是否存在折叠评论 | | +| is_folded | bool | 是否折叠? | | +| rule | str | 相关规则页面 url | | + +`data`中的`control`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------------------------ | ---- | ------------------ | ----------------------------------- | +| input_disable | bool | 是否禁止新增评论 | 用户涉及合约争议,锁定该用户所有稿件、动态的评论区,不允许新增评论,`root_input_text`和`child_input_text`值为“当前评论区不可新增评论” | +| root_input_text | str | 评论框文字 | | +| child_input_text | str | 评论框文字 | | +| bg_text | str | 空评论区文字 | | +| web_selection | bool | 评论是否筛选后可见 | false:无需筛选
true:需要筛选 | +| answer_guide_text | str | 答题页面链接文字 | | +| answer_guide_icon_url | str | 答题页面图标 url | | +| answer_guide_ios_url | str | 答题页面 ios url | | +| answer_guide_android_url | str | 答题页面安卓 url | | + +**示例:** + +获取视频`av2`的评论区明细,不显示热评,按照热度排序,每页5项,查看第1页 + +```shell +curl -G 'https://api.bilibili.com/x/v2/reply' \ +--data-urlencode 'type=1' \ +--data-urlencode 'oid=2' \ +--data-urlencode 'sort=1' \ +--data-urlencode 'ps=5' \ +--data-urlencode 'pn=1' \ +--data-urlencode 'nohot=1' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "page": { + "num": 1, + "size": 5, + "count": 60971, + "acount": 76792 + }, + "config": { + "showadmin": 1, + "showentry": 1, + "showfloor": 0, + "showtopic": 1, + "show_up_flag": true, + "read_only": false, + "show_del_log": false + }, + "replies": [ + { + "rpid": 104192624480, + "oid": 2, + "type": 1, + "mid": 621197713, + "root": 0, + "parent": 0, + "dialog": 0, + "count": 0, + "rcount": 0, + "state": 0, + "fansgrade": 0, + "attr": 0, + "ctime": 1646205507, + "rpid_str": "104192624480", + "root_str": "0", + "parent_str": "0", + "like": 1, + "action": 0, + "member": { + "mid": "621197713", + "uname": "小鹿不跑路", + "sex": "保密", + "sign": "", + "avatar": "http://i1.hdslb.com/bfs/face/3e220c95ead8f2bc72bd2dcee72d195b723192fa.jpg", + "rank": "10000", + "DisplayRank": "0", + "face_nft_new": 0, + "is_senior_member": 0, + "level_info": { + "current_level": 4, + "current_min": 0, + "current_exp": 0, + "next_exp": 0 + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "", + "image_enhance_frame": "" + }, + "nameplate": { + "nid": 0, + "name": "", + "image": "", + "image_small": "", + "level": "", + "condition": "" + }, + "official_verify": { + "type": -1, + "desc": "" + }, + "vip": { + "vipType": 1, + "vipDueDate": 1648051200000, + "dueRemark": "", + "accessStatus": 0, + "vipStatus": 1, + "vipStatusWarn": "", + "themeType": 0, + "label": { + "path": "", + "text": "大会员", + "label_theme": "vip", + "text_color": "#FFFFFF", + "bg_style": 1, + "bg_color": "#FB7299", + "border_color": "" + }, + "avatar_subscript": 1, + "avatar_subscript_url": "http://i0.hdslb.com/bfs/vip/icon_Certification_big_member_22_3x.png", + "nickname_color": "" + }, + "fans_detail": null, + "following": 0, + "is_followed": 0, + "user_sailing": { + "pendant": null, + "cardbg": null, + "cardbg_with_focus": null + }, + "is_contractor": false, + "contract_desc": "" + }, + "content": { + "message": "我赶上了我们这个年龄段二次元的末班车,这一年,巨人出了最终季,诚哥的新作玲芽户缔(好像是叫这个)也要在今年秋上映,后悔没有早进入这个圈子,现在只好紧追慢赶,慢慢的补番,我小时候都在干什么啊[大哭]", + "plat": 0, + "device": "", + "members": [], + "emote": { + "[大哭]": { + "id": 5, + "package_id": 1, + "state": 0, + "type": 1, + "attr": 0, + "text": "[大哭]", + "url": "http://i0.hdslb.com/bfs/emote/2caafee2e5db4db72104650d87810cc2c123fc86.png", + "meta": { + "size": 1 + }, + "mtime": 1597738918, + "jump_title": "大哭" + } + }, + "jump_url": {}, + "max_line": 6 + }, + "replies": [], + "assist": 0, + "folder": { + "has_folded": false, + "is_folded": false, + "rule": "https://www.bilibili.com/blackboard/foldingreply.html" + }, + "up_action": { + "like": false, + "reply": false + }, + "show_follow": false, + "invisible": false, + "reply_control": { + "time_desc": "6小时前发布" + } + }, + { + "rpid": 104184937184, + "oid": 2, + "type": 1, + "mid": 560450695, + "root": 0, + "parent": 0, + "dialog": 0, + "count": 0, + "rcount": 0, + "state": 0, + "fansgrade": 0, + "attr": 0, + "ctime": 1646199089, + "rpid_str": "104184937184", + "root_str": "0", + "parent_str": "0", + "like": 0, + "action": 0, + "member": { + "mid": "560450695", + "uname": "還講幾韆", + "sex": "保密", + "sign": "", + "avatar": "http://i1.hdslb.com/bfs/face/e8bcd1f3fed1a8b266e83f7e5952db525b692227.jpg", + "rank": "10000", + "DisplayRank": "0", + "face_nft_new": 0, + "is_senior_member": 0, + "level_info": { + "current_level": 3, + "current_min": 0, + "current_exp": 0, + "next_exp": 0 + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "", + "image_enhance_frame": "" + }, + "nameplate": { + "nid": 0, + "name": "", + "image": "", + "image_small": "", + "level": "", + "condition": "" + }, + "official_verify": { + "type": -1, + "desc": "" + }, + "vip": { + "vipType": 0, + "vipDueDate": 0, + "dueRemark": "", + "accessStatus": 0, + "vipStatus": 0, + "vipStatusWarn": "", + "themeType": 0, + "label": { + "path": "", + "text": "", + "label_theme": "", + "text_color": "", + "bg_style": 0, + "bg_color": "", + "border_color": "" + }, + "avatar_subscript": 0, + "nickname_color": "" + }, + "fans_detail": null, + "following": 0, + "is_followed": 0, + "user_sailing": { + "pendant": null, + "cardbg": null, + "cardbg_with_focus": null + }, + "is_contractor": false, + "contract_desc": "" + }, + "content": { + "message": "电视宇宙第二个视频[滑稽][滑稽][滑稽]", + "plat": 0, + "device": "", + "members": [], + "emote": { + "[滑稽]": { + "id": 27, + "package_id": 1, + "state": 0, + "type": 1, + "attr": 0, + "text": "[滑稽]", + "url": "http://i0.hdslb.com/bfs/emote/d15121545a99ac46774f1f4465b895fe2d1411c3.png", + "meta": { + "size": 1 + }, + "mtime": 1645206695, + "jump_title": "滑稽" + } + }, + "jump_url": {}, + "max_line": 6 + }, + "replies": [], + "assist": 0, + "folder": { + "has_folded": false, + "is_folded": false, + "rule": "https://www.bilibili.com/blackboard/foldingreply.html" + }, + "up_action": { + "like": false, + "reply": false + }, + "show_follow": false, + "invisible": false, + "reply_control": { + "time_desc": "7小时前发布" + } + }, + { + "rpid": 104179775904, + "oid": 2, + "type": 1, + "mid": 1616523766, + "root": 0, + "parent": 0, + "dialog": 0, + "count": 0, + "rcount": 0, + "state": 0, + "fansgrade": 0, + "attr": 0, + "ctime": 1646195814, + "rpid_str": "104179775904", + "root_str": "0", + "parent_str": "0", + "like": 1, + "action": 0, + "member": { + "mid": "1616523766", + "uname": "关查者网", + "sex": "保密", + "sign": "", + "avatar": "http://i1.hdslb.com/bfs/face/8bb6aab1f6bcc960f4482aa97b8ca4e61cf81d0d.jpg", + "rank": "10000", + "DisplayRank": "0", + "face_nft_new": 0, + "is_senior_member": 0, + "level_info": { + "current_level": 3, + "current_min": 0, + "current_exp": 0, + "next_exp": 0 + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "", + "image_enhance_frame": "" + }, + "nameplate": { + "nid": 0, + "name": "", + "image": "", + "image_small": "", + "level": "", + "condition": "" + }, + "official_verify": { + "type": -1, + "desc": "" + }, + "vip": { + "vipType": 1, + "vipDueDate": 1626451200000, + "dueRemark": "", + "accessStatus": 0, + "vipStatus": 0, + "vipStatusWarn": "", + "themeType": 0, + "label": { + "path": "", + "text": "", + "label_theme": "", + "text_color": "", + "bg_style": 0, + "bg_color": "", + "border_color": "" + }, + "avatar_subscript": 0, + "nickname_color": "" + }, + "fans_detail": null, + "following": 0, + "is_followed": 0, + "user_sailing": { + "pendant": null, + "cardbg": null, + "cardbg_with_focus": null + }, + "is_contractor": false, + "contract_desc": "" + }, + "content": { + "message": "考古队已到达[doge]", + "plat": 0, + "device": "", + "members": [], + "emote": { + "[doge]": { + "id": 26, + "package_id": 1, + "state": 0, + "type": 1, + "attr": 0, + "text": "[doge]", + "url": "http://i0.hdslb.com/bfs/emote/3087d273a78ccaff4bb1e9972e2ba2a7583c9f11.png", + "meta": { + "size": 1 + }, + "mtime": 1645206695, + "jump_title": "doge" + } + }, + "jump_url": {}, + "max_line": 6 + }, + "replies": [], + "assist": 0, + "folder": { + "has_folded": false, + "is_folded": false, + "rule": "https://www.bilibili.com/blackboard/foldingreply.html" + }, + "up_action": { + "like": false, + "reply": false + }, + "show_follow": false, + "invisible": false, + "reply_control": { + "time_desc": "8小时前发布" + } + }, + { + "rpid": 104163851152, + "oid": 2, + "type": 1, + "mid": 27553613, + "root": 0, + "parent": 0, + "dialog": 0, + "count": 0, + "rcount": 0, + "state": 0, + "fansgrade": 0, + "attr": 0, + "ctime": 1646183484, + "rpid_str": "104163851152", + "root_str": "0", + "parent_str": "0", + "like": 1, + "action": 0, + "member": { + "mid": "27553613", + "uname": "念晚心", + "sex": "男", + "sign": "", + "avatar": "http://i2.hdslb.com/bfs/face/8b8f32c22651904a23eeb83b048041b7c1c8ffd6.jpg", + "rank": "10000", + "DisplayRank": "0", + "face_nft_new": 0, + "is_senior_member": 0, + "level_info": { + "current_level": 6, + "current_min": 0, + "current_exp": 0, + "next_exp": 0 + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "", + "image_enhance_frame": "" + }, + "nameplate": { + "nid": 74, + "name": "大会员2018年度勋章", + "image": "http://i2.hdslb.com/bfs/face/421179426c929dfeaed4117461c83f5d07ffb148.png", + "image_small": "http://i0.hdslb.com/bfs/face/682001c2e1c2ae887bdf2a0e18eef61180c48f84.png", + "level": "稀有勋章", + "condition": "2018.6.26-7.8某一天是年度大会员" + }, + "official_verify": { + "type": -1, + "desc": "" + }, + "vip": { + "vipType": 2, + "vipDueDate": 1650470400000, + "dueRemark": "", + "accessStatus": 0, + "vipStatus": 1, + "vipStatusWarn": "", + "themeType": 0, + "label": { + "path": "", + "text": "年度大会员", + "label_theme": "annual_vip", + "text_color": "#FFFFFF", + "bg_style": 1, + "bg_color": "#FB7299", + "border_color": "" + }, + "avatar_subscript": 1, + "avatar_subscript_url": "http://i0.hdslb.com/bfs/vip/icon_Certification_big_member_22_3x.png", + "nickname_color": "#FB7299" + }, + "fans_detail": null, + "following": 0, + "is_followed": 0, + "user_sailing": { + "pendant": null, + "cardbg": { + "id": 5476, + "name": "嘉然今天吃什么", + "image": "http://i0.hdslb.com/bfs/garb/item/4442641bd4001214518a81fa8f790ae7469d3cf7.png", + "jump_url": "https://www.bilibili.com/h5/mall/fans/recommend/5461?navhide=1&mid=27553613&from=reply", + "fan": { + "is_fan": 1, + "number": 14705, + "color": "#f76a6b", + "name": "嘉然今天吃什么", + "num_desc": "014705" + }, + "type": "suit" + }, + "cardbg_with_focus": null + }, + "is_contractor": false, + "contract_desc": "" + }, + "content": { + "message": "当时只看优酷和土豆", + "plat": 0, + "device": "", + "members": [], + "jump_url": {}, + "max_line": 6 + }, + "replies": [], + "assist": 0, + "folder": { + "has_folded": false, + "is_folded": false, + "rule": "https://www.bilibili.com/blackboard/foldingreply.html" + }, + "up_action": { + "like": false, + "reply": false + }, + "show_follow": false, + "invisible": false, + "reply_control": { + "time_desc": "12小时前发布" + } + }, + { + "rpid": 104163545120, + "oid": 2, + "type": 1, + "mid": 31937033, + "root": 0, + "parent": 0, + "dialog": 0, + "count": 0, + "rcount": 0, + "state": 0, + "fansgrade": 0, + "attr": 0, + "ctime": 1646183209, + "rpid_str": "104163545120", + "root_str": "0", + "parent_str": "0", + "like": 1, + "action": 0, + "member": { + "mid": "31937033", + "uname": "夜声已尽", + "sex": "男", + "sign": "六八四十二", + "avatar": "http://i2.hdslb.com/bfs/face/e35e81a00596883532ba47c58ca0434618fab3d0.jpg", + "rank": "10000", + "DisplayRank": "0", + "face_nft_new": 0, + "is_senior_member": 0, + "level_info": { + "current_level": 6, + "current_min": 0, + "current_exp": 0, + "next_exp": 0 + }, + "pendant": { + "pid": 33465, + "name": "乃琳Queen", + "image": "http://i2.hdslb.com/bfs/garb/item/4ad130e4068f88c54728ac510a172b97e187826f.png", + "expire": 0, + "image_enhance": "http://i2.hdslb.com/bfs/garb/item/4ad130e4068f88c54728ac510a172b97e187826f.png", + "image_enhance_frame": "" + }, + "nameplate": { + "nid": 62, + "name": "有爱大佬", + "image": "http://i0.hdslb.com/bfs/face/a10ee6b613e0d68d2dfdac8bbf71b94824e10408.png", + "image_small": "http://i2.hdslb.com/bfs/face/54f4c31ab9b1f1fa2c29dbbc967f66535699337e.png", + "level": "普通勋章", + "condition": "当前持有粉丝勋章最高等级>=15级" + }, + "official_verify": { + "type": -1, + "desc": "" + }, + "vip": { + "vipType": 2, + "vipDueDate": 1671465600000, + "dueRemark": "", + "accessStatus": 0, + "vipStatus": 1, + "vipStatusWarn": "", + "themeType": 0, + "label": { + "path": "", + "text": "年度大会员", + "label_theme": "annual_vip", + "text_color": "#FFFFFF", + "bg_style": 1, + "bg_color": "#FB7299", + "border_color": "" + }, + "avatar_subscript": 1, + "avatar_subscript_url": "http://i0.hdslb.com/bfs/vip/icon_Certification_big_member_22_3x.png", + "nickname_color": "#FB7299" + }, + "fans_detail": null, + "following": 0, + "is_followed": 0, + "user_sailing": { + "pendant": { + "id": 33465, + "name": "乃琳Queen", + "image": "http://i0.hdslb.com/bfs/garb/item/4ad130e4068f88c54728ac510a172b97e187826f.png", + "jump_url": "", + "type": "suit", + "image_enhance": "http://i0.hdslb.com/bfs/garb/item/4ad130e4068f88c54728ac510a172b97e187826f.png", + "image_enhance_frame": "" + }, + "cardbg": { + "id": 33494, + "name": "乃琳Queen", + "image": "http://i0.hdslb.com/bfs/garb/item/34f8c1ef43332883f62e17fed44c1a70930e4811.png", + "jump_url": "https://www.bilibili.com/h5/mall/fans/recommend/33498?navhide=1&mid=31937033&from=reply", + "fan": { + "is_fan": 1, + "number": 50766, + "color": "#576690", + "name": "乃琳Queen", + "num_desc": "050766" + }, + "type": "suit" + }, + "cardbg_with_focus": null + }, + "is_contractor": false, + "contract_desc": "" + }, + "content": { + "message": "考古", + "plat": 0, + "device": "", + "members": [], + "jump_url": {}, + "max_line": 6 + }, + "replies": [], + "assist": 0, + "folder": { + "has_folded": false, + "is_folded": false, + "rule": "https://www.bilibili.com/blackboard/foldingreply.html" + }, + "up_action": { + "like": false, + "reply": false + }, + "show_follow": false, + "invisible": false, + "reply_control": { + "time_desc": "12小时前发布" + } + } + ], + "hots": [], + "upper": { + "mid": 2, + "top": null, + "vote": null + }, + "top": null, + "notice": null, + "vote": 0, + "blacklist": 0, + "assist": 0, + "mode": 3, + "support_mode": [ + 1, + 2, + 3 + ], + "folder": { + "has_folded": false, + "is_folded": false, + "rule": "https://www.bilibili.com/blackboard/foldingreply.html" + }, + "lottery_card": null, + "show_bvid": false, + "control": { + "input_disable": false, + "root_input_text": "发一条友善的评论", + "child_input_text": "", + "giveup_input_text": "不发没关系,请继续友善哦~", + "bg_text": "看看下面~来发评论吧", + "web_selection": false, + "answer_guide_text": "需要升级成为lv2会员后才可以评论,先去答题转正吧!", + "answer_guide_icon_url": "http://i0.hdslb.com/bfs/emote/96940d16602cacbbac796245b7bb99fa9b5c970c.png", + "answer_guide_ios_url": "https://www.bilibili.com/h5/newbie/entry?navhide=1&re_src=12", + "answer_guide_android_url": "https://www.bilibili.com/h5/newbie/entry?navhide=1&re_src=6", + "show_type": 1, + "show_text": "", + "disable_jump_emote": false + } + } +} +``` + +
+ +## 获取评论区明细_懒加载 + +> https://api.bilibili.com/x/v2/reply/main + +*请求方式:GET* + +认证方式:Cookie(SESSDATA)或APP + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ---------- | ---- | -------------- | ------------ | ------------------------------------------------------------ | +| access_key | str | APP 登录 Token | APP 方式必要 | | +| type | num | 评论区类型代码 | 必要 | [类型代码见表](readme.md#评论区类型代码) | +| oid | num | 目标评论区 id | 必要 | | +| mode | num | 排序方式 | 非必要 | 默认为 3
0 3:仅按热度
1:按热度+按时间
2:仅按时间 | +| next | num | 评论页选择 | 非必要 | 按热度时:热度顺序页码(0 为第一页)
按时间时:时间倒序楼层号
默认为 0 | +| ps | num | 每页项数 | 非必要 | 默认为 20
定义域:1-30 | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ----------------------------- | -------- | ------------------------------------------------------------ | +| code | num | 返回值 | 0:成功
-400:请求错误
-404:无此项
12002:评论区已关闭
12009:评论主体的type不合法 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | 正确时:obj
错误时:null | 数据本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------------ | -------------------------------- | -------- | ---------------- | +| cursor | obj | 游标信息 | | +| hots | 禁用时:null
正常时:array | 热评列表 | | +| notice | 无效时:null
有效时:obj | 评论区公告信息 | | +| replies | 禁用时:null
正常时:array | 评论列表 | | +| top | obj | 置顶信息 | | +| top_replies | obj | 置顶评论 | [对象定义见表](readme.md#评论条目对象) | +| lottery_card | null | 抽奖评论 | | +| folder | obj | 评论折叠信息 | | +| up_selection | obj | (?) | | +| cm | obj | 广告 | | +| cm_info | obj | 广告控制 | | +| effects | obj | (?) | | +| assist | num | (?) | | +| blacklist | num | (?) | | +| vote | num | (?) | | +| lottery | num | (?) | | +| config | obj | 评论区显示控制 | | +| upper | obj | UP主信息 | | +| show_bvid | bool | 显示 bvid? | | +| control | obj | 评论区输入属性 | | + +`data`中的`cursor`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------------ | ----- | -------------- | ----------------------- | +| all_count | num | 全部评论条数 | | +| is_begin | bool | 是否为第一页 | false:否
true:是 | +| prev | num | 上页页码 | | +| next | num | 下页页码 | | +| is_end | bool | 是否为最后页 | false:否
true:是 | +| mode | num | 排序方式 | | +| show_type | num | (?) | | +| support_mode | array | 支持的排序方式 | | +| name | str | 评论区类型名 | | + +`data`中的`config`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------------ | ---- | ------------------------- | ---- | +| showadmin | num | 是否显示管理置顶 | | +| showentry | num | ? | | +| showfloor | num | 是否显示楼层号 | | +| showtopic | num | 是否显示话题 | | +| show_up_flag | bool | 是否显示“UP 觉得很赞”标志 | | +| read_only | bool | 是否只读评论区 | | +| show_del_log | bool | 是否显示删除记录 | | + +`data`中的`hots`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | -------------- | -------------------------------------- | +| 0 | obj | 热评条目 1 | [对象定义见表](readme.md#评论条目对象) | +| n | obj | 热评条目 (n+1) | 按照热评热度排列 | +| …… | obj | …… | …… | + +`data`中的`replies`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | -------------- | -------------------------------------- | +| 0 | obj | 评论条目 1 | [对象定义见表](readme.md#评论条目对象) | +| n | obj | 评论条目 (n+1) | 按照指定的顺序排列 | +| …… | obj | …… | …… | + +`data`中的`top`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----- | ----------------------------- | -------------- | -------------------------------------- | +| admin | 有效时:obj
无效时:null | 管理员置顶条目 | [对象定义见表](readme.md#评论条目对象) | +| upper | 有效时:obj
无效时:null | UP 主置顶条目 | [对象定义见表](readme.md#评论条目对象) | +| vote | 有效时:obj
无效时:null | 投票置顶条目 | [对象定义见表](readme.md#评论条目对象) | + +`data`中的`upper`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | --------- | ---- | +| mid | num | UP 主 mid | | + +`data`中的`notice`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | ---------------- | ---- | +| content | str | 公告正文 | | +| id | num | 公告 id | | +| link | str | 公告页面链接 url | | +| title | str | 公告标题 | | + +`data`中的`folder`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---------- | ---- | ---------------------- | ---- | +| has_folded | bool | 评论区是否存在折叠评论 | | +| is_folded | bool | 是否折叠? | | +| rule | str | 相关规则页面 url | | + +`data`中的`control`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------------------------ | ---- | ------------------ | ----------------------------------- | +| input_disable | bool | (?) | | +| root_input_text | str | 评论框文字 | | +| child_input_text | str | 评论框文字 | | +| bg_text | str | 空评论区文字 | | +| web_selection | bool | 评论是否筛选后可见 | false:无需筛选
true:需要筛选 | +| answer_guide_text | str | 答题页面链接文字 | | +| answer_guide_icon_url | str | 答题页面图标 url | | +| answer_guide_ios_url | str | 答题页面 ios url | | +| answer_guide_android_url | str | 答题页面安卓 url | | + +**示例:** + +获取视频`av2`的评论区明细,按照热度排序,每页5项,查看第1页 + +```shell +curl -G 'https://api.bilibili.com/x/v2/reply/main' \ +--data-urlencode 'type=1' \ +--data-urlencode 'oid=2' \ +--data-urlencode 'mode=3' \ +--data-urlencode 'next=0' \ +--data-urlencode 'ps=5' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "cursor": { + "all_count": 76793, + "is_begin": true, + "prev": 1, + "next": 2, + "is_end": false, + "mode": 3, + "show_type": 1, + "support_mode": [ + 1, + 2, + 3 + ], + "name": "热门评论" + }, + "hots": null, + "notice": null, + "replies": [ + { + "rpid": 476670, + "oid": 2, + "type": 1, + "mid": 58426, + "root": 0, + "parent": 0, + "dialog": 0, + "count": 2733, + "rcount": 2608, + "state": 0, + "fansgrade": 0, + "attr": 0, + "ctime": 1291350931, + "rpid_str": "476670", + "root_str": "0", + "parent_str": "0", + "like": 90419, + "action": 0, + "member": { + "mid": "58426", + "uname": "残星什么的就是残星", + "sex": "男", + "sign": "少说话多做事 _微博@残星", + "avatar": "http://i1.hdslb.com/bfs/face/56ac36b37662e3746228f30eb4acf2cd332b66a5.jpg", + "rank": "20000", + "DisplayRank": "0", + "face_nft_new": 0, + "is_senior_member": 0, + "level_info": { + "current_level": 6, + "current_min": 0, + "current_exp": 0, + "next_exp": 0 + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "", + "image_enhance_frame": "" + }, + "nameplate": { + "nid": 30, + "name": "字幕君", + "image": "http://i1.hdslb.com/bfs/face/383c3fed3dc162c93a8d616a272693f6650e98f1.png", + "image_small": "http://i2.hdslb.com/bfs/face/7ad18084e40b725210e22696e0efdae408cd378c.png", + "level": "稀有勋章", + "condition": "弹幕大赛获得" + }, + "official_verify": { + "type": -1, + "desc": "" + }, + "vip": { + "vipType": 2, + "vipDueDate": 1710777600000, + "dueRemark": "", + "accessStatus": 0, + "vipStatus": 1, + "vipStatusWarn": "", + "themeType": 0, + "label": { + "path": "", + "text": "年度大会员", + "label_theme": "annual_vip", + "text_color": "#FFFFFF", + "bg_style": 1, + "bg_color": "#FB7299", + "border_color": "" + }, + "avatar_subscript": 1, + "avatar_subscript_url": "http://i0.hdslb.com/bfs/vip/icon_Certification_big_member_22_3x.png", + "nickname_color": "#FB7299" + }, + "fans_detail": null, + "following": 0, + "is_followed": 0, + "user_sailing": { + "pendant": null, + "cardbg": null, + "cardbg_with_focus": null + }, + "is_contractor": false, + "contract_desc": "" + }, + "content": { + "message": "貌似没人来", + "plat": 0, + "device": "", + "members": [], + "jump_url": {}, + "max_line": 6 + }, + "replies": [ + { + "rpid": 214198733, + "oid": 2, + "type": 1, + "mid": 18370638, + "root": 476670, + "parent": 476670, + "dialog": 214198733, + "count": 0, + "rcount": 0, + "state": 0, + "fansgrade": 0, + "attr": 0, + "ctime": 1488888369, + "rpid_str": "214198733", + "root_str": "476670", + "parent_str": "476670", + "like": 1958, + "action": 0, + "member": { + "mid": "18370638", + "uname": "初音ハク", + "sex": "保密", + "sign": "我是艾尔的利刃", + "avatar": "http://i0.hdslb.com/bfs/face/71b838cc7c69dc16e0ad49fa4e6f84a2fe2eaadb.jpg", + "rank": "10000", + "DisplayRank": "0", + "face_nft_new": 0, + "is_senior_member": 0, + "level_info": { + "current_level": 5, + "current_min": 0, + "current_exp": 0, + "next_exp": 0 + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "", + "image_enhance_frame": "" + }, + "nameplate": { + "nid": 74, + "name": "大会员2018年度勋章", + "image": "http://i0.hdslb.com/bfs/face/421179426c929dfeaed4117461c83f5d07ffb148.png", + "image_small": "http://i2.hdslb.com/bfs/face/682001c2e1c2ae887bdf2a0e18eef61180c48f84.png", + "level": "稀有勋章", + "condition": "2018.6.26-7.8某一天是年度大会员" + }, + "official_verify": { + "type": -1, + "desc": "" + }, + "vip": { + "vipType": 2, + "vipDueDate": 1654790400000, + "dueRemark": "", + "accessStatus": 0, + "vipStatus": 1, + "vipStatusWarn": "", + "themeType": 0, + "label": { + "path": "", + "text": "年度大会员", + "label_theme": "annual_vip", + "text_color": "#FFFFFF", + "bg_style": 1, + "bg_color": "#FB7299", + "border_color": "" + }, + "avatar_subscript": 1, + "avatar_subscript_url": "http://i0.hdslb.com/bfs/vip/icon_Certification_big_member_22_3x.png", + "nickname_color": "#FB7299" + }, + "fans_detail": null, + "following": 0, + "is_followed": 0, + "user_sailing": { + "pendant": null, + "cardbg": null, + "cardbg_with_focus": null + }, + "is_contractor": false, + "contract_desc": "" + }, + "content": { + "message": "划了4千多条评论找到的啊ε=ε=(ノ≧∇≦)ノ", + "plat": 0, + "device": "", + "members": [], + "jump_url": {}, + "max_line": 999 + }, + "replies": null, + "assist": 0, + "folder": { + "has_folded": false, + "is_folded": false, + "rule": "" + }, + "up_action": { + "like": false, + "reply": false + }, + "show_follow": false, + "invisible": false, + "reply_control": { + "time_desc": "1821天前发布" + } + }, + { + "rpid": 568785293, + "oid": 2, + "type": 1, + "mid": 52987877, + "root": 476670, + "parent": 476670, + "dialog": 568785293, + "count": 0, + "rcount": 0, + "state": 0, + "fansgrade": 0, + "attr": 0, + "ctime": 1514903586, + "rpid_str": "568785293", + "root_str": "476670", + "parent_str": "476670", + "like": 6534, + "action": 0, + "member": { + "mid": "52987877", + "uname": "Mr-Shadow", + "sex": "男", + "sign": "重灾区话题回避", + "avatar": "http://i2.hdslb.com/bfs/face/dc679f8221b27e2056c1ad018d168402d80d98d5.jpg", + "rank": "10000", + "DisplayRank": "0", + "face_nft_new": 0, + "is_senior_member": 0, + "level_info": { + "current_level": 6, + "current_min": 0, + "current_exp": 0, + "next_exp": 0 + }, + "pendant": { + "pid": 2511, + "name": "初音未来13周年", + "image": "http://i2.hdslb.com/bfs/garb/item/4f8f3f1f2d47f0dad84f66aa57acd4409ea46361.png", + "expire": 0, + "image_enhance": "http://i2.hdslb.com/bfs/garb/item/fe0b83b53e2342b16646f6e7a9370d8a867decdb.webp", + "image_enhance_frame": "http://i2.hdslb.com/bfs/garb/item/127c507ec8448be30cf5f79500ecc6ef2fd32f2c.png" + }, + "nameplate": { + "nid": 61, + "name": "有爱楷模", + "image": "http://i2.hdslb.com/bfs/face/5a90f715451325c642a6ac39e01195cb6d075734.png", + "image_small": "http://i0.hdslb.com/bfs/face/5bfc1b4fb3f4b411495dddb0b2127ad80f6fbcac.png", + "level": "普通勋章", + "condition": "当前持有粉丝勋章最高等级>=10级" + }, + "official_verify": { + "type": -1, + "desc": "" + }, + "vip": { + "vipType": 2, + "vipDueDate": 1666281600000, + "dueRemark": "", + "accessStatus": 0, + "vipStatus": 1, + "vipStatusWarn": "", + "themeType": 0, + "label": { + "path": "", + "text": "年度大会员", + "label_theme": "annual_vip", + "text_color": "#FFFFFF", + "bg_style": 1, + "bg_color": "#FB7299", + "border_color": "" + }, + "avatar_subscript": 1, + "avatar_subscript_url": "http://i0.hdslb.com/bfs/vip/icon_Certification_big_member_22_3x.png", + "nickname_color": "#FB7299" + }, + "fans_detail": null, + "following": 0, + "is_followed": 0, + "user_sailing": { + "pendant": { + "id": 2511, + "name": "初音未来13周年", + "image": "http://i0.hdslb.com/bfs/garb/item/4f8f3f1f2d47f0dad84f66aa57acd4409ea46361.png", + "jump_url": "", + "type": "suit", + "image_enhance": "http://i0.hdslb.com/bfs/garb/item/fe0b83b53e2342b16646f6e7a9370d8a867decdb.webp", + "image_enhance_frame": "http://i0.hdslb.com/bfs/garb/item/127c507ec8448be30cf5f79500ecc6ef2fd32f2c.png" + }, + "cardbg": { + "id": 2528, + "name": "初音未来13周年", + "image": "http://i0.hdslb.com/bfs/garb/item/7dbd22f700e0a7fe0c0d0da7b1a54241626bf1cd.png", + "jump_url": "https://www.bilibili.com/h5/mall/fans/recommend/2554?navhide=1&mid=52987877&from=reply", + "fan": { + "is_fan": 1, + "number": 94388, + "color": "#07b6d5", + "name": "初音未来周年纪念", + "num_desc": "094388" + }, + "type": "suit" + }, + "cardbg_with_focus": null + }, + "is_contractor": false, + "contract_desc": "" + }, + "content": { + "message": "你可能抢到了整个b站最难抢到的沙发(`・ω・´)", + "plat": 0, + "device": "", + "members": [], + "jump_url": {}, + "max_line": 999 + }, + "replies": null, + "assist": 0, + "folder": { + "has_folded": false, + "is_folded": false, + "rule": "" + }, + "up_action": { + "like": false, + "reply": false + }, + "show_follow": false, + "invisible": false, + "reply_control": { + "time_desc": "1520天前发布" + } + }, + { + "rpid": 2237449754, + "oid": 2, + "type": 1, + "mid": 400121455, + "root": 476670, + "parent": 568785293, + "dialog": 568785293, + "count": 0, + "rcount": 0, + "state": 0, + "fansgrade": 0, + "attr": 0, + "ctime": 1578311878, + "rpid_str": "2237449754", + "root_str": "476670", + "parent_str": "568785293", + "like": 194, + "action": 0, + "member": { + "mid": "400121455", + "uname": "TxAY丶", + "sex": "保密", + "sign": "6月后有空做视频 | 星火工作室后期、CM拜年祭制作成员", + "avatar": "http://i1.hdslb.com/bfs/face/ce011d50196afd8fedc45240f6aebab061aee524.jpg", + "rank": "10000", + "DisplayRank": "0", + "face_nft_new": 0, + "is_senior_member": 0, + "level_info": { + "current_level": 5, + "current_min": 0, + "current_exp": 0, + "next_exp": 0 + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "", + "image_enhance_frame": "" + }, + "nameplate": { + "nid": 4, + "name": "青铜殿堂", + "image": "http://i2.hdslb.com/bfs/face/2879cd5fb8518f7c6da75887994c1b2a7fe670bd.png", + "image_small": "http://i1.hdslb.com/bfs/face/6707c120e00a3445933308fd9b7bd9fad99e9ec4.png", + "level": "普通勋章", + "condition": "单个自制视频总播放数>=1万" + }, + "official_verify": { + "type": -1, + "desc": "" + }, + "vip": { + "vipType": 1, + "vipDueDate": 1626364800000, + "dueRemark": "", + "accessStatus": 0, + "vipStatus": 0, + "vipStatusWarn": "", + "themeType": 0, + "label": { + "path": "", + "text": "", + "label_theme": "", + "text_color": "", + "bg_style": 0, + "bg_color": "", + "border_color": "" + }, + "avatar_subscript": 0, + "nickname_color": "" + }, + "fans_detail": null, + "following": 0, + "is_followed": 0, + "user_sailing": { + "pendant": null, + "cardbg": null, + "cardbg_with_focus": null + }, + "is_contractor": false, + "contract_desc": "" + }, + "content": { + "message": "回复 @Mr-Shadow :你可能抢到了整个b站最难抢到的热评的热评", + "plat": 0, + "device": "", + "members": [], + "jump_url": {}, + "max_line": 999 + }, + "replies": null, + "assist": 0, + "folder": { + "has_folded": false, + "is_folded": false, + "rule": "" + }, + "up_action": { + "like": false, + "reply": false + }, + "show_follow": false, + "invisible": false, + "reply_control": { + "time_desc": "786天前发布" + } + } + ], + "assist": 0, + "folder": { + "has_folded": false, + "is_folded": false, + "rule": "https://www.bilibili.com/blackboard/foldingreply.html" + }, + "up_action": { + "like": false, + "reply": false + }, + "show_follow": true, + "invisible": false, + "reply_control": { + "sub_reply_entry_text": "共2608条回复", + "sub_reply_title_text": "相关回复共2608条", + "time_desc": "4107天前发布" + } + }, + { + "rpid": 917945205, + "oid": 2, + "type": 1, + "mid": 34762090, + "root": 0, + "parent": 0, + "dialog": 0, + "count": 461, + "rcount": 365, + "state": 0, + "fansgrade": 1, + "attr": 0, + "ctime": 1532071373, + "rpid_str": "917945205", + "root_str": "0", + "parent_str": "0", + "like": 29793, + "action": 0, + "member": { + "mid": "34762090", + "uname": "某不科学的瓜皮", + "sex": "男", + "sign": "持杯拱天,谓无言,静沉眠", + "avatar": "http://i1.hdslb.com/bfs/face/cc61140c64409a3f5793207f3c866555e8638ab5.jpg", + "rank": "10000", + "DisplayRank": "0", + "face_nft_new": 0, + "is_senior_member": 0, + "level_info": { + "current_level": 5, + "current_min": 0, + "current_exp": 0, + "next_exp": 0 + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "", + "image_enhance_frame": "" + }, + "nameplate": { + "nid": 4, + "name": "青铜殿堂", + "image": "http://i0.hdslb.com/bfs/face/2879cd5fb8518f7c6da75887994c1b2a7fe670bd.png", + "image_small": "http://i2.hdslb.com/bfs/face/6707c120e00a3445933308fd9b7bd9fad99e9ec4.png", + "level": "普通勋章", + "condition": "单个自制视频总播放数>=1万" + }, + "official_verify": { + "type": -1, + "desc": "" + }, + "vip": { + "vipType": 1, + "vipDueDate": 1631980800000, + "dueRemark": "", + "accessStatus": 0, + "vipStatus": 0, + "vipStatusWarn": "", + "themeType": 0, + "label": { + "path": "", + "text": "", + "label_theme": "", + "text_color": "", + "bg_style": 0, + "bg_color": "", + "border_color": "" + }, + "avatar_subscript": 0, + "nickname_color": "" + }, + "fans_detail": { + "uid": 34762090, + "medal_id": 29058, + "medal_name": "逸国", + "score": 0, + "level": 1, + "intimacy": 0, + "master_status": 1, + "is_receive": 1, + "medal_color": 643602062, + "medal_color_end": 643602062, + "medal_color_border": 4284257934, + "medal_color_name": 4284257934, + "medal_color_level": 4284257934, + "guard_level": 0 + }, + "following": 0, + "is_followed": 0, + "user_sailing": { + "pendant": null, + "cardbg": null, + "cardbg_with_focus": null + }, + "is_contractor": false, + "contract_desc": "" + }, + "content": { + "message": "7.20日,站长被封7天\n\n历史性留名[2233娘_卖萌]", + "plat": 0, + "device": "", + "members": [], + "emote": { + "[2233娘_卖萌]": { + "id": 140, + "package_id": 6, + "state": 0, + "type": 2, + "attr": 0, + "text": "[2233娘_卖萌]", + "url": "http://i0.hdslb.com/bfs/emote/ea893aa25355de95ab4f03c2dad3f0c58d0c159e.png", + "meta": { + "size": 2 + }, + "mtime": 1626664892, + "jump_title": "卖萌" + } + }, + "jump_url": {}, + "max_line": 6 + }, + "replies": [ + { + "rpid": 1781253749, + "oid": 2, + "type": 1, + "mid": 34762090, + "root": 917945205, + "parent": 917945205, + "dialog": 1781253749, + "count": 0, + "rcount": 0, + "state": 0, + "fansgrade": 1, + "attr": 0, + "ctime": 1563598609, + "rpid_str": "1781253749", + "root_str": "917945205", + "parent_str": "917945205", + "like": 1224, + "action": 0, + "member": { + "mid": "34762090", + "uname": "某不科学的瓜皮", + "sex": "男", + "sign": "持杯拱天,谓无言,静沉眠", + "avatar": "http://i1.hdslb.com/bfs/face/cc61140c64409a3f5793207f3c866555e8638ab5.jpg", + "rank": "10000", + "DisplayRank": "0", + "face_nft_new": 0, + "is_senior_member": 0, + "level_info": { + "current_level": 5, + "current_min": 0, + "current_exp": 0, + "next_exp": 0 + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "", + "image_enhance_frame": "" + }, + "nameplate": { + "nid": 4, + "name": "青铜殿堂", + "image": "http://i0.hdslb.com/bfs/face/2879cd5fb8518f7c6da75887994c1b2a7fe670bd.png", + "image_small": "http://i2.hdslb.com/bfs/face/6707c120e00a3445933308fd9b7bd9fad99e9ec4.png", + "level": "普通勋章", + "condition": "单个自制视频总播放数>=1万" + }, + "official_verify": { + "type": -1, + "desc": "" + }, + "vip": { + "vipType": 1, + "vipDueDate": 1631980800000, + "dueRemark": "", + "accessStatus": 0, + "vipStatus": 0, + "vipStatusWarn": "", + "themeType": 0, + "label": { + "path": "", + "text": "", + "label_theme": "", + "text_color": "", + "bg_style": 0, + "bg_color": "", + "border_color": "" + }, + "avatar_subscript": 0, + "nickname_color": "" + }, + "fans_detail": { + "uid": 34762090, + "medal_id": 29058, + "medal_name": "逸国", + "score": 0, + "level": 1, + "intimacy": 0, + "master_status": 1, + "is_receive": 1, + "medal_color": 643602062, + "medal_color_end": 643602062, + "medal_color_border": 4284257934, + "medal_color_name": 4284257934, + "medal_color_level": 4284257934, + "guard_level": 0 + }, + "following": 0, + "is_followed": 0, + "user_sailing": { + "pendant": null, + "cardbg": null, + "cardbg_with_focus": null + }, + "is_contractor": false, + "contract_desc": "" + }, + "content": { + "message": "站长被封一周年 [小电视_笑]", + "plat": 0, + "device": "", + "members": [], + "emote": { + "[小电视_笑]": { + "id": 121, + "package_id": 5, + "state": 0, + "type": 2, + "attr": 0, + "text": "[小电视_笑]", + "url": "http://i0.hdslb.com/bfs/emote/f80d384875183dfe2e24be13011c595c0210d273.png", + "meta": { + "size": 2 + }, + "mtime": 1628587688, + "jump_title": "笑" + } + }, + "jump_url": {}, + "max_line": 999 + }, + "replies": null, + "assist": 0, + "folder": { + "has_folded": false, + "is_folded": false, + "rule": "" + }, + "up_action": { + "like": false, + "reply": false + }, + "show_follow": false, + "invisible": false, + "reply_control": { + "time_desc": "956天前发布" + } + }, + { + "rpid": 1781556726, + "oid": 2, + "type": 1, + "mid": 417437969, + "root": 917945205, + "parent": 1781253749, + "dialog": 1781253749, + "count": 0, + "rcount": 0, + "state": 0, + "fansgrade": 0, + "attr": 0, + "ctime": 1563605321, + "rpid_str": "1781556726", + "root_str": "917945205", + "parent_str": "1781253749", + "like": 372, + "action": 0, + "member": { + "mid": "417437969", + "uname": "理查奈德", + "sex": "男", + "sign": "欲雷普琪露诺的各种小圈子小鬼", + "avatar": "http://i2.hdslb.com/bfs/face/6923f6414503413f292a1cfad13ac483683a77d6.jpg", + "rank": "10000", + "DisplayRank": "0", + "face_nft_new": 0, + "is_senior_member": 0, + "level_info": { + "current_level": 5, + "current_min": 0, + "current_exp": 0, + "next_exp": 0 + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "", + "image_enhance_frame": "" + }, + "nameplate": { + "nid": 0, + "name": "", + "image": "", + "image_small": "", + "level": "", + "condition": "" + }, + "official_verify": { + "type": -1, + "desc": "" + }, + "vip": { + "vipType": 0, + "vipDueDate": 0, + "dueRemark": "", + "accessStatus": 0, + "vipStatus": 0, + "vipStatusWarn": "", + "themeType": 0, + "label": { + "path": "", + "text": "", + "label_theme": "", + "text_color": "", + "bg_style": 0, + "bg_color": "", + "border_color": "" + }, + "avatar_subscript": 0, + "nickname_color": "" + }, + "fans_detail": null, + "following": 0, + "is_followed": 0, + "user_sailing": { + "pendant": null, + "cardbg": null, + "cardbg_with_focus": null + }, + "is_contractor": false, + "contract_desc": "" + }, + "content": { + "message": "回复 @某不科学的瓜皮 :这是件值得庆祝的日子啊(滑稽保命)[滑稽]", + "plat": 0, + "device": "", + "members": [], + "emote": { + "[滑稽]": { + "id": 27, + "package_id": 1, + "state": 0, + "type": 1, + "attr": 0, + "text": "[滑稽]", + "url": "http://i0.hdslb.com/bfs/emote/d15121545a99ac46774f1f4465b895fe2d1411c3.png", + "meta": { + "size": 1 + }, + "mtime": 1645206695, + "jump_title": "滑稽" + } + }, + "jump_url": {}, + "max_line": 999 + }, + "replies": null, + "assist": 0, + "folder": { + "has_folded": false, + "is_folded": false, + "rule": "" + }, + "up_action": { + "like": false, + "reply": false + }, + "show_follow": false, + "invisible": false, + "reply_control": { + "time_desc": "956天前发布" + } + }, + { + "rpid": 2254034005, + "oid": 2, + "type": 1, + "mid": 435781129, + "root": 917945205, + "parent": 917945205, + "dialog": 2254034005, + "count": 0, + "rcount": 0, + "state": 0, + "fansgrade": 0, + "attr": 0, + "ctime": 1578829367, + "rpid_str": "2254034005", + "root_str": "917945205", + "parent_str": "917945205", + "like": 137, + "action": 0, + "member": { + "mid": "435781129", + "uname": "yourmumdie", + "sex": "保密", + "sign": "签名不能留八个字", + "avatar": "http://i1.hdslb.com/bfs/face/77489a807c616304cef9ac446b8bed2528de4e25.jpg", + "rank": "10000", + "DisplayRank": "0", + "face_nft_new": 0, + "is_senior_member": 0, + "level_info": { + "current_level": 5, + "current_min": 0, + "current_exp": 0, + "next_exp": 0 + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "", + "image_enhance_frame": "" + }, + "nameplate": { + "nid": 0, + "name": "", + "image": "", + "image_small": "", + "level": "", + "condition": "" + }, + "official_verify": { + "type": -1, + "desc": "" + }, + "vip": { + "vipType": 1, + "vipDueDate": 1644249600000, + "dueRemark": "", + "accessStatus": 0, + "vipStatus": 0, + "vipStatusWarn": "", + "themeType": 0, + "label": { + "path": "", + "text": "", + "label_theme": "", + "text_color": "", + "bg_style": 0, + "bg_color": "", + "border_color": "" + }, + "avatar_subscript": 0, + "nickname_color": "" + }, + "fans_detail": null, + "following": 0, + "is_followed": 0, + "user_sailing": { + "pendant": null, + "cardbg": null, + "cardbg_with_focus": null + }, + "is_contractor": false, + "contract_desc": "" + }, + "content": { + "message": "av7", + "plat": 0, + "device": "", + "members": [], + "jump_url": { + "av7": { + "title": "2012地球便当之日宣传片", + "state": 0, + "prefix_icon": "https://i0.hdslb.com/bfs/activity-plat/static/20201110/4c8b2dbaded282e67c9a31daa4297c3c/AeQJlYP7e.png", + "app_url_schema": "", + "app_name": "", + "app_package_name": "", + "click_report": "7", + "is_half_screen": false, + "exposure_report": "" + } + }, + "max_line": 999 + }, + "replies": null, + "assist": 0, + "folder": { + "has_folded": false, + "is_folded": false, + "rule": "" + }, + "up_action": { + "like": false, + "reply": false + }, + "show_follow": false, + "invisible": false, + "reply_control": { + "time_desc": "780天前发布" + } + } + ], + "assist": 0, + "folder": { + "has_folded": false, + "is_folded": false, + "rule": "https://www.bilibili.com/blackboard/foldingreply.html" + }, + "up_action": { + "like": false, + "reply": false + }, + "show_follow": true, + "invisible": false, + "reply_control": { + "sub_reply_entry_text": "共365条回复", + "sub_reply_title_text": "相关回复共365条", + "time_desc": "1321天前发布" + } + }, + { + "rpid": 2576184175, + "oid": 2, + "type": 1, + "mid": 24512285, + "root": 0, + "parent": 0, + "dialog": 0, + "count": 1066, + "rcount": 1000, + "state": 0, + "fansgrade": 0, + "attr": 0, + "ctime": 1584945297, + "rpid_str": "2576184175", + "root_str": "0", + "parent_str": "0", + "like": 44307, + "action": 0, + "member": { + "mid": "24512285", + "uname": "艾斯黛斯T", + "sex": "男", + "sign": "飞飞飞", + "avatar": "http://i2.hdslb.com/bfs/face/e2176a16d749fdb720d4181309d4075c91db7952.jpg", + "rank": "10000", + "DisplayRank": "0", + "face_nft_new": 0, + "is_senior_member": 0, + "level_info": { + "current_level": 6, + "current_min": 0, + "current_exp": 0, + "next_exp": 0 + }, + "pendant": { + "pid": 4104, + "name": "良辰美景·不问天", + "image": "http://i2.hdslb.com/bfs/garb/item/4dbf08aae75f9479a21db2bb289229b8d71631e1.png", + "expire": 0, + "image_enhance": "http://i2.hdslb.com/bfs/garb/item/253bf41272ddef301c1f6a0361abd49d772bfafc.webp", + "image_enhance_frame": "http://i2.hdslb.com/bfs/garb/item/c4934a1ffdb3865fe79b319de439af3973b53ec9.png" + }, + "nameplate": { + "nid": 58, + "name": "收集达人", + "image": "http://i0.hdslb.com/bfs/face/3f5539e1486303422ffc8595862ccb6606e0b745.png", + "image_small": "http://i0.hdslb.com/bfs/face/cf85e7908095d256e595ec9759f4e7795f23bc22.png", + "level": "普通勋章", + "condition": "同时拥有粉丝勋章>=15个" + }, + "official_verify": { + "type": -1, + "desc": "" + }, + "vip": { + "vipType": 2, + "vipDueDate": 1646236800000, + "dueRemark": "", + "accessStatus": 0, + "vipStatus": 1, + "vipStatusWarn": "", + "themeType": 0, + "label": { + "path": "", + "text": "年度大会员", + "label_theme": "annual_vip", + "text_color": "#FFFFFF", + "bg_style": 1, + "bg_color": "#FB7299", + "border_color": "" + }, + "avatar_subscript": 1, + "avatar_subscript_url": "http://i0.hdslb.com/bfs/vip/icon_Certification_big_member_22_3x.png", + "nickname_color": "#FB7299" + }, + "fans_detail": null, + "following": 0, + "is_followed": 0, + "user_sailing": { + "pendant": { + "id": 4104, + "name": "良辰美景·不问天", + "image": "http://i0.hdslb.com/bfs/garb/item/4dbf08aae75f9479a21db2bb289229b8d71631e1.png", + "jump_url": "", + "type": "suit", + "image_enhance": "http://i0.hdslb.com/bfs/garb/item/253bf41272ddef301c1f6a0361abd49d772bfafc.webp", + "image_enhance_frame": "http://i0.hdslb.com/bfs/garb/item/c4934a1ffdb3865fe79b319de439af3973b53ec9.png" + }, + "cardbg": { + "id": 4123, + "name": "良辰美景·不问天", + "image": "http://i0.hdslb.com/bfs/garb/item/f251c507a2b09605d414c9107ffe2073bbf65735.png", + "jump_url": "https://www.bilibili.com/h5/mall/fans/recommend/4019?navhide=1&mid=24512285&from=reply", + "fan": { + "is_fan": 1, + "number": 70746, + "color": "#fe7491", + "name": "良辰美景·不问天", + "num_desc": "070746" + }, + "type": "suit" + }, + "cardbg_with_focus": null + }, + "is_contractor": false, + "contract_desc": "" + }, + "content": { + "message": "人类最古のav号(挂了的不算)也变成bv了[大哭][大哭][大哭]青春结束了", + "plat": 0, + "device": "", + "members": [], + "emote": { + "[大哭]": { + "id": 5, + "package_id": 1, + "state": 0, + "type": 1, + "attr": 0, + "text": "[大哭]", + "url": "http://i0.hdslb.com/bfs/emote/2caafee2e5db4db72104650d87810cc2c123fc86.png", + "meta": { + "size": 1 + }, + "mtime": 1597738918, + "jump_title": "大哭" + } + }, + "jump_url": {}, + "max_line": 6 + }, + "replies": [ + { + "rpid": 2578082161, + "oid": 2, + "type": 1, + "mid": 407225717, + "root": 2576184175, + "parent": 2576184175, + "dialog": 2578082161, + "count": 0, + "rcount": 0, + "state": 0, + "fansgrade": 0, + "attr": 0, + "ctime": 1584964926, + "rpid_str": "2578082161", + "root_str": "2576184175", + "parent_str": "2576184175", + "like": 2030, + "action": 0, + "member": { + "mid": "407225717", + "uname": "白月魁单推人", + "sex": "保密", + "sign": "", + "avatar": "http://i2.hdslb.com/bfs/face/57899fca9856acfb2f92fdabf00e655a74aeae67.jpg", + "rank": "10000", + "DisplayRank": "0", + "face_nft_new": 0, + "is_senior_member": 0, + "level_info": { + "current_level": 5, + "current_min": 0, + "current_exp": 0, + "next_exp": 0 + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "", + "image_enhance_frame": "" + }, + "nameplate": { + "nid": 0, + "name": "", + "image": "", + "image_small": "", + "level": "", + "condition": "" + }, + "official_verify": { + "type": -1, + "desc": "" + }, + "vip": { + "vipType": 1, + "vipDueDate": 1626364800000, + "dueRemark": "", + "accessStatus": 0, + "vipStatus": 0, + "vipStatusWarn": "", + "themeType": 0, + "label": { + "path": "", + "text": "", + "label_theme": "", + "text_color": "", + "bg_style": 0, + "bg_color": "", + "border_color": "" + }, + "avatar_subscript": 0, + "nickname_color": "" + }, + "fans_detail": null, + "following": 0, + "is_followed": 0, + "user_sailing": { + "pendant": null, + "cardbg": null, + "cardbg_with_focus": null + }, + "is_contractor": false, + "contract_desc": "" + }, + "content": { + "message": "先留个名,估计以后av会被当成冷知识放出来[大哭]", + "plat": 0, + "device": "", + "members": [], + "emote": { + "[大哭]": { + "id": 5, + "package_id": 1, + "state": 0, + "type": 1, + "attr": 0, + "text": "[大哭]", + "url": "http://i0.hdslb.com/bfs/emote/2caafee2e5db4db72104650d87810cc2c123fc86.png", + "meta": { + "size": 1 + }, + "mtime": 1597738918, + "jump_title": "大哭" + } + }, + "jump_url": {}, + "max_line": 999 + }, + "replies": null, + "assist": 0, + "folder": { + "has_folded": false, + "is_folded": false, + "rule": "" + }, + "up_action": { + "like": false, + "reply": false + }, + "show_follow": false, + "invisible": false, + "reply_control": { + "time_desc": "709天前发布" + } + }, + { + "rpid": 2579961512, + "oid": 2, + "type": 1, + "mid": 329965337, + "root": 2576184175, + "parent": 2576184175, + "dialog": 2579961512, + "count": 0, + "rcount": 0, + "state": 0, + "fansgrade": 0, + "attr": 0, + "ctime": 1584982846, + "rpid_str": "2579961512", + "root_str": "2576184175", + "parent_str": "2576184175", + "like": 248, + "action": 0, + "member": { + "mid": "329965337", + "uname": "积极发言的刘同学", + "sex": "男", + "sign": "Hi这里是刘同学,一个业余的校园摄影及公路自行车骑手,同时也是在校高中生(有时穿穿dk)", + "avatar": "http://i2.hdslb.com/bfs/face/3b586d7dbe8c2dba32b213e0a474fe6d86921b85.jpg", + "rank": "10000", + "DisplayRank": "0", + "face_nft_new": 0, + "is_senior_member": 0, + "level_info": { + "current_level": 5, + "current_min": 0, + "current_exp": 0, + "next_exp": 0 + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "", + "image_enhance_frame": "" + }, + "nameplate": { + "nid": 0, + "name": "", + "image": "", + "image_small": "", + "level": "", + "condition": "" + }, + "official_verify": { + "type": -1, + "desc": "" + }, + "vip": { + "vipType": 1, + "vipDueDate": 1585324800000, + "dueRemark": "", + "accessStatus": 0, + "vipStatus": 0, + "vipStatusWarn": "", + "themeType": 0, + "label": { + "path": "", + "text": "", + "label_theme": "", + "text_color": "", + "bg_style": 0, + "bg_color": "", + "border_color": "" + }, + "avatar_subscript": 0, + "nickname_color": "" + }, + "fans_detail": null, + "following": 0, + "is_followed": 0, + "user_sailing": { + "pendant": null, + "cardbg": null, + "cardbg_with_focus": null + }, + "is_contractor": false, + "contract_desc": "" + }, + "content": { + "message": "10个小时就有6500多赞?你是魔鬼?", + "plat": 0, + "device": "", + "members": [], + "jump_url": {}, + "max_line": 999 + }, + "replies": null, + "assist": 0, + "folder": { + "has_folded": false, + "is_folded": false, + "rule": "" + }, + "up_action": { + "like": false, + "reply": false + }, + "show_follow": false, + "invisible": false, + "reply_control": { + "time_desc": "708天前发布" + } + }, + { + "rpid": 2596150498, + "oid": 2, + "type": 1, + "mid": 426825448, + "root": 2576184175, + "parent": 2578082161, + "dialog": 2578082161, + "count": 0, + "rcount": 0, + "state": 0, + "fansgrade": 0, + "attr": 0, + "ctime": 1585211858, + "rpid_str": "2596150498", + "root_str": "2576184175", + "parent_str": "2578082161", + "like": 605, + "action": 0, + "member": { + "mid": "426825448", + "uname": "TrueBinger", + "sex": "男", + "sign": "这个人不懒,但是什么都没有留下。", + "avatar": "http://i1.hdslb.com/bfs/face/4bcc2120e3cb0ce855de6500a9bc422e981ced32.jpg", + "rank": "10000", + "DisplayRank": "0", + "face_nft_new": 0, + "is_senior_member": 0, + "level_info": { + "current_level": 5, + "current_min": 0, + "current_exp": 0, + "next_exp": 0 + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "", + "image_enhance_frame": "" + }, + "nameplate": { + "nid": 62, + "name": "有爱大佬", + "image": "http://i0.hdslb.com/bfs/face/a10ee6b613e0d68d2dfdac8bbf71b94824e10408.png", + "image_small": "http://i2.hdslb.com/bfs/face/54f4c31ab9b1f1fa2c29dbbc967f66535699337e.png", + "level": "普通勋章", + "condition": "当前持有粉丝勋章最高等级>=15级" + }, + "official_verify": { + "type": -1, + "desc": "" + }, + "vip": { + "vipType": 1, + "vipDueDate": 1592668800000, + "dueRemark": "", + "accessStatus": 0, + "vipStatus": 0, + "vipStatusWarn": "", + "themeType": 0, + "label": { + "path": "", + "text": "", + "label_theme": "", + "text_color": "", + "bg_style": 0, + "bg_color": "", + "border_color": "" + }, + "avatar_subscript": 0, + "nickname_color": "" + }, + "fans_detail": null, + "following": 0, + "is_followed": 0, + "user_sailing": { + "pendant": null, + "cardbg": null, + "cardbg_with_focus": null + }, + "is_contractor": false, + "contract_desc": "" + }, + "content": { + "message": "回复 @渣男5107号 :哈喽各位小伙伴们大家好,众所周知,世界第一大视频网站bilibili的视频采用bv号来标记视频,可小伙伴们知道吗,其实在2020.3之前,bv一直都是av哦!这已经是100000年前的事了,小伙伴们知道了吗[滑稽]", + "plat": 0, + "device": "", + "members": [], + "emote": { + "[滑稽]": { + "id": 27, + "package_id": 1, + "state": 0, + "type": 1, + "attr": 0, + "text": "[滑稽]", + "url": "http://i0.hdslb.com/bfs/emote/d15121545a99ac46774f1f4465b895fe2d1411c3.png", + "meta": { + "size": 1 + }, + "mtime": 1645206695, + "jump_title": "滑稽" + } + }, + "jump_url": {}, + "max_line": 999 + }, + "replies": null, + "assist": 0, + "folder": { + "has_folded": false, + "is_folded": false, + "rule": "" + }, + "up_action": { + "like": false, + "reply": false + }, + "show_follow": false, + "invisible": false, + "reply_control": { + "time_desc": "706天前发布" + } + } + ], + "assist": 0, + "folder": { + "has_folded": false, + "is_folded": false, + "rule": "https://www.bilibili.com/blackboard/foldingreply.html" + }, + "up_action": { + "like": false, + "reply": false + }, + "show_follow": true, + "invisible": false, + "reply_control": { + "sub_reply_entry_text": "共1000条回复", + "sub_reply_title_text": "相关回复共1000条", + "time_desc": "709天前发布" + } + }, + { + "rpid": 495059, + "oid": 2, + "type": 1, + "mid": 2, + "root": 0, + "parent": 0, + "dialog": 0, + "count": 898, + "rcount": 838, + "state": 2, + "fansgrade": 0, + "attr": 0, + "ctime": 1291918239, + "rpid_str": "495059", + "root_str": "0", + "parent_str": "0", + "like": 34223, + "action": 0, + "member": { + "mid": "2", + "uname": "碧诗", + "sex": "男", + "sign": "kami.im 直男过气网红 # av362830 “We Are Star Dust”", + "avatar": "http://i2.hdslb.com/bfs/face/ef0457addb24141e15dfac6fbf45293ccf1e32ab.jpg", + "rank": "20000", + "DisplayRank": "0", + "face_nft_new": 0, + "is_senior_member": 0, + "level_info": { + "current_level": 6, + "current_min": 0, + "current_exp": 0, + "next_exp": 0 + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "", + "image_enhance_frame": "" + }, + "nameplate": { + "nid": 10, + "name": "见习偶像", + "image": "http://i2.hdslb.com/bfs/face/e93dd9edfa7b9e18bf46fd8d71862327a2350923.png", + "image_small": "http://i1.hdslb.com/bfs/face/275b468b043ec246737ab8580a2075bee0b1263b.png", + "level": "普通勋章", + "condition": "所有自制视频总播放数>=10万" + }, + "official_verify": { + "type": 0, + "desc": "bilibili创始人(站长)" + }, + "vip": { + "vipType": 2, + "vipDueDate": 3901881600000, + "dueRemark": "", + "accessStatus": 0, + "vipStatus": 1, + "vipStatusWarn": "", + "themeType": 0, + "label": { + "path": "", + "text": "十年大会员", + "label_theme": "ten_annual_vip", + "text_color": "#FFFFFF", + "bg_style": 1, + "bg_color": "#FB7299", + "border_color": "" + }, + "avatar_subscript": 1, + "avatar_subscript_url": "http://i0.hdslb.com/bfs/vip/icon_Certification_big_member_22_3x.png", + "nickname_color": "#FB7299" + }, + "fans_detail": null, + "following": 0, + "is_followed": 0, + "user_sailing": { + "pendant": null, + "cardbg": { + "id": 3865, + "name": "2021拜年纪", + "image": "http://i0.hdslb.com/bfs/garb/item/e2c4d4ba094ddb98c1f72114a12081b4eca7ed88.png", + "jump_url": "https://www.bilibili.com/h5/mall/fans/recommend/3898?navhide=1&mid=2&from=reply", + "fan": { + "is_fan": 1, + "number": 21206, + "color": "#ec3d39", + "name": "2021拜年纪", + "num_desc": "021206" + }, + "type": "suit" + }, + "cardbg_with_focus": null + }, + "is_contractor": false, + "contract_desc": "" + }, + "content": { + "message": "wwwww", + "plat": 0, + "device": "", + "members": [], + "jump_url": {}, + "max_line": 6 + }, + "replies": [ + { + "rpid": 164517433, + "oid": 2, + "type": 1, + "mid": 3476504, + "root": 495059, + "parent": 495059, + "dialog": 164517433, + "count": 0, + "rcount": 0, + "state": 0, + "fansgrade": 0, + "attr": 0, + "ctime": 1479570959, + "rpid_str": "164517433", + "root_str": "495059", + "parent_str": "495059", + "like": 478, + "action": 0, + "member": { + "mid": "3476504", + "uname": "MaskQwQ麦斯科", + "sex": "保密", + "sign": "重拾过去。。", + "avatar": "http://i2.hdslb.com/bfs/face/7bf954d807cbda4de4221d78f3b425534042ac02.jpg", + "rank": "10000", + "DisplayRank": "0", + "face_nft_new": 0, + "is_senior_member": 0, + "level_info": { + "current_level": 6, + "current_min": 0, + "current_exp": 0, + "next_exp": 0 + }, + "pendant": { + "pid": 194, + "name": "黑白无双", + "image": "http://i2.hdslb.com/bfs/face/89b25cad74abd9e42a94b11e456bc21fe36b8763.png", + "expire": 0, + "image_enhance": "http://i2.hdslb.com/bfs/face/89b25cad74abd9e42a94b11e456bc21fe36b8763.png", + "image_enhance_frame": "" + }, + "nameplate": { + "nid": 74, + "name": "大会员2018年度勋章", + "image": "http://i0.hdslb.com/bfs/face/421179426c929dfeaed4117461c83f5d07ffb148.png", + "image_small": "http://i1.hdslb.com/bfs/face/682001c2e1c2ae887bdf2a0e18eef61180c48f84.png", + "level": "稀有勋章", + "condition": "2018.6.26-7.8某一天是年度大会员" + }, + "official_verify": { + "type": -1, + "desc": "" + }, + "vip": { + "vipType": 2, + "vipDueDate": 1771344000000, + "dueRemark": "", + "accessStatus": 0, + "vipStatus": 1, + "vipStatusWarn": "", + "themeType": 0, + "label": { + "path": "", + "text": "年度大会员", + "label_theme": "annual_vip", + "text_color": "#FFFFFF", + "bg_style": 1, + "bg_color": "#FB7299", + "border_color": "" + }, + "avatar_subscript": 1, + "avatar_subscript_url": "http://i0.hdslb.com/bfs/vip/icon_Certification_big_member_22_3x.png", + "nickname_color": "#FB7299" + }, + "fans_detail": null, + "following": 0, + "is_followed": 0, + "user_sailing": { + "pendant": { + "id": 194, + "name": "黑白无双", + "image": "http://i0.hdslb.com/bfs/face/89b25cad74abd9e42a94b11e456bc21fe36b8763.png", + "jump_url": "", + "type": "vip", + "image_enhance": "http://i0.hdslb.com/bfs/face/89b25cad74abd9e42a94b11e456bc21fe36b8763.png", + "image_enhance_frame": "" + }, + "cardbg": null, + "cardbg_with_focus": null + }, + "is_contractor": false, + "contract_desc": "" + }, + "content": { + "message": "拉了半天总算是见了底", + "plat": 0, + "device": "", + "members": [], + "jump_url": {}, + "max_line": 999 + }, + "replies": null, + "assist": 0, + "folder": { + "has_folded": false, + "is_folded": false, + "rule": "" + }, + "up_action": { + "like": false, + "reply": false + }, + "show_follow": false, + "invisible": false, + "reply_control": { + "time_desc": "1928天前发布" + } + }, + { + "rpid": 464424502, + "oid": 2, + "type": 1, + "mid": 37145412, + "root": 495059, + "parent": 495059, + "dialog": 464424502, + "count": 0, + "rcount": 0, + "state": 0, + "fansgrade": 1, + "attr": 0, + "ctime": 1509257961, + "rpid_str": "464424502", + "root_str": "495059", + "parent_str": "495059", + "like": 298, + "action": 0, + "member": { + "mid": "37145412", + "uname": "边走边发呆", + "sex": "男", + "sign": "这个人懒死了,什么都不发=_= 头像是素晴日", + "avatar": "http://i0.hdslb.com/bfs/face/4dfe0f1b0bfc9b1afea9e3bacbc5a92221fe9b09.jpg", + "rank": "10000", + "DisplayRank": "0", + "face_nft_new": 0, + "is_senior_member": 0, + "level_info": { + "current_level": 6, + "current_min": 0, + "current_exp": 0, + "next_exp": 0 + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "", + "image_enhance_frame": "" + }, + "nameplate": { + "nid": 60, + "name": "有爱萌新", + "image": "http://i1.hdslb.com/bfs/face/51ca16136e570938450bca360f28761ceb609f33.png", + "image_small": "http://i2.hdslb.com/bfs/face/9abfa4769357f85937782c2dbc40fafda4f57217.png", + "level": "普通勋章", + "condition": "当前持有粉丝勋章最高等级>=5级" + }, + "official_verify": { + "type": -1, + "desc": "" + }, + "vip": { + "vipType": 1, + "vipDueDate": 1559836800000, + "dueRemark": "", + "accessStatus": 0, + "vipStatus": 0, + "vipStatusWarn": "", + "themeType": 0, + "label": { + "path": "", + "text": "", + "label_theme": "", + "text_color": "", + "bg_style": 0, + "bg_color": "", + "border_color": "" + }, + "avatar_subscript": 0, + "nickname_color": "" + }, + "fans_detail": { + "uid": 37145412, + "medal_id": 29058, + "medal_name": "逸国", + "score": 0, + "level": 7, + "intimacy": 0, + "master_status": 1, + "is_receive": 1, + "medal_color": 643660702, + "medal_color_end": 643660702, + "medal_color_border": 6126494, + "medal_color_name": 6126494, + "medal_color_level": 6126494, + "guard_level": 0 + }, + "following": 0, + "is_followed": 0, + "user_sailing": { + "pendant": null, + "cardbg": null, + "cardbg_with_focus": null + }, + "is_contractor": false, + "contract_desc": "" + }, + "content": { + "message": "5000多楼6225评论(;¬_¬)手有点酸,如果不是特殊方法进来的话是要大会员吧(● ̄(エ) ̄●)", + "plat": 0, + "device": "", + "members": [], + "jump_url": {}, + "max_line": 999 + }, + "replies": null, + "assist": 0, + "folder": { + "has_folded": false, + "is_folded": false, + "rule": "" + }, + "up_action": { + "like": false, + "reply": false + }, + "show_follow": false, + "invisible": false, + "reply_control": { + "time_desc": "1585天前发布" + } + }, + { + "rpid": 4002945120, + "oid": 2, + "type": 1, + "mid": 282146749, + "root": 495059, + "parent": 464424502, + "dialog": 464424502, + "count": 0, + "rcount": 0, + "state": 0, + "fansgrade": 0, + "attr": 0, + "ctime": 1611588059, + "rpid_str": "4002945120", + "root_str": "495059", + "parent_str": "464424502", + "like": 107, + "action": 0, + "member": { + "mid": "282146749", + "uname": "能天使exia", + "sex": "女", + "sign": "电子学会评测师,脑机非技术研究学者,黑客网络贴吧二周目群管,明日方舟三服,三崩子团长,公主焊接会长,红三圈模组收集者,游戏尝鲜人,随心情更新", + "avatar": "http://i1.hdslb.com/bfs/face/f6ec44a9d2785783fa6b1b2dd4b7ad7b17e7cbb9.jpg", + "rank": "10000", + "DisplayRank": "0", + "face_nft_new": 0, + "is_senior_member": 0, + "level_info": { + "current_level": 5, + "current_min": 0, + "current_exp": 0, + "next_exp": 0 + }, + "pendant": { + "pid": 3508, + "name": "总之就是非常可爱", + "image": "http://i1.hdslb.com/bfs/garb/item/2c63178e3fcce804a851ef510e03c2b0e91a61e0.png", + "expire": 0, + "image_enhance": "http://i1.hdslb.com/bfs/garb/item/2c63178e3fcce804a851ef510e03c2b0e91a61e0.png", + "image_enhance_frame": "" + }, + "nameplate": { + "nid": 72, + "name": "风纪元老", + "image": "http://i0.hdslb.com/bfs/face/032bce9fd6dcb562d83b60f8a8719362b18a0afb.png", + "image_small": "http://i2.hdslb.com/bfs/face/2930b8bf5d7c68e1961d81ed3a59783af9d639a2.png", + "level": "稀有勋章", + "condition": "风纪委员连任期数 >= 12" + }, + "official_verify": { + "type": -1, + "desc": "" + }, + "vip": { + "vipType": 2, + "vipDueDate": 1727280000000, + "dueRemark": "", + "accessStatus": 0, + "vipStatus": 1, + "vipStatusWarn": "", + "themeType": 0, + "label": { + "path": "", + "text": "年度大会员", + "label_theme": "annual_vip", + "text_color": "#FFFFFF", + "bg_style": 1, + "bg_color": "#FB7299", + "border_color": "" + }, + "avatar_subscript": 1, + "avatar_subscript_url": "http://i0.hdslb.com/bfs/vip/icon_Certification_big_member_22_3x.png", + "nickname_color": "#FB7299" + }, + "fans_detail": null, + "following": 0, + "is_followed": 0, + "user_sailing": { + "pendant": { + "id": 3508, + "name": "总之就是非常可爱", + "image": "http://i0.hdslb.com/bfs/garb/item/2c63178e3fcce804a851ef510e03c2b0e91a61e0.png", + "jump_url": "", + "type": "suit", + "image_enhance": "http://i0.hdslb.com/bfs/garb/item/2c63178e3fcce804a851ef510e03c2b0e91a61e0.png", + "image_enhance_frame": "" + }, + "cardbg": { + "id": 5323, + "name": "明日方舟音律系列", + "image": "http://i0.hdslb.com/bfs/garb/item/e62b17700b3c1bc981606905f85615363c183105.png", + "jump_url": "https://www.bilibili.com/h5/mall/fans/recommend/5359?navhide=1&mid=282146749&from=reply", + "fan": { + "is_fan": 1, + "number": 11418, + "color": "#ffb628", + "name": "明日方舟音律联觉", + "num_desc": "011418" + }, + "type": "suit" + }, + "cardbg_with_focus": null + }, + "is_contractor": false, + "contract_desc": "" + }, + "content": { + "message": "回复 @边走边发呆 :拜登时代洛阳铲,带人,食大便了,现在的b站没有楼层了[牛年]", + "plat": 0, + "device": "", + "members": [ + { + "mid": "37145412", + "uname": "边走边发呆", + "sex": "男", + "sign": "这个人懒死了,什么都不发=_= 头像是素晴日", + "avatar": "http://i0.hdslb.com/bfs/face/4dfe0f1b0bfc9b1afea9e3bacbc5a92221fe9b09.jpg", + "rank": "10000", + "DisplayRank": "0", + "face_nft_new": 0, + "is_senior_member": 0, + "level_info": { + "current_level": 6, + "current_min": 0, + "current_exp": 0, + "next_exp": 0 + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "", + "image_enhance_frame": "" + }, + "nameplate": { + "nid": 60, + "name": "有爱萌新", + "image": "http://i1.hdslb.com/bfs/face/51ca16136e570938450bca360f28761ceb609f33.png", + "image_small": "http://i2.hdslb.com/bfs/face/9abfa4769357f85937782c2dbc40fafda4f57217.png", + "level": "普通勋章", + "condition": "当前持有粉丝勋章最高等级>=5级" + }, + "official_verify": { + "type": -1, + "desc": "" + }, + "vip": { + "vipType": 1, + "vipDueDate": 1559836800000, + "dueRemark": "", + "accessStatus": 0, + "vipStatus": 0, + "vipStatusWarn": "", + "themeType": 0, + "label": { + "path": "", + "text": "", + "label_theme": "", + "text_color": "", + "bg_style": 0, + "bg_color": "", + "border_color": "" + }, + "avatar_subscript": 0, + "nickname_color": "" + } + } + ], + "emote": { + "[牛年]": { + "id": 3146, + "package_id": 1, + "state": 0, + "type": 1, + "attr": 0, + "text": "[牛年]", + "url": "http://i0.hdslb.com/bfs/emote/9275275ff1f2659310648221107d20bc4970f106.png", + "meta": { + "size": 1 + }, + "mtime": 1611200715, + "jump_title": "牛年" + } + }, + "jump_url": {}, + "max_line": 999 + }, + "replies": null, + "assist": 0, + "folder": { + "has_folded": false, + "is_folded": false, + "rule": "" + }, + "up_action": { + "like": false, + "reply": false + }, + "show_follow": false, + "invisible": false, + "reply_control": { + "time_desc": "400天前发布" + } + } + ], + "assist": 0, + "folder": { + "has_folded": false, + "is_folded": false, + "rule": "https://www.bilibili.com/blackboard/foldingreply.html" + }, + "up_action": { + "like": false, + "reply": false + }, + "show_follow": false, + "invisible": false, + "reply_control": { + "sub_reply_entry_text": "共838条回复", + "sub_reply_title_text": "相关回复共838条", + "time_desc": "4100天前发布" + } + }, + { + "rpid": 646408628, + "oid": 2, + "type": 1, + "mid": 33066927, + "root": 0, + "parent": 0, + "dialog": 0, + "count": 173, + "rcount": 160, + "state": 0, + "fansgrade": 1, + "attr": 0, + "ctime": 1519135750, + "rpid_str": "646408628", + "root_str": "0", + "parent_str": "0", + "like": 7197, + "action": 0, + "member": { + "mid": "33066927", + "uname": "冰魂喵丶", + "sex": "男", + "sign": "反正不要钱,多少关注下?\n等我有时间,就把你们全吃了", + "avatar": "http://i0.hdslb.com/bfs/face/f60445649445f69db7293f1cb611f6c0dcdd9a21.jpg", + "rank": "10000", + "DisplayRank": "0", + "face_nft_new": 0, + "is_senior_member": 0, + "level_info": { + "current_level": 5, + "current_min": 0, + "current_exp": 0, + "next_exp": 0 + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "", + "image_enhance_frame": "" + }, + "nameplate": { + "nid": 71, + "name": "资深委员", + "image": "http://i1.hdslb.com/bfs/face/5beecb936bd7422a5ac11c9c5c8df56f334b2a65.png", + "image_small": "http://i0.hdslb.com/bfs/face/9f8e0d5cd0201cf7177199d9365be562be1deb05.png", + "level": "高级勋章", + "condition": "风纪委员连任期数 >= 6" + }, + "official_verify": { + "type": -1, + "desc": "" + }, + "vip": { + "vipType": 1, + "vipDueDate": 1620748800000, + "dueRemark": "", + "accessStatus": 0, + "vipStatus": 0, + "vipStatusWarn": "", + "themeType": 0, + "label": { + "path": "", + "text": "", + "label_theme": "", + "text_color": "", + "bg_style": 0, + "bg_color": "", + "border_color": "" + }, + "avatar_subscript": 0, + "nickname_color": "" + }, + "fans_detail": { + "uid": 33066927, + "medal_id": 29058, + "medal_name": "逸国", + "score": 0, + "level": 1, + "intimacy": 0, + "master_status": 1, + "is_receive": 1, + "medal_color": 643602062, + "medal_color_end": 643602062, + "medal_color_border": 4284257934, + "medal_color_name": 4284257934, + "medal_color_level": 4284257934, + "guard_level": 0 + }, + "following": 0, + "is_followed": 0, + "user_sailing": { + "pendant": null, + "cardbg": { + "id": 32680, + "name": "坎公骑冠剑", + "image": "http://i0.hdslb.com/bfs/garb/item/e861ec7f80f9725fbed51bbfc51ade4c083ddedc.png", + "jump_url": "https://www.bilibili.com/h5/mall/fans/recommend/32658?navhide=1&mid=33066927&from=reply", + "fan": { + "is_fan": 1, + "number": 16578, + "color": "#f7b130", + "name": "坎公骑冠剑", + "num_desc": "016578" + }, + "type": "suit" + }, + "cardbg_with_focus": null + }, + "is_contractor": false, + "contract_desc": "" + }, + "content": { + "message": "第一首:来夢緑 - kagome-kagome ~ 月の眷属達カラオケ\n第二首:dBu music - 千年幻想郷 -Aurora sky edition-\n第三首:Sensitive Heart - 千年幻想郷 ~ History of the Moon\n第四首:Yellow-Zebra - 月の律动~Rhythm of the moon~(东方永夜抄 “千年幻想郷 ~ History of the Moon”)\n第五首:工藤舞 - D.S.F.S(ヴォヤージュ1969)\n第六首:Angelic Quasar - かの郷は永き幻の\n第七首:東方永夜抄 - 黒髪のアマンダ\n第八首:君の美術館 - 千年幻想郷 ~ History of the Moon\n\n------------------------\n这些是av:2出现的音乐,应该不会缺少的喵~。(笑) 如果有需要有兴趣的话欢迎复制喵~~(`・ω・´)\n复制的9818楼的\n前排提示:本视频只有大会员能看", + "plat": 0, + "device": "", + "members": [], + "jump_url": {}, + "max_line": 6 + }, + "replies": [ + { + "rpid": 646507261, + "oid": 2, + "type": 1, + "mid": 11531860, + "root": 646408628, + "parent": 646408628, + "dialog": 646507261, + "count": 0, + "rcount": 0, + "state": 0, + "fansgrade": 0, + "attr": 0, + "ctime": 1519138195, + "rpid_str": "646507261", + "root_str": "646408628", + "parent_str": "646408628", + "like": 140, + "action": 0, + "member": { + "mid": "11531860", + "uname": "方圆十里有名的俊后生", + "sex": "男", + "sign": "", + "avatar": "http://i0.hdslb.com/bfs/baselabs/fab0bf0029e891eed162175c73473003528a5f22.jpg", + "rank": "10000", + "DisplayRank": "0", + "face_nft_new": 1, + "is_senior_member": 0, + "level_info": { + "current_level": 6, + "current_min": 0, + "current_exp": 0, + "next_exp": 0 + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "", + "image_enhance_frame": "" + }, + "nameplate": { + "nid": 0, + "name": "", + "image": "", + "image_small": "", + "level": "", + "condition": "" + }, + "official_verify": { + "type": -1, + "desc": "" + }, + "vip": { + "vipType": 1, + "vipDueDate": 1647619200000, + "dueRemark": "", + "accessStatus": 0, + "vipStatus": 1, + "vipStatusWarn": "", + "themeType": 0, + "label": { + "path": "", + "text": "大会员", + "label_theme": "vip", + "text_color": "#FFFFFF", + "bg_style": 1, + "bg_color": "#FB7299", + "border_color": "" + }, + "avatar_subscript": 1, + "avatar_subscript_url": "http://i0.hdslb.com/bfs/vip/icon_Certification_big_member_22_3x.png", + "nickname_color": "" + }, + "fans_detail": null, + "following": 0, + "is_followed": 0, + "user_sailing": { + "pendant": null, + "cardbg": null, + "cardbg_with_focus": null + }, + "is_contractor": false, + "contract_desc": "" + }, + "content": { + "message": "车万大法好", + "plat": 0, + "device": "", + "members": [], + "jump_url": {}, + "max_line": 999 + }, + "replies": null, + "assist": 0, + "folder": { + "has_folded": false, + "is_folded": false, + "rule": "" + }, + "up_action": { + "like": false, + "reply": false + }, + "show_follow": false, + "invisible": false, + "reply_control": { + "time_desc": "1471天前发布" + } + }, + { + "rpid": 1601887431, + "oid": 2, + "type": 1, + "mid": 341470991, + "root": 646408628, + "parent": 646408628, + "dialog": 1601887431, + "count": 0, + "rcount": 0, + "state": 0, + "fansgrade": 0, + "attr": 0, + "ctime": 1557745446, + "rpid_str": "1601887431", + "root_str": "646408628", + "parent_str": "646408628", + "like": 94, + "action": 0, + "member": { + "mid": "341470991", + "uname": "飞行科", + "sex": "保密", + "sign": "", + "avatar": "http://i2.hdslb.com/bfs/face/327188d3f35510699e54a65a65b2fba95dd6ded2.jpg", + "rank": "10000", + "DisplayRank": "0", + "face_nft_new": 0, + "is_senior_member": 0, + "level_info": { + "current_level": 5, + "current_min": 0, + "current_exp": 0, + "next_exp": 0 + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "", + "image_enhance_frame": "" + }, + "nameplate": { + "nid": 0, + "name": "", + "image": "", + "image_small": "", + "level": "", + "condition": "" + }, + "official_verify": { + "type": -1, + "desc": "" + }, + "vip": { + "vipType": 1, + "vipDueDate": 1626364800000, + "dueRemark": "", + "accessStatus": 0, + "vipStatus": 0, + "vipStatusWarn": "", + "themeType": 0, + "label": { + "path": "", + "text": "", + "label_theme": "", + "text_color": "", + "bg_style": 0, + "bg_color": "", + "border_color": "" + }, + "avatar_subscript": 0, + "nickname_color": "" + }, + "fans_detail": null, + "following": 0, + "is_followed": 0, + "user_sailing": { + "pendant": null, + "cardbg": null, + "cardbg_with_focus": null + }, + "is_contractor": false, + "contract_desc": "" + }, + "content": { + "message": "东方不能沉", + "plat": 0, + "device": "", + "members": [], + "jump_url": {}, + "max_line": 999 + }, + "replies": null, + "assist": 0, + "folder": { + "has_folded": false, + "is_folded": false, + "rule": "" + }, + "up_action": { + "like": false, + "reply": false + }, + "show_follow": false, + "invisible": false, + "reply_control": { + "time_desc": "1024天前发布" + } + }, + { + "rpid": 1627517285, + "oid": 2, + "type": 1, + "mid": 244446278, + "root": 646408628, + "parent": 646408628, + "dialog": 1627517285, + "count": 0, + "rcount": 0, + "state": 0, + "fansgrade": 0, + "attr": 0, + "ctime": 1558630445, + "rpid_str": "1627517285", + "root_str": "646408628", + "parent_str": "646408628", + "like": 75, + "action": 0, + "member": { + "mid": "244446278", + "uname": "KRHX", + "sex": "男", + "sign": "自由的明天仍在前方\n如繁星般闪烁着光芒\n即便只是缥缈的愿景\n也要朝着那黎明迈向\n哪怕路途艰辛\n哪怕前途渺茫\n世间进步仍未停息\n向那理想的彼方", + "avatar": "http://i2.hdslb.com/bfs/face/df0e691dd30d84f9c5224dbb7820b03953c7e6de.jpg", + "rank": "10000", + "DisplayRank": "0", + "face_nft_new": 0, + "is_senior_member": 0, + "level_info": { + "current_level": 5, + "current_min": 0, + "current_exp": 0, + "next_exp": 0 + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "", + "image_enhance_frame": "" + }, + "nameplate": { + "nid": 0, + "name": "", + "image": "", + "image_small": "", + "level": "", + "condition": "" + }, + "official_verify": { + "type": -1, + "desc": "" + }, + "vip": { + "vipType": 2, + "vipDueDate": 1647446400000, + "dueRemark": "", + "accessStatus": 0, + "vipStatus": 1, + "vipStatusWarn": "", + "themeType": 0, + "label": { + "path": "", + "text": "年度大会员", + "label_theme": "annual_vip", + "text_color": "#FFFFFF", + "bg_style": 1, + "bg_color": "#FB7299", + "border_color": "" + }, + "avatar_subscript": 1, + "avatar_subscript_url": "http://i0.hdslb.com/bfs/vip/icon_Certification_big_member_22_3x.png", + "nickname_color": "#FB7299" + }, + "fans_detail": null, + "following": 0, + "is_followed": 0, + "user_sailing": { + "pendant": null, + "cardbg": null, + "cardbg_with_focus": null + }, + "is_contractor": false, + "contract_desc": "" + }, + "content": { + "message": "东方不能沉啊", + "plat": 0, + "device": "", + "members": [], + "jump_url": {}, + "max_line": 999 + }, + "replies": null, + "assist": 0, + "folder": { + "has_folded": false, + "is_folded": false, + "rule": "" + }, + "up_action": { + "like": false, + "reply": false + }, + "show_follow": false, + "invisible": false, + "reply_control": { + "time_desc": "1013天前发布" + } + } + ], + "assist": 0, + "folder": { + "has_folded": false, + "is_folded": false, + "rule": "https://www.bilibili.com/blackboard/foldingreply.html" + }, + "up_action": { + "like": false, + "reply": false + }, + "show_follow": false, + "invisible": false, + "reply_control": { + "sub_reply_entry_text": "共160条回复", + "sub_reply_title_text": "相关回复共160条", + "time_desc": "1471天前发布" + } + } + ], + "top": { + "admin": null, + "upper": null, + "vote": null + }, + "top_replies": null, + "lottery_card": null, + "folder": { + "has_folded": false, + "is_folded": false, + "rule": "https://www.bilibili.com/blackboard/foldingreply.html" + }, + "up_selection": { + "pending_count": 0, + "ignore_count": 0 + }, + "cm": {}, + "cm_info": { + "ads": null + }, + "effects": { + "preloading": "" + }, + "assist": 0, + "blacklist": 0, + "vote": 0, + "lottery": 0, + "config": { + "showadmin": 1, + "showentry": 1, + "showfloor": 0, + "showtopic": 1, + "show_up_flag": true, + "read_only": false, + "show_del_log": true + }, + "upper": { + "mid": 2 + }, + "show_bvid": false, + "control": { + "input_disable": false, + "root_input_text": "发一条友善的评论", + "child_input_text": "", + "giveup_input_text": "不发没关系,请继续友善哦~", + "bg_text": "看看下面~来发评论吧", + "web_selection": false, + "answer_guide_text": "需要升级成为lv2会员后才可以评论,先去答题转正吧!", + "answer_guide_icon_url": "http://i0.hdslb.com/bfs/emote/96940d16602cacbbac796245b7bb99fa9b5c970c.png", + "answer_guide_ios_url": "https://www.bilibili.com/h5/newbie/entry?navhide=1&re_src=12", + "answer_guide_android_url": "https://www.bilibili.com/h5/newbie/entry?navhide=1&re_src=6", + "show_type": 1, + "show_text": "", + "disable_jump_emote": false + }, + "note": 1, + "callbacks": null + } +} +``` + +
+ +## 获取指定评论的回复 + +> https://api.bilibili.com/x/v2/reply/reply + +*请求方式:GET* + +认证方式:Cookie(SESSDATA)或APP + +按照回复顺序排序 + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ---------- | ---- | -------------- | ------------ | ---------------------------------------- | +| access_key | str | APP登录 Token | APP 方式必要 | | +| type | num | 评论区类型代码 | 必要 | [类型代码见表](readme.md#评论区类型代码) | +| oid | num | 目标评论区 id | 必要 | | +| root | num | 根回复 rpid | 必要 | | +| ps | num | 每页项数 | 非必要 | 默认为20
定义域:1-49
但 data_replies 的最大内容数为20,因此设置为49其实也只会有20条回复被返回 | +| pn | num | 页码 | 非必要 | 默认为1 | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ----------------------------- | -------- | ------------------------------------------------------------ | +| code | num | 返回值 | 0:成功
-400:请求错误
-404:无此项
12002:评论区已关闭
12009:评论主体的type不合法 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | 正确时:obj
错误时:null | 数据本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| --------- | ----- | -------------- | -------------------------------------- | +| config | obj | 评论区显示控制 | | +| control | obj | 评论区输入属性 | | +| page | obj | 页面信息 | | +| replies | array | 评论对话树列表 | 最大内容数为20 | +| root | obj | 根评论信息 | [对象定义见表](readme.md#评论条目对象) | +| show_bvid | bool | 显示 bvid? | | +| show_text | str | (?) | | +| show_type | num | (?) | | +| upper | obj | UP主 mid | | + +`data`中的`config`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------------ | ---- | ------------------------ | ---- | +| showadmin | num | 是否显示管理置顶 | | +| showentry | num | ? | | +| showfloor | num | 是否显示楼层号 | | +| showtopic | num | 是否显示话题 | | +| show_up_flag | bool | 是否显示“UP觉得很赞”标志 | | +| read_only | bool | 是否只读评论区 | | +| show_del_log | bool | 是否显示删除记录 | | + +`data`中的`control`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------------------------ | ---- | ------------------ | ----------------------------------- | +| input_disable | bool | (?) | | +| root_input_text | str | 评论框文字 | | +| child_input_text | str | 评论框文字 | | +| bg_text | str | 空评论区文字 | | +| web_selection | bool | 评论是否筛选后可见 | false:无需筛选
true:需要筛选 | +| answer_guide_text | str | 答题页面链接文字 | | +| answer_guide_icon_url | str | 答题页面图标 url | | +| answer_guide_ios_url | str | 答题页面 ios url | | +| answer_guide_android_url | str | 答题页面安卓 url | | + +`data`中的`page`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----- | ---- | ---------- | ---- | +| count | num | 二级评论数 | | +| num | num | 当前页码 | | +| size | num | 每页项数 | | + +`data`中的`replies`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | ------------------ | -------------------------------------- | +| 0 | obj | 对话评论条目 1 | [对象定义见表](readme.md#评论条目对象) | +| n | obj | 对话评论条目 (n+1) | 按照回复顺序排列 | +| …… | obj | …… | …… | + +`data`中的`upper`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | --------- | ---- | +| mid | num | UP 主 mid | | + +**示例:** + +获取视频`av201022189`下评论`rpid=3030790837`的回复,每页5项,获取第1页 + +```shell +curl -G 'https://api.bilibili.com/x/v2/reply/reply' \ +--data-urlencode 'type=1' \ +--data-urlencode 'oid=201022189' \ +--data-urlencode 'root=3030790837' \ +--data-urlencode 'ps=5' \ +--data-urlencode 'pn=1' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "config": { + "showadmin": 0, + "showentry": 0, + "showfloor": 0, + "showtopic": 0, + "show_up_flag": false, + "read_only": false, + "show_del_log": false + }, + "control": { + "input_disable": false, + "root_input_text": "发一条友善的评论", + "child_input_text": "", + "giveup_input_text": "不发没关系,请继续友善哦~", + "bg_text": "看看下面~来发评论吧", + "web_selection": false, + "answer_guide_text": "需要升级成为lv2会员后才可以评论,先去答题转正吧!", + "answer_guide_icon_url": "http://i0.hdslb.com/bfs/emote/96940d16602cacbbac796245b7bb99fa9b5c970c.png", + "answer_guide_ios_url": "https://www.bilibili.com/h5/newbie/entry?navhide=1&re_src=12", + "answer_guide_android_url": "https://www.bilibili.com/h5/newbie/entry?navhide=1&re_src=6", + "show_type": 1, + "show_text": "", + "disable_jump_emote": false + }, + "page": { + "count": 230, + "num": 1, + "size": 5 + }, + "replies": [ + { + "rpid": 3030802207, + "oid": 201022189, + "type": 1, + "mid": 172604528, + "root": 3030790837, + "parent": 3030790837, + "dialog": 3030802207, + "count": 0, + "rcount": 0, + "state": 0, + "fansgrade": 0, + "attr": 0, + "ctime": 1592018067, + "rpid_str": "3030802207", + "root_str": "3030790837", + "parent_str": "3030790837", + "like": 41, + "action": 0, + "member": { + "mid": "172604528", + "uname": "超高校级的认真", + "sex": "男", + "sign": "just do it for yourself", + "avatar": "http://i2.hdslb.com/bfs/face/d0d957faa6162388467cb0750a9d33cf616e73e9.jpg", + "rank": "10000", + "DisplayRank": "0", + "face_nft_new": 0, + "is_senior_member": 0, + "level_info": { + "current_level": 5, + "current_min": 0, + "current_exp": 0, + "next_exp": 0 + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "", + "image_enhance_frame": "" + }, + "nameplate": { + "nid": 0, + "name": "", + "image": "", + "image_small": "", + "level": "", + "condition": "" + }, + "official_verify": { + "type": -1, + "desc": "" + }, + "vip": { + "vipType": 1, + "vipDueDate": 1626364800000, + "dueRemark": "", + "accessStatus": 0, + "vipStatus": 0, + "vipStatusWarn": "", + "themeType": 0, + "label": { + "path": "", + "text": "", + "label_theme": "", + "text_color": "", + "bg_style": 0, + "bg_color": "", + "border_color": "" + }, + "avatar_subscript": 0, + "nickname_color": "" + }, + "fans_detail": null, + "following": 0, + "is_followed": 0, + "user_sailing": { + "pendant": null, + "cardbg": null, + "cardbg_with_focus": null + }, + "is_contractor": false, + "contract_desc": "" + }, + "content": { + "message": "怎么上p站呀,翻吗", + "plat": 0, + "device": "", + "members": [], + "jump_url": {}, + "max_line": 999 + }, + "replies": null, + "assist": 0, + "folder": { + "has_folded": false, + "is_folded": false, + "rule": "" + }, + "up_action": { + "like": false, + "reply": false + }, + "show_follow": false, + "invisible": false, + "reply_control": { + "time_desc": "627天前发布" + } + }, + { + "rpid": 3030810089, + "oid": 201022189, + "type": 1, + "mid": 342581997, + "root": 3030790837, + "parent": 3030802207, + "dialog": 3030802207, + "count": 0, + "rcount": 0, + "state": 0, + "fansgrade": 0, + "attr": 0, + "ctime": 1592018123, + "rpid_str": "3030810089", + "root_str": "3030790837", + "parent_str": "3030802207", + "like": 7, + "action": 0, + "member": { + "mid": "342581997", + "uname": "VAN样斯基", + "sex": "保密", + "sign": "", + "avatar": "http://i0.hdslb.com/bfs/face/bc9c6d37b5a4c8b3b0a3cd483fd66e63b1ae0cec.jpg", + "rank": "10000", + "DisplayRank": "0", + "face_nft_new": 0, + "is_senior_member": 0, + "level_info": { + "current_level": 5, + "current_min": 0, + "current_exp": 0, + "next_exp": 0 + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "", + "image_enhance_frame": "" + }, + "nameplate": { + "nid": 0, + "name": "", + "image": "", + "image_small": "", + "level": "", + "condition": "" + }, + "official_verify": { + "type": -1, + "desc": "" + }, + "vip": { + "vipType": 1, + "vipDueDate": 1626364800000, + "dueRemark": "", + "accessStatus": 0, + "vipStatus": 0, + "vipStatusWarn": "", + "themeType": 0, + "label": { + "path": "", + "text": "", + "label_theme": "", + "text_color": "", + "bg_style": 0, + "bg_color": "", + "border_color": "" + }, + "avatar_subscript": 0, + "nickname_color": "" + }, + "fans_detail": null, + "following": 0, + "is_followed": 0, + "user_sailing": { + "pendant": null, + "cardbg": null, + "cardbg_with_focus": null + }, + "is_contractor": false, + "contract_desc": "" + }, + "content": { + "message": "回复 @中等校级的努力 :是啊", + "plat": 0, + "device": "", + "members": [], + "jump_url": {}, + "max_line": 999 + }, + "replies": null, + "assist": 0, + "folder": { + "has_folded": false, + "is_folded": false, + "rule": "" + }, + "up_action": { + "like": false, + "reply": false + }, + "show_follow": false, + "invisible": false, + "reply_control": { + "time_desc": "627天前发布" + } + }, + { + "rpid": 3030843245, + "oid": 201022189, + "type": 1, + "mid": 92586428, + "root": 3030790837, + "parent": 3030790837, + "dialog": 3030843245, + "count": 0, + "rcount": 0, + "state": 0, + "fansgrade": 0, + "attr": 0, + "ctime": 1592018688, + "rpid_str": "3030843245", + "root_str": "3030790837", + "parent_str": "3030790837", + "like": 588, + "action": 0, + "member": { + "mid": "92586428", + "uname": "浪潮工作室", + "sex": "保密", + "sign": "洞见时代的浪潮。", + "avatar": "http://i2.hdslb.com/bfs/face/67f183f13f8fe3afb374916d32f9810df8ef042a.jpg", + "rank": "10000", + "DisplayRank": "0", + "face_nft_new": 0, + "is_senior_member": 0, + "level_info": { + "current_level": 6, + "current_min": 0, + "current_exp": 0, + "next_exp": 0 + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "", + "image_enhance_frame": "" + }, + "nameplate": { + "nid": 0, + "name": "", + "image": "", + "image_small": "", + "level": "", + "condition": "" + }, + "official_verify": { + "type": 0, + "desc": "专栏优质UP主" + }, + "vip": { + "vipType": 0, + "vipDueDate": 0, + "dueRemark": "", + "accessStatus": 0, + "vipStatus": 0, + "vipStatusWarn": "", + "themeType": 0, + "label": { + "path": "", + "text": "", + "label_theme": "", + "text_color": "", + "bg_style": 0, + "bg_color": "", + "border_color": "" + }, + "avatar_subscript": 0, + "nickname_color": "" + }, + "fans_detail": null, + "following": 0, + "is_followed": 0, + "user_sailing": { + "pendant": null, + "cardbg": null, + "cardbg_with_focus": null + }, + "is_contractor": false, + "contract_desc": "" + }, + "content": { + "message": "不会吧不会吧,不会真的有人上P站不是为了学习吧", + "plat": 0, + "device": "", + "members": [], + "jump_url": {}, + "max_line": 999 + }, + "replies": null, + "assist": 0, + "folder": { + "has_folded": false, + "is_folded": false, + "rule": "" + }, + "up_action": { + "like": false, + "reply": false + }, + "show_follow": false, + "invisible": false, + "reply_control": { + "time_desc": "627天前发布" + } + }, + { + "rpid": 3030881609, + "oid": 201022189, + "type": 1, + "mid": 393121222, + "root": 3030790837, + "parent": 3030802207, + "dialog": 3030802207, + "count": 0, + "rcount": 0, + "state": 0, + "fansgrade": 0, + "attr": 0, + "ctime": 1592019208, + "rpid_str": "3030881609", + "root_str": "3030790837", + "parent_str": "3030802207", + "like": 110, + "action": 0, + "member": { + "mid": "393121222", + "uname": "鱼氏博物馆", + "sex": "保密", + "sign": "", + "avatar": "http://i1.hdslb.com/bfs/face/f61a8ea36828884d760d855293136a838fa9e848.jpg", + "rank": "10000", + "DisplayRank": "0", + "face_nft_new": 0, + "is_senior_member": 0, + "level_info": { + "current_level": 5, + "current_min": 0, + "current_exp": 0, + "next_exp": 0 + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "", + "image_enhance_frame": "" + }, + "nameplate": { + "nid": 0, + "name": "", + "image": "", + "image_small": "", + "level": "", + "condition": "" + }, + "official_verify": { + "type": -1, + "desc": "" + }, + "vip": { + "vipType": 1, + "vipDueDate": 1602691200000, + "dueRemark": "", + "accessStatus": 0, + "vipStatus": 0, + "vipStatusWarn": "", + "themeType": 0, + "label": { + "path": "", + "text": "", + "label_theme": "", + "text_color": "", + "bg_style": 0, + "bg_color": "", + "border_color": "" + }, + "avatar_subscript": 0, + "nickname_color": "" + }, + "fans_detail": null, + "following": 0, + "is_followed": 0, + "user_sailing": { + "pendant": null, + "cardbg": null, + "cardbg_with_focus": null + }, + "is_contractor": false, + "contract_desc": "" + }, + "content": { + "message": "回复 @中等校级的努力 :p是什么,当然是plane啦,plane站其实就是✈场[doge]所以去p站就是去✈场啦", + "plat": 0, + "device": "", + "members": [], + "emote": { + "[doge]": { + "id": 26, + "package_id": 1, + "state": 0, + "type": 1, + "attr": 0, + "text": "[doge]", + "url": "http://i0.hdslb.com/bfs/emote/3087d273a78ccaff4bb1e9972e2ba2a7583c9f11.png", + "meta": { + "size": 1 + }, + "mtime": 1645206695, + "jump_title": "doge" + } + }, + "jump_url": {}, + "max_line": 999 + }, + "replies": null, + "assist": 0, + "folder": { + "has_folded": false, + "is_folded": false, + "rule": "" + }, + "up_action": { + "like": false, + "reply": false + }, + "show_follow": false, + "invisible": false, + "reply_control": { + "time_desc": "627天前发布" + } + }, + { + "rpid": 3030978856, + "oid": 201022189, + "type": 1, + "mid": 11814633, + "root": 3030790837, + "parent": 3030790837, + "dialog": 3030978856, + "count": 0, + "rcount": 0, + "state": 0, + "fansgrade": 0, + "attr": 0, + "ctime": 1592020635, + "rpid_str": "3030978856", + "root_str": "3030790837", + "parent_str": "3030790837", + "like": 60, + "action": 0, + "member": { + "mid": "11814633", + "uname": "我到四川省来", + "sex": "保密", + "sign": "保持内心的平静", + "avatar": "http://i0.hdslb.com/bfs/face/1c7cad967633c718ddef302f4aa39efaed53a2e4.jpg", + "rank": "10000", + "DisplayRank": "0", + "face_nft_new": 0, + "is_senior_member": 0, + "level_info": { + "current_level": 6, + "current_min": 0, + "current_exp": 0, + "next_exp": 0 + }, + "pendant": { + "pid": 1885, + "name": "公主连结凯露", + "image": "http://i0.hdslb.com/bfs/garb/item/ecf1b11044845abc92e576dfdf93ad4f5e5a0958.png", + "expire": 0, + "image_enhance": "http://i0.hdslb.com/bfs/garb/item/ecf1b11044845abc92e576dfdf93ad4f5e5a0958.png", + "image_enhance_frame": "" + }, + "nameplate": { + "nid": 3, + "name": "白银殿堂", + "image": "http://i0.hdslb.com/bfs/face/f6a31275029365ae5dc710006585ddcf1139bde1.png", + "image_small": "http://i0.hdslb.com/bfs/face/b09cdb4c119c467cf2d15db5263b4f539fa6e30b.png", + "level": "高级勋章", + "condition": "单个自制视频总播放数>=10万" + }, + "official_verify": { + "type": -1, + "desc": "" + }, + "vip": { + "vipType": 2, + "vipDueDate": 1715270400000, + "dueRemark": "", + "accessStatus": 0, + "vipStatus": 1, + "vipStatusWarn": "", + "themeType": 0, + "label": { + "path": "", + "text": "年度大会员", + "label_theme": "annual_vip", + "text_color": "#FFFFFF", + "bg_style": 1, + "bg_color": "#FB7299", + "border_color": "" + }, + "avatar_subscript": 1, + "avatar_subscript_url": "http://i0.hdslb.com/bfs/vip/icon_Certification_big_member_22_3x.png", + "nickname_color": "#FB7299" + }, + "fans_detail": null, + "following": 0, + "is_followed": 0, + "user_sailing": { + "pendant": { + "id": 1885, + "name": "公主连结凯露", + "image": "http://i0.hdslb.com/bfs/garb/item/ecf1b11044845abc92e576dfdf93ad4f5e5a0958.png", + "jump_url": "", + "type": "vip", + "image_enhance": "http://i0.hdslb.com/bfs/garb/item/ecf1b11044845abc92e576dfdf93ad4f5e5a0958.png", + "image_enhance_frame": "" + }, + "cardbg": null, + "cardbg_with_focus": null + }, + "is_contractor": false, + "contract_desc": "" + }, + "content": { + "message": "看有机化学考研视频", + "plat": 0, + "device": "", + "members": [], + "jump_url": {}, + "max_line": 999 + }, + "replies": null, + "assist": 0, + "folder": { + "has_folded": false, + "is_folded": false, + "rule": "" + }, + "up_action": { + "like": false, + "reply": false + }, + "show_follow": false, + "invisible": false, + "reply_control": { + "time_desc": "627天前发布" + } + } + ], + "root": { + "rpid": 3030790837, + "oid": 201022189, + "type": 1, + "mid": 342581997, + "root": 0, + "parent": 0, + "dialog": 0, + "count": 268, + "rcount": 230, + "state": 0, + "fansgrade": 0, + "attr": 768, + "ctime": 1592017909, + "rpid_str": "3030790837", + "root_str": "0", + "parent_str": "0", + "like": 8018, + "action": 0, + "member": { + "mid": "342581997", + "uname": "VAN样斯基", + "sex": "保密", + "sign": "", + "avatar": "http://i0.hdslb.com/bfs/face/bc9c6d37b5a4c8b3b0a3cd483fd66e63b1ae0cec.jpg", + "rank": "10000", + "DisplayRank": "0", + "face_nft_new": 0, + "is_senior_member": 0, + "level_info": { + "current_level": 5, + "current_min": 0, + "current_exp": 0, + "next_exp": 0 + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "", + "image_enhance_frame": "" + }, + "nameplate": { + "nid": 0, + "name": "", + "image": "", + "image_small": "", + "level": "", + "condition": "" + }, + "official_verify": { + "type": -1, + "desc": "" + }, + "vip": { + "vipType": 1, + "vipDueDate": 1626364800000, + "dueRemark": "", + "accessStatus": 0, + "vipStatus": 0, + "vipStatusWarn": "", + "themeType": 0, + "label": { + "path": "", + "text": "", + "label_theme": "", + "text_color": "", + "bg_style": 0, + "bg_color": "", + "border_color": "" + }, + "avatar_subscript": 0, + "nickname_color": "" + }, + "fans_detail": null, + "following": 0, + "is_followed": 0, + "user_sailing": { + "pendant": null, + "cardbg": null, + "cardbg_with_focus": null + }, + "is_contractor": false, + "contract_desc": "" + }, + "content": { + "message": "去P站当然只是为了学习啊[doge]", + "plat": 0, + "device": "", + "members": [], + "emote": { + "[doge]": { + "id": 26, + "package_id": 1, + "state": 0, + "type": 1, + "attr": 0, + "text": "[doge]", + "url": "http://i0.hdslb.com/bfs/emote/3087d273a78ccaff4bb1e9972e2ba2a7583c9f11.png", + "meta": { + "size": 1 + }, + "mtime": 1645206695, + "jump_title": "doge" + } + }, + "jump_url": {}, + "max_line": 999 + }, + "replies": null, + "assist": 0, + "folder": { + "has_folded": false, + "is_folded": false, + "rule": "https://www.bilibili.com/blackboard/foldingreply.html" + }, + "up_action": { + "like": true, + "reply": true + }, + "show_follow": false, + "invisible": false, + "card_label": [ + { + "rpid": 3030790837, + "text_content": "UP主觉得很赞", + "text_color_day": "#757575", + "text_color_night": "#939393", + "label_color_day": "#F4F4F4", + "label_color_night": "#1E1E1E", + "image": "", + "type": 0, + "background": "", + "background_width": 0, + "background_height": 0, + "jump_url": "" + } + ], + "reply_control": { + "up_reply": true, + "sub_reply_entry_text": "共230条回复", + "sub_reply_title_text": "相关回复共230条", + "time_desc": "627天前发布" + } + }, + "show_bvid": true, + "show_text": "", + "show_type": 2, + "upper": { + "mid": 92586428 + } + } +} +``` + +
+ +## 获取指定评论对话树 + +> https://api.bilibili.com/x/v2/reply/dialog/cursor + +*请求方式:GET* + +认证方式:Cookie(SESSDATA)或APP + +按照对话链排列 + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ---------- | ---- | -------------- | ------------ | ---------------------------------------- | +| access_key | str | APP登录 Token | APP 方式必要 | | +| type | num | 评论区类型代码 | 必要 | [类型代码见表](readme.md#评论区类型代码) | +| oid | num | 目标评论区 id | 必要 | | +| root | num | 根回复 rpid | 必要 | | +| dialog | num | 对话树根 rpid | 必要 | | +| size | num | 每页最大项数 | 必要 | | +| min_floor | num | (?) | 非必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ----------------------------- | -------- | ------------------------------------------------------------ | +| code | num | 返回值 | 0:成功
-400:请求错误
-404:无此项
12002:评论区已关闭
12009:评论主体的type不合法 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | 正确时:obj
错误时:null | 数据本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| --------- | ----- | -------------- | ---- | +| cursor | obj | 页楼层信息 | | +| dialog | obj | 对话楼层信息 | | +| replies | array | 评论对话树列表 | | +| assist | num | (?) | | +| blacklist | num | (?) | | +| vote | num | (?) | | +| lottery | num | (?) | | +| config | obj | 评论区显示控制 | | +| upper | obj | UP主 mid | | +| show_bvid | bool | 显示 bvid? | | +| control | obj | 评论区输入属性 | | +| note | num | (?) | | + +`data`中的`cursor`对象: + +| 字段 | 类型 | 内容 | 备注 | +| --------- | ---- | ---------------- | ---- | +| min_floor | num | 本页最低对话楼层 | | +| max_floor | num | 本页最高对话楼层 | | +| size | num | 本页项数 | | + +`data`中的`dialog`对象: + +| 字段 | 类型 | 内容 | 备注 | +| --------- | ---- | -------------------- | ---- | +| min_floor | num | 二级评论最低对话楼层 | | +| max_floor | num | 二级评论最高对话楼层 | | + +`data`中的`replies`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | ------------------ | -------------------------------------- | +| 0 | obj | 对话评论条目 1 | [对象定义见表](readme.md#评论条目对象) | +| n | obj | 对话评论条目 (n+1) | 按照对话链排列 | +| …… | obj | …… | …… | + +`data`中的`config`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------------ | ---- | ------------------------- | ---- | +| showadmin | num | 是否显示管理置顶 | | +| showentry | num | ? | | +| showfloor | num | 是否显示楼层号 | | +| showtopic | num | 是否显示话题 | | +| show_up_flag | bool | 是否显示“UP 觉得很赞”标志 | | +| read_only | bool | 是否只读评论区 | | +| show_del_log | bool | 是否显示删除记录 | | + +`data`中的`upper`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | --------- | ---- | +| mid | num | UP 主 mid | | + +`data`中的`control`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------------------------ | ---- | ------------------ | ----------------------------------- | +| input_disable | bool | (?) | | +| root_input_text | str | 评论框文字 | | +| child_input_text | str | 评论框文字 | | +| bg_text | str | 空评论区文字 | | +| web_selection | bool | 评论是否筛选后可见 | false:无需筛选
true:需要筛选 | +| answer_guide_text | str | 答题页面链接文字 | | +| answer_guide_icon_url | str | 答题页面图标 url | | +| answer_guide_ios_url | str | 答题页面 ios url | | +| answer_guide_android_url | str | 答题页面安卓 url | | + +**示例:** + +获取视频`av201022189`下评论`rpid=3030790837`的对话`rpid=3030978856`,每页最大5项 + +```shell +curl -G 'https://api.bilibili.com/x/v2/reply/dialog/cursor' \ +--data-urlencode 'type=1' \ +--data-urlencode 'oid=201022189' \ +--data-urlencode 'root=3030790837' \ +--data-urlencode 'dialog=3030978856' \ +--data-urlencode 'size=5' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "cursor": { + "min_floor": 5, + "max_floor": 99, + "size": 5 + }, + "dialog": { + "min_floor": 0, + "max_floor": 243 + }, + "replies": [ + { + "rpid": 3030978856, + "oid": 201022189, + "type": 1, + "mid": 11814633, + "root": 3030790837, + "parent": 3030790837, + "dialog": 3030978856, + "count": 0, + "rcount": 0, + "floor": 5, + "state": 0, + "fansgrade": 0, + "attr": 0, + "ctime": 1592020635, + "rpid_str": "3030978856", + "root_str": "3030790837", + "parent_str": "3030790837", + "like": 60, + "action": 0, + "member": { + "mid": "11814633", + "uname": "我到四川省来", + "sex": "保密", + "sign": "保持内心的平静", + "avatar": "http://i0.hdslb.com/bfs/face/1c7cad967633c718ddef302f4aa39efaed53a2e4.jpg", + "rank": "10000", + "DisplayRank": "0", + "face_nft_new": 0, + "is_senior_member": 0, + "level_info": { + "current_level": 6, + "current_min": 0, + "current_exp": 0, + "next_exp": 0 + }, + "pendant": { + "pid": 1885, + "name": "公主连结凯露", + "image": "http://i0.hdslb.com/bfs/garb/item/ecf1b11044845abc92e576dfdf93ad4f5e5a0958.png", + "expire": 0, + "image_enhance": "http://i0.hdslb.com/bfs/garb/item/ecf1b11044845abc92e576dfdf93ad4f5e5a0958.png", + "image_enhance_frame": "" + }, + "nameplate": { + "nid": 3, + "name": "白银殿堂", + "image": "http://i2.hdslb.com/bfs/face/f6a31275029365ae5dc710006585ddcf1139bde1.png", + "image_small": "http://i0.hdslb.com/bfs/face/b09cdb4c119c467cf2d15db5263b4f539fa6e30b.png", + "level": "高级勋章", + "condition": "单个自制视频总播放数>=10万" + }, + "official_verify": { + "type": -1, + "desc": "" + }, + "vip": { + "vipType": 2, + "vipDueDate": 1715270400000, + "dueRemark": "", + "accessStatus": 0, + "vipStatus": 1, + "vipStatusWarn": "", + "themeType": 0, + "label": { + "path": "", + "text": "年度大会员", + "label_theme": "annual_vip", + "text_color": "#FFFFFF", + "bg_style": 1, + "bg_color": "#FB7299", + "border_color": "" + }, + "avatar_subscript": 1, + "avatar_subscript_url": "http://i0.hdslb.com/bfs/vip/icon_Certification_big_member_22_3x.png", + "nickname_color": "#FB7299" + }, + "fans_detail": null, + "following": 0, + "is_followed": 0, + "user_sailing": { + "pendant": { + "id": 1885, + "name": "公主连结凯露", + "image": "http://i0.hdslb.com/bfs/garb/item/ecf1b11044845abc92e576dfdf93ad4f5e5a0958.png", + "jump_url": "", + "type": "vip", + "image_enhance": "http://i0.hdslb.com/bfs/garb/item/ecf1b11044845abc92e576dfdf93ad4f5e5a0958.png", + "image_enhance_frame": "" + }, + "cardbg": null, + "cardbg_with_focus": null + }, + "is_contractor": false, + "contract_desc": "" + }, + "content": { + "message": "看有机化学考研视频", + "plat": 0, + "device": "", + "members": [], + "jump_url": {}, + "max_line": 999 + }, + "replies": null, + "assist": 0, + "folder": { + "has_folded": false, + "is_folded": false, + "rule": "" + }, + "up_action": { + "like": false, + "reply": false + }, + "show_follow": false, + "invisible": false, + "reply_control": { + "time_desc": "627天前发布" + } + }, + { + "rpid": 3049044835, + "oid": 201022189, + "type": 1, + "mid": 34598825, + "root": 3030790837, + "parent": 3032092982, + "dialog": 3030978856, + "count": 0, + "rcount": 0, + "floor": 54, + "state": 0, + "fansgrade": 0, + "attr": 0, + "ctime": 1592368714, + "rpid_str": "3049044835", + "root_str": "3030790837", + "parent_str": "3032092982", + "like": 1, + "action": 0, + "member": { + "mid": "34598825", + "uname": "人宇君sayo", + "sex": "男", + "sign": "", + "avatar": "http://i2.hdslb.com/bfs/face/bf61490cabaedd8e98740f2c98a342ac6d2c607d.jpg", + "rank": "10000", + "DisplayRank": "0", + "face_nft_new": 0, + "is_senior_member": 0, + "level_info": { + "current_level": 6, + "current_min": 0, + "current_exp": 0, + "next_exp": 0 + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "", + "image_enhance_frame": "" + }, + "nameplate": { + "nid": 0, + "name": "", + "image": "", + "image_small": "", + "level": "", + "condition": "" + }, + "official_verify": { + "type": -1, + "desc": "" + }, + "vip": { + "vipType": 1, + "vipDueDate": 1629561600000, + "dueRemark": "", + "accessStatus": 0, + "vipStatus": 0, + "vipStatusWarn": "", + "themeType": 0, + "label": { + "path": "", + "text": "", + "label_theme": "", + "text_color": "", + "bg_style": 0, + "bg_color": "", + "border_color": "" + }, + "avatar_subscript": 0, + "nickname_color": "" + }, + "fans_detail": null, + "following": 0, + "is_followed": 0, + "user_sailing": { + "pendant": null, + "cardbg": null, + "cardbg_with_focus": null + }, + "is_contractor": false, + "contract_desc": "" + }, + "content": { + "message": "回复 @緑箭口香糖 :牛的", + "plat": 0, + "device": "", + "members": [], + "jump_url": {}, + "max_line": 999 + }, + "replies": null, + "assist": 0, + "folder": { + "has_folded": false, + "is_folded": false, + "rule": "" + }, + "up_action": { + "like": false, + "reply": false + }, + "show_follow": false, + "invisible": false, + "reply_control": { + "time_desc": "623天前发布" + } + }, + { + "rpid": 3049581999, + "oid": 201022189, + "type": 1, + "mid": 479083152, + "root": 3030790837, + "parent": 3030978856, + "dialog": 3030978856, + "count": 0, + "rcount": 0, + "floor": 93, + "state": 0, + "fansgrade": 0, + "attr": 0, + "ctime": 1592378703, + "rpid_str": "3049581999", + "root_str": "3030790837", + "parent_str": "3030978856", + "like": 2, + "action": 0, + "member": { + "mid": "479083152", + "uname": "人间多了许茫然", + "sex": "保密", + "sign": "无聊...\n", + "avatar": "http://i0.hdslb.com/bfs/face/6e7ee177b5cc681b9609c07f8d5eb574b52d409c.jpg", + "rank": "10000", + "DisplayRank": "0", + "face_nft_new": 0, + "is_senior_member": 0, + "level_info": { + "current_level": 5, + "current_min": 0, + "current_exp": 0, + "next_exp": 0 + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "", + "image_enhance_frame": "" + }, + "nameplate": { + "nid": 0, + "name": "", + "image": "", + "image_small": "", + "level": "", + "condition": "" + }, + "official_verify": { + "type": -1, + "desc": "" + }, + "vip": { + "vipType": 1, + "vipDueDate": 1632240000000, + "dueRemark": "", + "accessStatus": 0, + "vipStatus": 0, + "vipStatusWarn": "", + "themeType": 0, + "label": { + "path": "", + "text": "", + "label_theme": "", + "text_color": "", + "bg_style": 0, + "bg_color": "", + "border_color": "" + }, + "avatar_subscript": 0, + "nickname_color": "" + }, + "fans_detail": null, + "following": 0, + "is_followed": 0, + "user_sailing": { + "pendant": null, + "cardbg": null, + "cardbg_with_focus": null + }, + "is_contractor": false, + "contract_desc": "" + }, + "content": { + "message": "回复 @我到四川省来 :哈哈,考研不考化学吧", + "plat": 0, + "device": "", + "members": [], + "jump_url": {}, + "max_line": 999 + }, + "replies": null, + "assist": 0, + "folder": { + "has_folded": false, + "is_folded": false, + "rule": "" + }, + "up_action": { + "like": false, + "reply": false + }, + "show_follow": false, + "invisible": false, + "reply_control": { + "time_desc": "623天前发布" + } + }, + { + "rpid": 3049578129, + "oid": 201022189, + "type": 1, + "mid": 11814633, + "root": 3030790837, + "parent": 3049581999, + "dialog": 3030978856, + "count": 0, + "rcount": 0, + "floor": 94, + "state": 0, + "fansgrade": 0, + "attr": 0, + "ctime": 1592378760, + "rpid_str": "3049578129", + "root_str": "3030790837", + "parent_str": "3049581999", + "like": 1, + "action": 0, + "member": { + "mid": "11814633", + "uname": "我到四川省来", + "sex": "保密", + "sign": "保持内心的平静", + "avatar": "http://i0.hdslb.com/bfs/face/1c7cad967633c718ddef302f4aa39efaed53a2e4.jpg", + "rank": "10000", + "DisplayRank": "0", + "face_nft_new": 0, + "is_senior_member": 0, + "level_info": { + "current_level": 6, + "current_min": 0, + "current_exp": 0, + "next_exp": 0 + }, + "pendant": { + "pid": 1885, + "name": "公主连结凯露", + "image": "http://i0.hdslb.com/bfs/garb/item/ecf1b11044845abc92e576dfdf93ad4f5e5a0958.png", + "expire": 0, + "image_enhance": "http://i0.hdslb.com/bfs/garb/item/ecf1b11044845abc92e576dfdf93ad4f5e5a0958.png", + "image_enhance_frame": "" + }, + "nameplate": { + "nid": 3, + "name": "白银殿堂", + "image": "http://i2.hdslb.com/bfs/face/f6a31275029365ae5dc710006585ddcf1139bde1.png", + "image_small": "http://i0.hdslb.com/bfs/face/b09cdb4c119c467cf2d15db5263b4f539fa6e30b.png", + "level": "高级勋章", + "condition": "单个自制视频总播放数>=10万" + }, + "official_verify": { + "type": -1, + "desc": "" + }, + "vip": { + "vipType": 2, + "vipDueDate": 1715270400000, + "dueRemark": "", + "accessStatus": 0, + "vipStatus": 1, + "vipStatusWarn": "", + "themeType": 0, + "label": { + "path": "", + "text": "年度大会员", + "label_theme": "annual_vip", + "text_color": "#FFFFFF", + "bg_style": 1, + "bg_color": "#FB7299", + "border_color": "" + }, + "avatar_subscript": 1, + "avatar_subscript_url": "http://i0.hdslb.com/bfs/vip/icon_Certification_big_member_22_3x.png", + "nickname_color": "#FB7299" + }, + "fans_detail": null, + "following": 0, + "is_followed": 0, + "user_sailing": { + "pendant": { + "id": 1885, + "name": "公主连结凯露", + "image": "http://i0.hdslb.com/bfs/garb/item/ecf1b11044845abc92e576dfdf93ad4f5e5a0958.png", + "jump_url": "", + "type": "vip", + "image_enhance": "http://i0.hdslb.com/bfs/garb/item/ecf1b11044845abc92e576dfdf93ad4f5e5a0958.png", + "image_enhance_frame": "" + }, + "cardbg": null, + "cardbg_with_focus": null + }, + "is_contractor": false, + "contract_desc": "" + }, + "content": { + "message": "回复 @转手告别旧生活 :专业课 考啊", + "plat": 0, + "device": "", + "members": [], + "jump_url": {}, + "max_line": 999 + }, + "replies": null, + "assist": 0, + "folder": { + "has_folded": false, + "is_folded": false, + "rule": "" + }, + "up_action": { + "like": false, + "reply": false + }, + "show_follow": false, + "invisible": false, + "reply_control": { + "time_desc": "623天前发布" + } + }, + { + "rpid": 3049748009, + "oid": 201022189, + "type": 1, + "mid": 39891232, + "root": 3030790837, + "parent": 3032092982, + "dialog": 3030978856, + "count": 0, + "rcount": 0, + "floor": 99, + "state": 0, + "fansgrade": 0, + "attr": 0, + "ctime": 1592382373, + "rpid_str": "3049748009", + "root_str": "3030790837", + "parent_str": "3032092982", + "like": 1, + "action": 0, + "member": { + "mid": "39891232", + "uname": "夏次一町and庵野一洋", + "sex": "保密", + "sign": "嘚儿~驾!", + "avatar": "http://i1.hdslb.com/bfs/face/79fbbc56271053565f6dd4395cd77120bad7c568.jpg", + "rank": "10000", + "DisplayRank": "0", + "face_nft_new": 0, + "is_senior_member": 0, + "level_info": { + "current_level": 5, + "current_min": 0, + "current_exp": 0, + "next_exp": 0 + }, + "pendant": { + "pid": 452, + "name": "灵笼", + "image": "http://i1.hdslb.com/bfs/face/9c5f14d6749daded668f3f66998baf4a50e7d8da.png", + "expire": 0, + "image_enhance": "http://i1.hdslb.com/bfs/face/9c5f14d6749daded668f3f66998baf4a50e7d8da.png", + "image_enhance_frame": "" + }, + "nameplate": { + "nid": 0, + "name": "", + "image": "", + "image_small": "", + "level": "", + "condition": "" + }, + "official_verify": { + "type": -1, + "desc": "" + }, + "vip": { + "vipType": 1, + "vipDueDate": 1628870400000, + "dueRemark": "", + "accessStatus": 0, + "vipStatus": 0, + "vipStatusWarn": "", + "themeType": 0, + "label": { + "path": "", + "text": "", + "label_theme": "", + "text_color": "", + "bg_style": 0, + "bg_color": "", + "border_color": "" + }, + "avatar_subscript": 0, + "nickname_color": "" + }, + "fans_detail": null, + "following": 0, + "is_followed": 0, + "user_sailing": { + "pendant": { + "id": 452, + "name": "灵笼", + "image": "http://i0.hdslb.com/bfs/face/9c5f14d6749daded668f3f66998baf4a50e7d8da.png", + "jump_url": "", + "type": "vip", + "image_enhance": "http://i0.hdslb.com/bfs/face/9c5f14d6749daded668f3f66998baf4a50e7d8da.png", + "image_enhance_frame": "" + }, + "cardbg": null, + "cardbg_with_focus": null + }, + "is_contractor": false, + "contract_desc": "" + }, + "content": { + "message": "回复 @緑箭口香糖 :不收费啊", + "plat": 0, + "device": "", + "members": [], + "jump_url": {}, + "max_line": 999 + }, + "replies": null, + "assist": 0, + "folder": { + "has_folded": false, + "is_folded": false, + "rule": "" + }, + "up_action": { + "like": false, + "reply": false + }, + "show_follow": false, + "invisible": false, + "reply_control": { + "time_desc": "623天前发布" + } + } + ], + "assist": 0, + "blacklist": 0, + "vote": 0, + "lottery": 0, + "config": { + "showadmin": 1, + "showentry": 1, + "showfloor": 0, + "showtopic": 1, + "show_up_flag": true, + "read_only": false, + "show_del_log": true + }, + "upper": { + "mid": 92586428 + }, + "show_bvid": false, + "control": { + "input_disable": false, + "root_input_text": "发一条友善的评论", + "child_input_text": "", + "giveup_input_text": "不发没关系,请继续友善哦~", + "bg_text": "看看下面~来发评论吧", + "web_selection": false, + "answer_guide_text": "需要升级成为lv2会员后才可以评论,先去答题转正吧!", + "answer_guide_icon_url": "http://i0.hdslb.com/bfs/emote/96940d16602cacbbac796245b7bb99fa9b5c970c.png", + "answer_guide_ios_url": "https://www.bilibili.com/h5/newbie/entry?navhide=1&re_src=12", + "answer_guide_android_url": "https://www.bilibili.com/h5/newbie/entry?navhide=1&re_src=6", + "show_type": 1, + "show_text": "", + "disable_jump_emote": false + }, + "note": 1 + } +} +``` + +
+ +## 获取评论区热评 + +> https://api.bilibili.com/x/v2/reply/hot + +*请求方式:GET* + +认证方式:Cookie(SESSDATA)或APP + +按照热评排列 + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ---------- | ---- | -------------- | ------------ | ---------------------------------------- | +| access_key | str | APP登录 Token | APP 方式必要 | | +| type | num | 评论区类型代码 | 必要 | [类型代码见表](readme.md#评论区类型代码) | +| oid | num | 目标评论区 id | 必要 | | +| root | num | 根回复 rpid | 必要 | | +| ps | num | 每页项数 | 非必要 | 默认为20
定义域:1-49 | +| pn | num | 页码 | 非必要 | 默认为1 | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ----------------------------- | -------- | ------------------------------------------------------------ | +| code | num | 返回值 | 0:成功
-400:请求错误
-404:无此项
12002:评论区已关闭
12009:评论主体的type不合法 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | 正确时:obj
错误时:null | 数据本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ---- | +| page | obj | 页面信息 | | +| replies | obj | 热评列表 | | + +`data`中的`page`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------ | ---- | -------- | ---- | +| acount | num | 总评论数 | | +| count | num | 热评数 | | +| num | num | 当前页码 | | +| size | num | 每页项数 | | + +`data`中的`replies`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | -------------- | -------------------------------------- | +| 0 | obj | 热评条目 1 | [对象定义见表](readme.md#评论条目对象) | +| n | obj | 热评条目 (n+1) | 按照热评排列 | +| …… | obj | …… | …… | + +**示例:** + +获取视频`av2`的评论区热评,每页5项,查看第1页 + +```shell +curl -G 'https://api.bilibili.com/x/v2/reply/hot' \ +--data-urlencode 'type=1' \ +--data-urlencode 'oid=2' \ +--data-urlencode 'ps=5' \ +--data-urlencode 'pn=1' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "page": { + "acount": 76796, + "count": 60975, + "num": 1, + "size": 5 + }, + "replies": [ + { + "rpid": 476670, + "oid": 2, + "type": 1, + "mid": 58426, + "root": 0, + "parent": 0, + "dialog": 0, + "count": 2733, + "rcount": 2608, + "floor": 2, + "state": 0, + "fansgrade": 0, + "attr": 0, + "ctime": 1291350931, + "like": 90425, + "action": 0, + "member": null, + "content": { + "message": "貌似没人来", + "plat": 0, + "device": "", + "members": null, + "jump_url": null, + "max_line": 999 + }, + "replies": null, + "assist": 0, + "folder": { + "has_folded": false, + "is_folded": false, + "rule": "" + }, + "up_action": { + "like": false, + "reply": false + }, + "show_follow": false, + "invisible": false, + "reply_control": {} + }, + { + "rpid": 917945205, + "oid": 2, + "type": 1, + "mid": 34762090, + "root": 0, + "parent": 0, + "dialog": 0, + "count": 461, + "rcount": 365, + "floor": 17977, + "state": 0, + "fansgrade": 0, + "attr": 0, + "ctime": 1532071373, + "like": 29795, + "action": 0, + "member": null, + "content": { + "message": "7.20日,站长被封7天\n\n历史性留名[2233娘_卖萌]", + "plat": 0, + "device": "", + "members": null, + "jump_url": null, + "max_line": 999 + }, + "replies": null, + "assist": 0, + "folder": { + "has_folded": false, + "is_folded": false, + "rule": "" + }, + "up_action": { + "like": false, + "reply": false + }, + "show_follow": false, + "invisible": false, + "reply_control": {} + }, + { + "rpid": 2576184175, + "oid": 2, + "type": 1, + "mid": 24512285, + "root": 0, + "parent": 0, + "dialog": 0, + "count": 1066, + "rcount": 1000, + "floor": 40932, + "state": 0, + "fansgrade": 0, + "attr": 0, + "ctime": 1584945297, + "like": 44309, + "action": 0, + "member": null, + "content": { + "message": "人类最古のav号(挂了的不算)也变成bv了[大哭][大哭][大哭]青春结束了", + "plat": 0, + "device": "", + "members": null, + "jump_url": null, + "max_line": 999 + }, + "replies": null, + "assist": 0, + "folder": { + "has_folded": false, + "is_folded": false, + "rule": "" + }, + "up_action": { + "like": false, + "reply": false + }, + "show_follow": false, + "invisible": false, + "reply_control": {} + }, + { + "rpid": 495059, + "oid": 2, + "type": 1, + "mid": 2, + "root": 0, + "parent": 0, + "dialog": 0, + "count": 898, + "rcount": 838, + "floor": 5, + "state": 2, + "fansgrade": 0, + "attr": 0, + "ctime": 1291918239, + "like": 34224, + "action": 0, + "member": null, + "content": { + "message": "wwwww", + "plat": 0, + "device": "", + "members": null, + "jump_url": null, + "max_line": 999 + }, + "replies": null, + "assist": 0, + "folder": { + "has_folded": false, + "is_folded": false, + "rule": "" + }, + "up_action": { + "like": false, + "reply": false + }, + "show_follow": false, + "invisible": false, + "reply_control": {} + }, + { + "rpid": 646408628, + "oid": 2, + "type": 1, + "mid": 33066927, + "root": 0, + "parent": 0, + "dialog": 0, + "count": 173, + "rcount": 160, + "floor": 10914, + "state": 0, + "fansgrade": 0, + "attr": 0, + "ctime": 1519135750, + "like": 7197, + "action": 0, + "member": null, + "content": { + "message": "第一首:来夢緑 - kagome-kagome ~ 月の眷属達カラオケ\n第二首:dBu music - 千年幻想郷 -Aurora sky edition-\n第三首:Sensitive Heart - 千年幻想郷 ~ History of the Moon\n第四首:Yellow-Zebra - 月の律动~Rhythm of the moon~(东方永夜抄 “千年幻想郷 ~ History of the Moon”)\n第五首:工藤舞 - D.S.F.S(ヴォヤージュ1969)\n第六首:Angelic Quasar - かの郷は永き幻の\n第七首:東方永夜抄 - 黒髪のアマンダ\n第八首:君の美術館 - 千年幻想郷 ~ History of the Moon\n\n------------------------\n这些是av:2出现的音乐,应该不会缺少的喵~。(笑) 如果有需要有兴趣的话欢迎复制喵~~(`・ω・´)\n复制的9818楼的\n前排提示:本视频只有大会员能看", + "plat": 0, + "device": "", + "members": null, + "jump_url": null, + "max_line": 999 + }, + "replies": null, + "assist": 0, + "folder": { + "has_folded": false, + "is_folded": false, + "rule": "" + }, + "up_action": { + "like": false, + "reply": false + }, + "show_follow": false, + "invisible": false, + "reply_control": {} + } + ] + } +} +``` + +
+ +## ~~获取指定评论信息~~ + +> https://api.bilibili.com/x/v2/reply/info + +*请求方式:GET* + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | ---- | -------------- | ------ | -------------------------------------------- | +| type | num | 评论区类型代码 | 非必要 | **[类型代码见表](readme.md#评论区类型代码)** | +| oid | num | 目标评论区 id | 非必要 | | +| rpid | num | 目标评论 rpid | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ----------------------------- | -------- | --------------------------------------------- | +| code | num | 返回值 | 0:成功
-400:请求错误
-404:无此项 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | 正确时:obj
错误时:null | 评论条目 | [对象定义见表](readme.md#评论条目对象) | + +**示例:** + +获取视频`av379743801`评论区下`rpid=95737567200`的信息 + +```bash +curl -G 'https://api.bilibili.com/x/v2/reply/info' \ +--data-urlencode 'type=1' \ +--data-urlencode 'oid=379743801' \ +--data-urlencode 'rpid=95737567200' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "rpid": 95737567200, + "oid": 379743801, + "type": 1, + "mid": 293793435, + "root": 0, + "parent": 0, + "dialog": 0, + "count": 34, + "rcount": 34, + "floor": 382, + "state": 0, + "fansgrade": 0, + "attr": 514, + "ctime": 1639916028, + "like": 154, + "action": 0, + "member": { + "mid": "293793435", + "uname": "社会易姐QwQ", + "sex": "男", + "sign": "普通带砖技术宅,爱好MC 编程 电子,是车万人也是术术人,粉丝群:1136462265,博客:shakianee.top", + "avatar": "http://i0.hdslb.com/bfs/face/aebb2639a0d47f2ce1fec0631f412eaf53d4a0be.jpg", + "rank": "10000", + "DisplayRank": "0", + "face_nft_new": 0, + "is_senior_member": 0, + "level_info": { + "current_level": 6, + "current_min": 0, + "current_exp": 0, + "next_exp": 0 + }, + "pendant": { + "pid": 2511, + "name": "初音未来13周年", + "image": "http://i0.hdslb.com/bfs/garb/item/4f8f3f1f2d47f0dad84f66aa57acd4409ea46361.png", + "expire": 0, + "image_enhance": "http://i0.hdslb.com/bfs/garb/item/fe0b83b53e2342b16646f6e7a9370d8a867decdb.webp", + "image_enhance_frame": "http://i0.hdslb.com/bfs/garb/item/127c507ec8448be30cf5f79500ecc6ef2fd32f2c.png" + }, + "nameplate": { + "nid": 4, + "name": "青铜殿堂", + "image": "http://i2.hdslb.com/bfs/face/2879cd5fb8518f7c6da75887994c1b2a7fe670bd.png", + "image_small": "http://i0.hdslb.com/bfs/face/6707c120e00a3445933308fd9b7bd9fad99e9ec4.png", + "level": "普通勋章", + "condition": "单个自制视频总播放数>=1万" + }, + "official_verify": { + "type": -1, + "desc": "" + }, + "vip": { + "vipType": 2, + "vipDueDate": 1675785600000, + "dueRemark": "", + "accessStatus": 0, + "vipStatus": 1, + "vipStatusWarn": "", + "themeType": 0, + "label": { + "path": "", + "text": "年度大会员", + "label_theme": "annual_vip", + "text_color": "#FFFFFF", + "bg_style": 1, + "bg_color": "#FB7299", + "border_color": "" + }, + "avatar_subscript": 1, + "avatar_subscript_url": "http://i0.hdslb.com/bfs/vip/icon_Certification_big_member_22_3x.png", + "nickname_color": "#FB7299" + }, + "fans_detail": null, + "following": 0, + "is_followed": 0, + "user_sailing": null, + "is_contractor": false, + "contract_desc": "" + }, + "content": { + "message": "这款机器背后发热超级严重。。。。。最烫的时候有60-70℃手不敢摸,而发烫后会降频,最低会降到0.6Ghz[笑哭][笑哭]\n现在解决办法已经出来了https://b23.tv/suUd3g7", + "plat": 0, + "device": "", + "members": null, + "jump_url": null, + "max_line": 999 + }, + "replies": null, + "assist": 0, + "folder": { + "has_folded": false, + "is_folded": false, + "rule": "" + }, + "up_action": { + "like": false, + "reply": false + }, + "show_follow": false, + "invisible": false, + "reply_control": {} + } +} +``` + +
+ +## 获取评论区评论总数 + +> https://api.bilibili.com/x/v2/reply/count + +*请求方式:GET* + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | ---- | -------------- | ------ | -------------------------------------------- | +| type | num | 评论区类型代码 | 必要 | **[类型代码见表](readme.md#评论区类型代码)** | +| oid | num | 目标评论区 id | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ----------------------------- | -------- | ------------------------------------------------------------ | +| code | num | 返回值 | 0:成功
-400:请求错误
-404:无此项
12009:评论主体的type不合法 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | 正确时:obj
错误时:null | 数据本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----- | ---- | -------- | ---- | +| count | num | 评论条数 | | + +**示例:** + +获取视频`av2`的评论区总计评论条数 + +```shell +curl -G 'https://api.bilibili.com/x/v2/reply/count' \ +--data-urlencode 'type=1' \ +--data-urlencode 'oid=2' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "count": 65521 + } +} +``` + +
+ diff --git a/docs/comment/readme.md b/docs/comment/readme.md new file mode 100644 index 0000000000..687fe24b3d --- /dev/null +++ b/docs/comment/readme.md @@ -0,0 +1,336 @@ +# 评论区 + + + +评论系统为全站通用,且APP与web端接口共用,以type标明对象类型,以oid指向响应的对象id + +--- + +**继续查看:** + +- [查询类](list.md) +- [操作类](action.md) + +## 评论区类型代码 + +(PS:以下部分内容来源不明,有待验证) + +| 代码 | 评论区类型 | oid 的意义 | +| ---- | ----------------------- | ----------- | +| 1 | 视频稿件 | 稿件 avid | +| 2 | 话题 | 话题 id | +| 4 | 活动 | 活动 id | +| 5 | 小视频 | 小视频 id | +| 6 | 小黑屋封禁信息 | 封禁公示 id | +| 7 | 公告信息 | 公告 id | +| 8 | 直播活动 | 直播间 id | +| 9 | 活动稿件 | (?) | +| 10 | 直播公告 | (?) | +| 11 | 相簿(图片动态) | 相簿 id | +| 12 | 专栏 | 专栏 cvid | +| 13 | 票务 | (?) | +| 14 | 音频 | 音频 auid | +| 15 | 风纪委员会 | 众裁项目 id | +| 16 | 点评 | (?) | +| 17 | 动态(纯文字动态&分享) | 动态 id | +| 18 | 播单 | (?) | +| 19 | 音乐播单 | (?) | +| 20 | 漫画 | (?) | +| 21 | 漫画 | (?) | +| 22 | 漫画 | 漫画 mcid | +| 33 | 课程 | 课程 epid | + +## 评论条目对象 + +| 字段 | 类型 | 内容 | 备注 | +| ------------- | ------------------------------- | ------------------ | ------------------------------------------------------------ | +| rpid | num | 评论 rpid | | +| oid | num | 评论区对象 id | | +| type | num | 评论区类型代码 | **类型代码见上表** | +| mid | num | 发送者 mid | | +| root | num | 根评论 rpid | 若为一级评论则为 0
大于一级评论则为根评论 id | +| parent | num | 回复父评论 rpid | 若为一级评论则为 0
若为二级评论则为根评论 rpid
大于二级评论为上一级评 论 rpid | +| dialog | num | 回复对方 rpid | 若为一级评论则为 0
若为二级评论则为该评论 rpid
大于二级评论为上一级评论 rpid | +| count | num | 二级评论条数 | | +| rcount | num | 回复评论条数 | | +| floor | num | 评论楼层号 | **注:若不支持楼层则无此项** | +| state | num | (?) | | +| fansgrade | num | 是否具有粉丝标签 | 0:无
1:有 | +| attr | num | 某属性位? | | +| ctime | num | 评论发送时间 | 时间戳 | +| rpid_str | str | 评论rpid | 字串格式 | +| root_str | str | 根评论rpid | 字串格式 | +| parent_str | str | 回复父评论rpid | 字串格式 | +| like | num | 评论获赞数 | | +| action | num | 当前用户操作状态 | 需要登录(Cookie 或 APP)
否则恒为 0
0:无
1:已点赞
2:已点踩 | +| member | obj | 评论发送者信息 | | +| content | obj | 评论信息 | | +| replies | 无效时:null
有效时:array | 评论回复条目预览 | **仅嵌套一层**
否则为 null | +| assist | num | (?) | | +| folder | obj | 折叠信息 | | +| up_action | obj | 评论 UP 主操作信息 | | +| show_follow | bool | (?) | | +| invisible | bool | | | +| card_label | obj | 右上角卡片标签信息 | | +| reply_control | obj | 评论提示文案信息 | | + +`评论条目`中的`member`对象: + +| 字段 | 类型 | 内容 | 备注 | +| --------------- | ----------------------------- | ---------------------- | ------------------------------------------------------------ | +| mid | str | 发送者 mid | | +| uname | str | 发送者昵称 | | +| sex | str | 发送者性别 | 男 女 保密 | +| sign | str | 发送者签名 | | +| avatar | str | 发送者头像 url | | +| rank | str | (?) | | +| DisplayRank | str | (?) | | +| level_info | obj | 发送者等级 | | +| pendant | obj | 发送者头像框信息 | | +| nameplate | obj | 发送者勋章信息 | | +| official_verify | obj | 发送者认证信息 | | +| vip | obj | 发送者会员信息 | | +| fans_detail | 无效时:null
有效时:obj | 发送者粉丝标签 | | +| following | num | 是否关注该用户 | 需要登录(Cookie或APP)
否则恒为0
0:未关注
1:已关注 | +| is_followed | num | 是否被该用户关注 | 需要登录(Cookie或APP)
否则恒为0
0:未关注
1:已关注 | +| user_sailing | obj | 发送者评论条目装扮信息 | | +| is_contractor | bool | 是否为合作用户? | | +| contract_desc | str | 合作用户说明? | | + +`member`中的`level_info`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------------- | ---- | -------- | ---- | +| current_level | num | 用户等级 | | +| current_min | num | 0 | | +| current_exp | num | 0 | | +| next_exp | num | 0 | | + +`member`中的`pendant`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------------------- | ---- | -------------- | ---- | +| pid | num | 头像框 id | | +| name | str | 头像框名称 | | +| image | str | 头像框图片 url | | +| expire | num | 0 | | +| image_enhance | str | 头像框图片 url | | +| image_enhance_frame | str | (?) | | + +`member`中的`nameplate`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----------- | ---- | ----------------- | ---- | +| nid | num | 勋章 id | | +| name | str | 勋章名称 | | +| image | str | 挂件图片 url 正常 | | +| image_small | str | 勋章图片 url 小 | | +| level | str | 勋章等级 | | +| condition | str | 勋章条件 | | + +`member`中的`official_verify`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | -------- | ---------------------------------------- | +| type | num | 是否认证 | -1:无
0:个人认证
1:机构认证 | +| desc | str | 认证信息 | 无为空 | + +`member`中的`vip`对象: + +| 字段 | 类型 | 内容 | 备注 | +| -------------------- | ---- | -------------- | --------------------------------------- | +| vipType | num | 大会员类型 | 0:无
1:月会员
2:年以上会员 | +| vipDueDate | num | 大会员到期时间 | 毫秒 时间戳 | +| dueRemark | str | (?) | | +| accessStatus | num | (?) | | +| vipStatus | num | 大会员状态 | 0:无
1:有 | +| vipStatusWarn | str | (?) | | +| theme_type | num | 会员样式 id | | +| label | obj | 会员铭牌样式 | | +| avatar_subscript | num | (?) | | +| avatar_subscript_url | str | (?) | | +| nickname_color | str | 昵称颜色 | | + +`vip`中的`label`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------------ | ---- | ------------ | ------------------------------------------------------------ | +| path | str | (?) | | +| text | str | 会员类型文案 | | +| label_theme | str | 会员类型 | vip:大会员
annual_vip:年度大会员
ten_annual_vip:十年大会员
hundred_annual_vip:百年大会员 | +| text_color | str | 文字颜色? | | +| bg_style | num | (?) | | +| bg_color | str | 背景颜色? | | +| border_color | str | 描边颜色? | | + +`member`中的`fans_detail`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------------- | ---- | ------------ | ---- | +| uid | num | 用户 mid | | +| medal_id | num | 粉丝标签 id | | +| medal_name | str | 粉丝标签名 | | +| score | num | (?) | | +| level | num | 当前标签等级 | | +| intimacy | num | (?) | | +| master_status | num | (?) | | +| is_receive | num | (?) | | + +`member`中的`user_sailing`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----------------- | ----------------------------- | ------------ | ---- | +| pendant | 无效时:null
有效时:obj | 头像框信息 | | +| cardbg | 无效时:null
有效时:obj | 评论卡片装扮 | | +| cardbg_with_focus | null | (?) | | + +`user_sailing`中的`pendant`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------------------- | ---- | -------------- | -------------------------------------- | +| id | num | 头像框 id | | +| name | str | 头像框名称 | | +| image | str | 头像框图片 url | | +| jump_url | str | 空 | | +| type | str | 装扮类型 | suit:一般装扮
vip_suit:vip 装扮 | +| image_enhance | str | (?) | | +| image_enhance_frame | str | (?) | | + +`user_sailing`中的`cardbg`对象: + +| 字段 | 类型 | 内容 | 备注 | +| -------- | ---- | ------------------------ | -------------------------------------- | +| id | num | 评论条目装扮 id | | +| name | str | 评论条目装扮名称 | | +| image | str | 评论条目装扮图片 url | | +| jump_url | str | 评论条目装扮商城页面 url | | +| fan | obj | 粉丝专属信息 | | +| type | str | 装扮类型 | suit:一般装扮
vip_suit:vip 装扮 | + +`cardbg`中的`fan`对象: + +| 字段 | 类型 | 内容 | 备注 | +| -------- | ---- | ------------------ | ---------------- | +| is_fan | num | 是否为粉丝专属装扮 | 0:否
1:是 | +| number | num | 粉丝专属编号 | | +| color | str | 数字颜色 | 颜色码 | +| name | str | 装扮名称 | | +| num_desc | str | 粉丝专属编号 | 字串格式 | + +`评论条目`中的`content`对象: + +| 字段 | 类型 | 内容 | 备注 | +| -------- | ----- | ------------------ | ------------------------------------------------------------ | +| message | str | 评论内容 | **重要** | +| plat | num | 评论发送端 | 1:web端
2:安卓客户端
3:ios 客户端
4:wp 客户端 | +| device | str | 评论发送平台设备 | | +| members | array | at 到的用户信息 | | +| emote | obj | 需要渲染的表情转义 | 评论内容无表情则无此项 | +| jump_url | obj | 需要高亮的超链转义 | | +| max_line | num | 6 | 收起最大行数 | + +`content`中的`members`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | ---------------- | -------------------------------- | +| 0 | obj | at到的用户 1 | 基本同`评论条目`中的`member`对象 | +| n | obj | at到的用户 (n+1) | 项数为at到的不同的用户数 | +| …… | obj | …… | …… | + +`content`中的`emote`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------------ | ---- | ---------------- | -------- | +| {表情转义符} | obj | 表情转义符信息 1 | | +| …… | obj | 表情转义符信息 n | 向下扩展 | + +`emote`中的`{表情转义符}`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---------- | ---- | ------------ | -------------------------------------------------------- | +| id | num | 表情 id | | +| package_id | num | 表情包 id | | +| state | num | 0 | | +| type | num | 表情类型 | 1:免费
2:会员专属
3:购买所得
4:颜文字 | +| attr | num | (?) | | +| text | str | 表情转义符 | | +| url | str | 表情图片 url | | +| meta | obj | 属性信息 | | +| mtime | num | 表情创建时间 | 时间戳 | +| jump_title | str | 表情名称 | | + +`{表情转义符}`中的`meta`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----- | ---- | ------------ | ---------------- | +| size | num | 表情尺寸信息 | 1:小
2:大 | +| alias | str | 简写名 | 无则无此项 | + +`content`中的`jump_url`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---------- | ---- | -------------- | -------- | +| {超链转义} | obj | 超链转义信息 1 | | +| …… | obj | 超链转义信息 n | 向下扩展 | + +`jump_url`中的`{超链转义}`对象: + +| 字段 | 类型 | 内容 | 备注 | +| -------------- | ---- | -------- | ---- | +| title | str | 标题 | | +| state | num | 图标 url | | +| prefixIcon | str | (?) | | +| appUrlSchema | str | (?) | | +| appName | str | (?) | | +| appPackageName | str | (?) | | +| clickReport | str | 上报 id | | + +`评论条目`中的`replies`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | --------- | ------------------------------------------------------------ | +| 0 | obj | 回复条目1 | **为本对象的递归嵌套**
**仅可嵌套一层**
按照热度顺序排列 | +| 1 | obj | 回复条目2 | | +| 2 | obj | 回复条目3 | 最后一项 | + +`评论条目`中的`folder`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---------- | ---- | ---------------------- | ---- | +| has_folded | bool | 是否有被折叠的二级评论 | | +| is_folded | bool | 评论是否被折叠 | | +| rule | str | 相关规则页面 url | | + +`评论条目`中的`up_action`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----- | ---- | ---------------- | ----------------------- | +| like | bool | 是否UP主觉得很赞 | false:否
true:是 | +| reply | bool | 是否被UP主回复 | false:否
true:是 | + +`评论条目`中的`card_label`对象: + +| 字段 | 类型 | 内容 | 备注 | +| -------------------- | ---- | ------------ | ----------------------------- | +| rpid | num | 评论 rpid | | +| text_content | str | 标签文本 | 已知有`妙评` | +| text_color_day | str | 日间文本颜色 | 十六进制颜色值,下同 | +| text_color_night | str | 夜间文本颜色 | | +| label_color_day | str | 日间标签颜色 | | +| label_color_night | str | 夜间标签颜色 | | +| image | str | | 作用不明 | +| type | str | 1 | 作用不明 | +| background | str | 背景图片 url | | +| background_width | num | 背景图片宽度 | | +| background_height | num | 背景图片高度 | | +| jump_url | str | 跳转链接 | | +| effect | num | 0 | 作用不明,可能用于控制动画,下同 | +| effect_start_time | num | 0 | | + +`评论条目`中的`reply_control`对象: + +| 字段 | 类型 | 内容 | 备注 | +| -------------------- | ---- | -------- | -------------------- | +| sub_reply_entry_text | str | 回复提示 | `共 xx 条回复` | +| sub_reply_title_text | str | 回复提示 | `相关回复共有 xx 条` | +| time_desc | str | 时间提示 | `xx 天/小时 前发布` | diff --git a/docs/creativecenter/railgun.md b/docs/creativecenter/railgun.md new file mode 100644 index 0000000000..6b5abafe4e --- /dev/null +++ b/docs/creativecenter/railgun.md @@ -0,0 +1,275 @@ +# 电磁力相关 + +- [获取电磁力等级(web端)](#获取电磁力等级web端) +- [获取电磁力详细数值(双端)](#获取电磁力详细数值双端) +- [获取电磁力数值历史变化(双端)](#获取电磁力数值历史变化双端) + +--- + +电磁力每周日下午刷新 + +## 获取电磁力等级(web端) + +> https://member.bilibili.com/x/web/elec/user + +*请求方式:GET* + +认证方式:仅可Cookie(SESSDATA) + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ----------------------------- | +| code | num | 返回值 | 0:成功
-101:账号未登录 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------ | ---- | ----------- | ---------------- | +| mid | num | 当前用户mid | | +| state | num | 电磁力等级 | | +| reason | str | 空 | **作用尚不明确** | + +**示例:** + +```shell +curl 'https://member.bilibili.com/x/web/elec/user' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "mid": 293793435, + "state": 2, + "reason": "" + } +} +``` + +
+ +## 获取电磁力详细数值(双端) + +> https://api.bilibili.com/studio/up-rating/rating/summary + +*请求方式:GET* + +认证方式:Cookie(SESSDATA)或APP + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ---------- | ---- | ------------ | ----------- | ---- | +| access_key | str | APP登录Token | APP方式必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | ------- | ----------------------------- | +| code | num | 返回值 | 0:成功
-101:账号未登录 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----------------- | ---- | -------------- | ---- | +| date | str | 数据刷新时间 | YYYY-MM-DD | +| level | obj | 电磁力等级 | | +| creative | obj | 创作力 | | +| influence | obj | 影响力 | | +| credit | obj | 信用分 | | + +`data`中的`level` `creative` `influence` `credit`对象: + +| 字段 | 类型 | 内容 | 备注 | +| -------- | ---- | -------- | ---- | +| data | num | 数值 | | +| prev | num | ??? | **作用尚不明确** | +| desc | str | 描述 | | +| date | num | 刷新时间 | 时间戳 | + +**示例:** + +Cookie方式: + +```shell +curl 'https://api.bilibili.com/studio/up-rating/rating/summary' \ +-b 'SESSDATA=xxx' +``` + +APP方式: + +```shell +curl -G 'https://api.bilibili.com/studio/up-rating/rating/summary' \ +--data-urlencode 'access_key=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "date": "2020-07-05", + "level": { + "data": 1, + "prev": 0, + "desc": "正式开启创作之路,希望未来的路上我们携手相伴,创作更多优质内容~", + "date": 1593878400 + }, + "creative": { + "data": 39, + "prev": 39, + "desc": "考察近一年来的创作行为,良好的原创投稿行为和互动数据有助于提升创作力。", + "date": 1593878400 + }, + "influence": { + "data": 54, + "prev": 54, + "desc": "根据近一年活跃粉丝数据进行评估,良好的粉丝活跃度是影响力的基础。", + "date": 1593878400 + }, + "credit": { + "data": 100, + "prev": 100, + "desc": "良好的投稿记录将维持较高的信用分,违反投稿公约的行为将扣除信用分。", + "date": 1594106147 + } + } +} +``` + +
+ +## 获取电磁力数值历史变化(双端) + +> https://api.bilibili.com/studio/up-rating/rating/history + +*请求方式:GET* + +认证方式:Cookie(SESSDATA)或APP + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ---------- | ---- | ------------ | ----------- | -------------- | +| access_key | str | APP登录Token | APP方式必要 | | +| type | num | 目标数据类型 | 必要 | 类型代码见下表 | + +类型代码`type`: + +| 代码 | 含义 | +| ---- | ------ | +| 1 | 创作力 | +| 2 | 影响力 | +| 3 | 信用分 | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------- | +| code | num | 返回值 | 0:成功
-101:账号未登录
-400:请求错误 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----- | ----- | ------------ | -------- | +| date | array | 数据记录时间 | 每周更新 | +| score | array | 电磁力等级 | 每周更新 | + +`data`中的`date`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | ----------------- | -------------- | +| 0 | str | 1周前的日期 | MM-DD | +| n | str | (n+1)周前的日期 | 与数值一一对应 | +| …… | str | …… | …… | +| 7 | str | 8周前的日期 | 最后一条 | + +`data`中的`score`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | ----------------- | -------------- | +| 0 | num | 1周前的数值 | | +| n | num | (n+1)周前的数值 | 与日期一一对应 | +| …… | num | …… | …… | +| 7 | num | 8周前的数值 | 最后一条 | + +**示例:** + +查询创作力的历史变化 + +Cookie方式: + +```shell +curl -G 'https://api.bilibili.com/studio/up-rating/rating/history' \ +--data-urlencode 'type=1' \ +-b 'SESSDATA=xxx' +``` + +APP方式: + +```shell +curl -G 'https://api.bilibili.com/studio/up-rating/rating/history' \ +--data-urlencode 'type=1' \ +--data-urlencode 'access_key=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "date": [ + "05-17", + "05-24", + "05-31", + "06-07", + "06-14", + "06-21", + "06-28", + "07-05" + ], + "score": [ + 48, + 48, + 49, + 49, + 49, + 49, + 49, + 49 + ] + } +} +``` + +
diff --git a/docs/creativecenter/statistics&data.md b/docs/creativecenter/statistics&data.md new file mode 100644 index 0000000000..2e82b05ae1 --- /dev/null +++ b/docs/creativecenter/statistics&data.md @@ -0,0 +1,811 @@ +# 统计与数据 + +- [UP主视频状态数据](#UP主视频状态数据) +- [UP主专栏状态数据](#UP主专栏状态数据) +- [视频数据增量趋势](#视频数据增量趋势) +- [专栏数据增量趋势](#专栏数据增量趋势) +- [稿件操作来源占比情况](#稿件操作来源占比情况) +- [播放来源占比情况(平台及方式)](#播放来源占比情况平台及方式) +- [播放分布情况(粉丝与路人)](#播放分布情况粉丝与路人) + +--- + +统计与数据次日中午12刷新 + +## UP主视频状态数据 + +> https://member.bilibili.com/x/web/index/stat + +*请求方式:GET* + +认证方式:仅可Cookie(SESSDATA) + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ----------------------------- | +| code | num | 返回值 | 0:成功
-101:账号未登录 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | 作用尚不明确 | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----------------- | ---- | -------------- | ---- | +| inc_coin | num | 新增投币数 | | +| inc_elec | num | 新增充电数 | | +| inc_fav | num | 新增收藏数 | | +| inc_like | num | 新增点赞数 | | +| inc_share | num | 新增分享数 | | +| incr_click | num | 新增播放数 | | +| incr_dm | num | 新增弹幕数 | | +| incr_fans | num | 新增粉丝数 | | +| incr_reply | num | 新增评论数 | | +| total_click | num | 总计播放数 | | +| total_coin | num | 总计投币数 | | +| total_dm | num | 总计弹幕数 | | +| total_elec | num | 总计充电数 | | +| total_fans | num | 总计粉丝数 | | +| total_fav | num | 总计收藏数 | | +| total_like | num | 总计点赞数 | | +| total_reply | num | 总计评论数 | | +| total_share | num | 总计分享数 | | + +**示例:** + +```shell +curl 'https://member.bilibili.com/x/web/index/stat' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "inc_coin": 0, + "inc_elec": 0, + "inc_fav": 0, + "inc_like": 0, + "inc_share": 0, + "incr_click": 0, + "incr_dm": 0, + "incr_fans": 1, + "incr_reply": 0, + "total_click": 9, + "total_coin": 1, + "total_dm": 0, + "total_elec": 0, + "total_fans": 29, + "total_fav": 1, + "total_like": 1, + "total_reply": 0, + "total_share": 0 + } +} +``` + +
+ +## UP主专栏状态数据 + +> https://member.bilibili.com/x/web/data/article + +*请求方式:GET* + +认证方式:仅可Cookie(SESSDATA) + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ----------------------------- | +| code | num | 返回值 | 0:成功
-101:账号未登录 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | 作用尚不明确 | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---------- | ---- | ---------- | ---- | +| view | num | 总计阅读数 | | +| reply | num | 总计评论数 | | +| like | num | 总计点赞数 | | +| coin | num | 总计投币数 | | +| fav | num | 总计收藏数 | | +| share | num | 总计分享数 | | +| incr_view | num | 新增阅读数 | | +| incr_reply | num | 新增评论数 | | +| incr_like | num | 新增点赞数 | | +| incr_coin | num | 新增投币数 | | +| incr_fav | num | 新增收藏数 | | +| incr_share | num | 新增分享数 | | + +**示例:** + +```shell +curl 'https://member.bilibili.com/x/web/data/article' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "view": 290, + "reply": 17, + "like": 34, + "coin": 9, + "fav": 15, + "share": 7, + "incr_view": 6, + "incr_reply": 0, + "incr_like": 0, + "incr_coin": 0, + "incr_fav": 0, + "incr_share": 0 + } +} +``` + +
+ +## 视频数据增量趋势 + +> https://member.bilibili.com/x/web/data/article/thirty + +*请求方式:GET* + +认证方式:仅可Cookie(SESSDATA) + +数据为前30天 + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | ---- | ------------ | ------ | -------------- | +| type | num | 目标数据类型 | 必要 | 类型代码见下表 | + +类型代码`type`: + +| 代码 | 含义 | +| ---- | ---- | +| 1 | 播放 | +| 2 | 弹幕 | +| 3 | 评论 | +| 4 | 分享 | +| 5 | 投币 | +| 6 | 收藏 | +| 7 | 充电 | +| 8 | 点赞 | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ----- | -------- | ------------------------------------------------- | +| code | num | 返回值 | 0:成功
-101:账号未登录
-400:请求错误 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | 作用尚不明确 | +| data | array | 趋势列表 | | + +`data`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | ----------------- | -------- | +| 0 | obj | 1天前的数据 | | +| n | obj | (n+1)天前的数据 | | +| …… | obj | …… | …… | +| 29 | obj | 30天前的数据 | 最后一条 | + +`data`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| --------- | ---- | -------- | -------------------- | +| date_key | num | 对应时间 | 时间戳 前一天的8:00 | +| total_inc | num | 增加数量 | 意义为数据类型决定 | + +**示例:** + +查询30天前的视频播放增量趋势,可知`2020-04-05`的播放增量为`46`,`2020-04-04`的播放增量为`58` + +```shell +curl -G 'https://member.bilibili.com/x/web/data/pandect' \ +--data-urlencode 'type=1' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": [{ + "date_key": 1586044800, + "total_inc": 46 + }, { + "date_key": 1585958400, + "total_inc": 58 + }, { + "date_key": 1585872000, + "total_inc": 81 + }, { + "date_key": 1585785600, + "total_inc": 90 + }, { + "date_key": 1585699200, + "total_inc": 62 + }, { + "date_key": 1585612800, + "total_inc": 70 + }, + ………… + ] +} +``` + +
+ +## 专栏数据增量趋势 + +> https://member.bilibili.com/x/web/data/article/thirty + +*请求方式:GET* + +认证方式:仅可Cookie(SESSDATA) + +数据为前30天 + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | ---- | ------------ | ------ | -------------- | +| type | num | 目标数据类型 | 必要 | 类型代码见下表 | + +类型代码`type`: + +| 代码 | 含义 | +| ---- | ---- | +| 1 | 阅读 | +| 2 | 评论 | +| 3 | 分享 | +| 4 | 投币 | +| 5 | 收藏 | +| 6 | 点赞 | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ----- | -------- | ------------------------------------------------- | +| code | num | 返回值 | 0:成功
-101:账号未登录
-400:请求错误 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | 作用尚不明确 | +| data | array | 趋势列表 | | + +`data`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | ------------------ | -------- | +| 0 | obj | 30天前的数据 | | +| n | obj | (30-n)天前的数据 | | +| …… | obj | …… | …… | +| 29 | obj | 1天前的数据 | 最后一条 | + +`data`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| --------- | ---- | -------- | -------------------- | +| date_key | num | 对应时间 | 时间戳 前一天的8:00 | +| total_inc | num | 增加数量 | 意义为数据类型决定 | + +**示例:** + +查询30天前的文章阅读增量趋势,可知`2020-04-05`的阅读增量为`6`,`2020-04-04`的阅读增量为`6` + +```shell +curl -G 'https://member.bilibili.com/x/web/data/article/thirty' \ +--data-urlencode 'type=1' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": [ + ………… + { + "date_key": 1585699200, + "total_inc": 6 + }, { + "date_key": 1585785600, + "total_inc": 6 + }, { + "date_key": 1585872000, + "total_inc": 4 + }, { + "date_key": 1585958400, + "total_inc": 6 + }, { + "date_key": 1586044800, + "total_inc": 6 + }] +} +``` + +
+ +## 稿件操作来源占比情况 + +> https://member.bilibili.com/x/web/data/survey + +*请求方式:GET* + +认证方式:仅可Cookie(SESSDATA) + +数据为上一天的 + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | ---- | ------------ | ------ | -------------- | +| type | num | 目标数据类型 | 必要 | 类型代码见下表 | + +类型代码`type`: + +| 代码 | 含义 | +| ---- | ---- | +| 1 | 播放 | +| 2 | 弹幕 | +| 3 | 评论 | +| 4 | 分享 | +| 5 | 投币 | +| 6 | 收藏 | +| 7 | 充电 | +| 8 | 点赞 | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------- | +| code | num | 返回值 | 0:成功
-101:账号未登录
-400:请求错误 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | 作用尚不明确 | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------------ | ---- | ------------ | ------------ | +| {YYYYMMDD} | obj | 上一天的情况 | 字段名为日期 | + +`data`中的`{YYYYMMDD}`对象: + +| 字段 | 类型 | 内容 | 备注 | +| --------- | ------ | ------------ | ---- | +| arc_inc | array | 稿件情况 | | +| total_inc | num | 总计增长情况 | | +| type_rank | obj | 分区排名情况 | | + +`{YYYYMMDD}`中的`arc_inc`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | ----------- | ---- | +| 0 | obj | 稿件1 | | +| n | obj | 稿件(n+1) | | +| …… | obj | …… | …… | + +`{YYYYMMDD}`中的`arc_inc`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----------- | ---- | -------------- | ------------ | +| aid | num | 稿件avid | | +| bvid | str | 稿件bvid | | +| daytime | num | 统计时间 | 时间戳 | +| incr | num | 稿件增长情况数 | | +| interactive | num | 0 | 作用尚不明确 | +| ptime | num | 稿件发布时间 | 时间戳 | +| title | str | 稿件标题 | | + +`{YYYYMMDD}`中的`type_rank`对象: + +| 字段 | 类型 | 内容 | 备注 | +| -------- | ---- | -------- | ---- | +| {分区名} | num | 该排名数 | | +| …… | num | …… | …… | + +**示例:** + +查询我的稿件来源占比情况 + +```shell +curl -G 'https://member.bilibili.com/x/web/data/survey' \ +--data-urlencode 'type=1' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "20200418": { + "arc_inc": [{ + "aid": 94916552, + "bvid": "BV1ZE411K7ux", + "incr": 18, + "title": "【8-bit】影 流 之 主(爱河)", + "daytime": 1587155030, + "ptime": 1583760165, + "interactive": 0 + }, { + "aid": 98948772, + "bvid": "BV1n741127LD", + "incr": 14, + "title": "【特斯拉线圈】组装迷你SSTC", + "daytime": 1587155030, + "ptime": 1585054436, + "interactive": 0 + }, { + "aid": 37294890, + "bvid": "BV1kt411D7yW", + "incr": 9, + "title": "【病毒】彩虹猫可以调速还带有计时器 MEMZ重构升级版", + "daytime": 1587155030, + "ptime": 1543775696, + "interactive": 0 + }, + ………… + ], + "total_inc": 55, + "type_rank": { + "生活": 1392, + "科技": 1597, + "音乐": 1058 + } + } + } +} +``` + +
+ +## 播放来源占比情况(平台及方式) + +> https://member.bilibili.com/x/web/data/playsource + +*请求方式:GET* + +认证方式:仅可Cookie(SESSDATA) + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ----------------------------- | +| code | num | 返回值 | 0:成功
-101:账号未登录 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | 作用尚不明确 | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| --------------- | ---- | ------------ | ---- | +| page_source | obj | 播放方式情况 | | +| play_proportion | obj | 播放平台情况 | | + +`data`中的`page_source`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------------- | ---- | ------------------------- | ---- | +| dynamic | num | 通过动态 | | +| other | num | 其他方式 | | +| related_video | num | 通过推荐列表 | | +| search | num | 通过搜索 | | +| space | num | 空间列表播放 | | +| tenma | num | 天马(APP推荐信息流)来源 | | + +`data`中的`play_proportion`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | ------------ | ---- | +| android | num | 安卓端 | | +| h5 | num | 移动端h5页面 | | +| ios | num | ios端 | | +| out | num | 站外 | | +| pc | num | 电脑版网页 | | + +**示例:** + +```shell +curl 'https://member.bilibili.com/x/web/data/playsource' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "play_proportion": { + "android": 6060, + "h5": 410, + "ios": 1325, + "out": 0, + "pc": 2137 + }, + "page_source": { + "dynamic": 173, + "other": 1440, + "related_video": 1813, + "search": 1980, + "space": 501, + "tenma": 4087 + } + } +} +``` + +
+ +## 播放分布情况(粉丝与路人) + +> https://member.bilibili.com/x/web/data/base + +*请求方式:GET* + +认证方式:仅可Cookie(SESSDATA) + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ----------------------------- | +| code | num | 返回值 | 0:成功
-101:账号未登录 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | 作用尚不明确 | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----------- | ---- | ------------ | ---- | +| period | obj | 提示信息 | | +| viewer_area | obj | 播放地区情况 | | +| viewer_base | obj | 播放数据情况 | | + +`data`中的`period`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------------ | ---- | ---- | ---- | +| module_one | str | ??? | | +| module_two | str | ??? | | +| module_three | str | ??? | | +| module_four | str | ??? | | + +`data`中的`viewer_area`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | ---------------- | ---- | +| fan | obj | 粉丝播放地区情况 | | +| not_fan | obj | 路人播放地区情况 | | + +`viewer_area`中的`fan`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---------- | ---- | ------------------ | ---------------- | +| {行政区名} | num | 该地区的粉丝播放量 | 字段名为行政区名 | +| …… | num | …… | …… | + +`viewer_area`中的`not_fan`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---------- | ---- | ------------------ | ---------------- | +| {行政区名} | num | 该地区的路人播放量 | 字段名为行政区名 | +| …… | num | …… | …… | + +`data`中的`viewer_base`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | ---------------- | ---- | +| fan | obj | 粉丝播放数据情况 | | +| not_fan | obj | 路人播放数据情况 | | + +`viewer_base`中的`fan`对象: + +| 字段 | 类型 | 内容 | 备注 | +| -------------- | ---- | ------------------ | ---- | +| male | num | 男性粉丝播放数 | | +| female | num | 女性粉丝播放数 | | +| age_one | num | 0-16岁粉丝播放数 | | +| age_two | num | 16-25岁粉丝播放数 | | +| age_three | num | 25-40岁粉丝播放数 | | +| age_four | num | 40+岁粉丝播放数 | | +| plat_pc | num | pc网页端粉丝播放数 | | +| plat_h5 | num | 移动h5端粉丝播放数 | | +| plat_out | num | 站外端粉丝播放数 | | +| plat_ios | num | ios端粉丝播放数 | | +| plat_android | num | 安卓端粉丝播放数 | | +| plat_other_app | num | 其他粉丝播放数 | | + +`viewer_base`中的`not_fan`对象: + +| 字段 | 类型 | 内容 | 备注 | +| -------------- | ---- | ------------------ | ---- | +| male | num | 男性路人播放数 | | +| female | num | 女性路人播放数 | | +| age_one | num | 0-16岁路人播放数 | | +| age_two | num | 16-25岁路人播放数 | | +| age_three | num | 25-40岁路人播放数 | | +| age_four | num | 40+岁路人播放数 | | +| plat_pc | num | pc网页端路人播放数 | | +| plat_h5 | num | 移动h5端路人播放数 | | +| plat_out | num | 站外端路人播放数 | | +| plat_ios | num | ios端路人播放数 | | +| plat_android | num | 安卓端路人播放数 | | +| plat_other_app | num | 其他路人播放数 | | + +**示例:** + +```shell +curl 'https://member.bilibili.com/x/web/data/base' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "period": { + "module_one": "各维度每日12:00 a.m. 更新前一日数据", + "module_two": "每日12:00 a.m. 更新前一日数据", + "module_three": "每周二12:00 a.m. 更新前一周数据", + "module_four": "各维度每日12:00 a.m. 更新前一日数据" + }, + "viewer_area": { + "fan": { + "上海": 7, + "中国台湾": 2, + "云南": 6, + "内蒙古": 8, + "北京": 14, + "吉林": 4, + "四川": 4, + "天津": 11, + "宁夏": 1, + "安徽": 8, + "山东": 18, + "山西": 10, + "广东": 50, + "广西": 7, + "新疆": 2, + "江苏": 17, + "江西": 6, + "河北": 13, + "河南": 13, + "浙江": 20, + "海南": 1, + "湖北": 13, + "湖南": 13, + "甘肃": 4, + "福建": 10, + "贵州": 4, + "辽宁": 9, + "重庆": 5, + "陕西": 93, + "香港特别行政区": 1, + "黑龙江": 12 + }, + "not_fan": { + "上海": 28, + "中国台湾": 3, + "云南": 22, + "内蒙古": 15, + "北京": 53, + "吉林": 20, + "四川": 60, + "天津": 18, + "宁夏": 7, + "安徽": 43, + "山东": 81, + "山西": 31, + "广东": 176, + "广西": 81, + "新疆": 11, + "江苏": 93, + "江西": 26, + "河北": 50, + "河南": 84, + "浙江": 97, + "海南": 10, + "湖北": 43, + "湖南": 43, + "甘肃": 14, + "福建": 54, + "西藏": 1, + "贵州": 16, + "辽宁": 47, + "重庆": 31, + "陕西": 102, + "青海": 2, + "香港特别行政区": 4, + "黑龙江": 25 + } + }, + "viewer_base": { + "fan": { + "male": 153, + "female": 24, + "age_one": 91, + "age_two": 174, + "age_three": 77, + "age_four": 53, + "plat_pc": 12072, + "plat_h5": 186, + "plat_out": 0, + "plat_ios": 23453, + "plat_android": 87387, + "plat_other_app": 1631 + }, + "not_fan": { + "male": 462, + "female": 72, + "age_one": 425, + "age_two": 445, + "age_three": 360, + "age_four": 188, + "plat_pc": 64760, + "plat_h5": 660, + "plat_out": 1, + "plat_ios": 111259, + "plat_android": 467767, + "plat_other_app": 3408 + } + } + } +} +``` + +
diff --git a/docs/danmaku/action.md b/docs/danmaku/action.md new file mode 100644 index 0000000000..3c38836184 --- /dev/null +++ b/docs/danmaku/action.md @@ -0,0 +1,822 @@ +# 弹幕操作 + +- [发送视频弹幕](#发送视频弹幕) +- [发送互动弹幕](#发送互动弹幕) +- [撤回弹幕](#撤回弹幕) +- [购买高级弹幕发送权限](#购买高级弹幕发送权限) +- [检测高级弹幕发送权限](#检测高级弹幕发送权限) +- [查询弹幕点赞数](#查询弹幕点赞数) +- [点赞弹幕](#点赞弹幕) +- [举报弹幕](#举报弹幕) +- [保护&删除弹幕](#保护&删除弹幕) +- [修改字幕池](#修改字幕池) + +--- + +## 发送视频弹幕 + +> https://api.bilibili.com/x/v2/dm/post + +*请求方式:POST* + +认证方式:Cookie(SESSDATA)或APP + +此接口与漫画弹幕相同 + +`mode=6`的逆向弹幕与`mode=8`的代码弹幕不可发送 + +**正文参数( application/x-www-form-urlencoded ):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ---------- | ---- | ------------------------ | -------------- | ------------------------------------------------------------ | +| access_key | str | APP登录Token | APP方式必要 | | +| type | num | 弹幕类选择 | 必要 | 1:视频弹幕 | +| oid | num | 视频cid | 必要 | | +| msg | str | 弹幕内容 | 必要 | 长度小于100字符 | +| bvid | str | 稿件bvid | 必要(可选) | avid与bvid任选一个 | +| aid | num | 稿件avid | 必要(可选) | avid与bvid任选一个 | +| progress | num | 弹幕出现在视频内的时间 | 非必要 | 单位为毫秒
默认为0 | +| color | num | 弹幕颜色设置 | 非必要 | 十进制RGB888值
默认为16777215(#FFFFFF)白色 | +| fontsize | num | 弹幕字号设置 | 非必要 | 默认为25
极小:12
超小:16
小:18
标准:25
大:36
超大:45
极大:64 | +| pool | num | 弹幕池选择 | 非必要 | 0:普通池
1:字幕池
2:特殊池(代码/BAS弹幕)
默认为0 | +| mode | num | 弹幕类型选择 | 必要 | 1:普通弹幕
4:底部弹幕
5:顶部弹幕
7:高级弹幕
9:BAS弹幕(`pool`必须为2) | +| rnd | num | 当前时间戳*1000000 | 非必要 | **若无此项,则发送弹幕冷却时间限制为90s**
若有此项,则发送弹幕冷却时间限制为5s | +| csrf | str | CSRF Token(位于cookie) | Cookie方式必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------------------ | +| code | num | 返回值 | 0:成功
-101:账号未登录
-102:账号被封停
-111:csrf校验失败
-400:请求错误
-404:无此项
36700:系统升级中
36701:弹幕包含被禁止的内容
36702:弹幕长度大于100
36703:发送频率过快
36704:禁止向未审核的视频发送弹幕
36705:您的等级不足,不能发送弹幕
36706:您的等级不足,不能发送顶端弹幕
36707:您的等级不足,不能发送底端弹幕
36708:您的等级不足,不能发送彩色弹幕
36709:您的等级不足,不能发送高级弹幕
36710:您的权限不足,不能发送这种样式的弹幕
36711:该视频禁止发送弹幕
36712:level 1用户发送弹幕的最大长度为20
36713:稿件未付费
36714:弹幕发送时间不合法
36715:当日操作数量超过上限 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| -------- | ---- | -------- | ------------ | +| action | str | 空 | 作用尚不明确 | +| dmid | num | 弹幕dmid | | +| dmid_str | str | 弹幕dmid | 字串形式 | +| visible | bool | true | 作用尚不明确 | + +**示例:** + +为视频`av2`/`BV1xx411c7mD`(cid为`62131`)的5000ms位置发送一条弹幕`前来考古`(颜色为#FFFFFF,字号25,普通弹幕,游动弹幕) + +```shell +curl 'https://api.bilibili.com/x/v2/dm/post' \ +--data-urlencode 'type=1' \ +--data-urlencode 'oid=62131' \ +--data-urlencode 'msg=前来考古' \ +--data-urlencode 'aid=2' \ +--data-urlencode 'progress=5000' \ +--data-urlencode 'color=16777215' \ +--data-urlencode 'fontsize=25' \ +--data-urlencode 'pool=0' \ +--data-urlencode 'mode=1' \ +--data-urlencode 'rnd=3456789987654321' \ +--data-urlencode 'csrf=xxx' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code":0, + "message":"0", + "ttl":1, + "data":{ + "action":"", + "dmid":32161968826613767, + "dmid_str":"32161968826613767", + "visible":true + } +} +``` + +
+ +## 发送互动弹幕 + +> https://api.bilibili.com/x/v2/dm/command/post + +*请求方式:POST* + +认证方式:Cookie(SESSDATA)或APP + +2020-09-25 B站更新了互动弹幕功能,包括UP主头像弹幕、关联视频弹幕、视频内嵌引导关注按钮三大功能 + +详情见: + +[【客户端更新】6.10版本更新!UP主支持发布关联视频弹幕]( https://www.bilibili.com/read/cv7728299 ) + + [引导关注卡片]( https://www.bilibili.com/blackboard/activity-c8a0iDRQy.html ) + +**正文参数( application/x-www-form-urlencoded ):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ---------- | ---- | ------------------------ | -------------- | ------------------------------------------------------------ | +| access_key | str | APP登录Token | APP方式必要 | | +| type | num | 互动弹幕类型 | 必要 | 1:UP主头像弹幕
2:关联视频弹幕
5:视频内嵌引导关注按钮 | +| aid | num | 稿件avid | 必要 | | +| cid | num | 视频cid | 必要 | | +| progress | num | 弹幕出现在视频内的时间 | 非必要 | 单位为毫秒
默认为0 | +| plat | num | 平台标识 | 必要 | 1:web端
2:安卓端
8:视频管理页面 | +| data | str | json序列 | 必要 | | +| dmid | num | 修改互动弹幕的弹幕id | 非必要 | 注:修改弹幕`plat`必须为8 | +| csrf | str | CSRF Token(位于cookie) | Cookie方式必要 | | + +`data`参数json序列: + +类型为【UP主头像弹幕】时: + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | -------- | ---- | +| msg | str | 弹幕内容 | | + +类型为【关联视频弹幕】时: + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | -------------- | ---- | +| msg | str | 弹幕内容 | | +| bvid | str | 关联视频的bvid | | + +类型为【视频内嵌引导关注按钮】时: + +| 字段 | 类型 | 内容 | 备注 | +| -------- | ---- | -------- | --------------- | +| duration | num | 持续时间 | 单位为毫秒 | +| posX | num | X坐标 | 区间:[118-549] | +| posY | num | Y坐标 | 区间:[82-293] | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ----------------------------- | -------- | ------------------------------------------------------------ | +| code | num | 返回值 | 0:成功
-101:账号未登录
-102:账号被封停
-111:csrf校验失败
-400:请求错误
-404:无此项
-500:服务器错误
36711:该视频禁止发送弹幕
79026:发送失败,请勿填写当前稿件bvid
79024:发送失败,请输入正确的bvid
79036:该指令弹幕超出限制
79037:关注弹幕坐标溢出 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | 正确时:obj
错误时:null | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| -------- | ---- | ---------------------- | ------------------------------------------------------------ | +| command | str | 指令? | UP主头像弹幕:#UP#
关联视频弹幕:#LINK#
视频内嵌引导关注按钮:#ATTENTION# | +| content | str | 弹幕内容 | | +| extra | str | 弹幕数据 | json序列 | +| id | num | 弹幕dmid | | +| idStr | str | 弹幕dmid | 字串形式 | +| mid | num | 用户mid | | +| oid | num | 视频cid | | +| progress | num | 弹幕出现在视频内的时间 | | +| type | num | 互动弹幕类型 | 1:UP主头像弹幕
2:关联视频弹幕
5:视频内嵌引导关注按钮 | + +`extra`序列数据: + +类型为【UP主头像弹幕】时: + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | ----------- | ---- | +| icon | str | UP主头像url | | + +类型为【关联视频弹幕】时: + +| 字段 | 类型 | 内容 | 备注 | +| ----- | ---- | -------------- | ---- | +| aid | num | 关联视频的avid | | +| title | str | 关联视频的标题 | | +| bvid | str | 关联视频的bvid | | + +类型为【视频内嵌引导关注按钮】时: + +| 字段 | 类型 | 内容 | 备注 | +| -------- | ---- | ------------ | ------------------------------------------ | +| duration | num | 持续时间 | 单位为毫秒 | +| posX | num | X坐标 | 区间:[118-549] | +| posY | num | Y坐标 | 区间:[82-293] | +| icon | str | 按钮图片url | 不应该是关注按钮吗,但这个是圆形的 | +| type | num | 关注按钮类型 | 0:仅关注
1:仅三联
2:关注+三联 | + +**示例:** + +为视频`av201947622`(cid为`230709860`)的5000ms位置发送一条UP主头像弹幕`test` + +```shell +curl 'https://api.bilibili.com/x/v2/dm/command/post' \ +--data-urlencode 'type=1' \ +--data-urlencode 'aid=201947622' \ +--data-urlencode 'cid=230709860' \ +--data-urlencode 'progress=5000' \ +--data-urlencode 'plat=1' \ +--data-urlencode 'data={"msg":"test"}' \ +--data-urlencode 'csrf=xxx' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "id": 39053842117558279, + "oid": 230709860, + "mid": 293793435, + "type": 1, + "command": "#UP#", + "content": "test", + "extra": "{\"icon\":\"http://i0.hdslb.com/bfs/face/aebb2639a0d47f2ce1fec0631f412eaf53d4a0be.jpg\"}", + "idStr": "39053842117558279" + } +} +``` + +
+ +为视频`av201947622`(cid为`230709860`)的5000ms位置发送一条发送关联视频弹幕`测试1234`关联视频为`BV1kz4y1X7XP` + +```shell +curl 'https://api.bilibili.com/x/v2/dm/command/post' \ +--data-urlencode 'type=2' \ +--data-urlencode 'aid=201947622' \ +--data-urlencode 'cid=230709860' \ +--data-urlencode 'progress=5000' \ +--data-urlencode 'plat=1' \ +--data-urlencode 'data={"bvid":"BV1kz4y1X7XP","msg":"测试1234"}' \ +--data-urlencode 'csrf=xxx' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "id": 39054383689236483, + "oid": 230709860, + "mid": 293793435, + "type": 2, + "command": "#LINK#", + "content": "测试1234", + "progress": 11925, + "extra": "{\"aid\":583785685,\"title\":\"【cmd】访问api 命令行也能上B站\",\"bvid\":\"BV1kz4y1X7XP\"}", + "idStr": "39054383689236483" + } +} +``` + +
+ + +为视频`av201947622`(cid为`230709860`)的5000ms位置发送视频内嵌引导关注按钮,X坐标为118,Y坐标为82,持续时间为5000ms + +```shell +curl 'https://api.bilibili.com/x/v2/dm/command/post' \ +--data-urlencode 'type=5' \ +--data-urlencode 'aid=201947622' \ +--data-urlencode 'cid=230709860' \ +--data-urlencode 'progress=5000' \ +--data-urlencode 'plat=1' \ +--data-urlencode 'data={"duration":5000,"posX":118,"posY":82}' \ +--data-urlencode 'csrf=xxx' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "id": 39055158405496839, + "oid": 230709860, + "mid": 293793435, + "type": 5, + "command": "#ATTENTION#", + "progress": 5000, + "extra": "{\"duration\":5000,\"posX\":118,\"posY\":82}", + "idStr": "39055158405496839" + } +} +``` + +
+ + +## 撤回弹幕 + +> https://api.bilibili.com/x/dm/recall + +*请求方式:POST* + +认证方式:Cookie(SESSDATA)或APP + +仅能撤回自己两分钟内的弹幕,且每天只有3次机会 + +**正文参数( application/x-www-form-urlencoded ):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ---------- | ---- | ------------------------ | -------------- | ---- | +| access_key | str | APP登录Token | APP方式必要 | | +| dmid | num | 弹幕dmid | 必要 | | +| cid | num | 视频cid | 必要 | | +| csrf | str | CSRF Token(位于cookie) | Cookie方式必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------------------ | +| code | num | 返回值 | 0:成功
-101:账号未登录
-102:账号被封停
-111:csrf校验失败
-400:请求错误
-404:无此项
36301:撤回失败,弹幕发送已过2分钟
36302:撤回失败,弹幕已经被删除或撤回
36303:撤回失败,今天撤回的机会已经用完
36304:撤回失败,服务器出错 | +| message | str | 错误信息 | 成功后显示剩余次数 | +| ttl | num | 1 | | + +**示例:** + +撤回`cid=168901231`下的弹幕`32310301474947077`的弹幕 + +```shell +curl 'https://api.bilibili.com/x/dm/recall' \ +--data-urlencode 'cid=168901231' \ +--data-urlencode 'dmid=32310301474947077' \ +--data-urlencode 'csrf=xxx' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "撤回成功,你还有3次撤回机会" +} +``` + +
+ +## 购买高级弹幕发送权限 + +> https://api.bilibili.com/x/dm/adv/buy + +*请求方式:POST* + +认证方式:Cookie(SESSDATA)或APP + +购买一次需要2硬币,同时向up主发送请求 + +**正文参数( application/x-www-form-urlencoded ):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ---------- | ---- | ------------------------ | -------------- | ---- | +| access_key | str | APP登录Token | APP方式必要 | | +| mode | str | sp | 必要 | | +| cid | num | 视频cid | 必要 | | +| csrf | str | CSRF Token(位于cookie) | Cookie方式必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------------------ | +| code | num | 返回值 | 0:成功
-101:账号未登录
-102:账号被封停
-111:csrf校验失败
-107:硬币不足
-400:请求错误
36007:不允许购买
36009:正在确认中
36010:已购买 | +| message | str | 返回信息 | | +| ttl | num | 1 | | + +示例: + +购买视频cid为`168901231`的高级弹幕发送权限 + +```shell +curl 'https://api.bilibili.com/x/dm/adv/buy' \ +--data-urlencode 'cid=168901231' \ +--data-urlencode 'mode=sp' \ +--data-urlencode 'csrf=xxx' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code":0, + "message":"已成功购买" +} +``` + +
+ +## 检测高级弹幕发送权限 + +> https://api.bilibili.com/x/dm/adv/state + +*请求方式:GET* + +认证方式:Cookie(SESSDATA)或APP + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ---------- | ---- | ------------ | ----------- | ---- | +| access_key | str | APP登录Token | APP方式必要 | | +| mode | str | sp | 必要 | | +| cid | num | 视频cid | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ----------------------------- | ---------------- | -------------------------------------------------- | +| code | num | 返回值 | 0:成功
-101:账号未登录
--400:请求错误 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | 有效时:obj
无效时:null | 有效时:信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | ---------------- | ------------------------------------------ | +| coins | num | 需要支付的硬币数 | | +| confirm | num | 是否同意 | 1:同意
2:未同意
未购买时无此项 | +| accept | bool | 是否允许申请 | true:允许
false:不允许 | +| hasBuy | bool | 是否已购买 | true:已购买
未购买时无此项 | + +**示例:** + +查询视频cid为`168901231`的视频高级弹幕权限购买状态 + +当前状态为已购买且同意 + +```shell +curl -G 'https://api.bilibili.com/x/dm/adv/state' \ +--data-urlencode 'cid=168901231' \ +--data-urlencode 'mode=sp' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "coins": 2, + "confirm": 1, + "accept": true, + "hasBuy": true + } +} +``` + +
+ +## 查询弹幕点赞数 + +> https://api.bilibili.com/x/v2/dm/thumbup/stats + +*请求方式:GET* + +认证方式:Cookie(SESSDATA)或APP + +**url参数:** +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ---------- | ---- | ------------ | ----------- | ------------------- | +| access_key | str | APP登录Token | APP方式必要 | | +| oid | num | 视频cid | 必要 | | +| ids | nums | 弹幕dmid列表 | 必要 | 多个id之间用`,`分隔 | + +**json回复** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | --------------------------- | +| code | num | 返回值 | 0:成功
-400:请求错误 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| -------- | ---- | ---------------- | --------------------------------- | +| {弹幕id} | obj | 弹幕id对应的信息 | id分别对应请求参数中的`ids`,下同 | +| …… | obj | 弹幕id对应的信息 | | + +`{弹幕id}`对象: + +| 字段 | 类型 | 内容 | 备注 | +| --------- | ---- | -------- | ------------------------------------------------------------ | +| likes | num | 点赞数 | | +| user_like | num | 是否点赞 | 0:未点赞
1:已点赞
需要登录(Cookie或APP)
未登录恒为0 | +| id_str | str | 弹幕dmid | | + +**示例** + +查询`cid=236871317`下的弹幕`35600074482384899`、`38880975220375559`、`39052528418553863`点赞数 + +```shell +curl -G 'https://api.bilibili.com/x/v2/dm/thumbup/stats' \ +--data-urlencode 'oid=236871317' \ +--data-urlencode 'ids=39019145405661191,38880975220375559,39052528418553863' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "38880975220375559": { + "likes": 1, + "user_like": 1, + "id_str": "38880975220375559" + }, + "39019145405661191": { + "likes": 3, + "user_like": 1, + "id_str": "39019145405661191" + }, + "39052528418553863": { + "likes": 2, + "user_like": 0, + "id_str": "39052528418553863" + } + } +} +``` + +
+ +## 点赞弹幕 + +> https://api.bilibili.com/x/v2/dm/thumbup/add + +*请求方式:POST* + +认证方式:Cookie(SESSDATA)或APP + +**正文参数( application/x-www-form-urlencoded ):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ---------- | ---- | ------------------------ | -------------- | ------------------------ | +| access_key | str | APP登录Token | APP方式必要 | | +| dmid | num | 弹幕dmid | 必要 | | +| oid | num | 视频cid | 必要 | | +| op | num | 操作 | 必要 | 1:点赞
2:取消点赞 | +| platform | str | 平台 | 非必要 | | +| csrf | str | CSRF Token(位于cookie) | Cookie方式必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +|---------|-----|------|------------------------------------------------------------------------------------------------------------------------------------| +| code | num | 返回值 | 0:成功
-101:账号未登录
-111:csrf 校验失败
-400:请求错误
36106:该弹幕已被删除
36805:该视频禁止点赞弹幕
65004:取消赞失败 未点赞过
65006:已赞过 | +| message | str | 错误信息 | 默认为0 | +| tll | num | 1 | | + +**示例** + +为`cid=145928946`下的弹幕`35600074482384899`点赞 + +```shell +curl 'https://api.bilibili.com/x/v2/dm/thumbup/add' \ +--data-urlencode 'dmid=35600074482384899' \ +--data-urlencode 'oid=145928946' \ +--data-urlencode 'op=1' \ +--data-urlencode 'platform=web_player' \ +--data-urlencode 'csrf=xxx' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code":0, + "message":"0", + "ttl":1 +} +``` + +
+ +## 举报弹幕 + +> https://api.bilibili.com/x/dm/report/add + +*请求方式:POST* + +认证方式:Cookie(SESSDATA)或APP + +**正文参数( application/x-www-form-urlencoded ):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ---------- | ---- | ------------------------ | -------------- | ------------------ | +| access_key | str | APP登录Token | APP方式必要 | | +| cid | num | 视频cid | 必要 | | +| dmid | num | 弹幕dmid | 必要 | | +| reason | num | 举报类型 | 必要 | **类型代码见下表** | +| content | str | 其他举报备注 | 非必要 | `reason=11`时有效 | +| csrf | str | CSRF Token(位于cookie) | Cookie方式必要 | | + +举报类型`reason`: + +| 代码 | 含义 | +| ---- | ---------- | +| 1 | 违法违禁 | +| 2 | 色情低俗 | +| 3 | 赌博诈骗 | +| 4 | 人身攻击 | +| 5 | 侵犯隐私 | +| 6 | 垃圾广告 | +| 7 | 引战 | +| 8 | 剧透 | +| 9 | 恶意刷屏 | +| 10 | 视频无关 | +| 11 | 其他 | +| 12 | 青少年不良 | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------------------ | +| code | num | 返回值 | 0:成功
-101:账号未登录
-111:csrf 校验失败
-400:请求错误
36201:举报弹幕不存在
36203:举报原因类型错误
36204:已举报 | +| message | str | 错误信息 | 默认为空 | +| tll | num | 1 | 举报失败时 | + +**示例** + +举报`cid=145928946`下的弹幕`35600074482384899`,理由是`引战` + +```shell +curl 'https://api.bilibili.com/x/dm/report/add' \ +--data-urlencode 'cid=145928946' \ +--data-urlencode 'dmid=35600074482384899' \ +--data-urlencode 'reason=7' \ +--data-urlencode 'csrf=xxx' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code":0, + "message":"" +} +``` + +
+ +## 保护&删除弹幕 + +> https://api.bilibili.com/x/v2/dm/edit/state + +*请求方式:POST* + +认证方式:Cookie(SESSDATA) 或APP + +注:只能操作自己的稿件或有骑士权限的稿件 + +**正文参数( application/x-www-form-urlencoded ):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ---------- | ---- | ------------------------ | -------------- | --------------------------------------------- | +| access_key | str | APP登录Token | APP方式必要 | | +| type | num | 弹幕类选择 | 必要 | 1:视频弹幕 | +| oid | num | 视频cid | 必要 | | +| dmids | nums | 弹幕dmid | 必要 | 多个id之间用`,`分隔 | +| state | num | 操作代码 | 必要 | 1:删除弹幕
2:弹幕保护
3:取消保护 | +| csrf | str | CSRF Token(位于cookie) | Cookie方式必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------------------ | +| code | num | 返回值 | 0:成功
-101:账号未登录
-111:csrf 校验失败
-400:请求错误
-403:访问权限不足 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | + +**示例** + +删除`cid=145928946`下的弹幕`35600074482384899`、`39067304918515717`、`39082777041174531` + +```shell +curl 'https://api.bilibili.com/x/v2/dm/edit/state' \ +--data-urlencode 'type=1' \ +--data-urlencode 'oid=145928946' \ +--data-urlencode 'dmids=35600074482384899,39067304918515717,39082777041174531' \ +--data-urlencode 'state=1' \ +--data-urlencode 'csrf=xxx' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code":0, + "message":"0", + "ttl":1 +} +``` + +
+ +## 修改字幕池 + +> https://api.bilibili.com/x/v2/dm/edit/pool + +*请求方式:POST* + +认证方式:Cookie(SESSDATA) 或APP + +注:只能操作自己的稿件或有骑士权限的稿件 + +**正文参数( application/x-www-form-urlencoded ):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ---------- | ---- | ------------------------ | -------------- | -------------------------------- | +| access_key | str | APP登录Token | APP方式必要 | | +| type | num | 弹幕类选择 | 必要 | 1:视频弹幕 | +| oid | num | 视频cid | 必要 | | +| dmids | nums | 弹幕dmid | 必要 | 多个id之间用`,`分隔 | +| pool | num | 操作代码 | 必要 | 0:移出字幕池
1:移入字幕池 | +| csrf | str | CSRF Token(位于cookie) | Cookie方式必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------------------ | +| code | num | 返回值 | 0:成功
-101:账号未登录
-111:csrf 校验失败
-400:请求错误
-403:访问权限不足 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | + +**示例** + +将`cid=145928946`下的弹幕`35600074482384899`、`39067304918515717`、`39082777041174531`移入字幕池 + +```shell +curl 'https://api.bilibili.com/x/v2/dm/edit/state' \ +--data-urlencode 'type=1' \ +--data-urlencode 'oid=145928946' \ +--data-urlencode 'pool=1' \ +--data-urlencode 'dmids=35600074482384899,39067304918515717,39082777041174531' \ +--data-urlencode 'csrf=xxx' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code":0, + "message":"0", + "ttl":1 +} +``` + +
diff --git a/docs/danmaku/buzzword.md b/docs/danmaku/buzzword.md new file mode 100644 index 0000000000..d03c719cb9 --- /dev/null +++ b/docs/danmaku/buzzword.md @@ -0,0 +1,513 @@ +# 名词解释 + +该功能用于解释和科普 B 站弹幕、评论等的专有名词及梗,展示其出处,并推荐相关站内内容 + +可使用页面 https://www.bilibili.com/blackboard/activity-joFQ0txEQd.html?type_id=4 查看名词列表 + +可使用页面 https://www.bilibili.com/blackboard/activity-WroMZNunfa.html?id=1 查看名词解释详情 + +- [拉取名词解释列表](#拉取名词解释列表) +- [查询名词解释详情](#查询名词解释详情) + +--- + +## 拉取名词解释列表 + +> https://api.bilibili.com/x/v2/dm/buzzword/list + +*请求方式:GET* + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------- | ---- | -------- | ------ | ---------------------------------------------- | +| type_id | num | 名词类型 | 必要 | 如:4代表“哔哩哔哩热词图鉴”
5代表“语言类” | +| pn | num | 页码 | 非必要 | 默认为1 | +| ps | num | 每页项数 | 非必要 | 默认为20 | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | --------------------------- | +| code | num | 返回值 | 0:成功
-400:请求错误 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | obj | 数据本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| --------- | ----- | -------- | ---- | +| type | obj | 类型信息 | | +| buzzwords | array | 词语列表 | | +| page | obj | 页面信息 | | + +`data`中的`type`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----------- | ---- | -------- | ------ | +| id | num | 类型 id | | +| name | str | 类型名称 | | +| name_pinyin | obj | 拼音信息 | 见副表 | + +`data`中的`buzzwords`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | --------------- | ---- | +| 0 | obj | 名词条目 1 | | +| n | obj | 名词条目(n+1) | | +| …… | obj | …… | …… | + +`buzzwords`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----------- | ---- | ------------ | ----------------------------------------- | +| id | num | 名词 id | 用于[查询名词解释详情](#查询名词解释详情) | +| name | str | 名词 | | +| name_pinyin | obj | 拼音信息 | 见副表 | +| picture | str | 名词图片 url | | + +`data`中的`page`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----- | ---- | -------- | ---- | +| num | num | 当前页码 | | +| size | num | 每页项数 | | +| total | num | 总计项数 | | +| cnt | num | (?) | | + +副表:拼音`name_pinyin`对象: + +| 字段 | 类型 | 内容 | 备注 | +| -------------- | ---- | -------- | ---- | +| 对应单个汉字 1 | str | 拼音字串 | | +| 对应单个汉字 n | str | 拼音字串 | | +| …… | str | …… | …… | + +**示例:** + +拉取对应`哔哩哔哩热词图鉴`的名词列表,以20项为一页拉取第1页 + +```bash +curl -G 'https://api.bilibili.com/x/v2/dm/buzzword/list' \ +--data-urlencode 'type_id=4' \ +--data-urlencode 'ps=10' \ +--data-urlencode 'pn=1' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "type": { + "id": 4, + "name": "哔哩哔哩热词图鉴", + "name_pinyin": { + "哔": "bì", + "哩": "lī", + "图": "tú", + "热": "rè", + "词": "cí", + "鉴": "jiàn" + }, + "level": 0 + }, + "buzzwords": [ + { + "id": 145, + "name": "麦乐鸡侠", + "name_pinyin": { + "乐": "lè", + "侠": "xiá", + "鸡": "jī", + "麦": "mài" + }, + "picture": "https://i0.hdslb.com/bfs/archive/1cdec1ff86733a38c1a9ff824dde6d4121955aee.png" + }, + { + "id": 146, + "name": "金钱豹", + "name_pinyin": { + "豹": "bào", + "金": "jīn", + "钱": "qián" + }, + "picture": "https://i0.hdslb.com/bfs/archive/3d492f4c01da7d15073d3175871e14ed56f0f78a.png" + }, + { + "id": 11, + "name": "通辽可汗", + "name_pinyin": { + "可": "kě", + "汗": "hàn", + "辽": "liáo", + "通": "tōng" + }, + "picture": "https://i0.hdslb.com/bfs/archive/ca332fb5f9da48497298cf26fe07b1f061e53a0b.jpg" + }, + { + "id": 123, + "name": "资本马桶搋", + "name_pinyin": { + "搋": "chuāi", + "本": "běn", + "桶": "tǒng", + "资": "zī", + "马": "mǎ" + }, + "picture": "https://i0.hdslb.com/bfs/archive/aaf33dced1941af0946f37c62f4b48fcaba9c9a2.jpg" + }, + { + "id": 133, + "name": "马了顶大", + "name_pinyin": { + "了": "le", + "大": "dà", + "顶": "dǐng", + "马": "mǎ" + }, + "picture": "https://i0.hdslb.com/bfs/archive/9653bd7f8d2c804aceb8043ebd5c8360a93e26c0.png" + }, + { + "id": 9, + "name": "退钱", + "name_pinyin": { + "退": "tuì", + "钱": "qián" + }, + "picture": "https://i0.hdslb.com/bfs/archive/2540db0bc94792b1f5be75e19aa05d33666e3036.jpg" + }, + { + "id": 141, + "name": "森林冰火人", + "name_pinyin": { + "人": "rén", + "冰": "bīng", + "林": "lín", + "森": "sēn", + "火": "huǒ" + }, + "picture": "https://i0.hdslb.com/bfs/archive/bc5ca101313d4db223c395d64779e76eb3482d60.jpg" + }, + { + "id": 22, + "name": "学霸题", + "name_pinyin": { + "学": "xué", + "霸": "bà", + "题": "tí" + }, + "picture": "https://i0.hdslb.com/bfs/archive/a67a0a57ec48beb8c8dcc9f26c7bb66cd0ed5da7.jpg" + }, + { + "id": 10, + "name": "张三", + "name_pinyin": { + "三": "sān", + "张": "zhāng" + }, + "picture": "https://i0.hdslb.com/bfs/archive/f4dac6fdc5c58639b79ae87385e9b9f7eae3b263.png" + }, + { + "id": 5, + "name": "饮茶先啦", + "name_pinyin": { + "先": "xiān", + "啦": "la", + "茶": "chá", + "饮": "yǐn" + }, + "picture": "https://i0.hdslb.com/bfs/archive/4c90ad207f0041e2dccd586827028aea50c2dc7d.jpg" + } + ], + "page": { + "num": 1, + "size": 10, + "total": 143, + "cnt": 0 + } + } +} +``` + +
+ +## 查询名词解释详情 + +> https://api.bilibili.com/x/v2/dm/buzzword/detail + +*请求方式:GET* + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | ---- | ------ | ------ | -------------------------------- | +| id | num | 名词id | 必要 | 如:1代表“kksk”
2代表“打脸” | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | --------------------------------- | -------- | --------------------------------------------------- | +| code | num | 返回值 | 0:成功
-400:请求错误
-404:不存在该名词 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | 有数据时:obj
无数据时:null | 数据本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----------------- | ------------------------------- | -------------------- | ----------------------------- | +| id | num | 名词id | | +| name | str | 名词 | | +| description | str | 名词解释 | | +| picture | str | 名词图片 url | | +| types | array | 父分类列表 | 该名词可能隶属多个父分类 | +| related_words | array | 近义词/相关词 | | +| uppers | 有数据:array
无数据:null | 相关 UP 列表 | 该名词(梗)出处 | +| related_ugc | 有数据:array
无数据:null | 相关 ucg 视频列表 | 该名词(梗)出处 | +| related_ogv | 有数据:array
无数据:null | 相关 pgc 视频列表 | 该名词(梗)出处 | +| guides | obj | 推荐创作信息 | | +| related_buzzwords | array | 推荐名词列表 | | +| topic | obj | 关联话题信息 | | +| show_dynamic | bool | 是否展示话题动态聚合 | `true`展示
`false`不展示 | + +`data`中的`types`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | ------------- | ---- | +| 0 | obj | 父分类 1 | | +| n | obj | 父分类(n+1) | | +| …… | obj | …… | …… | + +`types`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----------- | ---- | -------- | ---- | +| id | num | 类型 id | | +| name | str | 类型名称 | | +| name_pinyin | null | | | +| level | num | 权重? | | + +`data`中的`related_words`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | -------------------- | ---- | +| 0 | str | 近义词/相关词1 | | +| n | str | 近义词/相关词(n+1) | | +| …… | str | …… | …… | + +`data`中的`uppers`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | -------------- | ---- | +| 0 | obj | 相关 UP 1 | | +| n | obj | 相关 UP(n+1) | | +| …… | obj | …… | …… | + +`uppers`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---------- | ---- | ------------- | ------------------------------------------------------------ | +| id | num | UP 主 mid | | +| recommend | str | | | +| name | str | UP 主昵称 | | +| face | str | UP 主头像 url | | +| official | obj | UP 主认证信息 | | +| followed | bool | 是否关注 | 需要登录(Cookie 或 APP)
`true`已关注
`false`未关注 | +| fans_count | num | 粉丝数 | | + +`data`中的`related_ugc`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | -------------------- | ---- | +| 0 | obj | 相关 ucg 视频 1 | | +| n | obj | 相关 ucg 视频(n+1) | | +| …… | obj | …… | …… | + +`related_ugc`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| -------- | ---- | ------------ | -------- | +| aid | num | 稿件 avid | | +| cid | num | 视频 cid | | +| name | str | 视频标题 | | +| link | str | 空 | | +| play | num | 播放数 | | +| danmaku | num | 弹幕数 | | +| duration | num | 视频时长 | 单位为秒 | +| cover | str | 视频封面 url | | + +`data`中的`related_ogv`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | -------------------- | ---- | +| 0 | obj | 相关 pgc 视频 1 | | +| n | obj | 相关 pgc 视频(n+1) | | +| …… | obj | …… | …… | + +`related_ogv`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----------- | ---- | ------------ | ------------------------------------- | +| season_id | num | 剧集 ssid | | +| name | str | 剧集标题 | | +| play | num | 播放数 | | +| followed | num | 追剧/番数 | | +| is_followed | bool | 是否追剧/番 | `true`已追剧/番
`false`未追剧/番 | +| new_ep | str | 最新一集信息 | | +| cover | str | 剧集封面 url | | +| episodes | null | | | +| follow_info | obj | | | + +`data`中的`guides`对象: + +| 字段 | 类型 | 内容 | 备注 | +| --------------- | ----- | ---------------- | ---- | +| description | str | 创作推介文案 | | +| contribute_tags | array | 创作跳转按钮信息 | | + +`guides`中的`contribute_tags`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | ------------------- | ---- | +| 0 | obj | 创作跳转按钮 1 | | +| n | obj | 创作跳转按钮(n+1) | | +| …… | obj | …… | …… | + +`contribute_tags`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----- | ---- | -------- | -------------------------- | +| title | str | 按钮文案 | | +| link | str | 跳转 uri | 跳转至必剪或客户端创作入口 | + +`data`中的`related_buzzwords`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | --------------- | ---- | +| 0 | obj | 推荐名词 1 | | +| n | obj | 推荐名词(n+1) | | +| …… | obj | …… | …… | + +`related_buzzwords`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----------- | ---- | ------- | ----------------------------------------- | +| id | num | 名词 id | 用于[查询名词解释详情](#查询名词解释详情) | +| name | str | 名词 | | +| name_pinyin | null | | | +| picture | str | 空 | | + +`data`中的`topic`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---------- | ---- | ------------ | ---- | +| topic_id | num | 关联话题id | | +| topic_name | str | 关联话题名称 | | + +**示例:** + +查询名词`kksk`的详情 + +```bash +curl -G 'https://api.bilibili.com/x/v2/dm/buzzword/detail' \ +--data-urlencode 'id=1' +``` + +
+查看响应示例: + + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "id": 1, + "name": "kksk", + "description": "该梗是日语“ここすき”罗马音的字母缩写,翻译为喜欢这里。一般作为赞扬认可的弹幕出现在视频画面中。由于在2017年随着以《恶魔人》为BGM和语音剪辑素材的《美洲豹人》系列作品的传播,让这个梗快速的通过弹幕流行开,并频繁出现在各类稿件经典画面中。", + "picture": "https://i0.hdslb.com/bfs/archive/c269c9ca1b5eb730ee1d77aadd28e3165eaa4d6d.png", + "types": [ + { + "id": 4, + "name": "哔哩哔哩热词图鉴", + "name_pinyin": null, + "level": 0 + }, + { + "id": 5, + "name": "语言类", + "name_pinyin": null, + "level": 0 + }, + { + "id": 9, + "name": "空耳", + "name_pinyin": null, + "level": 0 + } + ], + "related_words": [ + "恶魔人", + "美洲豹人", + "喜欢这里" + ], + "uppers": [ + { + "id": 488450, + "recommend": "", + "name": "PXN1", + "face": "http://i2.hdslb.com/bfs/face/96dd8cc4f2922bd81e5a938f6ad02b3e3041debe.jpg", + "official": { + "role": 0, + "title": "", + "desc": "", + "type": -1 + }, + "followed": false, + "fans_count": 1416 + } + ], + "related_ugc": [ + { + "aid": 30056798, + "cid": 52388183, + "name": "恶 魔 人", + "link": "", + "play": 3434500, + "danmaku": 8292, + "duration": 188, + "cover": "http://i0.hdslb.com/bfs/archive/f0433d2dacf4b3397a9390ab982cefd138dbf8c8.jpg" + } + ], + "related_ogv": null, + "guides": { + "description": "使用同款热梗素材创作你的专属作品吧!添加热梗主题#kksk是什么梗#参与投稿,优质稿件会优先展示在哔哩哔哩热词图鉴相关推荐中哦!", + "contribute_tags": [ + { + "title": "拍同款", + "link": "bilibili://uper/appTraffic?appScheme=bcut%3A%2F%2Fstudio%2Fmaterial_editor%2F%3Ftab_id%3D1%26sub_id%3D90160%26third_id%3D150281&appName=com.bilibili.studio&appID=1299589486" + } + ] + }, + "related_buzzwords": null, + "topic": { + "topic_id": 7642, + "topic_name": "kksk是什么梗" + }, + "show_dynamic": false + } +} +``` + +
diff --git a/docs/danmaku/config.md b/docs/danmaku/config.md new file mode 100644 index 0000000000..06b9c6b57c --- /dev/null +++ b/docs/danmaku/config.md @@ -0,0 +1,75 @@ +# 弹幕个人配置修改 + +- [修改弹幕个人配置(web端)](#修改弹幕个人配置web端) + +--- + +## 修改弹幕个人配置(web端) + +> https://api.bilibili.com/x/v2/dm/web/config + +*请求方式:POST* + +认证方式:Cookie(SESSDATA)或APP + +**正文参数( application/x-www-form-urlencoded ):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------------ | ------ | ------------------------ | -------------- | ------------------------------------------------------------ | +| access_key | str | APP登录Token | APP方式必要 | | +| dm_switch | bool | 弹幕开关 | 非必要 | true:开启
false:关闭 | +| blockscroll | bool | 屏蔽类型-滚动 | 非必要 | true:不屏蔽
false:屏蔽 | +| blocktop | bool | 屏蔽类型-顶部 | 非必要 | 同上 | +| blockbottom | bool | 屏蔽类型-底部 | 非必要 | 同上 | +| blockcolor | bool | 屏蔽类型-彩色 | 非必要 | 同上 | +| blockspecial | bool | 屏蔽类型-特殊 | 非必要 | 同上 | +| ai_switch | bool | 是否打开智能云屏蔽 | 非必要 | true:开启
false:关闭 | +| ai_level | num | 智能云屏蔽等级 | 非必要 | 区间:[0-10]
0为默认等级(3级) | +| preventshade | bool | 防挡弹幕(底部15%) | 非必要 | true:开启
false:关闭 | +| dmask | bool | 智能防挡弹幕(人像蒙版) | 非必要 | 同上 | +| opacity | num | 弹幕不透明度 | 非必要 | 区间:[0-1] | +| dmarea | num | 弹幕显示区域 | 非必要 | 100:不重叠
75:3/4屏
50:半瓶
25:1/4屏
0:不限 | +| speedplus | num | 弹幕速度 | 非必要 | 区间:[0.4-1.6] | +| fontsize | num | 字体大小 | 非必要 | 区间:[0.4-1.6] | +| screensync | bool | 跟随屏幕缩放比例 | 非必要 | true:开启
false:关闭 | +| speedsync | bool | 根据播放倍速调整速度 | 非必要 | 同上 | +| fontfamily | str | 字体类型 | 非必要 | 未启用 | +| bold | bool | 粗体 | 非必要 | 未启用 | +| fontborder | num | 描边类型 | 非必要 | 0:重墨
1:描边
2:45°投影 | +| drawType | string | 渲染类型 | 非必要 | 未启用 | +| ts | num | 当前时间戳 | 非必要 | | +| csrf | str | CSRF Token(位于cookie) | Cookie方式必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------------------ | +| code | num | 返回值 | 0:成功
-101:账号未登录
-111:csrf校验失败
-400:请求错误
23004:数据没有修改 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | + +**示例:** + +关闭弹幕 + +```shell +curl 'https://api.bilibili.com/x/v2/dm/web/config' \ +--data-urlencode 'dm_switch=false' \ +--data-urlencode 'csrf=xxx' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code":0, + "message":"0", + "ttl":1 +} +``` + +
\ No newline at end of file diff --git a/docs/danmaku/danmaku_proto.md b/docs/danmaku/danmaku_proto.md new file mode 100644 index 0000000000..bb11abd05a --- /dev/null +++ b/docs/danmaku/danmaku_proto.md @@ -0,0 +1,111 @@ +# protobuf弹幕 + +2020年5月23日,哔哩哔哩网页端及移动端启用了新的默认弹幕api,网页端弹幕显示的上限变为原弹幕池上限的两倍。 + +新的api是以6分钟为一个单位加载,即每次加载6分钟内的弹幕 + +- [获取实时弹幕](#获取实时弹幕) + +--- + +## 获取实时弹幕 + +> https://api.bilibili.com/x/v2/dm/web/seg.so (web端) +> +> https://api.bilibili.com/x/v2/dm/list/seg.so (APP端) +> +> https://i0.hdslb.com/bfs/dm/{data}.bin (BAS/代码弹幕专包) + +*请求方式:GET* + +此接口与漫画弹幕相同 + +只能返回普通弹幕(`pool=1` `mode=1-7`)和代码弹幕(`pool=2` `mode=8`),BAS弹幕(`pool=2` `mode=9`)请从[弹幕元数据](danmaku_view_proto.md)中获取 + +互动弹幕(UP主头像弹幕、关联视频、内嵌关注按钮)也不存在这个接口,请从[弹幕元数据](danmaku_view_proto.md)中获取 + +**注:仅获取6min的整数倍时间内的弹幕,6min内最多弹幕数为6000条(如第一包中弹幕`progress`值域为0-360000)** + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------------- | ---- | -------- | ------ | ----------- | +| type | num | 弹幕类 | 必要 | 1:视频弹幕 | +| oid | num | 视频cid | 必要 | | +| pid | num | 稿件avid | 非必要 | | +| segment_index | num | 分包 | 必要 | 6分钟一包 | + +**proto回复:** + +proto定义见:[bilibili.community.service.dm.v1.DmSegMobileReply](../grpc_api/bilibili/community/service/dm/v1/dm.proto) + +- [protogen.marcgravell](https://protogen.marcgravell.com/): 在线编译protogen工具, 无需再安装本地编译器(生成文件需加后缀‘_pb2.py‘才可使用) + +- [protobuf pip](https://pypi.org/project/protobuf/): 可一键安装的python的protogen解析库 + +消息`DmSegMobileReply`: + +| 名称 | 类型 | 含义 | 备注 | +| ----- | -------------------- | -------- | ---- | +| elems | repeated DanmakuElem | 弹幕条目 | | + +消息`DanmakuElem`: + +| 名称 | 类型 | 含义 | 备注 | +| -------- | ------ | ------------------ | ------------------------------------------------------------ | +| id | int64 | 弹幕dmid | 唯一 可用于操作参数 | +| progress | int32 | 视频内弹幕出现时间 | 毫秒 | +| mode | int32 | 弹幕类型 | 1 2 3:普通弹幕
4:底部弹幕
5:顶部弹幕
6:逆向弹幕
7:高级弹幕
8:代码弹幕
9:BAS弹幕(仅限于特殊弹幕专包) | +| fontsize | int32 | 弹幕字号 | 18:小
25:标准
36:大 | +| color | uint32 | 弹幕颜色 | 十进制RGB888值 | +| midHash | string | 发送者mid的HASH | 用于屏蔽用户和查看用户发送的所有弹幕 也可反查用户id | +| content | string | 弹幕内容 | utf-8编码 | +| ctime | int64 | 弹幕发送时间 | 时间戳 | +| weight | int32 | 权重 | 用于智能屏蔽,根据弹幕语义及长度通过AI识别得出
范围:[0-10]
值越大权重越高 | +| action | string | 动作? | 作用尚不明确 | +| pool | int32 | 弹幕池 | 0:普通池
1:字幕池
2:特殊池(代码/BAS弹幕) | +| idStr | string | 弹幕dmid | 字串形式
唯一 可用于操作参数 | + +**示例:** + +获取视频`av810872(cid=1176840)`(炮姐)的实时弹幕分包1 + +**注:[proto定义](../grpc_api/bilibili/community/service/dm/v1/dm.proto)需要编译,`bilibili.community.service.dm.v1.dm_pb2`并非通过pypi安装** + +```python +import requests +import google.protobuf.text_format as text_format +import bilibili.community.service.dm.v1.dm_pb2 as Danmaku + +url = 'https://api.bilibili.com/x/v2/dm/web/seg.so' +params = { + 'type': 1, # 弹幕类型 + 'oid': 1176840, # cid + 'pid': 810872, # avid + 'segment_index': 1 # 弹幕分段 +} +resp = requests.get(url, params) +data = resp.content + +danmaku_seg = Danmaku.DmSegMobileReply() +danmaku_seg.ParseFromString(data) + +print(text_format.MessageToString(danmaku_seg.elems[0], as_utf8=True)) +``` + +输出: + +``` +id: 711923911 +progress: 47880 +mode: 1 +fontsize: 18 +color: 10092288 +midHash: "59417e95" +content: "世界第一电击公主殿下,遇到你是我一生最美好的风景!吾炮赛高,永生不离!唯我超电磁炮永世长存! " +ctime: 1418799826 +weight: 6 +idStr: "711923911" +attr: 1 +``` + diff --git a/docs/danmaku/danmaku_view_proto.md b/docs/danmaku/danmaku_view_proto.md new file mode 100644 index 0000000000..ebc6601544 --- /dev/null +++ b/docs/danmaku/danmaku_view_proto.md @@ -0,0 +1,298 @@ +# 弹幕元数据 + +2020-09-25 B站更新了互动弹幕功能,包括UP主头像弹幕、关联视频弹幕、视频内嵌引导关注按钮三大功能 + +详情见: + +[【客户端更新】6.10版本更新!UP主支持发布关联视频弹幕]( https://www.bilibili.com/read/cv7728299 ) + + [引导关注卡片](https://www.bilibili.com/blackboard/activity-c8a0iDRQy.html ) + +--- + +- [获取弹幕个人配置与互动弹幕及BAS(代码)弹幕专包(web端)](#获取弹幕个人配置与互动弹幕及BAS(代码)弹幕专包web端) +- [实例](#实例) + - [获取互动弹幕](#获取互动弹幕) + - [获取BAS(代码)弹幕专包](#获取BAS(代码)弹幕专包) + +--- + +## 获取弹幕个人配置与互动弹幕及BAS(代码)弹幕专包(web端) + +> https://api.bilibili.com/x/v2/dm/web/view + +*请求方式:GET* + +认证方式:仅可Cookie(SESSDATA) + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | ---- | -------- | ------ | ----------- | +| type | num | 弹幕类 | 必要 | 1:视频弹幕 | +| oid | num | 视频cid | 必要 | | +| pid | num | 稿件avid | 非必要 | | + +**proto回复:** + +消息`DmWebViewReply`: + +| 名称 | 类型 | 含义 | 备注 | +| ---------- | -------------------- | ---------------------- | ---------------------------- | +| state | int32 | 弹幕开放状态 | 0:开放弹幕
1:禁止弹幕 | +| text | string | ? | | +| textSide | string | ? | | +| dmSge | DmSegConfig | 分段弹幕包信息? | | +| flag | DanmakuFlagConfig | ? | | +| specialDms | repeated string | BAS(代码)弹幕专包url | | +| checkBox | bool | ? | | +| count | int64 | 实际弹幕总数 | 具有1500-6000不等的上限 | +| commandDms | repeated CommandDm | 互动弹幕条目 | | +| dmSetting | DanmuWebPlayerConfig | 弹幕个人配置 | 仅登录后存在 | + +消息`dmSge`: + +| 名称 | 类型 | 含义 | 备注 | +| -------- | ----- | ------------ | ---------- | +| pageSize | int64 | 分段时间? | 单位为毫秒 | +| total | int64 | 最大分页数? | | + +消息`flag`: + +| 名称 | 类型 | 含义 | 备注 | +| --------- | ------ | ---- | ---- | +| recFlag | int32 | ? | | +| recText | string | ? | | +| recSwitch | int32 | ? | | + +消息`commandDms`: + +| 名称 | 类型 | 含义 | 备注 | +| -------- | ------ | ------------ | ------------------------------------------------------------ | +| id | int64 | 弹幕dmid | | +| oid | int64 | 视频cid | | +| mid | int64 | 发送者mid | | +| command | string | 弹幕指令 | `#UP#`:UP主头像弹幕
`#LINK#`:关联视频弹幕
`#ATTENTION#`:视频内嵌引导关注按钮 | +| content | string | 弹幕文字 | | +| progress | int32 | 弹幕出现时间 | 单位为毫秒 | +| ctime | string | 创建时间? | 此项为空 | +| mtime | string | 修改时间? | 此项为空 | +| extra | string | 弹幕负载数据 | json序列字串 | +| idStr | string | 弹幕dmid | 字串形式 | + +`extra`json序列: + +类型为【UP主头像弹幕】时: + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | ----------- | ---- | +| icon | str | UP主头像url | | + +类型为【关联视频弹幕】时: + +| 字段 | 类型 | 内容 | 备注 | +| ----- | ---- | ------------------- | ---- | +| aid | num | 关联视频的avid | | +| title | str | 关联视频的标题 | | +| icon | str | 关联视频按钮图片url | | +| bvid | str | 关联视频的bvid | | + +类型为【视频内嵌引导关注按钮】时: + +| 字段 | 类型 | 内容 | 备注 | +| -------- | ---- | ------------ | ------------------------------------------ | +| duration | num | 持续时间 | 单位为毫秒 | +| posX | num | X坐标 | 区间:[118-549] | +| posY | num | Y坐标 | 区间:[82-293] | +| icon | str | 按钮图片url | 不应该是关注按钮吗,但这个是圆形的 | +| type | num | 关注按钮类型 | 0:仅关注
1:仅三联
2:关注+三联 | + +消息`dmSetting`: + +| 名称 | 类型 | 含义 | 备注 | +| ------------ | ------ | ------------------------ | ------------------------------------------------------------ | +| dmSwitch | bool | 弹幕开关 | true:开启
false:关闭 | +| aiSwitch | bool | 智能云屏蔽 | 同上 | +| aiLevel | int32 | 智能云屏蔽级别 | 区间:[1-10] | +| blocktop | bool | 屏蔽类型-顶部 | true:不屏蔽
false:屏蔽 | +| blockscroll | bool | 屏蔽类型-滚动 | 同上 | +| blockbottom | bool | 屏蔽类型-底部 | 同上 | +| blockcolor | bool | 屏蔽类型-彩色 | 同上 | +| blockspecial | bool | 屏蔽类型-特殊 | 同上 | +| preventshade | bool | 防挡弹幕(底部15%) | true:开启
false:关闭 | +| dmask | bool | 智能防挡弹幕(人像蒙版) | 同上 | +| opacity | float | 弹幕不透明度 | 区间:[0-1] | +| dmarea | int32 | 弹幕显示区域 | 100:不重叠
75:3/4屏
50:半瓶
25:1/4屏
0:不限 | +| speedplus | float | 弹幕速度 | 区间:[0.4-1.6] | +| fontsize | float | 字体大小 | 区间:[0.4-1.6] | +| screensync | bool | 跟随屏幕缩放比例 | | +| speedsync | bool | 根据播放倍速调整速度 | | +| fontfamily | string | 字体类型? | 未启用 | +| bold | bool | 粗体? | 未启用 | +| fontborder | int32 | 描边类型 | 0:重墨
1:描边
2:45°投影 | +| drawType | string | 渲染类型? | 未启用 | + +protobuf结构体: + +**web_dmview.proto** + +```protobuf +syntax = "proto3"; + +//分段弹幕包信息? +message DmSegConfig { + int64 pageSize = 1; //分段时间? + int64 total = 2; //最大分页数? +} + +// +message DanmakuFlagConfig { + int32 recFlag = 1; // + string recText = 2; // + int32 recSwitch = 3; // +} + +// 互动弹幕条目 +message CommandDm { + int64 id = 1; //弹幕dmid + int64 oid = 2; //视频cid + int64 mid = 3; //发送者mid + string command = 4; //弹幕指令 + string content = 5; //弹幕文字 + int32 progress = 6; //弹幕出现时间 + string ctime = 7; // + string mtime = 8; // + string extra = 9; //弹幕负载数据 + string idStr = 10; //弹幕dmid(字串形式) +} + +//弹幕个人配置 +message DanmuWebPlayerConfig{ + bool dmSwitch=1; //弹幕开关 + bool aiSwitch=2; //智能云屏蔽 + int32 aiLevel=3; //智能云屏蔽级别 + bool blocktop=4; //屏蔽类型-顶部 + bool blockscroll=5; //屏蔽类型-滚动 + bool blockbottom=6; //屏蔽类型-底部 + bool blockcolor=7; //屏蔽类型-彩色 + bool blockspecial=8; //屏蔽类型-特殊 + bool preventshade=9; //防挡弹幕(底部15%) + bool dmask=10; //智能防挡弹幕(人像蒙版) + float opacity=11; //弹幕不透明度 + int32 dmarea=12; //弹幕显示区域 + float speedplus=13; //弹幕速度 + float fontsize=14; //字体大小 + bool screensync=15; //跟随屏幕缩放比例 + bool speedsync=16; //根据播放倍速调整速度 + string fontfamily=17; //字体类型? + bool bold=18; //粗体? + int32 fontborder=19; //描边类型 + string drawType=20; //渲染类型? +} + +message DmWebViewReply { + int32 state = 1; //弹幕开放状态 + string text = 2; // + string textSide = 3; // + DmSegConfig dmSge = 4; //分段弹幕包信息? + DanmakuFlagConfig flag = 5; // + repeated string specialDms = 6; //BAS(代码)弹幕专包url + bool checkBox = 7; // + int64 count = 8; //实际弹幕总数 + repeated CommandDm commandDms = 9; //互动弹幕条目 + DanmuWebPlayerConfig dmSetting = 10; //弹幕个人配置 +} +``` + +**示例:** + +获取视频`av797164471(cid=236871317)`的弹幕元数据 + +```shell +curl -G 'https://api.bilibili.com/x/v2/dm/web/view' \ +--data-urlencode 'type=1' \ +--data-urlencode 'oid=236871317' \ +--data-urlencode 'pid=797164471' \ +-b 'SESSDATA=xxx' \ +-o 'danmaku_view.bin' +``` + +响应正文为protubuf二进制数据 + +## 实例 + +### 获取互动弹幕 + +获取并显示视频`av797164471(cid=236871317)`的所有互动弹幕 + +```python +import web_dmview_pb2 +import requests + +AVID = 797164471 +CID = 236871317 +url = f'https://api.bilibili.com/x/v2/dm/web/view?type=1&oid={CID}&pid={AVID}' + +data = requests.get(url) +target = web_dmview_pb2.DmWebViewReply() +target.ParseFromString(data.content) + +print(f'互动弹幕数={len(target.commandDms)}') +for i in target.commandDms: + print(f'''\ +---弹幕ID={i.id} +---视频cid={i.oid} +---发送者mid={i.mid} +---弹幕指令={i.command} +---弹幕文字={i.content} +---弹幕出现时间={i.progress} +---弹幕负载数据={i.extra} +---弹幕ID(字串)={i.idStr}''' +) +``` + +输出为: + +``` +互动弹幕数=1 +---弹幕ID=38469676112019463 +---视频cid=236871317 +---发送者mid=501183549 +---弹幕指令=#UP# +---弹幕文字=这个视频没有恰饭!别紧张! +---弹幕出现时间=157818 +---弹幕负载数据={"icon":"https://i1.hdslb.com/bfs/face/559abe31f561f71f3106d8ee7b2065cac50c1235.jpg"} +---弹幕ID(字串)=38469676112019463 +``` + +### 获取BAS(代码)弹幕专包 + +BAS弹幕(`pool=2` `mode=9`)只能从此包获取,代码弹幕(`pool=2` `mode=8`)也能从此包获取 + +获取并显示视频`av2(cid=62131)`的所有BAS(代码)弹幕专包 + +```python +import web_dmview_pb2 +import requests + +AVID = 2 +CID = 62131 +url = f'https://api.bilibili.com/x/v2/dm/web/view?type=1&oid={CID}&pid={AVID}' + +data = requests.get(url) +target = web_dmview_pb2.DmWebViewReply() +target.ParseFromString(data.content) + +print(f'特殊弹幕包数={len(target.specialDms)}') +for i in target.specialDms: + print(f'特殊弹幕包url={i}') +``` + +输出为: + +``` +特殊弹幕包数=1 +特殊弹幕包url=https://i0.hdslb.com/bfs/dm/b0d5f08c12be59292aa0d4e09b6dd8e54c2ba886.bin +``` + +使用[普通分段包弹幕](danmaku_proto.md#获取实时弹幕)的proto结构体反序列化此bin数据 diff --git a/docs/danmaku/danmaku_xml.md b/docs/danmaku/danmaku_xml.md new file mode 100644 index 0000000000..bf568c9e7f --- /dev/null +++ b/docs/danmaku/danmaku_xml.md @@ -0,0 +1,153 @@ +# xml弹幕 + +实时弹幕池容量有限(根据视频类型500-8000条不等),占满后再发送会使实时弹幕池底部的弹幕压入历史弹幕池(类似于堆栈) + +--- + +- [获取实时弹幕1](#获取实时弹幕1) +- [获取实时弹幕2](#获取实时弹幕2) +- [弹幕格式](#弹幕格式) + +--- + +## 获取实时弹幕1 + +> https://api.bilibili.com/x/v1/dm/list.so + +*请求方式:GET* + +**使用deflate压缩,注意解码** + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | ---- | ------- | ------ | ---- | +| oid | num | 视频cid | 必要 | | + +**示例:** + +```shell +curl -G 'https://api.bilibili.com/x/v1/dm/list.so' \ +--data-urlencode 'oid=144541892' \ +--compressed -o 'danmaku.xml' +``` + +## 获取实时弹幕2 + +> https://comment.bilibili.com/{cid}.xml + +*请求方式:GET* + +效果与前者相同 + +**使用deflate压缩,注意解码** + +**url路径:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | ---- | ------- | ------ | ---- | +| cid | num | 视频cid | 必要 | | + +**示例:** + +```shell +curl 'https://comment.bilibili.com/144541892.xml' +--compressed -o 'danmaku.xml' +``` + +**xml回复:** + +
+查看响应示例: + +```xml + + + chat.bilibili.com + 144541892 + 0 + 1500 + 0 + 0 + e-r + 从结尾回来看这里,更感动了! + 咦三体居然还有动画 + 哈哈哈哈开心 + 红岸么 + 我就是想看我的世界里水滴长啥样 + 有手指? + 侦测到在途的聚变打击 + 都是虫子 + ocean + 村民,哼~ + 黄河之水天上来 + 镇站之宝 + 这水 + 海的那边是什么 + 折跃门准备完毕 + ………… + +``` + +
+ +## 弹幕格式 + +### xml格式结构 + +- 标签 i + + - 标签 chatserver:chat.bilibili.com + - 标签 chatid:视频cid + - 标签 mission:0 + - 标签 maxlimit:实时弹幕池最大容量 + - 标签 state:弹幕状态(0:正常 1:弹幕已关闭) + - 标签 real_name:0 + - 标签 source:e-r + + - 标签 d (带有属性 p):弹幕内容 + +### 属性 p + +字符串内每项用逗号`,`分隔 + +| 项 | 含义 | 类型 | 备注 | +| ---- | ------------------ | ------ | ------------------------------------------------------------ | +| 0 | 视频内弹幕出现时间 | float | 秒 | +| 1 | 弹幕类型 | int32 | 1 2 3:普通弹幕
4:底部弹幕
5:顶部弹幕
6:逆向弹幕
7:高级弹幕
8:代码弹幕
9:BAS弹幕(`pool`必须为2) | +| 2 | 弹幕字号 | int32 | 18:小
25:标准
36:大 | +| 3 | 弹幕颜色 | int32 | 十进制RGB888值 | +| 4 | 弹幕发送时间 | int32 | 时间戳 | +| 5 | 弹幕池类型 | int32 | 0:普通池
1:字幕池
2:特殊池(代码/BAS弹幕) | +| 6 | 发送者mid的HASH | string | 用于屏蔽用户和查看用户发送的所有弹幕 也可反查用户id | +| 7 | 弹幕dmid | int64 | 唯一 可用于操作参数 | +| 8 | 弹幕的屏蔽等级 | int32 | 0-10,低于用户设定等级的弹幕将被屏蔽
(新增,下方样例未包含) | + +```xml +从结尾回来看这里,更感动了! +``` + +弹幕内容为:“从结尾回来看这里,更感动了!” + +参数为:视频内出现的时间是490.19100秒,类型是普通弹幕,字号为标准,颜色为白色(#FFFFFF),发送时间是2020/3/15 18:41:32......... + +### web版标准颜色 + +弹幕的颜色属性使用**十进制RGB888**值 + +| 颜色 | HEX(RGB888) | DEC(RGB888) | +| --------------------------------- | ----------------------------------- | ------------------------------------- | +| 红色 | FE0302 | 16646914‬ | +| 橘红 | FF7204 | 16740868 | +| 橘黄 | FFAA02 | 16755202 | +| 淡黄 | FFD302 | 16765698 | +| 黄色 | FFFF00 | 16776960 | +| 草绿 | A0EE00 | 10546688 | +| 绿色 | 00CD00 | 52480 | +| 墨绿 | 019899 | 104601 | +| 紫色 | 4266BE | 4351678 | +| 青色 | 89D5FF | 9022215 | +| 品红 | CC0273 | 13369971 | +| 黑色 | 222222 | 2236962 | +| 灰色 | 9B9B9B | 10197915 | +| 白色 | FFFFFF | 16777215 | diff --git a/docs/danmaku/history.md b/docs/danmaku/history.md new file mode 100644 index 0000000000..9bb322d2e3 --- /dev/null +++ b/docs/danmaku/history.md @@ -0,0 +1,246 @@ +# 历史弹幕 + +**注:历史弹幕的xml接口已经失效,现已改为protobuf接口** + +- [查询历史弹幕日期](#查询历史弹幕日期) +- [获取历史弹幕protobuf接口](#获取历史弹幕protobuf接口) +- [~~获取历史弹幕xml接口~~](#获取历史弹幕xml接口) + +--- + +## 查询历史弹幕日期 + +> https://api.bilibili.com/x/v2/dm/history/index + +*请求方式:GET* + +认证方式:Cookie(SESSDATA) + +**注:查询历史弹幕需要登录** + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | ---- | ------------ | ------ | ------- | +| type | num | 1 | 必要 | | +| oid | num | 视频cid | 必要 | | +| month | str | 查询目标年月 | 必要 | YYYY-MM | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ------------------------------- | -------- | ------------------------------------------------- | +| code | num | 返回值 | 0:成功
-400:请求错误
-101:账号未登录 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | 有弹幕:array
无弹幕:null | 日期列表 | | + +`data`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | ------------------- | ---------- | +| 0 | str | 存在弹幕的日期1 | YYYY-MM-DD | +| n | str | 存在弹幕的日期(n+1) | YYYY-MM-DD | +| …… | str | …… | …… | + +**示例:** + +查询了cid为144541892的视频位于2020年1月中有历史弹幕记录的日期 + +```shell +curl -G 'https://api.bilibili.com/x/v2/dm/history/index' \ +--data-urlencode 'type=1' \ +--data-urlencode 'oid=144541892' \ +--data-urlencode 'month=2020-01' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": [ + "2020-01-21", + "2020-01-22", + "2020-01-23", + "2020-01-24", + "2020-01-25", + "2020-01-26", + "2020-01-27", + "2020-01-28", + "2020-01-29", + "2020-01-30", + "2020-01-31" + ] +} +``` + +
+ +返回结果的 `data` 项说明这些日期有弹幕发送。若查询的月份中视频无弹幕,则 `data` 项为 `null` + +```shell +curl -G 'https://api.bilibili.com/x/v2/dm/history/index' \ +--data-urlencode 'type=1' \ +--data-urlencode 'oid=144541892' \ +--data-urlencode 'month=2019-12' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": null +} +``` + +
+ +## 获取历史弹幕protobuf接口 + +> https://api.bilibili.com/x/v2/dm/web/history/seg.so + +*请求方式:GET* + +认证方式:Cookie(SESSDATA) + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | ---- | -------- | ------ | ----------- | +| type | num | 弹幕类 | 必要 | 1:视频弹幕 | +| oid | num | 视频cid | 必要 | | +| date | str | 弹幕日期 | 必要 | YYYY-MM-DD | + +**proto回复:** + +porto定义见:[bilibili.community.service.dm.v1.DmSegMobileReply](../grpc_api/bilibili/community/service/dm/v1.proto) + +详细说明见[protobuf弹幕](danmaku_proto.md) + +获取视频`av84271171(cid=144541892)`2020-01-21的历史弹幕 + +**注:proto定义需要编译** + +```python +import requests +import google.protobuf.text_format as text_format +import bilibili.community.service.dm.v1_pb2 as Danmaku + +url = 'https://api.bilibili.com/x/v2/dm/web/history/seg.so' +params = { + 'type':1, #弹幕类型 + 'oid':144541892, #cid + 'date':'2020-01-21' #弹幕日期 +} +cookies = { + 'SESSDATA':'xxx' +} +resp = requests.get(url,params,cookies=cookies) +data = resp.content + +danmaku_seg = Danmaku.DmSegMobileReply() +danmaku_seg.ParseFromString(data) + +print(text_format.MessageToString(danmaku_seg.elems[0],as_utf8=True)) +``` + +输出: + +``` +id: 27532611677585408 +progress: 300507 +mode: 1 +fontsize: 25 +color: 16777215 +midHash: "2a28d4a6" +content: "章北海的老爹" +ctime: 1579621359 +idStr: "27532611677585408" +``` + +## 获取历史弹幕xml接口 + +
+查看折叠内容: + +> https://api.bilibili.com/x/v2/dm/history + +*请求方式:GET* + +认证方式:Cookie(SESSDATA) + +**注:查询历史弹幕需要登录** + +结果为[标准xml格式弹幕](danmaku_xml.md#弹幕格式) + +**使用deflate压缩,注意解码** + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | ---- | -------- | ------ | ---------- | +| type | num | 1 | 必要 | | +| oid | num | 视频cid | 必要 | | +| date | str | 弹幕日期 | 必要 | YYYY-MM-DD | + +**示例:** + +获取视频`av84271171(cid=144541892)`2020-01-21的历史弹幕 + +```shell +curl -G 'https://api.bilibili.com/x/v2/dm/history' \ +--data-urlencode 'type=1' \ +--data-urlencode 'oid=144541892' \ +--data-urlencode 'date=2020-01-21' \ +-b 'SESSDATA=xxx' \ +--compressed -o 'danmaku.xml' +``` + +
+查看响应示例: + +```xml + + + chat.bilibili.com + 144541892 + 0 + 1500 + 0 + 0 + 敬礼 + 悄默声的更新啊怎么 + 久等了 + 不都是乱纪元才浸泡 + 已阅,狗屁不通。大字报在地上搞搞就行,别弄到天上去 + CSSC。。。 + 看到了个寂寞 + 有耳朵了! + 雪天不用浸泡吧 + 未来史学派 + 浸泡!!!!!!! + 章召忠 + mi24av + 泪奔 + 组建太空军 + 是未来史学派? + 刘培强还行 + ………… + +``` + +
+ +
\ No newline at end of file diff --git a/docs/danmaku/snapshot.md b/docs/danmaku/snapshot.md new file mode 100644 index 0000000000..7fad06401f --- /dev/null +++ b/docs/danmaku/snapshot.md @@ -0,0 +1,92 @@ +# 弹幕快照 + +- [获取弹幕快照](#获取弹幕快照) + +--- + +## 获取弹幕快照 + +> https://api.bilibili.com/x/v2/dm/ajax + +*请求方式:GET* + +最近产生的几条弹幕内容,**最多20条** + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | -------- | ------------------ | ------ | ---- | +| aid | num或str | 稿件avid或稿件bvid | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ----- | -------- | --------------------------------------------- | +| code | num | 返回值 | 0:成功
-400:请求错误
-404:无视频 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | array | 预览列表 | | + +`data`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | --------------- | -------- | +| 0 | str | 预览内容1 | | +| n | str | 预览内容(n+1) | | +| …… | str | …… | …… | +| 19 | str | 预览内容20 | 最后一条 | + +**示例:** + +获取视频`av43337021`/`BV1rb411m7gE`的弹幕快照,总计20条 + +avid方式: + +```shell +curl -G 'https://api.bilibili.com/x/v2/dm/ajax' \ +--data-urlencode 'aid=43337021' +``` + +bvid方式: + +```shell +curl -G 'https://api.bilibili.com/x/v2/dm/ajax' \ +--data-urlencode 'aid=BV1rb411m7gE' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": [ + "漫画比动漫好看而且血腥", + "666", + "金木小天使", + "太喜欢了", + "每天一遍防止抑郁", + "我还记得土豆那时候还有的看", + "把在给我摸摸~", + "突然泪目", + "感谢野生字幕君", + "993-7", + "刚刚出的时候小学看,现在高二了", + "原版op有这么长吗?搞笑,肯定做了剪辑,op会给你放全歌?", + "让你看个op 3 : 5 4 秒?", + "说原版不原版的都是弱智", + "樱花", + "请打开洗脑循环食用,请打开洗脑循环食用,请打开洗脑循环食用,请打开洗脑循环食用,请打开洗脑循环食用,", + "再来亿遍", + "错的不是我,而是这个世界。", + "吃货的第一季的最后一季足以让他封神!", + "+" + ] +} +``` + +
diff --git a/docs/dynamic/action.md b/docs/dynamic/action.md new file mode 100644 index 0000000000..9f4549486e --- /dev/null +++ b/docs/dynamic/action.md @@ -0,0 +1,109 @@ + + +# 动态操作 + +- [删除动态](#删除动态) +- [删除定时发送动态](#删除草稿) + +## 删除动态 + +> https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/rm_dynamic + +*请求方式:POST* + +认证方式:Cookie(SESSDATA) + +**正文参数(multipart/form-data):** + +| 参数名 | 类型 | 内容 | +| ---------- | ---- | ------ | +| dynamic_id | num | 动态id | +| csrf_token | str | csrf | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | +| ------- | ---- | ----------------- | +| code | num | 0:成功 | +| | | 500404:已经删除过 | +| | | 500406:不是自己的 | +| msg | str | 错误信息 | +| message | str | 和msg一样 | +| data | obj | 未知 | + +
+查看示例 + + +```bash +curl 'https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/rm_dynamic' \ + -X POST \ + -H 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:93.0) Gecko/20100101 Firefox/93.0' \ + -H 'Referer: https://t.bilibili.com/' \ + -H 'Cookie: SESSDATA=********; bili_jct=de2731532b4ab96bc8536da948932668;' \ + --data-raw 'dynamic_id=588320531406678918&csrf_token=de2731532b4ab96bc8536da948932668&csrf=de2731532b4ab96bc8536da948932668' +``` + +```json +{ + "code":0, + "msg":"", + "message":"", + "data": { + "_gt_":0 + } +} +``` + +
+ +## 删除草稿 + +> https://api.vc.bilibili.com/dynamic_draft/v1/dynamic_draft/rm_draft + +*请求方式:POST* + +认证方式:Cookie(SESSDATA) + +**正文参数(application/x-www-form-urlencoded):** + +| 参数名 | 类型 | 内容 | +| ---------- | ---- | -------------- | +| draft_id | num | 定时发送草稿id | +| csrf_token | str | csrf | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | +| ------- | ---- | ---------------------------- | +| code | num | 0:成功
4120015: 系统异常 | +| message | str | 错误信息 | +| ttl | num | 1 | +| data | obj | 空对象 | + +
+查看示例 + + +```bash +curl -X POST 'https://api.vc.bilibili.com/dynamic_draft/v1/dynamic_draft/rm_draft' \ +--data-urlencode 'draft_id=755409289278914611' \ +--data-urlencode 'csrf=xxxx' +-b 'SESSDATA=xxxx;' \ +``` + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": {} +} +``` + +
+ diff --git a/docs/dynamic/atlist.md b/docs/dynamic/atlist.md new file mode 100644 index 0000000000..09a0adfe9e --- /dev/null +++ b/docs/dynamic/atlist.md @@ -0,0 +1,146 @@ +# 根据关键字搜索用户(at别人时的填充列表) + +**注意关键字不一定顺序匹配,如最后示例** + +> https://api.vc.bilibili.com/dynamic_mix/v1/dynamic_mix/at_search + +*请求方式:GET* + +认证方式:Cookie(SESSDATA) + +**正文参数(multipart/form-data):** + +| 参数名 | 类型 | 内容 | +| --- | --- | --- | +| uid | num | 自己的uid | +| keyword | str | 搜索关键字 | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | +| --- | --- | --- | +| code | num | 0成功 | +| msg | str | 成功为空文本 | +| message | str | 同msg | +| data | obj | 数据本体 | + +data对象: + +| 字段 | 类型 | 内容 | +| --- | --- | --- | +| groups | obj[] | 内容分组(好像是根据关注列表分) | +| \_gt_ | num | 0 | + +group对象: + +| 字段 | 类型 | 内容 | +| --- | --- | --- | +| group_type | num | 2:我的关注
4:其他 | +| group_name | str | 分组名字 | +| items | obj[] | 用户信息 | + +item对象: + +| 字段 | 类型 | 内容 | +| --- | --- | --- | +| uid | num | 用户id | +| uname | str | 用户昵称 | +| face | str | 用户头像url | +| fans | num | 用户粉丝数 | +| official_verify_type | num | 认证信息? | + +
+查看示例 + +```shell +# 搜索关键字:社会易 +curl 'https://api.vc.bilibili.com/dynamic_mix/v1/dynamic_mix/at_search?uid=15858903&keyword=%e7%a4%be%e4%bc%9a%e6%98%93' \ + -H 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:93.0) Gecko/20100101 Firefox/93.0' -H 'Accept: application/json, text/plain, */*' \ + -H 'Referer: https://t.bilibili.com/' \ + -H 'Cookie: SESSDATA=******' +``` + +```json +{ + "code": 0, + "msg": "", + "message": "", + "data": { + "groups": [ + { + "group_type": 2, + "group_name": "我的关注", + "items": [ + { + "uid": 293793435, + "uname": "社会易姐QwQ", + "face": "https://i0.hdslb.com/bfs/face/aebb2639a0d47f2ce1fec0631f412eaf53d4a0be.jpg", + "fans": 1179, + "official_verify_type": -1 + } + ] + }, + { + "group_type": 4, + "group_name": "其他", + "items": [ + { + "uid": 250129011, + "uname": "社会小伙肖子易", + "face": "https://i0.hdslb.com/bfs/face/2ae12d7f71173baa8e00c4cfe97acb5a3de31566.jpg", + "fans": 7, + "official_verify_type": -1 + }, + { + "uid": 394873001, + "uname": "社会你易叔", + "face": "https://i2.hdslb.com/bfs/face/bde2811aa895e349036aba9ece5630bcd1341ff0.jpg", + "fans": 5, + "official_verify_type": -1 + }, + { + "uid": 486568790, + "uname": "社会主义接班人小易", + "face": "https://i2.hdslb.com/bfs/face/1ebb0d4aa8e2c4b532f82983503ec38b62a1820f.jpg", + "fans": 3, + "official_verify_type": -1 + }, + { + "uid": 497214639, + "uname": "社会你易易", + "face": "https://i0.hdslb.com/bfs/face/dccb52f3c15ba1bb99aac3c86e9825842cc95295.jpg", + "fans": 2, + "official_verify_type": -1 + }, + { + "uid": 496622388, + "uname": "社会你易哥", + "face": "https://i0.hdslb.com/bfs/face/daac5514a7622741f767c68b1cbc6b91e60b4798.jpg", + "fans": 1, + "official_verify_type": -1 + }, + { + "uid": 457675287, + "uname": "易社会", + "face": "https://i0.hdslb.com/bfs/face/632bf9dd17f4e9f2f12be2c0ad00cdacd2d825fa.jpg", + "fans": 1, + "official_verify_type": -1 + }, + { + "uid": 123270058, + "uname": "周易社会", + "face": "https://i1.hdslb.com/bfs/face/c6100396729112230deb3b0972db1504e9ce21bf.jpg", + "fans": 1, + "official_verify_type": -1 + } + ] + } + ], + "_gt_": 0 + } +} +``` + +
\ No newline at end of file diff --git a/docs/dynamic/basicInfo.md b/docs/dynamic/basicInfo.md new file mode 100644 index 0000000000..83a129e92b --- /dev/null +++ b/docs/dynamic/basicInfo.md @@ -0,0 +1,1586 @@ +# 动态基本信息 +- 单条动态基本信息 + - [动态转发列表](#动态转发列表) + - [动态评论列表](../comment/list.md) + - [动态点赞列表](#动态点赞列表) +- [获取草稿箱(定时发送)列表](#获取草稿列表) + +## 动态转发列表 + +> https://api.vc.bilibili.com/dynamic_repost/v1/dynamic_repost/repost_detail + +请求方式:GET + +==Attention: 转发列表总计超过550部分继续获取可能被限制。== + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| :--------: | :--: | :----: | :----: | :--: | +| dynamic_id | id | 动态id | 必要 | | +| offset | - | - | 非必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | -------- | +| code | num | 返回值 | 0:成功 | +| data | obj | 信息本体 | | +| message | str | 错误信息 | 默认为空 | +| msg | num | 空 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| -------- | ---- | -------------- | ------------ | +| has_more | bool | 是否还有下一页 | 每页最多20条 | +| total | int | 总计包含 | 不超过20条 | +| _gt_ | num | 0 | 作用尚不明确 | + +`data`中的`items`对象: + +由于参数过多,这里不一一列举,请自行参阅其他文件理解。 + +**示例:** + +获取`哔哩哔哩弹幕网`的动态id为`669016644742283288`动态 + +```shell +curl -G 'https://api.vc.bilibili.com/dynamic_repost/v1/dynamic_repost/repost_detail' \ +--data-urlencode 'dynamic_id=669016644742283288' +``` + +
+查看响应示例 + +```json +{ + "code": 0, + "msg": "", + "message": "", + "data": { + "has_more": 0, + "total": 3, + "items": [ + { + "desc": { + "uid": 478909651, + "type": 1, + "rid": 669023160171702063, + "acl": 0, + "view": 0, + "repost": 0, + "like": 0, + "is_liked": 0, + "dynamic_id": 669023160201379864, + "timestamp": 1654607493, + "pre_dy_id": 669016644742283288, + "orig_dy_id": 669007814298959974, + "orig_type": 2, + "user_profile": { + "info": { + "uid": 478909651, + "uname": "-牛马之玉", + "face": "http://i0.hdslb.com/bfs/face/member/noface.jpg", + "face_nft": 0 + }, + "card": { + "official_verify": { + "type": -1, + "desc": "" + } + }, + "vip": { + "vipType": 0, + "vipDueDate": 0, + "vipStatus": 0, + "themeType": 0, + "label": { + "path": "", + "text": "", + "label_theme": "", + "text_color": "", + "bg_style": 0, + "bg_color": "", + "border_color": "" + }, + "avatar_subscript": 0, + "nickname_color": "", + "role": 0, + "avatar_subscript_url": "" + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "", + "image_enhance_frame": "" + }, + "rank": "10000", + "sign": "", + "level_info": { + "current_level": 2 + } + }, + "uid_type": 1, + "stype": 0, + "r_type": 1, + "inner_id": 0, + "status": 1, + "dynamic_id_str": "669023160201379864", + "pre_dy_id_str": "669016644742283288", + "orig_dy_id_str": "669007814298959974", + "rid_str": "669023160171702063", + "origin": { + "uid": 392836434, + "type": 2, + "rid": 196658860, + "acl": 1024, + "view": 46111, + "repost": 1446, + "like": 0, + "dynamic_id": 669007814298959974, + "timestamp": 1654603920, + "pre_dy_id": 0, + "orig_dy_id": 0, + "uid_type": 1, + "stype": 0, + "r_type": 0, + "inner_id": 0, + "status": 1, + "dynamic_id_str": "669007814298959974", + "pre_dy_id_str": "0", + "orig_dy_id_str": "0", + "rid_str": "196658860" + }, + "previous": { + "uid": 9617619, + "type": 1, + "rid": 669016644698939384, + "acl": 1024, + "view": 1381, + "repost": 3, + "like": 0, + "dynamic_id": 669016644742283288, + "timestamp": 1654605976, + "pre_dy_id": 669007814298959974, + "orig_dy_id": 669007814298959974, + "uid_type": 1, + "stype": 0, + "r_type": 1, + "inner_id": 0, + "status": 1, + "dynamic_id_str": "669016644742283288", + "pre_dy_id_str": "669007814298959974", + "orig_dy_id_str": "669007814298959974", + "rid_str": "669016644698939384" + } + }, + "card": "{ \"user\": { \"uid\": 478909651, \"uname\": \"-牛马之玉\", \"face\": \"http:\\/\\/i0.hdslb.com\\/bfs\\/face\\/member\\/noface.jpg\" }, \"item\": { \"rp_id\": 669023160171702063, \"uid\": 478909651, \"content\": \"\\/\\/@哔哩哔哩直播:6月8日KPL首届夏季赛火热开赛,明星主播花式解说!开赛首日直播间礼品...\", \"ctrl\": \"[{\\\"location\\\":2,\\\"length\\\":7,\\\"data\\\":\\\"9617619\\\",\\\"type\\\":1}]\", \"orig_dy_id\": 669007814298959974, \"pre_dy_id\": 669016644742283288, \"timestamp\": 0, \"at_uids\": [ 9617619 ], \"orig_type\": 2 }, \"origin\": \"{\\\"item\\\":{\\\"at_control\\\":\\\"[{\\\\\\\"location\\\\\\\":0,\\\\\\\"length\\\\\\\":4,\\\\\\\"data\\\\\\\":\\\\\\\"4\\\\\\\",\\\\\\\"type\\\\\\\":2}]\\\",\\\"category\\\":\\\"daily\\\",\\\"description\\\":\\\"互动抽奖 【上B站,看KPL】\\\\r\\\\nKPL首届夏季赛即将来袭,6月8日15:00B站55官方直播间等你来看!你最期待哪场对决呢?更有多位明星主播陪你观赛,趣味吐槽花式解说开赛首日~\\\\r\\\\n\\\\r\\\\n55直播间马超-无双飞将皮肤助力金撒不停,赛事全程天选好礼每局掉落,观赛还能领取游戏内道具!APP端参与直播间【热议】讨论,更有机会获超多奖励。\\\\r\\\\n\\\\r\\\\nKPL赛事征稿开赛日同步上线,带#KPL激励计划#话题投稿,瓜分30万奖金~\\\\r\\\\n战火将燃,谁将勇夺开门红,让我们拭目以待! [打call]\\\\n\\\\n直播间TP:https:\\\\\\/\\\\\\/live.bilibili.com\\\\\\/55 \\\\n赛事预测:https:\\\\\\/\\\\\\/www.bilibili.com\\\\\\/v\\\\\\/game\\\\\\/match\\\\\\/competition?spm_id_from=444.42.0.0 \\\\n更多比赛:https:\\\\\\/\\\\\\/www.bilibili.com\\\\\\/v\\\\\\/game\\\\\\/match\\\\\\/schedule?mid=0&gid=0&tid=0&time=1639785600000&spm_id_from=444.42.0.0\\\",\\\"id\\\":196658860,\\\"is_fav\\\":0,\\\"pictures\\\":[{\\\"img_height\\\":6758,\\\"img_size\\\":4693.3251953125,\\\"img_src\\\":\\\"https:\\\\\\/\\\\\\/i0.hdslb.com\\\\\\/bfs\\\\\\/album\\\\\\/d4fd33fe00c80938daf6f14641f15901bc4a0d17.jpg\\\",\\\"img_tags\\\":null,\\\"img_width\\\":1080}],\\\"pictures_count\\\":1,\\\"reply\\\":128,\\\"role\\\":[],\\\"settings\\\":{\\\"copy_forbidden\\\":\\\"0\\\"},\\\"source\\\":[],\\\"title\\\":\\\"\\\",\\\"upload_time\\\":1654603920},\\\"user\\\":{\\\"head_url\\\":\\\"http:\\\\\\/\\\\\\/i0.hdslb.com\\\\\\/bfs\\\\\\/face\\\\\\/50de7906e50260c0e596d54ca51687e58ed7a9ba.jpg\\\",\\\"name\\\":\\\"哔哩哔哩王者荣耀赛事\\\",\\\"uid\\\":392836434,\\\"vip\\\":{\\\"avatar_subscript\\\":1,\\\"due_date\\\":1661097600000,\\\"label\\\":{\\\"label_theme\\\":\\\"annual_vip\\\",\\\"path\\\":\\\"\\\",\\\"text\\\":\\\"年度大会员\\\"},\\\"nickname_color\\\":\\\"#FB7299\\\",\\\"status\\\":1,\\\"theme_type\\\":0,\\\"type\\\":2,\\\"vip_pay_type\\\":0}}}\", \"origin_extension\": { \"lott\": \"{\\\"lottery_id\\\":96074}\" }, \"origin_extend_json\": \"{\\\"ctrl\\\":[{\\\"data\\\":\\\"4\\\",\\\"length\\\":4,\\\"location\\\":0,\\\"type\\\":2}],\\\"from\\\":{\\\"emoji_type\\\":1,\\\"from\\\":\\\"create.dynamic.web\\\",\\\"verify\\\":{\\\"aegis_enable\\\":true,\\\"asw\\\":{},\\\"cc\\\":{},\\\"csw\\\":{},\\\"dc\\\":{},\\\"gc\\\":{},\\\"ra\\\":{},\\\"sp\\\":{},\\\"sw\\\":{},\\\"ur\\\":{},\\\"verify_first\\\":true}},\\\"like_icon\\\":{\\\"action\\\":\\\"\\\",\\\"action_url\\\":\\\"\\\",\\\"end\\\":\\\"\\\",\\\"end_url\\\":\\\"\\\",\\\"start\\\":\\\"\\\",\\\"start_url\\\":\\\"\\\"},\\\"lott\\\":{\\\"lottery_id\\\":96074},\\\"topic\\\":{\\\"is_attach_topic\\\":1}}\", \"origin_user\": { \"info\": { \"uid\": 392836434, \"uname\": \"哔哩哔哩王者荣耀赛事\", \"face\": \"http:\\/\\/i0.hdslb.com\\/bfs\\/face\\/50de7906e50260c0e596d54ca51687e58ed7a9ba.jpg\", \"face_nft\": 0 }, \"card\": { \"official_verify\": { \"type\": 1, \"desc\": \"哔哩哔哩王者荣耀赛事官方帐号\" } }, \"vip\": { \"vipType\": 2, \"vipDueDate\": 1661097600000, \"vipStatus\": 1, \"themeType\": 0, \"label\": { \"path\": \"\", \"text\": \"年度大会员\", \"label_theme\": \"annual_vip\", \"text_color\": \"#FFFFFF\", \"bg_style\": 1, \"bg_color\": \"#FB7299\", \"border_color\": \"\" }, \"avatar_subscript\": 1, \"nickname_color\": \"#FB7299\", \"role\": 3, \"avatar_subscript_url\": \"http:\\/\\/i0.hdslb.com\\/bfs\\/vip\\/icon_Certification_big_member_22_3x.png\" }, \"pendant\": { \"pid\": 0, \"name\": \"\", \"image\": \"\", \"expire\": 0, \"image_enhance\": \"\", \"image_enhance_frame\": \"\" }, \"rank\": \"10000\", \"sign\": \"哔哩哔哩王者荣耀赛事官方账号\", \"level_info\": { \"current_level\": 6 } } }", + "extend_json": "{\"\":{\"at_mids\":[{\"at_type\":2,\"mid_list\":[9617619]}],\"content\":\"\\/\\/@哔哩哔哩直播:6月8日KPL首届夏季赛火热开赛,明星主播花式解说!开赛首日直播间礼品...\",\"data_type\":2,\"need_send_msg\":true,\"publisher\":478909651},\"ctrl\":[{\"data\":\"9617619\",\"length\":7,\"location\":2,\"type\":1}],\"from\":{\"emoji_type\":1,\"from\":\"create.fast_repost\",\"verify\":{\"aegis_enable\":true,\"asw\":{},\"cc\":{},\"csw\":{},\"dc\":{},\"gc\":{},\"ra\":{},\"sp\":{},\"sw\":{},\"ur\":{}}},\"like_icon\":{\"action\":\"\",\"action_url\":\"\",\"end\":\"\",\"end_url\":\"\",\"start\":\"\",\"start_url\":\"\"}}", + "display": { + "origin": { + "emoji_info": { + "emoji_details": [ + { + "emoji_name": "[打call]", + "id": 510, + "package_id": 1, + "state": 0, + "type": 1, + "attr": 0, + "text": "[打call]", + "url": "http://i0.hdslb.com/bfs/emote/431432c43da3ee5aab5b0e4f8931953e649e9975.png", + "meta": { + "size": 1 + }, + "mtime": 1648834168 + } + ] + }, + "relation": { + "status": 1, + "is_follow": 0, + "is_followed": 0 + } + }, + "relation": { + "status": 1, + "is_follow": 0, + "is_followed": 0 + } + } + }, + { + "desc": { + "uid": 37906788, + "type": 1, + "rid": 669022472968542526, + "acl": 0, + "view": 0, + "repost": 0, + "like": 0, + "is_liked": 0, + "dynamic_id": 669022473022341136, + "timestamp": 1654607333, + "pre_dy_id": 669016644742283288, + "orig_dy_id": 669007814298959974, + "orig_type": 2, + "user_profile": { + "info": { + "uid": 37906788, + "uname": "整天就想吃桃子", + "face": "http://i0.hdslb.com/bfs/face/388f29bb0e426d625378b99eec690775467ebb00.jpg", + "face_nft": 0 + }, + "card": { + "official_verify": { + "type": -1, + "desc": "" + } + }, + "vip": { + "vipType": 2, + "vipDueDate": 1712073600000, + "vipStatus": 1, + "themeType": 0, + "label": { + "path": "", + "text": "年度大会员", + "label_theme": "annual_vip", + "text_color": "#FFFFFF", + "bg_style": 1, + "bg_color": "#FB7299", + "border_color": "" + }, + "avatar_subscript": 1, + "nickname_color": "#FB7299", + "role": 3, + "avatar_subscript_url": "http://i0.hdslb.com/bfs/vip/icon_Certification_big_member_22_3x.png" + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "", + "image_enhance_frame": "" + }, + "rank": "10000", + "sign": "", + "level_info": { + "current_level": 5 + } + }, + "uid_type": 1, + "stype": 0, + "r_type": 1, + "inner_id": 0, + "status": 1, + "dynamic_id_str": "669022473022341136", + "pre_dy_id_str": "669016644742283288", + "orig_dy_id_str": "669007814298959974", + "rid_str": "669022472968542526", + "origin": { + "uid": 392836434, + "type": 2, + "rid": 196658860, + "acl": 1024, + "view": 46111, + "repost": 1446, + "like": 0, + "dynamic_id": 669007814298959974, + "timestamp": 1654603920, + "pre_dy_id": 0, + "orig_dy_id": 0, + "uid_type": 1, + "stype": 0, + "r_type": 0, + "inner_id": 0, + "status": 1, + "dynamic_id_str": "669007814298959974", + "pre_dy_id_str": "0", + "orig_dy_id_str": "0", + "rid_str": "196658860" + }, + "previous": { + "uid": 9617619, + "type": 1, + "rid": 669016644698939384, + "acl": 1024, + "view": 1381, + "repost": 3, + "like": 0, + "dynamic_id": 669016644742283288, + "timestamp": 1654605976, + "pre_dy_id": 669007814298959974, + "orig_dy_id": 669007814298959974, + "uid_type": 1, + "stype": 0, + "r_type": 1, + "inner_id": 0, + "status": 1, + "dynamic_id_str": "669016644742283288", + "pre_dy_id_str": "669007814298959974", + "orig_dy_id_str": "669007814298959974", + "rid_str": "669016644698939384" + } + }, + "card": "{ \"user\": { \"uid\": 37906788, \"uname\": \"整天就想吃桃子\", \"face\": \"http:\\/\\/i0.hdslb.com\\/bfs\\/face\\/388f29bb0e426d625378b99eec690775467ebb00.jpg\" }, \"item\": { \"rp_id\": 669022472968542526, \"uid\": 37906788, \"content\": \"\\/\\/@哔哩哔哩直播:6月8日KPL首届夏季赛火热开赛,明星主播花式解说!开赛首日直播间礼品不定时掉...\", \"ctrl\": \"[{\\\"location\\\":2,\\\"length\\\":7,\\\"data\\\":\\\"9617619\\\",\\\"type\\\":1}]\", \"orig_dy_id\": 669007814298959974, \"pre_dy_id\": 669016644742283288, \"timestamp\": 0, \"at_uids\": [ 9617619 ], \"orig_type\": 2 }, \"origin\": \"{\\\"item\\\":{\\\"at_control\\\":\\\"[{\\\\\\\"location\\\\\\\":0,\\\\\\\"length\\\\\\\":4,\\\\\\\"data\\\\\\\":\\\\\\\"4\\\\\\\",\\\\\\\"type\\\\\\\":2}]\\\",\\\"category\\\":\\\"daily\\\",\\\"description\\\":\\\"互动抽奖 【上B站,看KPL】\\\\r\\\\nKPL首届夏季赛即将来袭,6月8日15:00B站55官方直播间等你来看!你最期待哪场对决呢?更有多位明星主播陪你观赛,趣味吐槽花式解说开赛首日~\\\\r\\\\n\\\\r\\\\n55直播间马超-无双飞将皮肤助力金撒不停,赛事全程天选好礼每局掉落,观赛还能领取游戏内道具!APP端参与直播间【热议】讨论,更有机会获超多奖励。\\\\r\\\\n\\\\r\\\\nKPL赛事征稿开赛日同步上线,带#KPL激励计划#话题投稿,瓜分30万奖金~\\\\r\\\\n战火将燃,谁将勇夺开门红,让我们拭目以待! [打call]\\\\n\\\\n直播间TP:https:\\\\\\/\\\\\\/live.bilibili.com\\\\\\/55 \\\\n赛事预测:https:\\\\\\/\\\\\\/www.bilibili.com\\\\\\/v\\\\\\/game\\\\\\/match\\\\\\/competition?spm_id_from=444.42.0.0 \\\\n更多比赛:https:\\\\\\/\\\\\\/www.bilibili.com\\\\\\/v\\\\\\/game\\\\\\/match\\\\\\/schedule?mid=0&gid=0&tid=0&time=1639785600000&spm_id_from=444.42.0.0\\\",\\\"id\\\":196658860,\\\"is_fav\\\":0,\\\"pictures\\\":[{\\\"img_height\\\":6758,\\\"img_size\\\":4693.3251953125,\\\"img_src\\\":\\\"https:\\\\\\/\\\\\\/i0.hdslb.com\\\\\\/bfs\\\\\\/album\\\\\\/d4fd33fe00c80938daf6f14641f15901bc4a0d17.jpg\\\",\\\"img_tags\\\":null,\\\"img_width\\\":1080}],\\\"pictures_count\\\":1,\\\"reply\\\":128,\\\"role\\\":[],\\\"settings\\\":{\\\"copy_forbidden\\\":\\\"0\\\"},\\\"source\\\":[],\\\"title\\\":\\\"\\\",\\\"upload_time\\\":1654603920},\\\"user\\\":{\\\"head_url\\\":\\\"http:\\\\\\/\\\\\\/i0.hdslb.com\\\\\\/bfs\\\\\\/face\\\\\\/50de7906e50260c0e596d54ca51687e58ed7a9ba.jpg\\\",\\\"name\\\":\\\"哔哩哔哩王者荣耀赛事\\\",\\\"uid\\\":392836434,\\\"vip\\\":{\\\"avatar_subscript\\\":1,\\\"due_date\\\":1661097600000,\\\"label\\\":{\\\"label_theme\\\":\\\"annual_vip\\\",\\\"path\\\":\\\"\\\",\\\"text\\\":\\\"年度大会员\\\"},\\\"nickname_color\\\":\\\"#FB7299\\\",\\\"status\\\":1,\\\"theme_type\\\":0,\\\"type\\\":2,\\\"vip_pay_type\\\":0}}}\", \"origin_extension\": { \"lott\": \"{\\\"lottery_id\\\":96074}\" }, \"origin_extend_json\": \"{\\\"ctrl\\\":[{\\\"data\\\":\\\"4\\\",\\\"length\\\":4,\\\"location\\\":0,\\\"type\\\":2}],\\\"from\\\":{\\\"emoji_type\\\":1,\\\"from\\\":\\\"create.dynamic.web\\\",\\\"verify\\\":{\\\"aegis_enable\\\":true,\\\"asw\\\":{},\\\"cc\\\":{},\\\"csw\\\":{},\\\"dc\\\":{},\\\"gc\\\":{},\\\"ra\\\":{},\\\"sp\\\":{},\\\"sw\\\":{},\\\"ur\\\":{},\\\"verify_first\\\":true}},\\\"like_icon\\\":{\\\"action\\\":\\\"\\\",\\\"action_url\\\":\\\"\\\",\\\"end\\\":\\\"\\\",\\\"end_url\\\":\\\"\\\",\\\"start\\\":\\\"\\\",\\\"start_url\\\":\\\"\\\"},\\\"lott\\\":{\\\"lottery_id\\\":96074},\\\"topic\\\":{\\\"is_attach_topic\\\":1}}\", \"origin_user\": { \"info\": { \"uid\": 392836434, \"uname\": \"哔哩哔哩王者荣耀赛事\", \"face\": \"http:\\/\\/i0.hdslb.com\\/bfs\\/face\\/50de7906e50260c0e596d54ca51687e58ed7a9ba.jpg\", \"face_nft\": 0 }, \"card\": { \"official_verify\": { \"type\": 1, \"desc\": \"哔哩哔哩王者荣耀赛事官方帐号\" } }, \"vip\": { \"vipType\": 2, \"vipDueDate\": 1661097600000, \"vipStatus\": 1, \"themeType\": 0, \"label\": { \"path\": \"\", \"text\": \"年度大会员\", \"label_theme\": \"annual_vip\", \"text_color\": \"#FFFFFF\", \"bg_style\": 1, \"bg_color\": \"#FB7299\", \"border_color\": \"\" }, \"avatar_subscript\": 1, \"nickname_color\": \"#FB7299\", \"role\": 3, \"avatar_subscript_url\": \"http:\\/\\/i0.hdslb.com\\/bfs\\/vip\\/icon_Certification_big_member_22_3x.png\" }, \"pendant\": { \"pid\": 0, \"name\": \"\", \"image\": \"\", \"expire\": 0, \"image_enhance\": \"\", \"image_enhance_frame\": \"\" }, \"rank\": \"10000\", \"sign\": \"哔哩哔哩王者荣耀赛事官方账号\", \"level_info\": { \"current_level\": 6 } } }", + "extend_json": "{\"\":{\"at_mids\":[{\"at_type\":2,\"mid_list\":[9617619]}],\"content\":\"\\/\\/@哔哩哔哩直播:6月8日KPL首届夏季赛火热开赛,明星主播花式解说!开赛首日直播间礼品不定时掉...\",\"data_type\":2,\"need_send_msg\":true,\"publisher\":37906788},\"ctrl\":[{\"data\":\"9617619\",\"length\":7,\"location\":2,\"type\":1}],\"from\":{\"emoji_type\":1,\"from\":\"create.fast_repost\",\"verify\":{\"aegis_enable\":true,\"asw\":{},\"cc\":{},\"csw\":{},\"dc\":{},\"gc\":{},\"ra\":{},\"sp\":{},\"sw\":{},\"ur\":{}}},\"like_icon\":{\"action\":\"\",\"action_url\":\"\",\"end\":\"\",\"end_url\":\"\",\"start\":\"\",\"start_url\":\"\"}}", + "display": { + "origin": { + "emoji_info": { + "emoji_details": [ + { + "emoji_name": "[打call]", + "id": 510, + "package_id": 1, + "state": 0, + "type": 1, + "attr": 0, + "text": "[打call]", + "url": "http://i0.hdslb.com/bfs/emote/431432c43da3ee5aab5b0e4f8931953e649e9975.png", + "meta": { + "size": 1 + }, + "mtime": 1648834168 + } + ] + }, + "relation": { + "status": 1, + "is_follow": 0, + "is_followed": 0 + } + }, + "relation": { + "status": 1, + "is_follow": 0, + "is_followed": 0 + } + } + }, + { + "desc": { + "uid": 586724890, + "type": 1, + "rid": 669019754258423810, + "acl": 0, + "view": 0, + "repost": 0, + "like": 0, + "is_liked": 0, + "dynamic_id": 669019754292314181, + "timestamp": 1654606700, + "pre_dy_id": 669016644742283288, + "orig_dy_id": 669007814298959974, + "orig_type": 2, + "user_profile": { + "info": { + "uid": 586724890, + "uname": "雪羽枭白", + "face": "http://i1.hdslb.com/bfs/face/a270f0df9a621d6d7f05a0ff94c64bad5fcb6964.jpg", + "face_nft": 0 + }, + "card": { + "official_verify": { + "type": -1, + "desc": "" + } + }, + "vip": { + "vipType": 0, + "vipDueDate": 0, + "vipStatus": 0, + "themeType": 0, + "label": { + "path": "", + "text": "", + "label_theme": "", + "text_color": "", + "bg_style": 0, + "bg_color": "", + "border_color": "" + }, + "avatar_subscript": 0, + "nickname_color": "", + "role": 0, + "avatar_subscript_url": "" + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "", + "image_enhance_frame": "" + }, + "rank": "10000", + "sign": "芜湖,起飞~", + "level_info": { + "current_level": 4 + } + }, + "uid_type": 1, + "stype": 0, + "r_type": 1, + "inner_id": 0, + "status": 1, + "dynamic_id_str": "669019754292314181", + "pre_dy_id_str": "669016644742283288", + "orig_dy_id_str": "669007814298959974", + "rid_str": "669019754258423810", + "origin": { + "uid": 392836434, + "type": 2, + "rid": 196658860, + "acl": 1024, + "view": 46111, + "repost": 1446, + "like": 0, + "dynamic_id": 669007814298959974, + "timestamp": 1654603920, + "pre_dy_id": 0, + "orig_dy_id": 0, + "uid_type": 1, + "stype": 0, + "r_type": 0, + "inner_id": 0, + "status": 1, + "dynamic_id_str": "669007814298959974", + "pre_dy_id_str": "0", + "orig_dy_id_str": "0", + "rid_str": "196658860" + }, + "previous": { + "uid": 9617619, + "type": 1, + "rid": 669016644698939384, + "acl": 1024, + "view": 1381, + "repost": 3, + "like": 0, + "dynamic_id": 669016644742283288, + "timestamp": 1654605976, + "pre_dy_id": 669007814298959974, + "orig_dy_id": 669007814298959974, + "uid_type": 1, + "stype": 0, + "r_type": 1, + "inner_id": 0, + "status": 1, + "dynamic_id_str": "669016644742283288", + "pre_dy_id_str": "669007814298959974", + "orig_dy_id_str": "669007814298959974", + "rid_str": "669016644698939384" + } + }, + "card": "{ \"user\": { \"uid\": 586724890, \"uname\": \"雪羽枭白\", \"face\": \"http:\\/\\/i1.hdslb.com\\/bfs\\/face\\/a270f0df9a621d6d7f05a0ff94c64bad5fcb6964.jpg\" }, \"item\": { \"rp_id\": 669019754258423810, \"uid\": 586724890, \"content\": \"\\/\\/@哔哩哔哩直播:6月8日KPL首届夏季赛火热开赛,明星主播花式解说!开赛首日直播间礼品不定时掉落,记得好好蹲守哦~明天15点,2022KPL夏季赛我们不见不散>>>网页链接\", \"ctrl\": \"[{\\\"location\\\":2,\\\"length\\\":7,\\\"data\\\":\\\"9617619\\\",\\\"type\\\":1}]\", \"orig_dy_id\": 669007814298959974, \"pre_dy_id\": 669016644742283288, \"timestamp\": 0, \"at_uids\": [ 9617619 ], \"orig_type\": 2 }, \"origin\": \"{\\\"item\\\":{\\\"at_control\\\":\\\"[{\\\\\\\"location\\\\\\\":0,\\\\\\\"length\\\\\\\":4,\\\\\\\"data\\\\\\\":\\\\\\\"4\\\\\\\",\\\\\\\"type\\\\\\\":2}]\\\",\\\"category\\\":\\\"daily\\\",\\\"description\\\":\\\"互动抽奖 【上B站,看KPL】\\\\r\\\\nKPL首届夏季赛即将来袭,6月8日15:00B站55官方直播间等你来看!你最期待哪场对决呢?更有多位明星主播陪你观赛,趣味吐槽花式解说开赛首日~\\\\r\\\\n\\\\r\\\\n55直播间马超-无双飞将皮肤助力金撒不停,赛事全程天选好礼每局掉落,观赛还能领取游戏内道具!APP端参与直播间【热议】讨论,更有机会获超多奖励。\\\\r\\\\n\\\\r\\\\nKPL赛事征稿开赛日同步上线,带#KPL激励计划#话题投稿,瓜分30万奖金~\\\\r\\\\n战火将燃,谁将勇夺开门红,让我们拭目以待! [打call]\\\\n\\\\n直播间TP:https:\\\\\\/\\\\\\/live.bilibili.com\\\\\\/55 \\\\n赛事预测:https:\\\\\\/\\\\\\/www.bilibili.com\\\\\\/v\\\\\\/game\\\\\\/match\\\\\\/competition?spm_id_from=444.42.0.0 \\\\n更多比赛:https:\\\\\\/\\\\\\/www.bilibili.com\\\\\\/v\\\\\\/game\\\\\\/match\\\\\\/schedule?mid=0&gid=0&tid=0&time=1639785600000&spm_id_from=444.42.0.0\\\",\\\"id\\\":196658860,\\\"is_fav\\\":0,\\\"pictures\\\":[{\\\"img_height\\\":6758,\\\"img_size\\\":4693.3251953125,\\\"img_src\\\":\\\"https:\\\\\\/\\\\\\/i0.hdslb.com\\\\\\/bfs\\\\\\/album\\\\\\/d4fd33fe00c80938daf6f14641f15901bc4a0d17.jpg\\\",\\\"img_tags\\\":null,\\\"img_width\\\":1080}],\\\"pictures_count\\\":1,\\\"reply\\\":128,\\\"role\\\":[],\\\"settings\\\":{\\\"copy_forbidden\\\":\\\"0\\\"},\\\"source\\\":[],\\\"title\\\":\\\"\\\",\\\"upload_time\\\":1654603920},\\\"user\\\":{\\\"head_url\\\":\\\"http:\\\\\\/\\\\\\/i0.hdslb.com\\\\\\/bfs\\\\\\/face\\\\\\/50de7906e50260c0e596d54ca51687e58ed7a9ba.jpg\\\",\\\"name\\\":\\\"哔哩哔哩王者荣耀赛事\\\",\\\"uid\\\":392836434,\\\"vip\\\":{\\\"avatar_subscript\\\":1,\\\"due_date\\\":1661097600000,\\\"label\\\":{\\\"label_theme\\\":\\\"annual_vip\\\",\\\"path\\\":\\\"\\\",\\\"text\\\":\\\"年度大会员\\\"},\\\"nickname_color\\\":\\\"#FB7299\\\",\\\"status\\\":1,\\\"theme_type\\\":0,\\\"type\\\":2,\\\"vip_pay_type\\\":0}}}\", \"origin_extension\": { \"lott\": \"{\\\"lottery_id\\\":96074}\" }, \"origin_extend_json\": \"{\\\"ctrl\\\":[{\\\"data\\\":\\\"4\\\",\\\"length\\\":4,\\\"location\\\":0,\\\"type\\\":2}],\\\"from\\\":{\\\"emoji_type\\\":1,\\\"from\\\":\\\"create.dynamic.web\\\",\\\"verify\\\":{\\\"aegis_enable\\\":true,\\\"asw\\\":{},\\\"cc\\\":{},\\\"csw\\\":{},\\\"dc\\\":{},\\\"gc\\\":{},\\\"ra\\\":{},\\\"sp\\\":{},\\\"sw\\\":{},\\\"ur\\\":{},\\\"verify_first\\\":true}},\\\"like_icon\\\":{\\\"action\\\":\\\"\\\",\\\"action_url\\\":\\\"\\\",\\\"end\\\":\\\"\\\",\\\"end_url\\\":\\\"\\\",\\\"start\\\":\\\"\\\",\\\"start_url\\\":\\\"\\\"},\\\"lott\\\":{\\\"lottery_id\\\":96074},\\\"topic\\\":{\\\"is_attach_topic\\\":1}}\", \"origin_user\": { \"info\": { \"uid\": 392836434, \"uname\": \"哔哩哔哩王者荣耀赛事\", \"face\": \"http:\\/\\/i0.hdslb.com\\/bfs\\/face\\/50de7906e50260c0e596d54ca51687e58ed7a9ba.jpg\", \"face_nft\": 0 }, \"card\": { \"official_verify\": { \"type\": 1, \"desc\": \"哔哩哔哩王者荣耀赛事官方帐号\" } }, \"vip\": { \"vipType\": 2, \"vipDueDate\": 1661097600000, \"vipStatus\": 1, \"themeType\": 0, \"label\": { \"path\": \"\", \"text\": \"年度大会员\", \"label_theme\": \"annual_vip\", \"text_color\": \"#FFFFFF\", \"bg_style\": 1, \"bg_color\": \"#FB7299\", \"border_color\": \"\" }, \"avatar_subscript\": 1, \"nickname_color\": \"#FB7299\", \"role\": 3, \"avatar_subscript_url\": \"http:\\/\\/i0.hdslb.com\\/bfs\\/vip\\/icon_Certification_big_member_22_3x.png\" }, \"pendant\": { \"pid\": 0, \"name\": \"\", \"image\": \"\", \"expire\": 0, \"image_enhance\": \"\", \"image_enhance_frame\": \"\" }, \"rank\": \"10000\", \"sign\": \"哔哩哔哩王者荣耀赛事官方账号\", \"level_info\": { \"current_level\": 6 } } }", + "extend_json": "{\"\":{\"at_mids\":[{\"at_type\":2,\"mid_list\":[9617619]}],\"content\":\"\\/\\/@哔哩哔哩直播:6月8日KPL首届夏季赛火热开赛,明星主播花式解说!开赛首日直播间礼品不定时掉落,记得好好蹲守哦~明天15点,2022KPL夏季赛我们不见不散>>>网页链接\",\"data_type\":2,\"need_send_msg\":true,\"publisher\":586724890},\"ctrl\":[{\"data\":\"9617619\",\"length\":7,\"location\":2,\"type\":1}],\"from\":{\"emoji_type\":1,\"from\":\"create.dynamic.web\",\"verify\":{\"aegis_enable\":true,\"asw\":{},\"cc\":{},\"csw\":{},\"dc\":{},\"gc\":{},\"ra\":{},\"sp\":{},\"sw\":{},\"ur\":{}}},\"like_icon\":{\"action\":\"\",\"action_url\":\"\",\"end\":\"\",\"end_url\":\"\",\"start\":\"\",\"start_url\":\"\"}}", + "display": { + "origin": { + "emoji_info": { + "emoji_details": [ + { + "emoji_name": "[打call]", + "id": 510, + "package_id": 1, + "state": 0, + "type": 1, + "attr": 0, + "text": "[打call]", + "url": "http://i0.hdslb.com/bfs/emote/431432c43da3ee5aab5b0e4f8931953e649e9975.png", + "meta": { + "size": 1 + }, + "mtime": 1648834168 + } + ] + }, + "relation": { + "status": 1, + "is_follow": 0, + "is_followed": 0 + } + }, + "relation": { + "status": 1, + "is_follow": 0, + "is_followed": 0 + } + } + } + ], + "_gt_": 0 + } +} +``` +
+ + +## 动态点赞列表 + +> https://api.vc.bilibili.com/dynamic_like/v1/dynamic_like/spec_item_likes + +请求方式:GET + +==Attention: 点赞列表总计超过25K部分继续获取可能被限制。== + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ----------- | ---- | ------ | ------- | ---- | +|dynamic_id|int64 | 动态id | 必须 | | +|pn|int64 | 页码 | 非必须 | | +|ps|int64 | 每页数量 | 非必须 |该值不得大于20 | + +**json回复:** +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | -------- | +| code | num | 返回值 | 0:成功 | +| data | obj | 信息本体 | | +| message | str | 错误信息 | 默认为空 | +| msg | num | 空 | | + +`data`对象: + +| 字段 | 类型 | 用途 | 备注 | +| -------- | ---- | -------------- | ------------ | +|item_likes|list |点赞信息列表主体 | | +| has_more | bool | 是否还有下一页 | 每页最多20条 | +| total_count | int | 总计点赞数 | | +| _gt_ | num | 0 | 作用尚不明确 | + +`data`中的`item_likes`对象: + +由于参数过多,这里不一一列举,请自行参阅其他文件理解。 + +**示例:** + +获取`哔哩哔哩弹幕网`的动态id为`669016644742283288`动态 +```shell +curl -G 'https://api.vc.bilibili.com/dynamic_like/v1/dynamic_like/spec_item_likes' \ +--data-urlencode 'dynamic_id=669016644742283288' +``` + +
+查看响应示例 + +```json +{ + "code": 0, + "msg": "", + "message": "", + "data": { + "item_likes": [ + { + "uid": 660169578, + "time": 1654946013, + "face_url": "http://i0.hdslb.com/bfs/face/346ce28e99cc0a7d9cc05b0c0951957445cbcb61.jpg", + "uname": "空蓝奇观", + "user_info": { + "uid": 660169578, + "uname": "空蓝奇观", + "face": "http://i0.hdslb.com/bfs/face/346ce28e99cc0a7d9cc05b0c0951957445cbcb61.jpg", + "rank": "10000", + "official_verify": { + "type": -1, + "desc": "" + }, + "vip": { + "vipType": 1, + "vipDueDate": 1656604800000, + "vipStatus": 1, + "themeType": 0, + "label": { + "path": "", + "text": "大会员", + "label_theme": "vip", + "text_color": "#FFFFFF", + "bg_style": 1, + "bg_color": "#FB7299", + "border_color": "" + }, + "avatar_subscript": 1, + "nickname_color": "", + "role": 1, + "avatar_subscript_url": "http://i0.hdslb.com/bfs/vip/icon_Certification_big_member_22_3x.png" + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "", + "image_enhance_frame": "" + }, + "sign": "。。。", + "level_info": { + "current_level": 4 + } + }, + "attend": 0 + }, + { + "uid": 522318130, + "time": 1654901839, + "face_url": "http://i1.hdslb.com/bfs/face/3159660d82bf0ffc878265cd11f7bb55122848a8.jpg", + "uname": "114514号饼干机器人", + "user_info": { + "uid": 522318130, + "uname": "114514号饼干机器人", + "face": "http://i1.hdslb.com/bfs/face/3159660d82bf0ffc878265cd11f7bb55122848a8.jpg", + "rank": "10000", + "official_verify": { + "type": -1, + "desc": "" + }, + "vip": { + "vipType": 1, + "vipDueDate": 1655740800000, + "vipStatus": 1, + "themeType": 0, + "label": { + "path": "", + "text": "大会员", + "label_theme": "vip", + "text_color": "#FFFFFF", + "bg_style": 1, + "bg_color": "#FB7299", + "border_color": "" + }, + "avatar_subscript": 1, + "nickname_color": "", + "role": 1, + "avatar_subscript_url": "http://i0.hdslb.com/bfs/vip/icon_Certification_big_member_22_3x.png" + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "", + "image_enhance_frame": "" + }, + "sign": "", + "level_info": { + "current_level": 4 + } + }, + "attend": 0 + }, + { + "uid": 473098535, + "time": 1654874055, + "face_url": "http://i2.hdslb.com/bfs/face/ae37c4c8a7512322186eaf1c1cb170362c604215.jpg", + "uname": "花式送人头的感觉", + "user_info": { + "uid": 473098535, + "uname": "花式送人头的感觉", + "face": "http://i2.hdslb.com/bfs/face/ae37c4c8a7512322186eaf1c1cb170362c604215.jpg", + "rank": "10000", + "official_verify": { + "type": -1, + "desc": "" + }, + "vip": { + "vipType": 1, + "vipDueDate": 1626451200000, + "vipStatus": 0, + "themeType": 0, + "label": { + "path": "", + "text": "", + "label_theme": "", + "text_color": "", + "bg_style": 0, + "bg_color": "", + "border_color": "" + }, + "avatar_subscript": 0, + "nickname_color": "", + "role": 0, + "avatar_subscript_url": "" + }, + "pendant": { + "pid": 32446, + "name": "EDG战队", + "image": "http://i2.hdslb.com/bfs/garb/item/422c8bd354989845bd9ed64bd00cfa1048e92580.png", + "expire": 0, + "image_enhance": "http://i2.hdslb.com/bfs/garb/item/422c8bd354989845bd9ed64bd00cfa1048e92580.png", + "image_enhance_frame": "" + }, + "sign": "", + "level_info": { + "current_level": 4 + } + }, + "attend": 0 + }, + { + "uid": 297957406, + "time": 1654870870, + "face_url": "http://i1.hdslb.com/bfs/face/c28b431177fa6faffc4b928b9506a7057f002f73.jpg", + "uname": "冷水ensq", + "user_info": { + "uid": 297957406, + "uname": "冷水ensq", + "face": "http://i1.hdslb.com/bfs/face/c28b431177fa6faffc4b928b9506a7057f002f73.jpg", + "rank": "10000", + "official_verify": { + "type": -1, + "desc": "" + }, + "vip": { + "vipType": 2, + "vipDueDate": 1657036800000, + "vipStatus": 1, + "themeType": 0, + "label": { + "path": "", + "text": "年度大会员", + "label_theme": "annual_vip", + "text_color": "#FFFFFF", + "bg_style": 1, + "bg_color": "#FB7299", + "border_color": "" + }, + "avatar_subscript": 1, + "nickname_color": "#FB7299", + "role": 3, + "avatar_subscript_url": "http://i0.hdslb.com/bfs/vip/icon_Certification_big_member_22_3x.png" + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "", + "image_enhance_frame": "" + }, + "sign": "这个人很神秘,只写了这么点东西", + "level_info": { + "current_level": 5 + } + }, + "attend": 0 + }, + { + "uid": 384080149, + "time": 1654869742, + "face_url": "http://i1.hdslb.com/bfs/face/74efb9ca3fc68679cb3ddbf331ceffc246f13929.jpg", + "uname": "嵇獬", + "user_info": { + "uid": 384080149, + "uname": "嵇獬", + "face": "http://i1.hdslb.com/bfs/face/74efb9ca3fc68679cb3ddbf331ceffc246f13929.jpg", + "rank": "10000", + "official_verify": { + "type": -1, + "desc": "" + }, + "vip": { + "vipType": 1, + "vipDueDate": 1583942400000, + "vipStatus": 0, + "themeType": 0, + "label": { + "path": "", + "text": "", + "label_theme": "", + "text_color": "", + "bg_style": 0, + "bg_color": "", + "border_color": "" + }, + "avatar_subscript": 0, + "nickname_color": "", + "role": 0, + "avatar_subscript_url": "" + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "", + "image_enhance_frame": "" + }, + "sign": "这个人很懒,也不知道写什么\n我会一直做自己", + "level_info": { + "current_level": 5 + } + }, + "attend": 0 + }, + { + "uid": 666484726, + "time": 1654867375, + "face_url": "http://i1.hdslb.com/bfs/face/8e7c02c5d98d8ee52d0643227aed59b4fca1420d.jpg", + "uname": "未未成年累月", + "user_info": { + "uid": 666484726, + "uname": "未未成年累月", + "face": "http://i1.hdslb.com/bfs/face/8e7c02c5d98d8ee52d0643227aed59b4fca1420d.jpg", + "rank": "10000", + "official_verify": { + "type": -1, + "desc": "" + }, + "vip": { + "vipType": 1, + "vipDueDate": 1626624000000, + "vipStatus": 0, + "themeType": 0, + "label": { + "path": "", + "text": "", + "label_theme": "", + "text_color": "", + "bg_style": 0, + "bg_color": "", + "border_color": "" + }, + "avatar_subscript": 0, + "nickname_color": "", + "role": 0, + "avatar_subscript_url": "" + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "", + "image_enhance_frame": "" + }, + "sign": "", + "level_info": { + "current_level": 3 + } + }, + "attend": 0 + }, + { + "uid": 298557818, + "time": 1654865058, + "face_url": "http://i2.hdslb.com/bfs/face/b3bea3c029e4a35788625228a8ffbcec6c00eaea.jpg", + "uname": "爱吃星河的饼干", + "user_info": { + "uid": 298557818, + "uname": "爱吃星河的饼干", + "face": "http://i2.hdslb.com/bfs/face/b3bea3c029e4a35788625228a8ffbcec6c00eaea.jpg", + "rank": "10000", + "official_verify": { + "type": -1, + "desc": "" + }, + "vip": { + "vipType": 1, + "vipDueDate": 1603209600000, + "vipStatus": 0, + "themeType": 0, + "label": { + "path": "", + "text": "", + "label_theme": "", + "text_color": "", + "bg_style": 0, + "bg_color": "", + "border_color": "" + }, + "avatar_subscript": 0, + "nickname_color": "", + "role": 0, + "avatar_subscript_url": "" + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "", + "image_enhance_frame": "" + }, + "sign": "规矩,既是束缚,也是保护。", + "level_info": { + "current_level": 5 + } + }, + "attend": 0 + }, + { + "uid": 431901641, + "time": 1654845296, + "face_url": "http://i2.hdslb.com/bfs/face/88bf1a1c0cbbdf39032fa766e0b2324716b5315e.jpg", + "uname": "水粉墨殇", + "user_info": { + "uid": 431901641, + "uname": "水粉墨殇", + "face": "http://i2.hdslb.com/bfs/face/88bf1a1c0cbbdf39032fa766e0b2324716b5315e.jpg", + "rank": "10000", + "official_verify": { + "type": -1, + "desc": "" + }, + "vip": { + "vipType": 2, + "vipDueDate": 1655740800000, + "vipStatus": 1, + "themeType": 0, + "label": { + "path": "", + "text": "年度大会员", + "label_theme": "annual_vip", + "text_color": "#FFFFFF", + "bg_style": 1, + "bg_color": "#FB7299", + "border_color": "" + }, + "avatar_subscript": 1, + "nickname_color": "#FB7299", + "role": 3, + "avatar_subscript_url": "http://i0.hdslb.com/bfs/vip/icon_Certification_big_member_22_3x.png" + }, + "pendant": { + "pid": 5305, + "name": "明日方舟音律系列", + "image": "http://i2.hdslb.com/bfs/garb/item/615a1653281141ddf64cbb98c792ddaee78f7f40.png", + "expire": 0, + "image_enhance": "http://i2.hdslb.com/bfs/garb/item/516ecdf2d495a62f1bac31497c831b711823140c.webp", + "image_enhance_frame": "http://i2.hdslb.com/bfs/garb/item/c0751afbf950373c260254d02768eabf30ff3906.png" + }, + "sign": "", + "level_info": { + "current_level": 5 + } + }, + "attend": 0 + }, + { + "uid": 670417135, + "time": 1654833667, + "face_url": "http://i1.hdslb.com/bfs/face/f8fddf339016be034736c45714b52fbb148d5252.jpg", + "uname": "阿布不喜欢我", + "user_info": { + "uid": 670417135, + "uname": "阿布不喜欢我", + "face": "http://i1.hdslb.com/bfs/face/f8fddf339016be034736c45714b52fbb148d5252.jpg", + "rank": "10000", + "official_verify": { + "type": -1, + "desc": "" + }, + "vip": { + "vipType": 1, + "vipDueDate": 1626451200000, + "vipStatus": 0, + "themeType": 0, + "label": { + "path": "", + "text": "", + "label_theme": "", + "text_color": "", + "bg_style": 0, + "bg_color": "", + "border_color": "" + }, + "avatar_subscript": 0, + "nickname_color": "", + "role": 0, + "avatar_subscript_url": "" + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "", + "image_enhance_frame": "" + }, + "sign": "", + "level_info": { + "current_level": 4 + } + }, + "attend": 0 + }, + { + "uid": 339203848, + "time": 1654798783, + "face_url": "http://i1.hdslb.com/bfs/face/6bead07c483681db51d519aed8b8d00de265e8ae.jpg", + "uname": "XD君233", + "user_info": { + "uid": 339203848, + "uname": "XD君233", + "face": "http://i1.hdslb.com/bfs/face/6bead07c483681db51d519aed8b8d00de265e8ae.jpg", + "rank": "10000", + "official_verify": { + "type": -1, + "desc": "" + }, + "vip": { + "vipType": 1, + "vipDueDate": 1620748800000, + "vipStatus": 0, + "themeType": 0, + "label": { + "path": "", + "text": "", + "label_theme": "", + "text_color": "", + "bg_style": 0, + "bg_color": "", + "border_color": "" + }, + "avatar_subscript": 0, + "nickname_color": "", + "role": 0, + "avatar_subscript_url": "" + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "", + "image_enhance_frame": "" + }, + "sign": "大爱火柴人,我的世界和一些求生枪战游戏", + "level_info": { + "current_level": 5 + } + }, + "attend": 0 + }, + { + "uid": 199624899, + "time": 1654792330, + "face_url": "http://i0.hdslb.com/bfs/face/59526a5bfbe6985a0741ddaacffaee3c90c5e34a.jpg", + "uname": "猛Pink", + "user_info": { + "uid": 199624899, + "uname": "猛Pink", + "face": "http://i0.hdslb.com/bfs/face/59526a5bfbe6985a0741ddaacffaee3c90c5e34a.jpg", + "rank": "10000", + "official_verify": { + "type": -1, + "desc": "" + }, + "vip": { + "vipType": 1, + "vipDueDate": 1598112000000, + "vipStatus": 0, + "themeType": 0, + "label": { + "path": "", + "text": "", + "label_theme": "", + "text_color": "", + "bg_style": 0, + "bg_color": "", + "border_color": "" + }, + "avatar_subscript": 0, + "nickname_color": "", + "role": 0, + "avatar_subscript_url": "" + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "", + "image_enhance_frame": "" + }, + "sign": "这个人很神秘,什么都看不了=●ω●=", + "level_info": { + "current_level": 5 + } + }, + "attend": 0 + }, + { + "uid": 451151619, + "time": 1654791995, + "face_url": "http://i0.hdslb.com/bfs/face/9322b5a5802b5c831b2382afed073f5290be6e38.jpg", + "uname": "七城关", + "user_info": { + "uid": 451151619, + "uname": "七城关", + "face": "http://i0.hdslb.com/bfs/face/9322b5a5802b5c831b2382afed073f5290be6e38.jpg", + "rank": "10000", + "official_verify": { + "type": -1, + "desc": "" + }, + "vip": { + "vipType": 2, + "vipDueDate": 1655827200000, + "vipStatus": 1, + "themeType": 0, + "label": { + "path": "", + "text": "年度大会员", + "label_theme": "annual_vip", + "text_color": "#FFFFFF", + "bg_style": 1, + "bg_color": "#FB7299", + "border_color": "" + }, + "avatar_subscript": 1, + "nickname_color": "#FB7299", + "role": 3, + "avatar_subscript_url": "http://i0.hdslb.com/bfs/vip/icon_Certification_big_member_22_3x.png" + }, + "pendant": { + "pid": 6249, + "name": "星座系列:处女座", + "image": "http://i0.hdslb.com/bfs/garb/item/cd82b1c35fe0ea221c4fd56525893bc58ec53300.png", + "expire": 0, + "image_enhance": "http://i0.hdslb.com/bfs/garb/item/cd82b1c35fe0ea221c4fd56525893bc58ec53300.png", + "image_enhance_frame": "" + }, + "sign": "强迫症", + "level_info": { + "current_level": 5 + } + }, + "attend": 0 + }, + { + "uid": 375385022, + "time": 1654785903, + "face_url": "http://i2.hdslb.com/bfs/face/fbdfa7917e8f874382f4b42fcccd9c7296461cb9.jpg", + "uname": "想变成魔法少女的笙绘", + "user_info": { + "uid": 375385022, + "uname": "想变成魔法少女的笙绘", + "face": "http://i2.hdslb.com/bfs/face/fbdfa7917e8f874382f4b42fcccd9c7296461cb9.jpg", + "rank": "10000", + "official_verify": { + "type": -1, + "desc": "" + }, + "vip": { + "vipType": 1, + "vipDueDate": 1643472000000, + "vipStatus": 0, + "themeType": 0, + "label": { + "path": "", + "text": "", + "label_theme": "", + "text_color": "", + "bg_style": 0, + "bg_color": "", + "border_color": "" + }, + "avatar_subscript": 0, + "nickname_color": "", + "role": 0, + "avatar_subscript_url": "" + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "", + "image_enhance_frame": "" + }, + "sign": "希望自己的原创作品可以成为自活过的证明", + "level_info": { + "current_level": 5 + } + }, + "attend": 0 + }, + { + "uid": 291506521, + "time": 1654782383, + "face_url": "http://i1.hdslb.com/bfs/face/887f13f658cfbee23e3e200fe61755f1a8d5823c.jpg", + "uname": "星が落ちた日", + "user_info": { + "uid": 291506521, + "uname": "星が落ちた日", + "face": "http://i1.hdslb.com/bfs/face/887f13f658cfbee23e3e200fe61755f1a8d5823c.jpg", + "rank": "10000", + "official_verify": { + "type": -1, + "desc": "" + }, + "vip": { + "vipType": 2, + "vipDueDate": 1673884800000, + "vipStatus": 1, + "themeType": 0, + "label": { + "path": "", + "text": "年度大会员", + "label_theme": "annual_vip", + "text_color": "#FFFFFF", + "bg_style": 1, + "bg_color": "#FB7299", + "border_color": "" + }, + "avatar_subscript": 1, + "nickname_color": "#FB7299", + "role": 3, + "avatar_subscript_url": "http://i0.hdslb.com/bfs/vip/icon_Certification_big_member_22_3x.png" + }, + "pendant": { + "pid": 4104, + "name": "良辰美景·不问天", + "image": "http://i1.hdslb.com/bfs/garb/item/4dbf08aae75f9479a21db2bb289229b8d71631e1.png", + "expire": 0, + "image_enhance": "http://i1.hdslb.com/bfs/garb/item/253bf41272ddef301c1f6a0361abd49d772bfafc.webp", + "image_enhance_frame": "http://i1.hdslb.com/bfs/garb/item/c4934a1ffdb3865fe79b319de439af3973b53ec9.png" + }, + "sign": "一时摸鱼一时爽,一直摸鱼一直爽!", + "level_info": { + "current_level": 5 + } + }, + "attend": 0 + }, + { + "uid": 179333519, + "time": 1654780391, + "face_url": "http://i2.hdslb.com/bfs/face/89a58c10bf500fb7c9530ba8f28f73208c510d22.jpg", + "uname": "纳眉兹www", + "user_info": { + "uid": 179333519, + "uname": "纳眉兹www", + "face": "http://i2.hdslb.com/bfs/face/89a58c10bf500fb7c9530ba8f28f73208c510d22.jpg", + "rank": "10000", + "official_verify": { + "type": -1, + "desc": "" + }, + "vip": { + "vipType": 1, + "vipDueDate": 1646496000000, + "vipStatus": 0, + "themeType": 0, + "label": { + "path": "", + "text": "", + "label_theme": "", + "text_color": "", + "bg_style": 0, + "bg_color": "", + "border_color": "" + }, + "avatar_subscript": 0, + "nickname_color": "", + "role": 0, + "avatar_subscript_url": "" + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "", + "image_enhance_frame": "" + }, + "sign": "人生", + "level_info": { + "current_level": 4 + } + }, + "attend": 0 + }, + { + "uid": 497821251, + "time": 1654780363, + "face_url": "http://i0.hdslb.com/bfs/face/a7bf301db14cb7fa094dba5f68d13faa7c5798d2.jpg", + "uname": "不器用な・ジョゼ", + "user_info": { + "uid": 497821251, + "uname": "不器用な・ジョゼ", + "face": "http://i0.hdslb.com/bfs/face/a7bf301db14cb7fa094dba5f68d13faa7c5798d2.jpg", + "rank": "10000", + "official_verify": { + "type": -1, + "desc": "" + }, + "vip": { + "vipType": 2, + "vipDueDate": 1683216000000, + "vipStatus": 1, + "themeType": 0, + "label": { + "path": "", + "text": "年度大会员", + "label_theme": "annual_vip", + "text_color": "#FFFFFF", + "bg_style": 1, + "bg_color": "#FB7299", + "border_color": "" + }, + "avatar_subscript": 1, + "nickname_color": "#FB7299", + "role": 3, + "avatar_subscript_url": "http://i0.hdslb.com/bfs/vip/icon_Certification_big_member_22_3x.png" + }, + "pendant": { + "pid": 299, + "name": "梦塔·雪谜城", + "image": "http://i0.hdslb.com/bfs/face/c93e1eeb77b1bb0753eff243d49c006bf18d69c5.png", + "expire": 0, + "image_enhance": "http://i0.hdslb.com/bfs/face/c93e1eeb77b1bb0753eff243d49c006bf18d69c5.png", + "image_enhance_frame": "" + }, + "sign": "・花无凋零之日,爱无传达之时,爱情亘古不变,紫罗兰永世长存\n・人活着就是为了樱岛麻衣\nキャ━━━━(゚∀゚)━━━━!!", + "level_info": { + "current_level": 5 + } + }, + "attend": 0 + }, + { + "uid": 1054063538, + "time": 1654779485, + "face_url": "http://i2.hdslb.com/bfs/face/bc60a7b5c3b5fd624043050a3ab15e2c4c871803.jpg", + "uname": "贪吃的ZZ", + "user_info": { + "uid": 1054063538, + "uname": "贪吃的ZZ", + "face": "http://i2.hdslb.com/bfs/face/bc60a7b5c3b5fd624043050a3ab15e2c4c871803.jpg", + "rank": "10000", + "official_verify": { + "type": -1, + "desc": "" + }, + "vip": { + "vipType": 0, + "vipDueDate": 0, + "vipStatus": 0, + "themeType": 0, + "label": { + "path": "", + "text": "", + "label_theme": "", + "text_color": "", + "bg_style": 0, + "bg_color": "", + "border_color": "" + }, + "avatar_subscript": 0, + "nickname_color": "", + "role": 0, + "avatar_subscript_url": "" + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "", + "image_enhance_frame": "" + }, + "sign": "(ฅ>ω<*ฅ)", + "level_info": { + "current_level": 3 + } + }, + "attend": 0 + }, + { + "uid": 305663999, + "time": 1654777857, + "face_url": "http://i2.hdslb.com/bfs/face/3a2b2f84990ec182af8380ef97db8256c6ecec25.jpg", + "uname": "qw夕颜", + "user_info": { + "uid": 305663999, + "uname": "qw夕颜", + "face": "http://i2.hdslb.com/bfs/face/3a2b2f84990ec182af8380ef97db8256c6ecec25.jpg", + "rank": "10000", + "official_verify": { + "type": -1, + "desc": "" + }, + "vip": { + "vipType": 0, + "vipDueDate": 0, + "vipStatus": 0, + "themeType": 0, + "label": { + "path": "", + "text": "", + "label_theme": "", + "text_color": "", + "bg_style": 0, + "bg_color": "", + "border_color": "" + }, + "avatar_subscript": 0, + "nickname_color": "", + "role": 0, + "avatar_subscript_url": "" + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "", + "image_enhance_frame": "" + }, + "sign": "", + "level_info": { + "current_level": 4 + } + }, + "attend": 0 + }, + { + "uid": 436616802, + "time": 1654776381, + "face_url": "http://i0.hdslb.com/bfs/face/e1ddfcdac95b39217e4710f3605005abfecb53a1.jpg", + "uname": "桐影映江边", + "user_info": { + "uid": 436616802, + "uname": "桐影映江边", + "face": "http://i0.hdslb.com/bfs/face/e1ddfcdac95b39217e4710f3605005abfecb53a1.jpg", + "rank": "10000", + "official_verify": { + "type": -1, + "desc": "" + }, + "vip": { + "vipType": 1, + "vipDueDate": 1664208000000, + "vipStatus": 1, + "themeType": 0, + "label": { + "path": "", + "text": "大会员", + "label_theme": "vip", + "text_color": "#FFFFFF", + "bg_style": 1, + "bg_color": "#FB7299", + "border_color": "" + }, + "avatar_subscript": 1, + "nickname_color": "", + "role": 1, + "avatar_subscript_url": "http://i0.hdslb.com/bfs/vip/icon_Certification_big_member_22_3x.png" + }, + "pendant": { + "pid": 1990, + "name": "明日方舟", + "image": "http://i0.hdslb.com/bfs/garb/item/0c8e7d627a35c378b757f39419889ef1fcc0ed9b.png", + "expire": 0, + "image_enhance": "http://i0.hdslb.com/bfs/garb/item/1815c81da71069ea3db4553cad7d233f782da2f2.webp", + "image_enhance_frame": "http://i0.hdslb.com/bfs/garb/item/ed2b4ef1da228c0b937753542b33af8f04d1d70c.png" + }, + "sign": "追寻着你的身影,从迷失的世界起航,直到深海的尽头~", + "level_info": { + "current_level": 4 + } + }, + "attend": 0 + }, + { + "uid": 266536964, + "time": 1654775142, + "face_url": "http://i2.hdslb.com/bfs/face/b15e60d6e5403075f212d5bd3d30dc0fb3016088.jpg", + "uname": "君九j", + "user_info": { + "uid": 266536964, + "uname": "君九j", + "face": "http://i2.hdslb.com/bfs/face/b15e60d6e5403075f212d5bd3d30dc0fb3016088.jpg", + "rank": "10000", + "official_verify": { + "type": -1, + "desc": "" + }, + "vip": { + "vipType": 2, + "vipDueDate": 1683648000000, + "vipStatus": 1, + "themeType": 0, + "label": { + "path": "", + "text": "年度大会员", + "label_theme": "annual_vip", + "text_color": "#FFFFFF", + "bg_style": 1, + "bg_color": "#FB7299", + "border_color": "" + }, + "avatar_subscript": 1, + "nickname_color": "#FB7299", + "role": 3, + "avatar_subscript_url": "http://i0.hdslb.com/bfs/vip/icon_Certification_big_member_22_3x.png" + }, + "pendant": { + "pid": 1293, + "name": "碧蓝航线", + "image": "http://i2.hdslb.com/bfs/face/2508daec59b2aaada2784f26f9c1c28069f28e43.png", + "expire": 0, + "image_enhance": "http://i2.hdslb.com/bfs/face/2508daec59b2aaada2784f26f9c1c28069f28e43.png", + "image_enhance_frame": "" + }, + "sign": "", + "level_info": { + "current_level": 5 + } + }, + "attend": 0 + } + ], + "has_more": 1, + "total_count": 2367, + "_gt_": 0 + } +} +``` + +
+ +## 获取草稿列表 + +> https://api.vc.bilibili.com/dynamic_draft/v1/dynamic_draft/get_drafts + +请求方式:GET + +认证方式:Cookie(SESSDATA) + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | --------- | +| code | num | 返回值 | 0:成功 | +| data | obj | 信息本体 | | +| message | str | 错误信息 | 正常为"0" | +| ttl | num | 1 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------ | ----- | -------- | ---- | +| drafts | array | 草稿列表 | | + +`drafts`列表的每一项: + +| 字段 | 类型 | 内容 | 备注 | +| ------------ | ---- | -------------------- | ------------------------------------------------------------ | +| draft_id | str | 草稿id | | +| publish_time | num | 定时发送的秒级时间戳 | | +| type | num | 动态类型 | 请参考[获取特定动态卡片信息](get_dynamic_detail.md) | +| uid | num | 自己的mid | | +| user_profile | obj | 自己的用户信息 | 请参考[用户基本信息](../user/info.md) | +| request | str | 动态内容 | 该项为json转成str,内容请参考[发表纯文本动态](publish.md#发表纯文本动态) | diff --git a/docs/dynamic/card_info.md b/docs/dynamic/card_info.md new file mode 100644 index 0000000000..0b7c8d855a --- /dev/null +++ b/docs/dynamic/card_info.md @@ -0,0 +1,487 @@ +# 动态详细信息字段 + +不同动态内容卡片的具体信息。包含在***获取特定动态卡片信息,话题下特定动态信息***等API的Json回复中。 + +以card字段的形式出现,内容为一个可被解析为Json对象的字符串。 + +不同类型的动态内容拥有不同的字段。 + +**** + +## 在转发类动态中(type=1) + +需注意账号转发视频投稿,其他用户的动态以及分享收藏夹等均为转发类内容,并不属于type=4300的收藏类动态等。 + +在type=1的转发类动态中,解析出的对象包含以下内容: +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------- | +| user | obj | 转发者用户信息 | 包含用户名,用户id和头像 | +| item | obj | 转发相关信息 | `content`字段为转发附言 | | +| origin | str | 被转发动态信息 | 即本文档所描述的动态详细信息字段。
动态类型为`item`对象的`orig_type`字段 | +| origin_extend_json | str | 被转发动态补充信息 | | +| origin_user | obj | 被转发用户信息 | | +| activity_infos | obj | 被转发动态参与的活动 | | + +
+查看字段内容示例: + +```json +{ + "user": { + "uid": 1704629193, + "uname": "钢板狗的狐", + "face": "https://i0.hdslb.com/bfs/face/443bfd128429f84c0d81c20c4354ea5007f7480c.jpg" + }, + "item": { + "rp_id": 587236631985408400, + "uid": 1704629193, + "content": "#阅机无数#这是什么本子", + "ctrl": "", + "orig_dy_id": 587058081595689300, + "pre_dy_id": 587058081595689300, + "timestamp": 1635565083, + "reply": 0, + "orig_type": 8 + }, + "origin": "{\"aid\":933765713,\"attribute\":0,\"cid\":433047365,\"copyright\":1,\"ctime\":1635523511,\"desc\":\"-\",\"dimension\":{\"height\":1920,\"rotate\":0,\"width\":1080},\"duration\":200,\"dynamic\":\"\",\"first_frame\":\"https:\\/\\/i2.hdslb.com\\/bfs\\/storyff\\/n211029a2nf13h6fhybt231isumtaj9x_firsti.jpg\",\"jump_url\":\"bilibili:\\/\\/video\\/933765713\\/?page=1&player_preload=null&player_width=1080&player_height=1920&player_rotate=0\",\"owner\":{\"face\":\"https:\\/\\/i0.hdslb.com\\/bfs\\/face\\/e4c06054bc9d6c564637f70a7565a6a2d24ee521.jpg\",\"mid\":492755628,\"name\":\"Leojdj\"},\"pic\":\"https:\\/\\/i2.hdslb.com\\/bfs\\/archive\\/8b3bd4387d4041389ba7f02ce813b17f96a7f1e2.jpg\",\"player_info\":null,\"pubdate\":1635523511,\"rights\":{\"autoplay\":1,\"bp\":0,\"download\":0,\"elec\":0,\"hd5\":0,\"is_cooperation\":0,\"movie\":0,\"no_background\":0,\"no_reprint\":1,\"pay\":0,\"ugc_pay\":0,\"ugc_pay_preview\":0},\"short_link\":\"https:\\/\\/b23.tv\\/BV16T4y1R7H9\",\"short_link_v2\":\"https:\\/\\/b23.tv\\/BV16T4y1R7H9\",\"stat\":{\"aid\":933765713,\"coin\":0,\"danmaku\":0,\"dislike\":0,\"favorite\":1,\"his_rank\":0,\"like\":2,\"now_rank\":0,\"reply\":2,\"share\":1,\"view\":70},\"state\":0,\"tid\":95,\"title\":\"试图安装Windows10\",\"tname\":\"数码\",\"up_from_v2\":9,\"videos\":1}", + "origin_extend_json": "{\"\":{\"ogv\":{\"ogv_id\":0}},\"dispute\":{\"content\":\"\"},\"from\":{\"from\":\"\"},\"like_icon\":{\"action\":\"\",\"action_url\":\"\",\"end\":\"\",\"end_url\":\"\",\"start\":\"\",\"start_url\":\"\"},\"topic\":{\"is_attach_topic\":1}}", + "origin_user": { + "info": { + "uid": 492755628, + "uname": "Leojdj", + "face": "https://i0.hdslb.com/bfs/face/e4c06054bc9d6c564637f70a7565a6a2d24ee521.jpg" + }, + "card": { + "official_verify": { + "type": -1, + "desc": "" + } + }, + "vip": { + "vipType": 0, + "vipDueDate": 0, + "vipStatus": 0, + "themeType": 0, + "label": { + "path": "", + "text": "", + "label_theme": "", + "text_color": "", + "bg_style": 0, + "bg_color": "", + "border_color": "" + }, + "avatar_subscript": 0, + "nickname_color": "", + "role": 0, + "avatar_subscript_url": "" + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "", + "image_enhance_frame": "" + }, + "rank": "10000", + "sign": "", + "level_info": { + "current_level": 3 + } + }, + "activity_infos": { + "details": [ + { + "type": 1, + "detail": "{\"is_show\":1,\"topic_id\":10511051,\"topic_link\":\"https:\\/\\/member.bilibili.com\\/york\\/punch-card?navhide=1\",\"topic_name\":\"打卡挑战\"}" + } + ] + } +} +``` + +
+ +## 在图片动态中(type=2) + +在type=2的图片动态中,解析出的对象包含以下内容: +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------- | +| item | obj | 图片动态内容 | `description`字段为文字内容
`pictures`字段图片 | | +| user | obj | 发布者用户信息 | 包含用户名,用户id和头像 | + + +
+查看字段内容示例: + +```json +{ + "item": { + "at_control": "", + "category": "daily", + "description": "#阅机无数#已知这个笔记本的品牌为Dell,隶属于灵越系列,主打外观的设计,目测应该是4代酷睿之前的型号,CPU应该是低压i5/i3,不知道能否找出具体型号", + "id": 172408258, + "is_fav": 0, + "pictures": [ + { + "img_height": 2400, + "img_size": 1425.97998046875, + "img_src": "https://i0.hdslb.com/bfs/album/3716f26eeede4d77874f3eeacd49b0e2e597fcc3.jpg", + "img_tags": null, + "img_width": 1080 + } + ], + "pictures_count": 1, + "reply": 2, + "role": [], + "settings": { + "copy_forbidden": "0" + }, + "source": [], + "title": "", + "upload_time": 1635433727 + }, + "user": { + "head_url": "https://i1.hdslb.com/bfs/face/98f88e00306ac92d30bae013f8295d26bd018093.jpg", + "name": "LostCity失落之城", + "uid": 169216498, + "vip": { + "avatar_subscript": 0, + "due_date": 0, + "label": { + "label_theme": "", + "path": "", + "text": "" + }, + "nickname_color": "", + "status": 0, + "theme_type": 0, + "type": 0, + "vip_pay_type": 0 + } + } +} +``` + +
+ + +## 在文字动态中(type=4) + +在type=4的文字动态中,解析出的对象包含以下内容: +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------- | +| item | obj | 文字动态内容 | `description`字段为文字内容 | | +| user | obj | 发布者用户信息 | 包含用户名,用户id和头像 | + + +
+查看字段内容示例: + +```json +{ + "user": { + "uid": 403417570, + "uname": "杯子人一君羊", + "face": "https://i1.hdslb.com/bfs/face/cf0772f2e4d76f75ca4c230d9ab1b50012a8bbfa.jpg" + }, + "item": { + "rp_id": 586612173803463700, + "uid": 403417570, + "content": "#阅机无数# 文字题\nthinkpad 09-15年\n触控笔\nenergy star\ncore i5\n[藏狐]", + "ctrl": "", + "orig_dy_id": 0, + "pre_dy_id": 0, + "timestamp": 1635419690, + "reply": 2 + } +} +``` + +
+ +## 在视频投稿动态中(type=8) + +在type=8的视频投稿动态中,解析出的对象包含以下内容: +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------- | +| aid | num | 视频avid | | +| attribute | num | `0` | [可能已弃用](https://shakaianee.top/archives/9/) | +| cid | num | 视频cid | | +| copyright | num | 原创信息 | 1为原创,2为转载 | +| desc | str | 视频简介 | | +| dimension | obj |视频1p分辨率| | +| duration | num | 视频时长 | 单位秒 | +| dynamic | str | 动态文字内容 | | +| first_frame | str | 视频第一帧图片 | 图片链接 | +| jump_url | str | 视频跳转链接 | | +| mission_id | num | 稿件参与的活动id | | +| owner | obj | 动态作者信息 | 即up主 | +| pic | str | 视频封面 | | +| player_info | ? | 可能是播放器信息 | | +| pubdate | num | 发布时间 | 时间戳 | +| rights | obj | 联合投稿,是否付费等信息 | 可能用来代替原`attribute`字段 | +| stat | obj | 视频数据 | 点赞投币等 | +| state | num | 视频状态 | 详情见**属性数据文档** | +| tid | num | 视频分区编号 | | +| title | str | 视频标题 | | +| tname | str | 视频分区名称 | | +| video | num | 视频数| | + + + +
+查看字段内容示例: + +```json +{ + "aid": 506318410, + "attribute": 0, + "cid": 432711595, + "copyright": 1, + "ctime": 1635403080, + "desc": "我看谁敢欺负天依依?都别动啊,放那儿让我来!\n好久不写萌歌歌了,耐心心看到结尾,有天依依激萌嚎叫(不\n\n作曲曲/编曲曲/混音音:iKz @Signal-E | 作词词:叫叫与壶壶\n唱歌歌:洛天依 | 调校校:Creuzer\n曲绘绘:pelokio & 贝贝web & 壶芬奇\nPVV:AYWC八毛 @Signal-E\n制作人:iKz\n\n蛀牙牙版:BV1FR4y1n7rt", + "dimension": { + "height": 1080, + "rotate": 0, + "width": 1920 + }, + "duration": 265, + "dynamic": "我看谁敢欺负天依依?都别动啊,放那儿让我来!\n好久不写萌歌歌了,耐心心看到结尾,有洛天依激萌嚎叫(不", + "first_frame": "https://i1.hdslb.com/bfs/storyff/n211029a21oldgobzh2ob1uf3tqav4yy_firsti.jpg", + "jump_url": "bilibili://video/506318410/?page=1&player_preload=null&player_width=1920&player_height=1080&player_rotate=0", + "mission_id": 122069, + "owner": { + "face": "https://i1.hdslb.com/bfs/face/4935c75aecf986c3c129400882ee9c5ceeeec4b5.jpg", + "mid": 25681, + "name": "iKz_茶壶" + }, + "pic": "https://i0.hdslb.com/bfs/archive/06749bfe8b9505b00bd572950615912fecadb513.jpg", + "player_info": null, + "pubdate": 1635501604, + "rights": { + "autoplay": 1, + "bp": 0, + "download": 0, + "elec": 0, + "hd5": 1, + "is_cooperation": 1, + "movie": 0, + "no_background": 0, + "no_reprint": 1, + "pay": 0, + "ugc_pay": 0, + "ugc_pay_preview": 0 + }, + "short_link": "https://b23.tv/BV13u411o7Ht", + "short_link_v2": "https://b23.tv/BV13u411o7Ht", + "stat": { + "aid": 506318410, + "coin": 5490, + "danmaku": 486, + "dislike": 0, + "favorite": 6017, + "his_rank": 0, + "like": 8526, + "now_rank": 0, + "reply": 597, + "share": 568, + "view": 44737 + }, + "state": 0, + "tid": 30, + "title": "【超萌萌洛天依!万圣节原创】嘤嘤大作战【iKz-茶壶壶】", + "tname": "VOCALOID·UTAU", + "videos": 1 +} +``` + +
+ +## 在专栏投稿动态中(type=64) + +在type=64的专栏投稿动态中,解析出的对象包含以下内容: +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------- | +| id | num | 专栏的id,即cv号 | | +| category | obj | 分类号和分类名称 | | +| categories | obj | 分类信息 | | +| title | str | 专栏标题 | | +| summary | str | 专栏简介 | | +| banner_url | str | 头图链接 | | +| template_id | num | 模板信息 | | +| state | num | 专栏状态 | | +| author | obj | 作者信息 | 包含了头像挂件和勋章等 | +| reprint | num | 可能是转载 | | +| image_urls | obj | 图片链接 | | +| publish_time | num | 发布时间 | 时间戳,应该指专栏 | +| ctime | num | 发布时间 | 时间戳,应该指动态 | +| stats | obj | 专栏数据,点赞之类 | 有点踩字段,但并未实装此功能 | +| words | num | 字数 | | +| origin_image_urls | obj | 源图片地址 | | +| list | ? | 可能为文集 | | +| is_like | bool | 是否点赞 | | +| media | obj | 番剧电影相关内容 | 影评的分数,是否有剧透等 | +| apply_time | ? | ? | | +| check_time | ? | ? | | +| original | num | 是否原创 | | +| act_id | num | ? | | +| dispute | ? | 可能为是否争议内容 | | +| authenMark | ? | ? | | +| cover_avid | num | 相关视频id | 例如笔记专栏的原视频 | +| top_video_info | ? | ? | | +| type | num | 可能是专栏类别 | | + +
+查看字段内容示例: + +```json +{ + "id": 12457797, + "category": { + "id": 42, + "parent_id": 41, + "name": "全部笔记" + }, + "categories": [ + { + "id": 41, + "parent_id": 0, + "name": "笔记" + }, + { + "id": 42, + "parent_id": 41, + "name": "全部笔记" + } + ], + "title": "【编曲教程】弦乐如何编写?二十分钟学会弦乐基础写法~", + "summary": "点击进入查看全文", + "banner_url": "https://i0.hdslb.com/bfs/archive/9c0f743f0d79bf3f73ea196eced55a9211ef363f.jpg", + "template_id": 4, + "state": 0, + "author": { + "mid": 310236726, + "name": "珞林ltyxh", + "face": "https://i0.hdslb.com/bfs/face/8c4aebb01b3cc34154168be51241b0345f110aeb.webp", + "pendant": { + "pid": 2155, + "name": "洛天依8th生日纪念", + "image": "https://i0.hdslb.com/bfs/garb/item/e98718ae0d09e48bc85df969820b88241bc06883.png", + "expire": 0 + }, + "official_verify": { + "type": -1, + "desc": "" + }, + "nameplate": { + "nid": 4, + "name": "青铜殿堂", + "image": "https://i0.hdslb.com/bfs/face/2879cd5fb8518f7c6da75887994c1b2a7fe670bd.png", + "image_small": "https://i2.hdslb.com/bfs/face/6707c120e00a3445933308fd9b7bd9fad99e9ec4.png", + "level": "普通勋章", + "condition": "单个自制视频总播放数>=1万" + }, + "vip": { + "type": 2, + "status": 1, + "due_date": 0, + "vip_pay_type": 0, + "theme_type": 0, + "label": { + "path": "", + "text": "年度大会员", + "label_theme": "annual_vip" + }, + "avatar_subscript": 1, + "nickname_color": "#FB7299" + } + }, + "reprint": 0, + "image_urls": [ + "https://i0.hdslb.com/bfs/article/banner/6daa4ac60ddec2456bb720dbb4979b07dd705e8a.png" + ], + "publish_time": 1627921161, + "ctime": 1627921161, + "stats": { + "view": 107, + "favorite": 5, + "like": 11, + "dislike": 0, + "reply": 1, + "share": 0, + "coin": 1, + "dynamic": 0 + }, + "words": 225, + "origin_image_urls": [ + "https://i0.hdslb.com/bfs/article/banner/6daa4ac60ddec2456bb720dbb4979b07dd705e8a.png" + ], + "list": null, + "is_like": false, + "media": { + "score": 0, + "media_id": 0, + "title": "", + "cover": "", + "area": "", + "type_id": 0, + "type_name": "", + "spoiler": 0, + "season_id": 0 + }, + "apply_time": "", + "check_time": "", + "original": 1, + "act_id": 0, + "dispute": null, + "authenMark": null, + "cover_avid": 57337301, + "top_video_info": null, + "type": 2 +} +``` + +
+ +## 在音频投稿动态中(type=256) + +在type=256的音频投稿动态中,解析出的对象包含以下内容: +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------- | +| id | num | 投稿编号 | 即au号 | +| upId | num | 音乐人id | 与用户uid不同 | +| title | str | 音频标题 | | +| upper | str | 上传者名称 | | +| cover | str | 封面图链接 | | +| author | str | 作者名称 | | +| ctime | num | 上传时间 | 时间戳的后面加了三个0 | +| playCnt | num | 播放量 | | +| intro | str | 音频介绍 | | +| schema | str | 跳转链接 | 似乎并不只是url | +| typeInfo | str | 分区信息 | | +| upperAvatar | str | 上传者的头像链接 | | + +
+查看字段内容示例: + +```json +{ + "id": 2562895, + "upId": 482834, + "title": "[蓝猫原创伴奏]无衣", + "upper": "NBluecat", + "cover": "https://i0.hdslb.com/bfs/music/1e7c4d04bd405159b66893d4cb68977ddf784b42.jpg", + "author": "NBluecat", + "ctime": 1632115270000, + "replyCnt": 1, + "playCnt": 252, + "intro": "_(:з」∠)_这是无衣的伴奏,非常简单", + "schema": "bilibili://music/detail/2562895?name=%5B%E8%93%9D%E7%8C%AB%E5%8E%9F%E5%88%9B%E4%BC%B4%E5%A5%8F%5D%E6%97%A0%E8%A1%A3&uperName=&cover_url=http%3A%2F%2Fi0.hdslb.com%2Fbfs%2Fmusic%2F1e7c4d04bd405159b66893d4cb68977ddf784b42.jpg&upperId=&author=NBluecat", + "typeInfo": "音乐 · 纯音乐/演奏", + "upperAvatar": "https://i2.hdslb.com/bfs/face/d5bf3c9f179803134172ff1c6090ba6b999651c6.jpg" +} +``` + +
diff --git a/docs/dynamic/content.md b/docs/dynamic/content.md new file mode 100644 index 0000000000..19fa44d6e9 --- /dev/null +++ b/docs/dynamic/content.md @@ -0,0 +1,1039 @@ +# 动态信息 + +- [获取正在直播的已关注者](#获取正在直播的已关注者) +- [获取发布新动态的已关注者](#获取发布新动态的已关注者) + +--- + +## 获取正在直播的已关注者 + +> https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/w_live_users + +*请求方式:GET* + +认证方式:Cookie(SESSDSTA) + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | ---- | ---------- | ------ | -------- | +| size | num | 每页显示数 | 非必要 | 默认为10 | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------- | +| code | num | 返回值 | 0:成功 | +| data | obj | 信息本体 | | +| message | str | 错误信息 | 默认为0 | +| msg | num | 空 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----------- | ----- | ---------- | ------------ | +| count | num | 直播者数量 | | +| group | str | "default" | 作用尚不明确 | +| items | array | 直播者列表 | | +| _gt_ | num | 0 | 作用尚不明确 | + +`data`中的`items`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | --------------- | ---- | +| 0 | obj | 第一位直播者 | | +| n | obj | 第(n+1)位直播者 | | +| …… | obj | …… | …… | + +`data`中的`items`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----- | ---- | ---------- | ---- | +| face | str | 直播者头像 | | +| link | str | 直播链接 | | +| title | str | 直播标题 | | +| uid | num | 直播者id | | +| uname | str | 直播者昵称 | | + +**示例:** + +```shell +curl -G 'https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/w_live_users' \ +--data-urlencode 'size=10' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "msg": "", + "message": "", + "data": { + "count": 4, + "group": "default", + "items": [ + { + "uid": 430774867, + "uname": "AIofficial", + "face": "https://i0.hdslb.com/bfs/face/f9a65c15bd1e9871419e6566aeee891eef420c5b.jpg", + "link": "https://live.bilibili.com/21412734", + "title": "【罚站AI】换装24小时AI直播间唱聊~" + }, + { + "uid": 456664753, + "uname": "央视新闻", + "face": "https://i1.hdslb.com/bfs/face/5a6808606bf1f7a2390b77e14df8d0d1d04680d9.jpg", + "link": "https://live.bilibili.com/21686237", + "title": "8.19中国医师节 一起“医”路同行" + }, + { + "uid": 5755666, + "uname": "可爱的大枣子", + "face": "https://i1.hdslb.com/bfs/face/248428206eca5b9ca34514dc2df54d456fbecb9e.jpg", + "link": "https://live.bilibili.com/2116488", + "title": "早上好" + }, + { + "uid": 290515513, + "uname": "地球频道", + "face": "https://i1.hdslb.com/bfs/face/33b60973ae3608beb27189947b02ccc2164a96d5.jpg", + "link": "https://live.bilibili.com/9196015", + "title": "【直播】从太空看地球" + } + ], + "_gt_": 0 + } +} +``` + +
+ +## 获取发布新动态的已关注者 + +> https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/w_dyn_uplist + +*请求方式:GET* + +认证方式:Cookie(SESSDSTA) + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| -------------- | ---- | ------------------ | ------ | ---------------- | +| teenagers_mode | num | 是否开启青少年模式 | 非必要 | 否:0
是:1 | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ----------------------- | +| code | num | 返回值 | 0:成功
-6:未登录 | +| data | obj | 信息本体 | | +| message | str | 错误信息 | 默认为0 | +| msg | num | 空 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---------------- | ----- | ---------- | ------------ | +| button_statement | str | 空 | 作用尚不明确 | +| items | array | 更新者列表 | | +| _gt_ | num | 0 | 作用尚不明确 | + +`data`中的`items`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | --------------- | ---- | +| 0 | obj | 第一位更新者 | | +| n | obj | 第(n+1)位更新者 | | +| …… | obj | …… | …… | + +**示例:** + +```shell +curl -G 'https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/w_dyn_uplist' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "msg": "", + "message": "", + "data": { + "button_statement": "", + "items": [{ + "user_profile": { + "info": { + "uid": 332704117, + "uname": "白上吹雪Official", + "face": "https://i1.hdslb.com/bfs/face/26298b21c4a059d95ee9d009bbdf1dca94da951f.jpg" + }, + "card": { + "official_verify": { + "type": 0, + "desc": "bilibili 知名UP主、直播签约主播" + } + }, + "vip": { + "vipType": 2, + "vipDueDate": 1634832000000, + "dueRemark": "", + "accessStatus": 0, + "vipStatus": 1, + "vipStatusWarn": "", + "themeType": 0, + "label": { + "path": "" + } + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "" + }, + "rank": "10000", + "sign": "hololive一期生,虚拟白发狐狸白上吹雪是也(^・ω・^§)ノ 画师:凪白みと 协力:白上吹雪字幕组 商务合作请私信", + "level_info": { + "current_level": 6, + "current_min": 0, + "current_exp": 0, + "next_exp": "0" + } + }, + "has_update": 1 + }, + { + "user_profile": { + "info": { + "uid": 282994, + "uname": "泠鸢yousa", + "face": "https://i2.hdslb.com/bfs/face/28f95c383f2805dbed32e93007c91ccfda28775f.jpg" + }, + "card": { + "official_verify": { + "type": 0, + "desc": "bilibili 2019百大UP主、直播签约主播" + } + }, + "vip": { + "vipType": 2, + "vipDueDate": 1649001600000, + "dueRemark": "", + "accessStatus": 0, + "vipStatus": 1, + "vipStatusWarn": "", + "themeType": 0, + "label": { + "path": "" + } + }, + "pendant": { + "pid": 301, + "name": "实验品家庭", + "image": "https://i1.hdslb.com/bfs/face/6fbee28f782926612eb1ad71d6c8aa7264206fe9.png", + "expire": 0, + "image_enhance": "https://i1.hdslb.com/bfs/face/6fbee28f782926612eb1ad71d6c8aa7264206fe9.png" + }, + "rank": "10000", + "sign": "虚拟艺人团体VirtuaReal Star成员,微博&网易云等搜:泠鸢yousa ", + "level_info": { + "current_level": 6, + "current_min": 0, + "current_exp": 0, + "next_exp": "0" + } + }, + "has_update": 1 + }, + { + "user_profile": { + "info": { + "uid": 13765857, + "uname": "LShang001", + "face": "https://i2.hdslb.com/bfs/face/4bc59f57e6d31fcf868d7e935f643a043dd6b99f.jpg" + }, + "card": { + "official_verify": { + "type": -1, + "desc": "" + } + }, + "vip": { + "vipType": 1, + "vipDueDate": 1599926400000, + "dueRemark": "", + "accessStatus": 0, + "vipStatus": 1, + "vipStatusWarn": "", + "themeType": 0, + "label": { + "path": "" + } + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "" + }, + "rank": "10000", + "sign": "Excelsior", + "level_info": { + "current_level": 5, + "current_min": 0, + "current_exp": 0, + "next_exp": "0" + } + }, + "has_update": 1 + }, + { + "user_profile": { + "info": { + "uid": 410527811, + "uname": "WhatOnEarth一探究竟", + "face": "https://i0.hdslb.com/bfs/face/0ef3c74f61c4f5f0ef70ddbf3f1f0ebfed18a1b8.jpg" + }, + "card": { + "official_verify": { + "type": 0, + "desc": "bilibili 知名科普UP主" + } + }, + "vip": { + "vipType": 1, + "vipDueDate": 1599494400000, + "dueRemark": "", + "accessStatus": 0, + "vipStatus": 1, + "vipStatusWarn": "", + "themeType": 0, + "label": { + "path": "" + } + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "" + }, + "rank": "10000", + "sign": "硬核人文科普,精彩社会案例,尽在WOE。", + "level_info": { + "current_level": 6, + "current_min": 0, + "current_exp": 0, + "next_exp": "0" + } + }, + "has_update": 1 + }, + { + "user_profile": { + "info": { + "uid": 519253600, + "uname": "火柴人AlanBecker", + "face": "https://i1.hdslb.com/bfs/face/75e1219501e9ca3e82cad2c4a466fb4b5c7d0557.jpg" + }, + "card": { + "official_verify": { + "type": 0, + "desc": "Alan Becker官方帐号,动画UP主" + } + }, + "vip": { + "vipType": 1, + "vipDueDate": 1594137600000, + "dueRemark": "", + "accessStatus": 0, + "vipStatus": 0, + "vipStatusWarn": "", + "themeType": 0, + "label": { + "path": "" + } + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "" + }, + "rank": "10000", + "sign": "Alan Becker官方频道", + "level_info": { + "current_level": 6, + "current_min": 0, + "current_exp": 0, + "next_exp": "0" + } + }, + "has_update": 1 + }, + { + "user_profile": { + "info": { + "uid": 293793435, + "uname": "社会易姐QwQ", + "face": "https://i1.hdslb.com/bfs/face/aebb2639a0d47f2ce1fec0631f412eaf53d4a0be.jpg" + }, + "card": { + "official_verify": { + "type": -1, + "desc": "" + } + }, + "vip": { + "vipType": 2, + "vipDueDate": 1612454400000, + "dueRemark": "", + "accessStatus": 0, + "vipStatus": 1, + "vipStatusWarn": "", + "themeType": 0, + "label": { + "path": "" + } + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "" + }, + "rank": "10000", + "sign": "高中技术宅一枚,爱好MC&电子&8-bit音乐&数码&编程,资深猿厨,粉丝群:1136462265", + "level_info": { + "current_level": 5, + "current_min": 0, + "current_exp": 0, + "next_exp": "0" + } + }, + "has_update": 1 + }, + { + "user_profile": { + "info": { + "uid": 5755666, + "uname": "可爱的大枣子", + "face": "https://i1.hdslb.com/bfs/face/248428206eca5b9ca34514dc2df54d456fbecb9e.jpg" + }, + "card": { + "official_verify": { + "type": -1, + "desc": "" + } + }, + "vip": { + "vipType": 2, + "vipDueDate": 1645286400000, + "dueRemark": "", + "accessStatus": 0, + "vipStatus": 1, + "vipStatusWarn": "", + "themeType": 0, + "label": { + "path": "" + } + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "" + }, + "rank": "10000", + "sign": "檐外清风惊落一池桃花染", + "level_info": { + "current_level": 6, + "current_min": 0, + "current_exp": 0, + "next_exp": "0" + } + }, + "has_update": 1 + }, + { + "user_profile": { + "info": { + "uid": 51270387, + "uname": "挽竹Killer", + "face": "https://i2.hdslb.com/bfs/face/3a9f7b01c8b7d235fa2fa8d761b94520fb82bd20.jpg" + }, + "card": { + "official_verify": { + "type": -1, + "desc": "" + } + }, + "vip": { + "vipType": 1, + "vipDueDate": 1613404800000, + "dueRemark": "", + "accessStatus": 0, + "vipStatus": 1, + "vipStatusWarn": "", + "themeType": 0, + "label": { + "path": "" + } + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "" + }, + "rank": "10000", + "sign": "(15w粉女装直播嗷)粉丝群:872444546", + "level_info": { + "current_level": 6, + "current_min": 0, + "current_exp": 0, + "next_exp": "0" + } + }, + "has_update": 1 + }, + { + "user_profile": { + "info": { + "uid": 4409391, + "uname": "估读", + "face": "https://i0.hdslb.com/bfs/face/f0d6b44b38eff3ce023b354f692cdb5ae0013772.jpg" + }, + "card": { + "official_verify": { + "type": -1, + "desc": "" + } + }, + "vip": { + "vipType": 1, + "vipDueDate": 1578412800000, + "dueRemark": "", + "accessStatus": 0, + "vipStatus": 0, + "vipStatusWarn": "", + "themeType": 0, + "label": { + "path": "" + } + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "" + }, + "rank": "10000", + "sign": "关注一下这只硬核up吧~ 脑洞能开,双手能做,立志把硬核内容做得易于食用ヾ(✿゚▽゚)ノ 粉丝群971392670。微博ID“估读酱”", + "level_info": { + "current_level": 6, + "current_min": 0, + "current_exp": 0, + "next_exp": "0" + } + }, + "has_update": 1 + }, + { + "user_profile": { + "info": { + "uid": 70547713, + "uname": "Dr丶寻一", + "face": "https://i1.hdslb.com/bfs/face/fb2f66c64b1de4da329b8ccdbe4cc2db19bab488.jpg" + }, + "card": { + "official_verify": { + "type": -1, + "desc": "" + } + }, + "vip": { + "vipType": 1, + "vipDueDate": 1598025600000, + "dueRemark": "", + "accessStatus": 0, + "vipStatus": 1, + "vipStatusWarn": "", + "themeType": 0, + "label": { + "path": "" + } + }, + "pendant": { + "pid": 2360, + "name": "#EveOneCat", + "image": "https://i1.hdslb.com/bfs/garb/item/3a6053f073f979a776e02e088dd7dd7694c5b1f3.png", + "expire": 0, + "image_enhance": "https://i1.hdslb.com/bfs/garb/item/6c7f2ccb92627b11101dfbb616524845cac8f216.webp" + }, + "rank": "10000", + "sign": "准备开黑乐谱的坑,有时还会弄点其他的红石音乐。有什么好的黑乐谱可以私信我下载链接,只要是我电脑上的fl能够成功导入,看实际情况施工。", + "level_info": { + "current_level": 6, + "current_min": 0, + "current_exp": 0, + "next_exp": "0" + } + }, + "has_update": 1 + }, + { + "user_profile": { + "info": { + "uid": 591856754, + "uname": "卢正义的雕刻时光", + "face": "https://i0.hdslb.com/bfs/face/5acc7be5c21c1dc7a4d0ebe8d741e60555971029.jpg" + }, + "card": { + "official_verify": { + "type": 0, + "desc": "bilibili 知名UP主" + } + }, + "vip": { + "vipType": 2, + "vipDueDate": 1624377600000, + "dueRemark": "", + "accessStatus": 0, + "vipStatus": 1, + "vipStatusWarn": "", + "themeType": 0, + "label": { + "path": "" + } + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "" + }, + "rank": "10000", + "sign": "我是卢正义,年方二十有七\n初来贵站,还望各位多多关照\n商务合作⭐ JOJOMONO\n木品咨询⭐ lym11336699\n", + "level_info": { + "current_level": 6, + "current_min": 0, + "current_exp": 0, + "next_exp": "0" + } + }, + "has_update": 1 + }, + { + "user_profile": { + "info": { + "uid": 361818130, + "uname": "是田小浪呀", + "face": "https://i1.hdslb.com/bfs/face/917d7f539e24860a52ccca2e8dbf8d6d6ca0e66b.jpg" + }, + "card": { + "official_verify": { + "type": -1, + "desc": "" + } + }, + "vip": { + "vipType": 0, + "vipDueDate": 0, + "dueRemark": "", + "accessStatus": 0, + "vipStatus": 0, + "vipStatusWarn": "", + "themeType": 0, + "label": { + "path": "" + } + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "" + }, + "rank": "10000", + "sign": "", + "level_info": { + "current_level": 3, + "current_min": 0, + "current_exp": 0, + "next_exp": "0" + } + }, + "has_update": 1 + }, + { + "user_profile": { + "info": { + "uid": 108572682, + "uname": "月下玄月", + "face": "https://i1.hdslb.com/bfs/face/9cb69b21cd23fce7545c441415db17f2d57af159.jpg" + }, + "card": { + "official_verify": { + "type": 0, + "desc": "bilibili 知名UP主" + } + }, + "vip": { + "vipType": 2, + "vipDueDate": 1619712000000, + "dueRemark": "", + "accessStatus": 0, + "vipStatus": 1, + "vipStatusWarn": "", + "themeType": 0, + "label": { + "path": "" + } + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "" + }, + "rank": "10000", + "sign": "QQ1群:701762419;QQ2群:1062508843", + "level_info": { + "current_level": 6, + "current_min": 0, + "current_exp": 0, + "next_exp": "0" + } + }, + "has_update": 1 + }, + { + "user_profile": { + "info": { + "uid": 7450650, + "uname": "超果果mc", + "face": "https://i2.hdslb.com/bfs/face/0202ae8b377d750fe3fbeff4f9b8219b48071ee5.jpg" + }, + "card": { + "official_verify": { + "type": 0, + "desc": "bilibili 知名游戏UP主、直播签约主播" + } + }, + "vip": { + "vipType": 2, + "vipDueDate": 1645113600000, + "dueRemark": "", + "accessStatus": 0, + "vipStatus": 1, + "vipStatusWarn": "", + "themeType": 0, + "label": { + "path": "" + } + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "" + }, + "rank": "10000", + "sign": "希望做出大家看了都会开心的视频 微博@超果果mc 商业合作加qq:169113409", + "level_info": { + "current_level": 6, + "current_min": 0, + "current_exp": 0, + "next_exp": "0" + } + }, + "has_update": 1 + }, + { + "user_profile": { + "info": { + "uid": 4958429, + "uname": "Mukyo木西", + "face": "https://i0.hdslb.com/bfs/face/15c9b8360e524332a61b998360dd4958e0d1fd31.jpg" + }, + "card": { + "official_verify": { + "type": -1, + "desc": "" + } + }, + "vip": { + "vipType": 1, + "vipDueDate": 1582992000000, + "dueRemark": "", + "accessStatus": 0, + "vipStatus": 0, + "vipStatusWarn": "", + "themeType": 0, + "label": { + "path": "" + } + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "" + }, + "rank": "10000", + "sign": "各个音乐平台搜 Mukyo木西。微博@Mukyo木西就是狗狗。", + "level_info": { + "current_level": 6, + "current_min": 0, + "current_exp": 0, + "next_exp": "0" + } + }, + "has_update": 1 + }, + { + "user_profile": { + "info": { + "uid": 26321770, + "uname": "和猫住の", + "face": "https://i2.hdslb.com/bfs/face/a0f1e2e8fa05317c12064b7026a20900bdb25b5a.jpg" + }, + "card": { + "official_verify": { + "type": 0, + "desc": "bilibili 知名UP主" + } + }, + "vip": { + "vipType": 2, + "vipDueDate": 1627488000000, + "dueRemark": "", + "accessStatus": 0, + "vipStatus": 1, + "vipStatusWarn": "", + "themeType": 0, + "label": { + "path": "" + } + }, + "pendant": { + "pid": 303, + "name": "喂,看见耳朵啦", + "image": "https://i1.hdslb.com/bfs/face/09f3180cb0a4a0a479045fe4fad705f9b92a82d2.png", + "expire": 0, + "image_enhance": "https://i1.hdslb.com/bfs/face/09f3180cb0a4a0a479045fe4fad705f9b92a82d2.png" + }, + "rank": "10000", + "sign": "年轻人的猫咪救援领养平台,微博/公众号:和猫住 客服v:公众号和猫住菜单“联系我”", + "level_info": { + "current_level": 6, + "current_min": 0, + "current_exp": 0, + "next_exp": "0" + } + }, + "has_update": 1 + }, + { + "user_profile": { + "info": { + "uid": 37556366, + "uname": "NickZhuOfficial", + "face": "https://i0.hdslb.com/bfs/face/e3a45f58368a70c5277af394bb40e32156ca2a23.jpg" + }, + "card": { + "official_verify": { + "type": -1, + "desc": "" + } + }, + "vip": { + "vipType": 0, + "vipDueDate": 0, + "dueRemark": "", + "accessStatus": 0, + "vipStatus": 0, + "vipStatusWarn": "", + "themeType": 0, + "label": { + "path": "" + } + }, + "pendant": { + "pid": 2248, + "name": "搞笑专属头像挂件", + "image": "https://i2.hdslb.com/bfs/garb/item/bab219d170a1662c26beede8944c6afbc6bc2bb4.png", + "expire": 0, + "image_enhance": "https://i2.hdslb.com/bfs/garb/item/bab219d170a1662c26beede8944c6afbc6bc2bb4.png" + }, + "rank": "10000", + "sign": "鬼畜人", + "level_info": { + "current_level": 6, + "current_min": 0, + "current_exp": 0, + "next_exp": "0" + } + }, + "has_update": 1 + }, + { + "user_profile": { + "info": { + "uid": 438345816, + "uname": "盲人母亲曹世美", + "face": "https://i2.hdslb.com/bfs/face/61111e0fa1ce0e8224b7aa48cc8b4dddc2ec6046.jpg" + }, + "card": { + "official_verify": { + "type": 0, + "desc": "bilibili 知名UP主" + } + }, + "vip": { + "vipType": 0, + "vipDueDate": 0, + "dueRemark": "", + "accessStatus": 0, + "vipStatus": 0, + "vipStatusWarn": "", + "themeType": 0, + "label": { + "path": "" + } + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "" + }, + "rank": "10000", + "sign": "来自贵州纳雍大山深处的一家三口,父亲腿脚残疾,母亲看不见,还有一个脑瘫儿子,盲人母亲就这样用她一双手撑起了一个家想了解v:llj104890", + "level_info": { + "current_level": 6, + "current_min": 0, + "current_exp": 0, + "next_exp": "0" + } + }, + "has_update": 1 + }, + { + "user_profile": { + "info": { + "uid": 486633990, + "uname": "我是江无情", + "face": "https://i1.hdslb.com/bfs/face/bf667a09070a9345c881ec8e3e6844d8ecb043ca.jpg" + }, + "card": { + "official_verify": { + "type": 0, + "desc": "bilibili 知名科普UP主" + } + }, + "vip": { + "vipType": 2, + "vipDueDate": 1617379200000, + "dueRemark": "", + "accessStatus": 0, + "vipStatus": 1, + "vipStatusWarn": "", + "themeType": 0, + "label": { + "path": "" + } + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "" + }, + "rank": "10000", + "sign": "一个做视频的,商务请私信微博:我是江无情", + "level_info": { + "current_level": 6, + "current_min": 0, + "current_exp": 0, + "next_exp": "0" + } + }, + "has_update": 1 + }, + { + "user_profile": { + "info": { + "uid": 13337125, + "uname": "GoldenEggs", + "face": "https://i0.hdslb.com/bfs/face/11a78303bf3c69a1bf34cab25bb219eeee47961e.jpg" + }, + "card": { + "official_verify": { + "type": 0, + "desc": "bilibili 知名游戏UP主" + } + }, + "vip": { + "vipType": 2, + "vipDueDate": 1649865600000, + "dueRemark": "", + "accessStatus": 0, + "vipStatus": 1, + "vipStatusWarn": "", + "themeType": 0, + "label": { + "path": "" + } + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "" + }, + "rank": "10000", + "sign": "脑洞区up主,常借助Minecraft平台实现一些好玩的想法 // 创意交流群:871449268/合作QQ:1558854197", + "level_info": { + "current_level": 6, + "current_min": 0, + "current_exp": 0, + "next_exp": "0" + } + }, + "has_update": 0 + }], + "_gt_": 0 + } +} +``` + +
\ No newline at end of file diff --git a/docs/dynamic/get_dynamic_detail.md b/docs/dynamic/get_dynamic_detail.md new file mode 100644 index 0000000000..0b8490e5ac --- /dev/null +++ b/docs/dynamic/get_dynamic_detail.md @@ -0,0 +1,601 @@ +# 获取特定动态卡片信息 + +> https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/get_dynamic_detail + +*请求方式:GET* + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------------ | ---- | ---------- | ------ | -------- | +| dynamic_id | id | 动态id | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------- | +| code | num | 返回值 | 0:成功 | +| data | obj | 信息本体 | | +| message | str | 错误信息 | 默认为空 | +| msg | num | 空 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----------- | ----- | ---------- | ------------ | +| card | obj | 动态卡片内容 | 当动态不存在/删除时不返回此项 | +| result | num | 0 | 作用尚不明确(当动态不存在/删除时不返回此项) | +| \_gt\_ | num | 0 | 作用尚不明确 | + +`data`中的`card`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | ------------- | ---- | +| activity_infos | obj | 该条动态参与的活动 |当此条动态没有参与任何活动时不显示此项 | +| card | str | 动态详细信息 | 会跟随此动态类型不同发生一定的变化,评论数、点赞数等相关信息参考`desc`字段 | +| desc | obj | 动态相关信息 | 会跟随此动态类型不同发生一定的变化,详细信息(例如动态描述等)参考`card`字段 | +| display | obj | 动态部分的可操作项 | 会随着动态类型发生变化,主要用于显示动态 | +| extend_json | str | 动态扩展项 | 会随着动态类型发生变化 | +**此处的大部分字段的内容都会根据`desc`中的`type`值发生一定变化,具体的数值对照参考下表(仅作参考,部分内容的解释未知,同时有些内容仅为在部分页面出现,无法通过此API调出):** + +| 值 | 含义 | +| ---- | ---- | +| 268435455 | 具体定义未知 | +| 1 | 转发 | +| 2 | 图片动态 | +| 4 | 文字动态 | +| 8 | 视频动态 | +| 16 | 小视频 | +| 32 | 具体定义未知(可能为戏剧) | +| 64 | 专栏 | +| 256 | 音频 | +| 512 | 番剧 | +| 1024 | 具体定义未知 | +| 2048 | H5活动动态 | +| 2049 | 漫画分享 | +| 4097 | PGC番剧 | +| 4098 | 电影 | +| 4099 | 电视剧 | +| 4100 | 国创动漫 | +| 4101 | 纪录片 | +| 4200 | 直播 | +| 4201 | 直播 | +| 4300 | 收藏夹 | +| 4302 | 付费课程 | +| 4303 | 付费课程 | +| 4308 | 直播 | +| 4310 | 合集 | +| 4311 | 具体定义未知 | +| 1e3 | 具体定义未知 | +| 1001 | 具体定义未知 | + +**示例:** + +获取`哔哩哔哩弹幕网`的动态id为`507420325550127049`动态 + +```shell +curl -G 'https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/get_dynamic_detail' \ +--data-urlencode 'dynamic_id=507420325550127049' +``` + +
+查看响应示例 + +```json +{ + "code": 0, + "msg": "", + "message": "", + "data": { + "card": { + "desc": { + "uid": 8047632, + "type": 8, + "rid": 204774719, + "acl": 0, + "view": 1182282, + "repost": 405, + "like": 31940, + "is_liked": 0, + "dynamic_id": 507420325550127049, + "timestamp": 1616981401, + "pre_dy_id": 0, + "orig_dy_id": 0, + "orig_type": 0, + "user_profile": { + "info": { + "uid": 8047632, + "uname": "哔哩哔哩弹幕网", + "face": "https://i0.hdslb.com/bfs/face/f2cb8d9854156e3f26d4c6751d6eeb9c30e21847.jpg" + }, + "card": { + "official_verify": { + "type": 1, + "desc": "哔哩哔哩弹幕网官方账号 " + } + }, + "vip": { + "vipType": 2, + "vipDueDate": 1924531200000, + "vipStatus": 1, + "themeType": 0, + "label": { + "path": "", + "text": "十年大会员", + "label_theme": "ten_annual_vip", + "text_color": "#FFFFFF", + "bg_style": 1, + "bg_color": "#FB7299", + "border_color": "" + }, + "avatar_subscript": 1, + "nickname_color": "#FB7299", + "role": 7, + "avatar_subscript_url": "https://i0.hdslb.com/bfs/vip/icon_Certification_big_member_22_3x.png" + }, + "pendant": { + "pid": 3860, + "name": "2021拜年纪", + "image": "https://i0.hdslb.com/bfs/garb/item/7f8aa8ef1eed8c2dce0796801ddc82552a4164f9.png", + "expire": 0, + "image_enhance": "https://i0.hdslb.com/bfs/garb/item/7f8aa8ef1eed8c2dce0796801ddc82552a4164f9.png", + "image_enhance_frame": "" + }, + "rank": "10000", + "sign": "哔哩哔哩 干杯 - ( ゜- ゜)つロ", + "level_info": { + "current_level": 6 + } + }, + "uid_type": 1, + "stype": 0, + "r_type": 1, + "inner_id": 0, + "status": 1, + "dynamic_id_str": "507420325550127049", + "pre_dy_id_str": "0", + "orig_dy_id_str": "0", + "rid_str": "204774719", + "bvid": "BV1Dh411S7sS" + }, + "card": "{\"aid\":204774719,\"attribute\":0,\"cid\":316514988,\"copyright\":1,\"ctime\":1616939233,\"desc\":\"2021年3月29日9:30(北京时间),B站在中国香港港交所成功挂牌二次上市。欢迎来到bilibili这座乐园,和超过2亿中国年轻人一起表达自我、拥抱世界。\",\"dimension\":{\"height\":1080,\"rotate\":0,\"width\":1920},\"duration\":290,\"dynamic\":\"\",\"item\":{\"at_control\":\"\"},\"jump_url\":\"bilibili:\\/\\/video\\/204774719\\/?page=1&player_preload=null&player_width=1920&player_height=1080&player_rotate=0\",\"owner\":{\"face\":\"https:\\/\\/i0.hdslb.com\\/bfs\\/face\\/f2cb8d9854156e3f26d4c6751d6eeb9c30e21847.jpg\",\"mid\":8047632,\"name\":\"哔哩哔哩弹幕网\"},\"pic\":\"https:\\/\\/i0.hdslb.com\\/bfs\\/archive\\/bcbcac6560268ef9cbe59fbf759ac28adf5e0432.jpg\",\"player_info\":null,\"pubdate\":1616981400,\"rights\":{\"autoplay\":1,\"bp\":0,\"download\":0,\"elec\":0,\"hd5\":1,\"is_cooperation\":0,\"movie\":0,\"no_background\":0,\"no_reprint\":1,\"pay\":0,\"ugc_pay\":0,\"ugc_pay_preview\":0},\"share_subtitle\":\"已观看24.0万次\",\"short_link\":\"https:\\/\\/b23.tv\\/BV1Dh411S7sS\",\"short_link_v2\":\"https:\\/\\/b23.tv\\/BV1Dh411S7sS\",\"stat\":{\"aid\":204774719,\"coin\":8661,\"danmaku\":744,\"dislike\":0,\"favorite\":6025,\"his_rank\":0,\"like\":31940,\"now_rank\":0,\"reply\":1619,\"share\":2134,\"view\":246956},\"state\":0,\"tid\":207,\"title\":\"欢迎来到2亿年轻人的乐园——bilibili 回香港上市啦!\",\"tname\":\"财经\",\"videos\":1}", + "extend_json": "{\"\":{\"ogv\":{\"ogv_id\":0}},\"dispute\":{\"content\":\"\"},\"from\":{\"from\":\"\"},\"like_icon\":{\"action\":\"\",\"action_url\":\"\",\"end\":\"\",\"end_url\":\"\",\"start\":\"\",\"start_url\":\"\"},\"topic\":{\"is_attach_topic\":1}}", + "display": { + "topic_info": { + "topic_details": [ + { + "topic_id": 12895437, + "topic_name": "二次上市", + "is_activity": 0, + "topic_link": "" + }, + { + "topic_id": 10967402, + "topic_name": "香港上市", + "is_activity": 1, + "topic_link": "https://www.bilibili.com/blackboard/dynamic/102930" + }, + { + "topic_id": 114859, + "topic_name": "B站", + "is_activity": 0, + "topic_link": "" + }, + { + "topic_id": 8312, + "topic_name": "宣传片", + "is_activity": 1, + "topic_link": "https://www.bilibili.com/blackboard/dynamic/8795" + }, + { + "topic_id": 679, + "topic_name": "BILIBILI", + "is_activity": 0, + "topic_link": "" + } + ] + }, + "usr_action_txt": "投稿了视频", + "relation": { + "status": 1, + "is_follow": 0, + "is_followed": 0 + }, + "show_tip": { + "del_tip": "要删除动态吗?" + }, + "cover_play_icon_url": "https://i0.hdslb.com/bfs/album/2269afa7897830b397797ebe5f032b899b405c67.png" + } + }, + "result": 0, + "_gt_": 0 + } +} +``` + +
+ +## 最近更新UP主列表 + +> https://api.bilibili.com/x/polymer/web-dynamic/v1/portal + +*请求方式:GET* + +*认证方式:Cookie(SESSDATA) 和 Access_Token* + +**json回复:** + +*根对象* + +| 字段 | 类型 | 内容 | 备注 | +| ------- | --- | ---- | ---- | +| code | num | 返回值 | 0:成功 | +| data | obj | 信息本体 | | +| message | str | 错误信息 | 默认为0 | +| ttl | int | 1 | 默认为1 | + +`data`对象 + +| 字段 | 类型 | 内容 | 备注 | +| ---------- | ----- | ---------- | --- | +| live_users | null | 不明 | | +| my_info | obj | 个人关注的一些信息 | | +| up_list | array | 最近更新的up主列表 | | + +`my_info`对象 + +| 字段 | 类型 | 内容 | 备注 | +| ---------- | --- | ----------- | ---- | +| dyns | int | 个人动态 | | +| face | str | 头像 | 图像地址 | +| face_nft | int | 不明 | | +| follower | int | 粉丝数量 | | +| following | int | 我的关注 | | +| level_info | obj | 本人等级内容 | | +| mid | int | 账户mid | | +| name | str | 账户名称 | | +| offcial | obj | 认证信息 | | +| space_bg | str | 账户个人中心的背景横幅 | 图像地址 | +| vip | obj | vip信息 | | + +`my_info`中的`level_info`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------------- | --- | ---- | ---------- | +| current_level | num | 当前等级 | 0-6级 | +| current_min | num | 0 | | +| current_exp | num | 0 | | +| next_exp | num | 0 | | + +`my_info`中的`Official`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----- | --- | ---- | ------------------------------------- | +| role | num | 认证类型 | 0:无
1 2 7:个人认证
3 4 5 6:机构认证 | +| title | str | 认证信息 | 无为空 | +| desc | str | 认证备注 | 无为空 | +| type | num | 是否认证 | -1:无
0:认证 | + +`my_info`中的`vip`对象: + +| 字段 | 类型 | 内容 | 备注 | +| -------------------- | --- | --------- | -------------------------------------------- | +| type | num | 会员类型 | 0:无
1:月大会员
2:年度及以上大会员 | +| status | num | 会员状态 | 0:无
1:有 | +| due_date | num | 会员过期时间 | Unix时间戳(毫秒) | +| vip_pay_type | num | 支付类型 | 0:未支付(常见于官方账号)
1:已支付(以正常渠道获取的大会员均为此值) | +| theme_type | num | 0 | 作用尚不明确 | +| label | obj | 会员标签 | | +| avatar_subscript | num | 是否显示会员图标 | 0:不显示
1:显示 | +| nickname_color | str | 会员昵称颜色 | 颜色码,一般为`#FB7299`,曾用于愚人节改变大会员配色 | +| role | num | 大角色类型 | 1:月度大会员
3:年度大会员
7:十年大会员
15:百年大会员 | +| avatar_subscript_url | str | 大会员角标地址 | | +| tv_vip_status | num | 电视大会员状态 | 0:未开通 | +| tv_vip_pay_type | num | 电视大会员支付类型 | | + +`vip`中的`label`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------------------------- | ---- | -------- | ---------------------------------------------------------------------------------------------------------------------------- | +| path | str | 空 | 作用尚不明确 | +| text | str | 会员类型文案 | `大会员` `年度大会员` `十年大会员` `百年大会员` `最强绿鲤鱼` | +| label_theme | str | 会员标签 | vip:大会员
annual_vip:年度大会员
ten_annual_vip:十年大会员
hundred_annual_vip:百年大会员
fools_day_hundred_annual_vip:最强绿鲤鱼 | +| text_color | str | 会员标签 | | +| bg_style | num | 1 | | +| bg_color | str | 会员标签背景颜色 | 颜色码,一般为`#FB7299`,曾用于愚人节改变大会员配色 | +| border_color | str | 会员标签边框颜色 | 未使用 | +| use_img_label | bool | `true` | | +| img_label_uri_hans | str | `空串` | | +| img_label_uri_hant | str | `空串` | | +| img_label_uri_hans_static | str | 大会员牌子图片 | 简体版 | +| img_label_uri_hant_static | str | 大会员牌子图片 | 繁体版 | + +`data`中的`up_list`数组对象 + +| 字段 | 属性 | 内容 | 备注 | +| ----------------- | ---- | --------- | --- | +| face | str | UP主头像 | | +| has_update | bool | 最近更新是否更新? | | +| is_reserve_recall | bool | 不明 | | +| mid | int | UP主mid | | +| uname | str | up主昵称 | | + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "live_users": null, + "my_info": { + "dyns": 67, + "face": "http://i0.hdslb.com/bfs/face/44253f4e588d72d4c10dde495752142b588455af.jpg", + "face_nft": 0, + "follower": 15, + "following": 77, + "level_info": { + "current_exp": 23846, + "current_level": 5, + "current_min": 10800, + "level_up": -62135596800, + "next_exp": 28800 + }, + "mid": 108534711, + "name": "CiaoMyTime", + "official": { + "desc": "", + "role": 0, + "title": "", + "type": -1 + }, + "space_bg": "http://i1.hdslb.com/bfs/space/aea2dd7b8894ce31d578d4fad6a7188c7b49cb2f.jpg", + "vip": { + "avatar_subscript": 1, + "avatar_subscript_url": "", + "due_date": 1670256000000, + "label": { + "bg_color": "#FB7299", + "bg_style": 1, + "border_color": "", + "img_label_uri_hans": "", + "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/3788b674c69072f1ee252b79a31ecc8c43af3039.png", + "img_label_uri_hant": "", + "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/jwXBWRVwa5.png", + "label_theme": "vip", + "path": "", + "text": "大会员", + "text_color": "#FFFFFF", + "use_img_label": true + }, + "nickname_color": "", + "role": 1, + "status": 1, + "theme_type": 0, + "tv_vip_pay_type": 0, + "tv_vip_status": 0, + "type": 1, + "vip_pay_type": 0 + } + }, + "up_list": [ + { + "face": "https://i2.hdslb.com/bfs/face/09a47992c9cb08f81effede594ddf014f83047fe.jpg", + "has_update": true, + "is_reserve_recall": false, + "mid": 15135791, + "uname": "东北大学张引" + }, + { + "face": "https://i1.hdslb.com/bfs/face/a83b296101bb36a6f1dacb8fdfa74a57a2c29445.jpg", + "has_update": true, + "is_reserve_recall": false, + "mid": 1856528671, + "uname": "陆鳐LuLu" + }, + { + "face": "https://i0.hdslb.com/bfs/face/60ec600cc9d84c74c8220ab41ce49bacfdc0895c.jpg", + "has_update": true, + "is_reserve_recall": false, + "mid": 39180492, + "uname": "蒸気火鸡" + }, + { + "face": "https://i0.hdslb.com/bfs/face/986a9f29848d17b39a99e41557d56dcd1091a3a9.jpg", + "has_update": true, + "is_reserve_recall": false, + "mid": 2142762, + "uname": "老戴在此" + }, + { + "face": "https://i1.hdslb.com/bfs/face/475f3c05ea494a26f5dd91b277f48b136ae63021.jpg", + "has_update": true, + "is_reserve_recall": false, + "mid": 431313625, + "uname": "小蓝和他的朋友日常号" + }, + { + "face": "https://i1.hdslb.com/bfs/face/bafb36d5726f8062e578474095abb0e906fec163.jpg", + "has_update": true, + "is_reserve_recall": false, + "mid": 233114659, + "uname": "碧蓝航线" + }, + { + "face": "https://i0.hdslb.com/bfs/face/39d23f3c5dd2c96fc35db5c2a98f4a8ff73a2d46.jpg", + "has_update": true, + "is_reserve_recall": false, + "mid": 27534330, + "uname": "崩坏3第一偶像爱酱" + }, + { + "face": "http://i2.hdslb.com/bfs/face/f119348814f30c6bbbcc60bd63c12b8215d19d2f.jpg", + "has_update": true, + "is_reserve_recall": false, + "mid": 524704055, + "uname": "大庆赶海" + }, + { + "face": "https://i0.hdslb.com/bfs/face/c4340d477356ba108098ba9a566e7ce4a54e0936.jpg", + "has_update": true, + "is_reserve_recall": false, + "mid": 194326389, + "uname": "兮子cc" + }, + { + "face": "https://i2.hdslb.com/bfs/face/0455b74f73d6a83eef2d6dfbdb4ae2beda42a3ce.jpg", + "has_update": true, + "is_reserve_recall": false, + "mid": 476833439, + "uname": "盾之勇者成名录" + }, + { + "face": "https://i0.hdslb.com/bfs/face/7c6cdd77937d4bbd2171241fe530e18c0c5bc58e.jpg", + "has_update": true, + "is_reserve_recall": false, + "mid": 492840942, + "uname": "云视听小电视-TV" + }, + { + "face": "https://i0.hdslb.com/bfs/face/b14881845b777d925876f24cb46b1dc1ad5a0e27.jpg", + "has_update": true, + "is_reserve_recall": false, + "mid": 1636034895, + "uname": "绝区零" + }, + { + "face": "http://i1.hdslb.com/bfs/face/3b933fe3c47976dd29f30e3a4f7f2bdfd99e8b08.jpg", + "has_update": true, + "is_reserve_recall": false, + "mid": 603028270, + "uname": "乃木坂46官方" + }, + { + "face": "https://i2.hdslb.com/bfs/face/76ec72b2a530f2f24209c98b5690ef7b536040cf.jpg", + "has_update": true, + "is_reserve_recall": false, + "mid": 5992670, + "uname": "云之幻" + }, + { + "face": "https://i1.hdslb.com/bfs/face/9ca9ea42fa75d9a651b354a95e8e39f48d8c30d2.jpg", + "has_update": true, + "is_reserve_recall": false, + "mid": 299359111, + "uname": "月圆之夜" + }, + { + "face": "https://i1.hdslb.com/bfs/face/c8c0adce728125167fe44371d451b3dc19a84506.jpg", + "has_update": false, + "is_reserve_recall": false, + "mid": 79983517, + "uname": "一唐老狮一" + }, + { + "face": "https://i0.hdslb.com/bfs/face/68b4b212d9738c40d8a6a77beb65a6dd4415f81b.jpg", + "has_update": false, + "is_reserve_recall": false, + "mid": 1861940979, + "uname": "保卫萝卜" + }, + { + "face": "https://i2.hdslb.com/bfs/face/85bab2a17646ccf442d28549e7216fd65c6adeb7.jpg", + "has_update": false, + "is_reserve_recall": false, + "mid": 2162, + "uname": "GPBeta" + }, + { + "face": "https://i1.hdslb.com/bfs/face/7a41310afc08381ad0451bee8ea07f15fcc411bd.jpg", + "has_update": false, + "is_reserve_recall": false, + "mid": 508963009, + "uname": "HiiroVTuber" + }, + { + "face": "https://i1.hdslb.com/bfs/face/b085d34fd9d2cd44641ab648cc96e7a3068eb811.jpg", + "has_update": false, + "is_reserve_recall": false, + "mid": 396848107, + "uname": "不愧是姐姐大人" + }, + { + "face": "https://i0.hdslb.com/bfs/face/3f1496f48a5eb840a974fef0fd7db7a3f225fbe7.jpg", + "has_update": false, + "is_reserve_recall": false, + "mid": 80304, + "uname": "亚食人" + }, + { + "face": "https://i2.hdslb.com/bfs/face/a7716fec14658ef7365b538fdce0d86eb6123ed4.jpg", + "has_update": false, + "is_reserve_recall": false, + "mid": 401742377, + "uname": "原神" + }, + { + "face": "https://i0.hdslb.com/bfs/face/81d5201d6095e3802f14094a6906d1a114bc74c7.jpg", + "has_update": false, + "is_reserve_recall": false, + "mid": 11131476, + "uname": "绫人太太啊" + }, + { + "face": "https://i0.hdslb.com/bfs/face/7d72e58d0ad1b401e4c59960c4b1795efbc57c3a.jpg", + "has_update": false, + "is_reserve_recall": false, + "mid": 409524162, + "uname": "一线码农聊技术" + }, + { + "face": "https://i0.hdslb.com/bfs/face/5634900a3167310fcd0c6b1102ffc308c68aedd1.jpg", + "has_update": false, + "is_reserve_recall": false, + "mid": 260054391, + "uname": "CHeems的日常" + }, + { + "face": "https://i2.hdslb.com/bfs/face/81a4c852925b873f42c4971c836a67ea9dd2ef41.jpg", + "has_update": false, + "is_reserve_recall": false, + "mid": 361469957, + "uname": "软件工艺师" + }, + { + "face": "https://i2.hdslb.com/bfs/face/99e9eb37657f67f547b546b72592d70ab8ce1a4b.jpg", + "has_update": false, + "is_reserve_recall": false, + "mid": 41059757, + "uname": "刻刻帝TokisakiKuru" + }, + { + "face": "https://i1.hdslb.com/bfs/face/affbd5780e44ec1340f60c5283e81cbee2d9a21a.jpg", + "has_update": false, + "is_reserve_recall": false, + "mid": 156785512, + "uname": "Swety_Core" + }, + { + "face": "http://i0.hdslb.com/bfs/face/f576c8bd9eb4ec7f7776880581bea2d6c53d1b65.jpg", + "has_update": false, + "is_reserve_recall": false, + "mid": 298683153, + "uname": "猫和老鼠官方手游" + }, + { + "face": "https://i1.hdslb.com/bfs/face/5161d6bd003c24065c0d0ab2ae2ce7f37f0f607b.jpg", + "has_update": false, + "is_reserve_recall": false, + "mid": 159440647, + "uname": "Uki----" + } + ] + } +} +``` + +
diff --git a/docs/dynamic/publish.md b/docs/dynamic/publish.md new file mode 100644 index 0000000000..a9d868e97b --- /dev/null +++ b/docs/dynamic/publish.md @@ -0,0 +1,881 @@ +# 发布动态 + +- [发布动态](#发布动态) + - [为图片动态上传图片](#为图片动态上传图片) + - [创建投票](#创建投票) + - [发表纯文本动态](#发表纯文本动态) + - [发表复杂动态](#发表复杂动态) + - [立即发布定时动态](#立即发布定时动态) + +--- + +## 为图片动态上传图片 + +> https://api.bilibili.com/x/dynamic/feed/draw/upload_bfs + +*请求方式:POST* + +认证方式:Cookie(SESSDATA) + +注意:非日常类型像素宽高必须大于420 + +**正文参数 (multipart/form-data):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| -------- | ---- | ------------------------ | ------ | ------------------------------------------------------------ | +| file_up | file | 需要上传的图片文件 | 必要 | 格式仅支持jpg png gif | +| category | str | 图片类型 | 必要 | daily:日常(动态)
draw:绘画(画友)
cos:摄影(COSPLAY) | +| biz | str | | | | +| csrf | str | CSRF Token(位于cookie) | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------------------ | +| code | num | 返回值 | 0:成功
-1:未添加图片
-2:参数错误
-3:图片尺寸过小
-4:账号未登录
-7:图片信息错误 | +| message | str | 错误信息 | 默认为success | +| data | obj | 信息本体 | 仅在正确时既`code=0`时为有效信息 | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------------ | ---- | -------------- | ---- | +| image_url | str | 已上传图片url | | +| image_width | num | 已上传图片宽度 | 像素 | +| image_height | num | 已上传图片高度 | 像素 | + +**示例:** + +上传了一张图片`test.png`类型为`日常` + +```shell +curl 'https://api.bilibili.com/x/dynamic/feed/draw/upload_bfs' \ +-F 'file_up=@test.png' \ +-F 'category=daily' +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code":0, + "message":"success", + "data":{ + "image_url":"http:\/\/i0.hdslb.com\/bfs\/album\/13f9523efe186a8066b2d72e80283cea2437eb62.png", + "image_width":1225, + "image_height":850 + } +} +``` + +
+ + +## 创建投票 + +> https://api.vc.bilibili.com/vote_svr/v1/vote_svr/create_vote + +*请求方式:POST* + +认证方式:Cookie(SESSDATA) + +注意: options最少两个,下标n从0开始 + +**正文参数 (multipart/form-data):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ---------------------------- | ---- | ------------------------ | ------ | -------------------------------------------------------- | +| info[title] | str | 投票标题 | 必要 | | +| info[desc] | str | 投票描述 | 非必要 | 可为空 | +| info[type] | num | 投票类型 | 必要 | 0:文字投票 1:图片投票 | +| info[choice_cnt] | num | 最多选几项 | 必要 | | +| info[duration] | num | 投票持续秒数 | 必要 | 常用:
三天:259200
七天:604800
三十天:2592000 | +| info[options]\[ n ][desc] | str | 第n项选项文字内容 | 必要 | | +| info[options]\[ n ][img_url] | str | 第n项选项投票图片 | 非必要 | | +| csrf | str | CSRF Token(位于cookie) | 非必要 | 头次见非必要的csrf | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | -------------------------------- | +| code | num | 返回值 | 0:成功
5100001: 参数错误 | +| msg | str | 错误信息 | 成功为空 | +| message | str | 错误信息 | 跟上面那个一模一样 | +| data | obj | 信息本体 | 仅在正确时既`code=0`时为有效信息 | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------------ | ---- | -------------- | ---- | +| vote_id | num | 投票id | | +| \_gt\_ | num | 0 | | + +**示例:** + +创建一个标题为`是否自愿开学`持续七天的纯文本投票 + +```shell +curl -X POST 'https://api.vc.bilibili.com/vote_svr/v1/vote_svr/create_vote' \ +--data-urlencode 'info[title]=是否自愿开学' \ +--data-urlencode 'info[desc]=问卷调查:自愿开学' \ +--data-urlencode 'info[type]=0' \ +--data-urlencode 'info[choice_cnt]=1' \ +--data-urlencode 'info[duration]=604800' \ +--data-urlencode 'info[options][0][desc]=自愿' \ +--data-urlencode 'info[options][1][desc]=不自愿' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "msg": "", + "message": "", + "data": { + "vote_id": 4947171, + "_gt_": 0 + } +} +``` + +
+ +## 发表纯文本动态 + +> https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/create + +*请求方式:POST* + +认证方式:Cookie (SESSDATA) + +**正文参数(multipart/form-data):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| --- | --- | --- | --- | --- | +| dynamic_id | num | 0 | 必要 | | +| type | num | 4 | 必要 | | +| rid | num | 0 | 必要 | | +| content | str | 动态内容 | 必要 | | +| up_choose_comment | num | 0 | 非必要 | | +| up_close_comment | num | 0 | 非必要 | | +| extension | json | 位置信息 | 非必要 | | +| at_uids | str | 动态中 at 到的用户的 uid | 非必要 | 使用逗号`,`分隔 | +| ctrl | array | 特殊格式控制 (如 at 别人时的蓝字体和链接) | 非必要 | | +| csrf_token | str | CSRF Token (位于 cookie) | 非必要 | | +| csrf | str | CSRF Token (位于 cookie) | 非必要 | | + +extension参数值: +```json +{ + "emoji_type": 1, + "lbs_cfg": { + "title": "**市", + "poi": "156330200", + "show_title": "**市", + "type": 1, + "address": "**市", + "location": { + "lng":显示的经度数值, + "lat":显示的纬度数值 + }, + "distance": 0 + }, + "flag_cfg": {}, + "from_cfg": { + "location": { + "lat":用户实际纬度数值, + "lng":用户实际经度数值 + } + } +} +``` + +ctrl单个对象(注意用的时候是数组出现): +| 参数名 | 类型 | 内容 | +| --- | --- | --- | +| location | num | 从全文第几个字开始变蓝 | +| type | num | 1 (可能1代表链接到用户uid) | +| length | num | 这一段变蓝多少字 | +| data | str | 链接目标(被at人的uid) | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| --- | --- | --- | --- | +| code | num | 返回值 | 0:成功 | +| message | str | 错误信息 | 成功为空 | +| data | obj | 数据本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| --- | --- | --- | --- | +| result | num | 0 | | +| errmsg | str | 像是服务器日志一样的东西 | | +| dynamic_id | num | 动态 id | | +| create_result | num | 1 | | +| dynamic_id_str | str | 动态 id | 字符串格式 | +| \_gt_ | num | 0 | | + +
+查看示例(纯文本) + +```bash +curl 'https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/create' \ + --data-urlencode 'dynamic_id=0' \ + --data-urlencode 'type=4' \ + --data-urlencode 'rid=0' \ + --data-urlencode 'content=Hello Bug~' \ + --data-urlencode 'up_choose_comment=0' \ + --data-urlencode 'up_close_comment=0' \ + --data-urlencode 'extension={"emoji_type":1,"from":{"emoji_type":1},"flag_cfg":{}}' \ + --data-urlencode 'at_uids=' \ + --data-urlencode 'ctrl=[]' \ + --data-urlencode 'csrf_token=de2731532b4ab96bc8536da948932668' \ + --data-urlencode 'csrf=de2731532b4ab96bc8536da948932668' \ + -b 'SESSDATA=******' +``` + +```json +{ + "code": 0, + "msg": "", + "message": "", + "data": { + "result": 0, + "errmsg": "; Create dynamic:588320531406678918, res:0, result:1; Push create kafka:0; Push create databus:0; Register comment result:0; Add outbox result:1", + "dynamic_id": 588320531406678918, + "create_result": 1, + "dynamic_id_str": "588320531406678918", + "_gt_": 0 + } +} + +``` + +
+ +
+查看示例(at两个人) + +动态正文 +``` +[热词系列_神仙UP]@暮光小猿wzt @社会易姐QwQ +``` + +at_uids +``` +15858903,293793435 +``` + +ctrl +```json +[ + { "location": 11, "type": 1, "length": 9, "data": "15858903" }, + { "location": 20, "type": 1, "length": 9, "data": "293793435" } +] +``` + +命令 +```bash +curl 'https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/create' \ + --data-urlencode 'dynamic_id': '0' \ + --data-urlencode 'type': '4' \ + --data-urlencode 'rid': '0' \ + --data-urlencode 'content': '[热词系列_神仙UP]@暮光小猿wzt @社会易姐QwQ ' \ + --data-urlencode 'up_choose_comment': '0' \ + --data-urlencode 'up_close_comment': '0' \ + --data-urlencode 'extension': '{"emoji_type":1,"from":{"emoji_type":1},"flag_cfg":{}}' \ + --data-urlencode 'at_uids': '15858903,293793435' \ + --data-urlencode 'ctrl': '[{"location":11,"type":1,"length":9,"data":"15858903"},{"location":20,"type":1,"length":9,"data":"293793435"}]' \ + --data-urlencode 'csrf_token': 'de2731532b4ab96bc8536da948932668' \ + --data-urlencode 'csrf': 'de2731532b4ab96bc8536da948932668' \ + -b 'SESSDATA=******' +``` + +
+ + + +## 发表复杂动态 + + + +> https://api.bilibili.com/x/dynamic/feed/create/dyn + +*请求方式:POST* + +认证方式:Cookie (SESSDATA) + +**URL参数** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | ---- | ------------------------ | ------ | ---- | +| csrf | str | CSRF Token(位于cookie) | 必要 | | + +**正文参数(application/json):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| --- | --- | --- | --- | --- | +| dyn_req | obj | 请求本体 | 必要 | | + +`dyn_req`对象: + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| --- | --- | --- | --- | --- | +| attach_card | obj | 特殊卡片 | 非必要 | 如直播预约等 | +| content | obj | 动态内容 | 必要 | | +| meta | obj | 元信息 | 非必要 | 大概是来源信息 | +| scene | num | 动态类型? | 必要 | 纯文本: 1
带图: 2 | +| pics | array | 携带图片 | 非必要 | 最多九个 | +| topic | obj | 话题 | 非必要 | | +| option | obj | 互动设置 | 非必要 | 没有此项时默认开启评论区 | +| upload_id | str | 客户端生成的 | 非必要 | 内容为`发送人mid`+`当前秒级时间戳`+`四位随机整数`,中间用`_`隔开 | + +`dyn_req`对象的`meta`对象,大概是来源信息,很简单就不详细列表了: + +```json +{ + "app_meta": { + "from": "create.dynamic.web", + "mobi_app": "web" + } +} +``` + +`dyn_req`对象的`content`对象: + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| -------- | ----- | -------------------- | ------ | ---- | +| contents | array | 动态组件对象有序数组 | 必要 | | + +`contents`数组内每一个动态组件对象: + +```json +{ + "raw_text": "ui上直接显示的字符串", + "type": 组件类型id, + "biz_id": "动态组件的内容id转字符串,比如投票id" +} +``` + +动态组件类型: + +| 组件名 | type | `biz_id`含义 | +| ------ | ---- | ------------ | +| 纯文本 | 1 | 空 | +| AT人 | 2 | AT人的mid | +| 表情 | 9 | 空 | +| 投票 | 4 | 投票id | + +`dyn_req`对象的`topic`对象 + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------------- | ---- | ------- | ------ | -------------------------- | +| from_source | str | 来源id? | 必要 | 网页版直接选为dyn.web.list | +| from_topic_id | num | 0 | 必要 | | +| id | num | 话题id | 必要 | | +| name | str | 话题名 | 必要 | | + +`dyn_req`对象的`pics`数组的每一项对象: + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ---------- | ----- | ---------------- | ------ | ------------------------------------------------------------ | +| img_height | num | 图片高 | 非必要 | 这个东西会直接原封不动传到前端,比如你都写0在网页上就看不见了,但是还会加载 | +| img_width | num | 图片宽 | 非必要 | 同上 | +| img_size | float | 图片文件大小(KB) | 非必要 | | +| img_src | str | 图片bfs链接 | 必要 | | + +`dyn_req`对象的`option`对象: + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ----------------- | ---- | ------------ | ------ | --------------- | +| up_choose_comment | num | 精选评论flag | 非必要 | 1: 开启 | +| close_comment | num | 关闭评论flag | 非必要 | 同上,与上二选一 | + +`dyn_req`对象的`topic`对象: + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------------- | ---- | ------------ | ------ | -------- | +| from_source | str | dyn.web.list | 非必要 | 作用不明 | +| from_topic_id | num | 0 | 非必要 | 作用不明 | +| id | num | 话题id | 必要 | | +| name | str | 话题名 | 非必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| --- | --- | --- | --- | +| code | num | 返回值 | 0:成功 | +| message | str | 错误信息 | 成功为空 | +| data | obj | 数据本体 | | + +`data`对象: + +当Cookie中含有任意的`buvid3`时,比较干净简洁: + +| 字段 | 类型 | 内容 | 备注 | +| --- | --- | --- | --- | +| result | num | 0 | | +| message | str | 错误信息 | | +| dyn_id | num | 动态 id | | +| dyn_id_str | str | 动态 id | 字符串格式 | +| dyn_type | num | 动态类型 | 不带图片: 4
带图片: 2
其他请参考 get_dynamic_detail.md | +| \_gt_ | num | 0 | | + +**警告:下面的内容又乱又杂,而且绝大多数情况用不到,我建议大家用这个接口的时候随便带一个buvid3的cookie屏蔽掉它们算了.** + +当Cookie中不含有`buvid3`时,较上述字段多出一个`fake_card`对象,大概是移动端用的卡片: + +| 字段 | 类型 | 内容 | 备注 | +| --------- | ---- | ---- | ------------ | +| fake_card | obj | 0 | 又多又乱又杂 | + +`fake_card`对象: + +| 字段 | 类型 | 内容 | 备注 | +| --------- | ----- | ------------ | ------------------------------------------------------------ | +| card_type | num | 卡片类型 | 不带图片: 4
带图片: 2
其他请参考 [获取特定动态卡片信息](get_dynamic_detail.md) | +| modules | array | 卡片组件列表 | | +| extend | obj | 其他杂项信息 | | + +`fake_card`对象的`modules`数组中每一项对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----------- | ---- | -------- | -------------------------------------------- | +| module_type | num | 组件类型 | 1: 作者信息
3: 动态内容
其他有待发现 | +| ModuleItem | obj | 卡片组件 | | + +`ModuleItem`对象与`module_type`对应关系: + +| module_type | `ModuleItem`含有的唯一一个key | 备注 | +| ----------- | ----------------------------- | ----------------------- | +| 1 | module_author | 作者信息 | +| 3 | module_desc | 动态内容 | +| 4 | module_dynamic | 携带图片等 | +| 9 | module_stat | 不明,貌似一直都是空对象 | + + `ModuleItem`内`module_author`: + +| 字段 | 类型 | 内容 | 备注 | +| ---------------- | ---- | -------------------------------- | ------------------------------------------------ | +| mid | num | 发送者mid | | +| ptime_label_text | str | 发送时间(人类可读形式)肯定是刚刚 | | +| author | obj | 作者详细信息 | 请参考[用户基本信息](../user/info.md),不再赘述.. | + + `ModuleItem`内`module_desc`: + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ----- | -------------- | ---- | +| desc | array | 动态组件列表 | | +| text | str | 动态纯文本形式 | | + +`module_desc`的`desc`数组: + +| 项 | 类型 | 备注 | +| ---- | ---- | ------------------- | +| 0 | obj | 第0个动态组件 | +| n | obj | 第n+1个动态组件组件 | +| ... | obj | ... | + +`desc`数组的每一项: + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | ------------------------------------------------ | ----------------------------- | +| text | str | 该组件对外显示的纯文本 | 对应请求时该组件的`raw_text` | +| type | num | 组件类型 | 对应请求时该组件的`type` | +| rid | str | 组件内容的id,例如@人的mid | 根据需要出现,比如纯文本就没有 | +| uri | str | b站自定义`bilibili://`协议链接,用于@人点击跳转等 | 根据需要出现,比如纯文本就没有 | + + `ModuleItem`内`module_dynamic`: + +| 字段 | 类型 | 内容 | 备注 | +| ---------- | ---- | ------------------ | -------------------- | +| type | num | 不知道是什么的类型 | 5: 图片
其他未知 | +| ModuleItem | obj | 组件? | 怎么还有套娃的? | + +当`module_dynamic`的`type`字段为`5`时: + +`module_dynamic`的`ModuleItem`有唯一key`dyn_draw`: + +| 字段 | 类型 | 内容 | 备注 | +| ----- | ----- | -------------------------------- | ------------------------------------------------ | +| items | array | 图片数组 | 与请求部分`dyn_req.pics`一致 | +| id | num | 这条图片动态所对应的相簿`doc_id` | 可以参考本文档的[相簿基本信息](../album/info.md) | + +`fake_card`的`extend`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------------- | ----- | ---------------------------------------------- | ---------------------------------------- | +| dyn_id_str | str | 动态id字符串形式 | | +| business_id | str | 未知 | 根据情况出现 | +| orif_img_url | str | 封面图url(如果有) | | +| share_type | str | 一般为3 | 未知 | +| share_scene | str | 一般为dynamic | 未知 | +| is_fast_share | bool | 一般为true | 未知 | +| dyn_type | num | 动态类型 | 不带图片: 4
带图片: 2
其他待探索 | +| uid | num | 发送者mid | | +| card_url | str | b站自定义`bilibili://`协议链接,指向该条动态 | | +| desc | array | 动态组件列表,重复了一遍`module_desc`的desc数组 | | +| reply | obj | 评论区相关 | | + +`extend`的`reply`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------ | ----- | ------------------------------------------------- | ---- | +| uri | str | b站自定义`bilibili://`协议链接,指向该条动态评论区 | | +| params | array | 未知 | | + +
+查看示例(不带`buvid3`) + +```bash +curl -X POST 'https://api.bilibili.com/x/dynamic/feed/create/dyn?csrf=xxxxx' \ +-b 'buvid3=114514;SESSDATA=xxxxx;' \ +--header 'Content-Type: application/json' \ +--data-raw '{ + "dyn_req": { + "content": { + "contents": [ + { + "raw_text": "Test", + "type": 1, + "biz_id": "" + }, + { + "raw_text": "礼堂丁真,鉴定为一眼丁真", + "type": 2, + "biz_id": "1463028352" + } + ] + }, + "pics": [ + { + "img_src": "http://i0.hdslb.com/bfs/new_dyn/322acd0fa92cfa59c0ad70e95ab95476470310172.png", + "img_width": 1368, + "img_height": 1500, + "img_size": 662.6005859375 + }, + { + "img_src": "http://i0.hdslb.com/bfs/new_dyn/322acd0fa92cfa59c0ad70e95ab95476470310172.png", + "img_width": 1368, + "img_height": 1500, + "img_size": 662.6005859375 + } + ], + "option": { + "close_comment": 1 + }, + "scene": 2 + } +}' +``` + +响应: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "dyn_id": 755402937023332386, + "dyn_id_str": "755402937023332386", + "dyn_type": 2, + "dyn_rid": 221621929, + "fake_card": { + "card_type": 7, + "modules": [ + { + "module_type": 1, + "ModuleItem": { + "module_author": { + "mid": 470310172, + "ptime_label_text": "刚刚", + "author": { + "mid": 470310172, + "name": "I_Min", + "face": "https://i1.hdslb.com/bfs/face/d36e9dc2d14b545a055980a2f3c1f2d5621646c6.png", + "official": { + "type": -1 + }, + "vip": { + "Type": 1, + "due_date": 1673366400000, + "label": {} + }, + "uri": "bilibili://space/470310172?defaultTab=dynamic", + "pendant": {}, + "nameplate": { + "nid": 3, + "name": "白银殿堂", + "image": "https://i1.hdslb.com/bfs/face/f6a31275029365ae5dc710006585ddcf1139bde1.png", + "image_small": "https://i0.hdslb.com/bfs/face/b09cdb4c119c467cf2d15db5263b4f539fa6e30b.png", + "level": "高级勋章", + "condition": "单个自制视频总播放数>=10万" + } + }, + "decorate_card": { + "id": 984, + "card_url": "https://i0.hdslb.com/bfs/vip/e42569d2f91a17346cdb991c7c34d3bbc677d4ef.png", + "jump_url": "https://www.bilibili.com/h5/mall/equity-link/home?navhide=1&item_id=984&part=card&f_source=garb&from=post&isdiy=0", + "fan": { + "number_str": "000000" + } + }, + "tp_list": [ + { + "type": 3, + "Item": { + "share": { + "icon": "http://i0.hdslb.com/bfs/feed-admin/ee5902a63bbe4a0d78646d11036b062ea60573f6.png", + "title": "分享" + } + } + }, + { + "type": 7, + "Item": { + "default": { + "icon": "http://i0.hdslb.com/bfs/feed-admin/9163a7b29964cb84cb5fc35e4f7b899151cf2afc.png", + "title": "删除" + } + } + } + ] + } + } + }, + { + "module_type": 3, + "ModuleItem": { + "module_desc": { + "desc": [ + { + "text": "Test", + "type": 1 + }, + { + "text": "礼堂丁真,鉴定为一眼丁真", + "type": 2, + "uri": "bilibili://space/1463028352?defaultTab=dynamic", + "rid": "1463028352" + } + ], + "text": "Test礼堂丁真,鉴定为一眼丁真" + } + } + }, + { + "module_type": 4, + "ModuleItem": { + "module_dynamic": { + "type": 5, + "ModuleItem": { + "dyn_draw": { + "items": [ + { + "src": "http://i0.hdslb.com/bfs/new_dyn/322acd0fa92cfa59c0ad70e95ab95476470310172.png", + "width": 1368, + "height": 1500, + "size": 662.6006 + }, + { + "src": "http://i0.hdslb.com/bfs/new_dyn/322acd0fa92cfa59c0ad70e95ab95476470310172.png", + "width": 1368, + "height": 1500, + "size": 662.6006 + } + ], + "id": 221621929 + } + } + } + } + }, + { + "module_type": 9, + "ModuleItem": { + "module_stat": {} + } + } + ], + "extend": { + "dyn_id_str": "755402937023332386", + "business_id": "221621929", + "orig_img_url": "http://i0.hdslb.com/bfs/new_dyn/322acd0fa92cfa59c0ad70e95ab95476470310172.png", + "desc": [ + { + "text": "Test", + "type": 1 + }, + { + "text": "礼堂丁真,鉴定为一眼丁真", + "type": 2, + "uri": "bilibili://space/1463028352?defaultTab=dynamic", + "rid": "1463028352" + } + ], + "share_type": "3", + "share_scene": "dynamic", + "is_fast_share": true, + "dyn_type": 2, + "uid": 470310172, + "card_url": "bilibili://following/detail/755402937023332386?cardType=2&rid=221621929", + "reply": { + "uri": "bilibili://following/detail/755402937023332386?cardType=2&rid=221621929", + "params": [ + { + "key": "comment_on", + "value": "1" + } + ] + } + } + } + } +} +``` + +
+ +
+查看示例(带`buvid3`) + +动态正文 +``` +Test礼堂丁真,鉴定为一眼丁真 +``` + +带两张一样的图: + +http://i0.hdslb.com/bfs/new_dyn/322acd0fa92cfa59c0ad70e95ab95476470310172.png + +然后关闭评论区 + +命令 + +```bash +curl -X POST 'https://api.bilibili.com/x/dynamic/feed/create/dyn?csrf=xxxxx' \ +-b 'buvid3=114514;SESSDATA=xxxxx;' \ +--header 'Content-Type: application/json' \ +--data-raw '{ + "dyn_req": { + "content": { + "contents": [ + { + "raw_text": "Test", + "type": 1, + "biz_id": "" + }, + { + "raw_text": "礼堂丁真,鉴定为一眼丁真", + "type": 2, + "biz_id": "1463028352" + } + ] + }, + "pics": [ + { + "img_src": "http://i0.hdslb.com/bfs/new_dyn/322acd0fa92cfa59c0ad70e95ab95476470310172.png", + "img_width": 1368, + "img_height": 1500, + "img_size": 662.6005859375 + }, + { + "img_src": "http://i0.hdslb.com/bfs/new_dyn/322acd0fa92cfa59c0ad70e95ab95476470310172.png", + "img_width": 1368, + "img_height": 1500, + "img_size": 662.6005859375 + } + ], + "option": { + "close_comment": 1 + }, + "scene": 2 + } +}' +``` + +响应: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "dyn_id": 755402172521250838, + "dyn_id_str": "755402172521250838", + "dyn_type": 2, + "dyn_rid": 221621773 + } +} +``` + + + +
+ +## 立即发布定时动态 + +> https://api.vc.bilibili.com/dynamic_draft/v1/dynamic_draft/publish_now + +*请求方式:POST* + +认证方式:Cookie(SESSDATA) + +**正文参数 (application/x-www-form-urlencoded):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| -------- | ---- | ------------------------ | ------ | ---- | +| draft_id | file | 定时动态(草稿)id | 必要 | | +| csrf | str | CSRF Token(位于cookie) | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------ | +| code | num | 返回值 | 0:成功 | +| data | obj | 信息本体 | 正常为空对象 | +| message | str | 错误消息 | 正常为"0" | +| ttl | num | 1 | 不明 | + +
+查看示例 + + +```bash +curl -X POST 'https://api.vc.bilibili.com/dynamic_draft/v1/dynamic_draft/publish_now' \ +--header 'Content-Type: application/x-www-form-urlencoded' \ +--data-urlencode 'draft_id=755409289278914611' \ +--data-urlencode 'csrf=xxx' +-b 'SESSDATA=xxxx;' +``` + +```json +{ + "code":0, + "message":"0", + "ttl":1, + "data":{} +} +``` + +
+ diff --git a/docs/dynamic/tag_dynamics.md b/docs/dynamic/tag_dynamics.md new file mode 100644 index 0000000000..73e06571b7 --- /dev/null +++ b/docs/dynamic/tag_dynamics.md @@ -0,0 +1,7934 @@ +# 话题下特定动态信息 +- [获取包含置顶及热门的动态列表](#获取包含置顶及热门的动态列表) +- [获取历史动态列表](#获取历史动态列表) +--- + +## 获取包含置顶及热门的动态列表 + +> https://api.vc.bilibili.com/topic_svr/v1/topic_svr/fetch_dynamics + +*请求方式:GET* + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------------ | ---- | ---------- | ------ | -------- | +| topic_name | str | 话题名称 | 必要(可选) | topic_id与topic_name任选一个 | +| topic_id | num | 话题id | 必要(可选) | topic_id与topic_name任选一个 | +| sortby | num | 排序方式 | 非必要 | 一般情况下带上参数2,在部分话题中使用可以排除热门部分| +| offset | num | 偏移值 | 非必要| 可用于偏移显示的动态列表(为`0`时获取不包含置顶及热门的最新动态) | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------- | +| code | num | 返回值 | 0:成功 | +| data | obj | 信息本体 | | +| message | str | 错误信息 | 默认为空 | +| msg | num | 空 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----------- | ----- | ---------- | ------------ | +| attentions | obj | 当前登录账户关注列表(仅在传递了登录信息时出现) | | +| cards | array | 动态列表 | | +| founder_uid | num | 0 | 作用尚不明确 | +| has_more | num | 当前话题是否有额外的动态 | 0:无额外动态
1:有额外动态 | +| is_drawer_topic | num | 0 | 作用尚不明确 | +| offset | str | 接下来获取列表时的偏移值 | 一般为当前获取的话题列表下最后一个动态id | +| \_gt\_ | num | 0 | 作用尚不明确 | + +`data`中的`cards`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | ------------- | ---- | +| 0 | obj | 第1条动态卡片 | | +| n | obj | 第(n+1)条动态卡片 | | +| …… | obj | …… | …… | + +`data`中的`cards`数组中的对象: + +基本同「[获取特定动态卡片信息](get_dynamic_detail.md)」中的data对象 + +**示例:** + +获取话题`哔哩哔哩漫画`(话题id`7539944`)的当前动态列表(包含置顶&热门) + +topic_name方式: +```shell +curl -G 'https://api.vc.bilibili.com/topic_svr/v1/topic_svr/fetch_dynamics' \ +--data-urlencode 'topic_name=哔哩哔哩漫画&sortby=2' +``` +topic_id方式: +```shell +curl -G 'https://api.vc.bilibili.com/topic_svr/v1/topic_svr/fetch_dynamics' \ +--data-urlencode 'topic_id=7539944&sortby=2' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "msg": "", + "message": "", + "data": { + "has_more": 1, + "cards": [ + { + "desc": { + "uid": 628215255, + "type": 8, + "rid": 332648194, + "view": 4768, + "repost": 18, + "like": 8325, + "is_liked": 0, + "dynamic_id": 516720707860453704, + "timestamp": 1619146815, + "orig_type": 0, + "user_profile": { + "info": { + "uid": 628215255, + "uname": "faguowenhua", + "face": "https://i0.hdslb.com/bfs/face/341a390cbae7efc021d3c492da56665f2a4944ee.jpg" + }, + "card": { + "official_verify": { + "type": 1, + "desc": "法国文化官方账号" + } + }, + "vip": { + "vipType": 0, + "vipDueDate": 0, + "vipStatus": 0, + "themeType": 0, + "label": { + "path": "", + "text": "", + "label_theme": "", + "text_color": "", + "bg_style": 0, + "bg_color": "", + "border_color": "" + }, + "avatar_subscript": 0, + "nickname_color": "", + "role": 0, + "avatar_subscript_url": "" + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "", + "image_enhance_frame": "" + }, + "rank": "10000", + "sign": "法国驻华使馆文化处官方平台", + "level_info": { + "current_level": 2 + } + }, + "uid_type": 1, + "recommend_info": { + "is_attention": 0 + }, + "r_type": 1, + "topic_board": "A", + "topic_board_desc": "热门", + "status": 1, + "dynamic_id_str": "516720707860453704", + "pre_dy_id_str": "0", + "orig_dy_id_str": "0", + "rid_str": "332648194", + "bvid": "BV1eA411L7Ck" + }, + "card": "{\"aid\":332648194,\"attribute\":0,\"cid\":327661869,\"copyright\":1,\"ctime\":1619091334,\"desc\":\"漫画节之际,恰逢世界读书日,哔哩哔哩漫画联合欧漫达高,邀请到了法国驻上海总领事馆文化领事柯梅燕女士在线推荐漫画啦!\\n被称为“图像小说”的纯正法国漫画是什么样呢?让我们一起跟着柯梅燕女士的介绍看看这本《莫奈逐光者》,领略欧陆漫画艺术的独特魅力吧~\",\"dimension\":{\"height\":2160,\"rotate\":0,\"width\":3840},\"duration\":219,\"dynamic\":\"漫画节之际,恰逢世界读书日,法国驻上海总领事馆文化领事柯梅燕女士应哔哩哔哩漫画与@欧漫达高 邀请,来给大家推荐漫画啦!\",\"item\":{\"at_control\":\"\"},\"jump_url\":\"bilibili:\\/\\/video\\/332648194\\/?page=1&player_preload=null&player_width=3840&player_height=2160&player_rotate=0\",\"mission_id\":20024,\"owner\":{\"face\":\"https:\\/\\/i0.hdslb.com\\/bfs\\/face\\/341a390cbae7efc021d3c492da56665f2a4944ee.jpg\",\"mid\":628215255,\"name\":\"faguowenhua\"},\"pic\":\"https:\\/\\/i0.hdslb.com\\/bfs\\/archive\\/7de60703c311c2afae10fab44a18bd3fbb5b3a13.jpg\",\"player_info\":null,\"pubdate\":1619146812,\"rights\":{\"autoplay\":1,\"bp\":0,\"download\":0,\"elec\":0,\"hd5\":1,\"is_cooperation\":1,\"movie\":0,\"no_background\":0,\"no_reprint\":1,\"pay\":0,\"ugc_pay\":0,\"ugc_pay_preview\":0},\"short_link\":\"https:\\/\\/b23.tv\\/BV1eA411L7Ck\",\"short_link_v2\":\"https:\\/\\/b23.tv\\/BV1eA411L7Ck\",\"stat\":{\"aid\":332648194,\"coin\":291,\"danmaku\":18,\"dislike\":0,\"favorite\":295,\"his_rank\":0,\"like\":8325,\"now_rank\":0,\"reply\":148,\"share\":95,\"view\":42916},\"state\":0,\"tid\":124,\"title\":\"大师的故事《莫奈逐光者》——来自法国文化领事的漫画推荐│哔哩哔哩漫画节\",\"tname\":\"社科人文\",\"videos\":1}", + "extend_json": "{\"\":{\"ogv\":{\"ogv_id\":0}},\"dispute\":{\"content\":\"\"},\"from\":{\"from\":\"\",\"verify\":{}},\"like_icon\":{\"action\":\"\",\"action_url\":\"\",\"end\":\"\",\"end_url\":\"\",\"start\":\"\",\"start_url\":\"\"},\"topic\":{\"is_attach_topic\":1}}", + "activity_infos": { + "details": [ + { + "type": 1, + "detail": "{\"is_show\":1,\"topic_id\":877418,\"topic_link\":\"https:\\/\\/www.bilibili.com\\/blackboard\\/activity-7uSyvlCGRS.html\",\"topic_name\":\"漫画节\"}" + } + ] + }, + "display": { + "topic_info": { + "topic_details": [ + { + "topic_id": 19380831, + "topic_name": "2021读书日", + "is_activity": 0, + "topic_link": "" + }, + { + "topic_id": 7539944, + "topic_name": "哔哩哔哩漫画", + "is_activity": 0, + "topic_link": "" + }, + { + "topic_id": 1449371, + "topic_name": "法国漫画", + "is_activity": 0, + "topic_link": "" + }, + { + "topic_id": 877418, + "topic_name": "漫画节", + "is_activity": 1, + "topic_link": "https://www.bilibili.com/blackboard/activity-7uSyvlCGRS.html" + }, + { + "topic_id": 591844, + "topic_name": "莫奈", + "is_activity": 0, + "topic_link": "" + }, + { + "topic_id": 507003, + "topic_name": "欧漫", + "is_activity": 0, + "topic_link": "" + } + ] + }, + "usr_action_txt": "投稿了视频", + "relation": { + "status": 1, + "is_follow": 0, + "is_followed": 0 + }, + "tags": [ + { + "tag_type": 3, + "sub_type": 1, + "icon": "https://i0.hdslb.com/bfs/album/4c1880a3e9d5fd2c72b339929a73a4b83d2bab93.png", + "text": "漫画节", + "link": "https://www.bilibili.com/blackboard/activity-7uSyvlCGRS.html?topic_from=topic-card&name=%E6%BC%AB%E7%94%BB%E8%8A%82", + "rid": 877418, + "sub_module": "topic" + } + ], + "up_act_button": { + "report_title": "举报", + "founder_report_title": "举报(发起人)", + "top_title": "置顶", + "top_confirm_title": "确定将此动态置顶吗", + "top_cancel_title": "确定将此动态取消置顶吗" + }, + "show_tip": { + "del_tip": "要删除动态吗?" + }, + "cover_play_icon_url": "https://i0.hdslb.com/bfs/album/2269afa7897830b397797ebe5f032b899b405c67.png" + } + }, + { + "desc": { + "uid": 7435683, + "type": 8, + "rid": 630241940, + "acl": 0, + "view": 32187, + "repost": 13, + "like": 10044, + "is_liked": 0, + "dynamic_id": 516457881633694548, + "timestamp": 1619085621, + "pre_dy_id": 0, + "orig_dy_id": 0, + "orig_type": 0, + "user_profile": { + "info": { + "uid": 7435683, + "uname": "葉月Mashiro灬", + "face": "https://i0.hdslb.com/bfs/face/a536ad1c4c66e17113cfb599fcbb97e03bcdae44.jpg" + }, + "card": { + "official_verify": { + "type": 0, + "desc": "bilibili 知名动漫UP主" + } + }, + "vip": { + "vipType": 2, + "vipDueDate": 1642694400000, + "vipStatus": 1, + "themeType": 0, + "label": { + "path": "", + "text": "年度大会员", + "label_theme": "annual_vip", + "text_color": "#FFFFFF", + "bg_style": 1, + "bg_color": "#FB7299", + "border_color": "" + }, + "avatar_subscript": 1, + "nickname_color": "#FB7299", + "role": 3, + "avatar_subscript_url": "https://i0.hdslb.com/bfs/vip/icon_Certification_big_member_22_3x.png" + }, + "pendant": { + "pid": 2701, + "name": "七濑胡桃", + "image": "https://i0.hdslb.com/bfs/garb/item/2c40fe802d1935d96e4fc63ec42274d8846a34b7.png", + "expire": 0, + "image_enhance": "https://i0.hdslb.com/bfs/garb/item/2c40fe802d1935d96e4fc63ec42274d8846a34b7.png", + "image_enhance_frame": "" + }, + "rank": "10000", + "sign": "个人up主 商业合作QQ:740998177月月本人 动漫交流群:958318991 约稿请私信", + "level_info": { + "current_level": 6 + } + }, + "uid_type": 1, + "recommend_info": { + "is_attention": 0 + }, + "stype": 0, + "r_type": 1, + "inner_id": 0, + "topic_board": "A", + "topic_board_desc": "热门", + "status": 1, + "dynamic_id_str": "516457881633694548", + "pre_dy_id_str": "0", + "orig_dy_id_str": "0", + "rid_str": "630241940", + "bvid": "BV1b84y1F7qT" + }, + "card": "{\"aid\":630241940,\"attribute\":0,\"cid\":325729439,\"copyright\":1,\"ctime\":1618830035,\"desc\":\"BGM:No Rainbows In The Desert (Pluto Tapes),歌手名:Unlike Pluto\\n咒术回战单素材,帅就完事!求3连!\",\"dimension\":{\"height\":1080,\"rotate\":0,\"width\":1920},\"duration\":94,\"dynamic\":\"\",\"item\":{\"at_control\":\"\"},\"jump_url\":\"bilibili:\\/\\/video\\/630241940\\/?page=1&player_preload=null&player_width=1920&player_height=1080&player_rotate=0\",\"owner\":{\"face\":\"https:\\/\\/i0.hdslb.com\\/bfs\\/face\\/a536ad1c4c66e17113cfb599fcbb97e03bcdae44.jpg\",\"mid\":7435683,\"name\":\"葉月Mashiro灬\"},\"pic\":\"https:\\/\\/i2.hdslb.com\\/bfs\\/archive\\/663b7f275b0f93356523880aa7e626803168df93.jpg\",\"player_info\":null,\"pubdate\":1619085619,\"rights\":{\"autoplay\":1,\"bp\":0,\"download\":0,\"elec\":0,\"hd5\":1,\"is_cooperation\":1,\"movie\":0,\"no_background\":0,\"no_reprint\":1,\"pay\":0,\"ugc_pay\":0,\"ugc_pay_preview\":0},\"short_link\":\"https:\\/\\/b23.tv\\/BV1b84y1F7qT\",\"short_link_v2\":\"https:\\/\\/b23.tv\\/BV1b84y1F7qT\",\"stat\":{\"aid\":630241940,\"coin\":889,\"danmaku\":146,\"dislike\":0,\"favorite\":1163,\"his_rank\":0,\"like\":10044,\"now_rank\":0,\"reply\":95,\"share\":205,\"view\":61268},\"state\":0,\"tid\":24,\"title\":\"全员高能!这才是咒术回战!\",\"tname\":\"MAD·AMV\",\"videos\":1}", + "extend_json": "{\"\":{\"decoration\":{\"decoration_id\":0},\"game\":{\"game_id\":0},\"manga\":{\"manga_id\":26505},\"match\":{\"match_id\":0},\"official_activity\":{\"official_activity_id\":0},\"ogv\":{\"auto_bind\":0,\"ogv_id\":0},\"pgc\":0,\"pugv\":{\"pugv_id\":0},\"reserve\":{\"reserve_id\":0},\"ugc\":{\"ugc_id\":0}},\"bottom\":{},\"dispute\":{\"content\":\"\"},\"from\":{\"from\":\"\"},\"like_icon\":{\"action\":\"\",\"action_url\":\"\",\"end\":\"\",\"end_url\":\"\",\"start\":\"\",\"start_url\":\"\"},\"topic\":{\"is_attach_topic\":1}}", + "display": { + "topic_info": { + "topic_details": [ + { + "topic_id": 391, + "topic_name": "AMV", + "is_activity": 0, + "topic_link": "" + }, + { + "topic_id": 281, + "topic_name": "MAD", + "is_activity": 0, + "topic_link": "" + }, + { + "topic_id": 7662089, + "topic_name": "五条悟", + "is_activity": 1, + "topic_link": "https://www.bilibili.com/blackboard/dynamic/66796" + }, + { + "topic_id": 7539944, + "topic_name": "哔哩哔哩漫画", + "is_activity": 0, + "topic_link": "" + }, + { + "topic_id": 6497596, + "topic_name": "咒术回战", + "is_activity": 0, + "topic_link": "" + }, + { + "topic_id": 3545, + "topic_name": "热血", + "is_activity": 0, + "topic_link": "" + } + ] + }, + "usr_action_txt": "投稿了视频", + "relation": { + "status": 1, + "is_follow": 0, + "is_followed": 0 + }, + "attach_card": { + "type": "manga", + "head_text": "相关漫画作品", + "cover_url": "https://i0.hdslb.com/bfs/manga-static/ca4c24bd8bf896545811f401106c19588b80549d.png", + "cover_type": 2, + "title": "咒术回战", + "desc_first": "更新至146", + "desc_second": "冒险,热血,奇幻", + "jump_url": "https://manga.bilibili.com/m/detail/mc26505?from=sub_card", + "button": { + "type": 2, + "uncheck": { + "icon": "https://i0.hdslb.com/bfs/bangumi/154b6898d2b2c20c21ccef9e41fcf809b518ebb4.png", + "text": "追漫" + }, + "check": { + "icon": "", + "text": "已追漫" + }, + "status": 1 + }, + "oid_str": "26505" + }, + "add_on_card_info": [ + { + "add_on_card_show_type": 2, + "attach_card": { + "type": "manga", + "head_text": "相关漫画作品", + "cover_url": "https://i0.hdslb.com/bfs/manga-static/ca4c24bd8bf896545811f401106c19588b80549d.png", + "cover_type": 2, + "title": "咒术回战", + "desc_first": "更新至146", + "desc_second": "冒险,热血,奇幻", + "jump_url": "https://manga.bilibili.com/m/detail/mc26505?from=sub_card", + "button": { + "type": 2, + "uncheck": { + "icon": "https://i0.hdslb.com/bfs/bangumi/154b6898d2b2c20c21ccef9e41fcf809b518ebb4.png", + "text": "追漫" + }, + "check": { + "icon": "", + "text": "已追漫" + }, + "status": 1 + }, + "oid_str": "26505" + } + } + ], + "up_act_button": { + "report_title": "举报", + "founder_report_title": "举报(发起人)", + "top_title": "置顶", + "top_confirm_title": "确定将此动态置顶吗", + "top_cancel_title": "确定将此动态取消置顶吗" + }, + "show_tip": { + "del_tip": "要删除动态吗?" + }, + "cover_play_icon_url": "https://i0.hdslb.com/bfs/album/2269afa7897830b397797ebe5f032b899b405c67.png" + } + }, + { + "desc": { + "uid": 381355897, + "type": 2, + "rid": 131242904, + "acl": 0, + "view": 20829, + "repost": 0, + "comment": 0, + "like": 99, + "is_liked": 0, + "dynamic_id": 516859813265346703, + "timestamp": 1619179203, + "pre_dy_id": 0, + "orig_dy_id": 0, + "orig_type": 0, + "user_profile": { + "info": { + "uid": 381355897, + "uname": "电绘狂", + "face": "https://i1.hdslb.com/bfs/face/19c52b3c93e12698cd1e23093f8e2661e32e2533.jpg" + }, + "card": { + "official_verify": { + "type": -1, + "desc": "" + } + }, + "vip": { + "vipType": 1, + "vipDueDate": 1580486400000, + "vipStatus": 0, + "themeType": 0, + "label": { + "path": "", + "text": "", + "label_theme": "", + "text_color": "", + "bg_style": 0, + "bg_color": "", + "border_color": "" + }, + "avatar_subscript": 0, + "nickname_color": "", + "role": 0, + "avatar_subscript_url": "" + }, + "pendant": { + "pid": 1823, + "name": "春日樱花", + "image": "https://i1.hdslb.com/bfs/garb/item/dbe7d6c13cfa15ee717f7219501dc4613affbb9c.png", + "expire": 0, + "image_enhance": "https://i1.hdslb.com/bfs/garb/item/dbe7d6c13cfa15ee717f7219501dc4613affbb9c.png", + "image_enhance_frame": "" + }, + "rank": "10000", + "sign": "交流群:100931574、cctalk&B站每周三天 直播绘画教学+改图", + "level_info": { + "current_level": 6 + } + }, + "uid_type": 1, + "recommend_info": { + "is_attention": 0 + }, + "stype": 0, + "r_type": 1, + "inner_id": 0, + "topic_board": "A", + "topic_board_desc": "热门", + "status": 1, + "dynamic_id_str": "516859813265346703", + "pre_dy_id_str": "0", + "orig_dy_id_str": "0", + "rid_str": "131242904" + }, + "card": "{\"item\":{\"at_control\":\"\",\"category\":\"daily\",\"description\":\"‍【#寒远#第十话:你穿什么都好看!!】\\n新角色登场!!猜猜他们是小公主的谁呢?[妙啊]\\n彩色条漫+每周五更新+ :https:\\/\\/manga.bilibili.com\\/detail\\/mc29468 \\n\\n#哔哩哔哩漫画# \",\"id\":131242904,\"is_fav\":0,\"pictures\":[{\"img_height\":1260,\"img_size\":151.478515625,\"img_src\":\"https:\\/\\/i0.hdslb.com\\/bfs\\/album\\/cce04242486413faf4299ba0fd4e6cb072cd376e.jpg\",\"img_tags\":null,\"img_width\":750},{\"img_height\":1040,\"img_size\":126.9970703125,\"img_src\":\"https:\\/\\/i0.hdslb.com\\/bfs\\/album\\/678a826ac0e2e869e4ee2c1556a60c69d626dbfd.jpg\",\"img_tags\":null,\"img_width\":750}],\"pictures_count\":2,\"reply\":0,\"role\":[],\"settings\":{\"copy_forbidden\":\"0\"},\"source\":[],\"title\":\"\",\"upload_time\":1619179203},\"user\":{\"head_url\":\"https:\\/\\/i1.hdslb.com\\/bfs\\/face\\/19c52b3c93e12698cd1e23093f8e2661e32e2533.jpg\",\"name\":\"电绘狂\",\"uid\":381355897,\"vip\":{\"avatar_subscript\":0,\"due_date\":1580486400000,\"label\":{\"label_theme\":\"\",\"path\":\"\",\"text\":\"\"},\"nickname_color\":\"\",\"status\":0,\"theme_type\":0,\"type\":1,\"vip_pay_type\":0}}}", + "extend_json": "{\"from\":{\"emoji_type\":1,\"from\":\"timer.publish\",\"up_close_comment\":0,\"verify\":{\"cc\":{\"nv\":1}}},\"like_icon\":{\"action\":\"\",\"action_url\":\"\",\"end\":\"\",\"end_url\":\"\",\"start\":\"\",\"start_url\":\"\"},\"topic\":{\"is_attach_topic\":1}}", + "display": { + "topic_info": { + "topic_details": [ + { + "topic_id": 17996793, + "topic_name": "寒远", + "is_activity": 0, + "topic_link": "" + }, + { + "topic_id": 7539944, + "topic_name": "哔哩哔哩漫画", + "is_activity": 0, + "topic_link": "" + } + ] + }, + "emoji_info": { + "emoji_details": [ + { + "emoji_name": "[妙啊]", + "id": 435, + "package_id": 1, + "state": 0, + "type": 1, + "attr": 0, + "text": "[妙啊]", + "url": "https://i0.hdslb.com/bfs/emote/b4cb77159d58614a9b787b91b1cd22a81f383535.png", + "meta": { + "size": 1 + }, + "mtime": 1617293741 + } + ] + }, + "relation": { + "status": 1, + "is_follow": 0, + "is_followed": 0 + }, + "up_act_button": { + "report_title": "举报", + "founder_report_title": "举报(发起人)", + "top_title": "置顶", + "top_confirm_title": "确定将此动态置顶吗", + "top_cancel_title": "确定将此动态取消置顶吗" + }, + "show_tip": { + "del_tip": "要删除动态吗?" + } + } + }, + { + "desc": { + "uid": 350963773, + "type": 8, + "rid": 972741830, + "acl": 0, + "view": 2059, + "repost": 5, + "like": 53, + "is_liked": 0, + "dynamic_id": 515066247810442308, + "timestamp": 1618761606, + "pre_dy_id": 0, + "orig_dy_id": 0, + "orig_type": 0, + "user_profile": { + "info": { + "uid": 350963773, + "uname": "届不到_Zula", + "face": "https://i1.hdslb.com/bfs/face/613e6dcd59feaecf875092ae945834a362b37f6c.jpg" + }, + "card": { + "official_verify": { + "type": -1, + "desc": "" + } + }, + "vip": { + "vipType": 2, + "vipDueDate": 1674403200000, + "vipStatus": 1, + "themeType": 0, + "label": { + "path": "", + "text": "年度大会员", + "label_theme": "annual_vip", + "text_color": "#FFFFFF", + "bg_style": 1, + "bg_color": "#FB7299", + "border_color": "" + }, + "avatar_subscript": 1, + "nickname_color": "#FB7299", + "role": 3, + "avatar_subscript_url": "https://i0.hdslb.com/bfs/vip/icon_Certification_big_member_22_3x.png" + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "", + "image_enhance_frame": "" + }, + "rank": "10000", + "sign": "什么时候来个卡车,善良的送我去异世界", + "level_info": { + "current_level": 5 + } + }, + "uid_type": 1, + "recommend_info": { + "is_attention": 0 + }, + "stype": 0, + "r_type": 1, + "inner_id": 0, + "topic_board": "A", + "topic_board_desc": "热门", + "status": 1, + "dynamic_id_str": "515066247810442308", + "pre_dy_id_str": "0", + "orig_dy_id_str": "0", + "rid_str": "972741830", + "bvid": "BV1Mp4y1b7vk" + }, + "card": "{\"aid\":972741830,\"attribute\":0,\"cid\":325740795,\"copyright\":1,\"ctime\":1618713447,\"desc\":\"我永远喜欢水原千鹤!\\n水原千鹤应援群:605563880\\n欢迎加入!\",\"dimension\":{\"height\":1080,\"rotate\":0,\"width\":1920},\"duration\":207,\"dynamic\":\"水原千鹤,生日快乐\",\"item\":{\"at_control\":\"\"},\"jump_url\":\"bilibili:\\/\\/video\\/972741830\\/?page=1&player_preload=null&player_width=1920&player_height=1080&player_rotate=0\",\"owner\":{\"face\":\"https:\\/\\/i1.hdslb.com\\/bfs\\/face\\/613e6dcd59feaecf875092ae945834a362b37f6c.jpg\",\"mid\":350963773,\"name\":\"届不到_Zula\"},\"pic\":\"https:\\/\\/i0.hdslb.com\\/bfs\\/archive\\/5e8a7e26b2b386626f3ddc54d1999ee3f1978888.jpg\",\"player_info\":null,\"pubdate\":1618761602,\"rights\":{\"autoplay\":1,\"bp\":0,\"download\":0,\"elec\":0,\"hd5\":0,\"is_cooperation\":0,\"movie\":0,\"no_background\":0,\"no_reprint\":1,\"pay\":0,\"ugc_pay\":0,\"ugc_pay_preview\":0},\"short_link\":\"https:\\/\\/b23.tv\\/BV1Mp4y1b7vk\",\"short_link_v2\":\"https:\\/\\/b23.tv\\/BV1Mp4y1b7vk\",\"stat\":{\"aid\":972741830,\"coin\":58,\"danmaku\":15,\"dislike\":0,\"favorite\":29,\"his_rank\":0,\"like\":53,\"now_rank\":0,\"reply\":45,\"share\":15,\"view\":427},\"state\":0,\"tid\":24,\"title\":\"【2021水原千鹤生贺】此生能遇见你,真是太好了\",\"tname\":\"MAD·AMV\",\"up_from_v2\":19,\"videos\":2}", + "extend_json": "{\"\":{\"ogv\":{\"ogv_id\":0}},\"bottom\":{},\"dispute\":{\"content\":\"\"},\"from\":{\"from\":\"\",\"verify\":{}},\"like_icon\":{\"action\":\"\",\"action_url\":\"\",\"end\":\"\",\"end_url\":\"\",\"start\":\"\",\"start_url\":\"\"},\"topic\":{\"is_attach_topic\":1}}", + "display": { + "topic_info": { + "topic_details": [ + { + "topic_id": 7539944, + "topic_name": "哔哩哔哩漫画", + "is_activity": 0, + "topic_link": "" + }, + { + "topic_id": 170379, + "topic_name": "生贺", + "is_activity": 0, + "topic_link": "" + }, + { + "topic_id": 4145, + "topic_name": "恋爱", + "is_activity": 0, + "topic_link": "" + }, + { + "topic_id": 391, + "topic_name": "AMV", + "is_activity": 0, + "topic_link": "" + }, + { + "topic_id": 281, + "topic_name": "MAD", + "is_activity": 0, + "topic_link": "" + }, + { + "topic_id": 7382791, + "topic_name": "水原千鹤", + "is_activity": 1, + "topic_link": "https://www.bilibili.com/blackboard/dynamic/43055" + } + ] + }, + "usr_action_txt": "投稿了视频", + "relation": { + "status": 1, + "is_follow": 0, + "is_followed": 0 + }, + "tags": [ + { + "tag_type": 5, + "icon": "https://i0.hdslb.com/bfs/album/969bfb96b77f12acb2e36068fa03de3b418b2219.png", + "text": "领取专属形象赢大奖", + "link": "https://www.bilibili.com/blackboard/activity-K4Yvj51WtJ.html", + "sub_module": "diversion", + "show_action": 0 + } + ], + "up_act_button": { + "report_title": "举报", + "founder_report_title": "举报(发起人)", + "top_title": "置顶", + "top_confirm_title": "确定将此动态置顶吗", + "top_cancel_title": "确定将此动态取消置顶吗" + }, + "show_tip": { + "del_tip": "要删除动态吗?" + }, + "cover_play_icon_url": "https://i0.hdslb.com/bfs/album/2269afa7897830b397797ebe5f032b899b405c67.png" + } + }, + { + "desc": { + "uid": 326499679, + "type": 2, + "rid": 131534120, + "acl": 0, + "view": 196445, + "repost": 2, + "comment": 54, + "like": 1048, + "is_liked": 0, + "dynamic_id": 517602000793534062, + "timestamp": 1619352007, + "pre_dy_id": 0, + "orig_dy_id": 0, + "orig_type": 0, + "user_profile": { + "info": { + "uid": 326499679, + "uname": "哔哩哔哩漫画", + "face": "https://i1.hdslb.com/bfs/face/2254162161a60b528cfec449f3450409a81ebc37.jpg" + }, + "card": { + "official_verify": { + "type": 1, + "desc": "哔哩哔哩漫画官方账号" + } + }, + "vip": { + "vipType": 2, + "vipDueDate": 1941033600000, + "vipStatus": 1, + "themeType": 0, + "label": { + "path": "", + "text": "十年大会员", + "label_theme": "ten_annual_vip", + "text_color": "#FFFFFF", + "bg_style": 1, + "bg_color": "#FB7299", + "border_color": "" + }, + "avatar_subscript": 1, + "nickname_color": "#FB7299", + "role": 7, + "avatar_subscript_url": "https://i0.hdslb.com/bfs/vip/icon_Certification_big_member_22_3x.png" + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "", + "image_enhance_frame": "" + }, + "rank": "10000", + "sign": "↑ 【关注漫画姬】就送【漫读券5张】,当日或次日登录哔哩哔哩漫画APP即可领取,快来关注领券吧(°∀°)ノ ↑", + "level_info": { + "current_level": 6 + } + }, + "uid_type": 1, + "recommend_info": { + "is_attention": 0 + }, + "stype": 0, + "r_type": 1, + "inner_id": 0, + "topic_board": "C", + "topic_board_desc": "最新", + "status": 1, + "dynamic_id_str": "517602000793534062", + "pre_dy_id_str": "0", + "orig_dy_id_str": "0", + "rid_str": "131534120" + }, + "card": "{\"item\":{\"at_control\":\"\",\"category\":\"daily\",\"description\":\"【#哔哩哔哩漫画# 作品推荐】兽人控狂喜!《#不莱梅乐队#》:https:\\/\\/manga.bilibili.com\\/m\\/detail\\/mc28880\\n[思考]大家小时候看过一篇叫做《不莱梅的音乐家》的格林童话吗?\\n[惊喜]只不过在这部#欧漫#里,这四个动物的目的不是赶走强盗,而是追逐梦想、爱情、自由、正义。在这个充满混沌的世界里,他们将用音乐的力量改写自己和他人的命运。 \",\"id\":131534120,\"is_fav\":0,\"pictures\":[{\"img_height\":1922,\"img_size\":1163.9267578125,\"img_src\":\"https:\\/\\/i0.hdslb.com\\/bfs\\/album\\/f5a82f03475eed52973b3cecb2b5180b090cc5f0.png\",\"img_tags\":null,\"img_width\":1080},{\"img_height\":757,\"img_size\":273.130859375,\"img_src\":\"https:\\/\\/i0.hdslb.com\\/bfs\\/album\\/ca4055c7b9c246e7e922190102d5c87cd4dbcea8.png\",\"img_tags\":null,\"img_width\":436},{\"img_height\":1067,\"img_size\":640.29296875,\"img_src\":\"https:\\/\\/i0.hdslb.com\\/bfs\\/album\\/9de3ece4d374d07fb7b192db4520779a477cdf97.png\",\"img_tags\":null,\"img_width\":542},{\"img_height\":972,\"img_size\":374.8349609375,\"img_src\":\"https:\\/\\/i0.hdslb.com\\/bfs\\/album\\/cac12d548a3686335d3154cce672f1823ca92517.png\",\"img_tags\":null,\"img_width\":487}],\"pictures_count\":4,\"reply\":54,\"role\":[],\"settings\":{\"copy_forbidden\":\"0\"},\"source\":[],\"title\":\"\",\"upload_time\":1619352007},\"user\":{\"head_url\":\"https:\\/\\/i1.hdslb.com\\/bfs\\/face\\/2254162161a60b528cfec449f3450409a81ebc37.jpg\",\"name\":\"哔哩哔哩漫画\",\"uid\":326499679,\"vip\":{\"avatar_subscript\":1,\"due_date\":1941033600000,\"label\":{\"label_theme\":\"ten_annual_vip\",\"path\":\"\",\"text\":\"十年大会员\"},\"nickname_color\":\"#FB7299\",\"status\":1,\"theme_type\":0,\"type\":2,\"vip_pay_type\":0}}}", + "extend_json": "{\"from\":{\"emoji_type\":1,\"from\":\"timer.publish\",\"up_close_comment\":0,\"verify\":{\"asw\":{\"fl\":15,\"nv\":1},\"cc\":{\"nv\":1},\"sw\":{\"fl\":15,\"nv\":1}}},\"like_icon\":{\"action\":\"\",\"action_url\":\"\",\"end\":\"\",\"end_url\":\"\",\"start\":\"\",\"start_url\":\"\"},\"topic\":{\"is_attach_topic\":1}}", + "display": { + "topic_info": { + "topic_details": [ + { + "topic_id": 7539944, + "topic_name": "哔哩哔哩漫画", + "is_activity": 0, + "topic_link": "" + }, + { + "topic_id": 15149492, + "topic_name": "不莱梅乐队", + "is_activity": 0, + "topic_link": "" + }, + { + "topic_id": 507003, + "topic_name": "欧漫", + "is_activity": 0, + "topic_link": "" + } + ] + }, + "emoji_info": { + "emoji_details": [ + { + "emoji_name": "[思考]", + "id": 1941, + "package_id": 1, + "state": 0, + "type": 1, + "attr": 0, + "text": "[思考]", + "url": "https://i0.hdslb.com/bfs/emote/cfa9b7e89e4bfe04bbcd34ccb1b0df37f4fa905c.png", + "meta": { + "size": 1 + }, + "mtime": 1597738918 + }, + { + "emoji_name": "[惊喜]", + "id": 19, + "package_id": 1, + "state": 0, + "type": 1, + "attr": 0, + "text": "[惊喜]", + "url": "https://i0.hdslb.com/bfs/emote/0afecaf3a3499479af946f29749e1a6c285b6f65.png", + "meta": { + "size": 1 + }, + "mtime": 1597738918 + } + ] + }, + "relation": { + "status": 1, + "is_follow": 0, + "is_followed": 0 + }, + "up_act_button": { + "report_title": "举报", + "founder_report_title": "举报(发起人)", + "top_title": "置顶", + "top_confirm_title": "确定将此动态置顶吗", + "top_cancel_title": "确定将此动态取消置顶吗" + }, + "show_tip": { + "del_tip": "要删除动态吗?" + } + } + }, + { + "desc": { + "uid": 240911350, + "type": 1, + "rid": 517516389208371264, + "acl": 0, + "view": 237, + "repost": 0, + "comment": 0, + "like": 2, + "is_liked": 0, + "dynamic_id": 517516389214088892, + "timestamp": 1619332074, + "pre_dy_id": 517479366596833835, + "orig_dy_id": 517479366596833835, + "orig_type": 2, + "user_profile": { + "info": { + "uid": 240911350, + "uname": "Kekkai-piano", + "face": "https://i1.hdslb.com/bfs/face/f9b56adf0e9fb16d556fb5af93fc8367a255e4af.jpg" + }, + "card": { + "official_verify": { + "type": -1, + "desc": "" + } + }, + "vip": { + "vipType": 2, + "vipDueDate": 1658851200000, + "vipStatus": 1, + "themeType": 0, + "label": { + "path": "", + "text": "年度大会员", + "label_theme": "annual_vip", + "text_color": "#FFFFFF", + "bg_style": 1, + "bg_color": "#FB7299", + "border_color": "" + }, + "avatar_subscript": 1, + "nickname_color": "#FB7299", + "role": 3, + "avatar_subscript_url": "https://i0.hdslb.com/bfs/vip/icon_Certification_big_member_22_3x.png" + }, + "pendant": { + "pid": 2511, + "name": "初音未来13周年", + "image": "https://i1.hdslb.com/bfs/garb/item/4f8f3f1f2d47f0dad84f66aa57acd4409ea46361.png", + "expire": 0, + "image_enhance": "https://i1.hdslb.com/bfs/garb/item/fe0b83b53e2342b16646f6e7a9370d8a867decdb.webp", + "image_enhance_frame": "https://i1.hdslb.com/bfs/garb/item/127c507ec8448be30cf5f79500ecc6ef2fd32f2c.png" + }, + "rank": "10000", + "sign": "看动画片的88键音游爱好者 \n专业人士轻喷 \n正在寻找缺失之物 \n超天変地異みたいな狂騒にも慣れて\n高三备考ing,莫要取关(bushi)", + "level_info": { + "current_level": 5 + } + }, + "uid_type": 1, + "recommend_info": { + "is_attention": 0 + }, + "stype": 0, + "r_type": 1, + "inner_id": 0, + "topic_board": "C", + "topic_board_desc": "最新", + "status": 1, + "dynamic_id_str": "517516389214088892", + "pre_dy_id_str": "517479366596833835", + "orig_dy_id_str": "517479366596833835", + "rid_str": "517516389208371264", + "origin": { + "uid": 326499679, + "type": 2, + "rid": 131479206, + "acl": 1024, + "view": 1379492, + "repost": 11233, + "dynamic_id": 517479366596833835, + "timestamp": 1619323454, + "uid_type": 1, + "r_type": 1, + "status": 1, + "dynamic_id_str": "517479366596833835", + "pre_dy_id_str": "0", + "orig_dy_id_str": "0", + "rid_str": "131479206" + } + }, + "card": "{ \"user\": { \"uid\": 240911350, \"uname\": \"Kekkai-piano\", \"face\": \"https:\\/\\/i1.hdslb.com\\/bfs\\/face\\/f9b56adf0e9fb16d556fb5af93fc8367a255e4af.jpg\" }, \"item\": { \"rp_id\": 517516389208371264, \"uid\": 240911350, \"content\": \"分母报道[doge]#哔哩哔哩漫画#,#AISHA#\", \"orig_dy_id\": 517479366596833835, \"pre_dy_id\": 517479366596833835, \"timestamp\": 1619332074, \"reply\": 0, \"orig_type\": 2 }, \"origin\": \"{\\\"item\\\":{\\\"at_control\\\":\\\"[{\\\\\\\"data\\\\\\\":\\\\\\\"5\\\\\\\",\\\\\\\"length\\\\\\\":0,\\\\\\\"location\\\\\\\":0,\\\\\\\"type\\\\\\\":2},{\\\\\\\"location\\\\\\\":19,\\\\\\\"type\\\\\\\":1,\\\\\\\"length\\\\\\\":8,\\\\\\\"data\\\\\\\":\\\\\\\"1425490690\\\\\\\"}]\\\",\\\"category\\\":\\\"daily\\\",\\\"description\\\":\\\"​互动抽奖 关+转,抽3位幸运小伙伴送@漫画家法吉特 【《逆光》画集作者签名版】~\\\\n #哔哩哔哩漫画#重磅安利之《#AISHA#》\\\\n当当当当!剧情党福音~\\\\n答题就有机会赢得礼物?还有法吉特太太亲签精美画集?\\\\n活动入口→https:\\\\\\/\\\\\\/www.bilibili.com\\\\\\/blackboard\\\\\\/topic\\\\\\/activity-oPISh007wv.html\\\\n\\\\n你以为这样就结束了了吗?\\\\nNONONO~\\\\n法吉特老师首次出版个人作品集《逆光》~商城4月25日0点首发开售!\\\\n有法吉特老师签名版掉落哦!随书额外附赠专属书签特典!\\\\n活动指路:哔哩哔哩漫画APP-我的-商城-banner\\\",\\\"id\\\":131479206,\\\"is_fav\\\":0,\\\"pictures\\\":[{\\\"img_height\\\":782,\\\"img_size\\\":1097.2451171875,\\\"img_src\\\":\\\"https:\\\\\\/\\\\\\/i0.hdslb.com\\\\\\/bfs\\\\\\/album\\\\\\/8965a784f77e2545f4f2f168df4f417ed3ace818.png\\\",\\\"img_tags\\\":null,\\\"img_width\\\":750}],\\\"pictures_count\\\":1,\\\"reply\\\":573,\\\"role\\\":[],\\\"settings\\\":{\\\"copy_forbidden\\\":\\\"0\\\"},\\\"source\\\":[],\\\"title\\\":\\\"\\\",\\\"upload_time\\\":1619323454},\\\"user\\\":{\\\"head_url\\\":\\\"https:\\\\\\/\\\\\\/i1.hdslb.com\\\\\\/bfs\\\\\\/face\\\\\\/2254162161a60b528cfec449f3450409a81ebc37.jpg\\\",\\\"name\\\":\\\"哔哩哔哩漫画\\\",\\\"uid\\\":326499679,\\\"vip\\\":{\\\"avatar_subscript\\\":1,\\\"due_date\\\":1941033600000,\\\"label\\\":{\\\"label_theme\\\":\\\"ten_annual_vip\\\",\\\"path\\\":\\\"\\\",\\\"text\\\":\\\"十年大会员\\\"},\\\"nickname_color\\\":\\\"#FB7299\\\",\\\"status\\\":1,\\\"theme_type\\\":0,\\\"type\\\":2,\\\"vip_pay_type\\\":0}}}\", \"origin_extension\": { \"lott\": \"{\\\"lottery_id\\\":61398}\" }, \"origin_extend_json\": \"{\\\"ctrl\\\":[{\\\"data\\\":\\\"5\\\",\\\"length\\\":0,\\\"location\\\":0,\\\"type\\\":2},{\\\"data\\\":\\\"1425490690\\\",\\\"length\\\":8,\\\"location\\\":19,\\\"type\\\":1}],\\\"from\\\":{\\\"emoji_type\\\":1,\\\"from\\\":\\\"create.dynamic.web\\\",\\\"up_close_comment\\\":0,\\\"verify\\\":{\\\"asw\\\":{\\\"fl\\\":15,\\\"nv\\\":1},\\\"cc\\\":{\\\"vf\\\":1},\\\"sw\\\":{\\\"fl\\\":15,\\\"nv\\\":1}}},\\\"like_icon\\\":{\\\"action\\\":\\\"\\\",\\\"action_url\\\":\\\"\\\",\\\"end\\\":\\\"\\\",\\\"end_url\\\":\\\"\\\",\\\"start\\\":\\\"\\\",\\\"start_url\\\":\\\"\\\"},\\\"lott\\\":{\\\"lottery_id\\\":61398},\\\"topic\\\":{\\\"is_attach_topic\\\":1}}\", \"origin_user\": { \"info\": { \"uid\": 326499679, \"uname\": \"哔哩哔哩漫画\", \"face\": \"https:\\/\\/i1.hdslb.com\\/bfs\\/face\\/2254162161a60b528cfec449f3450409a81ebc37.jpg\" }, \"card\": { \"official_verify\": { \"type\": 1, \"desc\": \"哔哩哔哩漫画官方账号\" } }, \"vip\": { \"vipType\": 2, \"vipDueDate\": 1941033600000, \"vipStatus\": 1, \"themeType\": 0, \"label\": { \"path\": \"\", \"text\": \"十年大会员\", \"label_theme\": \"ten_annual_vip\", \"text_color\": \"#FFFFFF\", \"bg_style\": 1, \"bg_color\": \"#FB7299\", \"border_color\": \"\" }, \"avatar_subscript\": 1, \"nickname_color\": \"#FB7299\", \"role\": 7, \"avatar_subscript_url\": \"https:\\/\\/i0.hdslb.com\\/bfs\\/vip\\/icon_Certification_big_member_22_3x.png\" }, \"pendant\": { \"pid\": 0, \"name\": \"\", \"image\": \"\", \"expire\": 0, \"image_enhance\": \"\", \"image_enhance_frame\": \"\" }, \"rank\": \"10000\", \"sign\": \"↑ 【关注漫画姬】就送【漫读券5张】,当日或次日登录哔哩哔哩漫画APP即可领取,快来关注领券吧(°∀°)ノ ↑\", \"level_info\": { \"current_level\": 6 } } }", + "extend_json": "{\"from\":{\"emoji_type\":1,\"from\":\"create.comment\",\"up_close_comment\":0},\"like_icon\":{\"action\":\"\",\"action_url\":\"\",\"end\":\"\",\"end_url\":\"\",\"start\":\"\",\"start_url\":\"\"},\"topic\":{\"is_attach_topic\":1}}", + "display": { + "topic_info": { + "topic_details": [ + { + "topic_id": 7539944, + "topic_name": "哔哩哔哩漫画", + "is_activity": 0, + "topic_link": "" + }, + { + "topic_id": 148830, + "topic_name": "AISHA", + "is_activity": 1, + "topic_link": "https://www.bilibili.com/blackboard/dynamic/18159" + }, + { + "topic_id": 2514603, + "topic_name": "aisha", + "is_activity": 0, + "topic_link": "" + } + ] + }, + "origin": { + "topic_info": { + "topic_details": [ + { + "topic_id": 7539944, + "topic_name": "哔哩哔哩漫画", + "is_activity": 0, + "topic_link": "" + }, + { + "topic_id": 148830, + "topic_name": "AISHA", + "is_activity": 1, + "topic_link": "https://www.bilibili.com/blackboard/dynamic/18159" + }, + { + "topic_id": 2514603, + "topic_name": "aisha", + "is_activity": 0, + "topic_link": "" + } + ] + }, + "relation": { + "status": 1, + "is_follow": 0, + "is_followed": 0 + }, + "show_tip": { + "del_tip": "要删除动态吗?" + } + }, + "emoji_info": { + "emoji_details": [ + { + "emoji_name": "[doge]", + "id": 26, + "package_id": 1, + "state": 0, + "type": 1, + "attr": 0, + "text": "[doge]", + "url": "https://i0.hdslb.com/bfs/emote/3087d273a78ccaff4bb1e9972e2ba2a7583c9f11.png", + "meta": { + "size": 1 + }, + "mtime": 1617293741 + } + ] + }, + "relation": { + "status": 1, + "is_follow": 0, + "is_followed": 0 + }, + "up_act_button": { + "report_title": "举报", + "founder_report_title": "举报(发起人)", + "top_title": "置顶", + "top_confirm_title": "确定将此动态置顶吗", + "top_cancel_title": "确定将此动态取消置顶吗" + }, + "show_tip": { + "del_tip": "要删除动态吗?" + } + } + }, + { + "desc": { + "uid": 1192711092, + "type": 1, + "rid": 517505230885402892, + "acl": 0, + "view": 2, + "repost": 0, + "comment": 0, + "like": 0, + "is_liked": 0, + "dynamic_id": 517505230886905525, + "timestamp": 1619329476, + "pre_dy_id": 517241610091321208, + "orig_dy_id": 517241610091321208, + "orig_type": 2, + "user_profile": { + "info": { + "uid": 1192711092, + "uname": "会发光的偶恰", + "face": "https://i0.hdslb.com/bfs/face/b85a508793bd96deec61e2491d60e68f10378395.jpg" + }, + "card": { + "official_verify": { + "type": -1, + "desc": "" + } + }, + "vip": { + "vipType": 0, + "vipDueDate": 0, + "vipStatus": 0, + "themeType": 0, + "label": { + "path": "", + "text": "", + "label_theme": "", + "text_color": "", + "bg_style": 0, + "bg_color": "", + "border_color": "" + }, + "avatar_subscript": 0, + "nickname_color": "", + "role": 0, + "avatar_subscript_url": "" + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "", + "image_enhance_frame": "" + }, + "rank": "10000", + "sign": "", + "level_info": { + "current_level": 3 + } + }, + "uid_type": 1, + "recommend_info": { + "is_attention": 0 + }, + "stype": 0, + "r_type": 1, + "inner_id": 0, + "topic_board": "C", + "topic_board_desc": "最新", + "status": 1, + "dynamic_id_str": "517505230886905525", + "pre_dy_id_str": "517241610091321208", + "orig_dy_id_str": "517241610091321208", + "rid_str": "517505230885402892", + "origin": { + "uid": 326499679, + "type": 2, + "rid": 131403515, + "acl": 1024, + "view": 1951519, + "repost": 16543, + "dynamic_id": 517241610091321208, + "timestamp": 1619268097, + "uid_type": 1, + "r_type": 1, + "status": 1, + "dynamic_id_str": "517241610091321208", + "pre_dy_id_str": "0", + "orig_dy_id_str": "0", + "rid_str": "131403515" + } + }, + "card": "{ \"user\": { \"uid\": 1192711092, \"uname\": \"会发光的偶恰\", \"face\": \"https:\\/\\/i0.hdslb.com\\/bfs\\/face\\/b85a508793bd96deec61e2491d60e68f10378395.jpg\" }, \"item\": { \"rp_id\": 517505230885402892, \"uid\": 1192711092, \"content\": \"我最喜欢这个了,我也想要#哔哩哔哩漫画#\", \"orig_dy_id\": 517241610091321208, \"pre_dy_id\": 517241610091321208, \"timestamp\": 1619329476, \"reply\": 0, \"orig_type\": 2 }, \"origin\": \"{\\\"item\\\":{\\\"at_control\\\":\\\"[{\\\\\\\"type\\\\\\\":2,\\\\\\\"location\\\\\\\":0,\\\\\\\"length\\\\\\\":0,\\\\\\\"data\\\\\\\":\\\\\\\"5\\\\\\\"}]\\\",\\\"category\\\":\\\"daily\\\",\\\"description\\\":\\\"​互动抽奖 【关+转】抽1位小伙伴送【哔哩哔哩小电视兔子包】~\\\\n【#哔哩哔哩漫画# 作品推荐】大量西幻少女漫爆更来啦———\\\\n[干杯] 即日起,《重生成为公爵家的丑女》《暴君的监护人是反派魔女》《姐姐捡回了男主》等大量西幻少女精品漫画爆更,追漫更有樱花立牌\\\\\\/玩偶等福利好礼相送!\\\\n[干杯] 快来哔哩哔哩漫画追漫吧~\\\",\\\"id\\\":131403515,\\\"is_fav\\\":0,\\\"pictures\\\":[{\\\"img_height\\\":1357,\\\"img_size\\\":1759.1650390625,\\\"img_src\\\":\\\"https:\\\\\\/\\\\\\/i0.hdslb.com\\\\\\/bfs\\\\\\/album\\\\\\/1ce565e7f36e0ae5a3809df21bb39aa2fe578a88.png\\\",\\\"img_tags\\\":null,\\\"img_width\\\":1080},{\\\"img_height\\\":1238,\\\"img_size\\\":832.51953125,\\\"img_src\\\":\\\"https:\\\\\\/\\\\\\/i0.hdslb.com\\\\\\/bfs\\\\\\/album\\\\\\/6df0150c77a7f42a5d31cce8bb006105a660dad9.png\\\",\\\"img_tags\\\":null,\\\"img_width\\\":1080},{\\\"img_height\\\":2193,\\\"img_size\\\":3424.060546875,\\\"img_src\\\":\\\"https:\\\\\\/\\\\\\/i0.hdslb.com\\\\\\/bfs\\\\\\/album\\\\\\/adce81c59436184b56d84e5394583d2ab491b2e6.png\\\",\\\"img_tags\\\":null,\\\"img_width\\\":1080},{\\\"img_height\\\":800,\\\"img_size\\\":166.1552734375,\\\"img_src\\\":\\\"https:\\\\\\/\\\\\\/i0.hdslb.com\\\\\\/bfs\\\\\\/album\\\\\\/9c4e8d6fc04d5a1f3df225d5967fb65c7a3f5f09.jpg\\\",\\\"img_tags\\\":null,\\\"img_width\\\":800}],\\\"pictures_count\\\":4,\\\"reply\\\":1003,\\\"role\\\":[],\\\"settings\\\":{\\\"copy_forbidden\\\":\\\"0\\\"},\\\"source\\\":[],\\\"title\\\":\\\"\\\",\\\"upload_time\\\":1619268097},\\\"user\\\":{\\\"head_url\\\":\\\"https:\\\\\\/\\\\\\/i1.hdslb.com\\\\\\/bfs\\\\\\/face\\\\\\/2254162161a60b528cfec449f3450409a81ebc37.jpg\\\",\\\"name\\\":\\\"哔哩哔哩漫画\\\",\\\"uid\\\":326499679,\\\"vip\\\":{\\\"avatar_subscript\\\":1,\\\"due_date\\\":1941033600000,\\\"label\\\":{\\\"label_theme\\\":\\\"ten_annual_vip\\\",\\\"path\\\":\\\"\\\",\\\"text\\\":\\\"十年大会员\\\"},\\\"nickname_color\\\":\\\"#FB7299\\\",\\\"status\\\":1,\\\"theme_type\\\":0,\\\"type\\\":2,\\\"vip_pay_type\\\":0}}}\", \"origin_extension\": { \"lott\": \"{\\\"callbackId\\\":10,\\\"lottery_id\\\":61382,\\\"lottery_time\\\":1620504000,\\\"title\\\":\\\"互动抽奖\\\"}\" }, \"origin_extend_json\": \"{\\\"ctrl\\\":[{\\\"data\\\":\\\"5\\\",\\\"length\\\":0,\\\"location\\\":0,\\\"type\\\":2}],\\\"from\\\":{\\\"emoji_type\\\":1,\\\"from\\\":\\\"\\\",\\\"up_close_comment\\\":0,\\\"verify\\\":{\\\"asw\\\":{\\\"fl\\\":15,\\\"nv\\\":1},\\\"cc\\\":{\\\"vf\\\":1},\\\"sw\\\":{\\\"fl\\\":15,\\\"nv\\\":1}}},\\\"like_icon\\\":{\\\"action\\\":\\\"\\\",\\\"action_url\\\":\\\"\\\",\\\"end\\\":\\\"\\\",\\\"end_url\\\":\\\"\\\",\\\"start\\\":\\\"\\\",\\\"start_url\\\":\\\"\\\"},\\\"lott\\\":{\\\"callbackId\\\":10,\\\"lottery_id\\\":61382,\\\"lottery_time\\\":1620504000,\\\"title\\\":\\\"互动抽奖\\\"},\\\"topic\\\":{\\\"is_attach_topic\\\":1}}\", \"origin_user\": { \"info\": { \"uid\": 326499679, \"uname\": \"哔哩哔哩漫画\", \"face\": \"https:\\/\\/i1.hdslb.com\\/bfs\\/face\\/2254162161a60b528cfec449f3450409a81ebc37.jpg\" }, \"card\": { \"official_verify\": { \"type\": 1, \"desc\": \"哔哩哔哩漫画官方账号\" } }, \"vip\": { \"vipType\": 2, \"vipDueDate\": 1941033600000, \"vipStatus\": 1, \"themeType\": 0, \"label\": { \"path\": \"\", \"text\": \"十年大会员\", \"label_theme\": \"ten_annual_vip\", \"text_color\": \"#FFFFFF\", \"bg_style\": 1, \"bg_color\": \"#FB7299\", \"border_color\": \"\" }, \"avatar_subscript\": 1, \"nickname_color\": \"#FB7299\", \"role\": 7, \"avatar_subscript_url\": \"https:\\/\\/i0.hdslb.com\\/bfs\\/vip\\/icon_Certification_big_member_22_3x.png\" }, \"pendant\": { \"pid\": 0, \"name\": \"\", \"image\": \"\", \"expire\": 0, \"image_enhance\": \"\", \"image_enhance_frame\": \"\" }, \"rank\": \"10000\", \"sign\": \"↑ 【关注漫画姬】就送【漫读券5张】,当日或次日登录哔哩哔哩漫画APP即可领取,快来关注领券吧(°∀°)ノ ↑\", \"level_info\": { \"current_level\": 6 } } }", + "extend_json": "{\"from\":{\"emoji_type\":1,\"from\":\"create.comment\",\"up_close_comment\":0},\"like_icon\":{\"action\":\"\",\"action_url\":\"\",\"end\":\"\",\"end_url\":\"\",\"start\":\"\",\"start_url\":\"\"},\"topic\":{\"is_attach_topic\":1}}", + "display": { + "topic_info": { + "topic_details": [ + { + "topic_id": 7539944, + "topic_name": "哔哩哔哩漫画", + "is_activity": 0, + "topic_link": "" + } + ] + }, + "origin": { + "topic_info": { + "topic_details": [ + { + "topic_id": 7539944, + "topic_name": "哔哩哔哩漫画", + "is_activity": 0, + "topic_link": "" + } + ] + }, + "emoji_info": { + "emoji_details": [ + { + "emoji_name": "[干杯]", + "id": 1949, + "package_id": 1, + "state": 0, + "type": 1, + "attr": 0, + "text": "[干杯]", + "url": "https://i0.hdslb.com/bfs/emote/8da12d5f55a2c7e9778dcc05b40571979fe208e6.png", + "meta": { + "size": 1 + }, + "mtime": 1597738918 + } + ] + }, + "relation": { + "status": 1, + "is_follow": 0, + "is_followed": 0 + }, + "show_tip": { + "del_tip": "要删除动态吗?" + } + }, + "relation": { + "status": 1, + "is_follow": 0, + "is_followed": 0 + }, + "up_act_button": { + "report_title": "举报", + "founder_report_title": "举报(发起人)", + "top_title": "置顶", + "top_confirm_title": "确定将此动态置顶吗", + "top_cancel_title": "确定将此动态取消置顶吗" + }, + "show_tip": { + "del_tip": "要删除动态吗?" + } + } + }, + { + "desc": { + "uid": 1365116, + "type": 1, + "rid": 517503525787575777, + "acl": 0, + "view": 1, + "repost": 0, + "comment": 0, + "like": 0, + "is_liked": 0, + "dynamic_id": 517503525779637979, + "timestamp": 1619329079, + "pre_dy_id": 517241610091321208, + "orig_dy_id": 517241610091321208, + "orig_type": 2, + "user_profile": { + "info": { + "uid": 1365116, + "uname": "濑户的海参", + "face": "https://i2.hdslb.com/bfs/face/8426c61be9c3ccd2296d080a54691c3bed5f2f9f.jpg" + }, + "card": { + "official_verify": { + "type": -1, + "desc": "" + } + }, + "vip": { + "vipType": 0, + "vipDueDate": 0, + "vipStatus": 0, + "themeType": 0, + "label": { + "path": "", + "text": "", + "label_theme": "", + "text_color": "", + "bg_style": 0, + "bg_color": "", + "border_color": "" + }, + "avatar_subscript": 0, + "nickname_color": "", + "role": 0, + "avatar_subscript_url": "" + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "", + "image_enhance_frame": "" + }, + "rank": "10000", + "sign": "", + "level_info": { + "current_level": 5 + } + }, + "uid_type": 1, + "recommend_info": { + "is_attention": 0 + }, + "stype": 0, + "r_type": 1, + "inner_id": 0, + "topic_board": "C", + "topic_board_desc": "最新", + "status": 1, + "dynamic_id_str": "517503525779637979", + "pre_dy_id_str": "517241610091321208", + "orig_dy_id_str": "517241610091321208", + "rid_str": "517503525787575777", + "origin": { + "uid": 326499679, + "type": 2, + "rid": 131403515, + "acl": 1024, + "view": 1951519, + "repost": 16543, + "comment": 1003, + "like": 6950, + "is_liked": 0, + "dynamic_id": 517241610091321208, + "timestamp": 1619268097, + "user_profile": { + "info": { + "uid": 326499679, + "uname": "哔哩哔哩漫画", + "face": "https://i1.hdslb.com/bfs/face/2254162161a60b528cfec449f3450409a81ebc37.jpg" + }, + "card": { + "official_verify": { + "type": 1, + "desc": "哔哩哔哩漫画官方账号" + } + }, + "vip": { + "vipType": 2, + "vipDueDate": 1941033600000, + "vipStatus": 1, + "themeType": 0, + "label": { + "path": "", + "text": "十年大会员", + "label_theme": "ten_annual_vip", + "text_color": "#FFFFFF", + "bg_style": 1, + "bg_color": "#FB7299", + "border_color": "" + }, + "avatar_subscript": 1, + "nickname_color": "#FB7299", + "role": 7, + "avatar_subscript_url": "https://i0.hdslb.com/bfs/vip/icon_Certification_big_member_22_3x.png" + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "", + "image_enhance_frame": "" + }, + "rank": "10000", + "sign": "↑ 【关注漫画姬】就送【漫读券5张】,当日或次日登录哔哩哔哩漫画APP即可领取,快来关注领券吧(°∀°)ノ ↑", + "level_info": { + "current_level": 6 + } + }, + "uid_type": 1, + "r_type": 1, + "status": 1, + "dynamic_id_str": "517241610091321208", + "pre_dy_id_str": "0", + "orig_dy_id_str": "0", + "rid_str": "131403515" + } + }, + "card": "{ \"user\": { \"uid\": 1365116, \"uname\": \"濑户的海参\", \"face\": \"https:\\/\\/i2.hdslb.com\\/bfs\\/face\\/8426c61be9c3ccd2296d080a54691c3bed5f2f9f.jpg\" }, \"item\": { \"rp_id\": 517503525787575777, \"uid\": 1365116, \"content\": \"嗯哼#哔哩哔哩漫画#\", \"orig_dy_id\": 517241610091321208, \"pre_dy_id\": 517241610091321208, \"timestamp\": 1619329079, \"reply\": 0, \"orig_type\": 2 }, \"origin\": \"{\\\"item\\\":{\\\"at_control\\\":\\\"[{\\\\\\\"type\\\\\\\":2,\\\\\\\"location\\\\\\\":0,\\\\\\\"length\\\\\\\":0,\\\\\\\"data\\\\\\\":\\\\\\\"5\\\\\\\"}]\\\",\\\"category\\\":\\\"daily\\\",\\\"description\\\":\\\"​互动抽奖 【关+转】抽1位小伙伴送【哔哩哔哩小电视兔子包】~\\\\n【#哔哩哔哩漫画# 作品推荐】大量西幻少女漫爆更来啦———\\\\n[干杯] 即日起,《重生成为公爵家的丑女》《暴君的监护人是反派魔女》《姐姐捡回了男主》等大量西幻少女精品漫画爆更,追漫更有樱花立牌\\\\\\/玩偶等福利好礼相送!\\\\n[干杯] 快来哔哩哔哩漫画追漫吧~\\\",\\\"id\\\":131403515,\\\"is_fav\\\":0,\\\"pictures\\\":[{\\\"img_height\\\":1357,\\\"img_size\\\":1759.1650390625,\\\"img_src\\\":\\\"https:\\\\\\/\\\\\\/i0.hdslb.com\\\\\\/bfs\\\\\\/album\\\\\\/1ce565e7f36e0ae5a3809df21bb39aa2fe578a88.png\\\",\\\"img_tags\\\":null,\\\"img_width\\\":1080},{\\\"img_height\\\":1238,\\\"img_size\\\":832.51953125,\\\"img_src\\\":\\\"https:\\\\\\/\\\\\\/i0.hdslb.com\\\\\\/bfs\\\\\\/album\\\\\\/6df0150c77a7f42a5d31cce8bb006105a660dad9.png\\\",\\\"img_tags\\\":null,\\\"img_width\\\":1080},{\\\"img_height\\\":2193,\\\"img_size\\\":3424.060546875,\\\"img_src\\\":\\\"https:\\\\\\/\\\\\\/i0.hdslb.com\\\\\\/bfs\\\\\\/album\\\\\\/adce81c59436184b56d84e5394583d2ab491b2e6.png\\\",\\\"img_tags\\\":null,\\\"img_width\\\":1080},{\\\"img_height\\\":800,\\\"img_size\\\":166.1552734375,\\\"img_src\\\":\\\"https:\\\\\\/\\\\\\/i0.hdslb.com\\\\\\/bfs\\\\\\/album\\\\\\/9c4e8d6fc04d5a1f3df225d5967fb65c7a3f5f09.jpg\\\",\\\"img_tags\\\":null,\\\"img_width\\\":800}],\\\"pictures_count\\\":4,\\\"reply\\\":1003,\\\"role\\\":[],\\\"settings\\\":{\\\"copy_forbidden\\\":\\\"0\\\"},\\\"source\\\":[],\\\"title\\\":\\\"\\\",\\\"upload_time\\\":1619268097},\\\"user\\\":{\\\"head_url\\\":\\\"https:\\\\\\/\\\\\\/i1.hdslb.com\\\\\\/bfs\\\\\\/face\\\\\\/2254162161a60b528cfec449f3450409a81ebc37.jpg\\\",\\\"name\\\":\\\"哔哩哔哩漫画\\\",\\\"uid\\\":326499679,\\\"vip\\\":{\\\"avatar_subscript\\\":1,\\\"due_date\\\":1941033600000,\\\"label\\\":{\\\"label_theme\\\":\\\"ten_annual_vip\\\",\\\"path\\\":\\\"\\\",\\\"text\\\":\\\"十年大会员\\\"},\\\"nickname_color\\\":\\\"#FB7299\\\",\\\"status\\\":1,\\\"theme_type\\\":0,\\\"type\\\":2,\\\"vip_pay_type\\\":0}}}\", \"origin_extension\": { \"lott\": \"{\\\"callbackId\\\":10,\\\"lottery_id\\\":61382,\\\"lottery_time\\\":1620504000,\\\"title\\\":\\\"互动抽奖\\\"}\" }, \"origin_extend_json\": \"{\\\"ctrl\\\":[{\\\"data\\\":\\\"5\\\",\\\"length\\\":0,\\\"location\\\":0,\\\"type\\\":2}],\\\"from\\\":{\\\"emoji_type\\\":1,\\\"from\\\":\\\"\\\",\\\"up_close_comment\\\":0,\\\"verify\\\":{\\\"asw\\\":{\\\"fl\\\":15,\\\"nv\\\":1},\\\"cc\\\":{\\\"vf\\\":1},\\\"sw\\\":{\\\"fl\\\":15,\\\"nv\\\":1}}},\\\"like_icon\\\":{\\\"action\\\":\\\"\\\",\\\"action_url\\\":\\\"\\\",\\\"end\\\":\\\"\\\",\\\"end_url\\\":\\\"\\\",\\\"start\\\":\\\"\\\",\\\"start_url\\\":\\\"\\\"},\\\"lott\\\":{\\\"callbackId\\\":10,\\\"lottery_id\\\":61382,\\\"lottery_time\\\":1620504000,\\\"title\\\":\\\"互动抽奖\\\"},\\\"topic\\\":{\\\"is_attach_topic\\\":1}}\", \"origin_user\": { \"info\": { \"uid\": 326499679, \"uname\": \"哔哩哔哩漫画\", \"face\": \"https:\\/\\/i1.hdslb.com\\/bfs\\/face\\/2254162161a60b528cfec449f3450409a81ebc37.jpg\" }, \"card\": { \"official_verify\": { \"type\": 1, \"desc\": \"哔哩哔哩漫画官方账号\" } }, \"vip\": { \"vipType\": 2, \"vipDueDate\": 1941033600000, \"vipStatus\": 1, \"themeType\": 0, \"label\": { \"path\": \"\", \"text\": \"十年大会员\", \"label_theme\": \"ten_annual_vip\", \"text_color\": \"#FFFFFF\", \"bg_style\": 1, \"bg_color\": \"#FB7299\", \"border_color\": \"\" }, \"avatar_subscript\": 1, \"nickname_color\": \"#FB7299\", \"role\": 7, \"avatar_subscript_url\": \"https:\\/\\/i0.hdslb.com\\/bfs\\/vip\\/icon_Certification_big_member_22_3x.png\" }, \"pendant\": { \"pid\": 0, \"name\": \"\", \"image\": \"\", \"expire\": 0, \"image_enhance\": \"\", \"image_enhance_frame\": \"\" }, \"rank\": \"10000\", \"sign\": \"↑ 【关注漫画姬】就送【漫读券5张】,当日或次日登录哔哩哔哩漫画APP即可领取,快来关注领券吧(°∀°)ノ ↑\", \"level_info\": { \"current_level\": 6 } } }", + "extend_json": "{\"from\":{\"emoji_type\":1,\"from\":\"create.comment\",\"up_close_comment\":0},\"like_icon\":{\"action\":\"\",\"action_url\":\"\",\"end\":\"\",\"end_url\":\"\",\"start\":\"\",\"start_url\":\"\"},\"topic\":{\"is_attach_topic\":1}}", + "display": { + "topic_info": { + "topic_details": [ + { + "topic_id": 7539944, + "topic_name": "哔哩哔哩漫画", + "is_activity": 0, + "topic_link": "" + } + ] + }, + "origin": { + "topic_info": { + "topic_details": [ + { + "topic_id": 7539944, + "topic_name": "哔哩哔哩漫画", + "is_activity": 0, + "topic_link": "" + } + ] + }, + "emoji_info": { + "emoji_details": [ + { + "emoji_name": "[干杯]", + "id": 1949, + "package_id": 1, + "state": 0, + "type": 1, + "attr": 0, + "text": "[干杯]", + "url": "https://i0.hdslb.com/bfs/emote/8da12d5f55a2c7e9778dcc05b40571979fe208e6.png", + "meta": { + "size": 1 + }, + "mtime": 1597738918 + } + ] + }, + "relation": { + "status": 1, + "is_follow": 0, + "is_followed": 0 + }, + "show_tip": { + "del_tip": "要删除动态吗?" + } + }, + "relation": { + "status": 1, + "is_follow": 0, + "is_followed": 0 + }, + "up_act_button": { + "report_title": "举报", + "founder_report_title": "举报(发起人)", + "top_title": "置顶", + "top_confirm_title": "确定将此动态置顶吗", + "top_cancel_title": "确定将此动态取消置顶吗" + }, + "show_tip": { + "del_tip": "要删除动态吗?" + } + } + }, + { + "desc": { + "uid": 326499679, + "type": 2, + "rid": 131489076, + "acl": 0, + "view": 1385233, + "repost": 31, + "comment": 23, + "like": 3737, + "is_liked": 0, + "dynamic_id": 517501494260096644, + "timestamp": 1619328606, + "pre_dy_id": 0, + "orig_dy_id": 0, + "orig_type": 0, + "user_profile": { + "info": { + "uid": 326499679, + "uname": "哔哩哔哩漫画", + "face": "https://i1.hdslb.com/bfs/face/2254162161a60b528cfec449f3450409a81ebc37.jpg" + }, + "card": { + "official_verify": { + "type": 1, + "desc": "哔哩哔哩漫画官方账号" + } + }, + "vip": { + "vipType": 2, + "vipDueDate": 1941033600000, + "vipStatus": 1, + "themeType": 0, + "label": { + "path": "", + "text": "十年大会员", + "label_theme": "ten_annual_vip", + "text_color": "#FFFFFF", + "bg_style": 1, + "bg_color": "#FB7299", + "border_color": "" + }, + "avatar_subscript": 1, + "nickname_color": "#FB7299", + "role": 7, + "avatar_subscript_url": "https://i0.hdslb.com/bfs/vip/icon_Certification_big_member_22_3x.png" + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "", + "image_enhance_frame": "" + }, + "rank": "10000", + "sign": "↑ 【关注漫画姬】就送【漫读券5张】,当日或次日登录哔哩哔哩漫画APP即可领取,快来关注领券吧(°∀°)ノ ↑", + "level_info": { + "current_level": 6 + } + }, + "uid_type": 1, + "recommend_info": { + "is_attention": 0 + }, + "stype": 0, + "r_type": 1, + "inner_id": 0, + "topic_board": "C", + "topic_board_desc": "最新", + "status": 1, + "dynamic_id_str": "517501494260096644", + "pre_dy_id_str": "0", + "orig_dy_id_str": "0", + "rid_str": "131489076" + }, + "card": "{\"item\":{\"at_control\":\"\",\"category\":\"daily\",\"description\":\"【#哔哩哔哩漫画# 限免活动+周边路透】✿ヽ(°▽°)ノ✿ \\n《#天宝伏妖录#》漫画第二卷将在【4月25日至5月2日】限时免费1周[打call][打call],感谢大家一直以来的支持[W-哈哈]!精彩剧情,不容错过!\\n同时之前《#天宝伏妖录#》第三卷活动售卖的周边近期在准备开补款啦~\\n小伙伴们先看看限定周边的实物图透叭(P1-P8)[打call]! 新卷也一直在筹备中,新卷封面同时奉上(P9)! \\n【追漫传送】:https:\\/\\/manga.bilibili.com\\/m\\/detail\\/mc27592 \",\"id\":131489076,\"is_fav\":0,\"pictures\":[{\"img_height\":5046,\"img_size\":16654.3876953125,\"img_src\":\"https:\\/\\/i0.hdslb.com\\/bfs\\/album\\/6bcd7a96fe7bc616a7ea334319b58a3ab451cda2.jpg\",\"img_tags\":null,\"img_width\":6728},{\"img_height\":5046,\"img_size\":15713.2236328125,\"img_src\":\"https:\\/\\/i0.hdslb.com\\/bfs\\/album\\/41e9e8ed2f181ce84adbb1175dcfc47b6b32d270.jpg\",\"img_tags\":null,\"img_width\":6728},{\"img_height\":5136,\"img_size\":20368.2822265625,\"img_src\":\"https:\\/\\/i0.hdslb.com\\/bfs\\/album\\/81936f0dacc1fa63264d18cdba738b3582562cdd.jpg\",\"img_tags\":null,\"img_width\":7705},{\"img_height\":4427,\"img_size\":15909.310546875,\"img_src\":\"https:\\/\\/i0.hdslb.com\\/bfs\\/album\\/5116024add807a033cf63395683c5b6ade28fbcf.jpg\",\"img_tags\":null,\"img_width\":6641},{\"img_height\":5136,\"img_size\":20431.3994140625,\"img_src\":\"https:\\/\\/i0.hdslb.com\\/bfs\\/album\\/61155f325c5a862b0dcdb1dacc95f252ac768a4e.jpg\",\"img_tags\":null,\"img_width\":7705},{\"img_height\":5261,\"img_size\":19335.5029296875,\"img_src\":\"https:\\/\\/i0.hdslb.com\\/bfs\\/album\\/6f5a7241d8f0093952edf16195b4d0aecfa2c6cd.jpg\",\"img_tags\":null,\"img_width\":7014},{\"img_height\":1408,\"img_size\":4784.3037109375,\"img_src\":\"https:\\/\\/i0.hdslb.com\\/bfs\\/album\\/0350c791822a980d72450da226b1d61fa7b68c8f.png\",\"img_tags\":null,\"img_width\":1878},{\"img_height\":1408,\"img_size\":4614.8251953125,\"img_src\":\"https:\\/\\/i0.hdslb.com\\/bfs\\/album\\/271187137e9973d07f01763a9a41b9b7f25f68fd.png\",\"img_tags\":null,\"img_width\":1878},{\"img_height\":3508,\"img_size\":1452.4482421875,\"img_src\":\"https:\\/\\/i0.hdslb.com\\/bfs\\/album\\/f818bb197c7cc914ed4c921a6f7488f87ca15faf.jpg\",\"img_tags\":null,\"img_width\":2480}],\"pictures_count\":9,\"reply\":23,\"role\":[],\"settings\":{\"copy_forbidden\":\"0\"},\"source\":[],\"title\":\"\",\"upload_time\":1619328606},\"user\":{\"head_url\":\"https:\\/\\/i1.hdslb.com\\/bfs\\/face\\/2254162161a60b528cfec449f3450409a81ebc37.jpg\",\"name\":\"哔哩哔哩漫画\",\"uid\":326499679,\"vip\":{\"avatar_subscript\":1,\"due_date\":1941033600000,\"label\":{\"label_theme\":\"ten_annual_vip\",\"path\":\"\",\"text\":\"十年大会员\"},\"nickname_color\":\"#FB7299\",\"status\":1,\"theme_type\":0,\"type\":2,\"vip_pay_type\":0}}}", + "extend_json": "{\"from\":{\"emoji_type\":1,\"from\":\"timer.publish\",\"up_close_comment\":0,\"verify\":{\"cc\":{\"nv\":1}}},\"like_icon\":{\"action\":\"\",\"action_url\":\"\",\"end\":\"\",\"end_url\":\"\",\"start\":\"\",\"start_url\":\"\"},\"topic\":{\"is_attach_topic\":1}}", + "display": { + "topic_info": { + "topic_details": [ + { + "topic_id": 7539944, + "topic_name": "哔哩哔哩漫画", + "is_activity": 0, + "topic_link": "" + }, + { + "topic_id": 3812656, + "topic_name": "天宝伏妖录", + "is_activity": 1, + "topic_link": "https://www.bilibili.com/blackboard/dynamic/62601" + } + ] + }, + "emoji_info": { + "emoji_details": [ + { + "emoji_name": "[W-哈哈]", + "id": 3045, + "package_id": 1, + "state": 0, + "type": 1, + "attr": 0, + "text": "[W-哈哈]", + "url": "https://i0.hdslb.com/bfs/emote/83d527303c8f62f494e6971c48836487e7d87b1b.png", + "meta": { + "size": 1 + }, + "mtime": 1608785082 + }, + { + "emoji_name": "[打call]", + "id": 510, + "package_id": 1, + "state": 0, + "type": 1, + "attr": 0, + "text": "[打call]", + "url": "https://i0.hdslb.com/bfs/emote/431432c43da3ee5aab5b0e4f8931953e649e9975.png", + "meta": { + "size": 1 + }, + "mtime": 1617293741 + } + ] + }, + "relation": { + "status": 1, + "is_follow": 0, + "is_followed": 0 + }, + "up_act_button": { + "report_title": "举报", + "founder_report_title": "举报(发起人)", + "top_title": "置顶", + "top_confirm_title": "确定将此动态置顶吗", + "top_cancel_title": "确定将此动态取消置顶吗" + }, + "show_tip": { + "del_tip": "要删除动态吗?" + } + } + }, + { + "desc": { + "uid": 1902548007, + "type": 2, + "rid": 131480564, + "acl": 0, + "view": 1056, + "repost": 0, + "comment": 0, + "like": 16, + "is_liked": 0, + "dynamic_id": 517482725259184156, + "timestamp": 1619324236, + "pre_dy_id": 0, + "orig_dy_id": 0, + "orig_type": 0, + "user_profile": { + "info": { + "uid": 1902548007, + "uname": "BV社", + "face": "https://i0.hdslb.com/bfs/face/48f8e6afa688e37b9f1e3721a86bea8ce02688dc.jpg" + }, + "card": { + "official_verify": { + "type": 1, + "desc": "BV社官方账号" + } + }, + "vip": { + "vipType": 0, + "vipDueDate": 0, + "vipStatus": 0, + "themeType": 0, + "label": { + "path": "", + "text": "", + "label_theme": "", + "text_color": "", + "bg_style": 0, + "bg_color": "", + "border_color": "" + }, + "avatar_subscript": 0, + "nickname_color": "", + "role": 0, + "avatar_subscript_url": "" + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "", + "image_enhance_frame": "" + }, + "rank": "10000", + "sign": "Vomic,让你爱的漫画更动听", + "level_info": { + "current_level": 2 + } + }, + "uid_type": 1, + "recommend_info": { + "is_attention": 0 + }, + "stype": 0, + "r_type": 1, + "inner_id": 0, + "topic_board": "C", + "topic_board_desc": "最新", + "status": 1, + "dynamic_id_str": "517482725259184156", + "pre_dy_id_str": "0", + "orig_dy_id_str": "0", + "rid_str": "131480564" + }, + "card": "{\"item\":{\"at_control\":\"[{\\\"location\\\":122,\\\"type\\\":1,\\\"length\\\":8,\\\"data\\\":\\\"326499679\\\"},{\\\"location\\\":133,\\\"type\\\":1,\\\"length\\\":5,\\\"data\\\":\\\"1902548007\\\"},{\\\"location\\\":141,\\\"type\\\":1,\\\"length\\\":9,\\\"data\\\":\\\"386135764\\\"},{\\\"location\\\":153,\\\"type\\\":1,\\\"length\\\":6,\\\"data\\\":\\\"1740792\\\"}]\",\"category\":\"daily\",\"description\":\"#哔哩哔哩漫画#独家\\n“女鬼”找上门,却是为了救人?\\n“养尸地?那是啥?里面有宝贝嘛?”\\n“有凶尸。”\\n哟,父子俩这是什么情况?\\n惊奇 #Vomic##幽冥诡匠#第五集正式上线!每周日更新!更多精彩,小剧场,花絮,尽在哔哩哔哩漫画APP\\n出品:@哔哩哔哩漫画\\n策划:@BV社\\n制作:@回声漫响工作室\\n录制:@音熊联萌 \",\"id\":131480564,\"is_fav\":0,\"pictures\":[{\"img_height\":2400,\"img_size\":2852.115234375,\"img_src\":\"https:\\/\\/i0.hdslb.com\\/bfs\\/album\\/cb7632509c8cb8a7703f5ab289320b26a07ec62e.jpg\",\"img_tags\":null,\"img_width\":2400}],\"pictures_count\":1,\"reply\":0,\"role\":[],\"settings\":{\"copy_forbidden\":\"0\"},\"source\":[],\"title\":\"\",\"upload_time\":1619324236},\"user\":{\"head_url\":\"https:\\/\\/i0.hdslb.com\\/bfs\\/face\\/48f8e6afa688e37b9f1e3721a86bea8ce02688dc.jpg\",\"name\":\"BV社\",\"uid\":1902548007,\"vip\":{\"avatar_subscript\":0,\"due_date\":0,\"label\":{\"label_theme\":\"\",\"path\":\"\",\"text\":\"\"},\"nickname_color\":\"\",\"status\":0,\"theme_type\":0,\"type\":0,\"vip_pay_type\":0}}}", + "extend_json": "{\"ctrl\":[{\"data\":\"326499679\",\"length\":8,\"location\":122,\"type\":1},{\"data\":\"1902548007\",\"length\":5,\"location\":133,\"type\":1},{\"data\":\"386135764\",\"length\":9,\"location\":141,\"type\":1},{\"data\":\"1740792\",\"length\":6,\"location\":153,\"type\":1}],\"from\":{\"emoji_type\":1,\"from\":\"create.dynamic.web\",\"up_close_comment\":0,\"verify\":{\"asw\":{\"fl\":15,\"nv\":1},\"sw\":{\"fl\":15,\"nv\":1}}},\"like_icon\":{\"action\":\"\",\"action_url\":\"\",\"end\":\"\",\"end_url\":\"\",\"start\":\"\",\"start_url\":\"\"},\"topic\":{\"is_attach_topic\":1}}", + "display": { + "topic_info": { + "topic_details": [ + { + "topic_id": 7539944, + "topic_name": "哔哩哔哩漫画", + "is_activity": 0, + "topic_link": "" + }, + { + "topic_id": 3208432, + "topic_name": "Vomic", + "is_activity": 1, + "topic_link": "https://www.bilibili.com/blackboard/dynamic/106426" + }, + { + "topic_id": 7128092, + "topic_name": "幽冥诡匠", + "is_activity": 1, + "topic_link": "https://www.bilibili.com/blackboard/dynamic/42527" + }, + { + "topic_id": 37542, + "topic_name": "VOMIC", + "is_activity": 1, + "topic_link": "https://www.bilibili.com/blackboard/dynamic/106283" + }, + { + "topic_id": 8972604, + "topic_name": "vomic", + "is_activity": 1, + "topic_link": "https://www.bilibili.com/blackboard/dynamic/106766" + } + ] + }, + "relation": { + "status": 1, + "is_follow": 0, + "is_followed": 0 + }, + "up_act_button": { + "report_title": "举报", + "founder_report_title": "举报(发起人)", + "top_title": "置顶", + "top_confirm_title": "确定将此动态置顶吗", + "top_cancel_title": "确定将此动态取消置顶吗" + }, + "show_tip": { + "del_tip": "要删除动态吗?" + } + } + }, + { + "desc": { + "uid": 255495142, + "type": 1, + "rid": 517480856950088884, + "acl": 0, + "view": 331, + "repost": 0, + "comment": 0, + "like": 0, + "is_liked": 0, + "dynamic_id": 517480856947349138, + "timestamp": 1619323801, + "pre_dy_id": 517479366596833835, + "orig_dy_id": 517479366596833835, + "orig_type": 2, + "user_profile": { + "info": { + "uid": 255495142, + "uname": "坐怀不乱登徒子", + "face": "https://i1.hdslb.com/bfs/face/fa18d118f6c58da704400909743fb895c4c47627.jpg" + }, + "card": { + "official_verify": { + "type": -1, + "desc": "" + } + }, + "vip": { + "vipType": 2, + "vipDueDate": 1626451200000, + "vipStatus": 1, + "themeType": 0, + "label": { + "path": "", + "text": "年度大会员", + "label_theme": "annual_vip", + "text_color": "#FFFFFF", + "bg_style": 1, + "bg_color": "#FB7299", + "border_color": "" + }, + "avatar_subscript": 1, + "nickname_color": "#FB7299", + "role": 3, + "avatar_subscript_url": "https://i0.hdslb.com/bfs/vip/icon_Certification_big_member_22_3x.png" + }, + "pendant": { + "pid": 204, + "name": "至高守护", + "image": "https://i1.hdslb.com/bfs/face/88162662c23c2768c9e9e5c25017375685e83798.png", + "expire": 0, + "image_enhance": "https://i1.hdslb.com/bfs/face/88162662c23c2768c9e9e5c25017375685e83798.png", + "image_enhance_frame": "" + }, + "rank": "10000", + "sign": "", + "level_info": { + "current_level": 5 + } + }, + "uid_type": 1, + "recommend_info": { + "is_attention": 0 + }, + "stype": 0, + "r_type": 1, + "inner_id": 0, + "topic_board": "C", + "topic_board_desc": "最新", + "status": 1, + "dynamic_id_str": "517480856947349138", + "pre_dy_id_str": "517479366596833835", + "orig_dy_id_str": "517479366596833835", + "rid_str": "517480856950088884", + "origin": { + "uid": 326499679, + "type": 2, + "rid": 131479206, + "acl": 1024, + "view": 1379492, + "repost": 11233, + "comment": 573, + "like": 6337, + "is_liked": 0, + "dynamic_id": 517479366596833835, + "timestamp": 1619323454, + "user_profile": { + "info": { + "uid": 326499679, + "uname": "哔哩哔哩漫画", + "face": "https://i1.hdslb.com/bfs/face/2254162161a60b528cfec449f3450409a81ebc37.jpg" + }, + "card": { + "official_verify": { + "type": 1, + "desc": "哔哩哔哩漫画官方账号" + } + }, + "vip": { + "vipType": 2, + "vipDueDate": 1941033600000, + "vipStatus": 1, + "themeType": 0, + "label": { + "path": "", + "text": "十年大会员", + "label_theme": "ten_annual_vip", + "text_color": "#FFFFFF", + "bg_style": 1, + "bg_color": "#FB7299", + "border_color": "" + }, + "avatar_subscript": 1, + "nickname_color": "#FB7299", + "role": 7, + "avatar_subscript_url": "https://i0.hdslb.com/bfs/vip/icon_Certification_big_member_22_3x.png" + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "", + "image_enhance_frame": "" + }, + "rank": "10000", + "sign": "↑ 【关注漫画姬】就送【漫读券5张】,当日或次日登录哔哩哔哩漫画APP即可领取,快来关注领券吧(°∀°)ノ ↑", + "level_info": { + "current_level": 6 + } + }, + "uid_type": 1, + "r_type": 1, + "status": 1, + "dynamic_id_str": "517479366596833835", + "pre_dy_id_str": "0", + "orig_dy_id_str": "0", + "rid_str": "131479206" + } + }, + "card": "{ \"user\": { \"uid\": 255495142, \"uname\": \"坐怀不乱登徒子\", \"face\": \"https:\\/\\/i1.hdslb.com\\/bfs\\/face\\/fa18d118f6c58da704400909743fb895c4c47627.jpg\" }, \"item\": { \"rp_id\": 517480856950088884, \"uid\": 255495142, \"content\": \"[doge]#哔哩哔哩漫画#,#AISHA#\", \"orig_dy_id\": 517479366596833835, \"pre_dy_id\": 517479366596833835, \"timestamp\": 1619323801, \"reply\": 0, \"orig_type\": 2 }, \"origin\": \"{\\\"item\\\":{\\\"at_control\\\":\\\"[{\\\\\\\"data\\\\\\\":\\\\\\\"5\\\\\\\",\\\\\\\"length\\\\\\\":0,\\\\\\\"location\\\\\\\":0,\\\\\\\"type\\\\\\\":2},{\\\\\\\"location\\\\\\\":19,\\\\\\\"type\\\\\\\":1,\\\\\\\"length\\\\\\\":8,\\\\\\\"data\\\\\\\":\\\\\\\"1425490690\\\\\\\"}]\\\",\\\"category\\\":\\\"daily\\\",\\\"description\\\":\\\"​互动抽奖 关+转,抽3位幸运小伙伴送@漫画家法吉特 【《逆光》画集作者签名版】~\\\\n #哔哩哔哩漫画#重磅安利之《#AISHA#》\\\\n当当当当!剧情党福音~\\\\n答题就有机会赢得礼物?还有法吉特太太亲签精美画集?\\\\n活动入口→https:\\\\\\/\\\\\\/www.bilibili.com\\\\\\/blackboard\\\\\\/topic\\\\\\/activity-oPISh007wv.html\\\\n\\\\n你以为这样就结束了了吗?\\\\nNONONO~\\\\n法吉特老师首次出版个人作品集《逆光》~商城4月25日0点首发开售!\\\\n有法吉特老师签名版掉落哦!随书额外附赠专属书签特典!\\\\n活动指路:哔哩哔哩漫画APP-我的-商城-banner\\\",\\\"id\\\":131479206,\\\"is_fav\\\":0,\\\"pictures\\\":[{\\\"img_height\\\":782,\\\"img_size\\\":1097.2451171875,\\\"img_src\\\":\\\"https:\\\\\\/\\\\\\/i0.hdslb.com\\\\\\/bfs\\\\\\/album\\\\\\/8965a784f77e2545f4f2f168df4f417ed3ace818.png\\\",\\\"img_tags\\\":null,\\\"img_width\\\":750}],\\\"pictures_count\\\":1,\\\"reply\\\":573,\\\"role\\\":[],\\\"settings\\\":{\\\"copy_forbidden\\\":\\\"0\\\"},\\\"source\\\":[],\\\"title\\\":\\\"\\\",\\\"upload_time\\\":1619323454},\\\"user\\\":{\\\"head_url\\\":\\\"https:\\\\\\/\\\\\\/i1.hdslb.com\\\\\\/bfs\\\\\\/face\\\\\\/2254162161a60b528cfec449f3450409a81ebc37.jpg\\\",\\\"name\\\":\\\"哔哩哔哩漫画\\\",\\\"uid\\\":326499679,\\\"vip\\\":{\\\"avatar_subscript\\\":1,\\\"due_date\\\":1941033600000,\\\"label\\\":{\\\"label_theme\\\":\\\"ten_annual_vip\\\",\\\"path\\\":\\\"\\\",\\\"text\\\":\\\"十年大会员\\\"},\\\"nickname_color\\\":\\\"#FB7299\\\",\\\"status\\\":1,\\\"theme_type\\\":0,\\\"type\\\":2,\\\"vip_pay_type\\\":0}}}\", \"origin_extension\": { \"lott\": \"{\\\"lottery_id\\\":61398}\" }, \"origin_extend_json\": \"{\\\"ctrl\\\":[{\\\"data\\\":\\\"5\\\",\\\"length\\\":0,\\\"location\\\":0,\\\"type\\\":2},{\\\"data\\\":\\\"1425490690\\\",\\\"length\\\":8,\\\"location\\\":19,\\\"type\\\":1}],\\\"from\\\":{\\\"emoji_type\\\":1,\\\"from\\\":\\\"create.dynamic.web\\\",\\\"up_close_comment\\\":0,\\\"verify\\\":{\\\"asw\\\":{\\\"fl\\\":15,\\\"nv\\\":1},\\\"cc\\\":{\\\"vf\\\":1},\\\"sw\\\":{\\\"fl\\\":15,\\\"nv\\\":1}}},\\\"like_icon\\\":{\\\"action\\\":\\\"\\\",\\\"action_url\\\":\\\"\\\",\\\"end\\\":\\\"\\\",\\\"end_url\\\":\\\"\\\",\\\"start\\\":\\\"\\\",\\\"start_url\\\":\\\"\\\"},\\\"lott\\\":{\\\"lottery_id\\\":61398},\\\"topic\\\":{\\\"is_attach_topic\\\":1}}\", \"origin_user\": { \"info\": { \"uid\": 326499679, \"uname\": \"哔哩哔哩漫画\", \"face\": \"https:\\/\\/i1.hdslb.com\\/bfs\\/face\\/2254162161a60b528cfec449f3450409a81ebc37.jpg\" }, \"card\": { \"official_verify\": { \"type\": 1, \"desc\": \"哔哩哔哩漫画官方账号\" } }, \"vip\": { \"vipType\": 2, \"vipDueDate\": 1941033600000, \"vipStatus\": 1, \"themeType\": 0, \"label\": { \"path\": \"\", \"text\": \"十年大会员\", \"label_theme\": \"ten_annual_vip\", \"text_color\": \"#FFFFFF\", \"bg_style\": 1, \"bg_color\": \"#FB7299\", \"border_color\": \"\" }, \"avatar_subscript\": 1, \"nickname_color\": \"#FB7299\", \"role\": 7, \"avatar_subscript_url\": \"https:\\/\\/i0.hdslb.com\\/bfs\\/vip\\/icon_Certification_big_member_22_3x.png\" }, \"pendant\": { \"pid\": 0, \"name\": \"\", \"image\": \"\", \"expire\": 0, \"image_enhance\": \"\", \"image_enhance_frame\": \"\" }, \"rank\": \"10000\", \"sign\": \"↑ 【关注漫画姬】就送【漫读券5张】,当日或次日登录哔哩哔哩漫画APP即可领取,快来关注领券吧(°∀°)ノ ↑\", \"level_info\": { \"current_level\": 6 } } }", + "extend_json": "{\"from\":{\"emoji_type\":1,\"from\":\"create.comment\",\"up_close_comment\":0},\"like_icon\":{\"action\":\"\",\"action_url\":\"\",\"end\":\"\",\"end_url\":\"\",\"start\":\"\",\"start_url\":\"\"},\"topic\":{\"is_attach_topic\":1}}", + "display": { + "topic_info": { + "topic_details": [ + { + "topic_id": 7539944, + "topic_name": "哔哩哔哩漫画", + "is_activity": 0, + "topic_link": "" + }, + { + "topic_id": 148830, + "topic_name": "AISHA", + "is_activity": 1, + "topic_link": "https://www.bilibili.com/blackboard/dynamic/18159" + }, + { + "topic_id": 2514603, + "topic_name": "aisha", + "is_activity": 0, + "topic_link": "" + } + ] + }, + "origin": { + "topic_info": { + "topic_details": [ + { + "topic_id": 7539944, + "topic_name": "哔哩哔哩漫画", + "is_activity": 0, + "topic_link": "" + }, + { + "topic_id": 148830, + "topic_name": "AISHA", + "is_activity": 1, + "topic_link": "https://www.bilibili.com/blackboard/dynamic/18159" + }, + { + "topic_id": 2514603, + "topic_name": "aisha", + "is_activity": 0, + "topic_link": "" + } + ] + }, + "relation": { + "status": 1, + "is_follow": 0, + "is_followed": 0 + }, + "show_tip": { + "del_tip": "要删除动态吗?" + } + }, + "emoji_info": { + "emoji_details": [ + { + "emoji_name": "[doge]", + "id": 26, + "package_id": 1, + "state": 0, + "type": 1, + "attr": 0, + "text": "[doge]", + "url": "https://i0.hdslb.com/bfs/emote/3087d273a78ccaff4bb1e9972e2ba2a7583c9f11.png", + "meta": { + "size": 1 + }, + "mtime": 1617293741 + } + ] + }, + "relation": { + "status": 1, + "is_follow": 0, + "is_followed": 0 + }, + "up_act_button": { + "report_title": "举报", + "founder_report_title": "举报(发起人)", + "top_title": "置顶", + "top_confirm_title": "确定将此动态置顶吗", + "top_cancel_title": "确定将此动态取消置顶吗" + }, + "show_tip": { + "del_tip": "要删除动态吗?" + } + } + }, + { + "desc": { + "uid": 326499679, + "type": 2, + "rid": 131479206, + "acl": 1024, + "view": 1379492, + "repost": 11233, + "comment": 573, + "like": 6337, + "is_liked": 0, + "dynamic_id": 517479366596833835, + "timestamp": 1619323454, + "orig_type": 0, + "user_profile": { + "info": { + "uid": 326499679, + "uname": "哔哩哔哩漫画", + "face": "https://i1.hdslb.com/bfs/face/2254162161a60b528cfec449f3450409a81ebc37.jpg" + }, + "card": { + "official_verify": { + "type": 1, + "desc": "哔哩哔哩漫画官方账号" + } + }, + "vip": { + "vipType": 2, + "vipDueDate": 1941033600000, + "vipStatus": 1, + "themeType": 0, + "label": { + "path": "", + "text": "十年大会员", + "label_theme": "ten_annual_vip", + "text_color": "#FFFFFF", + "bg_style": 1, + "bg_color": "#FB7299", + "border_color": "" + }, + "avatar_subscript": 1, + "nickname_color": "#FB7299", + "role": 7, + "avatar_subscript_url": "https://i0.hdslb.com/bfs/vip/icon_Certification_big_member_22_3x.png" + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "", + "image_enhance_frame": "" + }, + "rank": "10000", + "sign": "↑ 【关注漫画姬】就送【漫读券5张】,当日或次日登录哔哩哔哩漫画APP即可领取,快来关注领券吧(°∀°)ノ ↑", + "level_info": { + "current_level": 6 + } + }, + "uid_type": 1, + "recommend_info": { + "is_attention": 0 + }, + "r_type": 1, + "topic_board": "C", + "topic_board_desc": "最新", + "status": 1, + "dynamic_id_str": "517479366596833835", + "pre_dy_id_str": "0", + "orig_dy_id_str": "0", + "rid_str": "131479206" + }, + "card": "{\"item\":{\"at_control\":\"[{\\\"data\\\":\\\"5\\\",\\\"length\\\":0,\\\"location\\\":0,\\\"type\\\":2},{\\\"location\\\":19,\\\"type\\\":1,\\\"length\\\":8,\\\"data\\\":\\\"1425490690\\\"}]\",\"category\":\"daily\",\"description\":\"​互动抽奖 关+转,抽3位幸运小伙伴送@漫画家法吉特 【《逆光》画集作者签名版】~\\n #哔哩哔哩漫画#重磅安利之《#AISHA#》\\n当当当当!剧情党福音~\\n答题就有机会赢得礼物?还有法吉特太太亲签精美画集?\\n活动入口→https:\\/\\/www.bilibili.com\\/blackboard\\/topic\\/activity-oPISh007wv.html\\n\\n你以为这样就结束了了吗?\\nNONONO~\\n法吉特老师首次出版个人作品集《逆光》~商城4月25日0点首发开售!\\n有法吉特老师签名版掉落哦!随书额外附赠专属书签特典!\\n活动指路:哔哩哔哩漫画APP-我的-商城-banner\",\"id\":131479206,\"is_fav\":0,\"pictures\":[{\"img_height\":782,\"img_size\":1097.2451171875,\"img_src\":\"https:\\/\\/i0.hdslb.com\\/bfs\\/album\\/8965a784f77e2545f4f2f168df4f417ed3ace818.png\",\"img_tags\":null,\"img_width\":750}],\"pictures_count\":1,\"reply\":573,\"role\":[],\"settings\":{\"copy_forbidden\":\"0\"},\"source\":[],\"title\":\"\",\"upload_time\":1619323454},\"user\":{\"head_url\":\"https:\\/\\/i1.hdslb.com\\/bfs\\/face\\/2254162161a60b528cfec449f3450409a81ebc37.jpg\",\"name\":\"哔哩哔哩漫画\",\"uid\":326499679,\"vip\":{\"avatar_subscript\":1,\"due_date\":1941033600000,\"label\":{\"label_theme\":\"ten_annual_vip\",\"path\":\"\",\"text\":\"十年大会员\"},\"nickname_color\":\"#FB7299\",\"status\":1,\"theme_type\":0,\"type\":2,\"vip_pay_type\":0}}}", + "extension": { + "lott": "{\"lottery_id\":61398}" + }, + "extend_json": "{\"ctrl\":[{\"data\":\"5\",\"length\":0,\"location\":0,\"type\":2},{\"data\":\"1425490690\",\"length\":8,\"location\":19,\"type\":1}],\"from\":{\"emoji_type\":1,\"from\":\"create.dynamic.web\",\"up_close_comment\":0,\"verify\":{\"asw\":{\"fl\":15,\"nv\":1},\"cc\":{\"vf\":1},\"sw\":{\"fl\":15,\"nv\":1}}},\"like_icon\":{\"action\":\"\",\"action_url\":\"\",\"end\":\"\",\"end_url\":\"\",\"start\":\"\",\"start_url\":\"\"},\"lott\":{\"lottery_id\":61398},\"topic\":{\"is_attach_topic\":1}}", + "display": { + "topic_info": { + "topic_details": [ + { + "topic_id": 7539944, + "topic_name": "哔哩哔哩漫画", + "is_activity": 0, + "topic_link": "" + }, + { + "topic_id": 148830, + "topic_name": "AISHA", + "is_activity": 1, + "topic_link": "https://www.bilibili.com/blackboard/dynamic/18159" + }, + { + "topic_id": 2514603, + "topic_name": "aisha", + "is_activity": 0, + "topic_link": "" + } + ] + }, + "relation": { + "status": 1, + "is_follow": 0, + "is_followed": 0 + }, + "up_act_button": { + "report_title": "举报", + "founder_report_title": "举报(发起人)", + "top_title": "置顶", + "top_confirm_title": "确定将此动态置顶吗", + "top_cancel_title": "确定将此动态取消置顶吗" + }, + "show_tip": { + "del_tip": "要删除动态吗?" + } + } + }, + { + "desc": { + "uid": 271873076, + "type": 2, + "rid": 131468623, + "acl": 0, + "view": 22, + "repost": 0, + "comment": 0, + "like": 0, + "is_liked": 0, + "dynamic_id": 517452016241823721, + "timestamp": 1619317086, + "pre_dy_id": 0, + "orig_dy_id": 0, + "orig_type": 0, + "user_profile": { + "info": { + "uid": 271873076, + "uname": "爱乐果iLEGUO", + "face": "https://i2.hdslb.com/bfs/face/fb79ac0f6de92c8ecc7d4cd1e958d19376c85fe8.jpg" + }, + "card": { + "official_verify": { + "type": -1, + "desc": "" + } + }, + "vip": { + "vipType": 0, + "vipDueDate": 0, + "vipStatus": 0, + "themeType": 0, + "label": { + "path": "", + "text": "", + "label_theme": "", + "text_color": "", + "bg_style": 0, + "bg_color": "", + "border_color": "" + }, + "avatar_subscript": 0, + "nickname_color": "", + "role": 0, + "avatar_subscript_url": "" + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "", + "image_enhance_frame": "" + }, + "rank": "10000", + "sign": "龙俦纪+羞耻侠+妖怪IDOLS+偶像饲养手册+闪亮的家+神奇少年团+第8界+爱果系列+爱次元!研究社", + "level_info": { + "current_level": 4 + } + }, + "uid_type": 1, + "recommend_info": { + "is_attention": 0 + }, + "stype": 0, + "r_type": 1, + "inner_id": 0, + "topic_board": "C", + "topic_board_desc": "最新", + "status": 1, + "dynamic_id_str": "517452016241823721", + "pre_dy_id_str": "0", + "orig_dy_id_str": "0", + "rid_str": "131468623" + }, + "card": "{\"item\":{\"at_control\":\"\",\"category\":\"daily\",\"description\":\"《龙俦纪》第99话4月25日更新!\\n高振采药遇险,竟然从悬崖上坠入万丈深渊?!!\\n苏郃首次展现能力,苏千屹又从苏郃身上发现了什么秘密?\\n《龙俦纪》正在好评连载中,逢“五”更新,欢迎追漫!\\n#哔哩哔哩漫画# https:\\/\\/manga.bilibili.com\\/m\\/detail\\/mc26014 \\n#宝藏漫画##爱乐果##漫画##二次元##古风##玄幻##二次元条漫# \",\"id\":131468623,\"is_fav\":0,\"pictures\":[{\"img_height\":720,\"img_size\":297.19140625,\"img_src\":\"https:\\/\\/i0.hdslb.com\\/bfs\\/album\\/54e4f9e0c339f42484fcbe42cb7e7f69be4b87aa.jpg\",\"img_tags\":null,\"img_width\":1280}],\"pictures_count\":1,\"reply\":0,\"role\":[],\"settings\":{\"copy_forbidden\":\"0\"},\"source\":[],\"title\":\"\",\"upload_time\":1619317086},\"user\":{\"head_url\":\"https:\\/\\/i2.hdslb.com\\/bfs\\/face\\/fb79ac0f6de92c8ecc7d4cd1e958d19376c85fe8.jpg\",\"name\":\"爱乐果iLEGUO\",\"uid\":271873076,\"vip\":{\"avatar_subscript\":0,\"due_date\":0,\"label\":{\"label_theme\":\"\",\"path\":\"\",\"text\":\"\"},\"nickname_color\":\"\",\"status\":0,\"theme_type\":0,\"type\":0,\"vip_pay_type\":0}}}", + "extend_json": "{\"from\":{\"emoji_type\":1,\"from\":\"timer.publish\",\"up_close_comment\":0,\"verify\":{}},\"like_icon\":{\"action\":\"\",\"action_url\":\"\",\"end\":\"\",\"end_url\":\"\",\"start\":\"\",\"start_url\":\"\"},\"topic\":{\"is_attach_topic\":1}}", + "display": { + "topic_info": { + "topic_details": [ + { + "topic_id": 7539944, + "topic_name": "哔哩哔哩漫画", + "is_activity": 0, + "topic_link": "" + }, + { + "topic_id": 10182306, + "topic_name": "宝藏漫画", + "is_activity": 0, + "topic_link": "" + }, + { + "topic_id": 9628017, + "topic_name": "爱乐果", + "is_activity": 0, + "topic_link": "" + }, + { + "topic_id": 1184, + "topic_name": "漫画", + "is_activity": 0, + "topic_link": "" + }, + { + "topic_id": 1907, + "topic_name": "二次元", + "is_activity": 1, + "topic_link": "https://www.bilibili.com/blackboard/dynamic/7694" + }, + { + "topic_id": 8227, + "topic_name": "古风", + "is_activity": 0, + "topic_link": "" + }, + { + "topic_id": 62935, + "topic_name": "玄幻", + "is_activity": 0, + "topic_link": "" + }, + { + "topic_id": 12532729, + "topic_name": "二次元条漫", + "is_activity": 0, + "topic_link": "" + } + ] + }, + "relation": { + "status": 1, + "is_follow": 0, + "is_followed": 0 + }, + "up_act_button": { + "report_title": "举报", + "founder_report_title": "举报(发起人)", + "top_title": "置顶", + "top_confirm_title": "确定将此动态置顶吗", + "top_cancel_title": "确定将此动态取消置顶吗" + }, + "show_tip": { + "del_tip": "要删除动态吗?" + } + } + }, + { + "desc": { + "uid": 1677019, + "type": 1, + "rid": 517443572335742626, + "acl": 0, + "view": 3, + "repost": 0, + "comment": 0, + "like": 0, + "is_liked": 0, + "dynamic_id": 517443572332941328, + "timestamp": 1619315120, + "pre_dy_id": 517241610091321208, + "orig_dy_id": 517241610091321208, + "orig_type": 2, + "user_profile": { + "info": { + "uid": 1677019, + "uname": "逗妇卤", + "face": "https://i1.hdslb.com/bfs/face/15a8f5d8c93f8f30bda71f192b92cfde2c76a1c7.jpg" + }, + "card": { + "official_verify": { + "type": -1, + "desc": "" + } + }, + "vip": { + "vipType": 2, + "vipDueDate": 1637510400000, + "vipStatus": 1, + "themeType": 0, + "label": { + "path": "", + "text": "年度大会员", + "label_theme": "annual_vip", + "text_color": "#FFFFFF", + "bg_style": 1, + "bg_color": "#FB7299", + "border_color": "" + }, + "avatar_subscript": 1, + "nickname_color": "#FB7299", + "role": 3, + "avatar_subscript_url": "https://i0.hdslb.com/bfs/vip/icon_Certification_big_member_22_3x.png" + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "", + "image_enhance_frame": "" + }, + "rank": "10000", + "sign": "", + "level_info": { + "current_level": 5 + } + }, + "uid_type": 1, + "recommend_info": { + "is_attention": 0 + }, + "stype": 0, + "r_type": 1, + "inner_id": 0, + "topic_board": "C", + "topic_board_desc": "最新", + "status": 1, + "dynamic_id_str": "517443572332941328", + "pre_dy_id_str": "517241610091321208", + "orig_dy_id_str": "517241610091321208", + "rid_str": "517443572335742626", + "origin": { + "uid": 326499679, + "type": 2, + "rid": 131403515, + "acl": 1024, + "view": 1951519, + "repost": 16543, + "comment": 1003, + "like": 6950, + "is_liked": 0, + "dynamic_id": 517241610091321208, + "timestamp": 1619268097, + "user_profile": { + "info": { + "uid": 326499679, + "uname": "哔哩哔哩漫画", + "face": "https://i1.hdslb.com/bfs/face/2254162161a60b528cfec449f3450409a81ebc37.jpg" + }, + "card": { + "official_verify": { + "type": 1, + "desc": "哔哩哔哩漫画官方账号" + } + }, + "vip": { + "vipType": 2, + "vipDueDate": 1941033600000, + "vipStatus": 1, + "themeType": 0, + "label": { + "path": "", + "text": "十年大会员", + "label_theme": "ten_annual_vip", + "text_color": "#FFFFFF", + "bg_style": 1, + "bg_color": "#FB7299", + "border_color": "" + }, + "avatar_subscript": 1, + "nickname_color": "#FB7299", + "role": 7, + "avatar_subscript_url": "https://i0.hdslb.com/bfs/vip/icon_Certification_big_member_22_3x.png" + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "", + "image_enhance_frame": "" + }, + "rank": "10000", + "sign": "↑ 【关注漫画姬】就送【漫读券5张】,当日或次日登录哔哩哔哩漫画APP即可领取,快来关注领券吧(°∀°)ノ ↑", + "level_info": { + "current_level": 6 + } + }, + "uid_type": 1, + "r_type": 1, + "status": 1, + "dynamic_id_str": "517241610091321208", + "pre_dy_id_str": "0", + "orig_dy_id_str": "0", + "rid_str": "131403515" + } + }, + "card": "{ \"user\": { \"uid\": 1677019, \"uname\": \"逗妇卤\", \"face\": \"https:\\/\\/i1.hdslb.com\\/bfs\\/face\\/15a8f5d8c93f8f30bda71f192b92cfde2c76a1c7.jpg\" }, \"item\": { \"rp_id\": 517443572335742626, \"uid\": 1677019, \"content\": \"【关+转】抽1位小伙伴送【哔哩哔哩小电视兔子包】~\\n【#哔哩哔哩漫画# 作品推荐】大量西幻少女漫爆更来啦———\\n[干杯] 即日起,《重生成为公爵家的丑女》《暴君的监护人是反派魔女》《姐姐捡回了男主》等大量西幻少女精品漫画爆更,追漫更有樱花立牌\\/玩偶等福利好礼相送!\\n[干杯] 快来哔哩哔哩漫画追漫吧~\", \"orig_dy_id\": 517241610091321208, \"pre_dy_id\": 517241610091321208, \"timestamp\": 1619315120, \"reply\": 0, \"orig_type\": 2 }, \"origin\": \"{\\\"item\\\":{\\\"at_control\\\":\\\"[{\\\\\\\"type\\\\\\\":2,\\\\\\\"location\\\\\\\":0,\\\\\\\"length\\\\\\\":0,\\\\\\\"data\\\\\\\":\\\\\\\"5\\\\\\\"}]\\\",\\\"category\\\":\\\"daily\\\",\\\"description\\\":\\\"​互动抽奖 【关+转】抽1位小伙伴送【哔哩哔哩小电视兔子包】~\\\\n【#哔哩哔哩漫画# 作品推荐】大量西幻少女漫爆更来啦———\\\\n[干杯] 即日起,《重生成为公爵家的丑女》《暴君的监护人是反派魔女》《姐姐捡回了男主》等大量西幻少女精品漫画爆更,追漫更有樱花立牌\\\\\\/玩偶等福利好礼相送!\\\\n[干杯] 快来哔哩哔哩漫画追漫吧~\\\",\\\"id\\\":131403515,\\\"is_fav\\\":0,\\\"pictures\\\":[{\\\"img_height\\\":1357,\\\"img_size\\\":1759.1650390625,\\\"img_src\\\":\\\"https:\\\\\\/\\\\\\/i0.hdslb.com\\\\\\/bfs\\\\\\/album\\\\\\/1ce565e7f36e0ae5a3809df21bb39aa2fe578a88.png\\\",\\\"img_tags\\\":null,\\\"img_width\\\":1080},{\\\"img_height\\\":1238,\\\"img_size\\\":832.51953125,\\\"img_src\\\":\\\"https:\\\\\\/\\\\\\/i0.hdslb.com\\\\\\/bfs\\\\\\/album\\\\\\/6df0150c77a7f42a5d31cce8bb006105a660dad9.png\\\",\\\"img_tags\\\":null,\\\"img_width\\\":1080},{\\\"img_height\\\":2193,\\\"img_size\\\":3424.060546875,\\\"img_src\\\":\\\"https:\\\\\\/\\\\\\/i0.hdslb.com\\\\\\/bfs\\\\\\/album\\\\\\/adce81c59436184b56d84e5394583d2ab491b2e6.png\\\",\\\"img_tags\\\":null,\\\"img_width\\\":1080},{\\\"img_height\\\":800,\\\"img_size\\\":166.1552734375,\\\"img_src\\\":\\\"https:\\\\\\/\\\\\\/i0.hdslb.com\\\\\\/bfs\\\\\\/album\\\\\\/9c4e8d6fc04d5a1f3df225d5967fb65c7a3f5f09.jpg\\\",\\\"img_tags\\\":null,\\\"img_width\\\":800}],\\\"pictures_count\\\":4,\\\"reply\\\":1003,\\\"role\\\":[],\\\"settings\\\":{\\\"copy_forbidden\\\":\\\"0\\\"},\\\"source\\\":[],\\\"title\\\":\\\"\\\",\\\"upload_time\\\":1619268097},\\\"user\\\":{\\\"head_url\\\":\\\"https:\\\\\\/\\\\\\/i1.hdslb.com\\\\\\/bfs\\\\\\/face\\\\\\/2254162161a60b528cfec449f3450409a81ebc37.jpg\\\",\\\"name\\\":\\\"哔哩哔哩漫画\\\",\\\"uid\\\":326499679,\\\"vip\\\":{\\\"avatar_subscript\\\":1,\\\"due_date\\\":1941033600000,\\\"label\\\":{\\\"label_theme\\\":\\\"ten_annual_vip\\\",\\\"path\\\":\\\"\\\",\\\"text\\\":\\\"十年大会员\\\"},\\\"nickname_color\\\":\\\"#FB7299\\\",\\\"status\\\":1,\\\"theme_type\\\":0,\\\"type\\\":2,\\\"vip_pay_type\\\":0}}}\", \"origin_extension\": { \"lott\": \"{\\\"callbackId\\\":10,\\\"lottery_id\\\":61382,\\\"lottery_time\\\":1620504000,\\\"title\\\":\\\"互动抽奖\\\"}\" }, \"origin_extend_json\": \"{\\\"ctrl\\\":[{\\\"data\\\":\\\"5\\\",\\\"length\\\":0,\\\"location\\\":0,\\\"type\\\":2}],\\\"from\\\":{\\\"emoji_type\\\":1,\\\"from\\\":\\\"\\\",\\\"up_close_comment\\\":0,\\\"verify\\\":{\\\"asw\\\":{\\\"fl\\\":15,\\\"nv\\\":1},\\\"cc\\\":{\\\"vf\\\":1},\\\"sw\\\":{\\\"fl\\\":15,\\\"nv\\\":1}}},\\\"like_icon\\\":{\\\"action\\\":\\\"\\\",\\\"action_url\\\":\\\"\\\",\\\"end\\\":\\\"\\\",\\\"end_url\\\":\\\"\\\",\\\"start\\\":\\\"\\\",\\\"start_url\\\":\\\"\\\"},\\\"lott\\\":{\\\"callbackId\\\":10,\\\"lottery_id\\\":61382,\\\"lottery_time\\\":1620504000,\\\"title\\\":\\\"互动抽奖\\\"},\\\"topic\\\":{\\\"is_attach_topic\\\":1}}\", \"origin_user\": { \"info\": { \"uid\": 326499679, \"uname\": \"哔哩哔哩漫画\", \"face\": \"https:\\/\\/i1.hdslb.com\\/bfs\\/face\\/2254162161a60b528cfec449f3450409a81ebc37.jpg\" }, \"card\": { \"official_verify\": { \"type\": 1, \"desc\": \"哔哩哔哩漫画官方账号\" } }, \"vip\": { \"vipType\": 2, \"vipDueDate\": 1941033600000, \"vipStatus\": 1, \"themeType\": 0, \"label\": { \"path\": \"\", \"text\": \"十年大会员\", \"label_theme\": \"ten_annual_vip\", \"text_color\": \"#FFFFFF\", \"bg_style\": 1, \"bg_color\": \"#FB7299\", \"border_color\": \"\" }, \"avatar_subscript\": 1, \"nickname_color\": \"#FB7299\", \"role\": 7, \"avatar_subscript_url\": \"https:\\/\\/i0.hdslb.com\\/bfs\\/vip\\/icon_Certification_big_member_22_3x.png\" }, \"pendant\": { \"pid\": 0, \"name\": \"\", \"image\": \"\", \"expire\": 0, \"image_enhance\": \"\", \"image_enhance_frame\": \"\" }, \"rank\": \"10000\", \"sign\": \"↑ 【关注漫画姬】就送【漫读券5张】,当日或次日登录哔哩哔哩漫画APP即可领取,快来关注领券吧(°∀°)ノ ↑\", \"level_info\": { \"current_level\": 6 } } }", + "extend_json": "{\"from\":{\"emoji_type\":1,\"up_close_comment\":0,\"verify\":{\"asw\":{\"fl\":15,\"nv\":1},\"sw\":{\"fl\":15,\"nv\":1}}},\"like_icon\":{\"action\":\"\",\"action_url\":\"\",\"end\":\"\",\"end_url\":\"\",\"start\":\"\",\"start_url\":\"\"},\"topic\":{\"is_attach_topic\":1}}", + "display": { + "topic_info": { + "topic_details": [ + { + "topic_id": 7539944, + "topic_name": "哔哩哔哩漫画", + "is_activity": 0, + "topic_link": "" + } + ] + }, + "origin": { + "topic_info": { + "topic_details": [ + { + "topic_id": 7539944, + "topic_name": "哔哩哔哩漫画", + "is_activity": 0, + "topic_link": "" + } + ] + }, + "emoji_info": { + "emoji_details": [ + { + "emoji_name": "[干杯]", + "id": 1949, + "package_id": 1, + "state": 0, + "type": 1, + "attr": 0, + "text": "[干杯]", + "url": "https://i0.hdslb.com/bfs/emote/8da12d5f55a2c7e9778dcc05b40571979fe208e6.png", + "meta": { + "size": 1 + }, + "mtime": 1597738918 + } + ] + }, + "relation": { + "status": 1, + "is_follow": 0, + "is_followed": 0 + }, + "show_tip": { + "del_tip": "要删除动态吗?" + } + }, + "emoji_info": { + "emoji_details": [ + { + "emoji_name": "[干杯]", + "id": 1949, + "package_id": 1, + "state": 0, + "type": 1, + "attr": 0, + "text": "[干杯]", + "url": "https://i0.hdslb.com/bfs/emote/8da12d5f55a2c7e9778dcc05b40571979fe208e6.png", + "meta": { + "size": 1 + }, + "mtime": 1597738918 + } + ] + }, + "relation": { + "status": 1, + "is_follow": 0, + "is_followed": 0 + }, + "up_act_button": { + "report_title": "举报", + "founder_report_title": "举报(发起人)", + "top_title": "置顶", + "top_confirm_title": "确定将此动态置顶吗", + "top_cancel_title": "确定将此动态取消置顶吗" + }, + "show_tip": { + "del_tip": "要删除动态吗?" + } + } + }, + { + "desc": { + "uid": 324540735, + "type": 8, + "rid": 672631542, + "acl": 0, + "view": 29, + "repost": 0, + "like": 1, + "is_liked": 0, + "dynamic_id": 517311278755293659, + "timestamp": 1619284318, + "pre_dy_id": 0, + "orig_dy_id": 0, + "orig_type": 0, + "user_profile": { + "info": { + "uid": 324540735, + "uname": "文雯兄", + "face": "https://i0.hdslb.com/bfs/face/8000d5ad4652f8bf9074781a108eb54243a06889.jpg" + }, + "card": { + "official_verify": { + "type": -1, + "desc": "" + } + }, + "vip": { + "vipType": 1, + "vipDueDate": 1613491200000, + "vipStatus": 0, + "themeType": 0, + "label": { + "path": "", + "text": "", + "label_theme": "", + "text_color": "", + "bg_style": 0, + "bg_color": "", + "border_color": "" + }, + "avatar_subscript": 0, + "nickname_color": "", + "role": 0, + "avatar_subscript_url": "" + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "", + "image_enhance_frame": "" + }, + "rank": "10000", + "sign": "游说万乘苦不早,著鞭跨马涉远道。", + "level_info": { + "current_level": 4 + } + }, + "uid_type": 1, + "recommend_info": { + "is_attention": 0 + }, + "stype": 0, + "r_type": 1, + "inner_id": 0, + "topic_board": "C", + "topic_board_desc": "最新", + "status": 1, + "dynamic_id_str": "517311278755293659", + "pre_dy_id_str": "0", + "orig_dy_id_str": "0", + "rid_str": "672631542", + "bvid": "BV1dU4y1h78A" + }, + "card": "{\"aid\":672631542,\"attribute\":0,\"cid\":328783995,\"copyright\":1,\"ctime\":1619284318,\"desc\":\"本漫画由哔哩哔哩漫画出品,本人配音,谢谢大家的支持。\",\"dimension\":{\"height\":1920,\"rotate\":0,\"width\":864},\"duration\":191,\"dynamic\":\"\",\"item\":{\"at_control\":\"\"},\"jump_url\":\"bilibili:\\/\\/video\\/672631542\\/?page=1&player_preload=null&player_width=864&player_height=1920&player_rotate=0\",\"mission_id\":18978,\"owner\":{\"face\":\"https:\\/\\/i0.hdslb.com\\/bfs\\/face\\/8000d5ad4652f8bf9074781a108eb54243a06889.jpg\",\"mid\":324540735,\"name\":\"文雯兄\"},\"pic\":\"https:\\/\\/i0.hdslb.com\\/bfs\\/archive\\/b2d2dc3a909696ea1db3fbfeeb7ab42dc37ced87.jpg\",\"player_info\":null,\"pubdate\":1619284318,\"rights\":{\"autoplay\":1,\"bp\":0,\"download\":0,\"elec\":0,\"hd5\":0,\"is_cooperation\":0,\"movie\":0,\"no_background\":0,\"no_reprint\":1,\"pay\":0,\"ugc_pay\":0,\"ugc_pay_preview\":0},\"short_link\":\"https:\\/\\/b23.tv\\/BV1dU4y1h78A\",\"short_link_v2\":\"https:\\/\\/b23.tv\\/BV1dU4y1h78A\",\"stat\":{\"aid\":672631542,\"coin\":0,\"danmaku\":0,\"dislike\":0,\"favorite\":0,\"his_rank\":0,\"like\":1,\"now_rank\":0,\"reply\":0,\"share\":0,\"view\":10},\"state\":0,\"tid\":138,\"title\":\"怎么办,我穿越成最弱小野怪了(三十九)【关于我不当人的这件事】\",\"tname\":\"搞笑\",\"up_from_v2\":8,\"videos\":1}", + "extend_json": "{\"\":{\"ogv\":{\"ogv_id\":0}},\"dispute\":{\"content\":\"\"},\"from\":{\"from\":\"\"},\"like_icon\":{\"action\":\"\",\"action_url\":\"\",\"end\":\"\",\"end_url\":\"\",\"start\":\"\",\"start_url\":\"\"},\"topic\":{\"is_attach_topic\":1}}", + "display": { + "topic_info": { + "topic_details": [ + { + "topic_id": 19254944, + "topic_name": "火力配音王-配音剧场", + "is_activity": 1, + "topic_link": "https://www.bilibili.com/blackboard/dynamic/108663" + }, + { + "topic_id": 7539944, + "topic_name": "哔哩哔哩漫画", + "is_activity": 0, + "topic_link": "" + }, + { + "topic_id": 3844, + "topic_name": "穿越", + "is_activity": 0, + "topic_link": "" + }, + { + "topic_id": 1833, + "topic_name": "搞笑", + "is_activity": 0, + "topic_link": "" + }, + { + "topic_id": 1217, + "topic_name": "自制", + "is_activity": 0, + "topic_link": "" + }, + { + "topic_id": 1184, + "topic_name": "漫画", + "is_activity": 0, + "topic_link": "" + } + ] + }, + "usr_action_txt": "投稿了视频", + "relation": { + "status": 1, + "is_follow": 0, + "is_followed": 0 + }, + "up_act_button": { + "report_title": "举报", + "founder_report_title": "举报(发起人)", + "top_title": "置顶", + "top_confirm_title": "确定将此动态置顶吗", + "top_cancel_title": "确定将此动态取消置顶吗" + }, + "show_tip": { + "del_tip": "要删除动态吗?" + }, + "cover_play_icon_url": "https://i0.hdslb.com/bfs/album/2269afa7897830b397797ebe5f032b899b405c67.png" + } + }, + { + "desc": { + "uid": 326499679, + "type": 8, + "rid": 972719486, + "acl": 0, + "view": 2745390, + "repost": 4, + "like": 5879, + "is_liked": 0, + "dynamic_id": 517261895213635612, + "timestamp": 1619272820, + "pre_dy_id": 0, + "orig_dy_id": 0, + "orig_type": 0, + "user_profile": { + "info": { + "uid": 326499679, + "uname": "哔哩哔哩漫画", + "face": "https://i1.hdslb.com/bfs/face/2254162161a60b528cfec449f3450409a81ebc37.jpg" + }, + "card": { + "official_verify": { + "type": 1, + "desc": "哔哩哔哩漫画官方账号" + } + }, + "vip": { + "vipType": 2, + "vipDueDate": 1941033600000, + "vipStatus": 1, + "themeType": 0, + "label": { + "path": "", + "text": "十年大会员", + "label_theme": "ten_annual_vip", + "text_color": "#FFFFFF",- + "orig_dy_id_str": "0", + "rid_str": "972719486", + "bvid": "BV1Gp4y1b7ZB" + }, + "card": "{\"aid\":972719486,\"attribute\":0,\"cid\":328058863,\"copyright\":1,\"ctime\":1619272820,\"desc\":\"#反派初始化# #Vomic#\\n圈圈叉叉,桃树开花,花瓣落下,生出新芽。\\n@哔哩哔哩漫画 出品、@BV社 策划、 @Antler_墨柚 原作、@叉叉叉叉叉口叉 主笔、@补天研究所 制作、@音熊联萌 录制、Vomic《反派初始化》第二集正式上线!\\n哔哩哔哩漫画独家播放,每周六更新!\\n还有小剧场,花絮不定时掉落、敬请期待~\\n\\n出品:@哔哩哔哩漫画\\n策划:@BV社\\n制作:@补天研究所\\n录制:@音熊联萌\",\"dimension\":{\"height\":1080,\"rotate\":0,\"width\":1920},\"duration\":62,\"dynamic\":\"#哔哩哔哩漫画#独家,#Vomic#2021年4月3日起每周六更新!更多精彩,小剧场,花絮,尽在哔哩哔哩漫画APP\",\"item\":{\"at_control\":\"\"},\"jump_url\":\"bilibili:\\/\\/video\\/972719486\\/?page=1&player_preload=null&player_width=1920&player_height=1080&player_rotate=0\",\"owner\":{\"face\":\"https:\\/\\/i1.hdslb.com\\/bfs\\/face\\/2254162161a60b528cfec449f3450409a81ebc37.jpg\",\"mid\":326499679,\"name\":\"哔哩哔哩漫画\"},\"pic\":\"https:\\/\\/i2.hdslb.com\\/bfs\\/archive\\/3c8a720b809153f95b1134acb991011eb79dc80b.jpg\",\"player_info\":null,\"pubdate\":1619272819,\"rights\":{\"autoplay\":1,\"bp\":0,\"download\":0,\"elec\":0,\"hd5\":1,\"is_cooperation\":0,\"movie\":0,\"no_background\":0,\"no_reprint\":1,\"pay\":0,\"ugc_pay\":0,\"ugc_pay_preview\":0},\"short_link\":\"https:\\/\\/b23.tv\\/BV1Gp4y1b7ZB\",\"short_link_v2\":\"https:\\/\\/b23.tv\\/BV1Gp4y1b7ZB\",\"stat\":{\"aid\":972719486,\"coin\":115,\"danmaku\":4,\"dislike\":0,\"favorite\":43,\"his_rank\":0,\"like\":5879,\"now_rank\":0,\"reply\":36,\"share\":145,\"view\":31840},\"state\":0,\"tid\":27,\"title\":\"【Vomic】滴——《反派初始化》第二集精彩片段!\",\"tname\":\"综合\",\"videos\":1}", + "extend_json": "{\"\":{\"ogv\":{\"ogv_id\":0}},\"dispute\":{\"content\":\"\"},\"from\":{\"from\":\"\",\"verify\":{}},\"like_icon\":{\"action\":\"\",\"action_url\":\"\",\"end\":\"\",\"end_url\":\"\",\"start\":\"\",\"start_url\":\"\"},\"topic\":{\"is_attach_topic\":1}}", + "display": { + "topic_info": { + "topic_details": [ + { + "topic_id": 7539944, + "topic_name": "哔哩哔哩漫画", + "is_activity": 0, + "topic_link": "" + }, + { + "topic_id": 3208432, + "topic_name": "Vomic", + "is_activity": 1, + "topic_link": "https://www.bilibili.com/blackboard/dynamic/106426" + }, + { + "topic_id": 37542, + "topic_name": "VOMIC", + "is_activity": 1, + "topic_link": "https://www.bilibili.com/blackboard/dynamic/106283" + }, + { + "topic_id": 8972604, + "topic_name": "vomic", + "is_activity": 1, + "topic_link": "https://www.bilibili.com/blackboard/dynamic/106766" + }, + { + "topic_id": 210754, + "topic_name": "夏磊", + "is_activity": 0, + "topic_link": "" + }, + { + "topic_id": 10526139, + "topic_name": "反派初始化", + "is_activity": 0, + "topic_link": "" + }, + { + "topic_id": 1322133, + "topic_name": "赵路", + "is_activity": 0, + "topic_link": "" + }, + { + "topic_id": 423864, + "topic_name": "音熊联萌", + "is_activity": 1, + "topic_link": "https://www.bilibili.com/blackboard/dynamic/17389" + } + ] + }, + "usr_action_txt": "投稿了视频", + "relation": { + "status": 1, + "is_follow": 0, + "is_followed": 0 + }, + "up_act_button": { + "report_title": "举报", + "founder_report_title": "举报(发起人)", + "top_title": "置顶", + "top_confirm_title": "确定将此动态置顶吗", + "top_cancel_title": "确定将此动态取消置顶吗" + }, + "show_tip": { + "del_tip": "要删除动态吗?" + }, + "cover_play_icon_url": "https://i0.hdslb.com/bfs/album/2269afa7897830b397797ebe5f032b899b405c67.png" + } + }, + { + "desc": { + "uid": 255495142, + "type": 1, + "rid": 517243774753706830, + "acl": 0, + "view": 8, + "repost": 0, + "comment": 0, + "like": 0, + "is_liked": 0, + "dynamic_id": 517243774755903256, + "timestamp": 1619268601, + "pre_dy_id": 517241610091321208, + "orig_dy_id": 517241610091321208, + "orig_type": 2, + "user_profile": { + "info": { + "uid": 255495142, + "uname": "坐怀不乱登徒子", + "face": "https://i1.hdslb.com/bfs/face/fa18d118f6c58da704400909743fb895c4c47627.jpg" + }, + "card": { + "official_verify": { + "type": -1, + "desc": "" + } + }, + "vip": { + "vipType": 2, + "vipDueDate": 1626451200000, + "vipStatus": 1, + "themeType": 0, + "label": { + "path": "", + "text": "年度大会员", + "label_theme": "annual_vip", + "text_color": "#FFFFFF", + "bg_style": 1, + "bg_color": "#FB7299", + "border_color": "" + }, + "avatar_subscript": 1, + "nickname_color": "#FB7299", + "role": 3, + "avatar_subscript_url": "https://i0.hdslb.com/bfs/vip/icon_Certification_big_member_22_3x.png" + }, + "pendant": { + "pid": 204, + "name": "至高守护", + "image": "https://i1.hdslb.com/bfs/face/88162662c23c2768c9e9e5c25017375685e83798.png", + "expire": 0, + "image_enhance": "https://i1.hdslb.com/bfs/face/88162662c23c2768c9e9e5c25017375685e83798.png", + "image_enhance_frame": "" + }, + "rank": "10000", + "sign": "", + "level_info": { + "current_level": 5 + } + }, + "uid_type": 1, + "recommend_info": { + "is_attention": 0 + }, + "stype": 0, + "r_type": 1, + "inner_id": 0, + "topic_board": "C", + "topic_board_desc": "最新", + "status": 1, + "dynamic_id_str": "517243774755903256", + "pre_dy_id_str": "517241610091321208", + "orig_dy_id_str": "517241610091321208", + "rid_str": "517243774753706830", + "origin": { + "uid": 326499679, + "type": 2, + "rid": 131403515, + "acl": 1024, + "view": 1951519, + "repost": 16543, + "comment": 1003, + "like": 6950, + "is_liked": 0, + "dynamic_id": 517241610091321208, + "timestamp": 1619268097, + "user_profile": { + "info": { + "uid": 326499679, + "uname": "哔哩哔哩漫画", + "face": "https://i1.hdslb.com/bfs/face/2254162161a60b528cfec449f3450409a81ebc37.jpg" + }, + "card": { + "official_verify": { + "type": 1, + "desc": "哔哩哔哩漫画官方账号" + } + }, + "vip": { + "vipType": 2, + "vipDueDate": 1941033600000, + "vipStatus": 1, + "themeType": 0, + "label": { + "path": "", + "text": "十年大会员", + "label_theme": "ten_annual_vip", + "text_color": "#FFFFFF", + "bg_style": 1, + "bg_color": "#FB7299", + "border_color": "" + }, + "avatar_subscript": 1, + "nickname_color": "#FB7299", + "role": 7, + "avatar_subscript_url": "https://i0.hdslb.com/bfs/vip/icon_Certification_big_member_22_3x.png" + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "", + "image_enhance_frame": "" + }, + "rank": "10000", + "sign": "↑ 【关注漫画姬】就送【漫读券5张】,当日或次日登录哔哩哔哩漫画APP即可领取,快来关注领券吧(°∀°)ノ ↑", + "level_info": { + "current_level": 6 + } + }, + "uid_type": 1, + "r_type": 1, + "status": 1, + "dynamic_id_str": "517241610091321208", + "pre_dy_id_str": "0", + "orig_dy_id_str": "0", + "rid_str": "131403515" + } + }, + "card": "{ \"user\": { \"uid\": 255495142, \"uname\": \"坐怀不乱登徒子\", \"face\": \"https:\\/\\/i1.hdslb.com\\/bfs\\/face\\/fa18d118f6c58da704400909743fb895c4c47627.jpg\" }, \"item\": { \"rp_id\": 517243774753706830, \"uid\": 255495142, \"content\": \"冲冲冲#哔哩哔哩漫画#\", \"orig_dy_id\": 517241610091321208, \"pre_dy_id\": 517241610091321208, \"timestamp\": 1619268601, \"reply\": 0, \"orig_type\": 2 }, \"origin\": \"{\\\"item\\\":{\\\"at_control\\\":\\\"[{\\\\\\\"type\\\\\\\":2,\\\\\\\"location\\\\\\\":0,\\\\\\\"length\\\\\\\":0,\\\\\\\"data\\\\\\\":\\\\\\\"5\\\\\\\"}]\\\",\\\"category\\\":\\\"daily\\\",\\\"description\\\":\\\"​互动抽奖 【关+转】抽1位小伙伴送【哔哩哔哩小电视兔子包】~\\\\n【#哔哩哔哩漫画# 作品推荐】大量西幻少女漫爆更来啦———\\\\n[干杯] 即日起,《重生成为公爵家的丑女》《暴君的监护人是反派魔女》《姐姐捡回了男主》等大量西幻少女精品漫画爆更,追漫更有樱花立牌\\\\\\/玩偶等福利好礼相送!\\\\n[干杯] 快来哔哩哔哩漫画追漫吧~\\\",\\\"id\\\":131403515,\\\"is_fav\\\":0,\\\"pictures\\\":[{\\\"img_height\\\":1357,\\\"img_size\\\":1759.1650390625,\\\"img_src\\\":\\\"https:\\\\\\/\\\\\\/i0.hdslb.com\\\\\\/bfs\\\\\\/album\\\\\\/1ce565e7f36e0ae5a3809df21bb39aa2fe578a88.png\\\",\\\"img_tags\\\":null,\\\"img_width\\\":1080},{\\\"img_height\\\":1238,\\\"img_size\\\":832.51953125,\\\"img_src\\\":\\\"https:\\\\\\/\\\\\\/i0.hdslb.com\\\\\\/bfs\\\\\\/album\\\\\\/6df0150c77a7f42a5d31cce8bb006105a660dad9.png\\\",\\\"img_tags\\\":null,\\\"img_width\\\":1080},{\\\"img_height\\\":2193,\\\"img_size\\\":3424.060546875,\\\"img_src\\\":\\\"https:\\\\\\/\\\\\\/i0.hdslb.com\\\\\\/bfs\\\\\\/album\\\\\\/adce81c59436184b56d84e5394583d2ab491b2e6.png\\\",\\\"img_tags\\\":null,\\\"img_width\\\":1080},{\\\"img_height\\\":800,\\\"img_size\\\":166.1552734375,\\\"img_src\\\":\\\"https:\\\\\\/\\\\\\/i0.hdslb.com\\\\\\/bfs\\\\\\/album\\\\\\/9c4e8d6fc04d5a1f3df225d5967fb65c7a3f5f09.jpg\\\",\\\"img_tags\\\":null,\\\"img_width\\\":800}],\\\"pictures_count\\\":4,\\\"reply\\\":1003,\\\"role\\\":[],\\\"settings\\\":{\\\"copy_forbidden\\\":\\\"0\\\"},\\\"source\\\":[],\\\"title\\\":\\\"\\\",\\\"upload_time\\\":1619268097},\\\"user\\\":{\\\"head_url\\\":\\\"https:\\\\\\/\\\\\\/i1.hdslb.com\\\\\\/bfs\\\\\\/face\\\\\\/2254162161a60b528cfec449f3450409a81ebc37.jpg\\\",\\\"name\\\":\\\"哔哩哔哩漫画\\\",\\\"uid\\\":326499679,\\\"vip\\\":{\\\"avatar_subscript\\\":1,\\\"due_date\\\":1941033600000,\\\"label\\\":{\\\"label_theme\\\":\\\"ten_annual_vip\\\",\\\"path\\\":\\\"\\\",\\\"text\\\":\\\"十年大会员\\\"},\\\"nickname_color\\\":\\\"#FB7299\\\",\\\"status\\\":1,\\\"theme_type\\\":0,\\\"type\\\":2,\\\"vip_pay_type\\\":0}}}\", \"origin_extension\": { \"lott\": \"{\\\"callbackId\\\":10,\\\"lottery_id\\\":61382,\\\"lottery_time\\\":1620504000,\\\"title\\\":\\\"互动抽奖\\\"}\" }, \"origin_extend_json\": \"{\\\"ctrl\\\":[{\\\"data\\\":\\\"5\\\",\\\"length\\\":0,\\\"location\\\":0,\\\"type\\\":2}],\\\"from\\\":{\\\"emoji_type\\\":1,\\\"from\\\":\\\"\\\",\\\"up_close_comment\\\":0,\\\"verify\\\":{\\\"asw\\\":{\\\"fl\\\":15,\\\"nv\\\":1},\\\"cc\\\":{\\\"vf\\\":1},\\\"sw\\\":{\\\"fl\\\":15,\\\"nv\\\":1}}},\\\"like_icon\\\":{\\\"action\\\":\\\"\\\",\\\"action_url\\\":\\\"\\\",\\\"end\\\":\\\"\\\",\\\"end_url\\\":\\\"\\\",\\\"start\\\":\\\"\\\",\\\"start_url\\\":\\\"\\\"},\\\"lott\\\":{\\\"callbackId\\\":10,\\\"lottery_id\\\":61382,\\\"lottery_time\\\":1620504000,\\\"title\\\":\\\"互动抽奖\\\"},\\\"topic\\\":{\\\"is_attach_topic\\\":1}}\", \"origin_user\": { \"info\": { \"uid\": 326499679, \"uname\": \"哔哩哔哩漫画\", \"face\": \"https:\\/\\/i1.hdslb.com\\/bfs\\/face\\/2254162161a60b528cfec449f3450409a81ebc37.jpg\" }, \"card\": { \"official_verify\": { \"type\": 1, \"desc\": \"哔哩哔哩漫画官方账号\" } }, \"vip\": { \"vipType\": 2, \"vipDueDate\": 1941033600000, \"vipStatus\": 1, \"themeType\": 0, \"label\": { \"path\": \"\", \"text\": \"十年大会员\", \"label_theme\": \"ten_annual_vip\", \"text_color\": \"#FFFFFF\", \"bg_style\": 1, \"bg_color\": \"#FB7299\", \"border_color\": \"\" }, \"avatar_subscript\": 1, \"nickname_color\": \"#FB7299\", \"role\": 7, \"avatar_subscript_url\": \"https:\\/\\/i0.hdslb.com\\/bfs\\/vip\\/icon_Certification_big_member_22_3x.png\" }, \"pendant\": { \"pid\": 0, \"name\": \"\", \"image\": \"\", \"expire\": 0, \"image_enhance\": \"\", \"image_enhance_frame\": \"\" }, \"rank\": \"10000\", \"sign\": \"↑ 【关注漫画姬】就送【漫读券5张】,当日或次日登录哔哩哔哩漫画APP即可领取,快来关注领券吧(°∀°)ノ ↑\", \"level_info\": { \"current_level\": 6 } } }", + "extend_json": "{\"from\":{\"emoji_type\":1,\"from\":\"create.comment\",\"up_close_comment\":0},\"like_icon\":{\"action\":\"\",\"action_url\":\"\",\"end\":\"\",\"end_url\":\"\",\"start\":\"\",\"start_url\":\"\"},\"topic\":{\"is_attach_topic\":1}}", + "display": { + "topic_info": { + "topic_details": [ + { + "topic_id": 7539944, + "topic_name": "哔哩哔哩漫画", + "is_activity": 0, + "topic_link": "" + } + ] + }, + "origin": { + "topic_info": { + "topic_details": [ + { + "topic_id": 7539944, + "topic_name": "哔哩哔哩漫画", + "is_activity": 0, + "topic_link": "" + } + ] + }, + "emoji_info": { + "emoji_details": [ + { + "emoji_name": "[干杯]", + "id": 1949, + "package_id": 1, + "state": 0, + "type": 1, + "attr": 0, + "text": "[干杯]", + "url": "https://i0.hdslb.com/bfs/emote/8da12d5f55a2c7e9778dcc05b40571979fe208e6.png", + "meta": { + "size": 1 + }, + "mtime": 1597738918 + } + ] + }, + "relation": { + "status": 1, + "is_follow": 0, + "is_followed": 0 + }, + "show_tip": { + "del_tip": "要删除动态吗?" + } + }, + "relation": { + "status": 1, + "is_follow": 0, + "is_followed": 0 + }, + "up_act_button": { + "report_title": "举报", + "founder_report_title": "举报(发起人)", + "top_title": "置顶", + "top_confirm_title": "确定将此动态置顶吗", + "top_cancel_title": "确定将此动态取消置顶吗" + }, + "show_tip": { + "del_tip": "要删除动态吗?" + } + } + }, + { + "desc": { + "uid": 335270851, + "type": 1, + "rid": 517243658786443535, + "acl": 0, + "view": 24, + "repost": 0, + "comment": 0, + "like": 1, + "is_liked": 0, + "dynamic_id": 517243658790736702, + "timestamp": 1619268574, + "pre_dy_id": 517241610091321208, + "orig_dy_id": 517241610091321208, + "orig_type": 2, + "user_profile": { + "info": { + "uid": 335270851, + "uname": "符号门", + "face": "https://i1.hdslb.com/bfs/face/67371311c9e047543a70c1d41e7a03c3854f2981.jpg" + }, + "card": { + "official_verify": { + "type": -1, + "desc": "" + } + }, + "vip": { + "vipType": 2, + "vipDueDate": 1647014400000, + "vipStatus": 1, + "themeType": 0, + "label": { + "path": "", + "text": "年度大会员", + "label_theme": "annual_vip", + "text_color": "#FFFFFF", + "bg_style": 1, + "bg_color": "#FB7299", + "border_color": "" + }, + "avatar_subscript": 1, + "nickname_color": "#FB7299", + "role": 3, + "avatar_subscript_url": "https://i0.hdslb.com/bfs/vip/icon_Certification_big_member_22_3x.png" + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "", + "image_enhance_frame": "" + }, + "rank": "10000", + "sign": "", + "level_info": { + "current_level": 4 + } + }, + "uid_type": 1, + "recommend_info": { + "is_attention": 0 + }, + "stype": 0, + "r_type": 1, + "inner_id": 0, + "topic_board": "C", + "topic_board_desc": "最新", + "status": 1, + "dynamic_id_str": "517243658790736702", + "pre_dy_id_str": "517241610091321208", + "orig_dy_id_str": "517241610091321208", + "rid_str": "517243658786443535", + "origin": { + "uid": 326499679, + "type": 2, + "rid": 131403515, + "acl": 1024, + "view": 1951519, + "repost": 16543, + "comment": 1003, + "like": 6950, + "is_liked": 0, + "dynamic_id": 517241610091321208, + "timestamp": 1619268097, + "user_profile": { + "info": { + "uid": 326499679, + "uname": "哔哩哔哩漫画", + "face": "https://i1.hdslb.com/bfs/face/2254162161a60b528cfec449f3450409a81ebc37.jpg" + }, + "card": { + "official_verify": { + "type": 1, + "desc": "哔哩哔哩漫画官方账号" + } + }, + "vip": { + "vipType": 2, + "vipDueDate": 1941033600000, + "vipStatus": 1, + "themeType": 0, + "label": { + "path": "", + "text": "十年大会员", + "label_theme": "ten_annual_vip", + "text_color": "#FFFFFF", + "bg_style": 1, + "bg_color": "#FB7299", + "border_color": "" + }, + "avatar_subscript": 1, + "nickname_color": "#FB7299", + "role": 7, + "avatar_subscript_url": "https://i0.hdslb.com/bfs/vip/icon_Certification_big_member_22_3x.png" + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "", + "image_enhance_frame": "" + }, + "rank": "10000", + "sign": "↑ 【关注漫画姬】就送【漫读券5张】,当日或次日登录哔哩哔哩漫画APP即可领取,快来关注领券吧(°∀°)ノ ↑", + "level_info": { + "current_level": 6 + } + }, + "uid_type": 1, + "r_type": 1, + "status": 1, + "dynamic_id_str": "517241610091321208", + "pre_dy_id_str": "0", + "orig_dy_id_str": "0", + "rid_str": "131403515" + } + }, + "card": "{ \"user\": { \"uid\": 335270851, \"uname\": \"符号门\", \"face\": \"https:\\/\\/i1.hdslb.com\\/bfs\\/face\\/67371311c9e047543a70c1d41e7a03c3854f2981.jpg\" }, \"item\": { \"rp_id\": 517243658786443535, \"uid\": 335270851, \"content\": \"#哔哩哔哩漫画#[打call][打call][打call]\", \"orig_dy_id\": 517241610091321208, \"pre_dy_id\": 517241610091321208, \"timestamp\": 1619268574, \"reply\": 0, \"orig_type\": 2 }, \"origin\": \"{\\\"item\\\":{\\\"at_control\\\":\\\"[{\\\\\\\"type\\\\\\\":2,\\\\\\\"location\\\\\\\":0,\\\\\\\"length\\\\\\\":0,\\\\\\\"data\\\\\\\":\\\\\\\"5\\\\\\\"}]\\\",\\\"category\\\":\\\"daily\\\",\\\"description\\\":\\\"​互动抽奖 【关+转】抽1位小伙伴送【哔哩哔哩小电视兔子包】~\\\\n【#哔哩哔哩漫画# 作品推荐】大量西幻少女漫爆更来啦———\\\\n[干杯] 即日起,《重生成为公爵家的丑女》《暴君的监护人是反派魔女》《姐姐捡回了男主》等大量西幻少女精品漫画爆更,追漫更有樱花立牌\\\\\\/玩偶等福利好礼相送!\\\\n[干杯] 快来哔哩哔哩漫画追漫吧~\\\",\\\"id\\\":131403515,\\\"is_fav\\\":0,\\\"pictures\\\":[{\\\"img_height\\\":1357,\\\"img_size\\\":1759.1650390625,\\\"img_src\\\":\\\"https:\\\\\\/\\\\\\/i0.hdslb.com\\\\\\/bfs\\\\\\/album\\\\\\/1ce565e7f36e0ae5a3809df21bb39aa2fe578a88.png\\\",\\\"img_tags\\\":null,\\\"img_width\\\":1080},{\\\"img_height\\\":1238,\\\"img_size\\\":832.51953125,\\\"img_src\\\":\\\"https:\\\\\\/\\\\\\/i0.hdslb.com\\\\\\/bfs\\\\\\/album\\\\\\/6df0150c77a7f42a5d31cce8bb006105a660dad9.png\\\",\\\"img_tags\\\":null,\\\"img_width\\\":1080},{\\\"img_height\\\":2193,\\\"img_size\\\":3424.060546875,\\\"img_src\\\":\\\"https:\\\\\\/\\\\\\/i0.hdslb.com\\\\\\/bfs\\\\\\/album\\\\\\/adce81c59436184b56d84e5394583d2ab491b2e6.png\\\",\\\"img_tags\\\":null,\\\"img_width\\\":1080},{\\\"img_height\\\":800,\\\"img_size\\\":166.1552734375,\\\"img_src\\\":\\\"https:\\\\\\/\\\\\\/i0.hdslb.com\\\\\\/bfs\\\\\\/album\\\\\\/9c4e8d6fc04d5a1f3df225d5967fb65c7a3f5f09.jpg\\\",\\\"img_tags\\\":null,\\\"img_width\\\":800}],\\\"pictures_count\\\":4,\\\"reply\\\":1003,\\\"role\\\":[],\\\"settings\\\":{\\\"copy_forbidden\\\":\\\"0\\\"},\\\"source\\\":[],\\\"title\\\":\\\"\\\",\\\"upload_time\\\":1619268097},\\\"user\\\":{\\\"head_url\\\":\\\"https:\\\\\\/\\\\\\/i1.hdslb.com\\\\\\/bfs\\\\\\/face\\\\\\/2254162161a60b528cfec449f3450409a81ebc37.jpg\\\",\\\"name\\\":\\\"哔哩哔哩漫画\\\",\\\"uid\\\":326499679,\\\"vip\\\":{\\\"avatar_subscript\\\":1,\\\"due_date\\\":1941033600000,\\\"label\\\":{\\\"label_theme\\\":\\\"ten_annual_vip\\\",\\\"path\\\":\\\"\\\",\\\"text\\\":\\\"十年大会员\\\"},\\\"nickname_color\\\":\\\"#FB7299\\\",\\\"status\\\":1,\\\"theme_type\\\":0,\\\"type\\\":2,\\\"vip_pay_type\\\":0}}}\", \"origin_extension\": { \"lott\": \"{\\\"callbackId\\\":10,\\\"lottery_id\\\":61382,\\\"lottery_time\\\":1620504000,\\\"title\\\":\\\"互动抽奖\\\"}\" }, \"origin_extend_json\": \"{\\\"ctrl\\\":[{\\\"data\\\":\\\"5\\\",\\\"length\\\":0,\\\"location\\\":0,\\\"type\\\":2}],\\\"from\\\":{\\\"emoji_type\\\":1,\\\"from\\\":\\\"\\\",\\\"up_close_comment\\\":0,\\\"verify\\\":{\\\"asw\\\":{\\\"fl\\\":15,\\\"nv\\\":1},\\\"cc\\\":{\\\"vf\\\":1},\\\"sw\\\":{\\\"fl\\\":15,\\\"nv\\\":1}}},\\\"like_icon\\\":{\\\"action\\\":\\\"\\\",\\\"action_url\\\":\\\"\\\",\\\"end\\\":\\\"\\\",\\\"end_url\\\":\\\"\\\",\\\"start\\\":\\\"\\\",\\\"start_url\\\":\\\"\\\"},\\\"lott\\\":{\\\"callbackId\\\":10,\\\"lottery_id\\\":61382,\\\"lottery_time\\\":1620504000,\\\"title\\\":\\\"互动抽奖\\\"},\\\"topic\\\":{\\\"is_attach_topic\\\":1}}\", \"origin_user\": { \"info\": { \"uid\": 326499679, \"uname\": \"哔哩哔哩漫画\", \"face\": \"https:\\/\\/i1.hdslb.com\\/bfs\\/face\\/2254162161a60b528cfec449f3450409a81ebc37.jpg\" }, \"card\": { \"official_verify\": { \"type\": 1, \"desc\": \"哔哩哔哩漫画官方账号\" } }, \"vip\": { \"vipType\": 2, \"vipDueDate\": 1941033600000, \"vipStatus\": 1, \"themeType\": 0, \"label\": { \"path\": \"\", \"text\": \"十年大会员\", \"label_theme\": \"ten_annual_vip\", \"text_color\": \"#FFFFFF\", \"bg_style\": 1, \"bg_color\": \"#FB7299\", \"border_color\": \"\" }, \"avatar_subscript\": 1, \"nickname_color\": \"#FB7299\", \"role\": 7, \"avatar_subscript_url\": \"https:\\/\\/i0.hdslb.com\\/bfs\\/vip\\/icon_Certification_big_member_22_3x.png\" }, \"pendant\": { \"pid\": 0, \"name\": \"\", \"image\": \"\", \"expire\": 0, \"image_enhance\": \"\", \"image_enhance_frame\": \"\" }, \"rank\": \"10000\", \"sign\": \"↑ 【关注漫画姬】就送【漫读券5张】,当日或次日登录哔哩哔哩漫画APP即可领取,快来关注领券吧(°∀°)ノ ↑\", \"level_info\": { \"current_level\": 6 } } }", + "extend_json": "{\"from\":{\"emoji_type\":1,\"up_close_comment\":0},\"like_icon\":{\"action\":\"\",\"action_url\":\"\",\"end\":\"\",\"end_url\":\"\",\"start\":\"\",\"start_url\":\"\"},\"topic\":{\"is_attach_topic\":1}}", + "display": { + "topic_info": { + "topic_details": [ + { + "topic_id": 7539944, + "topic_name": "哔哩哔哩漫画", + "is_activity": 0, + "topic_link": "" + } + ] + }, + "origin": { + "topic_info": { + "topic_details": [ + { + "topic_id": 7539944, + "topic_name": "哔哩哔哩漫画", + "is_activity": 0, + "topic_link": "" + } + ] + }, + "emoji_info": { + "emoji_details": [ + { + "emoji_name": "[干杯]", + "id": 1949, + "package_id": 1, + "state": 0, + "type": 1, + "attr": 0, + "text": "[干杯]", + "url": "https://i0.hdslb.com/bfs/emote/8da12d5f55a2c7e9778dcc05b40571979fe208e6.png", + "meta": { + "size": 1 + }, + "mtime": 1597738918 + } + ] + }, + "relation": { + "status": 1, + "is_follow": 0, + "is_followed": 0 + }, + "show_tip": { + "del_tip": "要删除动态吗?" + } + }, + "emoji_info": { + "emoji_details": [ + { + "emoji_name": "[打call]", + "id": 510, + "package_id": 1, + "state": 0, + "type": 1, + "attr": 0, + "text": "[打call]", + "url": "https://i0.hdslb.com/bfs/emote/431432c43da3ee5aab5b0e4f8931953e649e9975.png", + "meta": { + "size": 1 + }, + "mtime": 1617293741 + } + ] + }, + "relation": { + "status": 1, + "is_follow": 0, + "is_followed": 0 + }, + "up_act_button": { + "report_title": "举报", + "founder_report_title": "举报(发起人)", + "top_title": "置顶", + "top_confirm_title": "确定将此动态置顶吗", + "top_cancel_title": "确定将此动态取消置顶吗" + }, + "show_tip": { + "del_tip": "要删除动态吗?" + } + } + }, + { + "desc": { + "uid": 326499679, + "type": 2, + "rid": 131403515, + "acl": 1024, + "view": 1951519, + "repost": 16543, + "comment": 1003, + "like": 6950, + "is_liked": 0, + "dynamic_id": 517241610091321208, + "timestamp": 1619268097, + "orig_type": 0, + "user_profile": { + "info": { + "uid": 326499679, + "uname": "哔哩哔哩漫画", + "face": "https://i1.hdslb.com/bfs/face/2254162161a60b528cfec449f3450409a81ebc37.jpg" + }, + "card": { + "official_verify": { + "type": 1, + "desc": "哔哩哔哩漫画官方账号" + } + }, + "vip": { + "vipType": 2, + "vipDueDate": 1941033600000, + "vipStatus": 1, + "themeType": 0, + "label": { + "path": "", + "text": "十年大会员", + "label_theme": "ten_annual_vip", + "text_color": "#FFFFFF", + "bg_style": 1, + "bg_color": "#FB7299", + "border_color": "" + }, + "avatar_subscript": 1, + "nickname_color": "#FB7299", + "role": 7, + "avatar_subscript_url": "https://i0.hdslb.com/bfs/vip/icon_Certification_big_member_22_3x.png" + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "", + "image_enhance_frame": "" + }, + "rank": "10000", + "sign": "↑ 【关注漫画姬】就送【漫读券5张】,当日或次日登录哔哩哔哩漫画APP即可领取,快来关注领券吧(°∀°)ノ ↑", + "level_info": { + "current_level": 6 + } + }, + "uid_type": 1, + "recommend_info": { + "is_attention": 0 + }, + "r_type": 1, + "topic_board": "C", + "topic_board_desc": "最新", + "status": 1, + "dynamic_id_str": "517241610091321208", + "pre_dy_id_str": "0", + "orig_dy_id_str": "0", + "rid_str": "131403515" + }, + "card": "{\"item\":{\"at_control\":\"[{\\\"type\\\":2,\\\"location\\\":0,\\\"length\\\":0,\\\"data\\\":\\\"5\\\"}]\",\"category\":\"daily\",\"description\":\"​互动抽奖 【关+转】抽1位小伙伴送【哔哩哔哩小电视兔子包】~\\n【#哔哩哔哩漫画# 作品推荐】大量西幻少女漫爆更来啦———\\n[干杯] 即日起,《重生成为公爵家的丑女》《暴君的监护人是反派魔女》《姐姐捡回了男主》等大量西幻少女精品漫画爆更,追漫更有樱花立牌\\/玩偶等福利好礼相送!\\n[干杯] 快来哔哩哔哩漫画追漫吧~\",\"id\":131403515,\"is_fav\":0,\"pictures\":[{\"img_height\":1357,\"img_size\":1759.1650390625,\"img_src\":\"https:\\/\\/i0.hdslb.com\\/bfs\\/album\\/1ce565e7f36e0ae5a3809df21bb39aa2fe578a88.png\",\"img_tags\":null,\"img_width\":1080},{\"img_height\":1238,\"img_size\":832.51953125,\"img_src\":\"https:\\/\\/i0.hdslb.com\\/bfs\\/album\\/6df0150c77a7f42a5d31cce8bb006105a660dad9.png\",\"img_tags\":null,\"img_width\":1080},{\"img_height\":2193,\"img_size\":3424.060546875,\"img_src\":\"https:\\/\\/i0.hdslb.com\\/bfs\\/album\\/adce81c59436184b56d84e5394583d2ab491b2e6.png\",\"img_tags\":null,\"img_width\":1080},{\"img_height\":800,\"img_size\":166.1552734375,\"img_src\":\"https:\\/\\/i0.hdslb.com\\/bfs\\/album\\/9c4e8d6fc04d5a1f3df225d5967fb65c7a3f5f09.jpg\",\"img_tags\":null,\"img_width\":800}],\"pictures_count\":4,\"reply\":1003,\"role\":[],\"settings\":{\"copy_forbidden\":\"0\"},\"source\":[],\"title\":\"\",\"upload_time\":1619268097},\"user\":{\"head_url\":\"https:\\/\\/i1.hdslb.com\\/bfs\\/face\\/2254162161a60b528cfec449f3450409a81ebc37.jpg\",\"name\":\"哔哩哔哩漫画\",\"uid\":326499679,\"vip\":{\"avatar_subscript\":1,\"due_date\":1941033600000,\"label\":{\"label_theme\":\"ten_annual_vip\",\"path\":\"\",\"text\":\"十年大会员\"},\"nickname_color\":\"#FB7299\",\"status\":1,\"theme_type\":0,\"type\":2,\"vip_pay_type\":0}}}", + "extension": { + "lott": "{\"callbackId\":10,\"lottery_id\":61382,\"lottery_time\":1620504000,\"title\":\"互动抽奖\"}" + }, + "extend_json": "{\"ctrl\":[{\"data\":\"5\",\"length\":0,\"location\":0,\"type\":2}],\"from\":{\"emoji_type\":1,\"from\":\"\",\"up_close_comment\":0,\"verify\":{\"asw\":{\"fl\":15,\"nv\":1},\"cc\":{\"vf\":1},\"sw\":{\"fl\":15,\"nv\":1}}},\"like_icon\":{\"action\":\"\",\"action_url\":\"\",\"end\":\"\",\"end_url\":\"\",\"start\":\"\",\"start_url\":\"\"},\"lott\":{\"callbackId\":10,\"lottery_id\":61382,\"lottery_time\":1620504000,\"title\":\"互动抽奖\"},\"topic\":{\"is_attach_topic\":1}}", + "display": { + "topic_info": { + "topic_details": [ + { + "topic_id": 7539944, + "topic_name": "哔哩哔哩漫画", + "is_activity": 0, + "topic_link": "" + } + ] + }, + "emoji_info": { + "emoji_details": [ + { + "emoji_name": "[干杯]", + "id": 1949, + "package_id": 1, + "state": 0, + "type": 1, + "attr": 0, + "text": "[干杯]", + "url": "https://i0.hdslb.com/bfs/emote/8da12d5f55a2c7e9778dcc05b40571979fe208e6.png", + "meta": { + "size": 1 + }, + "mtime": 1597738918 + } + ] + }, + "relation": { + "status": 1, + "is_follow": 0, + "is_followed": 0 + }, + "up_act_button": { + "report_title": "举报", + "founder_report_title": "举报(发起人)", + "top_title": "置顶", + "top_confirm_title": "确定将此动态置顶吗", + "top_cancel_title": "确定将此动态取消置顶吗" + }, + "show_tip": { + "del_tip": "要删除动态吗?" + } + } + }, + { + "desc": { + "uid": 326499679, + "type": 2, + "rid": 131384529, + "acl": 0, + "view": 1599049, + "repost": 5, + "comment": 63, + "like": 4614, + "is_liked": 0, + "dynamic_id": 517215462328123502, + "timestamp": 1619262009, + "pre_dy_id": 0, + "orig_dy_id": 0, + "orig_type": 0, + "user_profile": { + "info": { + "uid": 326499679, + "uname": "哔哩哔哩漫画", + "face": "https://i1.hdslb.com/bfs/face/2254162161a60b528cfec449f3450409a81ebc37.jpg" + }, + "card": { + "official_verify": { + "type": 1, + "desc": "哔哩哔哩漫画官方账号" + } + }, + "vip": { + "vipType": 2, + "vipDueDate": 1941033600000, + "vipStatus": 1, + "themeType": 0, + "label": { + "path": "", + "text": "十年大会员", + "label_theme": "ten_annual_vip", + "text_color": "#FFFFFF", + "bg_style": 1, + "bg_color": "#FB7299", + "border_color": "" + }, + "avatar_subscript": 1, + "nickname_color": "#FB7299", + "role": 7, + "avatar_subscript_url": "https://i0.hdslb.com/bfs/vip/icon_Certification_big_member_22_3x.png" + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "", + "image_enhance_frame": "" + }, + "rank": "10000", + "sign": "↑ 【关注漫画姬】就送【漫读券5张】,当日或次日登录哔哩哔哩漫画APP即可领取,快来关注领券吧(°∀°)ノ ↑", + "level_info": { + "current_level": 6 + } + }, + "uid_type": 1, + "recommend_info": { + "is_attention": 0 + }, + "stype": 0, + "r_type": 1, + "inner_id": 0, + "topic_board": "C", + "topic_board_desc": "最新", + "status": 1, + "dynamic_id_str": "517215462328123502", + "pre_dy_id_str": "0", + "orig_dy_id_str": "0", + "rid_str": "131384529" + }, + "card": "{\"item\":{\"at_control\":\"\",\"category\":\"daily\",\"description\":\"【#哔哩哔哩漫画# 近期更新】(`・ω・´)\\nP1《#辉夜大小姐想让我告白# ~天才们的恋爱头脑战~ 》:https:\\/\\/manga.bilibili.com\\/m\\/detail\\/mc26009\\nP2《#入间同学入魔了#!》:https:\\/\\/manga.bilibili.com\\/m\\/detail\\/mc27189\\nP3《催眠麦克风-Division Rap Battle- side D.H&B.A.T》\\nP4《他和她的魔法契约》\\nP5《瓦尼塔斯的手记》\\nP6《见面5秒开始战斗》\\nP7《魔气来袭》\\nP8《尖帽子的魔法工坊》 \",\"id\":131384529,\"is_fav\":0,\"pictures\":[{\"img_height\":2920,\"img_size\":1993.103515625,\"img_src\":\"https:\\/\\/i0.hdslb.com\\/bfs\\/album\\/24a3e5d04e8ad86fcdae48e6ee88f90a0351f82d.jpg\",\"img_tags\":null,\"img_width\":2000},{\"img_height\":2872,\"img_size\":2453.1513671875,\"img_src\":\"https:\\/\\/i0.hdslb.com\\/bfs\\/album\\/d512d771dd3f91b54733f104e5de7e38d61ef56c.jpg\",\"img_tags\":null,\"img_width\":2000},{\"img_height\":2806,\"img_size\":4156.140625,\"img_src\":\"https:\\/\\/i0.hdslb.com\\/bfs\\/album\\/119fe01717120eb9c8c04d2c48a22298c8f88d17.jpg\",\"img_tags\":null,\"img_width\":2000},{\"img_height\":1147,\"img_size\":152.23046875,\"img_src\":\"https:\\/\\/i0.hdslb.com\\/bfs\\/album\\/d2fb2a6d2229a03ea967ee2182faefd67b0811fd.jpg\",\"img_tags\":null,\"img_width\":800},{\"img_height\":2637,\"img_size\":10432.2978515625,\"img_src\":\"https:\\/\\/i0.hdslb.com\\/bfs\\/album\\/e8966e96d34938474eebfcf60f38e14932e09be4.jpg\",\"img_tags\":null,\"img_width\":3600},{\"img_height\":2268,\"img_size\":6175.017578125,\"img_src\":\"https:\\/\\/i0.hdslb.com\\/bfs\\/album\\/4ed99d7329108e9e585db49da63a56bdcf7e8670.jpg\",\"img_tags\":null,\"img_width\":3200},{\"img_height\":1461,\"img_size\":283.990234375,\"img_src\":\"https:\\/\\/i0.hdslb.com\\/bfs\\/album\\/a8f37ec732103b1912fd3448d06d610cae5486df.jpg\",\"img_tags\":null,\"img_width\":800},{\"img_height\":2871,\"img_size\":3639.478515625,\"img_src\":\"https:\\/\\/i0.hdslb.com\\/bfs\\/album\\/fe8e58fd4f7c7063f880f064b3366e758dbfd7ee.jpg\",\"img_tags\":null,\"img_width\":2000}],\"pictures_count\":8,\"reply\":63,\"role\":[],\"settings\":{\"copy_forbidden\":\"0\"},\"source\":[],\"title\":\"\",\"upload_time\":1619262009},\"user\":{\"head_url\":\"https:\\/\\/i1.hdslb.com\\/bfs\\/face\\/2254162161a60b528cfec449f3450409a81ebc37.jpg\",\"name\":\"哔哩哔哩漫画\",\"uid\":326499679,\"vip\":{\"avatar_subscript\":1,\"due_date\":1941033600000,\"label\":{\"label_theme\":\"ten_annual_vip\",\"path\":\"\",\"text\":\"十年大会员\"},\"nickname_color\":\"#FB7299\",\"status\":1,\"theme_type\":0,\"type\":2,\"vip_pay_type\":0}}}", + "extend_json": "{\"from\":{\"emoji_type\":1,\"from\":\"timer.publish\",\"up_close_comment\":0,\"verify\":{\"cc\":{\"nv\":1}}},\"like_icon\":{\"action\":\"\",\"action_url\":\"\",\"end\":\"\",\"end_url\":\"\",\"start\":\"\",\"start_url\":\"\"},\"topic\":{\"is_attach_topic\":1}}", + "display": { + "topic_info": { + "topic_details": [ + { + "topic_id": 7539944, + "topic_name": "哔哩哔哩漫画", + "is_activity": 0, + "topic_link": "" + }, + { + "topic_id": 4386628, + "topic_name": "辉夜大小姐想让我告白", + "is_activity": 0, + "topic_link": "" + }, + { + "topic_id": 8724199, + "topic_name": "入间同学入魔了", + "is_activity": 1, + "topic_link": "https://www.bilibili.com/blackboard/dynamic/69330" + } + ] + }, + "relation": { + "status": 1, + "is_follow": 0, + "is_followed": 0 + }, + "up_act_button": { + "report_title": "举报", + "founder_report_title": "举报(发起人)", + "top_title": "置顶", + "top_confirm_title": "确定将此动态置顶吗", + "top_cancel_title": "确定将此动态取消置顶吗" + }, + "show_tip": { + "del_tip": "要删除动态吗?" + } + } + } + ], + "offset": "517215462328123502", + "is_drawer_topic": 0, + "founder_uid": 0, + "_gt_": 0 + } +} +``` + +
+ +## 获取历史动态列表 +> https://api.vc.bilibili.com/topic_svr/v1/topic_svr/topic_history + + *请求方式:GET* + + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------------ | ---- | ---------- | ------ | -------- | +| topic_name | str | 话题名称 | 必要(可选) | topic_id与topic_name任选一个 | +| topic_id | num | 话题id | 必要(可选) | topic_id与topic_name任选一个 | +| offset_dynamic_id | num | 偏移值 | 必要| 可用于偏移显示的动态列表(为`0`时获取最新动态) | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | -------- | +| code | num | 返回值 | 0:成功 | +| data | obj | 信息本体 | | +| message | str | 错误信息 | 默认为空 | +| msg | num | 空 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----------- | ----- | ---------- | ------------ | +| attentions | obj | 当前登录账户关注列表(仅在传递了登录信息时出现) | | +| cards | array | 动态列表 | | +| has_more | num | 当前话题是否有额外的动态 | 0:无额外动态
1:有额外动态 | +| offset | str | 接下来获取列表时的偏移值 | 一般为当前获取的话题列表下最后一个动态id | +| \_gt\_ | num | 0 | 作用尚不明确 | + +`data`中的`cards`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | ------------- | ---- | +| 0 | obj | 第1条动态卡片 | | +| n | obj | 第(n+1)条动态卡片 | | +| …… | obj | …… | …… | + +`data`中的`cards`数组中的对象: + +基本同「[获取特定动态卡片信息](get_dynamic_detail.md)」中的data对象 + +**示例:** + +获取话题`哔哩哔哩漫画`(话题id`7539944`)的当前动态列表 + +topic_name方式: +```shell +curl -G 'https://api.vc.bilibili.com/topic_svr/v1/topic_svr/topic_history' \ +--data-urlencode 'topic_name=哔哩哔哩漫画&offset_dynamic_id=0' +``` +topic_id方式: +```shell +curl -G 'https://api.vc.bilibili.com/topic_svr/v1/topic_svr/topic_history' \ +--data-urlencode 'topic_id=7539944&offset_dynamic_id=0' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "msg": "", + "message": "", + "data": { + "has_more": 1, + "cards": [ + { + "desc": { + "uid": 326499679, + "type": 2, + "rid": 131534120, + "acl": 0, + "view": 555573, + "repost": 9, + "comment": 90, + "like": 2478, + "is_liked": 0, + "dynamic_id": 517602000793534062, + "timestamp": 1619352007, + "pre_dy_id": 0, + "orig_dy_id": 0, + "orig_type": 0, + "user_profile": { + "info": { + "uid": 326499679, + "uname": "哔哩哔哩漫画", + "face": "https://i1.hdslb.com/bfs/face/2254162161a60b528cfec449f3450409a81ebc37.jpg" + }, + "card": { + "official_verify": { + "type": 1, + "desc": "哔哩哔哩漫画官方账号" + } + }, + "vip": { + "vipType": 2, + "vipDueDate": 1941033600000, + "vipStatus": 1, + "themeType": 0, + "label": { + "path": "", + "text": "十年大会员", + "label_theme": "ten_annual_vip", + "text_color": "#FFFFFF", + "bg_style": 1, + "bg_color": "#FB7299", + "border_color": "" + }, + "avatar_subscript": 1, + "nickname_color": "#FB7299", + "role": 7, + "avatar_subscript_url": "https://i0.hdslb.com/bfs/vip/icon_Certification_big_member_22_3x.png" + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "", + "image_enhance_frame": "" + }, + "rank": "10000", + "sign": "↑ 【关注漫画姬】就送【漫读券5张】,当日或次日登录哔哩哔哩漫画APP即可领取,快来关注领券吧(°∀°)ノ ↑", + "level_info": { + "current_level": 6 + } + }, + "uid_type": 1, + "recommend_info": { + "is_attention": 0 + }, + "stype": 0, + "r_type": 1, + "inner_id": 0, + "topic_board": "C", + "topic_board_desc": "最新", + "status": 1, + "dynamic_id_str": "517602000793534062", + "pre_dy_id_str": "0", + "orig_dy_id_str": "0", + "rid_str": "131534120" + }, + "card": "{\"item\":{\"at_control\":\"\",\"category\":\"daily\",\"description\":\"【#哔哩哔哩漫画# 作品推荐】兽人控狂喜!《#不莱梅乐队#》:https:\\/\\/manga.bilibili.com\\/m\\/detail\\/mc28880\\n[思考]大家小时候看过一篇叫做《不莱梅的音乐家》的格林童话吗?\\n[惊喜]只不过在这部#欧漫#里,这四个动物的目的不是赶走强盗,而是追逐梦想、爱情、自由、正义。在这个充满混沌的世界里,他们将用音乐的力量改写自己和他人的命运。 \",\"id\":131534120,\"is_fav\":0,\"pictures\":[{\"img_height\":1922,\"img_size\":1163.9267578125,\"img_src\":\"https:\\/\\/i0.hdslb.com\\/bfs\\/album\\/f5a82f03475eed52973b3cecb2b5180b090cc5f0.png\",\"img_tags\":null,\"img_width\":1080},{\"img_height\":757,\"img_size\":273.130859375,\"img_src\":\"https:\\/\\/i0.hdslb.com\\/bfs\\/album\\/ca4055c7b9c246e7e922190102d5c87cd4dbcea8.png\",\"img_tags\":null,\"img_width\":436},{\"img_height\":1067,\"img_size\":640.29296875,\"img_src\":\"https:\\/\\/i0.hdslb.com\\/bfs\\/album\\/9de3ece4d374d07fb7b192db4520779a477cdf97.png\",\"img_tags\":null,\"img_width\":542},{\"img_height\":972,\"img_size\":374.8349609375,\"img_src\":\"https:\\/\\/i0.hdslb.com\\/bfs\\/album\\/cac12d548a3686335d3154cce672f1823ca92517.png\",\"img_tags\":null,\"img_width\":487}],\"pictures_count\":4,\"reply\":90,\"role\":[],\"settings\":{\"copy_forbidden\":\"0\"},\"source\":[],\"title\":\"\",\"upload_time\":1619352007},\"user\":{\"head_url\":\"https:\\/\\/i1.hdslb.com\\/bfs\\/face\\/2254162161a60b528cfec449f3450409a81ebc37.jpg\",\"name\":\"哔哩哔哩漫画\",\"uid\":326499679,\"vip\":{\"avatar_subscript\":1,\"due_date\":1941033600000,\"label\":{\"label_theme\":\"ten_annual_vip\",\"path\":\"\",\"text\":\"十年大会员\"},\"nickname_color\":\"#FB7299\",\"status\":1,\"theme_type\":0,\"type\":2,\"vip_pay_type\":0}}}", + "extend_json": "{\"from\":{\"emoji_type\":1,\"from\":\"timer.publish\",\"up_close_comment\":0,\"verify\":{\"asw\":{\"fl\":15,\"nv\":1},\"cc\":{\"nv\":1},\"sw\":{\"fl\":15,\"nv\":1}}},\"like_icon\":{\"action\":\"\",\"action_url\":\"\",\"end\":\"\",\"end_url\":\"\",\"start\":\"\",\"start_url\":\"\"},\"topic\":{\"is_attach_topic\":1}}", + "display": { + "topic_info": { + "topic_details": [ + { + "topic_id": 7539944, + "topic_name": "哔哩哔哩漫画", + "is_activity": 0, + "topic_link": "" + }, + { + "topic_id": 15149492, + "topic_name": "不莱梅乐队", + "is_activity": 0, + "topic_link": "" + }, + { + "topic_id": 507003, + "topic_name": "欧漫", + "is_activity": 0, + "topic_link": "" + } + ] + }, + "emoji_info": { + "emoji_details": [ + { + "emoji_name": "[思考]", + "id": 1941, + "package_id": 1, + "state": 0, + "type": 1, + "attr": 0, + "text": "[思考]", + "url": "https://i0.hdslb.com/bfs/emote/cfa9b7e89e4bfe04bbcd34ccb1b0df37f4fa905c.png", + "meta": { + "size": 1 + }, + "mtime": 1597738918 + }, + { + "emoji_name": "[惊喜]", + "id": 19, + "package_id": 1, + "state": 0, + "type": 1, + "attr": 0, + "text": "[惊喜]", + "url": "https://i0.hdslb.com/bfs/emote/0afecaf3a3499479af946f29749e1a6c285b6f65.png", + "meta": { + "size": 1 + }, + "mtime": 1597738918 + } + ] + }, + "relation": { + "status": 1, + "is_follow": 0, + "is_followed": 0 + }, + "up_act_button": { + "report_title": "举报", + "founder_report_title": "举报(发起人)", + "top_title": "置顶", + "top_confirm_title": "确定将此动态置顶吗", + "top_cancel_title": "确定将此动态取消置顶吗" + }, + "show_tip": { + "del_tip": "要删除动态吗?" + } + } + }, + { + "desc": { + "uid": 240911350, + "type": 1, + "rid": 517516389208371264, + "acl": 0, + "view": 251, + "repost": 0, + "comment": 0, + "like": 2, + "is_liked": 0, + "dynamic_id": 517516389214088892, + "timestamp": 1619332074, + "pre_dy_id": 517479366596833835, + "orig_dy_id": 517479366596833835, + "orig_type": 2, + "user_profile": { + "info": { + "uid": 240911350, + "uname": "Kekkai-piano", + "face": "https://i1.hdslb.com/bfs/face/f9b56adf0e9fb16d556fb5af93fc8367a255e4af.jpg" + }, + "card": { + "official_verify": { + "type": -1, + "desc": "" + } + }, + "vip": { + "vipType": 2, + "vipDueDate": 1658851200000, + "vipStatus": 1, + "themeType": 0, + "label": { + "path": "", + "text": "年度大会员", + "label_theme": "annual_vip", + "text_color": "#FFFFFF", + "bg_style": 1, + "bg_color": "#FB7299", + "border_color": "" + }, + "avatar_subscript": 1, + "nickname_color": "#FB7299", + "role": 3, + "avatar_subscript_url": "https://i0.hdslb.com/bfs/vip/icon_Certification_big_member_22_3x.png" + }, + "pendant": { + "pid": 2511, + "name": "初音未来13周年", + "image": "https://i1.hdslb.com/bfs/garb/item/4f8f3f1f2d47f0dad84f66aa57acd4409ea46361.png", + "expire": 0, + "image_enhance": "https://i1.hdslb.com/bfs/garb/item/fe0b83b53e2342b16646f6e7a9370d8a867decdb.webp", + "image_enhance_frame": "https://i1.hdslb.com/bfs/garb/item/127c507ec8448be30cf5f79500ecc6ef2fd32f2c.png" + }, + "rank": "10000", + "sign": "看动画片的88键音游爱好者 \n专业人士轻喷 \n正在寻找缺失之物 \n超天変地異みたいな狂騒にも慣れて\n高三备考ing,莫要取关(bushi)", + "level_info": { + "current_level": 5 + } + }, + "uid_type": 1, + "recommend_info": { + "is_attention": 0 + }, + "stype": 0, + "r_type": 1, + "inner_id": 0, + "topic_board": "C", + "topic_board_desc": "最新", + "status": 1, + "dynamic_id_str": "517516389214088892", + "pre_dy_id_str": "517479366596833835", + "orig_dy_id_str": "517479366596833835", + "rid_str": "517516389208371264", + "origin": { + "uid": 326499679, + "type": 2, + "rid": 131479206, + "acl": 1024, + "view": 1412747, + "repost": 11488, + "dynamic_id": 517479366596833835, + "timestamp": 1619323454, + "uid_type": 1, + "r_type": 1, + "status": 1, + "dynamic_id_str": "517479366596833835", + "pre_dy_id_str": "0", + "orig_dy_id_str": "0", + "rid_str": "131479206" + } + }, + "card": "{ \"user\": { \"uid\": 240911350, \"uname\": \"Kekkai-piano\", \"face\": \"https:\\/\\/i1.hdslb.com\\/bfs\\/face\\/f9b56adf0e9fb16d556fb5af93fc8367a255e4af.jpg\" }, \"item\": { \"rp_id\": 517516389208371264, \"uid\": 240911350, \"content\": \"分母报道[doge]#哔哩哔哩漫画#,#AISHA#\", \"orig_dy_id\": 517479366596833835, \"pre_dy_id\": 517479366596833835, \"timestamp\": 1619332074, \"reply\": 0, \"orig_type\": 2 }, \"origin\": \"{\\\"item\\\":{\\\"at_control\\\":\\\"[{\\\\\\\"data\\\\\\\":\\\\\\\"5\\\\\\\",\\\\\\\"length\\\\\\\":0,\\\\\\\"location\\\\\\\":0,\\\\\\\"type\\\\\\\":2},{\\\\\\\"location\\\\\\\":19,\\\\\\\"type\\\\\\\":1,\\\\\\\"length\\\\\\\":8,\\\\\\\"data\\\\\\\":\\\\\\\"1425490690\\\\\\\"}]\\\",\\\"category\\\":\\\"daily\\\",\\\"description\\\":\\\"​互动抽奖 关+转,抽3位幸运小伙伴送@漫画家法吉特 【《逆光》画集作者签名版】~\\\\n #哔哩哔哩漫画#重磅安利之《#AISHA#》\\\\n当当当当!剧情党福音~\\\\n答题就有机会赢得礼物?还有法吉特太太亲签精美画集?\\\\n活动入口→https:\\\\\\/\\\\\\/www.bilibili.com\\\\\\/blackboard\\\\\\/topic\\\\\\/activity-oPISh007wv.html\\\\n\\\\n你以为这样就结束了了吗?\\\\nNONONO~\\\\n法吉特老师首次出版个人作品集《逆光》~商城4月25日0点首发开售!\\\\n有法吉特老师签名版掉落哦!随书额外附赠专属书签特典!\\\\n活动指路:哔哩哔哩漫画APP-我的-商城-banner\\\",\\\"id\\\":131479206,\\\"is_fav\\\":0,\\\"pictures\\\":[{\\\"img_height\\\":782,\\\"img_size\\\":1097.2451171875,\\\"img_src\\\":\\\"https:\\\\\\/\\\\\\/i0.hdslb.com\\\\\\/bfs\\\\\\/album\\\\\\/8965a784f77e2545f4f2f168df4f417ed3ace818.png\\\",\\\"img_tags\\\":null,\\\"img_width\\\":750}],\\\"pictures_count\\\":1,\\\"reply\\\":599,\\\"role\\\":[],\\\"settings\\\":{\\\"copy_forbidden\\\":\\\"0\\\"},\\\"source\\\":[],\\\"title\\\":\\\"\\\",\\\"upload_time\\\":1619323454},\\\"user\\\":{\\\"head_url\\\":\\\"https:\\\\\\/\\\\\\/i1.hdslb.com\\\\\\/bfs\\\\\\/face\\\\\\/2254162161a60b528cfec449f3450409a81ebc37.jpg\\\",\\\"name\\\":\\\"哔哩哔哩漫画\\\",\\\"uid\\\":326499679,\\\"vip\\\":{\\\"avatar_subscript\\\":1,\\\"due_date\\\":1941033600000,\\\"label\\\":{\\\"label_theme\\\":\\\"ten_annual_vip\\\",\\\"path\\\":\\\"\\\",\\\"text\\\":\\\"十年大会员\\\"},\\\"nickname_color\\\":\\\"#FB7299\\\",\\\"status\\\":1,\\\"theme_type\\\":0,\\\"type\\\":2,\\\"vip_pay_type\\\":0}}}\", \"origin_extension\": { \"lott\": \"{\\\"lottery_id\\\":61398}\" }, \"origin_extend_json\": \"{\\\"ctrl\\\":[{\\\"data\\\":\\\"5\\\",\\\"length\\\":0,\\\"location\\\":0,\\\"type\\\":2},{\\\"data\\\":\\\"1425490690\\\",\\\"length\\\":8,\\\"location\\\":19,\\\"type\\\":1}],\\\"from\\\":{\\\"emoji_type\\\":1,\\\"from\\\":\\\"create.dynamic.web\\\",\\\"up_close_comment\\\":0,\\\"verify\\\":{\\\"asw\\\":{\\\"fl\\\":15,\\\"nv\\\":1},\\\"cc\\\":{\\\"vf\\\":1},\\\"sw\\\":{\\\"fl\\\":15,\\\"nv\\\":1}}},\\\"like_icon\\\":{\\\"action\\\":\\\"\\\",\\\"action_url\\\":\\\"\\\",\\\"end\\\":\\\"\\\",\\\"end_url\\\":\\\"\\\",\\\"start\\\":\\\"\\\",\\\"start_url\\\":\\\"\\\"},\\\"lott\\\":{\\\"lottery_id\\\":61398},\\\"topic\\\":{\\\"is_attach_topic\\\":1}}\", \"origin_user\": { \"info\": { \"uid\": 326499679, \"uname\": \"哔哩哔哩漫画\", \"face\": \"https:\\/\\/i1.hdslb.com\\/bfs\\/face\\/2254162161a60b528cfec449f3450409a81ebc37.jpg\" }, \"card\": { \"official_verify\": { \"type\": 1, \"desc\": \"哔哩哔哩漫画官方账号\" } }, \"vip\": { \"vipType\": 2, \"vipDueDate\": 1941033600000, \"vipStatus\": 1, \"themeType\": 0, \"label\": { \"path\": \"\", \"text\": \"十年大会员\", \"label_theme\": \"ten_annual_vip\", \"text_color\": \"#FFFFFF\", \"bg_style\": 1, \"bg_color\": \"#FB7299\", \"border_color\": \"\" }, \"avatar_subscript\": 1, \"nickname_color\": \"#FB7299\", \"role\": 7, \"avatar_subscript_url\": \"https:\\/\\/i0.hdslb.com\\/bfs\\/vip\\/icon_Certification_big_member_22_3x.png\" }, \"pendant\": { \"pid\": 0, \"name\": \"\", \"image\": \"\", \"expire\": 0, \"image_enhance\": \"\", \"image_enhance_frame\": \"\" }, \"rank\": \"10000\", \"sign\": \"↑ 【关注漫画姬】就送【漫读券5张】,当日或次日登录哔哩哔哩漫画APP即可领取,快来关注领券吧(°∀°)ノ ↑\", \"level_info\": { \"current_level\": 6 } } }", + "extend_json": "{\"from\":{\"emoji_type\":1,\"from\":\"create.comment\",\"up_close_comment\":0},\"like_icon\":{\"action\":\"\",\"action_url\":\"\",\"end\":\"\",\"end_url\":\"\",\"start\":\"\",\"start_url\":\"\"},\"topic\":{\"is_attach_topic\":1}}", + "display": { + "topic_info": { + "topic_details": [ + { + "topic_id": 7539944, + "topic_name": "哔哩哔哩漫画", + "is_activity": 0, + "topic_link": "" + }, + { + "topic_id": 148830, + "topic_name": "AISHA", + "is_activity": 1, + "topic_link": "https://www.bilibili.com/blackboard/dynamic/18159" + }, + { + "topic_id": 2514603, + "topic_name": "aisha", + "is_activity": 0, + "topic_link": "" + } + ] + }, + "origin": { + "topic_info": { + "topic_details": [ + { + "topic_id": 7539944, + "topic_name": "哔哩哔哩漫画", + "is_activity": 0, + "topic_link": "" + }, + { + "topic_id": 148830, + "topic_name": "AISHA", + "is_activity": 1, + "topic_link": "https://www.bilibili.com/blackboard/dynamic/18159" + }, + { + "topic_id": 2514603, + "topic_name": "aisha", + "is_activity": 0, + "topic_link": "" + } + ] + }, + "relation": { + "status": 1, + "is_follow": 0, + "is_followed": 0 + }, + "show_tip": { + "del_tip": "要删除动态吗?" + } + }, + "emoji_info": { + "emoji_details": [ + { + "emoji_name": "[doge]", + "id": 26, + "package_id": 1, + "state": 0, + "type": 1, + "attr": 0, + "text": "[doge]", + "url": "https://i0.hdslb.com/bfs/emote/3087d273a78ccaff4bb1e9972e2ba2a7583c9f11.png", + "meta": { + "size": 1 + }, + "mtime": 1617293741 + } + ] + }, + "relation": { + "status": 1, + "is_follow": 0, + "is_followed": 0 + }, + "up_act_button": { + "report_title": "举报", + "founder_report_title": "举报(发起人)", + "top_title": "置顶", + "top_confirm_title": "确定将此动态置顶吗", + "top_cancel_title": "确定将此动态取消置顶吗" + }, + "show_tip": { + "del_tip": "要删除动态吗?" + } + } + }, + { + "desc": { + "uid": 1192711092, + "type": 1, + "rid": 517505230885402892, + "acl": 0, + "view": 3, + "repost": 0, + "comment": 0, + "like": 0, + "is_liked": 0, + "dynamic_id": 517505230886905525, + "timestamp": 1619329476, + "pre_dy_id": 517241610091321208, + "orig_dy_id": 517241610091321208, + "orig_type": 2, + "user_profile": { + "info": { + "uid": 1192711092, + "uname": "会发光的偶恰", + "face": "https://i0.hdslb.com/bfs/face/b85a508793bd96deec61e2491d60e68f10378395.jpg" + }, + "card": { + "official_verify": { + "type": -1, + "desc": "" + } + }, + "vip": { + "vipType": 0, + "vipDueDate": 0, + "vipStatus": 0, + "themeType": 0, + "label": { + "path": "", + "text": "", + "label_theme": "", + "text_color": "", + "bg_style": 0, + "bg_color": "", + "border_color": "" + }, + "avatar_subscript": 0, + "nickname_color": "", + "role": 0, + "avatar_subscript_url": "" + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "", + "image_enhance_frame": "" + }, + "rank": "10000", + "sign": "", + "level_info": { + "current_level": 3 + } + }, + "uid_type": 1, + "recommend_info": { + "is_attention": 0 + }, + "stype": 0, + "r_type": 1, + "inner_id": 0, + "topic_board": "C", + "topic_board_desc": "最新", + "status": 1, + "dynamic_id_str": "517505230886905525", + "pre_dy_id_str": "517241610091321208", + "orig_dy_id_str": "517241610091321208", + "rid_str": "517505230885402892", + "origin": { + "uid": 326499679, + "type": 2, + "rid": 131403515, + "acl": 1024, + "view": 1962092, + "repost": 16607, + "dynamic_id": 517241610091321208, + "timestamp": 1619268097, + "uid_type": 1, + "r_type": 1, + "status": 1, + "dynamic_id_str": "517241610091321208", + "pre_dy_id_str": "0", + "orig_dy_id_str": "0", + "rid_str": "131403515" + } + }, + "card": "{ \"user\": { \"uid\": 1192711092, \"uname\": \"会发光的偶恰\", \"face\": \"https:\\/\\/i0.hdslb.com\\/bfs\\/face\\/b85a508793bd96deec61e2491d60e68f10378395.jpg\" }, \"item\": { \"rp_id\": 517505230885402892, \"uid\": 1192711092, \"content\": \"我最喜欢这个了,我也想要#哔哩哔哩漫画#\", \"orig_dy_id\": 517241610091321208, \"pre_dy_id\": 517241610091321208, \"timestamp\": 1619329476, \"reply\": 0, \"orig_type\": 2 }, \"origin\": \"{\\\"item\\\":{\\\"at_control\\\":\\\"[{\\\\\\\"type\\\\\\\":2,\\\\\\\"location\\\\\\\":0,\\\\\\\"length\\\\\\\":0,\\\\\\\"data\\\\\\\":\\\\\\\"5\\\\\\\"}]\\\",\\\"category\\\":\\\"daily\\\",\\\"description\\\":\\\"​互动抽奖 【关+转】抽1位小伙伴送【哔哩哔哩小电视兔子包】~\\\\n【#哔哩哔哩漫画# 作品推荐】大量西幻少女漫爆更来啦———\\\\n[干杯] 即日起,《重生成为公爵家的丑女》《暴君的监护人是反派魔女》《姐姐捡回了男主》等大量西幻少女精品漫画爆更,追漫更有樱花立牌\\\\\\/玩偶等福利好礼相送!\\\\n[干杯] 快来哔哩哔哩漫画追漫吧~\\\",\\\"id\\\":131403515,\\\"is_fav\\\":0,\\\"pictures\\\":[{\\\"img_height\\\":1357,\\\"img_size\\\":1759.1650390625,\\\"img_src\\\":\\\"https:\\\\\\/\\\\\\/i0.hdslb.com\\\\\\/bfs\\\\\\/album\\\\\\/1ce565e7f36e0ae5a3809df21bb39aa2fe578a88.png\\\",\\\"img_tags\\\":null,\\\"img_width\\\":1080},{\\\"img_height\\\":1238,\\\"img_size\\\":832.51953125,\\\"img_src\\\":\\\"https:\\\\\\/\\\\\\/i0.hdslb.com\\\\\\/bfs\\\\\\/album\\\\\\/6df0150c77a7f42a5d31cce8bb006105a660dad9.png\\\",\\\"img_tags\\\":null,\\\"img_width\\\":1080},{\\\"img_height\\\":2193,\\\"img_size\\\":3424.060546875,\\\"img_src\\\":\\\"https:\\\\\\/\\\\\\/i0.hdslb.com\\\\\\/bfs\\\\\\/album\\\\\\/adce81c59436184b56d84e5394583d2ab491b2e6.png\\\",\\\"img_tags\\\":null,\\\"img_width\\\":1080},{\\\"img_height\\\":800,\\\"img_size\\\":166.1552734375,\\\"img_src\\\":\\\"https:\\\\\\/\\\\\\/i0.hdslb.com\\\\\\/bfs\\\\\\/album\\\\\\/9c4e8d6fc04d5a1f3df225d5967fb65c7a3f5f09.jpg\\\",\\\"img_tags\\\":null,\\\"img_width\\\":800}],\\\"pictures_count\\\":4,\\\"reply\\\":1020,\\\"role\\\":[],\\\"settings\\\":{\\\"copy_forbidden\\\":\\\"0\\\"},\\\"source\\\":[],\\\"title\\\":\\\"\\\",\\\"upload_time\\\":1619268097},\\\"user\\\":{\\\"head_url\\\":\\\"https:\\\\\\/\\\\\\/i1.hdslb.com\\\\\\/bfs\\\\\\/face\\\\\\/2254162161a60b528cfec449f3450409a81ebc37.jpg\\\",\\\"name\\\":\\\"哔哩哔哩漫画\\\",\\\"uid\\\":326499679,\\\"vip\\\":{\\\"avatar_subscript\\\":1,\\\"due_date\\\":1941033600000,\\\"label\\\":{\\\"label_theme\\\":\\\"ten_annual_vip\\\",\\\"path\\\":\\\"\\\",\\\"text\\\":\\\"十年大会员\\\"},\\\"nickname_color\\\":\\\"#FB7299\\\",\\\"status\\\":1,\\\"theme_type\\\":0,\\\"type\\\":2,\\\"vip_pay_type\\\":0}}}\", \"origin_extension\": { \"lott\": \"{\\\"callbackId\\\":10,\\\"lottery_id\\\":61382,\\\"lottery_time\\\":1620504000,\\\"title\\\":\\\"互动抽奖\\\"}\" }, \"origin_extend_json\": \"{\\\"ctrl\\\":[{\\\"data\\\":\\\"5\\\",\\\"length\\\":0,\\\"location\\\":0,\\\"type\\\":2}],\\\"from\\\":{\\\"emoji_type\\\":1,\\\"from\\\":\\\"\\\",\\\"up_close_comment\\\":0,\\\"verify\\\":{\\\"asw\\\":{\\\"fl\\\":15,\\\"nv\\\":1},\\\"cc\\\":{\\\"vf\\\":1},\\\"sw\\\":{\\\"fl\\\":15,\\\"nv\\\":1}}},\\\"like_icon\\\":{\\\"action\\\":\\\"\\\",\\\"action_url\\\":\\\"\\\",\\\"end\\\":\\\"\\\",\\\"end_url\\\":\\\"\\\",\\\"start\\\":\\\"\\\",\\\"start_url\\\":\\\"\\\"},\\\"lott\\\":{\\\"callbackId\\\":10,\\\"lottery_id\\\":61382,\\\"lottery_time\\\":1620504000,\\\"title\\\":\\\"互动抽奖\\\"},\\\"topic\\\":{\\\"is_attach_topic\\\":1}}\", \"origin_user\": { \"info\": { \"uid\": 326499679, \"uname\": \"哔哩哔哩漫画\", \"face\": \"https:\\/\\/i1.hdslb.com\\/bfs\\/face\\/2254162161a60b528cfec449f3450409a81ebc37.jpg\" }, \"card\": { \"official_verify\": { \"type\": 1, \"desc\": \"哔哩哔哩漫画官方账号\" } }, \"vip\": { \"vipType\": 2, \"vipDueDate\": 1941033600000, \"vipStatus\": 1, \"themeType\": 0, \"label\": { \"path\": \"\", \"text\": \"十年大会员\", \"label_theme\": \"ten_annual_vip\", \"text_color\": \"#FFFFFF\", \"bg_style\": 1, \"bg_color\": \"#FB7299\", \"border_color\": \"\" }, \"avatar_subscript\": 1, \"nickname_color\": \"#FB7299\", \"role\": 7, \"avatar_subscript_url\": \"https:\\/\\/i0.hdslb.com\\/bfs\\/vip\\/icon_Certification_big_member_22_3x.png\" }, \"pendant\": { \"pid\": 0, \"name\": \"\", \"image\": \"\", \"expire\": 0, \"image_enhance\": \"\", \"image_enhance_frame\": \"\" }, \"rank\": \"10000\", \"sign\": \"↑ 【关注漫画姬】就送【漫读券5张】,当日或次日登录哔哩哔哩漫画APP即可领取,快来关注领券吧(°∀°)ノ ↑\", \"level_info\": { \"current_level\": 6 } } }", + "extend_json": "{\"from\":{\"emoji_type\":1,\"from\":\"create.comment\",\"up_close_comment\":0},\"like_icon\":{\"action\":\"\",\"action_url\":\"\",\"end\":\"\",\"end_url\":\"\",\"start\":\"\",\"start_url\":\"\"},\"topic\":{\"is_attach_topic\":1}}", + "display": { + "topic_info": { + "topic_details": [ + { + "topic_id": 7539944, + "topic_name": "哔哩哔哩漫画", + "is_activity": 0, + "topic_link": "" + } + ] + }, + "origin": { + "topic_info": { + "topic_details": [ + { + "topic_id": 7539944, + "topic_name": "哔哩哔哩漫画", + "is_activity": 0, + "topic_link": "" + } + ] + }, + "emoji_info": { + "emoji_details": [ + { + "emoji_name": "[干杯]", + "id": 1949, + "package_id": 1, + "state": 0, + "type": 1, + "attr": 0, + "text": "[干杯]", + "url": "https://i0.hdslb.com/bfs/emote/8da12d5f55a2c7e9778dcc05b40571979fe208e6.png", + "meta": { + "size": 1 + }, + "mtime": 1597738918 + } + ] + }, + "relation": { + "status": 1, + "is_follow": 0, + "is_followed": 0 + }, + "show_tip": { + "del_tip": "要删除动态吗?" + } + }, + "relation": { + "status": 1, + "is_follow": 0, + "is_followed": 0 + }, + "up_act_button": { + "report_title": "举报", + "founder_report_title": "举报(发起人)", + "top_title": "置顶", + "top_confirm_title": "确定将此动态置顶吗", + "top_cancel_title": "确定将此动态取消置顶吗" + }, + "show_tip": { + "del_tip": "要删除动态吗?" + } + } + }, + { + "desc": { + "uid": 1365116, + "type": 1, + "rid": 517503525787575777, + "acl": 0, + "view": 2, + "repost": 0, + "comment": 0, + "like": 0, + "is_liked": 0, + "dynamic_id": 517503525779637979, + "timestamp": 1619329079, + "pre_dy_id": 517241610091321208, + "orig_dy_id": 517241610091321208, + "orig_type": 2, + "user_profile": { + "info": { + "uid": 1365116, + "uname": "濑户的海参", + "face": "https://i2.hdslb.com/bfs/face/8426c61be9c3ccd2296d080a54691c3bed5f2f9f.jpg" + }, + "card": { + "official_verify": { + "type": -1, + "desc": "" + } + }, + "vip": { + "vipType": 0, + "vipDueDate": 0, + "vipStatus": 0, + "themeType": 0, + "label": { + "path": "", + "text": "", + "label_theme": "", + "text_color": "", + "bg_style": 0, + "bg_color": "", + "border_color": "" + }, + "avatar_subscript": 0, + "nickname_color": "", + "role": 0, + "avatar_subscript_url": "" + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "", + "image_enhance_frame": "" + }, + "rank": "10000", + "sign": "", + "level_info": { + "current_level": 5 + } + }, + "uid_type": 1, + "recommend_info": { + "is_attention": 0 + }, + "stype": 0, + "r_type": 1, + "inner_id": 0, + "topic_board": "C", + "topic_board_desc": "最新", + "status": 1, + "dynamic_id_str": "517503525779637979", + "pre_dy_id_str": "517241610091321208", + "orig_dy_id_str": "517241610091321208", + "rid_str": "517503525787575777", + "origin": { + "uid": 326499679, + "type": 2, + "rid": 131403515, + "acl": 1024, + "view": 1962092, + "repost": 16607, + "dynamic_id": 517241610091321208, + "timestamp": 1619268097, + "uid_type": 1, + "r_type": 1, + "status": 1, + "dynamic_id_str": "517241610091321208", + "pre_dy_id_str": "0", + "orig_dy_id_str": "0", + "rid_str": "131403515" + } + }, + "card": "{ \"user\": { \"uid\": 1365116, \"uname\": \"濑户的海参\", \"face\": \"https:\\/\\/i2.hdslb.com\\/bfs\\/face\\/8426c61be9c3ccd2296d080a54691c3bed5f2f9f.jpg\" }, \"item\": { \"rp_id\": 517503525787575777, \"uid\": 1365116, \"content\": \"嗯哼#哔哩哔哩漫画#\", \"orig_dy_id\": 517241610091321208, \"pre_dy_id\": 517241610091321208, \"timestamp\": 1619329079, \"reply\": 0, \"orig_type\": 2 }, \"origin\": \"{\\\"item\\\":{\\\"at_control\\\":\\\"[{\\\\\\\"type\\\\\\\":2,\\\\\\\"location\\\\\\\":0,\\\\\\\"length\\\\\\\":0,\\\\\\\"data\\\\\\\":\\\\\\\"5\\\\\\\"}]\\\",\\\"category\\\":\\\"daily\\\",\\\"description\\\":\\\"​互动抽奖 【关+转】抽1位小伙伴送【哔哩哔哩小电视兔子包】~\\\\n【#哔哩哔哩漫画# 作品推荐】大量西幻少女漫爆更来啦———\\\\n[干杯] 即日起,《重生成为公爵家的丑女》《暴君的监护人是反派魔女》《姐姐捡回了男主》等大量西幻少女精品漫画爆更,追漫更有樱花立牌\\\\\\/玩偶等福利好礼相送!\\\\n[干杯] 快来哔哩哔哩漫画追漫吧~\\\",\\\"id\\\":131403515,\\\"is_fav\\\":0,\\\"pictures\\\":[{\\\"img_height\\\":1357,\\\"img_size\\\":1759.1650390625,\\\"img_src\\\":\\\"https:\\\\\\/\\\\\\/i0.hdslb.com\\\\\\/bfs\\\\\\/album\\\\\\/1ce565e7f36e0ae5a3809df21bb39aa2fe578a88.png\\\",\\\"img_tags\\\":null,\\\"img_width\\\":1080},{\\\"img_height\\\":1238,\\\"img_size\\\":832.51953125,\\\"img_src\\\":\\\"https:\\\\\\/\\\\\\/i0.hdslb.com\\\\\\/bfs\\\\\\/album\\\\\\/6df0150c77a7f42a5d31cce8bb006105a660dad9.png\\\",\\\"img_tags\\\":null,\\\"img_width\\\":1080},{\\\"img_height\\\":2193,\\\"img_size\\\":3424.060546875,\\\"img_src\\\":\\\"https:\\\\\\/\\\\\\/i0.hdslb.com\\\\\\/bfs\\\\\\/album\\\\\\/adce81c59436184b56d84e5394583d2ab491b2e6.png\\\",\\\"img_tags\\\":null,\\\"img_width\\\":1080},{\\\"img_height\\\":800,\\\"img_size\\\":166.1552734375,\\\"img_src\\\":\\\"https:\\\\\\/\\\\\\/i0.hdslb.com\\\\\\/bfs\\\\\\/album\\\\\\/9c4e8d6fc04d5a1f3df225d5967fb65c7a3f5f09.jpg\\\",\\\"img_tags\\\":null,\\\"img_width\\\":800}],\\\"pictures_count\\\":4,\\\"reply\\\":1020,\\\"role\\\":[],\\\"settings\\\":{\\\"copy_forbidden\\\":\\\"0\\\"},\\\"source\\\":[],\\\"title\\\":\\\"\\\",\\\"upload_time\\\":1619268097},\\\"user\\\":{\\\"head_url\\\":\\\"https:\\\\\\/\\\\\\/i1.hdslb.com\\\\\\/bfs\\\\\\/face\\\\\\/2254162161a60b528cfec449f3450409a81ebc37.jpg\\\",\\\"name\\\":\\\"哔哩哔哩漫画\\\",\\\"uid\\\":326499679,\\\"vip\\\":{\\\"avatar_subscript\\\":1,\\\"due_date\\\":1941033600000,\\\"label\\\":{\\\"label_theme\\\":\\\"ten_annual_vip\\\",\\\"path\\\":\\\"\\\",\\\"text\\\":\\\"十年大会员\\\"},\\\"nickname_color\\\":\\\"#FB7299\\\",\\\"status\\\":1,\\\"theme_type\\\":0,\\\"type\\\":2,\\\"vip_pay_type\\\":0}}}\", \"origin_extension\": { \"lott\": \"{\\\"callbackId\\\":10,\\\"lottery_id\\\":61382,\\\"lottery_time\\\":1620504000,\\\"title\\\":\\\"互动抽奖\\\"}\" }, \"origin_extend_json\": \"{\\\"ctrl\\\":[{\\\"data\\\":\\\"5\\\",\\\"length\\\":0,\\\"location\\\":0,\\\"type\\\":2}],\\\"from\\\":{\\\"emoji_type\\\":1,\\\"from\\\":\\\"\\\",\\\"up_close_comment\\\":0,\\\"verify\\\":{\\\"asw\\\":{\\\"fl\\\":15,\\\"nv\\\":1},\\\"cc\\\":{\\\"vf\\\":1},\\\"sw\\\":{\\\"fl\\\":15,\\\"nv\\\":1}}},\\\"like_icon\\\":{\\\"action\\\":\\\"\\\",\\\"action_url\\\":\\\"\\\",\\\"end\\\":\\\"\\\",\\\"end_url\\\":\\\"\\\",\\\"start\\\":\\\"\\\",\\\"start_url\\\":\\\"\\\"},\\\"lott\\\":{\\\"callbackId\\\":10,\\\"lottery_id\\\":61382,\\\"lottery_time\\\":1620504000,\\\"title\\\":\\\"互动抽奖\\\"},\\\"topic\\\":{\\\"is_attach_topic\\\":1}}\", \"origin_user\": { \"info\": { \"uid\": 326499679, \"uname\": \"哔哩哔哩漫画\", \"face\": \"https:\\/\\/i1.hdslb.com\\/bfs\\/face\\/2254162161a60b528cfec449f3450409a81ebc37.jpg\" }, \"card\": { \"official_verify\": { \"type\": 1, \"desc\": \"哔哩哔哩漫画官方账号\" } }, \"vip\": { \"vipType\": 2, \"vipDueDate\": 1941033600000, \"vipStatus\": 1, \"themeType\": 0, \"label\": { \"path\": \"\", \"text\": \"十年大会员\", \"label_theme\": \"ten_annual_vip\", \"text_color\": \"#FFFFFF\", \"bg_style\": 1, \"bg_color\": \"#FB7299\", \"border_color\": \"\" }, \"avatar_subscript\": 1, \"nickname_color\": \"#FB7299\", \"role\": 7, \"avatar_subscript_url\": \"https:\\/\\/i0.hdslb.com\\/bfs\\/vip\\/icon_Certification_big_member_22_3x.png\" }, \"pendant\": { \"pid\": 0, \"name\": \"\", \"image\": \"\", \"expire\": 0, \"image_enhance\": \"\", \"image_enhance_frame\": \"\" }, \"rank\": \"10000\", \"sign\": \"↑ 【关注漫画姬】就送【漫读券5张】,当日或次日登录哔哩哔哩漫画APP即可领取,快来关注领券吧(°∀°)ノ ↑\", \"level_info\": { \"current_level\": 6 } } }", + "extend_json": "{\"from\":{\"emoji_type\":1,\"from\":\"create.comment\",\"up_close_comment\":0},\"like_icon\":{\"action\":\"\",\"action_url\":\"\",\"end\":\"\",\"end_url\":\"\",\"start\":\"\",\"start_url\":\"\"},\"topic\":{\"is_attach_topic\":1}}", + "display": { + "topic_info": { + "topic_details": [ + { + "topic_id": 7539944, + "topic_name": "哔哩哔哩漫画", + "is_activity": 0, + "topic_link": "" + } + ] + }, + "origin": { + "topic_info": { + "topic_details": [ + { + "topic_id": 7539944, + "topic_name": "哔哩哔哩漫画", + "is_activity": 0, + "topic_link": "" + } + ] + }, + "emoji_info": { + "emoji_details": [ + { + "emoji_name": "[干杯]", + "id": 1949, + "package_id": 1, + "state": 0, + "type": 1, + "attr": 0, + "text": "[干杯]", + "url": "https://i0.hdslb.com/bfs/emote/8da12d5f55a2c7e9778dcc05b40571979fe208e6.png", + "meta": { + "size": 1 + }, + "mtime": 1597738918 + } + ] + }, + "relation": { + "status": 1, + "is_follow": 0, + "is_followed": 0 + }, + "show_tip": { + "del_tip": "要删除动态吗?" + } + }, + "relation": { + "status": 1, + "is_follow": 0, + "is_followed": 0 + }, + "up_act_button": { + "report_title": "举报", + "founder_report_title": "举报(发起人)", + "top_title": "置顶", + "top_confirm_title": "确定将此动态置顶吗", + "top_cancel_title": "确定将此动态取消置顶吗" + }, + "show_tip": { + "del_tip": "要删除动态吗?" + } + } + }, + { + "desc": { + "uid": 326499679, + "type": 2, + "rid": 131489076, + "acl": 0, + "view": 1429218, + "repost": 34, + "comment": 23, + "like": 3872, + "is_liked": 0, + "dynamic_id": 517501494260096644, + "timestamp": 1619328606, + "pre_dy_id": 0, + "orig_dy_id": 0, + "orig_type": 0, + "user_profile": { + "info": { + "uid": 326499679, + "uname": "哔哩哔哩漫画", + "face": "https://i1.hdslb.com/bfs/face/2254162161a60b528cfec449f3450409a81ebc37.jpg" + }, + "card": { + "official_verify": { + "type": 1, + "desc": "哔哩哔哩漫画官方账号" + } + }, + "vip": { + "vipType": 2, + "vipDueDate": 1941033600000, + "vipStatus": 1, + "themeType": 0, + "label": { + "path": "", + "text": "十年大会员", + "label_theme": "ten_annual_vip", + "text_color": "#FFFFFF", + "bg_style": 1, + "bg_color": "#FB7299", + "border_color": "" + }, + "avatar_subscript": 1, + "nickname_color": "#FB7299", + "role": 7, + "avatar_subscript_url": "https://i0.hdslb.com/bfs/vip/icon_Certification_big_member_22_3x.png" + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "", + "image_enhance_frame": "" + }, + "rank": "10000", + "sign": "↑ 【关注漫画姬】就送【漫读券5张】,当日或次日登录哔哩哔哩漫画APP即可领取,快来关注领券吧(°∀°)ノ ↑", + "level_info": { + "current_level": 6 + } + }, + "uid_type": 1, + "recommend_info": { + "is_attention": 0 + }, + "stype": 0, + "r_type": 1, + "inner_id": 0, + "topic_board": "C", + "topic_board_desc": "最新", + "status": 1, + "dynamic_id_str": "517501494260096644", + "pre_dy_id_str": "0", + "orig_dy_id_str": "0", + "rid_str": "131489076" + }, + "card": "{\"item\":{\"at_control\":\"\",\"category\":\"daily\",\"description\":\"【#哔哩哔哩漫画# 限免活动+周边路透】✿ヽ(°▽°)ノ✿ \\n《#天宝伏妖录#》漫画第二卷将在【4月25日至5月2日】限时免费1周[打call][打call],感谢大家一直以来的支持[W-哈哈]!精彩剧情,不容错过!\\n同时之前《#天宝伏妖录#》第三卷活动售卖的周边近期在准备开补款啦~\\n小伙伴们先看看限定周边的实物图透叭(P1-P8)[打call]! 新卷也一直在筹备中,新卷封面同时奉上(P9)! \\n【追漫传送】:https:\\/\\/manga.bilibili.com\\/m\\/detail\\/mc27592 \",\"id\":131489076,\"is_fav\":0,\"pictures\":[{\"img_height\":5046,\"img_size\":16654.3876953125,\"img_src\":\"https:\\/\\/i0.hdslb.com\\/bfs\\/album\\/6bcd7a96fe7bc616a7ea334319b58a3ab451cda2.jpg\",\"img_tags\":null,\"img_width\":6728},{\"img_height\":5046,\"img_size\":15713.2236328125,\"img_src\":\"https:\\/\\/i0.hdslb.com\\/bfs\\/album\\/41e9e8ed2f181ce84adbb1175dcfc47b6b32d270.jpg\",\"img_tags\":null,\"img_width\":6728},{\"img_height\":5136,\"img_size\":20368.2822265625,\"img_src\":\"https:\\/\\/i0.hdslb.com\\/bfs\\/album\\/81936f0dacc1fa63264d18cdba738b3582562cdd.jpg\",\"img_tags\":null,\"img_width\":7705},{\"img_height\":4427,\"img_size\":15909.310546875,\"img_src\":\"https:\\/\\/i0.hdslb.com\\/bfs\\/album\\/5116024add807a033cf63395683c5b6ade28fbcf.jpg\",\"img_tags\":null,\"img_width\":6641},{\"img_height\":5136,\"img_size\":20431.3994140625,\"img_src\":\"https:\\/\\/i0.hdslb.com\\/bfs\\/album\\/61155f325c5a862b0dcdb1dacc95f252ac768a4e.jpg\",\"img_tags\":null,\"img_width\":7705},{\"img_height\":5261,\"img_size\":19335.5029296875,\"img_src\":\"https:\\/\\/i0.hdslb.com\\/bfs\\/album\\/6f5a7241d8f0093952edf16195b4d0aecfa2c6cd.jpg\",\"img_tags\":null,\"img_width\":7014},{\"img_height\":1408,\"img_size\":4784.3037109375,\"img_src\":\"https:\\/\\/i0.hdslb.com\\/bfs\\/album\\/0350c791822a980d72450da226b1d61fa7b68c8f.png\",\"img_tags\":null,\"img_width\":1878},{\"img_height\":1408,\"img_size\":4614.8251953125,\"img_src\":\"https:\\/\\/i0.hdslb.com\\/bfs\\/album\\/271187137e9973d07f01763a9a41b9b7f25f68fd.png\",\"img_tags\":null,\"img_width\":1878},{\"img_height\":3508,\"img_size\":1452.4482421875,\"img_src\":\"https:\\/\\/i0.hdslb.com\\/bfs\\/album\\/f818bb197c7cc914ed4c921a6f7488f87ca15faf.jpg\",\"img_tags\":null,\"img_width\":2480}],\"pictures_count\":9,\"reply\":23,\"role\":[],\"settings\":{\"copy_forbidden\":\"0\"},\"source\":[],\"title\":\"\",\"upload_time\":1619328606},\"user\":{\"head_url\":\"https:\\/\\/i1.hdslb.com\\/bfs\\/face\\/2254162161a60b528cfec449f3450409a81ebc37.jpg\",\"name\":\"哔哩哔哩漫画\",\"uid\":326499679,\"vip\":{\"avatar_subscript\":1,\"due_date\":1941033600000,\"label\":{\"label_theme\":\"ten_annual_vip\",\"path\":\"\",\"text\":\"十年大会员\"},\"nickname_color\":\"#FB7299\",\"status\":1,\"theme_type\":0,\"type\":2,\"vip_pay_type\":0}}}", + "extend_json": "{\"from\":{\"emoji_type\":1,\"from\":\"timer.publish\",\"up_close_comment\":0,\"verify\":{\"cc\":{\"nv\":1}}},\"like_icon\":{\"action\":\"\",\"action_url\":\"\",\"end\":\"\",\"end_url\":\"\",\"start\":\"\",\"start_url\":\"\"},\"topic\":{\"is_attach_topic\":1}}", + "display": { + "topic_info": { + "topic_details": [ + { + "topic_id": 7539944, + "topic_name": "哔哩哔哩漫画", + "is_activity": 0, + "topic_link": "" + }, + { + "topic_id": 3812656, + "topic_name": "天宝伏妖录", + "is_activity": 1, + "topic_link": "https://www.bilibili.com/blackboard/dynamic/62601" + } + ] + }, + "emoji_info": { + "emoji_details": [ + { + "emoji_name": "[W-哈哈]", + "id": 3045, + "package_id": 1, + "state": 0, + "type": 1, + "attr": 0, + "text": "[W-哈哈]", + "url": "https://i0.hdslb.com/bfs/emote/83d527303c8f62f494e6971c48836487e7d87b1b.png", + "meta": { + "size": 1 + }, + "mtime": 1608785082 + }, + { + "emoji_name": "[打call]", + "id": 510, + "package_id": 1, + "state": 0, + "type": 1, + "attr": 0, + "text": "[打call]", + "url": "https://i0.hdslb.com/bfs/emote/431432c43da3ee5aab5b0e4f8931953e649e9975.png", + "meta": { + "size": 1 + }, + "mtime": 1617293741 + } + ] + }, + "relation": { + "status": 1, + "is_follow": 0, + "is_followed": 0 + }, + "up_act_button": { + "report_title": "举报", + "founder_report_title": "举报(发起人)", + "top_title": "置顶", + "top_confirm_title": "确定将此动态置顶吗", + "top_cancel_title": "确定将此动态取消置顶吗" + }, + "show_tip": { + "del_tip": "要删除动态吗?" + } + } + }, + { + "desc": { + "uid": 1902548007, + "type": 2, + "rid": 131480564, + "acl": 0, + "view": 1095, + "repost": 0, + "comment": 0, + "like": 16, + "is_liked": 0, + "dynamic_id": 517482725259184156, + "timestamp": 1619324236, + "pre_dy_id": 0, + "orig_dy_id": 0, + "orig_type": 0, + "user_profile": { + "info": { + "uid": 1902548007, + "uname": "BV社", + "face": "https://i0.hdslb.com/bfs/face/48f8e6afa688e37b9f1e3721a86bea8ce02688dc.jpg" + }, + "card": { + "official_verify": { + "type": 1, + "desc": "BV社官方账号" + } + }, + "vip": { + "vipType": 0, + "vipDueDate": 0, + "vipStatus": 0, + "themeType": 0, + "label": { + "path": "", + "text": "", + "label_theme": "", + "text_color": "", + "bg_style": 0, + "bg_color": "", + "border_color": "" + }, + "avatar_subscript": 0, + "nickname_color": "", + "role": 0, + "avatar_subscript_url": "" + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "", + "image_enhance_frame": "" + }, + "rank": "10000", + "sign": "Vomic,让你爱的漫画更动听", + "level_info": { + "current_level": 2 + } + }, + "uid_type": 1, + "recommend_info": { + "is_attention": 0 + }, + "stype": 0, + "r_type": 1, + "inner_id": 0, + "topic_board": "C", + "topic_board_desc": "最新", + "status": 1, + "dynamic_id_str": "517482725259184156", + "pre_dy_id_str": "0", + "orig_dy_id_str": "0", + "rid_str": "131480564" + }, + "card": "{\"item\":{\"at_control\":\"[{\\\"location\\\":122,\\\"type\\\":1,\\\"length\\\":8,\\\"data\\\":\\\"326499679\\\"},{\\\"location\\\":133,\\\"type\\\":1,\\\"length\\\":5,\\\"data\\\":\\\"1902548007\\\"},{\\\"location\\\":141,\\\"type\\\":1,\\\"length\\\":9,\\\"data\\\":\\\"386135764\\\"},{\\\"location\\\":153,\\\"type\\\":1,\\\"length\\\":6,\\\"data\\\":\\\"1740792\\\"}]\",\"category\":\"daily\",\"description\":\"#哔哩哔哩漫画#独家\\n“女鬼”找上门,却是为了救人?\\n“养尸地?那是啥?里面有宝贝嘛?”\\n“有凶尸。”\\n哟,父子俩这是什么情况?\\n惊奇 #Vomic##幽冥诡匠#第五集正式上线!每周日更新!更多精彩,小剧场,花絮,尽在哔哩哔哩漫画APP\\n出品:@哔哩哔哩漫画\\n策划:@BV社\\n制作:@回声漫响工作室\\n录制:@音熊联萌 \",\"id\":131480564,\"is_fav\":0,\"pictures\":[{\"img_height\":2400,\"img_size\":2852.115234375,\"img_src\":\"https:\\/\\/i0.hdslb.com\\/bfs\\/album\\/cb7632509c8cb8a7703f5ab289320b26a07ec62e.jpg\",\"img_tags\":null,\"img_width\":2400}],\"pictures_count\":1,\"reply\":0,\"role\":[],\"settings\":{\"copy_forbidden\":\"0\"},\"source\":[],\"title\":\"\",\"upload_time\":1619324236},\"user\":{\"head_url\":\"https:\\/\\/i0.hdslb.com\\/bfs\\/face\\/48f8e6afa688e37b9f1e3721a86bea8ce02688dc.jpg\",\"name\":\"BV社\",\"uid\":1902548007,\"vip\":{\"avatar_subscript\":0,\"due_date\":0,\"label\":{\"label_theme\":\"\",\"path\":\"\",\"text\":\"\"},\"nickname_color\":\"\",\"status\":0,\"theme_type\":0,\"type\":0,\"vip_pay_type\":0}}}", + "extend_json": "{\"ctrl\":[{\"data\":\"326499679\",\"length\":8,\"location\":122,\"type\":1},{\"data\":\"1902548007\",\"length\":5,\"location\":133,\"type\":1},{\"data\":\"386135764\",\"length\":9,\"location\":141,\"type\":1},{\"data\":\"1740792\",\"length\":6,\"location\":153,\"type\":1}],\"from\":{\"emoji_type\":1,\"from\":\"create.dynamic.web\",\"up_close_comment\":0,\"verify\":{\"asw\":{\"fl\":15,\"nv\":1},\"sw\":{\"fl\":15,\"nv\":1}}},\"like_icon\":{\"action\":\"\",\"action_url\":\"\",\"end\":\"\",\"end_url\":\"\",\"start\":\"\",\"start_url\":\"\"},\"topic\":{\"is_attach_topic\":1}}", + "display": { + "topic_info": { + "topic_details": [ + { + "topic_id": 7539944, + "topic_name": "哔哩哔哩漫画", + "is_activity": 0, + "topic_link": "" + }, + { + "topic_id": 3208432, + "topic_name": "Vomic", + "is_activity": 1, + "topic_link": "https://www.bilibili.com/blackboard/dynamic/106426" + }, + { + "topic_id": 7128092, + "topic_name": "幽冥诡匠", + "is_activity": 1, + "topic_link": "https://www.bilibili.com/blackboard/dynamic/42527" + }, + { + "topic_id": 37542, + "topic_name": "VOMIC", + "is_activity": 1, + "topic_link": "https://www.bilibili.com/blackboard/dynamic/106283" + }, + { + "topic_id": 8972604, + "topic_name": "vomic", + "is_activity": 1, + "topic_link": "https://www.bilibili.com/blackboard/dynamic/106766" + } + ] + }, + "relation": { + "status": 1, + "is_follow": 0, + "is_followed": 0 + }, + "up_act_button": { + "report_title": "举报", + "founder_report_title": "举报(发起人)", + "top_title": "置顶", + "top_confirm_title": "确定将此动态置顶吗", + "top_cancel_title": "确定将此动态取消置顶吗" + }, + "show_tip": { + "del_tip": "要删除动态吗?" + } + } + }, + { + "desc": { + "uid": 255495142, + "type": 1, + "rid": 517480856950088884, + "acl": 0, + "view": 344, + "repost": 0, + "comment": 0, + "like": 0, + "is_liked": 0, + "dynamic_id": 517480856947349138, + "timestamp": 1619323801, + "pre_dy_id": 517479366596833835, + "orig_dy_id": 517479366596833835, + "orig_type": 2, + "user_profile": { + "info": { + "uid": 255495142, + "uname": "坐怀不乱登徒子", + "face": "https://i1.hdslb.com/bfs/face/fa18d118f6c58da704400909743fb895c4c47627.jpg" + }, + "card": { + "official_verify": { + "type": -1, + "desc": "" + } + }, + "vip": { + "vipType": 2, + "vipDueDate": 1626451200000, + "vipStatus": 1, + "themeType": 0, + "label": { + "path": "", + "text": "年度大会员", + "label_theme": "annual_vip", + "text_color": "#FFFFFF", + "bg_style": 1, + "bg_color": "#FB7299", + "border_color": "" + }, + "avatar_subscript": 1, + "nickname_color": "#FB7299", + "role": 3, + "avatar_subscript_url": "https://i0.hdslb.com/bfs/vip/icon_Certification_big_member_22_3x.png" + }, + "pendant": { + "pid": 204, + "name": "至高守护", + "image": "https://i1.hdslb.com/bfs/face/88162662c23c2768c9e9e5c25017375685e83798.png", + "expire": 0, + "image_enhance": "https://i1.hdslb.com/bfs/face/88162662c23c2768c9e9e5c25017375685e83798.png", + "image_enhance_frame": "" + }, + "rank": "10000", + "sign": "", + "level_info": { + "current_level": 5 + } + }, + "uid_type": 1, + "recommend_info": { + "is_attention": 0 + }, + "stype": 0, + "r_type": 1, + "inner_id": 0, + "topic_board": "C", + "topic_board_desc": "最新", + "status": 1, + "dynamic_id_str": "517480856947349138", + "pre_dy_id_str": "517479366596833835", + "orig_dy_id_str": "517479366596833835", + "rid_str": "517480856950088884", + "origin": { + "uid": 326499679, + "type": 2, + "rid": 131479206, + "acl": 1024, + "view": 1412747, + "repost": 11488, + "dynamic_id": 517479366596833835, + "timestamp": 1619323454, + "uid_type": 1, + "r_type": 1, + "status": 1, + "dynamic_id_str": "517479366596833835", + "pre_dy_id_str": "0", + "orig_dy_id_str": "0", + "rid_str": "131479206" + } + }, + "card": "{ \"user\": { \"uid\": 255495142, \"uname\": \"坐怀不乱登徒子\", \"face\": \"https:\\/\\/i1.hdslb.com\\/bfs\\/face\\/fa18d118f6c58da704400909743fb895c4c47627.jpg\" }, \"item\": { \"rp_id\": 517480856950088884, \"uid\": 255495142, \"content\": \"[doge]#哔哩哔哩漫画#,#AISHA#\", \"orig_dy_id\": 517479366596833835, \"pre_dy_id\": 517479366596833835, \"timestamp\": 1619323801, \"reply\": 0, \"orig_type\": 2 }, \"origin\": \"{\\\"item\\\":{\\\"at_control\\\":\\\"[{\\\\\\\"data\\\\\\\":\\\\\\\"5\\\\\\\",\\\\\\\"length\\\\\\\":0,\\\\\\\"location\\\\\\\":0,\\\\\\\"type\\\\\\\":2},{\\\\\\\"location\\\\\\\":19,\\\\\\\"type\\\\\\\":1,\\\\\\\"length\\\\\\\":8,\\\\\\\"data\\\\\\\":\\\\\\\"1425490690\\\\\\\"}]\\\",\\\"category\\\":\\\"daily\\\",\\\"description\\\":\\\"​互动抽奖 关+转,抽3位幸运小伙伴送@漫画家法吉特 【《逆光》画集作者签名版】~\\\\n #哔哩哔哩漫画#重磅安利之《#AISHA#》\\\\n当当当当!剧情党福音~\\\\n答题就有机会赢得礼物?还有法吉特太太亲签精美画集?\\\\n活动入口→https:\\\\\\/\\\\\\/www.bilibili.com\\\\\\/blackboard\\\\\\/topic\\\\\\/activity-oPISh007wv.html\\\\n\\\\n你以为这样就结束了了吗?\\\\nNONONO~\\\\n法吉特老师首次出版个人作品集《逆光》~商城4月25日0点首发开售!\\\\n有法吉特老师签名版掉落哦!随书额外附赠专属书签特典!\\\\n活动指路:哔哩哔哩漫画APP-我的-商城-banner\\\",\\\"id\\\":131479206,\\\"is_fav\\\":0,\\\"pictures\\\":[{\\\"img_height\\\":782,\\\"img_size\\\":1097.2451171875,\\\"img_src\\\":\\\"https:\\\\\\/\\\\\\/i0.hdslb.com\\\\\\/bfs\\\\\\/album\\\\\\/8965a784f77e2545f4f2f168df4f417ed3ace818.png\\\",\\\"img_tags\\\":null,\\\"img_width\\\":750}],\\\"pictures_count\\\":1,\\\"reply\\\":599,\\\"role\\\":[],\\\"settings\\\":{\\\"copy_forbidden\\\":\\\"0\\\"},\\\"source\\\":[],\\\"title\\\":\\\"\\\",\\\"upload_time\\\":1619323454},\\\"user\\\":{\\\"head_url\\\":\\\"https:\\\\\\/\\\\\\/i1.hdslb.com\\\\\\/bfs\\\\\\/face\\\\\\/2254162161a60b528cfec449f3450409a81ebc37.jpg\\\",\\\"name\\\":\\\"哔哩哔哩漫画\\\",\\\"uid\\\":326499679,\\\"vip\\\":{\\\"avatar_subscript\\\":1,\\\"due_date\\\":1941033600000,\\\"label\\\":{\\\"label_theme\\\":\\\"ten_annual_vip\\\",\\\"path\\\":\\\"\\\",\\\"text\\\":\\\"十年大会员\\\"},\\\"nickname_color\\\":\\\"#FB7299\\\",\\\"status\\\":1,\\\"theme_type\\\":0,\\\"type\\\":2,\\\"vip_pay_type\\\":0}}}\", \"origin_extension\": { \"lott\": \"{\\\"lottery_id\\\":61398}\" }, \"origin_extend_json\": \"{\\\"ctrl\\\":[{\\\"data\\\":\\\"5\\\",\\\"length\\\":0,\\\"location\\\":0,\\\"type\\\":2},{\\\"data\\\":\\\"1425490690\\\",\\\"length\\\":8,\\\"location\\\":19,\\\"type\\\":1}],\\\"from\\\":{\\\"emoji_type\\\":1,\\\"from\\\":\\\"create.dynamic.web\\\",\\\"up_close_comment\\\":0,\\\"verify\\\":{\\\"asw\\\":{\\\"fl\\\":15,\\\"nv\\\":1},\\\"cc\\\":{\\\"vf\\\":1},\\\"sw\\\":{\\\"fl\\\":15,\\\"nv\\\":1}}},\\\"like_icon\\\":{\\\"action\\\":\\\"\\\",\\\"action_url\\\":\\\"\\\",\\\"end\\\":\\\"\\\",\\\"end_url\\\":\\\"\\\",\\\"start\\\":\\\"\\\",\\\"start_url\\\":\\\"\\\"},\\\"lott\\\":{\\\"lottery_id\\\":61398},\\\"topic\\\":{\\\"is_attach_topic\\\":1}}\", \"origin_user\": { \"info\": { \"uid\": 326499679, \"uname\": \"哔哩哔哩漫画\", \"face\": \"https:\\/\\/i1.hdslb.com\\/bfs\\/face\\/2254162161a60b528cfec449f3450409a81ebc37.jpg\" }, \"card\": { \"official_verify\": { \"type\": 1, \"desc\": \"哔哩哔哩漫画官方账号\" } }, \"vip\": { \"vipType\": 2, \"vipDueDate\": 1941033600000, \"vipStatus\": 1, \"themeType\": 0, \"label\": { \"path\": \"\", \"text\": \"十年大会员\", \"label_theme\": \"ten_annual_vip\", \"text_color\": \"#FFFFFF\", \"bg_style\": 1, \"bg_color\": \"#FB7299\", \"border_color\": \"\" }, \"avatar_subscript\": 1, \"nickname_color\": \"#FB7299\", \"role\": 7, \"avatar_subscript_url\": \"https:\\/\\/i0.hdslb.com\\/bfs\\/vip\\/icon_Certification_big_member_22_3x.png\" }, \"pendant\": { \"pid\": 0, \"name\": \"\", \"image\": \"\", \"expire\": 0, \"image_enhance\": \"\", \"image_enhance_frame\": \"\" }, \"rank\": \"10000\", \"sign\": \"↑ 【关注漫画姬】就送【漫读券5张】,当日或次日登录哔哩哔哩漫画APP即可领取,快来关注领券吧(°∀°)ノ ↑\", \"level_info\": { \"current_level\": 6 } } }", + "extend_json": "{\"from\":{\"emoji_type\":1,\"from\":\"create.comment\",\"up_close_comment\":0},\"like_icon\":{\"action\":\"\",\"action_url\":\"\",\"end\":\"\",\"end_url\":\"\",\"start\":\"\",\"start_url\":\"\"},\"topic\":{\"is_attach_topic\":1}}", + "display": { + "topic_info": { + "topic_details": [ + { + "topic_id": 7539944, + "topic_name": "哔哩哔哩漫画", + "is_activity": 0, + "topic_link": "" + }, + { + "topic_id": 148830, + "topic_name": "AISHA", + "is_activity": 1, + "topic_link": "https://www.bilibili.com/blackboard/dynamic/18159" + }, + { + "topic_id": 2514603, + "topic_name": "aisha", + "is_activity": 0, + "topic_link": "" + } + ] + }, + "origin": { + "topic_info": { + "topic_details": [ + { + "topic_id": 7539944, + "topic_name": "哔哩哔哩漫画", + "is_activity": 0, + "topic_link": "" + }, + { + "topic_id": 148830, + "topic_name": "AISHA", + "is_activity": 1, + "topic_link": "https://www.bilibili.com/blackboard/dynamic/18159" + }, + { + "topic_id": 2514603, + "topic_name": "aisha", + "is_activity": 0, + "topic_link": "" + } + ] + }, + "relation": { + "status": 1, + "is_follow": 0, + "is_followed": 0 + }, + "show_tip": { + "del_tip": "要删除动态吗?" + } + }, + "emoji_info": { + "emoji_details": [ + { + "emoji_name": "[doge]", + "id": 26, + "package_id": 1, + "state": 0, + "type": 1, + "attr": 0, + "text": "[doge]", + "url": "https://i0.hdslb.com/bfs/emote/3087d273a78ccaff4bb1e9972e2ba2a7583c9f11.png", + "meta": { + "size": 1 + }, + "mtime": 1617293741 + } + ] + }, + "relation": { + "status": 1, + "is_follow": 0, + "is_followed": 0 + }, + "up_act_button": { + "report_title": "举报", + "founder_report_title": "举报(发起人)", + "top_title": "置顶", + "top_confirm_title": "确定将此动态置顶吗", + "top_cancel_title": "确定将此动态取消置顶吗" + }, + "show_tip": { + "del_tip": "要删除动态吗?" + } + } + }, + { + "desc": { + "uid": 326499679, + "type": 2, + "rid": 131479206, + "acl": 1024, + "view": 1412747, + "repost": 11488, + "comment": 599, + "like": 6530, + "is_liked": 0, + "dynamic_id": 517479366596833835, + "timestamp": 1619323454, + "orig_type": 0, + "user_profile": { + "info": { + "uid": 326499679, + "uname": "哔哩哔哩漫画", + "face": "https://i1.hdslb.com/bfs/face/2254162161a60b528cfec449f3450409a81ebc37.jpg" + }, + "card": { + "official_verify": { + "type": 1, + "desc": "哔哩哔哩漫画官方账号" + } + }, + "vip": { + "vipType": 2, + "vipDueDate": 1941033600000, + "vipStatus": 1, + "themeType": 0, + "label": { + "path": "", + "text": "十年大会员", + "label_theme": "ten_annual_vip", + "text_color": "#FFFFFF", + "bg_style": 1, + "bg_color": "#FB7299", + "border_color": "" + }, + "avatar_subscript": 1, + "nickname_color": "#FB7299", + "role": 7, + "avatar_subscript_url": "https://i0.hdslb.com/bfs/vip/icon_Certification_big_member_22_3x.png" + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "", + "image_enhance_frame": "" + }, + "rank": "10000", + "sign": "↑ 【关注漫画姬】就送【漫读券5张】,当日或次日登录哔哩哔哩漫画APP即可领取,快来关注领券吧(°∀°)ノ ↑", + "level_info": { + "current_level": 6 + } + }, + "uid_type": 1, + "recommend_info": { + "is_attention": 0 + }, + "r_type": 1, + "topic_board": "C", + "topic_board_desc": "最新", + "status": 1, + "dynamic_id_str": "517479366596833835", + "pre_dy_id_str": "0", + "orig_dy_id_str": "0", + "rid_str": "131479206" + }, + "card": "{\"item\":{\"at_control\":\"[{\\\"data\\\":\\\"5\\\",\\\"length\\\":0,\\\"location\\\":0,\\\"type\\\":2},{\\\"location\\\":19,\\\"type\\\":1,\\\"length\\\":8,\\\"data\\\":\\\"1425490690\\\"}]\",\"category\":\"daily\",\"description\":\"​互动抽奖 关+转,抽3位幸运小伙伴送@漫画家法吉特 【《逆光》画集作者签名版】~\\n #哔哩哔哩漫画#重磅安利之《#AISHA#》\\n当当当当!剧情党福音~\\n答题就有机会赢得礼物?还有法吉特太太亲签精美画集?\\n活动入口→https:\\/\\/www.bilibili.com\\/blackboard\\/topic\\/activity-oPISh007wv.html\\n\\n你以为这样就结束了了吗?\\nNONONO~\\n法吉特老师首次出版个人作品集《逆光》~商城4月25日0点首发开售!\\n有法吉特老师签名版掉落哦!随书额外附赠专属书签特典!\\n活动指路:哔哩哔哩漫画APP-我的-商城-banner\",\"id\":131479206,\"is_fav\":0,\"pictures\":[{\"img_height\":782,\"img_size\":1097.2451171875,\"img_src\":\"https:\\/\\/i0.hdslb.com\\/bfs\\/album\\/8965a784f77e2545f4f2f168df4f417ed3ace818.png\",\"img_tags\":null,\"img_width\":750}],\"pictures_count\":1,\"reply\":599,\"role\":[],\"settings\":{\"copy_forbidden\":\"0\"},\"source\":[],\"title\":\"\",\"upload_time\":1619323454},\"user\":{\"head_url\":\"https:\\/\\/i1.hdslb.com\\/bfs\\/face\\/2254162161a60b528cfec449f3450409a81ebc37.jpg\",\"name\":\"哔哩哔哩漫画\",\"uid\":326499679,\"vip\":{\"avatar_subscript\":1,\"due_date\":1941033600000,\"label\":{\"label_theme\":\"ten_annual_vip\",\"path\":\"\",\"text\":\"十年大会员\"},\"nickname_color\":\"#FB7299\",\"status\":1,\"theme_type\":0,\"type\":2,\"vip_pay_type\":0}}}", + "extension": { + "lott": "{\"lottery_id\":61398}" + }, + "extend_json": "{\"ctrl\":[{\"data\":\"5\",\"length\":0,\"location\":0,\"type\":2},{\"data\":\"1425490690\",\"length\":8,\"location\":19,\"type\":1}],\"from\":{\"emoji_type\":1,\"from\":\"create.dynamic.web\",\"up_close_comment\":0,\"verify\":{\"asw\":{\"fl\":15,\"nv\":1},\"cc\":{\"vf\":1},\"sw\":{\"fl\":15,\"nv\":1}}},\"like_icon\":{\"action\":\"\",\"action_url\":\"\",\"end\":\"\",\"end_url\":\"\",\"start\":\"\",\"start_url\":\"\"},\"lott\":{\"lottery_id\":61398},\"topic\":{\"is_attach_topic\":1}}", + "display": { + "topic_info": { + "topic_details": [ + { + "topic_id": 7539944, + "topic_name": "哔哩哔哩漫画", + "is_activity": 0, + "topic_link": "" + }, + { + "topic_id": 148830, + "topic_name": "AISHA", + "is_activity": 1, + "topic_link": "https://www.bilibili.com/blackboard/dynamic/18159" + }, + { + "topic_id": 2514603, + "topic_name": "aisha", + "is_activity": 0, + "topic_link": "" + } + ] + }, + "relation": { + "status": 1, + "is_follow": 0, + "is_followed": 0 + }, + "up_act_button": { + "report_title": "举报", + "founder_report_title": "举报(发起人)", + "top_title": "置顶", + "top_confirm_title": "确定将此动态置顶吗", + "top_cancel_title": "确定将此动态取消置顶吗" + }, + "show_tip": { + "del_tip": "要删除动态吗?" + } + } + }, + { + "desc": { + "uid": 271873076, + "type": 2, + "rid": 131468623, + "acl": 0, + "view": 23, + "repost": 0, + "comment": 0, + "like": 0, + "is_liked": 0, + "dynamic_id": 517452016241823721, + "timestamp": 1619317086, + "pre_dy_id": 0, + "orig_dy_id": 0, + "orig_type": 0, + "user_profile": { + "info": { + "uid": 271873076, + "uname": "爱乐果iLEGUO", + "face": "https://i2.hdslb.com/bfs/face/fb79ac0f6de92c8ecc7d4cd1e958d19376c85fe8.jpg" + }, + "card": { + "official_verify": { + "type": -1, + "desc": "" + } + }, + "vip": { + "vipType": 0, + "vipDueDate": 0, + "vipStatus": 0, + "themeType": 0, + "label": { + "path": "", + "text": "", + "label_theme": "", + "text_color": "", + "bg_style": 0, + "bg_color": "", + "border_color": "" + }, + "avatar_subscript": 0, + "nickname_color": "", + "role": 0, + "avatar_subscript_url": "" + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "", + "image_enhance_frame": "" + }, + "rank": "10000", + "sign": "龙俦纪+羞耻侠+妖怪IDOLS+偶像饲养手册+闪亮的家+神奇少年团+第8界+爱果系列+爱次元!研究社", + "level_info": { + "current_level": 4 + } + }, + "uid_type": 1, + "recommend_info": { + "is_attention": 0 + }, + "stype": 0, + "r_type": 1, + "inner_id": 0, + "topic_board": "C", + "topic_board_desc": "最新", + "status": 1, + "dynamic_id_str": "517452016241823721", + "pre_dy_id_str": "0", + "orig_dy_id_str": "0", + "rid_str": "131468623" + }, + "card": "{\"item\":{\"at_control\":\"\",\"category\":\"daily\",\"description\":\"《龙俦纪》第99话4月25日更新!\\n高振采药遇险,竟然从悬崖上坠入万丈深渊?!!\\n苏郃首次展现能力,苏千屹又从苏郃身上发现了什么秘密?\\n《龙俦纪》正在好评连载中,逢“五”更新,欢迎追漫!\\n#哔哩哔哩漫画# https:\\/\\/manga.bilibili.com\\/m\\/detail\\/mc26014 \\n#宝藏漫画##爱乐果##漫画##二次元##古风##玄幻##二次元条漫# \",\"id\":131468623,\"is_fav\":0,\"pictures\":[{\"img_height\":720,\"img_size\":297.19140625,\"img_src\":\"https:\\/\\/i0.hdslb.com\\/bfs\\/album\\/54e4f9e0c339f42484fcbe42cb7e7f69be4b87aa.jpg\",\"img_tags\":null,\"img_width\":1280}],\"pictures_count\":1,\"reply\":0,\"role\":[],\"settings\":{\"copy_forbidden\":\"0\"},\"source\":[],\"title\":\"\",\"upload_time\":1619317086},\"user\":{\"head_url\":\"https:\\/\\/i2.hdslb.com\\/bfs\\/face\\/fb79ac0f6de92c8ecc7d4cd1e958d19376c85fe8.jpg\",\"name\":\"爱乐果iLEGUO\",\"uid\":271873076,\"vip\":{\"avatar_subscript\":0,\"due_date\":0,\"label\":{\"label_theme\":\"\",\"path\":\"\",\"text\":\"\"},\"nickname_color\":\"\",\"status\":0,\"theme_type\":0,\"type\":0,\"vip_pay_type\":0}}}", + "extend_json": "{\"from\":{\"emoji_type\":1,\"from\":\"timer.publish\",\"up_close_comment\":0,\"verify\":{}},\"like_icon\":{\"action\":\"\",\"action_url\":\"\",\"end\":\"\",\"end_url\":\"\",\"start\":\"\",\"start_url\":\"\"},\"topic\":{\"is_attach_topic\":1}}", + "display": { + "topic_info": { + "topic_details": [ + { + "topic_id": 7539944, + "topic_name": "哔哩哔哩漫画", + "is_activity": 0, + "topic_link": "" + }, + { + "topic_id": 10182306, + "topic_name": "宝藏漫画", + "is_activity": 0, + "topic_link": "" + }, + { + "topic_id": 9628017, + "topic_name": "爱乐果", + "is_activity": 0, + "topic_link": "" + }, + { + "topic_id": 1184, + "topic_name": "漫画", + "is_activity": 0, + "topic_link": "" + }, + { + "topic_id": 1907, + "topic_name": "二次元", + "is_activity": 1, + "topic_link": "https://www.bilibili.com/blackboard/dynamic/7694" + }, + { + "topic_id": 8227, + "topic_name": "古风", + "is_activity": 0, + "topic_link": "" + }, + { + "topic_id": 62935, + "topic_name": "玄幻", + "is_activity": 0, + "topic_link": "" + }, + { + "topic_id": 12532729, + "topic_name": "二次元条漫", + "is_activity": 0, + "topic_link": "" + } + ] + }, + "relation": { + "status": 1, + "is_follow": 0, + "is_followed": 0 + }, + "up_act_button": { + "report_title": "举报", + "founder_report_title": "举报(发起人)", + "top_title": "置顶", + "top_confirm_title": "确定将此动态置顶吗", + "top_cancel_title": "确定将此动态取消置顶吗" + }, + "show_tip": { + "del_tip": "要删除动态吗?" + } + } + }, + { + "desc": { + "uid": 1677019, + "type": 1, + "rid": 517443572335742626, + "acl": 0, + "view": 5, + "repost": 0, + "comment": 0, + "like": 0, + "is_liked": 0, + "dynamic_id": 517443572332941328, + "timestamp": 1619315120, + "pre_dy_id": 517241610091321208, + "orig_dy_id": 517241610091321208, + "orig_type": 2, + "user_profile": { + "info": { + "uid": 1677019, + "uname": "逗妇卤", + "face": "https://i1.hdslb.com/bfs/face/15a8f5d8c93f8f30bda71f192b92cfde2c76a1c7.jpg" + }, + "card": { + "official_verify": { + "type": -1, + "desc": "" + } + }, + "vip": { + "vipType": 2, + "vipDueDate": 1637510400000, + "vipStatus": 1, + "themeType": 0, + "label": { + "path": "", + "text": "年度大会员", + "label_theme": "annual_vip", + "text_color": "#FFFFFF", + "bg_style": 1, + "bg_color": "#FB7299", + "border_color": "" + }, + "avatar_subscript": 1, + "nickname_color": "#FB7299", + "role": 3, + "avatar_subscript_url": "https://i0.hdslb.com/bfs/vip/icon_Certification_big_member_22_3x.png" + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "", + "image_enhance_frame": "" + }, + "rank": "10000", + "sign": "", + "level_info": { + "current_level": 5 + } + }, + "uid_type": 1, + "recommend_info": { + "is_attention": 0 + }, + "stype": 0, + "r_type": 1, + "inner_id": 0, + "topic_board": "C", + "topic_board_desc": "最新", + "status": 1, + "dynamic_id_str": "517443572332941328", + "pre_dy_id_str": "517241610091321208", + "orig_dy_id_str": "517241610091321208", + "rid_str": "517443572335742626", + "origin": { + "uid": 326499679, + "type": 2, + "rid": 131403515, + "acl": 1024, + "view": 1962092, + "repost": 16607, + "comment": 1020, + "like": 7002, + "is_liked": 0, + "dynamic_id": 517241610091321208, + "timestamp": 1619268097, + "user_profile": { + "info": { + "uid": 326499679, + "uname": "哔哩哔哩漫画", + "face": "https://i1.hdslb.com/bfs/face/2254162161a60b528cfec449f3450409a81ebc37.jpg" + }, + "card": { + "official_verify": { + "type": 1, + "desc": "哔哩哔哩漫画官方账号" + } + }, + "vip": { + "vipType": 2, + "vipDueDate": 1941033600000, + "vipStatus": 1, + "themeType": 0, + "label": { + "path": "", + "text": "十年大会员", + "label_theme": "ten_annual_vip", + "text_color": "#FFFFFF", + "bg_style": 1, + "bg_color": "#FB7299", + "border_color": "" + }, + "avatar_subscript": 1, + "nickname_color": "#FB7299", + "role": 7, + "avatar_subscript_url": "https://i0.hdslb.com/bfs/vip/icon_Certification_big_member_22_3x.png" + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "", + "image_enhance_frame": "" + }, + "rank": "10000", + "sign": "↑ 【关注漫画姬】就送【漫读券5张】,当日或次日登录哔哩哔哩漫画APP即可领取,快来关注领券吧(°∀°)ノ ↑", + "level_info": { + "current_level": 6 + } + }, + "uid_type": 1, + "r_type": 1, + "status": 1, + "dynamic_id_str": "517241610091321208", + "pre_dy_id_str": "0", + "orig_dy_id_str": "0", + "rid_str": "131403515" + } + }, + "card": "{ \"user\": { \"uid\": 1677019, \"uname\": \"逗妇卤\", \"face\": \"https:\\/\\/i1.hdslb.com\\/bfs\\/face\\/15a8f5d8c93f8f30bda71f192b92cfde2c76a1c7.jpg\" }, \"item\": { \"rp_id\": 517443572335742626, \"uid\": 1677019, \"content\": \"【关+转】抽1位小伙伴送【哔哩哔哩小电视兔子包】~\\n【#哔哩哔哩漫画# 作品推荐】大量西幻少女漫爆更来啦———\\n[干杯] 即日起,《重生成为公爵家的丑女》《暴君的监护人是反派魔女》《姐姐捡回了男主》等大量西幻少女精品漫画爆更,追漫更有樱花立牌\\/玩偶等福利好礼相送!\\n[干杯] 快来哔哩哔哩漫画追漫吧~\", \"orig_dy_id\": 517241610091321208, \"pre_dy_id\": 517241610091321208, \"timestamp\": 1619315120, \"reply\": 0, \"orig_type\": 2 }, \"origin\": \"{\\\"item\\\":{\\\"at_control\\\":\\\"[{\\\\\\\"type\\\\\\\":2,\\\\\\\"location\\\\\\\":0,\\\\\\\"length\\\\\\\":0,\\\\\\\"data\\\\\\\":\\\\\\\"5\\\\\\\"}]\\\",\\\"category\\\":\\\"daily\\\",\\\"description\\\":\\\"​互动抽奖 【关+转】抽1位小伙伴送【哔哩哔哩小电视兔子包】~\\\\n【#哔哩哔哩漫画# 作品推荐】大量西幻少女漫爆更来啦———\\\\n[干杯] 即日起,《重生成为公爵家的丑女》《暴君的监护人是反派魔女》《姐姐捡回了男主》等大量西幻少女精品漫画爆更,追漫更有樱花立牌\\\\\\/玩偶等福利好礼相送!\\\\n[干杯] 快来哔哩哔哩漫画追漫吧~\\\",\\\"id\\\":131403515,\\\"is_fav\\\":0,\\\"pictures\\\":[{\\\"img_height\\\":1357,\\\"img_size\\\":1759.1650390625,\\\"img_src\\\":\\\"https:\\\\\\/\\\\\\/i0.hdslb.com\\\\\\/bfs\\\\\\/album\\\\\\/1ce565e7f36e0ae5a3809df21bb39aa2fe578a88.png\\\",\\\"img_tags\\\":null,\\\"img_width\\\":1080},{\\\"img_height\\\":1238,\\\"img_size\\\":832.51953125,\\\"img_src\\\":\\\"https:\\\\\\/\\\\\\/i0.hdslb.com\\\\\\/bfs\\\\\\/album\\\\\\/6df0150c77a7f42a5d31cce8bb006105a660dad9.png\\\",\\\"img_tags\\\":null,\\\"img_width\\\":1080},{\\\"img_height\\\":2193,\\\"img_size\\\":3424.060546875,\\\"img_src\\\":\\\"https:\\\\\\/\\\\\\/i0.hdslb.com\\\\\\/bfs\\\\\\/album\\\\\\/adce81c59436184b56d84e5394583d2ab491b2e6.png\\\",\\\"img_tags\\\":null,\\\"img_width\\\":1080},{\\\"img_height\\\":800,\\\"img_size\\\":166.1552734375,\\\"img_src\\\":\\\"https:\\\\\\/\\\\\\/i0.hdslb.com\\\\\\/bfs\\\\\\/album\\\\\\/9c4e8d6fc04d5a1f3df225d5967fb65c7a3f5f09.jpg\\\",\\\"img_tags\\\":null,\\\"img_width\\\":800}],\\\"pictures_count\\\":4,\\\"reply\\\":1020,\\\"role\\\":[],\\\"settings\\\":{\\\"copy_forbidden\\\":\\\"0\\\"},\\\"source\\\":[],\\\"title\\\":\\\"\\\",\\\"upload_time\\\":1619268097},\\\"user\\\":{\\\"head_url\\\":\\\"https:\\\\\\/\\\\\\/i1.hdslb.com\\\\\\/bfs\\\\\\/face\\\\\\/2254162161a60b528cfec449f3450409a81ebc37.jpg\\\",\\\"name\\\":\\\"哔哩哔哩漫画\\\",\\\"uid\\\":326499679,\\\"vip\\\":{\\\"avatar_subscript\\\":1,\\\"due_date\\\":1941033600000,\\\"label\\\":{\\\"label_theme\\\":\\\"ten_annual_vip\\\",\\\"path\\\":\\\"\\\",\\\"text\\\":\\\"十年大会员\\\"},\\\"nickname_color\\\":\\\"#FB7299\\\",\\\"status\\\":1,\\\"theme_type\\\":0,\\\"type\\\":2,\\\"vip_pay_type\\\":0}}}\", \"origin_extension\": { \"lott\": \"{\\\"callbackId\\\":10,\\\"lottery_id\\\":61382,\\\"lottery_time\\\":1620504000,\\\"title\\\":\\\"互动抽奖\\\"}\" }, \"origin_extend_json\": \"{\\\"ctrl\\\":[{\\\"data\\\":\\\"5\\\",\\\"length\\\":0,\\\"location\\\":0,\\\"type\\\":2}],\\\"from\\\":{\\\"emoji_type\\\":1,\\\"from\\\":\\\"\\\",\\\"up_close_comment\\\":0,\\\"verify\\\":{\\\"asw\\\":{\\\"fl\\\":15,\\\"nv\\\":1},\\\"cc\\\":{\\\"vf\\\":1},\\\"sw\\\":{\\\"fl\\\":15,\\\"nv\\\":1}}},\\\"like_icon\\\":{\\\"action\\\":\\\"\\\",\\\"action_url\\\":\\\"\\\",\\\"end\\\":\\\"\\\",\\\"end_url\\\":\\\"\\\",\\\"start\\\":\\\"\\\",\\\"start_url\\\":\\\"\\\"},\\\"lott\\\":{\\\"callbackId\\\":10,\\\"lottery_id\\\":61382,\\\"lottery_time\\\":1620504000,\\\"title\\\":\\\"互动抽奖\\\"},\\\"topic\\\":{\\\"is_attach_topic\\\":1}}\", \"origin_user\": { \"info\": { \"uid\": 326499679, \"uname\": \"哔哩哔哩漫画\", \"face\": \"https:\\/\\/i1.hdslb.com\\/bfs\\/face\\/2254162161a60b528cfec449f3450409a81ebc37.jpg\" }, \"card\": { \"official_verify\": { \"type\": 1, \"desc\": \"哔哩哔哩漫画官方账号\" } }, \"vip\": { \"vipType\": 2, \"vipDueDate\": 1941033600000, \"vipStatus\": 1, \"themeType\": 0, \"label\": { \"path\": \"\", \"text\": \"十年大会员\", \"label_theme\": \"ten_annual_vip\", \"text_color\": \"#FFFFFF\", \"bg_style\": 1, \"bg_color\": \"#FB7299\", \"border_color\": \"\" }, \"avatar_subscript\": 1, \"nickname_color\": \"#FB7299\", \"role\": 7, \"avatar_subscript_url\": \"https:\\/\\/i0.hdslb.com\\/bfs\\/vip\\/icon_Certification_big_member_22_3x.png\" }, \"pendant\": { \"pid\": 0, \"name\": \"\", \"image\": \"\", \"expire\": 0, \"image_enhance\": \"\", \"image_enhance_frame\": \"\" }, \"rank\": \"10000\", \"sign\": \"↑ 【关注漫画姬】就送【漫读券5张】,当日或次日登录哔哩哔哩漫画APP即可领取,快来关注领券吧(°∀°)ノ ↑\", \"level_info\": { \"current_level\": 6 } } }", + "extend_json": "{\"from\":{\"emoji_type\":1,\"up_close_comment\":0,\"verify\":{\"asw\":{\"fl\":15,\"nv\":1},\"sw\":{\"fl\":15,\"nv\":1}}},\"like_icon\":{\"action\":\"\",\"action_url\":\"\",\"end\":\"\",\"end_url\":\"\",\"start\":\"\",\"start_url\":\"\"},\"topic\":{\"is_attach_topic\":1}}", + "display": { + "topic_info": { + "topic_details": [ + { + "topic_id": 7539944, + "topic_name": "哔哩哔哩漫画", + "is_activity": 0, + "topic_link": "" + } + ] + }, + "origin": { + "topic_info": { + "topic_details": [ + { + "topic_id": 7539944, + "topic_name": "哔哩哔哩漫画", + "is_activity": 0, + "topic_link": "" + } + ] + }, + "emoji_info": { + "emoji_details": [ + { + "emoji_name": "[干杯]", + "id": 1949, + "package_id": 1, + "state": 0, + "type": 1, + "attr": 0, + "text": "[干杯]", + "url": "https://i0.hdslb.com/bfs/emote/8da12d5f55a2c7e9778dcc05b40571979fe208e6.png", + "meta": { + "size": 1 + }, + "mtime": 1597738918 + } + ] + }, + "relation": { + "status": 1, + "is_follow": 0, + "is_followed": 0 + }, + "show_tip": { + "del_tip": "要删除动态吗?" + } + }, + "emoji_info": { + "emoji_details": [ + { + "emoji_name": "[干杯]", + "id": 1949, + "package_id": 1, + "state": 0, + "type": 1, + "attr": 0, + "text": "[干杯]", + "url": "https://i0.hdslb.com/bfs/emote/8da12d5f55a2c7e9778dcc05b40571979fe208e6.png", + "meta": { + "size": 1 + }, + "mtime": 1597738918 + } + ] + }, + "relation": { + "status": 1, + "is_follow": 0, + "is_followed": 0 + }, + "up_act_button": { + "report_title": "举报", + "founder_report_title": "举报(发起人)", + "top_title": "置顶", + "top_confirm_title": "确定将此动态置顶吗", + "top_cancel_title": "确定将此动态取消置顶吗" + }, + "show_tip": { + "del_tip": "要删除动态吗?" + } + } + }, + { + "desc": { + "uid": 324540735, + "type": 8, + "rid": 672631542, + "acl": 0, + "view": 31, + "repost": 0, + "like": 1, + "is_liked": 0, + "dynamic_id": 517311278755293659, + "timestamp": 1619284318, + "pre_dy_id": 0, + "orig_dy_id": 0, + "orig_type": 0, + "user_profile": { + "info": { + "uid": 324540735, + "uname": "文雯兄", + "face": "https://i0.hdslb.com/bfs/face/8000d5ad4652f8bf9074781a108eb54243a06889.jpg" + }, + "card": { + "official_verify": { + "type": -1, + "desc": "" + } + }, + "vip": { + "vipType": 1, + "vipDueDate": 1613491200000, + "vipStatus": 0, + "themeType": 0, + "label": { + "path": "", + "text": "", + "label_theme": "", + "text_color": "", + "bg_style": 0, + "bg_color": "", + "border_color": "" + }, + "avatar_subscript": 0, + "nickname_color": "", + "role": 0, + "avatar_subscript_url": "" + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "", + "image_enhance_frame": "" + }, + "rank": "10000", + "sign": "游说万乘苦不早,著鞭跨马涉远道。", + "level_info": { + "current_level": 4 + } + }, + "uid_type": 1, + "recommend_info": { + "is_attention": 0 + }, + "stype": 0, + "r_type": 1, + "inner_id": 0, + "topic_board": "C", + "topic_board_desc": "最新", + "status": 1, + "dynamic_id_str": "517311278755293659", + "pre_dy_id_str": "0", + "orig_dy_id_str": "0", + "rid_str": "672631542", + "bvid": "BV1dU4y1h78A" + }, + "card": "{\"aid\":672631542,\"attribute\":0,\"cid\":328783995,\"copyright\":1,\"ctime\":1619284318,\"desc\":\"本漫画由哔哩哔哩漫画出品,本人配音,谢谢大家的支持。\",\"dimension\":{\"height\":1920,\"rotate\":0,\"width\":864},\"duration\":191,\"dynamic\":\"\",\"item\":{\"at_control\":\"\"},\"jump_url\":\"bilibili:\\/\\/video\\/672631542\\/?page=1&player_preload=null&player_width=864&player_height=1920&player_rotate=0\",\"mission_id\":18978,\"owner\":{\"face\":\"https:\\/\\/i0.hdslb.com\\/bfs\\/face\\/8000d5ad4652f8bf9074781a108eb54243a06889.jpg\",\"mid\":324540735,\"name\":\"文雯兄\"},\"pic\":\"https:\\/\\/i0.hdslb.com\\/bfs\\/archive\\/b2d2dc3a909696ea1db3fbfeeb7ab42dc37ced87.jpg\",\"player_info\":null,\"pubdate\":1619284318,\"rights\":{\"autoplay\":1,\"bp\":0,\"download\":0,\"elec\":0,\"hd5\":0,\"is_cooperation\":0,\"movie\":0,\"no_background\":0,\"no_reprint\":1,\"pay\":0,\"ugc_pay\":0,\"ugc_pay_preview\":0},\"short_link\":\"https:\\/\\/b23.tv\\/BV1dU4y1h78A\",\"short_link_v2\":\"https:\\/\\/b23.tv\\/BV1dU4y1h78A\",\"stat\":{\"aid\":672631542,\"coin\":0,\"danmaku\":0,\"dislike\":0,\"favorite\":0,\"his_rank\":0,\"like\":1,\"now_rank\":0,\"reply\":0,\"share\":0,\"view\":10},\"state\":0,\"tid\":138,\"title\":\"怎么办,我穿越成最弱小野怪了(三十九)【关于我不当人的这件事】\",\"tname\":\"搞笑\",\"up_from_v2\":8,\"videos\":1}", + "extend_json": "{\"\":{\"ogv\":{\"ogv_id\":0}},\"dispute\":{\"content\":\"\"},\"from\":{\"from\":\"\"},\"like_icon\":{\"action\":\"\",\"action_url\":\"\",\"end\":\"\",\"end_url\":\"\",\"start\":\"\",\"start_url\":\"\"},\"topic\":{\"is_attach_topic\":1}}", + "display": { + "topic_info": { + "topic_details": [ + { + "topic_id": 19254944, + "topic_name": "火力配音王-配音剧场", + "is_activity": 1, + "topic_link": "https://www.bilibili.com/blackboard/dynamic/108663" + }, + { + "topic_id": 7539944, + "topic_name": "哔哩哔哩漫画", + "is_activity": 0, + "topic_link": "" + }, + { + "topic_id": 3844, + "topic_name": "穿越", + "is_activity": 0, + "topic_link": "" + }, + { + "topic_id": 1833, + "topic_name": "搞笑", + "is_activity": 0, + "topic_link": "" + }, + { + "topic_id": 1217, + "topic_name": "自制", + "is_activity": 0, + "topic_link": "" + }, + { + "topic_id": 1184, + "topic_name": "漫画", + "is_activity": 0, + "topic_link": "" + } + ] + }, + "usr_action_txt": "投稿了视频", + "relation": { + "status": 1, + "is_follow": 0, + "is_followed": 0 + }, + "up_act_button": { + "report_title": "举报", + "founder_report_title": "举报(发起人)", + "top_title": "置顶", + "top_confirm_title": "确定将此动态置顶吗", + "top_cancel_title": "确定将此动态取消置顶吗" + }, + "show_tip": { + "del_tip": "要删除动态吗?" + }, + "cover_play_icon_url": "https://i0.hdslb.com/bfs/album/2269afa7897830b397797ebe5f032b899b405c67.png" + } + }, + { + "desc": { + "uid": 326499679, + "type": 8, + "rid": 972719486, + "acl": 0, + "view": 2766257, + "repost": 3, + "like": 5925, + "is_liked": 0, + "dynamic_id": 517261895213635612, + "timestamp": 1619272820, + "pre_dy_id": 0, + "orig_dy_id": 0, + "orig_type": 0, + "user_profile": { + "info": { + "uid": 326499679, + "uname": "哔哩哔哩漫画", + "face": "https://i1.hdslb.com/bfs/face/2254162161a60b528cfec449f3450409a81ebc37.jpg" + }, + "card": { + "official_verify": { + "type": 1, + "desc": "哔哩哔哩漫画官方账号" + } + }, + "vip": { + "vipType": 2, + "vipDueDate": 1941033600000, + "vipStatus": 1, + "themeType": 0, + "label": { + "path": "", + "text": "十年大会员", + "label_theme": "ten_annual_vip", + "text_color": "#FFFFFF", + "bg_style": 1, + "bg_color": "#FB7299", + "border_color": "" + }, + "avatar_subscript": 1, + "nickname_color": "#FB7299", + "role": 7, + "avatar_subscript_url": "https://i0.hdslb.com/bfs/vip/icon_Certification_big_member_22_3x.png" + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "", + "image_enhance_frame": "" + }, + "rank": "10000", + "sign": "↑ 【关注漫画姬】就送【漫读券5张】,当日或次日登录哔哩哔哩漫画APP即可领取,快来关注领券吧(°∀°)ノ ↑", + "level_info": { + "current_level": 6 + } + }, + "uid_type": 1, + "recommend_info": { + "is_attention": 0 + }, + "stype": 0, + "r_type": 1, + "inner_id": 0, + "topic_board": "C", + "topic_board_desc": "最新", + "status": 1, + "dynamic_id_str": "517261895213635612", + "pre_dy_id_str": "0", + "orig_dy_id_str": "0", + "rid_str": "972719486", + "bvid": "BV1Gp4y1b7ZB" + }, + "card": "{\"aid\":972719486,\"attribute\":0,\"cid\":328058863,\"copyright\":1,\"ctime\":1619272820,\"desc\":\"#反派初始化# #Vomic#\\n圈圈叉叉,桃树开花,花瓣落下,生出新芽。\\n@哔哩哔哩漫画 出品、@BV社 策划、 @Antler_墨柚 原作、@叉叉叉叉叉口叉 主笔、@补天研究所 制作、@音熊联萌 录制、Vomic《反派初始化》第二集正式上线!\\n哔哩哔哩漫画独家播放,每周六更新!\\n还有小剧场,花絮不定时掉落、敬请期待~\\n\\n出品:@哔哩哔哩漫画\\n策划:@BV社\\n制作:@补天研究所\\n录制:@音熊联萌\",\"dimension\":{\"height\":1080,\"rotate\":0,\"width\":1920},\"duration\":62,\"dynamic\":\"#哔哩哔哩漫画#独家,#Vomic#2021年4月3日起每周六更新!更多精彩,小剧场,花絮,尽在哔哩哔哩漫画APP\",\"item\":{\"at_control\":\"\"},\"jump_url\":\"bilibili:\\/\\/video\\/972719486\\/?page=1&player_preload=null&player_width=1920&player_height=1080&player_rotate=0\",\"owner\":{\"face\":\"https:\\/\\/i1.hdslb.com\\/bfs\\/face\\/2254162161a60b528cfec449f3450409a81ebc37.jpg\",\"mid\":326499679,\"name\":\"哔哩哔哩漫画\"},\"pic\":\"https:\\/\\/i2.hdslb.com\\/bfs\\/archive\\/3c8a720b809153f95b1134acb991011eb79dc80b.jpg\",\"player_info\":null,\"pubdate\":1619272819,\"rights\":{\"autoplay\":1,\"bp\":0,\"download\":0,\"elec\":0,\"hd5\":1,\"is_cooperation\":0,\"movie\":0,\"no_background\":0,\"no_reprint\":1,\"pay\":0,\"ugc_pay\":0,\"ugc_pay_preview\":0},\"short_link\":\"https:\\/\\/b23.tv\\/BV1Gp4y1b7ZB\",\"short_link_v2\":\"https:\\/\\/b23.tv\\/BV1Gp4y1b7ZB\",\"stat\":{\"aid\":972719486,\"coin\":115,\"danmaku\":4,\"dislike\":0,\"favorite\":44,\"his_rank\":0,\"like\":5925,\"now_rank\":0,\"reply\":35,\"share\":145,\"view\":32070},\"state\":0,\"tid\":27,\"title\":\"【Vomic】滴——《反派初始化》第二集精彩片段!\",\"tname\":\"综合\",\"videos\":1}", + "extend_json": "{\"\":{\"ogv\":{\"ogv_id\":0}},\"dispute\":{\"content\":\"\"},\"from\":{\"from\":\"\",\"verify\":{}},\"like_icon\":{\"action\":\"\",\"action_url\":\"\",\"end\":\"\",\"end_url\":\"\",\"start\":\"\",\"start_url\":\"\"},\"topic\":{\"is_attach_topic\":1}}", + "display": { + "topic_info": { + "topic_details": [ + { + "topic_id": 7539944, + "topic_name": "哔哩哔哩漫画", + "is_activity": 0, + "topic_link": "" + }, + { + "topic_id": 3208432, + "topic_name": "Vomic", + "is_activity": 1, + "topic_link": "https://www.bilibili.com/blackboard/dynamic/106426" + }, + { + "topic_id": 37542, + "topic_name": "VOMIC", + "is_activity": 1, + "topic_link": "https://www.bilibili.com/blackboard/dynamic/106283" + }, + { + "topic_id": 8972604, + "topic_name": "vomic", + "is_activity": 1, + "topic_link": "https://www.bilibili.com/blackboard/dynamic/106766" + }, + { + "topic_id": 210754, + "topic_name": "夏磊", + "is_activity": 0, + "topic_link": "" + }, + { + "topic_id": 10526139, + "topic_name": "反派初始化", + "is_activity": 0, + "topic_link": "" + }, + { + "topic_id": 1322133, + "topic_name": "赵路", + "is_activity": 0, + "topic_link": "" + }, + { + "topic_id": 423864, + "topic_name": "音熊联萌", + "is_activity": 1, + "topic_link": "https://www.bilibili.com/blackboard/dynamic/17389" + } + ] + }, + "usr_action_txt": "投稿了视频", + "relation": { + "status": 1, + "is_follow": 0, + "is_followed": 0 + }, + "up_act_button": { + "report_title": "举报", + "founder_report_title": "举报(发起人)", + "top_title": "置顶", + "top_confirm_title": "确定将此动态置顶吗", + "top_cancel_title": "确定将此动态取消置顶吗" + }, + "show_tip": { + "del_tip": "要删除动态吗?" + }, + "cover_play_icon_url": "https://i0.hdslb.com/bfs/album/2269afa7897830b397797ebe5f032b899b405c67.png" + } + }, + { + "desc": { + "uid": 255495142, + "type": 1, + "rid": 517243774753706830, + "acl": 0, + "view": 9, + "repost": 0, + "comment": 0, + "like": 0, + "is_liked": 0, + "dynamic_id": 517243774755903256, + "timestamp": 1619268601, + "pre_dy_id": 517241610091321208, + "orig_dy_id": 517241610091321208, + "orig_type": 2, + "user_profile": { + "info": { + "uid": 255495142, + "uname": "坐怀不乱登徒子", + "face": "https://i1.hdslb.com/bfs/face/fa18d118f6c58da704400909743fb895c4c47627.jpg" + }, + "card": { + "official_verify": { + "type": -1, + "desc": "" + } + }, + "vip": { + "vipType": 2, + "vipDueDate": 1626451200000, + "vipStatus": 1, + "themeType": 0, + "label": { + "path": "", + "text": "年度大会员", + "label_theme": "annual_vip", + "text_color": "#FFFFFF", + "bg_style": 1, + "bg_color": "#FB7299", + "border_color": "" + }, + "avatar_subscript": 1, + "nickname_color": "#FB7299", + "role": 3, + "avatar_subscript_url": "https://i0.hdslb.com/bfs/vip/icon_Certification_big_member_22_3x.png" + }, + "pendant": { + "pid": 204, + "name": "至高守护", + "image": "https://i1.hdslb.com/bfs/face/88162662c23c2768c9e9e5c25017375685e83798.png", + "expire": 0, + "image_enhance": "https://i1.hdslb.com/bfs/face/88162662c23c2768c9e9e5c25017375685e83798.png", + "image_enhance_frame": "" + }, + "rank": "10000", + "sign": "", + "level_info": { + "current_level": 5 + } + }, + "uid_type": 1, + "recommend_info": { + "is_attention": 0 + }, + "stype": 0, + "r_type": 1, + "inner_id": 0, + "topic_board": "C", + "topic_board_desc": "最新", + "status": 1, + "dynamic_id_str": "517243774755903256", + "pre_dy_id_str": "517241610091321208", + "orig_dy_id_str": "517241610091321208", + "rid_str": "517243774753706830", + "origin": { + "uid": 326499679, + "type": 2, + "rid": 131403515, + "acl": 1024, + "view": 1962092, + "repost": 16607, + "comment": 1020, + "like": 7002, + "is_liked": 0, + "dynamic_id": 517241610091321208, + "timestamp": 1619268097, + "user_profile": { + "info": { + "uid": 326499679, + "uname": "哔哩哔哩漫画", + "face": "https://i1.hdslb.com/bfs/face/2254162161a60b528cfec449f3450409a81ebc37.jpg" + }, + "card": { + "official_verify": { + "type": 1, + "desc": "哔哩哔哩漫画官方账号" + } + }, + "vip": { + "vipType": 2, + "vipDueDate": 1941033600000, + "vipStatus": 1, + "themeType": 0, + "label": { + "path": "", + "text": "十年大会员", + "label_theme": "ten_annual_vip", + "text_color": "#FFFFFF", + "bg_style": 1, + "bg_color": "#FB7299", + "border_color": "" + }, + "avatar_subscript": 1, + "nickname_color": "#FB7299", + "role": 7, + "avatar_subscript_url": "https://i0.hdslb.com/bfs/vip/icon_Certification_big_member_22_3x.png" + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "", + "image_enhance_frame": "" + }, + "rank": "10000", + "sign": "↑ 【关注漫画姬】就送【漫读券5张】,当日或次日登录哔哩哔哩漫画APP即可领取,快来关注领券吧(°∀°)ノ ↑", + "level_info": { + "current_level": 6 + } + }, + "uid_type": 1, + "r_type": 1, + "status": 1, + "dynamic_id_str": "517241610091321208", + "pre_dy_id_str": "0", + "orig_dy_id_str": "0", + "rid_str": "131403515" + } + }, + "card": "{ \"user\": { \"uid\": 255495142, \"uname\": \"坐怀不乱登徒子\", \"face\": \"https:\\/\\/i1.hdslb.com\\/bfs\\/face\\/fa18d118f6c58da704400909743fb895c4c47627.jpg\" }, \"item\": { \"rp_id\": 517243774753706830, \"uid\": 255495142, \"content\": \"冲冲冲#哔哩哔哩漫画#\", \"orig_dy_id\": 517241610091321208, \"pre_dy_id\": 517241610091321208, \"timestamp\": 1619268601, \"reply\": 0, \"orig_type\": 2 }, \"origin\": \"{\\\"item\\\":{\\\"at_control\\\":\\\"[{\\\\\\\"type\\\\\\\":2,\\\\\\\"location\\\\\\\":0,\\\\\\\"length\\\\\\\":0,\\\\\\\"data\\\\\\\":\\\\\\\"5\\\\\\\"}]\\\",\\\"category\\\":\\\"daily\\\",\\\"description\\\":\\\"​互动抽奖 【关+转】抽1位小伙伴送【哔哩哔哩小电视兔子包】~\\\\n【#哔哩哔哩漫画# 作品推荐】大量西幻少女漫爆更来啦———\\\\n[干杯] 即日起,《重生成为公爵家的丑女》《暴君的监护人是反派魔女》《姐姐捡回了男主》等大量西幻少女精品漫画爆更,追漫更有樱花立牌\\\\\\/玩偶等福利好礼相送!\\\\n[干杯] 快来哔哩哔哩漫画追漫吧~\\\",\\\"id\\\":131403515,\\\"is_fav\\\":0,\\\"pictures\\\":[{\\\"img_height\\\":1357,\\\"img_size\\\":1759.1650390625,\\\"img_src\\\":\\\"https:\\\\\\/\\\\\\/i0.hdslb.com\\\\\\/bfs\\\\\\/album\\\\\\/1ce565e7f36e0ae5a3809df21bb39aa2fe578a88.png\\\",\\\"img_tags\\\":null,\\\"img_width\\\":1080},{\\\"img_height\\\":1238,\\\"img_size\\\":832.51953125,\\\"img_src\\\":\\\"https:\\\\\\/\\\\\\/i0.hdslb.com\\\\\\/bfs\\\\\\/album\\\\\\/6df0150c77a7f42a5d31cce8bb006105a660dad9.png\\\",\\\"img_tags\\\":null,\\\"img_width\\\":1080},{\\\"img_height\\\":2193,\\\"img_size\\\":3424.060546875,\\\"img_src\\\":\\\"https:\\\\\\/\\\\\\/i0.hdslb.com\\\\\\/bfs\\\\\\/album\\\\\\/adce81c59436184b56d84e5394583d2ab491b2e6.png\\\",\\\"img_tags\\\":null,\\\"img_width\\\":1080},{\\\"img_height\\\":800,\\\"img_size\\\":166.1552734375,\\\"img_src\\\":\\\"https:\\\\\\/\\\\\\/i0.hdslb.com\\\\\\/bfs\\\\\\/album\\\\\\/9c4e8d6fc04d5a1f3df225d5967fb65c7a3f5f09.jpg\\\",\\\"img_tags\\\":null,\\\"img_width\\\":800}],\\\"pictures_count\\\":4,\\\"reply\\\":1020,\\\"role\\\":[],\\\"settings\\\":{\\\"copy_forbidden\\\":\\\"0\\\"},\\\"source\\\":[],\\\"title\\\":\\\"\\\",\\\"upload_time\\\":1619268097},\\\"user\\\":{\\\"head_url\\\":\\\"https:\\\\\\/\\\\\\/i1.hdslb.com\\\\\\/bfs\\\\\\/face\\\\\\/2254162161a60b528cfec449f3450409a81ebc37.jpg\\\",\\\"name\\\":\\\"哔哩哔哩漫画\\\",\\\"uid\\\":326499679,\\\"vip\\\":{\\\"avatar_subscript\\\":1,\\\"due_date\\\":1941033600000,\\\"label\\\":{\\\"label_theme\\\":\\\"ten_annual_vip\\\",\\\"path\\\":\\\"\\\",\\\"text\\\":\\\"十年大会员\\\"},\\\"nickname_color\\\":\\\"#FB7299\\\",\\\"status\\\":1,\\\"theme_type\\\":0,\\\"type\\\":2,\\\"vip_pay_type\\\":0}}}\", \"origin_extension\": { \"lott\": \"{\\\"callbackId\\\":10,\\\"lottery_id\\\":61382,\\\"lottery_time\\\":1620504000,\\\"title\\\":\\\"互动抽奖\\\"}\" }, \"origin_extend_json\": \"{\\\"ctrl\\\":[{\\\"data\\\":\\\"5\\\",\\\"length\\\":0,\\\"location\\\":0,\\\"type\\\":2}],\\\"from\\\":{\\\"emoji_type\\\":1,\\\"from\\\":\\\"\\\",\\\"up_close_comment\\\":0,\\\"verify\\\":{\\\"asw\\\":{\\\"fl\\\":15,\\\"nv\\\":1},\\\"cc\\\":{\\\"vf\\\":1},\\\"sw\\\":{\\\"fl\\\":15,\\\"nv\\\":1}}},\\\"like_icon\\\":{\\\"action\\\":\\\"\\\",\\\"action_url\\\":\\\"\\\",\\\"end\\\":\\\"\\\",\\\"end_url\\\":\\\"\\\",\\\"start\\\":\\\"\\\",\\\"start_url\\\":\\\"\\\"},\\\"lott\\\":{\\\"callbackId\\\":10,\\\"lottery_id\\\":61382,\\\"lottery_time\\\":1620504000,\\\"title\\\":\\\"互动抽奖\\\"},\\\"topic\\\":{\\\"is_attach_topic\\\":1}}\", \"origin_user\": { \"info\": { \"uid\": 326499679, \"uname\": \"哔哩哔哩漫画\", \"face\": \"https:\\/\\/i1.hdslb.com\\/bfs\\/face\\/2254162161a60b528cfec449f3450409a81ebc37.jpg\" }, \"card\": { \"official_verify\": { \"type\": 1, \"desc\": \"哔哩哔哩漫画官方账号\" } }, \"vip\": { \"vipType\": 2, \"vipDueDate\": 1941033600000, \"vipStatus\": 1, \"themeType\": 0, \"label\": { \"path\": \"\", \"text\": \"十年大会员\", \"label_theme\": \"ten_annual_vip\", \"text_color\": \"#FFFFFF\", \"bg_style\": 1, \"bg_color\": \"#FB7299\", \"border_color\": \"\" }, \"avatar_subscript\": 1, \"nickname_color\": \"#FB7299\", \"role\": 7, \"avatar_subscript_url\": \"https:\\/\\/i0.hdslb.com\\/bfs\\/vip\\/icon_Certification_big_member_22_3x.png\" }, \"pendant\": { \"pid\": 0, \"name\": \"\", \"image\": \"\", \"expire\": 0, \"image_enhance\": \"\", \"image_enhance_frame\": \"\" }, \"rank\": \"10000\", \"sign\": \"↑ 【关注漫画姬】就送【漫读券5张】,当日或次日登录哔哩哔哩漫画APP即可领取,快来关注领券吧(°∀°)ノ ↑\", \"level_info\": { \"current_level\": 6 } } }", + "extend_json": "{\"from\":{\"emoji_type\":1,\"from\":\"create.comment\",\"up_close_comment\":0},\"like_icon\":{\"action\":\"\",\"action_url\":\"\",\"end\":\"\",\"end_url\":\"\",\"start\":\"\",\"start_url\":\"\"},\"topic\":{\"is_attach_topic\":1}}", + "display": { + "topic_info": { + "topic_details": [ + { + "topic_id": 7539944, + "topic_name": "哔哩哔哩漫画", + "is_activity": 0, + "topic_link": "" + } + ] + }, + "origin": { + "topic_info": { + "topic_details": [ + { + "topic_id": 7539944, + "topic_name": "哔哩哔哩漫画", + "is_activity": 0, + "topic_link": "" + } + ] + }, + "emoji_info": { + "emoji_details": [ + { + "emoji_name": "[干杯]", + "id": 1949, + "package_id": 1, + "state": 0, + "type": 1, + "attr": 0, + "text": "[干杯]", + "url": "https://i0.hdslb.com/bfs/emote/8da12d5f55a2c7e9778dcc05b40571979fe208e6.png", + "meta": { + "size": 1 + }, + "mtime": 1597738918 + } + ] + }, + "relation": { + "status": 1, + "is_follow": 0, + "is_followed": 0 + }, + "show_tip": { + "del_tip": "要删除动态吗?" + } + }, + "relation": { + "status": 1, + "is_follow": 0, + "is_followed": 0 + }, + "up_act_button": { + "report_title": "举报", + "founder_report_title": "举报(发起人)", + "top_title": "置顶", + "top_confirm_title": "确定将此动态置顶吗", + "top_cancel_title": "确定将此动态取消置顶吗" + }, + "show_tip": { + "del_tip": "要删除动态吗?" + } + } + }, + { + "desc": { + "uid": 335270851, + "type": 1, + "rid": 517243658786443535, + "acl": 0, + "view": 25, + "repost": 0, + "comment": 0, + "like": 1, + "is_liked": 0, + "dynamic_id": 517243658790736702, + "timestamp": 1619268574, + "pre_dy_id": 517241610091321208, + "orig_dy_id": 517241610091321208, + "orig_type": 2, + "user_profile": { + "info": { + "uid": 335270851, + "uname": "符号门", + "face": "https://i1.hdslb.com/bfs/face/67371311c9e047543a70c1d41e7a03c3854f2981.jpg" + }, + "card": { + "official_verify": { + "type": -1, + "desc": "" + } + }, + "vip": { + "vipType": 2, + "vipDueDate": 1647014400000, + "vipStatus": 1, + "themeType": 0, + "label": { + "path": "", + "text": "年度大会员", + "label_theme": "annual_vip", + "text_color": "#FFFFFF", + "bg_style": 1, + "bg_color": "#FB7299", + "border_color": "" + }, + "avatar_subscript": 1, + "nickname_color": "#FB7299", + "role": 3, + "avatar_subscript_url": "https://i0.hdslb.com/bfs/vip/icon_Certification_big_member_22_3x.png" + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "", + "image_enhance_frame": "" + }, + "rank": "10000", + "sign": "", + "level_info": { + "current_level": 4 + } + }, + "uid_type": 1, + "recommend_info": { + "is_attention": 0 + }, + "stype": 0, + "r_type": 1, + "inner_id": 0, + "topic_board": "C", + "topic_board_desc": "最新", + "status": 1, + "dynamic_id_str": "517243658790736702", + "pre_dy_id_str": "517241610091321208", + "orig_dy_id_str": "517241610091321208", + "rid_str": "517243658786443535", + "origin": { + "uid": 326499679, + "type": 2, + "rid": 131403515, + "acl": 1024, + "view": 1962092, + "repost": 16607, + "comment": 1020, + "like": 7002, + "is_liked": 0, + "dynamic_id": 517241610091321208, + "timestamp": 1619268097, + "user_profile": { + "info": { + "uid": 326499679, + "uname": "哔哩哔哩漫画", + "face": "https://i1.hdslb.com/bfs/face/2254162161a60b528cfec449f3450409a81ebc37.jpg" + }, + "card": { + "official_verify": { + "type": 1, + "desc": "哔哩哔哩漫画官方账号" + } + }, + "vip": { + "vipType": 2, + "vipDueDate": 1941033600000, + "vipStatus": 1, + "themeType": 0, + "label": { + "path": "", + "text": "十年大会员", + "label_theme": "ten_annual_vip", + "text_color": "#FFFFFF", + "bg_style": 1, + "bg_color": "#FB7299", + "border_color": "" + }, + "avatar_subscript": 1, + "nickname_color": "#FB7299", + "role": 7, + "avatar_subscript_url": "https://i0.hdslb.com/bfs/vip/icon_Certification_big_member_22_3x.png" + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "", + "image_enhance_frame": "" + }, + "rank": "10000", + "sign": "↑ 【关注漫画姬】就送【漫读券5张】,当日或次日登录哔哩哔哩漫画APP即可领取,快来关注领券吧(°∀°)ノ ↑", + "level_info": { + "current_level": 6 + } + }, + "uid_type": 1, + "r_type": 1, + "status": 1, + "dynamic_id_str": "517241610091321208", + "pre_dy_id_str": "0", + "orig_dy_id_str": "0", + "rid_str": "131403515" + } + }, + "card": "{ \"user\": { \"uid\": 335270851, \"uname\": \"符号门\", \"face\": \"https:\\/\\/i1.hdslb.com\\/bfs\\/face\\/67371311c9e047543a70c1d41e7a03c3854f2981.jpg\" }, \"item\": { \"rp_id\": 517243658786443535, \"uid\": 335270851, \"content\": \"#哔哩哔哩漫画#[打call][打call][打call]\", \"orig_dy_id\": 517241610091321208, \"pre_dy_id\": 517241610091321208, \"timestamp\": 1619268574, \"reply\": 0, \"orig_type\": 2 }, \"origin\": \"{\\\"item\\\":{\\\"at_control\\\":\\\"[{\\\\\\\"type\\\\\\\":2,\\\\\\\"location\\\\\\\":0,\\\\\\\"length\\\\\\\":0,\\\\\\\"data\\\\\\\":\\\\\\\"5\\\\\\\"}]\\\",\\\"category\\\":\\\"daily\\\",\\\"description\\\":\\\"​互动抽奖 【关+转】抽1位小伙伴送【哔哩哔哩小电视兔子包】~\\\\n【#哔哩哔哩漫画# 作品推荐】大量西幻少女漫爆更来啦———\\\\n[干杯] 即日起,《重生成为公爵家的丑女》《暴君的监护人是反派魔女》《姐姐捡回了男主》等大量西幻少女精品漫画爆更,追漫更有樱花立牌\\\\\\/玩偶等福利好礼相送!\\\\n[干杯] 快来哔哩哔哩漫画追漫吧~\\\",\\\"id\\\":131403515,\\\"is_fav\\\":0,\\\"pictures\\\":[{\\\"img_height\\\":1357,\\\"img_size\\\":1759.1650390625,\\\"img_src\\\":\\\"https:\\\\\\/\\\\\\/i0.hdslb.com\\\\\\/bfs\\\\\\/album\\\\\\/1ce565e7f36e0ae5a3809df21bb39aa2fe578a88.png\\\",\\\"img_tags\\\":null,\\\"img_width\\\":1080},{\\\"img_height\\\":1238,\\\"img_size\\\":832.51953125,\\\"img_src\\\":\\\"https:\\\\\\/\\\\\\/i0.hdslb.com\\\\\\/bfs\\\\\\/album\\\\\\/6df0150c77a7f42a5d31cce8bb006105a660dad9.png\\\",\\\"img_tags\\\":null,\\\"img_width\\\":1080},{\\\"img_height\\\":2193,\\\"img_size\\\":3424.060546875,\\\"img_src\\\":\\\"https:\\\\\\/\\\\\\/i0.hdslb.com\\\\\\/bfs\\\\\\/album\\\\\\/adce81c59436184b56d84e5394583d2ab491b2e6.png\\\",\\\"img_tags\\\":null,\\\"img_width\\\":1080},{\\\"img_height\\\":800,\\\"img_size\\\":166.1552734375,\\\"img_src\\\":\\\"https:\\\\\\/\\\\\\/i0.hdslb.com\\\\\\/bfs\\\\\\/album\\\\\\/9c4e8d6fc04d5a1f3df225d5967fb65c7a3f5f09.jpg\\\",\\\"img_tags\\\":null,\\\"img_width\\\":800}],\\\"pictures_count\\\":4,\\\"reply\\\":1020,\\\"role\\\":[],\\\"settings\\\":{\\\"copy_forbidden\\\":\\\"0\\\"},\\\"source\\\":[],\\\"title\\\":\\\"\\\",\\\"upload_time\\\":1619268097},\\\"user\\\":{\\\"head_url\\\":\\\"https:\\\\\\/\\\\\\/i1.hdslb.com\\\\\\/bfs\\\\\\/face\\\\\\/2254162161a60b528cfec449f3450409a81ebc37.jpg\\\",\\\"name\\\":\\\"哔哩哔哩漫画\\\",\\\"uid\\\":326499679,\\\"vip\\\":{\\\"avatar_subscript\\\":1,\\\"due_date\\\":1941033600000,\\\"label\\\":{\\\"label_theme\\\":\\\"ten_annual_vip\\\",\\\"path\\\":\\\"\\\",\\\"text\\\":\\\"十年大会员\\\"},\\\"nickname_color\\\":\\\"#FB7299\\\",\\\"status\\\":1,\\\"theme_type\\\":0,\\\"type\\\":2,\\\"vip_pay_type\\\":0}}}\", \"origin_extension\": { \"lott\": \"{\\\"callbackId\\\":10,\\\"lottery_id\\\":61382,\\\"lottery_time\\\":1620504000,\\\"title\\\":\\\"互动抽奖\\\"}\" }, \"origin_extend_json\": \"{\\\"ctrl\\\":[{\\\"data\\\":\\\"5\\\",\\\"length\\\":0,\\\"location\\\":0,\\\"type\\\":2}],\\\"from\\\":{\\\"emoji_type\\\":1,\\\"from\\\":\\\"\\\",\\\"up_close_comment\\\":0,\\\"verify\\\":{\\\"asw\\\":{\\\"fl\\\":15,\\\"nv\\\":1},\\\"cc\\\":{\\\"vf\\\":1},\\\"sw\\\":{\\\"fl\\\":15,\\\"nv\\\":1}}},\\\"like_icon\\\":{\\\"action\\\":\\\"\\\",\\\"action_url\\\":\\\"\\\",\\\"end\\\":\\\"\\\",\\\"end_url\\\":\\\"\\\",\\\"start\\\":\\\"\\\",\\\"start_url\\\":\\\"\\\"},\\\"lott\\\":{\\\"callbackId\\\":10,\\\"lottery_id\\\":61382,\\\"lottery_time\\\":1620504000,\\\"title\\\":\\\"互动抽奖\\\"},\\\"topic\\\":{\\\"is_attach_topic\\\":1}}\", \"origin_user\": { \"info\": { \"uid\": 326499679, \"uname\": \"哔哩哔哩漫画\", \"face\": \"https:\\/\\/i1.hdslb.com\\/bfs\\/face\\/2254162161a60b528cfec449f3450409a81ebc37.jpg\" }, \"card\": { \"official_verify\": { \"type\": 1, \"desc\": \"哔哩哔哩漫画官方账号\" } }, \"vip\": { \"vipType\": 2, \"vipDueDate\": 1941033600000, \"vipStatus\": 1, \"themeType\": 0, \"label\": { \"path\": \"\", \"text\": \"十年大会员\", \"label_theme\": \"ten_annual_vip\", \"text_color\": \"#FFFFFF\", \"bg_style\": 1, \"bg_color\": \"#FB7299\", \"border_color\": \"\" }, \"avatar_subscript\": 1, \"nickname_color\": \"#FB7299\", \"role\": 7, \"avatar_subscript_url\": \"https:\\/\\/i0.hdslb.com\\/bfs\\/vip\\/icon_Certification_big_member_22_3x.png\" }, \"pendant\": { \"pid\": 0, \"name\": \"\", \"image\": \"\", \"expire\": 0, \"image_enhance\": \"\", \"image_enhance_frame\": \"\" }, \"rank\": \"10000\", \"sign\": \"↑ 【关注漫画姬】就送【漫读券5张】,当日或次日登录哔哩哔哩漫画APP即可领取,快来关注领券吧(°∀°)ノ ↑\", \"level_info\": { \"current_level\": 6 } } }", + "extend_json": "{\"from\":{\"emoji_type\":1,\"up_close_comment\":0},\"like_icon\":{\"action\":\"\",\"action_url\":\"\",\"end\":\"\",\"end_url\":\"\",\"start\":\"\",\"start_url\":\"\"},\"topic\":{\"is_attach_topic\":1}}", + "display": { + "topic_info": { + "topic_details": [ + { + "topic_id": 7539944, + "topic_name": "哔哩哔哩漫画", + "is_activity": 0, + "topic_link": "" + } + ] + }, + "origin": { + "topic_info": { + "topic_details": [ + { + "topic_id": 7539944, + "topic_name": "哔哩哔哩漫画", + "is_activity": 0, + "topic_link": "" + } + ] + }, + "emoji_info": { + "emoji_details": [ + { + "emoji_name": "[干杯]", + "id": 1949, + "package_id": 1, + "state": 0, + "type": 1, + "attr": 0, + "text": "[干杯]", + "url": "https://i0.hdslb.com/bfs/emote/8da12d5f55a2c7e9778dcc05b40571979fe208e6.png", + "meta": { + "size": 1 + }, + "mtime": 1597738918 + } + ] + }, + "relation": { + "status": 1, + "is_follow": 0, + "is_followed": 0 + }, + "show_tip": { + "del_tip": "要删除动态吗?" + } + }, + "emoji_info": { + "emoji_details": [ + { + "emoji_name": "[打call]", + "id": 510, + "package_id": 1, + "state": 0, + "type": 1, + "attr": 0, + "text": "[打call]", + "url": "https://i0.hdslb.com/bfs/emote/431432c43da3ee5aab5b0e4f8931953e649e9975.png", + "meta": { + "size": 1 + }, + "mtime": 1617293741 + } + ] + }, + "relation": { + "status": 1, + "is_follow": 0, + "is_followed": 0 + }, + "up_act_button": { + "report_title": "举报", + "founder_report_title": "举报(发起人)", + "top_title": "置顶", + "top_confirm_title": "确定将此动态置顶吗", + "top_cancel_title": "确定将此动态取消置顶吗" + }, + "show_tip": { + "del_tip": "要删除动态吗?" + } + } + }, + { + "desc": { + "uid": 326499679, + "type": 2, + "rid": 131403515, + "acl": 1024, + "view": 1962092, + "repost": 16607, + "comment": 1020, + "like": 7002, + "is_liked": 0, + "dynamic_id": 517241610091321208, + "timestamp": 1619268097, + "orig_type": 0, + "user_profile": { + "info": { + "uid": 326499679, + "uname": "哔哩哔哩漫画", + "face": "https://i1.hdslb.com/bfs/face/2254162161a60b528cfec449f3450409a81ebc37.jpg" + }, + "card": { + "official_verify": { + "type": 1, + "desc": "哔哩哔哩漫画官方账号" + } + }, + "vip": { + "vipType": 2, + "vipDueDate": 1941033600000, + "vipStatus": 1, + "themeType": 0, + "label": { + "path": "", + "text": "十年大会员", + "label_theme": "ten_annual_vip", + "text_color": "#FFFFFF", + "bg_style": 1, + "bg_color": "#FB7299", + "border_color": "" + }, + "avatar_subscript": 1, + "nickname_color": "#FB7299", + "role": 7, + "avatar_subscript_url": "https://i0.hdslb.com/bfs/vip/icon_Certification_big_member_22_3x.png" + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "", + "image_enhance_frame": "" + }, + "rank": "10000", + "sign": "↑ 【关注漫画姬】就送【漫读券5张】,当日或次日登录哔哩哔哩漫画APP即可领取,快来关注领券吧(°∀°)ノ ↑", + "level_info": { + "current_level": 6 + } + }, + "uid_type": 1, + "recommend_info": { + "is_attention": 0 + }, + "r_type": 1, + "topic_board": "C", + "topic_board_desc": "最新", + "status": 1, + "dynamic_id_str": "517241610091321208", + "pre_dy_id_str": "0", + "orig_dy_id_str": "0", + "rid_str": "131403515" + }, + "card": "{\"item\":{\"at_control\":\"[{\\\"type\\\":2,\\\"location\\\":0,\\\"length\\\":0,\\\"data\\\":\\\"5\\\"}]\",\"category\":\"daily\",\"description\":\"​互动抽奖 【关+转】抽1位小伙伴送【哔哩哔哩小电视兔子包】~\\n【#哔哩哔哩漫画# 作品推荐】大量西幻少女漫爆更来啦———\\n[干杯] 即日起,《重生成为公爵家的丑女》《暴君的监护人是反派魔女》《姐姐捡回了男主》等大量西幻少女精品漫画爆更,追漫更有樱花立牌\\/玩偶等福利好礼相送!\\n[干杯] 快来哔哩哔哩漫画追漫吧~\",\"id\":131403515,\"is_fav\":0,\"pictures\":[{\"img_height\":1357,\"img_size\":1759.1650390625,\"img_src\":\"https:\\/\\/i0.hdslb.com\\/bfs\\/album\\/1ce565e7f36e0ae5a3809df21bb39aa2fe578a88.png\",\"img_tags\":null,\"img_width\":1080},{\"img_height\":1238,\"img_size\":832.51953125,\"img_src\":\"https:\\/\\/i0.hdslb.com\\/bfs\\/album\\/6df0150c77a7f42a5d31cce8bb006105a660dad9.png\",\"img_tags\":null,\"img_width\":1080},{\"img_height\":2193,\"img_size\":3424.060546875,\"img_src\":\"https:\\/\\/i0.hdslb.com\\/bfs\\/album\\/adce81c59436184b56d84e5394583d2ab491b2e6.png\",\"img_tags\":null,\"img_width\":1080},{\"img_height\":800,\"img_size\":166.1552734375,\"img_src\":\"https:\\/\\/i0.hdslb.com\\/bfs\\/album\\/9c4e8d6fc04d5a1f3df225d5967fb65c7a3f5f09.jpg\",\"img_tags\":null,\"img_width\":800}],\"pictures_count\":4,\"reply\":1020,\"role\":[],\"settings\":{\"copy_forbidden\":\"0\"},\"source\":[],\"title\":\"\",\"upload_time\":1619268097},\"user\":{\"head_url\":\"https:\\/\\/i1.hdslb.com\\/bfs\\/face\\/2254162161a60b528cfec449f3450409a81ebc37.jpg\",\"name\":\"哔哩哔哩漫画\",\"uid\":326499679,\"vip\":{\"avatar_subscript\":1,\"due_date\":1941033600000,\"label\":{\"label_theme\":\"ten_annual_vip\",\"path\":\"\",\"text\":\"十年大会员\"},\"nickname_color\":\"#FB7299\",\"status\":1,\"theme_type\":0,\"type\":2,\"vip_pay_type\":0}}}", + "extension": { + "lott": "{\"callbackId\":10,\"lottery_id\":61382,\"lottery_time\":1620504000,\"title\":\"互动抽奖\"}" + }, + "extend_json": "{\"ctrl\":[{\"data\":\"5\",\"length\":0,\"location\":0,\"type\":2}],\"from\":{\"emoji_type\":1,\"from\":\"\",\"up_close_comment\":0,\"verify\":{\"asw\":{\"fl\":15,\"nv\":1},\"cc\":{\"vf\":1},\"sw\":{\"fl\":15,\"nv\":1}}},\"like_icon\":{\"action\":\"\",\"action_url\":\"\",\"end\":\"\",\"end_url\":\"\",\"start\":\"\",\"start_url\":\"\"},\"lott\":{\"callbackId\":10,\"lottery_id\":61382,\"lottery_time\":1620504000,\"title\":\"互动抽奖\"},\"topic\":{\"is_attach_topic\":1}}", + "display": { + "topic_info": { + "topic_details": [ + { + "topic_id": 7539944, + "topic_name": "哔哩哔哩漫画", + "is_activity": 0, + "topic_link": "" + } + ] + }, + "emoji_info": { + "emoji_details": [ + { + "emoji_name": "[干杯]", + "id": 1949, + "package_id": 1, + "state": 0, + "type": 1, + "attr": 0, + "text": "[干杯]", + "url": "https://i0.hdslb.com/bfs/emote/8da12d5f55a2c7e9778dcc05b40571979fe208e6.png", + "meta": { + "size": 1 + }, + "mtime": 1597738918 + } + ] + }, + "relation": { + "status": 1, + "is_follow": 0, + "is_followed": 0 + }, + "up_act_button": { + "report_title": "举报", + "founder_report_title": "举报(发起人)", + "top_title": "置顶", + "top_confirm_title": "确定将此动态置顶吗", + "top_cancel_title": "确定将此动态取消置顶吗" + }, + "show_tip": { + "del_tip": "要删除动态吗?" + } + } + }, + { + "desc": { + "uid": 326499679, + "type": 2, + "rid": 131384529, + "acl": 0, + "view": 1605629, + "repost": 5, + "comment": 63, + "like": 4631, + "is_liked": 0, + "dynamic_id": 517215462328123502, + "timestamp": 1619262009, + "pre_dy_id": 0, + "orig_dy_id": 0, + "orig_type": 0, + "user_profile": { + "info": { + "uid": 326499679, + "uname": "哔哩哔哩漫画", + "face": "https://i1.hdslb.com/bfs/face/2254162161a60b528cfec449f3450409a81ebc37.jpg" + }, + "card": { + "official_verify": { + "type": 1, + "desc": "哔哩哔哩漫画官方账号" + } + }, + "vip": { + "vipType": 2, + "vipDueDate": 1941033600000, + "vipStatus": 1, + "themeType": 0, + "label": { + "path": "", + "text": "十年大会员", + "label_theme": "ten_annual_vip", + "text_color": "#FFFFFF", + "bg_style": 1, + "bg_color": "#FB7299", + "border_color": "" + }, + "avatar_subscript": 1, + "nickname_color": "#FB7299", + "role": 7, + "avatar_subscript_url": "https://i0.hdslb.com/bfs/vip/icon_Certification_big_member_22_3x.png" + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "", + "image_enhance_frame": "" + }, + "rank": "10000", + "sign": "↑ 【关注漫画姬】就送【漫读券5张】,当日或次日登录哔哩哔哩漫画APP即可领取,快来关注领券吧(°∀°)ノ ↑", + "level_info": { + "current_level": 6 + } + }, + "uid_type": 1, + "recommend_info": { + "is_attention": 0 + }, + "stype": 0, + "r_type": 1, + "inner_id": 0, + "topic_board": "C", + "topic_board_desc": "最新", + "status": 1, + "dynamic_id_str": "517215462328123502", + "pre_dy_id_str": "0", + "orig_dy_id_str": "0", + "rid_str": "131384529" + }, + "card": "{\"item\":{\"at_control\":\"\",\"category\":\"daily\",\"description\":\"【#哔哩哔哩漫画# 近期更新】(`・ω・´)\\nP1《#辉夜大小姐想让我告白# ~天才们的恋爱头脑战~ 》:https:\\/\\/manga.bilibili.com\\/m\\/detail\\/mc26009\\nP2《#入间同学入魔了#!》:https:\\/\\/manga.bilibili.com\\/m\\/detail\\/mc27189\\nP3《催眠麦克风-Division Rap Battle- side D.H&B.A.T》\\nP4《他和她的魔法契约》\\nP5《瓦尼塔斯的手记》\\nP6《见面5秒开始战斗》\\nP7《魔气来袭》\\nP8《尖帽子的魔法工坊》 \",\"id\":131384529,\"is_fav\":0,\"pictures\":[{\"img_height\":2920,\"img_size\":1993.103515625,\"img_src\":\"https:\\/\\/i0.hdslb.com\\/bfs\\/album\\/24a3e5d04e8ad86fcdae48e6ee88f90a0351f82d.jpg\",\"img_tags\":null,\"img_width\":2000},{\"img_height\":2872,\"img_size\":2453.1513671875,\"img_src\":\"https:\\/\\/i0.hdslb.com\\/bfs\\/album\\/d512d771dd3f91b54733f104e5de7e38d61ef56c.jpg\",\"img_tags\":null,\"img_width\":2000},{\"img_height\":2806,\"img_size\":4156.140625,\"img_src\":\"https:\\/\\/i0.hdslb.com\\/bfs\\/album\\/119fe01717120eb9c8c04d2c48a22298c8f88d17.jpg\",\"img_tags\":null,\"img_width\":2000},{\"img_height\":1147,\"img_size\":152.23046875,\"img_src\":\"https:\\/\\/i0.hdslb.com\\/bfs\\/album\\/d2fb2a6d2229a03ea967ee2182faefd67b0811fd.jpg\",\"img_tags\":null,\"img_width\":800},{\"img_height\":2637,\"img_size\":10432.2978515625,\"img_src\":\"https:\\/\\/i0.hdslb.com\\/bfs\\/album\\/e8966e96d34938474eebfcf60f38e14932e09be4.jpg\",\"img_tags\":null,\"img_width\":3600},{\"img_height\":2268,\"img_size\":6175.017578125,\"img_src\":\"https:\\/\\/i0.hdslb.com\\/bfs\\/album\\/4ed99d7329108e9e585db49da63a56bdcf7e8670.jpg\",\"img_tags\":null,\"img_width\":3200},{\"img_height\":1461,\"img_size\":283.990234375,\"img_src\":\"https:\\/\\/i0.hdslb.com\\/bfs\\/album\\/a8f37ec732103b1912fd3448d06d610cae5486df.jpg\",\"img_tags\":null,\"img_width\":800},{\"img_height\":2871,\"img_size\":3639.478515625,\"img_src\":\"https:\\/\\/i0.hdslb.com\\/bfs\\/album\\/fe8e58fd4f7c7063f880f064b3366e758dbfd7ee.jpg\",\"img_tags\":null,\"img_width\":2000}],\"pictures_count\":8,\"reply\":63,\"role\":[],\"settings\":{\"copy_forbidden\":\"0\"},\"source\":[],\"title\":\"\",\"upload_time\":1619262009},\"user\":{\"head_url\":\"https:\\/\\/i1.hdslb.com\\/bfs\\/face\\/2254162161a60b528cfec449f3450409a81ebc37.jpg\",\"name\":\"哔哩哔哩漫画\",\"uid\":326499679,\"vip\":{\"avatar_subscript\":1,\"due_date\":1941033600000,\"label\":{\"label_theme\":\"ten_annual_vip\",\"path\":\"\",\"text\":\"十年大会员\"},\"nickname_color\":\"#FB7299\",\"status\":1,\"theme_type\":0,\"type\":2,\"vip_pay_type\":0}}}", + "extend_json": "{\"from\":{\"emoji_type\":1,\"from\":\"timer.publish\",\"up_close_comment\":0,\"verify\":{\"cc\":{\"nv\":1}}},\"like_icon\":{\"action\":\"\",\"action_url\":\"\",\"end\":\"\",\"end_url\":\"\",\"start\":\"\",\"start_url\":\"\"},\"topic\":{\"is_attach_topic\":1}}", + "display": { + "topic_info": { + "topic_details": [ + { + "topic_id": 7539944, + "topic_name": "哔哩哔哩漫画", + "is_activity": 0, + "topic_link": "" + }, + { + "topic_id": 4386628, + "topic_name": "辉夜大小姐想让我告白", + "is_activity": 0, + "topic_link": "" + }, + { + "topic_id": 8724199, + "topic_name": "入间同学入魔了", + "is_activity": 1, + "topic_link": "https://www.bilibili.com/blackboard/dynamic/69330" + } + ] + }, + "relation": { + "status": 1, + "is_follow": 0, + "is_followed": 0 + }, + "up_act_button": { + "report_title": "举报", + "founder_report_title": "举报(发起人)", + "top_title": "置顶", + "top_confirm_title": "确定将此动态置顶吗", + "top_cancel_title": "确定将此动态取消置顶吗" + }, + "show_tip": { + "del_tip": "要删除动态吗?" + } + } + }, + { + "desc": { + "uid": 1572178656, + "type": 2, + "rid": 131375699, + "acl": 0, + "view": 13, + "repost": 0, + "comment": 0, + "like": 0, + "is_liked": 0, + "dynamic_id": 517200331161362689, + "timestamp": 1619258486, + "pre_dy_id": 0, + "orig_dy_id": 0, + "orig_type": 0, + "user_profile": { + "info": { + "uid": 1572178656, + "uname": "星宿战纪漫画", + "face": "https://i0.hdslb.com/bfs/face/f791586939dcbd3f19545af1e65c369983e63c39.jpg" + }, + "card": { + "official_verify": { + "type": -1, + "desc": "" + } + }, + "vip": { + "vipType": 0, + "vipDueDate": 0, + "vipStatus": 0, + "themeType": 0, + "label": { + "path": "", + "text": "", + "label_theme": "", + "text_color": "", + "bg_style": 0, + "bg_color": "", + "border_color": "" + }, + "avatar_subscript": 0, + "nickname_color": "", + "role": 0, + "avatar_subscript_url": "" + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "", + "image_enhance_frame": "" + }, + "rank": "10000", + "sign": "", + "level_info": { + "current_level": 2 + } + }, + "uid_type": 1, + "recommend_info": { + "is_attention": 0 + }, + "stype": 0, + "r_type": 1, + "inner_id": 0, + "topic_board": "C", + "topic_board_desc": "最新", + "status": 1, + "dynamic_id_str": "517200331161362689", + "pre_dy_id_str": "0", + "orig_dy_id_str": "0", + "rid_str": "131375699" + }, + "card": "{\"item\":{\"at_control\":\"\",\"category\":\"daily\",\"description\":\"#哔哩哔哩漫画# #星宿战纪# #星宿战纪漫画# #漫画# B漫:https:\\/\\/manga.bilibili.com\\/m\\/detail\\/mc29438\\n闭关修炼ing的小金蝉~可可爱爱[热词系列_奥力给]\",\"id\":131375699,\"is_fav\":0,\"pictures\":[{\"img_height\":593,\"img_size\":86.4052734375,\"img_src\":\"https:\\/\\/i0.hdslb.com\\/bfs\\/album\\/d3074ad36616678a285de9011d3ba1cee04fa69e.jpg\",\"img_tags\":null,\"img_width\":375}],\"pictures_count\":1,\"reply\":0,\"role\":[],\"settings\":{\"copy_forbidden\":\"0\"},\"source\":[],\"title\":\"\",\"upload_time\":1619258486},\"user\":{\"head_url\":\"https:\\/\\/i0.hdslb.com\\/bfs\\/face\\/f791586939dcbd3f19545af1e65c369983e63c39.jpg\",\"name\":\"星宿战纪漫画\",\"uid\":1572178656,\"vip\":{\"avatar_subscript\":0,\"due_date\":0,\"label\":{\"label_theme\":\"\",\"path\":\"\",\"text\":\"\"},\"nickname_color\":\"\",\"status\":0,\"theme_type\":0,\"type\":0,\"vip_pay_type\":0}}}", + "extend_json": "{\"from\":{\"emoji_type\":1,\"from\":\"\",\"up_close_comment\":0,\"verify\":{}},\"like_icon\":{\"action\":\"\",\"action_url\":\"\",\"end\":\"\",\"end_url\":\"\",\"start\":\"\",\"start_url\":\"\"},\"topic\":{\"is_attach_topic\":1}}", + "display": { + "topic_info": { + "topic_details": [ + { + "topic_id": 7539944, + "topic_name": "哔哩哔哩漫画", + "is_activity": 0, + "topic_link": "" + }, + { + "topic_id": 18523004, + "topic_name": "星宿战纪", + "is_activity": 0, + "topic_link": "" + }, + { + "topic_id": 18523003, + "topic_name": "星宿战纪漫画", + "is_activity": 0, + "topic_link": "" + }, + { + "topic_id": 1184, + "topic_name": "漫画", + "is_activity": 0, + "topic_link": "" + } + ] + }, + "emoji_info": { + "emoji_details": [ + { + "emoji_name": "[热词系列_奥力给]", + "id": 1885, + "package_id": 53, + "state": 0, + "type": 1, + "attr": 2, + "text": "[热词系列_奥力给]", + "url": "https://i0.hdslb.com/bfs/emote/c9b8683827ec6c00fea5327c9bec14f581cef2aa.png", + "meta": { + "size": 2 + }, + "mtime": 1598525979 + } + ] + }, + "relation": { + "status": 1, + "is_follow": 0, + "is_followed": 0 + }, + "up_act_button": { + "report_title": "举报", + "founder_report_title": "举报(发起人)", + "top_title": "置顶", + "top_confirm_title": "确定将此动态置顶吗", + "top_cancel_title": "确定将此动态取消置顶吗" + }, + "show_tip": { + "del_tip": "要删除动态吗?" + } + } + }, + { + "desc": { + "uid": 326499679, + "type": 2, + "rid": 131350038, + "acl": 0, + "view": 1974729, + "repost": 13, + "comment": 39, + "like": 4732, + "is_liked": 0, + "dynamic_id": 517153601912668248, + "timestamp": 1619247606, + "pre_dy_id": 0, + "orig_dy_id": 0, + "orig_type": 0, + "user_profile": { + "info": { + "uid": 326499679, + "uname": "哔哩哔哩漫画", + "face": "https://i1.hdslb.com/bfs/face/2254162161a60b528cfec449f3450409a81ebc37.jpg" + }, + "card": { + "official_verify": { + "type": 1, + "desc": "哔哩哔哩漫画官方账号" + } + }, + "vip": { + "vipType": 2, + "vipDueDate": 1941033600000, + "vipStatus": 1, + "themeType": 0, + "label": { + "path": "", + "text": "十年大会员", + "label_theme": "ten_annual_vip", + "text_color": "#FFFFFF", + "bg_style": 1, + "bg_color": "#FB7299", + "border_color": "" + }, + "avatar_subscript": 1, + "nickname_color": "#FB7299", + "role": 7, + "avatar_subscript_url": "https://i0.hdslb.com/bfs/vip/icon_Certification_big_member_22_3x.png" + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "", + "image_enhance_frame": "" + }, + "rank": "10000", + "sign": "↑ 【关注漫画姬】就送【漫读券5张】,当日或次日登录哔哩哔哩漫画APP即可领取,快来关注领券吧(°∀°)ノ ↑", + "level_info": { + "current_level": 6 + } + }, + "uid_type": 1, + "recommend_info": { + "is_attention": 0 + }, + "stype": 0, + "r_type": 1, + "inner_id": 0, + "topic_board": "C", + "topic_board_desc": "最新", + "status": 1, + "dynamic_id_str": "517153601912668248", + "pre_dy_id_str": "0", + "orig_dy_id_str": "0", + "rid_str": "131350038" + }, + "card": "{\"item\":{\"at_control\":\"\",\"category\":\"daily\",\"description\":\"【#哔哩哔哩漫画# 作品推荐】来读一部治愈系#欧漫#吧:《#格莱米耶姐妹#》https:\\/\\/manga.bilibili.com\\/m\\/detail\\/mc28726\\n[W-哈哈]还记得童年最爱的五个魔力少女吗?《#魔力W.i.t.c.h.#》的作者带着全新的故事来了!\\n[打call]熟悉的画风,同样的治愈,主角变成了可爱的三姐妹。她们想在妈妈生日当天送给她一本图画书,却意外发现了一张特别的照片,一个亲情秘密即将被揭晓…… \",\"id\":131350038,\"is_fav\":0,\"pictures\":[{\"img_height\":960,\"img_size\":911.2685546875,\"img_src\":\"https:\\/\\/i0.hdslb.com\\/bfs\\/album\\/f88be70d1dee3dd408fb00daf27ca2b551045424.jpg\",\"img_tags\":null,\"img_width\":720},{\"img_height\":3705,\"img_size\":3552.703125,\"img_src\":\"https:\\/\\/i0.hdslb.com\\/bfs\\/album\\/0c1ad02cfed7d09fb68da69f6f6ed3afb33759ac.png\",\"img_tags\":null,\"img_width\":800},{\"img_height\":3373,\"img_size\":2038.8671875,\"img_src\":\"https:\\/\\/i0.hdslb.com\\/bfs\\/album\\/4eed376d55d27870b126b7089082cd6f32582c55.png\",\"img_tags\":null,\"img_width\":800}],\"pictures_count\":3,\"reply\":39,\"role\":[],\"settings\":{\"copy_forbidden\":\"0\"},\"source\":[],\"title\":\"\",\"upload_time\":1619247606},\"user\":{\"head_url\":\"https:\\/\\/i1.hdslb.com\\/bfs\\/face\\/2254162161a60b528cfec449f3450409a81ebc37.jpg\",\"name\":\"哔哩哔哩漫画\",\"uid\":326499679,\"vip\":{\"avatar_subscript\":1,\"due_date\":1941033600000,\"label\":{\"label_theme\":\"ten_annual_vip\",\"path\":\"\",\"text\":\"十年大会员\"},\"nickname_color\":\"#FB7299\",\"status\":1,\"theme_type\":0,\"type\":2,\"vip_pay_type\":0}}}", + "extend_json": "{\"from\":{\"emoji_type\":1,\"from\":\"timer.publish\",\"up_close_comment\":0,\"verify\":{\"cc\":{\"nv\":1}}},\"like_icon\":{\"action\":\"\",\"action_url\":\"\",\"end\":\"\",\"end_url\":\"\",\"start\":\"\",\"start_url\":\"\"},\"topic\":{\"is_attach_topic\":1}}", + "display": { + "topic_info": { + "topic_details": [ + { + "topic_id": 7539944, + "topic_name": "哔哩哔哩漫画", + "is_activity": 0, + "topic_link": "" + }, + { + "topic_id": 507003, + "topic_name": "欧漫", + "is_activity": 0, + "topic_link": "" + }, + { + "topic_id": 19491399, + "topic_name": "格莱米耶姐妹", + "is_activity": 0, + "topic_link": "" + }, + { + "topic_id": 19491398, + "topic_name": "魔力W.i.t.c.h.", + "is_activity": 0, + "topic_link": "" + }, + { + "topic_id": 1161514, + "topic_name": "魔力W.I.T.C.H.", + "is_activity": 0, + "topic_link": "" + } + ] + }, + "emoji_info": { + "emoji_details": [ + { + "emoji_name": "[W-哈哈]", + "id": 3045, + "package_id": 1, + "state": 0, + "type": 1, + "attr": 0, + "text": "[W-哈哈]", + "url": "https://i0.hdslb.com/bfs/emote/83d527303c8f62f494e6971c48836487e7d87b1b.png", + "meta": { + "size": 1 + }, + "mtime": 1608785082 + }, + { + "emoji_name": "[打call]", + "id": 510, + "package_id": 1, + "state": 0, + "type": 1, + "attr": 0, + "text": "[打call]", + "url": "https://i0.hdslb.com/bfs/emote/431432c43da3ee5aab5b0e4f8931953e649e9975.png", + "meta": { + "size": 1 + }, + "mtime": 1617293741 + } + ] + }, + "relation": { + "status": 1, + "is_follow": 0, + "is_followed": 0 + }, + "up_act_button": { + "report_title": "举报", + "founder_report_title": "举报(发起人)", + "top_title": "置顶", + "top_confirm_title": "确定将此动态置顶吗", + "top_cancel_title": "确定将此动态取消置顶吗" + }, + "show_tip": { + "del_tip": "要删除动态吗?" + } + } + }, + { + "desc": { + "uid": 1902548007, + "type": 2, + "rid": 131326547, + "acl": 0, + "view": 1681, + "repost": 0, + "comment": 2, + "like": 17, + "is_liked": 0, + "dynamic_id": 517110364476558101, + "timestamp": 1619237539, + "pre_dy_id": 0, + "orig_dy_id": 0, + "orig_type": 0, + "user_profile": { + "info": { + "uid": 1902548007, + "uname": "BV社", + "face": "https://i0.hdslb.com/bfs/face/48f8e6afa688e37b9f1e3721a86bea8ce02688dc.jpg" + }, + "card": { + "official_verify": { + "type": 1, + "desc": "BV社官方账号" + } + }, + "vip": { + "vipType": 0, + "vipDueDate": 0, + "vipStatus": 0, + "themeType": 0, + "label": { + "path": "", + "text": "", + "label_theme": "", + "text_color": "", + "bg_style": 0, + "bg_color": "", + "border_color": "" + }, + "avatar_subscript": 0, + "nickname_color": "", + "role": 0, + "avatar_subscript_url": "" + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "", + "image_enhance_frame": "" + }, + "rank": "10000", + "sign": "Vomic,让你爱的漫画更动听", + "level_info": { + "current_level": 2 + } + }, + "uid_type": 1, + "recommend_info": { + "is_attention": 0 + }, + "stype": 0, + "r_type": 1, + "inner_id": 0, + "topic_board": "C", + "topic_board_desc": "最新", + "status": 1, + "dynamic_id_str": "517110364476558101", + "pre_dy_id_str": "0", + "orig_dy_id_str": "0", + "rid_str": "131326547" + }, + "card": "{\"item\":{\"at_control\":\"[{\\\"location\\\":93,\\\"type\\\":1,\\\"length\\\":8,\\\"data\\\":\\\"326499679\\\"},{\\\"location\\\":104,\\\"type\\\":1,\\\"length\\\":5,\\\"data\\\":\\\"1902548007\\\"},{\\\"location\\\":112,\\\"type\\\":1,\\\"length\\\":7,\\\"data\\\":\\\"492733946\\\"},{\\\"location\\\":122,\\\"type\\\":1,\\\"length\\\":6,\\\"data\\\":\\\"1740792\\\"}]\",\"category\":\"daily\",\"description\":\"#哔哩哔哩漫画#独家,#反派初始化# #Vomic# 我命定的男主!凌辰!!\\n第四集准时上线!2021年4月3日起每周六更新!更多精彩,小剧场,花絮,尽在哔哩哔哩漫画APP\\n \\n出品:@哔哩哔哩漫画\\n策划:@BV社\\n制作:@补天研究所\\n录制:@音熊联萌 \",\"id\":131326547,\"is_fav\":0,\"pictures\":[{\"img_height\":2400,\"img_size\":2228.2724609375,\"img_src\":\"https:\\/\\/i0.hdslb.com\\/bfs\\/album\\/461e7359ad89788cea42f61690b9cf7c73cc6ab5.jpg\",\"img_tags\":null,\"img_width\":2400}],\"pictures_count\":1,\"reply\":2,\"role\":[],\"settings\":{\"copy_forbidden\":\"0\"},\"source\":[],\"title\":\"\",\"upload_time\":1619237539},\"user\":{\"head_url\":\"https:\\/\\/i0.hdslb.com\\/bfs\\/face\\/48f8e6afa688e37b9f1e3721a86bea8ce02688dc.jpg\",\"name\":\"BV社\",\"uid\":1902548007,\"vip\":{\"avatar_subscript\":0,\"due_date\":0,\"label\":{\"label_theme\":\"\",\"path\":\"\",\"text\":\"\"},\"nickname_color\":\"\",\"status\":0,\"theme_type\":0,\"type\":0,\"vip_pay_type\":0}}}", + "extend_json": "{\"ctrl\":[{\"data\":\"326499679\",\"length\":8,\"location\":93,\"type\":1},{\"data\":\"1902548007\",\"length\":5,\"location\":104,\"type\":1},{\"data\":\"492733946\",\"length\":7,\"location\":112,\"type\":1},{\"data\":\"1740792\",\"length\":6,\"location\":122,\"type\":1}],\"from\":{\"emoji_type\":1,\"from\":\"create.dynamic.web\",\"up_close_comment\":0,\"verify\":{\"asw\":{\"fl\":15,\"nv\":1},\"sw\":{\"fl\":15,\"nv\":1}}},\"like_icon\":{\"action\":\"\",\"action_url\":\"\",\"end\":\"\",\"end_url\":\"\",\"start\":\"\",\"start_url\":\"\"},\"topic\":{\"is_attach_topic\":1}}", + "display": { + "topic_info": { + "topic_details": [ + { + "topic_id": 7539944, + "topic_name": "哔哩哔哩漫画", + "is_activity": 0, + "topic_link": "" + }, + { + "topic_id": 10526139, + "topic_name": "反派初始化", + "is_activity": 0, + "topic_link": "" + }, + { + "topic_id": 3208432, + "topic_name": "Vomic", + "is_activity": 1, + "topic_link": "https://www.bilibili.com/blackboard/dynamic/106426" + }, + { + "topic_id": 37542, + "topic_name": "VOMIC", + "is_activity": 1, + "topic_link": "https://www.bilibili.com/blackboard/dynamic/106283" + }, + { + "topic_id": 8972604, + "topic_name": "vomic", + "is_activity": 1, + "topic_link": "https://www.bilibili.com/blackboard/dynamic/106766" + } + ] + }, + "relation": { + "status": 1, + "is_follow": 0, + "is_followed": 0 + }, + "up_act_button": { + "report_title": "举报", + "founder_report_title": "举报(发起人)", + "top_title": "置顶", + "top_confirm_title": "确定将此动态置顶吗", + "top_cancel_title": "确定将此动态取消置顶吗" + }, + "show_tip": { + "del_tip": "要删除动态吗?" + } + } + }, + { + "desc": { + "uid": 1192711092, + "type": 1, + "rid": 516803952918881881, + "acl": 0, + "view": 231, + "repost": 0, + "comment": 0, + "like": 0, + "is_liked": 0, + "dynamic_id": 516803952924449005, + "timestamp": 1619166197, + "pre_dy_id": 516417934145814823, + "orig_dy_id": 516417934145814823, + "orig_type": 2, + "user_profile": { + "info": { + "uid": 1192711092, + "uname": "会发光的偶恰", + "face": "https://i0.hdslb.com/bfs/face/b85a508793bd96deec61e2491d60e68f10378395.jpg" + }, + "card": { + "official_verify": { + "type": -1, + "desc": "" + } + }, + "vip": { + "vipType": 0, + "vipDueDate": 0, + "vipStatus": 0, + "themeType": 0, + "label": { + "path": "", + "text": "", + "label_theme": "", + "text_color": "", + "bg_style": 0, + "bg_color": "", + "border_color": "" + }, + "avatar_subscript": 0, + "nickname_color": "", + "role": 0, + "avatar_subscript_url": "" + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "", + "image_enhance_frame": "" + }, + "rank": "10000", + "sign": "", + "level_info": { + "current_level": 3 + } + }, + "uid_type": 1, + "recommend_info": { + "is_attention": 0 + }, + "stype": 0, + "r_type": 1, + "inner_id": 0, + "topic_board": "C", + "topic_board_desc": "最新", + "status": 1, + "dynamic_id_str": "516803952924449005", + "pre_dy_id_str": "516417934145814823", + "orig_dy_id_str": "516417934145814823", + "rid_str": "516803952918881881", + "origin": { + "uid": 326499679, + "type": 2, + "rid": 131093146, + "acl": 1024, + "view": 1794629, + "repost": 10824, + "dynamic_id": 516417934145814823, + "timestamp": 1619076320, + "uid_type": 1, + "r_type": 1, + "status": 1, + "dynamic_id_str": "516417934145814823", + "pre_dy_id_str": "0", + "orig_dy_id_str": "0", + "rid_str": "131093146" + } + }, + "card": "{ \"user\": { \"uid\": 1192711092, \"uname\": \"会发光的偶恰\", \"face\": \"https:\\/\\/i0.hdslb.com\\/bfs\\/face\\/b85a508793bd96deec61e2491d60e68f10378395.jpg\" }, \"item\": { \"rp_id\": 516803952918881881, \"uid\": 1192711092, \"content\": \"给我也整一个,我太爱了#漫画节#,#哔哩哔哩漫画#\", \"ctrl\": \"\", \"orig_dy_id\": 516417934145814823, \"pre_dy_id\": 516417934145814823, \"timestamp\": 1619166197, \"reply\": 0, \"orig_type\": 2 }, \"origin\": \"{\\\"item\\\":{\\\"at_control\\\":\\\"[{\\\\\\\"data\\\\\\\":\\\\\\\"5\\\\\\\",\\\\\\\"length\\\\\\\":0,\\\\\\\"location\\\\\\\":0,\\\\\\\"type\\\\\\\":2}]\\\",\\\"category\\\":\\\"daily\\\",\\\"description\\\":\\\"​互动抽奖 【关+转】抽3位幸运小伙伴送【哔哩哔哩漫画商城 · 50元图书无门槛优惠券】~\\\\n【#漫画节# 买书礼】商城图书活动开启,23日0点抢新书秒杀,最高立减160元!\\\\n《罗小黑战记 兰溪镇2》《我是蜘蛛又怎样》等多款新书5元起!\\\\n更有8折立减券,来商城看看吧!\\\\n[羞羞] 活动指路:#哔哩哔哩漫画#APP - 我的 - 漫画商城\\\",\\\"id\\\":131093146,\\\"is_fav\\\":0,\\\"pictures\\\":[{\\\"img_height\\\":600,\\\"img_size\\\":251.2998046875,\\\"img_src\\\":\\\"https:\\\\\\/\\\\\\/i0.hdslb.com\\\\\\/bfs\\\\\\/album\\\\\\/1103a166b95de39f9f05455fed2bcfce5edfacc6.jpg\\\",\\\"img_tags\\\":null,\\\"img_width\\\":1200}],\\\"pictures_count\\\":1,\\\"reply\\\":857,\\\"role\\\":[],\\\"settings\\\":{\\\"copy_forbidden\\\":\\\"0\\\"},\\\"source\\\":[],\\\"title\\\":\\\"\\\",\\\"upload_time\\\":1619076320},\\\"user\\\":{\\\"head_url\\\":\\\"https:\\\\\\/\\\\\\/i1.hdslb.com\\\\\\/bfs\\\\\\/face\\\\\\/2254162161a60b528cfec449f3450409a81ebc37.jpg\\\",\\\"name\\\":\\\"哔哩哔哩漫画\\\",\\\"uid\\\":326499679,\\\"vip\\\":{\\\"avatar_subscript\\\":1,\\\"due_date\\\":1941033600000,\\\"label\\\":{\\\"label_theme\\\":\\\"ten_annual_vip\\\",\\\"path\\\":\\\"\\\",\\\"text\\\":\\\"十年大会员\\\"},\\\"nickname_color\\\":\\\"#FB7299\\\",\\\"status\\\":1,\\\"theme_type\\\":0,\\\"type\\\":2,\\\"vip_pay_type\\\":0}}}\", \"origin_extension\": { \"lott\": \"{\\\"lottery_id\\\":61227}\" }, \"origin_extend_json\": \"{\\\"\\\":{\\\"manga\\\":{\\\"manga_id\\\":26551}},\\\"ctrl\\\":[{\\\"data\\\":\\\"5\\\",\\\"length\\\":0,\\\"location\\\":0,\\\"type\\\":2}],\\\"from\\\":{\\\"emoji_type\\\":1,\\\"from\\\":\\\"create.dynamic.web\\\",\\\"up_close_comment\\\":0,\\\"verify\\\":{\\\"cc\\\":{\\\"vf\\\":1}}},\\\"like_icon\\\":{\\\"action\\\":\\\"\\\",\\\"action_url\\\":\\\"\\\",\\\"end\\\":\\\"\\\",\\\"end_url\\\":\\\"\\\",\\\"start\\\":\\\"\\\",\\\"start_url\\\":\\\"\\\"},\\\"lott\\\":{\\\"lottery_id\\\":61227},\\\"topic\\\":{\\\"is_attach_topic\\\":1}}\", \"origin_user\": { \"info\": { \"uid\": 326499679, \"uname\": \"哔哩哔哩漫画\", \"face\": \"https:\\/\\/i1.hdslb.com\\/bfs\\/face\\/2254162161a60b528cfec449f3450409a81ebc37.jpg\" }, \"card\": { \"official_verify\": { \"type\": 1, \"desc\": \"哔哩哔哩漫画官方账号\" } }, \"vip\": { \"vipType\": 2, \"vipDueDate\": 1941033600000, \"vipStatus\": 1, \"themeType\": 0, \"label\": { \"path\": \"\", \"text\": \"十年大会员\", \"label_theme\": \"ten_annual_vip\", \"text_color\": \"#FFFFFF\", \"bg_style\": 1, \"bg_color\": \"#FB7299\", \"border_color\": \"\" }, \"avatar_subscript\": 1, \"nickname_color\": \"#FB7299\", \"role\": 7, \"avatar_subscript_url\": \"https:\\/\\/i0.hdslb.com\\/bfs\\/vip\\/icon_Certification_big_member_22_3x.png\" }, \"pendant\": { \"pid\": 0, \"name\": \"\", \"image\": \"\", \"expire\": 0, \"image_enhance\": \"\", \"image_enhance_frame\": \"\" }, \"rank\": \"10000\", \"sign\": \"↑ 【关注漫画姬】就送【漫读券5张】,当日或次日登录哔哩哔哩漫画APP即可领取,快来关注领券吧(°∀°)ノ ↑\", \"level_info\": { \"current_level\": 6 } }, \"activity_infos\": { \"details\": [ { \"type\": 1, \"detail\": \"{\\\"is_show\\\":1,\\\"topic_id\\\":877418,\\\"topic_link\\\":\\\"https:\\\\\\/\\\\\\/www.bilibili.com\\\\\\/blackboard\\\\\\/activity-7uSyvlCGRS.html\\\",\\\"topic_name\\\":\\\"漫画节\\\"}\" } ] } }", + "extend_json": "{\"from\":{\"emoji_type\":1,\"from\":\"create.comment\",\"up_close_comment\":0},\"like_icon\":{\"action\":\"\",\"action_url\":\"\",\"end\":\"\",\"end_url\":\"\",\"start\":\"\",\"start_url\":\"\"},\"topic\":{\"is_attach_topic\":1}}", + "display": { + "topic_info": { + "topic_details": [ + { + "topic_id": 877418, + "topic_name": "漫画节", + "is_activity": 1, + "topic_link": "https://www.bilibili.com/blackboard/activity-7uSyvlCGRS.html" + }, + { + "topic_id": 7539944, + "topic_name": "哔哩哔哩漫画", + "is_activity": 0, + "topic_link": "" + } + ] + }, + "origin": { + "topic_info": { + "topic_details": [ + { + "topic_id": 877418, + "topic_name": "漫画节", + "is_activity": 1, + "topic_link": "https://www.bilibili.com/blackboard/activity-7uSyvlCGRS.html" + }, + { + "topic_id": 7539944, + "topic_name": "哔哩哔哩漫画", + "is_activity": 0, + "topic_link": "" + } + ] + }, + "emoji_info": { + "emoji_details": [ + { + "emoji_name": "[羞羞]", + "id": 2901, + "package_id": 1, + "state": 0, + "type": 1, + "attr": 0, + "text": "[羞羞]", + "url": "https://i0.hdslb.com/bfs/emote/f4f9171e4d8c3f30827a8b96ea1ce1beb825ad50.png", + "meta": { + "size": 1 + }, + "mtime": 1606448649 + } + ] + }, + "relation": { + "status": 1, + "is_follow": 0, + "is_followed": 0 + }, + "attach_card": { + "type": "manga", + "head_text": "相关漫画作品", + "cover_url": "https://i0.hdslb.com/bfs/manga-static/e79378436e02fd7f227b901efb9fe79c2df9499c.jpg", + "cover_type": 2, + "title": "罗小黑战记·蓝溪镇", + "desc_first": "更新至068", + "desc_second": "搞笑,治愈,古风", + "jump_url": "https://manga.bilibili.com/m/detail/mc26551?from=sub_card", + "button": { + "type": 2, + "uncheck": { + "icon": "https://i0.hdslb.com/bfs/bangumi/154b6898d2b2c20c21ccef9e41fcf809b518ebb4.png", + "text": "追漫" + }, + "check": { + "icon": "", + "text": "已追漫" + }, + "status": 1 + }, + "oid_str": "26551" + }, + "tags": [ + { + "tag_type": 3, + "sub_type": 1, + "icon": "https://i0.hdslb.com/bfs/album/4c1880a3e9d5fd2c72b339929a73a4b83d2bab93.png", + "text": "漫画节", + "link": "https://www.bilibili.com/blackboard/activity-7uSyvlCGRS.html?topic_from=topic-card&name=%E6%BC%AB%E7%94%BB%E8%8A%82", + "rid": 877418, + "sub_module": "topic" + } + ], + "add_on_card_info": [ + { + "add_on_card_show_type": 2, + "attach_card": { + "type": "manga", + "head_text": "相关漫画作品", + "cover_url": "https://i0.hdslb.com/bfs/manga-static/e79378436e02fd7f227b901efb9fe79c2df9499c.jpg", + "cover_type": 2, + "title": "罗小黑战记·蓝溪镇", + "desc_first": "更新至068", + "desc_second": "搞笑,治愈,古风", + "jump_url": "https://manga.bilibili.com/m/detail/mc26551?from=sub_card", + "button": { + "type": 2, + "uncheck": { + "icon": "https://i0.hdslb.com/bfs/bangumi/154b6898d2b2c20c21ccef9e41fcf809b518ebb4.png", + "text": "追漫" + }, + "check": { + "icon": "", + "text": "已追漫" + }, + "status": 1 + }, + "oid_str": "26551" + } + } + ], + "show_tip": { + "del_tip": "要删除动态吗?" + } + }, + "relation": { + "status": 1, + "is_follow": 0, + "is_followed": 0 + }, + "up_act_button": { + "report_title": "举报", + "founder_report_title": "举报(发起人)", + "top_title": "置顶", + "top_confirm_title": "确定将此动态置顶吗", + "top_cancel_title": "确定将此动态取消置顶吗" + }, + "show_tip": { + "del_tip": "要删除动态吗?" + } + } + }, + { + "desc": { + "uid": 1365116, + "type": 1, + "rid": 516801496201774949, + "acl": 0, + "view": 185, + "repost": 0, + "comment": 0, + "like": 0, + "is_liked": 0, + "dynamic_id": 516801496202094777, + "timestamp": 1619165625, + "pre_dy_id": 516417934145814823, + "orig_dy_id": 516417934145814823, + "orig_type": 2, + "user_profile": { + "info": { + "uid": 1365116, + "uname": "濑户的海参", + "face": "https://i2.hdslb.com/bfs/face/8426c61be9c3ccd2296d080a54691c3bed5f2f9f.jpg" + }, + "card": { + "official_verify": { + "type": -1, + "desc": "" + } + }, + "vip": { + "vipType": 0, + "vipDueDate": 0, + "vipStatus": 0, + "themeType": 0, + "label": { + "path": "", + "text": "", + "label_theme": "", + "text_color": "", + "bg_style": 0, + "bg_color": "", + "border_color": "" + }, + "avatar_subscript": 0, + "nickname_color": "", + "role": 0, + "avatar_subscript_url": "" + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "", + "image_enhance_frame": "" + }, + "rank": "10000", + "sign": "", + "level_info": { + "current_level": 5 + } + }, + "uid_type": 1, + "recommend_info": { + "is_attention": 0 + }, + "stype": 0, + "r_type": 1, + "inner_id": 0, + "topic_board": "C", + "topic_board_desc": "最新", + "status": 1, + "dynamic_id_str": "516801496202094777", + "pre_dy_id_str": "516417934145814823", + "orig_dy_id_str": "516417934145814823", + "rid_str": "516801496201774949", + "origin": { + "uid": 326499679, + "type": 2, + "rid": 131093146, + "acl": 1024, + "view": 1794629, + "repost": 10824, + "dynamic_id": 516417934145814823, + "timestamp": 1619076320, + "uid_type": 1, + "r_type": 1, + "status": 1, + "dynamic_id_str": "516417934145814823", + "pre_dy_id_str": "0", + "orig_dy_id_str": "0", + "rid_str": "131093146" + } + }, + "card": "{ \"user\": { \"uid\": 1365116, \"uname\": \"濑户的海参\", \"face\": \"https:\\/\\/i2.hdslb.com\\/bfs\\/face\\/8426c61be9c3ccd2296d080a54691c3bed5f2f9f.jpg\" }, \"item\": { \"rp_id\": 516801496201774949, \"uid\": 1365116, \"content\": \"嗯哼#漫画节#,#哔哩哔哩漫画#\", \"ctrl\": \"\", \"orig_dy_id\": 516417934145814823, \"pre_dy_id\": 516417934145814823, \"timestamp\": 1619165625, \"reply\": 0, \"orig_type\": 2 }, \"origin\": \"{\\\"item\\\":{\\\"at_control\\\":\\\"[{\\\\\\\"data\\\\\\\":\\\\\\\"5\\\\\\\",\\\\\\\"length\\\\\\\":0,\\\\\\\"location\\\\\\\":0,\\\\\\\"type\\\\\\\":2}]\\\",\\\"category\\\":\\\"daily\\\",\\\"description\\\":\\\"​互动抽奖 【关+转】抽3位幸运小伙伴送【哔哩哔哩漫画商城 · 50元图书无门槛优惠券】~\\\\n【#漫画节# 买书礼】商城图书活动开启,23日0点抢新书秒杀,最高立减160元!\\\\n《罗小黑战记 兰溪镇2》《我是蜘蛛又怎样》等多款新书5元起!\\\\n更有8折立减券,来商城看看吧!\\\\n[羞羞] 活动指路:#哔哩哔哩漫画#APP - 我的 - 漫画商城\\\",\\\"id\\\":131093146,\\\"is_fav\\\":0,\\\"pictures\\\":[{\\\"img_height\\\":600,\\\"img_size\\\":251.2998046875,\\\"img_src\\\":\\\"https:\\\\\\/\\\\\\/i0.hdslb.com\\\\\\/bfs\\\\\\/album\\\\\\/1103a166b95de39f9f05455fed2bcfce5edfacc6.jpg\\\",\\\"img_tags\\\":null,\\\"img_width\\\":1200}],\\\"pictures_count\\\":1,\\\"reply\\\":857,\\\"role\\\":[],\\\"settings\\\":{\\\"copy_forbidden\\\":\\\"0\\\"},\\\"source\\\":[],\\\"title\\\":\\\"\\\",\\\"upload_time\\\":1619076320},\\\"user\\\":{\\\"head_url\\\":\\\"https:\\\\\\/\\\\\\/i1.hdslb.com\\\\\\/bfs\\\\\\/face\\\\\\/2254162161a60b528cfec449f3450409a81ebc37.jpg\\\",\\\"name\\\":\\\"哔哩哔哩漫画\\\",\\\"uid\\\":326499679,\\\"vip\\\":{\\\"avatar_subscript\\\":1,\\\"due_date\\\":1941033600000,\\\"label\\\":{\\\"label_theme\\\":\\\"ten_annual_vip\\\",\\\"path\\\":\\\"\\\",\\\"text\\\":\\\"十年大会员\\\"},\\\"nickname_color\\\":\\\"#FB7299\\\",\\\"status\\\":1,\\\"theme_type\\\":0,\\\"type\\\":2,\\\"vip_pay_type\\\":0}}}\", \"origin_extension\": { \"lott\": \"{\\\"lottery_id\\\":61227}\" }, \"origin_extend_json\": \"{\\\"\\\":{\\\"manga\\\":{\\\"manga_id\\\":26551}},\\\"ctrl\\\":[{\\\"data\\\":\\\"5\\\",\\\"length\\\":0,\\\"location\\\":0,\\\"type\\\":2}],\\\"from\\\":{\\\"emoji_type\\\":1,\\\"from\\\":\\\"create.dynamic.web\\\",\\\"up_close_comment\\\":0,\\\"verify\\\":{\\\"cc\\\":{\\\"vf\\\":1}}},\\\"like_icon\\\":{\\\"action\\\":\\\"\\\",\\\"action_url\\\":\\\"\\\",\\\"end\\\":\\\"\\\",\\\"end_url\\\":\\\"\\\",\\\"start\\\":\\\"\\\",\\\"start_url\\\":\\\"\\\"},\\\"lott\\\":{\\\"lottery_id\\\":61227},\\\"topic\\\":{\\\"is_attach_topic\\\":1}}\", \"origin_user\": { \"info\": { \"uid\": 326499679, \"uname\": \"哔哩哔哩漫画\", \"face\": \"https:\\/\\/i1.hdslb.com\\/bfs\\/face\\/2254162161a60b528cfec449f3450409a81ebc37.jpg\" }, \"card\": { \"official_verify\": { \"type\": 1, \"desc\": \"哔哩哔哩漫画官方账号\" } }, \"vip\": { \"vipType\": 2, \"vipDueDate\": 1941033600000, \"vipStatus\": 1, \"themeType\": 0, \"label\": { \"path\": \"\", \"text\": \"十年大会员\", \"label_theme\": \"ten_annual_vip\", \"text_color\": \"#FFFFFF\", \"bg_style\": 1, \"bg_color\": \"#FB7299\", \"border_color\": \"\" }, \"avatar_subscript\": 1, \"nickname_color\": \"#FB7299\", \"role\": 7, \"avatar_subscript_url\": \"https:\\/\\/i0.hdslb.com\\/bfs\\/vip\\/icon_Certification_big_member_22_3x.png\" }, \"pendant\": { \"pid\": 0, \"name\": \"\", \"image\": \"\", \"expire\": 0, \"image_enhance\": \"\", \"image_enhance_frame\": \"\" }, \"rank\": \"10000\", \"sign\": \"↑ 【关注漫画姬】就送【漫读券5张】,当日或次日登录哔哩哔哩漫画APP即可领取,快来关注领券吧(°∀°)ノ ↑\", \"level_info\": { \"current_level\": 6 } }, \"activity_infos\": { \"details\": [ { \"type\": 1, \"detail\": \"{\\\"is_show\\\":1,\\\"topic_id\\\":877418,\\\"topic_link\\\":\\\"https:\\\\\\/\\\\\\/www.bilibili.com\\\\\\/blackboard\\\\\\/activity-7uSyvlCGRS.html\\\",\\\"topic_name\\\":\\\"漫画节\\\"}\" } ] } }", + "extend_json": "{\"from\":{\"emoji_type\":1,\"from\":\"create.comment\",\"up_close_comment\":0},\"like_icon\":{\"action\":\"\",\"action_url\":\"\",\"end\":\"\",\"end_url\":\"\",\"start\":\"\",\"start_url\":\"\"},\"topic\":{\"is_attach_topic\":1}}", + "display": { + "topic_info": { + "topic_details": [ + { + "topic_id": 877418, + "topic_name": "漫画节", + "is_activity": 1, + "topic_link": "https://www.bilibili.com/blackboard/activity-7uSyvlCGRS.html" + }, + { + "topic_id": 7539944, + "topic_name": "哔哩哔哩漫画", + "is_activity": 0, + "topic_link": "" + } + ] + }, + "origin": { + "topic_info": { + "topic_details": [ + { + "topic_id": 877418, + "topic_name": "漫画节", + "is_activity": 1, + "topic_link": "https://www.bilibili.com/blackboard/activity-7uSyvlCGRS.html" + }, + { + "topic_id": 7539944, + "topic_name": "哔哩哔哩漫画", + "is_activity": 0, + "topic_link": "" + } + ] + }, + "emoji_info": { + "emoji_details": [ + { + "emoji_name": "[羞羞]", + "id": 2901, + "package_id": 1, + "state": 0, + "type": 1, + "attr": 0, + "text": "[羞羞]", + "url": "https://i0.hdslb.com/bfs/emote/f4f9171e4d8c3f30827a8b96ea1ce1beb825ad50.png", + "meta": { + "size": 1 + }, + "mtime": 1606448649 + } + ] + }, + "relation": { + "status": 1, + "is_follow": 0, + "is_followed": 0 + }, + "attach_card": { + "type": "manga", + "head_text": "相关漫画作品", + "cover_url": "https://i0.hdslb.com/bfs/manga-static/e79378436e02fd7f227b901efb9fe79c2df9499c.jpg", + "cover_type": 2, + "title": "罗小黑战记·蓝溪镇", + "desc_first": "更新至068", + "desc_second": "搞笑,治愈,古风", + "jump_url": "https://manga.bilibili.com/m/detail/mc26551?from=sub_card", + "button": { + "type": 2, + "uncheck": { + "icon": "https://i0.hdslb.com/bfs/bangumi/154b6898d2b2c20c21ccef9e41fcf809b518ebb4.png", + "text": "追漫" + }, + "check": { + "icon": "", + "text": "已追漫" + }, + "status": 1 + }, + "oid_str": "26551" + }, + "tags": [ + { + "tag_type": 3, + "sub_type": 1, + "icon": "https://i0.hdslb.com/bfs/album/4c1880a3e9d5fd2c72b339929a73a4b83d2bab93.png", + "text": "漫画节", + "link": "https://www.bilibili.com/blackboard/activity-7uSyvlCGRS.html?topic_from=topic-card&name=%E6%BC%AB%E7%94%BB%E8%8A%82", + "rid": 877418, + "sub_module": "topic" + } + ], + "add_on_card_info": [ + { + "add_on_card_show_type": 2, + "attach_card": { + "type": "manga", + "head_text": "相关漫画作品", + "cover_url": "https://i0.hdslb.com/bfs/manga-static/e79378436e02fd7f227b901efb9fe79c2df9499c.jpg", + "cover_type": 2, + "title": "罗小黑战记·蓝溪镇", + "desc_first": "更新至068", + "desc_second": "搞笑,治愈,古风", + "jump_url": "https://manga.bilibili.com/m/detail/mc26551?from=sub_card", + "button": { + "type": 2, + "uncheck": { + "icon": "https://i0.hdslb.com/bfs/bangumi/154b6898d2b2c20c21ccef9e41fcf809b518ebb4.png", + "text": "追漫" + }, + "check": { + "icon": "", + "text": "已追漫" + }, + "status": 1 + }, + "oid_str": "26551" + } + } + ], + "show_tip": { + "del_tip": "要删除动态吗?" + } + }, + "relation": { + "status": 1, + "is_follow": 0, + "is_followed": 0 + }, + "up_act_button": { + "report_title": "举报", + "founder_report_title": "举报(发起人)", + "top_title": "置顶", + "top_confirm_title": "确定将此动态置顶吗", + "top_cancel_title": "确定将此动态取消置顶吗" + }, + "show_tip": { + "del_tip": "要删除动态吗?" + } + } + }, + { + "desc": { + "uid": 1902548007, + "type": 2, + "rid": 131192629, + "view": 1537, + "repost": 0, + "comment": 1, + "like": 18, + "is_liked": 0, + "dynamic_id": 516737432462144044, + "timestamp": 1619150709, + "orig_type": 0, + "user_profile": { + "info": { + "uid": 1902548007, + "uname": "BV社", + "face": "https://i0.hdslb.com/bfs/face/48f8e6afa688e37b9f1e3721a86bea8ce02688dc.jpg" + }, + "card": { + "official_verify": { + "type": 1, + "desc": "BV社官方账号" + } + }, + "vip": { + "vipType": 0, + "vipDueDate": 0, + "vipStatus": 0, + "themeType": 0, + "label": { + "path": "", + "text": "", + "label_theme": "", + "text_color": "", + "bg_style": 0, + "bg_color": "", + "border_color": "" + }, + "avatar_subscript": 0, + "nickname_color": "", + "role": 0, + "avatar_subscript_url": "" + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "", + "image_enhance_frame": "" + }, + "rank": "10000", + "sign": "Vomic,让你爱的漫画更动听", + "level_info": { + "current_level": 2 + } + }, + "uid_type": 1, + "recommend_info": { + "is_attention": 0 + }, + "r_type": 1, + "topic_board": "C", + "topic_board_desc": "最新", + "status": 1, + "dynamic_id_str": "516737432462144044", + "pre_dy_id_str": "0", + "orig_dy_id_str": "0", + "rid_str": "131192629" + }, + "card": "{\"item\":{\"at_control\":\"[{\\\"location\\\":111,\\\"type\\\":1,\\\"length\\\":8,\\\"data\\\":\\\"326499679\\\"},{\\\"location\\\":122,\\\"type\\\":1,\\\"length\\\":5,\\\"data\\\":\\\"1902548007\\\"},{\\\"location\\\":130,\\\"type\\\":1,\\\"length\\\":6,\\\"data\\\":\\\"1740792\\\"}]\",\"category\":\"daily\",\"description\":\"#哔哩哔哩漫画#独家,#神赐予我这种尴尬的超能力究竟有什么用?# #Vomic# 这粉色情侣套间是怎么回事?搞这么大排场!?2021年4月9日起每周五更新!更多精彩,小剧场,花絮,尽在哔哩哔哩漫画APP \\n \\n出品:@哔哩哔哩漫画\\n策划:@BV社\\n承制:@音熊联萌 \",\"id\":131192629,\"is_fav\":0,\"pictures\":[{\"img_height\":2400,\"img_size\":2546.9873046875,\"img_src\":\"https:\\/\\/i0.hdslb.com\\/bfs\\/album\\/b355832bc3bf9196f9a6e024504b99279e1463fa.jpg\",\"img_tags\":null,\"img_width\":2400}],\"pictures_count\":1,\"reply\":1,\"role\":[],\"settings\":{\"copy_forbidden\":\"0\"},\"source\":[],\"title\":\"\",\"upload_time\":1619150709},\"user\":{\"head_url\":\"https:\\/\\/i0.hdslb.com\\/bfs\\/face\\/48f8e6afa688e37b9f1e3721a86bea8ce02688dc.jpg\",\"name\":\"BV社\",\"uid\":1902548007,\"vip\":{\"avatar_subscript\":0,\"due_date\":0,\"label\":{\"label_theme\":\"\",\"path\":\"\",\"text\":\"\"},\"nickname_color\":\"\",\"status\":0,\"theme_type\":0,\"type\":0,\"vip_pay_type\":0}}}", + "extend_json": "{\"ctrl\":[{\"data\":\"326499679\",\"length\":8,\"location\":111,\"type\":1},{\"data\":\"1902548007\",\"length\":5,\"location\":122,\"type\":1},{\"data\":\"1740792\",\"length\":6,\"location\":130,\"type\":1}],\"from\":{\"emoji_type\":1,\"from\":\"timer.publish\",\"up_close_comment\":0,\"verify\":{\"asw\":{\"fl\":15,\"nv\":1},\"sw\":{\"fl\":15,\"nv\":1}}},\"like_icon\":{\"action\":\"\",\"action_url\":\"\",\"end\":\"\",\"end_url\":\"\",\"start\":\"\",\"start_url\":\"\"},\"topic\":{\"is_attach_topic\":1}}", + "display": { + "topic_info": { + "topic_details": [ + { + "topic_id": 7539944, + "topic_name": "哔哩哔哩漫画", + "is_activity": 0, + "topic_link": "" + }, + { + "topic_id": 15321050, + "topic_name": "神赐予我这种尴尬的超能力究竟有什么用?", + "is_activity": 0, + "topic_link": "" + }, + { + "topic_id": 3208432, + "topic_name": "Vomic", + "is_activity": 1, + "topic_link": "https://www.bilibili.com/blackboard/dynamic/106426" + }, + { + "topic_id": 37542, + "topic_name": "VOMIC", + "is_activity": 1, + "topic_link": "https://www.bilibili.com/blackboard/dynamic/106283" + }, + { + "topic_id": 8972604, + "topic_name": "vomic", + "is_activity": 1, + "topic_link": "https://www.bilibili.com/blackboard/dynamic/106766" + } + ] + }, + "relation": { + "status": 1, + "is_follow": 0, + "is_followed": 0 + }, + "up_act_button": { + "report_title": "举报", + "founder_report_title": "举报(发起人)", + "top_title": "置顶", + "top_confirm_title": "确定将此动态置顶吗", + "top_cancel_title": "确定将此动态取消置顶吗" + }, + "show_tip": { + "del_tip": "要删除动态吗?" + } + } + }, + { + "desc": { + "uid": 326499679, + "type": 8, + "rid": 332648194, + "view": 2470218, + "repost": 11, + "like": 8329, + "is_liked": 0, + "dynamic_id": 516720707859405128, + "timestamp": 1619146815, + "orig_dy_id": 516720707860453704, + "orig_type": 0, + "user_profile": { + "info": { + "uid": 326499679, + "uname": "哔哩哔哩漫画", + "face": "https://i1.hdslb.com/bfs/face/2254162161a60b528cfec449f3450409a81ebc37.jpg" + }, + "card": { + "official_verify": { + "type": 1, + "desc": "哔哩哔哩漫画官方账号" + } + }, + "vip": { + "vipType": 2, + "vipDueDate": 1941033600000, + "vipStatus": 1, + "themeType": 0, + "label": { + "path": "", + "text": "十年大会员", + "label_theme": "ten_annual_vip", + "text_color": "#FFFFFF", + "bg_style": 1, + "bg_color": "#FB7299", + "border_color": "" + }, + "avatar_subscript": 1, + "nickname_color": "#FB7299", + "role": 7, + "avatar_subscript_url": "https://i0.hdslb.com/bfs/vip/icon_Certification_big_member_22_3x.png" + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "", + "image_enhance_frame": "" + }, + "rank": "10000", + "sign": "↑ 【关注漫画姬】就送【漫读券5张】,当日或次日登录哔哩哔哩漫画APP即可领取,快来关注领券吧(°∀°)ノ ↑", + "level_info": { + "current_level": 6 + } + }, + "uid_type": 1, + "recommend_info": { + "is_attention": 0 + }, + "r_type": 1, + "topic_board": "C", + "topic_board_desc": "最新", + "status": 1, + "dynamic_id_str": "516720707859405128", + "pre_dy_id_str": "0", + "orig_dy_id_str": "516720707860453704", + "rid_str": "332648194", + "origin": { + "uid": 628215255, + "type": 8, + "rid": 332648194, + "view": 4802, + "repost": 18, + "dynamic_id": 516720707860453704, + "timestamp": 1619146815, + "uid_type": 1, + "r_type": 1, + "status": 1, + "dynamic_id_str": "516720707860453704", + "pre_dy_id_str": "0", + "orig_dy_id_str": "0", + "rid_str": "332648194", + "bvid": "BV1eA411L7Ck" + }, + "bvid": "BV1eA411L7Ck" + }, + "card": "{\"aid\":332648194,\"attribute\":0,\"cid\":327661869,\"copyright\":1,\"ctime\":1619091334,\"desc\":\"漫画节之际,恰逢世界读书日,哔哩哔哩漫画联合欧漫达高,邀请到了法国驻上海总领事馆文化领事柯梅燕女士在线推荐漫画啦!\\n被称为“图像小说”的纯正法国漫画是什么样呢?让我们一起跟着柯梅燕女士的介绍看看这本《莫奈逐光者》,领略欧陆漫画艺术的独特魅力吧~\",\"dimension\":{\"height\":2160,\"rotate\":0,\"width\":3840},\"duration\":219,\"dynamic\":\"漫画节之际,恰逢世界读书日,法国驻上海总领事馆文化领事柯梅燕女士应哔哩哔哩漫画与@欧漫达高 邀请,来给大家推荐漫画啦!\",\"item\":{\"at_control\":\"\"},\"jump_url\":\"bilibili:\\/\\/video\\/332648194\\/?page=1&player_preload=null&player_width=3840&player_height=2160&player_rotate=0\",\"mission_id\":20024,\"owner\":{\"face\":\"https:\\/\\/i0.hdslb.com\\/bfs\\/face\\/341a390cbae7efc021d3c492da56665f2a4944ee.jpg\",\"mid\":628215255,\"name\":\"faguowenhua\"},\"pic\":\"https:\\/\\/i0.hdslb.com\\/bfs\\/archive\\/7de60703c311c2afae10fab44a18bd3fbb5b3a13.jpg\",\"player_info\":null,\"pubdate\":1619146812,\"rights\":{\"autoplay\":1,\"bp\":0,\"download\":0,\"elec\":0,\"hd5\":1,\"is_cooperation\":1,\"movie\":0,\"no_background\":0,\"no_reprint\":1,\"pay\":0,\"ugc_pay\":0,\"ugc_pay_preview\":0},\"short_link\":\"https:\\/\\/b23.tv\\/BV1eA411L7Ck\",\"short_link_v2\":\"https:\\/\\/b23.tv\\/BV1eA411L7Ck\",\"stat\":{\"aid\":332648194,\"coin\":291,\"danmaku\":18,\"dislike\":0,\"favorite\":295,\"his_rank\":0,\"like\":8329,\"now_rank\":0,\"reply\":148,\"share\":95,\"view\":42929},\"state\":0,\"tid\":124,\"title\":\"大师的故事《莫奈逐光者》——来自法国文化领事的漫画推荐│哔哩哔哩漫画节\",\"tname\":\"社科人文\",\"videos\":1}", + "extend_json": "{\"\":{\"ogv\":{\"ogv_id\":0}},\"dispute\":{\"content\":\"\"},\"from\":{\"from\":\"\",\"verify\":{}},\"like_icon\":{\"action\":\"\",\"action_url\":\"\",\"end\":\"\",\"end_url\":\"\",\"start\":\"\",\"start_url\":\"\"},\"topic\":{\"is_attach_topic\":1}}", + "activity_infos": { + "details": [ + { + "type": 1, + "detail": "{\"is_show\":1,\"topic_id\":877418,\"topic_link\":\"https:\\/\\/www.bilibili.com\\/blackboard\\/activity-7uSyvlCGRS.html\",\"topic_name\":\"漫画节\"}" + } + ] + }, + "display": { + "topic_info": { + "topic_details": [ + { + "topic_id": 19380831, + "topic_name": "2021读书日", + "is_activity": 0, + "topic_link": "" + }, + { + "topic_id": 7539944, + "topic_name": "哔哩哔哩漫画", + "is_activity": 0, + "topic_link": "" + }, + { + "topic_id": 1449371, + "topic_name": "法国漫画", + "is_activity": 0, + "topic_link": "" + }, + { + "topic_id": 877418, + "topic_name": "漫画节", + "is_activity": 1, + "topic_link": "https://www.bilibili.com/blackboard/activity-7uSyvlCGRS.html" + }, + { + "topic_id": 591844, + "topic_name": "莫奈", + "is_activity": 0, + "topic_link": "" + }, + { + "topic_id": 507003, + "topic_name": "欧漫", + "is_activity": 0, + "topic_link": "" + } + ] + }, + "usr_action_txt": "与他人联合创作", + "relation": { + "status": 1, + "is_follow": 0, + "is_followed": 0 + }, + "tags": [ + { + "tag_type": 3, + "sub_type": 1, + "icon": "https://i0.hdslb.com/bfs/album/4c1880a3e9d5fd2c72b339929a73a4b83d2bab93.png", + "text": "漫画节", + "link": "https://www.bilibili.com/blackboard/activity-7uSyvlCGRS.html?topic_from=topic-card&name=%E6%BC%AB%E7%94%BB%E8%8A%82", + "rid": 877418, + "sub_module": "topic" + } + ], + "up_act_button": { + "report_title": "举报", + "founder_report_title": "举报(发起人)", + "top_title": "置顶", + "top_confirm_title": "确定将此动态置顶吗", + "top_cancel_title": "确定将此动态取消置顶吗" + }, + "show_tip": { + "del_tip": "要删除动态吗?" + }, + "cover_play_icon_url": "https://i0.hdslb.com/bfs/album/2269afa7897830b397797ebe5f032b899b405c67.png" + } + }, + { + "desc": { + "uid": 326499679, + "type": 2, + "rid": 131140536, + "view": 2969785, + "repost": 11, + "comment": 55, + "like": 5077, + "is_liked": 0, + "dynamic_id": 516519647563103432, + "timestamp": 1619100002, + "orig_type": 0, + "user_profile": { + "info": { + "uid": 326499679, + "uname": "哔哩哔哩漫画", + "face": "https://i1.hdslb.com/bfs/face/2254162161a60b528cfec449f3450409a81ebc37.jpg" + }, + "card": { + "official_verify": { + "type": 1, + "desc": "哔哩哔哩漫画官方账号" + } + }, + "vip": { + "vipType": 2, + "vipDueDate": 1941033600000, + "vipStatus": 1, + "themeType": 0, + "label": { + "path": "", + "text": "十年大会员", + "label_theme": "ten_annual_vip", + "text_color": "#FFFFFF", + "bg_style": 1, + "bg_color": "#FB7299", + "border_color": "" + }, + "avatar_subscript": 1, + "nickname_color": "#FB7299", + "role": 7, + "avatar_subscript_url": "https://i0.hdslb.com/bfs/vip/icon_Certification_big_member_22_3x.png" + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "", + "image_enhance_frame": "" + }, + "rank": "10000", + "sign": "↑ 【关注漫画姬】就送【漫读券5张】,当日或次日登录哔哩哔哩漫画APP即可领取,快来关注领券吧(°∀°)ノ ↑", + "level_info": { + "current_level": 6 + } + }, + "uid_type": 1, + "recommend_info": { + "is_attention": 0 + }, + "r_type": 1, + "topic_board": "C", + "topic_board_desc": "最新", + "status": 1, + "dynamic_id_str": "516519647563103432", + "pre_dy_id_str": "0", + "orig_dy_id_str": "0", + "rid_str": "131140536" + }, + "card": "{\"item\":{\"at_control\":\"\",\"category\":\"daily\",\"description\":\"【#哔哩哔哩漫画# 作品推荐】《#蘑菇汤#》:https:\\/\\/manga.bilibili.com\\/m\\/detail\\/mc29622\\n[霜叶-疑问]才刚转学离开了熟悉的朋友们,就被爸爸送的“生日礼物”震惊到!\\n[煌-震撼]在2次敲打礼物树后,雅丽瞬间往地下坠落?!魅力无穷的蘑菇族的故事现在开始! \",\"id\":131140536,\"is_fav\":0,\"pictures\":[{\"img_height\":960,\"img_size\":198.8623046875,\"img_src\":\"https:\\/\\/i0.hdslb.com\\/bfs\\/album\\/b9f8d6849478db32593ebd4b6b452b873c989fae.jpg\",\"img_tags\":null,\"img_width\":720},{\"img_height\":4532,\"img_size\":4342.27734375,\"img_src\":\"https:\\/\\/i0.hdslb.com\\/bfs\\/album\\/ce9803ca6c0e3424cebcfa42fc4d9a59e809f3d7.jpg\",\"img_tags\":null,\"img_width\":1280},{\"img_height\":2293,\"img_size\":298.7080078125,\"img_src\":\"https:\\/\\/i0.hdslb.com\\/bfs\\/album\\/d52ce6a063eba9c8256458e85e776cd3c82b07f7.jpg\",\"img_tags\":null,\"img_width\":1280},{\"img_height\":4122,\"img_size\":2115.80859375,\"img_src\":\"https:\\/\\/i0.hdslb.com\\/bfs\\/album\\/7bd83bd470376334a3c5ce9266cb6f045cb72faa.jpg\",\"img_tags\":null,\"img_width\":1280},{\"img_height\":4149,\"img_size\":1425.8837890625,\"img_src\":\"https:\\/\\/i0.hdslb.com\\/bfs\\/album\\/80aaba99dbc558287b89aa961329e15814ff85a2.jpg\",\"img_tags\":null,\"img_width\":1280},{\"img_height\":5019,\"img_size\":1546.1396484375,\"img_src\":\"https:\\/\\/i0.hdslb.com\\/bfs\\/album\\/3a86cdd61a701559935bf87bdd7a3f68f59cf5f6.jpg\",\"img_tags\":null,\"img_width\":1280}],\"pictures_count\":6,\"reply\":55,\"role\":[],\"settings\":{\"copy_forbidden\":\"0\"},\"source\":[],\"title\":\"\",\"upload_time\":1619100002},\"user\":{\"head_url\":\"https:\\/\\/i1.hdslb.com\\/bfs\\/face\\/2254162161a60b528cfec449f3450409a81ebc37.jpg\",\"name\":\"哔哩哔哩漫画\",\"uid\":326499679,\"vip\":{\"avatar_subscript\":1,\"due_date\":1941033600000,\"label\":{\"label_theme\":\"ten_annual_vip\",\"path\":\"\",\"text\":\"十年大会员\"},\"nickname_color\":\"#FB7299\",\"status\":1,\"theme_type\":0,\"type\":2,\"vip_pay_type\":0}}}", + "extend_json": "{\"\":{\"manga\":{\"manga_id\":29622}},\"from\":{\"emoji_type\":1,\"from\":\"timer.publish\",\"up_close_comment\":0,\"verify\":{\"cc\":{\"nv\":1}}},\"like_icon\":{\"action\":\"\",\"action_url\":\"\",\"end\":\"\",\"end_url\":\"\",\"start\":\"\",\"start_url\":\"\"},\"topic\":{\"is_attach_topic\":1}}", + "display": { + "topic_info": { + "topic_details": [ + { + "topic_id": 7539944, + "topic_name": "哔哩哔哩漫画", + "is_activity": 0, + "topic_link": "" + }, + { + "topic_id": 699, + "topic_name": "蘑菇汤", + "is_activity": 0, + "topic_link": "" + } + ] + }, + "emoji_info": { + "emoji_details": [ + { + "emoji_name": "[煌-震撼]", + "id": 3047, + "package_id": 1, + "state": 0, + "type": 1, + "attr": 0, + "text": "[煌-震撼]", + "url": "https://i0.hdslb.com/bfs/emote/7bb39ac289bc97fe52af047020a9bf324ecdebe1.png", + "meta": { + "size": 1 + }, + "mtime": 1608785082 + }, + { + "emoji_name": "[霜叶-疑问]", + "id": 3048, + "package_id": 1, + "state": 0, + "type": 1, + "attr": 0, + "text": "[霜叶-疑问]", + "url": "https://i0.hdslb.com/bfs/emote/ada3aea8594e724511c1daad15fb3b23900d8e24.png", + "meta": { + "size": 1 + }, + "mtime": 1608785082 + } + ] + }, + "relation": { + "status": 1, + "is_follow": 0, + "is_followed": 0 + }, + "attach_card": { + "type": "manga", + "head_text": "相关漫画作品", + "cover_url": "https://i0.hdslb.com/bfs/manga-static/72bb5ca8058c0a5b19093136f09a77c2dca707cb.jpg", + "cover_type": 2, + "title": "蘑菇汤", + "desc_first": "更新至13", + "desc_second": "奇幻,日常,治愈", + "jump_url": "https://manga.bilibili.com/m/detail/mc29622?from=sub_card", + "button": { + "type": 2, + "uncheck": { + "icon": "https://i0.hdslb.com/bfs/bangumi/154b6898d2b2c20c21ccef9e41fcf809b518ebb4.png", + "text": "追漫" + }, + "check": { + "icon": "", + "text": "已追漫" + }, + "status": 1 + }, + "oid_str": "29622" + }, + "add_on_card_info": [ + { + "add_on_card_show_type": 2, + "attach_card": { + "type": "manga", + "head_text": "相关漫画作品", + "cover_url": "https://i0.hdslb.com/bfs/manga-static/72bb5ca8058c0a5b19093136f09a77c2dca707cb.jpg", + "cover_type": 2, + "title": "蘑菇汤", + "desc_first": "更新至13", + "desc_second": "奇幻,日常,治愈", + "jump_url": "https://manga.bilibili.com/m/detail/mc29622?from=sub_card", + "button": { + "type": 2, + "uncheck": { + "icon": "https://i0.hdslb.com/bfs/bangumi/154b6898d2b2c20c21ccef9e41fcf809b518ebb4.png", + "text": "追漫" + }, + "check": { + "icon": "", + "text": "已追漫" + }, + "status": 1 + }, + "oid_str": "29622" + } + } + ], + "up_act_button": { + "report_title": "举报", + "founder_report_title": "举报(发起人)", + "top_title": "置顶", + "top_confirm_title": "确定将此动态置顶吗", + "top_cancel_title": "确定将此动态取消置顶吗" + }, + "show_tip": { + "del_tip": "要删除动态吗?" + } + } + }, + { + "desc": { + "uid": 326499679, + "type": 2, + "rid": 131131421, + "acl": 0, + "view": 2620670, + "repost": 8, + "comment": 46, + "like": 4764, + "is_liked": 0, + "dynamic_id": 516504207153429574, + "timestamp": 1619096407, + "pre_dy_id": 0, + "orig_dy_id": 0, + "orig_type": 0, + "user_profile": { + "info": { + "uid": 326499679, + "uname": "哔哩哔哩漫画", + "face": "https://i1.hdslb.com/bfs/face/2254162161a60b528cfec449f3450409a81ebc37.jpg" + }, + "card": { + "official_verify": { + "type": 1, + "desc": "哔哩哔哩漫画官方账号" + } + }, + "vip": { + "vipType": 2, + "vipDueDate": 1941033600000, + "vipStatus": 1, + "themeType": 0, + "label": { + "path": "", + "text": "十年大会员", + "label_theme": "ten_annual_vip", + "text_color": "#FFFFFF", + "bg_style": 1, + "bg_color": "#FB7299", + "border_color": "" + }, + "avatar_subscript": 1, + "nickname_color": "#FB7299", + "role": 7, + "avatar_subscript_url": "https://i0.hdslb.com/bfs/vip/icon_Certification_big_member_22_3x.png" + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "", + "image_enhance_frame": "" + }, + "rank": "10000", + "sign": "↑ 【关注漫画姬】就送【漫读券5张】,当日或次日登录哔哩哔哩漫画APP即可领取,快来关注领券吧(°∀°)ノ ↑", + "level_info": { + "current_level": 6 + } + }, + "uid_type": 1, + "recommend_info": { + "is_attention": 0 + }, + "stype": 0, + "r_type": 1, + "inner_id": 0, + "topic_board": "C", + "topic_board_desc": "最新", + "status": 1, + "dynamic_id_str": "516504207153429574", + "pre_dy_id_str": "0", + "orig_dy_id_str": "0", + "rid_str": "131131421" + }, + "card": "{\"item\":{\"at_control\":\"\",\"category\":\"daily\",\"description\":\"【#哔哩哔哩漫画# 作品推荐】《#身体互换#》:https:\\/\\/manga.bilibili.com\\/m\\/detail\\/mc29621 \\n[热词系列_害]青梅竹马三人组,同是失恋沦落人,相逢在许愿池边时奇怪的事情发生了……\\n[热词系列_知识增加]什么?我和喜欢的女生互换了身体?!学霸、落落大方、机智果断的属性都出现在我自己的身上,突……突然感觉自己变帅了?\",\"id\":131131421,\"is_fav\":0,\"pictures\":[{\"img_height\":960,\"img_size\":537.4560546875,\"img_src\":\"https:\\/\\/i0.hdslb.com\\/bfs\\/album\\/0144a1a68b77eb293915fe8e63876a592c39a179.jpg\",\"img_tags\":null,\"img_width\":720},{\"img_height\":2687,\"img_size\":880.25,\"img_src\":\"https:\\/\\/i0.hdslb.com\\/bfs\\/album\\/5c169c961e6abe6ed9e19a508d8ce742219fce48.jpg\",\"img_tags\":null,\"img_width\":1280},{\"img_height\":2329,\"img_size\":649.5859375,\"img_src\":\"https:\\/\\/i0.hdslb.com\\/bfs\\/album\\/20d28936c37fa2c62e9ef5bab0050d670a6074c7.jpg\",\"img_tags\":null,\"img_width\":1280},{\"img_height\":2236,\"img_size\":703.5146484375,\"img_src\":\"https:\\/\\/i0.hdslb.com\\/bfs\\/album\\/5ddea24d47abb40636d05b1cd07a759eb7fe7967.jpg\",\"img_tags\":null,\"img_width\":1280},{\"img_height\":3472,\"img_size\":714.130859375,\"img_src\":\"https:\\/\\/i0.hdslb.com\\/bfs\\/album\\/d1c9aafd4317192c3815fb342aee64887cfd1a6e.jpg\",\"img_tags\":null,\"img_width\":2500},{\"img_height\":6321,\"img_size\":3838.9482421875,\"img_src\":\"https:\\/\\/i0.hdslb.com\\/bfs\\/album\\/f16021df4379261ec1c118d7e2a3b7259e759671.jpg\",\"img_tags\":null,\"img_width\":2500}],\"pictures_count\":6,\"reply\":46,\"role\":[],\"settings\":{\"copy_forbidden\":\"0\"},\"source\":[],\"title\":\"\",\"upload_time\":1619096407},\"user\":{\"head_url\":\"https:\\/\\/i1.hdslb.com\\/bfs\\/face\\/2254162161a60b528cfec449f3450409a81ebc37.jpg\",\"name\":\"哔哩哔哩漫画\",\"uid\":326499679,\"vip\":{\"avatar_subscript\":1,\"due_date\":1941033600000,\"label\":{\"label_theme\":\"ten_annual_vip\",\"path\":\"\",\"text\":\"十年大会员\"},\"nickname_color\":\"#FB7299\",\"status\":1,\"theme_type\":0,\"type\":2,\"vip_pay_type\":0}}}", + "extend_json": "{\"\":{\"manga\":{\"manga_id\":29621}},\"from\":{\"emoji_type\":1,\"from\":\"timer.publish\",\"up_close_comment\":0,\"verify\":{\"cc\":{\"nv\":1}}},\"like_icon\":{\"action\":\"\",\"action_url\":\"\",\"end\":\"\",\"end_url\":\"\",\"start\":\"\",\"start_url\":\"\"},\"topic\":{\"is_attach_topic\":1}}", + "display": { + "topic_info": { + "topic_details": [ + { + "topic_id": 7539944, + "topic_name": "哔哩哔哩漫画", + "is_activity": 0, + "topic_link": "" + }, + { + "topic_id": 200686, + "topic_name": "身体互换", + "is_activity": 1, + "topic_link": "https://www.bilibili.com/blackboard/dynamic/20573" + } + ] + }, + "emoji_info": { + "emoji_details": [ + { + "emoji_name": "[热词系列_害]", + "id": 1965, + "package_id": 53, + "state": 0, + "type": 1, + "attr": 2, + "text": "[热词系列_害]", + "url": "https://i0.hdslb.com/bfs/emote/cbe798a194612958537c5282fcca7c3bcd2aa15c.png", + "meta": { + "size": 2 + }, + "mtime": 1598525979 + }, + { + "emoji_name": "[热词系列_知识增加]", + "id": 1937, + "package_id": 53, + "state": 0, + "type": 1, + "attr": 2, + "text": "[热词系列_知识增加]", + "url": "https://i0.hdslb.com/bfs/emote/142409b595982b8210b2958f3d340f3b47942645.png", + "meta": { + "size": 2 + }, + "mtime": 1617293934 + } + ] + }, + "relation": { + "status": 1, + "is_follow": 0, + "is_followed": 0 + }, + "attach_card": { + "type": "manga", + "head_text": "相关漫画作品", + "cover_url": "https://i0.hdslb.com/bfs/manga-static/2f7e4c1c1e6122c6488ce986d5785319fc329b89.jpg", + "cover_type": 2, + "title": "身体互换", + "desc_first": "更新至15", + "desc_second": "恋爱,校园,奇幻", + "jump_url": "https://manga.bilibili.com/m/detail/mc29621?from=sub_card", + "button": { + "type": 2, + "uncheck": { + "icon": "https://i0.hdslb.com/bfs/bangumi/154b6898d2b2c20c21ccef9e41fcf809b518ebb4.png", + "text": "追漫" + }, + "check": { + "icon": "", + "text": "已追漫" + }, + "status": 1 + }, + "oid_str": "29621" + }, + "add_on_card_info": [ + { + "add_on_card_show_type": 2, + "attach_card": { + "type": "manga", + "head_text": "相关漫画作品", + "cover_url": "https://i0.hdslb.com/bfs/manga-static/2f7e4c1c1e6122c6488ce986d5785319fc329b89.jpg", + "cover_type": 2, + "title": "身体互换", + "desc_first": "更新至15", + "desc_second": "恋爱,校园,奇幻", + "jump_url": "https://manga.bilibili.com/m/detail/mc29621?from=sub_card", + "button": { + "type": 2, + "uncheck": { + "icon": "https://i0.hdslb.com/bfs/bangumi/154b6898d2b2c20c21ccef9e41fcf809b518ebb4.png", + "text": "追漫" + }, + "check": { + "icon": "", + "text": "已追漫" + }, + "status": 1 + }, + "oid_str": "29621" + } + } + ], + "up_act_button": { + "report_title": "举报", + "founder_report_title": "举报(发起人)", + "top_title": "置顶", + "top_confirm_title": "确定将此动态置顶吗", + "top_cancel_title": "确定将此动态取消置顶吗" + }, + "show_tip": { + "del_tip": "要删除动态吗?" + } + } + }, + { + "desc": { + "uid": 398468825, + "type": 8, + "rid": 545184671, + "acl": 0, + "view": 393, + "repost": 0, + "like": 8, + "is_liked": 0, + "dynamic_id": 516478317094534470, + "timestamp": 1619090379, + "pre_dy_id": 0, + "orig_dy_id": 0, + "orig_type": 0, + "user_profile": { + "info": { + "uid": 398468825, + "uname": "欧漫达高", + "face": "https://i2.hdslb.com/bfs/face/0ba24b18b461b80c5727b5dee9a66bb9e25c1f46.jpg" + }, + "card": { + "official_verify": { + "type": 1, + "desc": "欧漫达高文化传媒(上海)有限公司" + } + }, + "vip": { + "vipType": 0, + "vipDueDate": 0, + "vipStatus": 0, + "themeType": 0, + "label": { + "path": "", + "text": "", + "label_theme": "", + "text_color": "", + "bg_style": 0, + "bg_color": "", + "border_color": "" + }, + "avatar_subscript": 0, + "nickname_color": "", + "role": 0, + "avatar_subscript_url": "" + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "", + "image_enhance_frame": "" + }, + "rank": "10000", + "sign": "经典欧洲绘本、漫画、动画集合地。Weibo:欧漫达高 WeChat:DargaudShanghai", + "level_info": { + "current_level": 2 + } + }, + "uid_type": 1, + "recommend_info": { + "is_attention": 0 + }, + "stype": 0, + "r_type": 1, + "inner_id": 0, + "topic_board": "C", + "topic_board_desc": "最新", + "status": 1, + "dynamic_id_str": "516478317094534470", + "pre_dy_id_str": "0", + "orig_dy_id_str": "0", + "rid_str": "545184671", + "bvid": "BV1ki4y1A7Kb" + }, + "card": "{\"aid\":545184671,\"attribute\":0,\"cid\":327679459,\"copyright\":1,\"ctime\":1619090379,\"desc\":\"2151年,由于气候变化,世界人口缩减到了原来的十分之一,人类生活在脆弱的平衡之中。仅剩的7个城市区建立了新的社会生活模式。宇航员西蒙是名为“未来计划”的太空探险任务的一员,但这将是一场有去无回的旅行,承载着人类历史上前所未有的野心。在出发之前,西蒙带儿子尤里兜了最后一次风。开始了解世界的尤里能否明白母亲对完美、对冒险和对未知的渴求呢?\",\"dimension\":{\"height\":1080,\"rotate\":0,\"width\":1920},\"duration\":58,\"dynamic\":\"昨天的科幻欧漫预告片还没看过瘾?今天和另一部科幻漫的编剧一起规划未来吧!这位作者的日常向漫画《双面人生》中文版在#哔哩哔哩漫画#就能看哦~\",\"item\":{\"at_control\":\"\"},\"jump_url\":\"bilibili:\\/\\/video\\/545184671\\/?page=1&player_preload=null&player_width=1920&player_height=1080&player_rotate=0\",\"owner\":{\"face\":\"https:\\/\\/i2.hdslb.com\\/bfs\\/face\\/0ba24b18b461b80c5727b5dee9a66bb9e25c1f46.jpg\",\"mid\":398468825,\"name\":\"欧漫达高\"},\"pic\":\"https:\\/\\/i2.hdslb.com\\/bfs\\/archive\\/3411696f65b2bce0954f1dc66b1adc0a73de398a.jpg\",\"player_info\":null,\"pubdate\":1619090379,\"rights\":{\"autoplay\":1,\"bp\":0,\"download\":0,\"elec\":0,\"hd5\":0,\"is_cooperation\":0,\"movie\":0,\"no_background\":0,\"no_reprint\":1,\"pay\":0,\"ugc_pay\":0,\"ugc_pay_preview\":0},\"short_link\":\"https:\\/\\/b23.tv\\/BV1ki4y1A7Kb\",\"short_link_v2\":\"https:\\/\\/b23.tv\\/BV1ki4y1A7Kb\",\"stat\":{\"aid\":545184671,\"coin\":4,\"danmaku\":0,\"dislike\":0,\"favorite\":1,\"his_rank\":0,\"like\":8,\"now_rank\":0,\"reply\":0,\"share\":1,\"view\":29},\"state\":0,\"tid\":27,\"title\":\"【欧漫作家访谈】《未来计划》(SOON)作者Thomas Cadène采访\",\"tname\":\"综合\",\"videos\":1}", + "extend_json": "{\"\":{\"ogv\":{\"ogv_id\":0}},\"dispute\":{\"content\":\"\"},\"from\":{\"from\":\"\",\"verify\":{\"asw\":{\"fl\":15},\"sw\":{\"fl\":15}}},\"like_icon\":{\"action\":\"\",\"action_url\":\"\",\"end\":\"\",\"end_url\":\"\",\"start\":\"\",\"start_url\":\"\"},\"topic\":{\"is_attach_topic\":1}}", + "display": { + "topic_info": { + "topic_details": [ + { + "topic_id": 7539944, + "topic_name": "哔哩哔哩漫画", + "is_activity": 0, + "topic_link": "" + }, + { + "topic_id": 530918, + "topic_name": "动漫杂谈", + "is_activity": 0, + "topic_link": "" + }, + { + "topic_id": 444408, + "topic_name": "编剧", + "is_activity": 0, + "topic_link": "" + }, + { + "topic_id": 43646, + "topic_name": "生态", + "is_activity": 0, + "topic_link": "" + }, + { + "topic_id": 33730, + "topic_name": "法语", + "is_activity": 0, + "topic_link": "" + }, + { + "topic_id": 13619, + "topic_name": "欧美", + "is_activity": 0, + "topic_link": "" + }, + { + "topic_id": 9264, + "topic_name": "宇宙", + "is_activity": 0, + "topic_link": "" + } + ] + }, + "usr_action_txt": "投稿了视频", + "relation": { + "status": 1, + "is_follow": 0, + "is_followed": 0 + }, + "up_act_button": { + "report_title": "举报", + "founder_report_title": "举报(发起人)", + "top_title": "置顶", + "top_confirm_title": "确定将此动态置顶吗", + "top_cancel_title": "确定将此动态取消置顶吗" + }, + "show_tip": { + "del_tip": "要删除动态吗?" + }, + "cover_play_icon_url": "https://i0.hdslb.com/bfs/album/2269afa7897830b397797ebe5f032b899b405c67.png" + } + }, + { + "desc": { + "uid": 326499679, + "type": 8, + "rid": 630241940, + "view": 2624796, + "repost": 5, + "like": 10051, + "is_liked": 0, + "dynamic_id": 516457881632645972, + "timestamp": 1619085621, + "orig_dy_id": 516457881633694548, + "orig_type": 0, + "user_profile": { + "info": { + "uid": 326499679, + "uname": "哔哩哔哩漫画", + "face": "https://i1.hdslb.com/bfs/face/2254162161a60b528cfec449f3450409a81ebc37.jpg" + }, + "card": { + "official_verify": { + "type": 1, + "desc": "哔哩哔哩漫画官方账号" + } + }, + "vip": { + "vipType": 2, + "vipDueDate": 1941033600000, + "vipStatus": 1, + "themeType": 0, + "label": { + "path": "", + "text": "十年大会员", + "label_theme": "ten_annual_vip", + "text_color": "#FFFFFF", + "bg_style": 1, + "bg_color": "#FB7299", + "border_color": "" + }, + "avatar_subscript": 1, + "nickname_color": "#FB7299", + "role": 7, + "avatar_subscript_url": "https://i0.hdslb.com/bfs/vip/icon_Certification_big_member_22_3x.png" + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "", + "image_enhance_frame": "" + }, + "rank": "10000", + "sign": "↑ 【关注漫画姬】就送【漫读券5张】,当日或次日登录哔哩哔哩漫画APP即可领取,快来关注领券吧(°∀°)ノ ↑", + "level_info": { + "current_level": 6 + } + }, + "uid_type": 1, + "recommend_info": { + "is_attention": 0 + }, + "r_type": 1, + "topic_board": "C", + "topic_board_desc": "最新", + "status": 1, + "dynamic_id_str": "516457881632645972", + "pre_dy_id_str": "0", + "orig_dy_id_str": "516457881633694548", + "rid_str": "630241940", + "origin": { + "uid": 7435683, + "type": 8, + "rid": 630241940, + "acl": 0, + "view": 32239, + "repost": 13, + "like": 0, + "dynamic_id": 516457881633694548, + "timestamp": 1619085621, + "pre_dy_id": 0, + "orig_dy_id": 0, + "uid_type": 1, + "stype": 0, + "r_type": 1, + "inner_id": 0, + "status": 1, + "dynamic_id_str": "516457881633694548", + "pre_dy_id_str": "0", + "orig_dy_id_str": "0", + "rid_str": "630241940", + "bvid": "BV1b84y1F7qT" + }, + "bvid": "BV1b84y1F7qT" + }, + "card": "{\"aid\":630241940,\"attribute\":0,\"cid\":325729439,\"copyright\":1,\"ctime\":1618830035,\"desc\":\"BGM:No Rainbows In The Desert (Pluto Tapes),歌手名:Unlike Pluto\\n咒术回战单素材,帅就完事!求3连!\",\"dimension\":{\"height\":1080,\"rotate\":0,\"width\":1920},\"duration\":94,\"dynamic\":\"\",\"item\":{\"at_control\":\"\"},\"jump_url\":\"bilibili:\\/\\/video\\/630241940\\/?page=1&player_preload=null&player_width=1920&player_height=1080&player_rotate=0\",\"owner\":{\"face\":\"https:\\/\\/i0.hdslb.com\\/bfs\\/face\\/a536ad1c4c66e17113cfb599fcbb97e03bcdae44.jpg\",\"mid\":7435683,\"name\":\"葉月Mashiro灬\"},\"pic\":\"https:\\/\\/i2.hdslb.com\\/bfs\\/archive\\/663b7f275b0f93356523880aa7e626803168df93.jpg\",\"player_info\":null,\"pubdate\":1619085619,\"rights\":{\"autoplay\":1,\"bp\":0,\"download\":0,\"elec\":0,\"hd5\":1,\"is_cooperation\":1,\"movie\":0,\"no_background\":0,\"no_reprint\":1,\"pay\":0,\"ugc_pay\":0,\"ugc_pay_preview\":0},\"short_link\":\"https:\\/\\/b23.tv\\/BV1b84y1F7qT\",\"short_link_v2\":\"https:\\/\\/b23.tv\\/BV1b84y1F7qT\",\"stat\":{\"aid\":630241940,\"coin\":889,\"danmaku\":146,\"dislike\":0,\"favorite\":1167,\"his_rank\":0,\"like\":10051,\"now_rank\":0,\"reply\":95,\"share\":205,\"view\":61405},\"state\":0,\"tid\":24,\"title\":\"全员高能!这才是咒术回战!\",\"tname\":\"MAD·AMV\",\"videos\":1}", + "extend_json": "{\"\":{\"decoration\":{\"decoration_id\":0},\"game\":{\"game_id\":0},\"manga\":{\"manga_id\":26505},\"match\":{\"match_id\":0},\"official_activity\":{\"official_activity_id\":0},\"ogv\":{\"auto_bind\":0,\"ogv_id\":0},\"pgc\":0,\"pugv\":{\"pugv_id\":0},\"reserve\":{\"reserve_id\":0},\"ugc\":{\"ugc_id\":0}},\"bottom\":{},\"dispute\":{\"content\":\"\"},\"from\":{\"from\":\"\"},\"like_icon\":{\"action\":\"\",\"action_url\":\"\",\"end\":\"\",\"end_url\":\"\",\"start\":\"\",\"start_url\":\"\"},\"topic\":{\"is_attach_topic\":1}}", + "display": { + "topic_info": { + "topic_details": [ + { + "topic_id": 391, + "topic_name": "AMV", + "is_activity": 0, + "topic_link": "" + }, + { + "topic_id": 281, + "topic_name": "MAD", + "is_activity": 0, + "topic_link": "" + }, + { + "topic_id": 7662089, + "topic_name": "五条悟", + "is_activity": 1, + "topic_link": "https://www.bilibili.com/blackboard/dynamic/66796" + }, + { + "topic_id": 7539944, + "topic_name": "哔哩哔哩漫画", + "is_activity": 0, + "topic_link": "" + }, + { + "topic_id": 6497596, + "topic_name": "咒术回战", + "is_activity": 0, + "topic_link": "" + }, + { + "topic_id": 3545, + "topic_name": "热血", + "is_activity": 0, + "topic_link": "" + } + ] + }, + "usr_action_txt": "与他人联合创作", + "relation": { + "status": 1, + "is_follow": 0, + "is_followed": 0 + }, + "attach_card": { + "type": "manga", + "head_text": "相关漫画作品", + "cover_url": "https://i0.hdslb.com/bfs/manga-static/ca4c24bd8bf896545811f401106c19588b80549d.png", + "cover_type": 2, + "title": "咒术回战", + "desc_first": "更新至146", + "desc_second": "冒险,热血,奇幻", + "jump_url": "https://manga.bilibili.com/m/detail/mc26505?from=sub_card", + "button": { + "type": 2, + "uncheck": { + "icon": "https://i0.hdslb.com/bfs/bangumi/154b6898d2b2c20c21ccef9e41fcf809b518ebb4.png", + "text": "追漫" + }, + "check": { + "icon": "", + "text": "已追漫" + }, + "status": 1 + }, + "oid_str": "26505" + }, + "add_on_card_info": [ + { + "add_on_card_show_type": 2, + "attach_card": { + "type": "manga", + "head_text": "相关漫画作品", + "cover_url": "https://i0.hdslb.com/bfs/manga-static/ca4c24bd8bf896545811f401106c19588b80549d.png", + "cover_type": 2, + "title": "咒术回战", + "desc_first": "更新至146", + "desc_second": "冒险,热血,奇幻", + "jump_url": "https://manga.bilibili.com/m/detail/mc26505?from=sub_card", + "button": { + "type": 2, + "uncheck": { + "icon": "https://i0.hdslb.com/bfs/bangumi/154b6898d2b2c20c21ccef9e41fcf809b518ebb4.png", + "text": "追漫" + }, + "check": { + "icon": "", + "text": "已追漫" + }, + "status": 1 + }, + "oid_str": "26505" + } + } + ], + "up_act_button": { + "report_title": "举报", + "founder_report_title": "举报(发起人)", + "top_title": "置顶", + "top_confirm_title": "确定将此动态置顶吗", + "top_cancel_title": "确定将此动态取消置顶吗" + }, + "show_tip": { + "del_tip": "要删除动态吗?" + }, + "cover_play_icon_url": "https://i0.hdslb.com/bfs/album/2269afa7897830b397797ebe5f032b899b405c67.png" + } + } + ], + "offset": "516457881632645972", + "_gt_": 0 + } +} +``` +
\ No newline at end of file diff --git a/docs/electric/Bcoin.md b/docs/electric/Bcoin.md new file mode 100644 index 0000000000..42c1973c32 --- /dev/null +++ b/docs/electric/Bcoin.md @@ -0,0 +1,331 @@ +# B币方式充电 + + + +**注:以前充电是电池的概念,1B币折合10电池,一般地充电10电池可获得1经验** + +**目前(2020/12/02后)则是贝壳的概念,1B币折合1贝壳、1经验(如果存在小数点,则经验值向下取整,即2.5B币获得2经验)** + +--- + +- [B币方式充电](#b币方式充电) + - [新版本B币充电](#新版本b币充电) + - [老版本B币充电](#老版本b币充电) + +--- + +## 新版本B币充电 + +> https://api.bilibili.com/x/ugcpay/web/v2/trade/elec/pay/quick + +*请求方式:POST* + +认证方式:Cookie(SESSDATA) + +**正文参数( application/x-www-form-urlencoded ):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| -------- | ---- | ------------------------ | ------ | ------------------------------------------------- | +| bp_num | num | 贝壳数量 | 必要 | 必须在2-9999之间 | +| is_bp_remains_prior | bool | 是否优先扣除B币余额 | 必要 | [true,false],B币充电请选择true | +| up_mid | num | 充电对象用户mid | 必要 | | +| otype | str | 充电来源 | 必要 | up:空间充电
archive:视频充电 | +| oid | num | 充电来源代码 | 必要 | 空间充电:充电对象用户mid
视频充电:稿件avid | +| csrf | str | CSRF Token(位于cookie) | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------------------ | +| code | num | 返回值 | 0:成功(并不代表充电成功)
-101:账号未登录
-111:csrf校验失败
-400:请求错误 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| -------- | ---- | ----------- | ------------------------------------------------ | +| mid | num | 本用户mid | | +| up_mid | num | 目标用户mid | | +| order_no | str | 留言token | 用于添加充电留言 | +| bp_num | str | 充电贝壳数 | | +| exp | num | 获得经验数 | | +| status | num | 返回结果 | 4:成功
-2:低于20电池下限
-4:B币不足 | +| msg | str | 错误信息 | 默认为空 | + +**示例:** + +以空间的方式向用户`mid=293793435`充了2贝壳,得到2经验,留言token为`BPRG5CEC3VUPOOANA540` + +此时`data`.`status`=`4` + +~~自己给自己冲QAQ~~ + +```shell +curl 'https://api.bilibili.com/x/ugcpay/web/v2/trade/elec/pay/quick' \ +--data-urlencode 'bp_num=2' \ +--data-urlencode 'is_bp_remains_prior=true' \ +--data-urlencode 'up_mid=293793435' \ +--data-urlencode 'otype=up' \ +--data-urlencode 'oid=293793435' \ +--data-urlencode 'csrf=xxx' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code":0, + "message":"0", + "ttl":1, + "data":{ + "mid":293793435, + "up_mid":293793435, + "order_no":"BPRG5CEC3VUPOOANA540", + "bp_num":2, + "exp":"2", + "status":4, + "msg":"" + } +} +``` + +
+ +当所充电贝壳数小于2时,充电不会成功 + +此时`data`.`status`=`-2` + +```shell +curl 'https://api.bilibili.com/x/ugcpay/web/v2/trade/elec/pay/quick' \ +--data-urlencode 'bp_num=1' \ +--data-urlencode 'is_bp_remains_prior=true' \ +--data-urlencode 'otype=up' \ +--data-urlencode 'oid=293793435' \ +--data-urlencode 'csrf=xxx' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code":0, + "message":"0", + "ttl":1, + "data":{ + "mid":0, + "up_mid":0, + "order_no":"", + "bp_num":"0", + "exp":0, + "status":-2, + "msg":"elec raw order create failed: 88201" + } +} +``` + +
+ +当所充贝壳数折合的B币数不足时,充电也不会成功 + +此时`data`.`status`=`-4` + +```shell +curl 'https://api.bilibili.com/x/ugcpay/web/v2/trade/elec/pay/quick' \ +--data-urlencode 'bp_num=99' \ +--data-urlencode 'is_bp_remains_prior=true' \ +--data-urlencode 'up_mid=293793435' \ +--data-urlencode 'otype=up' \ +--data-urlencode 'oid=293793435' \ +--data-urlencode 'csrf=xxx' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code":0, + "message":"0", + "ttl":1, + "data":{ + "mid":0, + "up_mid":0, + "order_no":"", + "bp_num":"0", + "exp":0, + "status":-4, + "msg":"bp.to.battery http failed, invalid args, errNo=800409904: B 币余额不足" + } +} +``` + +
+ + +## 老版本B币充电 + +老版本目前已过期,调用接口成功后(code返回0),data.status会返回0,且B币不会消耗,贝壳也不会增加。以下是历史信息: + +
+查看折叠内容 + +> https://api.bilibili.com/x/ugcpay/trade/elec/pay/quick + +*请求方式:POST* + +认证方式:Cookie(SESSDATA) + +**正文参数( application/x-www-form-urlencoded ):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| -------- | ---- | ------------------------ | ------ | ------------------------------------------------- | +| elec_num | num | 充电电池数量 | 必要 | 必须在2-9999之间 | +| up_mid | num | 充电对象用户mid | 必要 | | +| otype | str | 充电来源 | 必要 | up:空间充电
archive:视频充电 | +| oid | num | 充电来源代码 | 必要 | 空间充电:充电对象用户mid
视频充电:稿件avid | +| csrf | str | CSRF Token(位于cookie) | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------------------ | +| code | num | 返回值 | 0:成功(并不代表充电成功)
-101:账号未登录
-111:csrf校验失败
-400:请求错误 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| -------- | ---- | ----------- | ------------------------------------------------ | +| mid | num | 本用户mid | | +| up_mid | num | 目标用户mid | | +| order_no | str | 留言token | 用于添加充电留言 | +| elec_num | num | 充电电池数 | | +| exp | num | 获得经验数 | | +| status | num | 返回结果 | 4:成功
-2:低于20电池下限
-4:B币不足 | +| msg | str | 错误信息 | 默认为空 | + +**示例:** + +以空间的方式向用户`mid=293793435`充了20电池,得到2经验,留言token为`BPRG5CEC3VUPOOANA540` + +此时`data`.`status`=`4` + +~~再次自己冲自己QAQ~~ + +```shell +curl 'https://api.bilibili.com/x/ugcpay/trade/elec/pay/quick' \ +--data-urlencode 'elec_num=20' \ +--data-urlencode 'up_mid=293793435' \ +--data-urlencode 'otype=up' \ +--data-urlencode 'oid=293793435' \ +--data-urlencode 'csrf=xxx' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code":0, + "message":"0", + "ttl":1, + "data":{ + "mid":293793435, + "up_mid":293793435, + "order_no":"BPRG5CEC3VUPOOANA540", + "elec_num":20, + "exp":2, + "status":4, + "msg":"" + } +} +``` + +
+ +当所充电池数小于2时,充电不会成功 + +此时`data`.`status`=`-2` + +```shell +curl 'https://api.bilibili.com/x/ugcpay/trade/elec/pay/quick' \ +--data-urlencode 'elec_num=1' \ +--data-urlencode 'up_mid=293793435' \ +--data-urlencode 'otype=up' \ +--data-urlencode 'oid=293793435' \ +--data-urlencode 'csrf=xxx' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code":0, + "message":"0", + "ttl":1, + "data":{ + "mid":0, + "up_mid":0, + "order_no":"", + "elec_num":0, + "exp":0, + "status":-2, + "msg":"elec raw order create failed: 88201" + } +} +``` + +
+ +当所充电池数折合的B币数不足时,充电也不会成功 + +此时`data`.`status`=`-4` + +```shell +curl 'https://api.bilibili.com/x/ugcpay/trade/elec/pay/quick' \ +--data-urlencode 'elec_num=999' \ +--data-urlencode 'up_mid=293793435' \ +--data-urlencode 'otype=up' \ +--data-urlencode 'oid=293793435' \ +--data-urlencode 'csrf=xxx' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code":0, + "message":"0", + "ttl":1, + "data":{ + "mid":0, + "up_mid":0, + "order_no":"", + "elec_num":0, + "exp":0, + "status":-4, + "msg":"bp.to.battery http failed, invalid args, errNo=800409904: B 币余额不足" + } +} +``` + +
+
diff --git a/docs/electric/WeChat&Alipay.md b/docs/electric/WeChat&Alipay.md new file mode 100644 index 0000000000..609864a64d --- /dev/null +++ b/docs/electric/WeChat&Alipay.md @@ -0,0 +1,207 @@ +# 微信&支付宝方式充电 + + + +- [申请充电二维码及扫码秘钥](#申请充电二维码及扫码秘钥) + +- [检查扫码支付结果](#检查扫码支付结果) + +--- + +操作流程: + +1.申请充电二维码及扫码秘钥,秘钥临时保存备用 + +2.使用`qr_code_url`中的值生成二维码 + +3.用支付宝或微信扫描 + +4.以扫码秘钥作为参数轮询检查扫码支付结果 + +## 申请充电二维码及扫码秘钥 + +> https://api.bilibili.com/x/ugcpay/web/v2/trade/elec/pay/qr_code/create + +*请求方式:POST* + +认证方式:Cookie(SESSDATA) + +秘钥有效时间为10分钟 + +**正文参数( application/x-www-form-urlencoded ):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------------------- | ---- | ------------------------ | ------ | ------------------------------------------------------------ | +| bp_num | num | 充电B币数量 | 必要 | 必须在2-9999之间 | +| up_mid | num | 充电对象用户mid | 必要 | | +| is_bp_remains_prior | bool | 是否优先扣除B币 | 必要 | true:是
false:否
在B币不足时剩余的部分利用支付平台支付 | +| otype | str | 充电来源 | 必要 | up:空间充电
archive:视频充电 | +| oid | num | 充电来源代码 | 必要 | 空间充电:充电对象用户mid
视频充电:稿件avid | +| csrf | str | CSRF Token(位于cookie) | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------------------ | +| code | num | 返回值 | 0:成功
-101:账号未登录
-111:csrf校验失败
-400:请求错误
-500:服务器错误 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----------- | ---- | ------------------ | -------- | +| qr_code_url | str | 支付二维码生成内容 | 存在转义 | +| qr_token | str | 扫码秘钥 | | +| exp | num | 获得经验数 | | + +**示例:** + +申请空间的方式向用户23215368充电10电池且不使用B币的支付二维码 + +```shell +curl 'https://api.bilibili.com/x/ugcpay/trade/elec/pay/qr_code/create' \ +--data-urlencode 'elec_num=10' \ +--data-urlencode 'up_mid=23215368' \ +--data-urlencode 'is_bp_remains_prior=false' \ +--data-urlencode 'otype=up' \ +--data-urlencode 'oid=23215368' \ +--data-urlencode 'csrf=xxx' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "qr_code_url": "http://api.bilibili.com/x/ugcpay/trade/elec/pay/qr_code/gateway?mid=293793435&token=c1cb1d95d2194ba58df6bb0f24ae1aaa", + "qr_token": "c1cb1d95d2194ba58df6bb0f24ae1aaa", + "exp": 1 + } +} +``` + +
+ +## 检查扫码支付结果 + +> https://api.bilibili.com/x/ugcpay/trade/elec/pay/order/status + +*请求方式:GET* + +认证方式:Cookie(SESSDATA) + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| -------- | ---- | -------- | ------ | ---- | +| qr_token | str | 扫码秘钥 | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ----------------------------- | +| code | num | 返回值 | 0:成功
-101:账号未登录 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| -------- | ---- | ----------- | ------------------------------------------------------------ | +| qr_token | str | 扫码秘钥 | | +| order_no | str | 留言token | 未成功则无此项
用于添加充电留言 | +| mid | num | 当前用户mid | | +| status | num | 状态值 | 若秘钥错误则无此项
1:已支付
2:未扫描
3:未确认 | + +**示例:** + +当申请到的支付二维码未被扫描时,`data`.`ststus`的值为`2` + +```shell +curl -G 'https://api.bilibili.com/x/ugcpay/trade/elec/pay/order/status' \ +--data-urlencode 'qr_token=c7cbdc47fc424cd18f2146db653597b8' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code":0, + "message":"0", + "ttl":1, + "data":{ + "qr_token":"c7cbdc47fc424cd18f2146db653597b8", + "mid":293793435, + "status":2 + } +} +``` + +
+ +当申请到的支付二维码已扫描但未确认时,`data`.`ststus`的值为`3` + +```shell +curl -G 'https://api.bilibili.com/x/ugcpay/trade/elec/pay/order/status' \ +--data-urlencode 'qr_token=c7cbdc47fc424cd18f2146db653597b8' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code":0, + "message":"0", + "ttl":1, + "data":{ + "qr_token":"c7cbdc47fc424cd18f2146db653597b8", + "mid":293793435, + "status":3 + } +} +``` + +
+ +成功支付后,`data`.`ststus`的值为`1`,且`data`.`order_no`存在留言token + +```shell +curl -G 'https://api.bilibili.com/x/ugcpay/trade/elec/pay/order/status' \ +--data-urlencode 'qr_token=c7cbdc47fc424cd18f2146db653597b8' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code":0, + "message":"0", + "ttl":1, + "data":{ + "qr_token":"bd649c836c524550bfe22a369334fc05", + "order_no":"BPTD36U3KP82I31RSSLG", + "mid":293793435, + "status":1 + } +} +``` + +
diff --git a/docs/electric/charge_list.md b/docs/electric/charge_list.md new file mode 100644 index 0000000000..dd46641e1e --- /dev/null +++ b/docs/electric/charge_list.md @@ -0,0 +1,530 @@ +# 充电列表 + +- [获取空间充电公示列表](#获取空间充电公示列表) +- [获取视频充电鸣谢名单](#获取视频充电鸣谢名单) +- [查询我收到的充电列表](#查询我收到的充电列表) +- [查询历史充电数据](#查询历史充电数据) + +--- + +## 获取空间充电公示列表 + +> https://elec.bilibili.com/api/query.rank.do + +*请求方式:GET* + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | ---- | ----------- | ------ | ---- | +| mid | num | 目标用户mid | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | -------- | ----------------------------- | +| code | num | 返回值 | 0:成功
500011:mid错误 | +| msg | str | 错误信息 | 正确时无此项 | +| data | obj | 数据本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----------- | ------ | ---------------- | ------------ | +| display_num | num | 0 | 作用尚不明确 | +| count | num | 本月充电人数 | | +| total_count | num | 总计充电人数 | | +| list | array | 本月充电用户列表 | | +| user | null | | 作用尚不明确 | + +`data`中的`list`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | ------------- | ---------------- | +| 0 | obj | 充电用户1 | | +| n | obj | 充电用户(n+1) | 按照充电排名排列 | +| …… | obj | …… | …… | +| 29 | obj | 充电用户30 | 最后一项 | + +`data`中的`list`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----------- | ---- | ---------------- | ---------------- | +| mid | num | 充电对象mid | | +| pay_mid | num | 充电用户mid | | +| rank | num | 充电用户排名 | 取决于充电的多少 | +| uname | str | 充电用户昵称 | | +| avatar | str | 充电用户头像url | | +| message | str | 充电留言 | 无为空 | +| msg_deleted | num | 0 | 作用尚不明确 | +| vip_info | obj | 充电用户会员信息 | | +| trend_type | num | 0 | 作用尚不明确 | + +`data`中的`list`数组中的对象中的`vip_info`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---------- | ---- | ---------- | ----------------------------------- | +| vipType | num | 大会员类型 | 0:无
1:月会员
2:年会员 | +| vipDueMsec | num | 0 | 作用尚不明确 | +| vipStatus | num | 大会员状态 | 0:无
1:有 | + +**示例:** + +查询用户`mid=53456`的充电公示列表 + +```shell +curl -G 'https://elec.bilibili.com/api/query.rank.do' \ +--data-urlencode 'mid=53456' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "data": { + "display_num": 0, + "count": 226, + "total_count": 11528, + "list": [ + { + "mid": 53456, + "pay_mid": 346545025, + "rank": 1, + "uname": "还有什么名字没人用", + "avatar": "http://i1.hdslb.com/bfs/face/76d4b1ecd13e992a6c7303d77bf716dd922ab234.jpg", + "message": "早日康复,五月快乐", + "msg_deleted": 0, + "vip_info": { + "vipType": 2, + "vipDueMsec": 0, + "vipStatus": 1 + }, + "trend_type": 0 + }, + { + "mid": 53456, + "pay_mid": 8826056, + "rank": 2, + "uname": "煋痕", + "avatar": "http://i2.hdslb.com/bfs/face/35b7c752d0eb1bb7a924804f240b9bfd9199625f.jpg", + "message": "", + "msg_deleted": 0, + "vip_info": { + "vipType": 2, + "vipDueMsec": 0, + "vipStatus": 1 + }, + "trend_type": 0 + }, + { + "mid": 53456, + "pay_mid": 356668487, + "rank": 3, + "uname": "舞象祥", + "avatar": "http://i1.hdslb.com/bfs/face/574f6203ef5bd0d56b95ded6a2736676d9cc5307.jpg", + "message": "warma hayo", + "msg_deleted": 0, + "vip_info": { + "vipType": 1, + "vipDueMsec": 0, + "vipStatus": 1 + }, + "trend_type": 0 + }, + ………… + ], + "user": null + } +} +``` + +
+ +## 获取视频充电鸣谢名单 + +> https://api.bilibili.com/x/web-interface/elec/show + +*请求方式:GET* + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | ---- | ------------ | ------------ | ------------------ | +| mid | num | 目标用户mid | 必要 | | +| aid | num | 目标稿件avid | 必要(可选) | avid与bvid任选一个 | +| bvid | str | 目标稿件bvid | 必要(可选) | avid与bvid任选一个 | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------------------ | +| code | num | 返回值 | 0:成功
-400:请求错误
-404:无视频
62001:不需要展示充电信息 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----------- | ------ | ---------------- | ------------ | +| show_info | obj | 展示选项 | | +| av_count | num | 目标视频充电人数 | | +| count | num | 本月充电人数 | | +| total_count | num | 总计充电人数 | | +| special_day | num | 0 | 作用尚不明确 | +| display_num | num | 0 | 作用尚不明确 | +| list | array | 本月充电用户列表 | | + +`data`中的`show_info`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----- | ---- | ------------------------ | ----------------------------- | +| show | bool | 是否展示视频充电鸣谢名单 | false:不展示
true:展示 | +| state | num | 0 | | + +`data`中的`list`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | ------------- | ---------------- | +| 0 | obj | 充电用户1 | | +| n | obj | 充电用户(n+1) | 按照充电排名排列 | +| …… | obj | …… | …… | +| 29 | obj | 充电用户30 | 最后一项 | + +`data`中的`list`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----------- | ---- | ---------------- | ---------------- | +| mid | num | 充电对象mid | | +| pay_mid | num | 充电用户mid | | +| rank | num | 充电用户排名 | 取决于充电的多少 | +| uname | str | 充电用户昵称 | | +| avatar | str | 充电用户头像url | | +| message | str | 充电留言 | 无为空 | +| msg_deleted | num | 0 | 作用尚不明确 | +| vip_info | obj | 充电用户会员信息 | | +| trend_type | num | 0 | 作用尚不明确 | + +`data`中的`list`数组中的`vip_info`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---------- | ---- | ---------- | ----------------------------------- | +| vipType | num | 大会员类型 | 0:无
1:月会员
2:年会员 | +| vipDueMsec | num | 0 | 作用尚不明确 | +| vipStatus | num | 大会员状态 | 0:无
1:有 | + +**示例:** + +获取视频`av967773538`/` BV1up4y1y77i `,用户`mid=53456`的视频充电鸣谢名单 + +avid方式: + +```shell +curl -G 'https://api.bilibili.com/x/web-interface/elec/show' \ +--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 ' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "show_info": { + "show": true, + "state": 0 + }, + "av_count": 0, + "count": 0, + "total_count": 19422, + "special_day": 0, + "display_num": 0, + "list": [ + { + "mid": 53456, + "pay_mid": 1216085164, + "rank": 1, + "uname": "JZ72", + "avatar": "http://i1.hdslb.com/bfs/face/3d741682fafc286999b5e8089a844ae4f46651fe.jpg", + "message": "Warma YYDS ", + "msg_deleted": 0, + "vip_info": { + "vipType": 2, + "vipDueMsec": 0, + "vipStatus": 1 + }, + "trend_type": 0 + }, + { + "mid": 53456, + "pay_mid": 305858373, + "rank": 2, + "uname": "适应性神经系统", + "avatar": "http://i0.hdslb.com/bfs/face/2ad38dec879f66c32b5e5cb1750cb3f3e446bf91.jpg", + "message": "", + "msg_deleted": 0, + "vip_info": { + "vipType": 1, + "vipDueMsec": 0, + "vipStatus": 0 + }, + "trend_type": 0 + }, + ...... + ] + } +} +``` + +
+ +## 查询我收到的充电列表 + +> https://pay.bilibili.com/bk/brokerage/listForCustomerRechargeRecord + +*请求方式:GET* + +认证方式:Cookie(SESSDATA) + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| -------- | ---- | -------- | ------ | -------------------------------- | +| currentPage | num | 页数 | 必要 | | +| pageSize | num | 分页大小 | 必要 | 取值范围[1,50] | +| customerId | num | (?) | 必要 | 目前为固定值:10026 | +| beginTime | str | 开始日期 | | yyyy-MM-dd | +| endTime | str | 结束日期 | | yyyy-MM-dd | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | --------------------------- | +| code | num | 返回值 | 0:成功
800501007:user not login
800501008:内部错误
800501011:请求参数有误| +| errno | num | | | +| msg | str | | | +| showMsg | str | | | +| success | bool | | | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| -------- | ----- | ------ | ---- | +| page | obj | 分页信息 | | +| result | array | 充电信息本体 | | +| config | array | (?) | | + +`page`对象: + +| 字段 | 类型 | 内容 | 备注 | +| -------- | ----- | ------ | ---- | +| currentPage | num | 当前页数 | | +| pageSize | num | 当前分页大小 | | +| totalCount | num | 记录总数 | | +| totalPage | num | 总页数 | | + +`config`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| -------- | ----- | ------ | ---- | +| mid | num | | 总是为null | +| name | str | | 总是为null | +| avatar | str | | 总是为null | +| originalThirdCoin | num | | 总是为null | +| brokerage | num | | 总是为null | +| remark | str | | 总是为null | +| ctime | str | | 总是为null | + +`result`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| -------- | ----- | ------ | ---- | +| mid | num | 充电人mid | | +| name | str | 充电人昵称 | | +| avatar | str | 充电人头像 | | +| originalThirdCoin | num | 原始B币数 | | +| brokerage | num | 实际收到的贝壳数 | | +| remark | str | 充电渠道 | Web/安卓/iOS | +| ctime | str | 充电时间 | yyyy-MM-dd HH:mm:ss | + +**示例:** + +```shell +curl -L -X GET 'https://pay.bilibili.com/bk/brokerage/listForCustomerRechargeRecord?currentPage=1&pageSize=2&customerId=10026' \ +-H 'Cookie: SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "errno": 0, + "msg": "SUCCESS", + "showMsg": "交易成功", + "data": { + "page": { + "currentPage": 1, + "pageSize": 2, + "totalCount": 311, + "totalPage": 156 + }, + "result": [ + { + "mid": 2233, + "name": "2233", + "avatar": "http://i2.hdslb.com/bfs/face/f42b7f47c80648d2ee1231f2435b527c60302289.jpg", + "originalThirdCoin": 2, + "brokerage": 1.34, + "remark": "Web", + "ctime": "2022-04-12 17:34:47" + }, + { + "mid": 2233, + "name": "2233", + "avatar": "http://i0.hdslb.com/bfs/face/member/noface.jpg", + "originalThirdCoin": 2, + "brokerage": 0.68, + "remark": "iOS", + "ctime": "2022-04-10 03:41:10" + } + ], + "config": [ + { + "mid": null, + "name": null, + "avatar": null, + "originalThirdCoin": null, + "brokerage": null, + "remark": null, + "ctime": null + } + ] + }, + "success": true +} +``` + +
+ +## 查询历史充电数据 + +> https://member.bilibili.com/x/h5/elec/rank/recent + +*请求方式:GET* + +认证方式:Cookie(SESSDATA) + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| -------- | ---- | -------- | ------ | -------------------------------- | +| pn | num | 页数 | 必要 | | +| ps | num | 分页大小 | 必要 | 取值范围[1,20] | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------- | +| code | num | 返回值 | 0:成功 | +| message | str | 错误信息 | | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----- | ----- | ------------ | ---- | +| list | array | 充电信息本体 | | +| pager | obj | 分页信息 | | + +`list`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| -------- | ---- | ---------- | ------------------- | +| aid | num | 0 | | +| bvid | str | 空 | | +| elec_num | num | 充电电池数 | | +| title | str | 空 | | +| uname | str | 空 | | +| avatar | str | 空 | | +| ctime | str | 充电时间 | yyyy-MM-dd HH:mm:ss | + +`pager`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | ------------ | ---- | +| current | num | 当前页数 | | +| size | num | 当前分页大小 | | +| total | num | 记录总数 | | + +**示例:** + +```shell +curl -L -X GET 'https://member.bilibili.com/x/h5/elec/rank/recent' \ +-H 'Cookie: SESSDATA=xxx' +``` + +
+查看响应示例: + +```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 + } + } +} +``` + +
diff --git a/docs/electric/charge_msg.md b/docs/electric/charge_msg.md new file mode 100644 index 0000000000..10805ab568 --- /dev/null +++ b/docs/electric/charge_msg.md @@ -0,0 +1,303 @@ +# 充电留言 + +- [发送充电留言](#发送充电留言) +- [查询我收到的充电留言](#查询我收到的充电留言) +- [查询充电留言详情](#查询充电留言详情) +- [回复充电留言](#回复充电留言) + +--- + +## 发送充电留言 + +> https://api.bilibili.com/x/ugcpay/trade/elec/message + +*请求方式:POST* + +认证方式:Cookie(SESSDATA) + +**正文参数( application/x-www-form-urlencoded ):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| -------- | ---- | ------------------------ | ------ | ---- | +| order_id | str | 留言token | 必要 | | +| message | str | 留言内容 | 必要 | | +| csrf | str | CSRF Token(位于cookie) | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------------------ | +| code | num | 返回值 | 0:成功
-101:账号未登录
-111:csrf校验失败
-400:请求错误
88203:不能重复留言 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | + +**示例:** + +为留言token为`BPRG5CEC3VUPOOANA540`的充电操作,添加了内容为`支持一下大佬`的留言 + +```shell +curl 'https://api.bilibili.com/x/ugcpay/trade/elec/message' \ +--data-urlencode 'order_id=BPRG5CEC3VUPOOANA540' \ +--data-urlencode 'message=支持一下大佬' \ +--data-urlencode 'csrf=xxx' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code":0, + "message":"0", + "ttl":1 +} +``` + +
+ +## 查询我收到的充电留言 + +> https://member.bilibili.com/x/web/elec/remark/list + +*请求方式:GET* + +认证方式:Cookie(SESSDATA) + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | ---- | ------------ | ------------ | ------------------ | +| begin | str | 起始日期 | | 默认2016-01-01 | +| end | str | 结束日期 | | 默认2050-01-01 | +| pn | str | 页数 | | | +| ps | str | 分页大小 | | 取值范围[1,12] | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | --------------------------- | +| code | num | 返回值 | 0:成功
-101:账号未登录| +| msg | str | 0 | | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| -------- | ----- | ------ | ---- | +| page | obj | 分页信息 | | +| list | array | 信息本体 | | + +`page`对象: + +| 字段 | 类型 | 内容 | 备注 | +| -------- | ----- | ------ | ---- | +| current | num | 当前页数 | | +| size | num | 当前分页大小 | | +| total | num | 记录总数 | | + +`list`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| -------- | ----- | ------ | ---- | +| aid | num | | | +| bvid | str | | | +| id | num | 留言记录id | | +| mid | num | | | +| reply_mid | num | 0| | +| elec_num | num | 0 | | +| state | num | UP是否已经回复这条留言 | 0:未回复
1:已回复 | +| msg | str | 留言信息 | | +| aname | str | 空 | | +| uname | str |空 | | +| avator | str | 空 | | +| reply_name | str | 空 | | +| reply_avator | str | 空 | | +| reply_msg | str | 空 | | +| ctime | num | 留言时间 | 毫秒级时间戳 | +| reply_time | num | 0 | | + +**示例:** + +```shell +curl -L -X GET 'https://member.bilibili.com/x/web/elec/remark/list?begin=2016-01-01&end=2050-01-01&pn=1&ps=10' \ +-H 'Cookie: SESSDATA=xxx;' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "list": [ + { + "aid": 0, + "bvid": "", + "id": 6715018, + "mid": 0, + "reply_mid": 0, + "elec_num": 0, + "state": 0, + "msg": "加油", + "aname": "", + "uname": "", + "avator": "", + "reply_name": "", + "reply_avator": "", + "reply_msg": "", + "ctime": 1650665119000, + "reply_time": 0 + } + ], + "pager": { + "current": 1, + "size": 10, + "total": 448 + } + } +} +``` + +
+ +## 查询充电留言详情 + +> https://member.bilibili.com/x/web/elec/remark/detail?id=6662619 + +认证方式:Cookie(SESSDATA) + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| -------- | ---- | -------- | ------ | -------------------------------- | +| id | num | 留言id | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | --------------------------- | +| code | num | 返回值 | 0:成功
-101:账号未登录
-400:请求错误| +| message | str | 0 | | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| -------- | ----- | ------ | ---- | +| aid | num | | | +| bvid | str | | | +| id | num | 留言id | | +| mid | num | 留言者uid(充电用户) | | +| reply_mid | num | UP主uid | | +| elec_num | num | 0 | | +| state | num | UP是否已经回复这条留言 | 0:未回复
1:已回复 | +| msg | str | 留言内容 | | +| aname | str | 空 | | +| uname | str | 留言者用户名 | | +| avator | str | 留言者头像 | | +| reply_name | str | UP主用户名 | | +| reply_avator | str | UP主头像 | | +| reply_msg | str | 回复内容 | | +| ctime | num | 留言时间 | 毫秒级时间戳 | +| reply_time | num | 回复时间 | 毫秒级时间戳 | + +**示例:** + +```shell +curl -L -X GET 'https://member.bilibili.com/x/web/elec/remark/detail?id=6507563' \ +-H 'cookie: SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "aid": 0, + "bvid": "", + "id": 6507563, + "mid": 19978396, + "reply_mid": 2062760, + "elec_num": 0, + "state": 1, + "msg": "感谢搬运", + "aname": "", + "uname": "HANSOOOOOL", + "avator": "http://i1.hdslb.com/bfs/face/5c22af0261b8b3f9a54b6e0038e35430e9ed9cfd.jpg", + "reply_name": "一把近战都不给六花", + "reply_avator": "http://i2.hdslb.com/bfs/face/1804b716084908d4992bdd35827d0c2d7222fe97.jpg", + "reply_msg": "( ̄3 ̄)", + "ctime": 1646726966000, + "reply_time": 1646811946000 + } +} +``` + +
+ +## 回复充电留言 + +> https://member.bilibili.com/x/web/elec/remark/reply + +*请求方式:POST* + +认证方式:Cookie(SESSDATA) + +**正文参数( application/x-www-form-urlencoded ):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------------ | ------ | ------------------------ | -------------- | ------------------------------------------------------------ | +| csrf | str | csrf | 必要 | | +| id | num | 留言id | 必要 | | +| msg | str | 回复信息 | | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------------------ | +| code | num | 返回值 | 0:成功
-101:账号未登录
-111:csrf 校验失败
-400:请求错误20004:充电服务异常
| +| message | str | 错误信息 | | +| ttl | num | 1 | | + +**示例:** + +```shell +curl -L -X POST 'https://member.bilibili.com/x/web/elec/remark/reply' \ +-H 'cookie: SESSDATA=xxx' \ +-H 'Content-Type: application/x-www-form-urlencoded' \ +--data-urlencode 'csrf=xxx' \ +--data-urlencode 'id=6258929' \ +--data-urlencode 'msg=( ̄3 ̄)' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": 1 +} +``` + +
\ No newline at end of file diff --git a/docs/emoji/action.md b/docs/emoji/action.md new file mode 100644 index 0000000000..315aed6243 --- /dev/null +++ b/docs/emoji/action.md @@ -0,0 +1,110 @@ +# 表情操作 + +- [添加表情包](#添加表情包) +- [移除表情包](#移除表情包) + +--- + +## 添加表情包 + +> https://api.bilibili.com/x/emote/package/add + +*请求方式:POST* + +认证方式:Cookie(SESSDATA) + +只能添加有会员权限或已购买的表情包 + +**正文参数( application/x-www-form-urlencoded ):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ---------- | ---- | ------------------------ | ------ | -------------------------------- | +| package_id | num | 表情包id | 必要 | | +| business | str | 使用场景 | 必要 | reply:评论区
dynamic:动态 | +| csrf | str | CSRF Token(位于cookie) | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------------------ | +| code | num | 返回值 | 0:成功
-101:账号未登录
-111:csrf校验失败
-400:请求错误
-403:访问权限不足 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | + +**示例:** + +添加id为`25`的表情包,使用场景为评论区 + +```shell +curl 'https://api.bilibili.com/x/emote/package/add' \ +--data-urlencode 'package_id=25' \ +--data-urlencode 'business=reply' \ +--data-urlencode 'csrf=xxx' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1 +} +``` + +
+ +## 移除表情包 + +> https://api.bilibili.com/x/emote/package/remove + +*请求方式:POST* + +认证方式:Cookie(SESSDATA) + +**正文参数( application/x-www-form-urlencoded ):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ---------- | ---- | ------------------------ | ------ | -------------------------------- | +| package_id | num | 表情包id | 必要 | | +| business | str | 使用场景 | 必要 | reply:评论区
dynamic:动态 | +| csrf | str | CSRF Token(位于cookie) | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------------------ | +| code | num | 返回值 | 0:成功
-101:账号未登录
-111:csrf校验失败
-400:请求错误
-403:访问权限不足 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | + +**示例:** + +移除id为`25`的表情包,使用场景为评论区 + +```shell +curl 'https://api.bilibili.com/x/emote/package/remove' \ +--data-urlencode 'package_id=25' \ +--data-urlencode 'business=reply' \ +--data-urlencode 'csrf=xxx' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1 +} +``` + +
diff --git a/docs/emoji/list.md b/docs/emoji/list.md new file mode 100644 index 0000000000..e3bd468fb5 --- /dev/null +++ b/docs/emoji/list.md @@ -0,0 +1,646 @@ +# 表情列表 + +- [获取我的表情列表](#获取我的表情列表) +- [取指定的表情包明细](#取指定的表情包明细) +- [获取所有表情包列表](#获取所有表情包列表) +- [附表-表情包对象](#附表-表情包对象) + +--- + +## 获取我的表情列表 + +> https://api.bilibili.com/x/emote/user/panel/web + +*请求方式:GET* + +认证方式:Cookie(SESSDATA) + +使用登录(Cookie)进行会员专属及已购买表情包的分发,否则全为免费表情包 + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| -------- | ---- | -------- | ------ | -------------------------------- | +| business | str | 使用场景 | 必要 | reply:评论区
dynamic:动态 | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | --------------------------- | +| code | num | 返回值 | 0:成功
-400:请求错误 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| -------- | ----- | ------ | ---- | +| packages | array | 表情包 | | + +`data`中的`packages`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | ----------- | -------------- | +| 0 | obj | 表情包1 | **详情见附表** | +| n | obj | 表情包(n+1) | **详情见附表** | +| …… | obj | …… | …… | + +**示例:** + +```shell +curl -G 'https://api.bilibili.com/x/emote/user/panel/web' \ +--data-urlencode 'business=reply' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "packages": [ + { + "id": 1, + "text": "小黄脸", + "url": "http://i0.hdslb.com/bfs/emote/81edf17314cea3b48674312b4364df44d5c01f17.png", + "mtime": 1591604235, + "type": 1, + "attr": 66, + "meta": { + "size": 1, + "item_id": 958 + }, + "emote": [ + { + "id": 2126, + "package_id": 1, + "text": "[视频卫星]", + "url": "http://i0.hdslb.com/bfs/emote/dce6fc7d6dfeafff01241924db60f8251cca5307.png", + "mtime": 1590986882, + "type": 1, + "attr": 0, + "meta": { + "size": 1 + }, + "flags": {} + }, + { + "id": 1901, + "package_id": 1, + "text": "[加油武汉]", + "url": "http://i0.hdslb.com/bfs/emote/eb966aaa5b690d3f9308a9f936f5b5a72a7f956b.png", + "mtime": 1580024058, + "type": 1, + "attr": 0, + "meta": { + "size": 1 + }, + "flags": {} + }, + { + "id": 1906, + "package_id": 1, + "text": "[口罩]", + "url": "http://i0.hdslb.com/bfs/emote/3ad2f66b151496d2a5fb0a8ea75f32265d778dd3.png", + "mtime": 1581309529, + "type": 1, + "attr": 0, + "meta": { + "size": 1 + }, + "flags": {} + }, + { + "id": 1, + "package_id": 1, + "text": "[微笑]", + "url": "http://i0.hdslb.com/bfs/emote/685612eadc33f6bc233776c6241813385844f182.png", + "mtime": 1582182040, + "type": 1, + "attr": 0, + "meta": { + "size": 1 + }, + "flags": {} + }, + { + "id": 1958, + "package_id": 1, + "text": "[笑]", + "url": "http://i0.hdslb.com/bfs/emote/81edf17314cea3b48674312b4364df44d5c01f17.png", + "mtime": 1582184940, + "type": 1, + "attr": 0, + "meta": { + "size": 1 + }, + "flags": {} + }, + ………… + }, + { + "id": 53, + "text": "热词系列一", + "url": "http://i0.hdslb.com/bfs/emote/bacd6e17997348873ef89e5f1bcbbda877a1606a.png", + "mtime": 1592205524, + "type": 1, + "attr": 2, + "meta": { + "size": 2, + "item_id": 1039 + }, + "emote": [ + { + "id": 1937, + "package_id": 53, + "text": "[热词系列_知识增加]", + "url": "http://i0.hdslb.com/bfs/emote/142409b595982b8210b2958f3d340f3b47942645.png", + "mtime": 1585202919, + "type": 1, + "attr": 2, + "meta": { + "size": 2, + "alias": "知识增加" + }, + "flags": {} + }, + { + "id": 2147, + "package_id": 53, + "text": "[热词系列_希望没事]", + "url": "http://i0.hdslb.com/bfs/emote/6c0d2e6c486d1ba5afd6204a96e102652464a01d.png", + "mtime": 1591689594, + "type": 1, + "attr": 2, + "meta": { + "size": 2, + "alias": "希望没事" + }, + "flags": {} + }, + { + "id": 2083, + "package_id": 53, + "text": "[热词系列_泪目]", + "url": "http://i0.hdslb.com/bfs/emote/bba3703ab90b7d16fe9dbcb85ed949db687f8331.png", + "mtime": 1588910215, + "type": 1, + "attr": 2, + "meta": { + "size": 2, + "alias": "泪目" + }, + "flags": {} + }, + { + "id": 2082, + "package_id": 53, + "text": "[热词系列_保护]", + "url": "http://i0.hdslb.com/bfs/emote/55f8f6445ca7c3170cdfc5b16036abf639ce9b57.png", + "mtime": 1588910215, + "type": 1, + "attr": 2, + "meta": { + "size": 2, + "alias": "保护" + }, + "flags": {} + }, + ………… + }, + ………… + ] + } +} +``` + +
+ +## 获取指定的表情包明细 + +> https://api.bilibili.com/x/emote/package + +*请求方式:GET* + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| -------- | ---- | -------- | ------ | -------------------------------- | +| business | str | 使用场景 | 必要 | reply:评论区
dynamic:动态 | +| ids | nums | 表情包id | 必要 | id之间以`,`隔开 | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ----------------------------- | -------- | --------------------------- | +| code | num | 返回值 | 0:成功
-400:请求错误 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | 有效时:obj
无效时:null | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| -------- | ----- | ------ | ---- | +| packages | array | 表情包 | | + +`data`中的`packages`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | ----------- | -------------- | +| 0 | obj | 表情包1 | **详情见附表** | +| n | obj | 表情包(n+1) | **详情见附表** | +| …… | obj | …… | …… | + +**示例:** + +获取表情包id为`93`的表情包明细 + +```shell +curl -G 'https://api.bilibili.com/x/emote/package' \ +--data-urlencode 'ids=93' \ +--data-urlencode 'business=reply' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "packages": [ + { + "id": 93, + "text": "泠鸢yousa", + "url": "http://i0.hdslb.com/bfs/emote/5fa6082e098402d16d58c68e441ae76e40befd2c.png", + "mtime": 1592213522, + "type": 3, + "attr": 28, + "meta": { + "size": 2, + "item_id": 1907, + "item_url": "https://www.bilibili.com/h5/mall/suit/detail?navhide=1&stahide=0&id=1911" + }, + "emote": [ + { + "id": 2086, + "package_id": 93, + "text": "[泠鸢yousa_awsl]", + "url": "http://i0.hdslb.com/bfs/emote/7663b729161bd4556c2ec318c07791000743eb56.png", + "mtime": 1589776042, + "type": 3, + "attr": 0, + "meta": { + "size": 2, + "alias": "awsl" + }, + "flags": {} + }, + { + "id": 2087, + "package_id": 93, + "text": "[泠鸢yousa_打call]", + "url": "http://i0.hdslb.com/bfs/emote/718e9495846db4172eb87d2f7f02015a34d35ea2.png", + "mtime": 1589776042, + "type": 3, + "attr": 0, + "meta": { + "size": 2, + "alias": "打call" + }, + "flags": {} + }, + { + "id": 2088, + "package_id": 93, + "text": "[泠鸢yousa_沉默]", + "url": "http://i0.hdslb.com/bfs/emote/5e967cf1669743ed92e9a8ff3e5de6d90ca63d3d.png", + "mtime": 1589776042, + "type": 3, + "attr": 0, + "meta": { + "size": 2, + "alias": "沉默" + }, + "flags": {} + }, + { + "id": 2089, + "package_id": 93, + "text": "[泠鸢yousa_大哭]", + "url": "http://i0.hdslb.com/bfs/emote/3f757b147b9b1e201470eae7dac9cc0360172569.png", + "mtime": 1589776042, + "type": 3, + "attr": 0, + "meta": { + "size": 2, + "alias": "大哭" + }, + "flags": {} + }, + { + "id": 2090, + "package_id": 93, + "text": "[泠鸢yousa_干杯]", + "url": "http://i0.hdslb.com/bfs/emote/5cf5e14101be845233a222ab1bbdc21c63af04c3.png", + "mtime": 1590401422, + "type": 3, + "attr": 0, + "meta": { + "size": 2, + "alias": "干杯" + }, + "flags": {} + }, + { + "id": 2091, + "package_id": 93, + "text": "[泠鸢yousa_好人卡]", + "url": "http://i0.hdslb.com/bfs/emote/e3907b3bb20b18e7ecb11cd86829c9a4ce5b1b2f.png", + "mtime": 1589776042, + "type": 3, + "attr": 0, + "meta": { + "size": 2, + "alias": "好人卡" + }, + "flags": {} + }, + { + "id": 2092, + "package_id": 93, + "text": "[泠鸢yousa_加大力度]", + "url": "http://i0.hdslb.com/bfs/emote/a0393a2d4b522f07a319dfd2e91754a3cdff2c48.png", + "mtime": 1589776042, + "type": 3, + "attr": 0, + "meta": { + "size": 2, + "alias": "加大力度" + }, + "flags": {} + }, + { + "id": 2093, + "package_id": 93, + "text": "[泠鸢yousa_滑稽]", + "url": "http://i0.hdslb.com/bfs/emote/a8057c0e0579b93c16010a270e261fd0a64034af.png", + "mtime": 1589776042, + "type": 3, + "attr": 0, + "meta": { + "size": 2, + "alias": "滑稽" + }, + "flags": {} + }, + { + "id": 2094, + "package_id": 93, + "text": "[泠鸢yousa_请吃桃]", + "url": "http://i0.hdslb.com/bfs/emote/e92276d9d8c28f85f7dbcc0fbbb6ecb3345ce33e.png", + "mtime": 1589776042, + "type": 3, + "attr": 0, + "meta": { + "size": 2, + "alias": "请吃桃" + }, + "flags": {} + }, + { + "id": 2095, + "package_id": 93, + "text": "[泠鸢yousa_惊讶]", + "url": "http://i0.hdslb.com/bfs/emote/9fdc2c5b4b970aded56fe2f326bd4d00e849339d.png", + "mtime": 1589776042, + "type": 3, + "attr": 0, + "meta": { + "size": 2, + "alias": "惊讶" + }, + "flags": {} + }, + { + "id": 2096, + "package_id": 93, + "text": "[泠鸢yousa_生气]", + "url": "http://i0.hdslb.com/bfs/emote/9e6ba9ff34101e04d3e321cad486f845f892050e.png", + "mtime": 1589776042, + "type": 3, + "attr": 0, + "meta": { + "size": 2, + "alias": "生气" + }, + "flags": {} + }, + { + "id": 2097, + "package_id": 93, + "text": "[泠鸢yousa_贴贴]", + "url": "http://i0.hdslb.com/bfs/emote/dbc177d314231add509501ffc6bc7655fca2c10f.png", + "mtime": 1589776042, + "type": 3, + "attr": 0, + "meta": { + "size": 2, + "alias": "贴贴" + }, + "flags": {} + }, + { + "id": 2098, + "package_id": 93, + "text": "[泠鸢yousa_头晕]", + "url": "http://i0.hdslb.com/bfs/emote/49830c1c8a1652f7ee9cb854ac7dbf8e378cdcd6.png", + "mtime": 1589776042, + "type": 3, + "attr": 0, + "meta": { + "size": 2, + "alias": "头晕" + }, + "flags": {} + }, + { + "id": 2099, + "package_id": 93, + "text": "[泠鸢yousa_问号]", + "url": "http://i0.hdslb.com/bfs/emote/ab7a543233eff83138c3221c86a762ab36bab7bc.png", + "mtime": 1589776042, + "type": 3, + "attr": 0, + "meta": { + "size": 2, + "alias": "问号" + }, + "flags": {} + }, + { + "id": 2100, + "package_id": 93, + "text": "[泠鸢yousa_真棒]", + "url": "http://i0.hdslb.com/bfs/emote/02ea49543a3ac52feee185c156ab08fb2bfdd89e.png", + "mtime": 1589776042, + "type": 3, + "attr": 0, + "meta": { + "size": 2, + "alias": "真棒" + }, + "flags": {} + } + ], + "flags": { + "added": true + } + } + ] + } +} +``` + +
+ +## 获取所有表情包列表 + +> https://api.bilibili.com/x/emote/setting/panel + +*请求方式:GET* + +认证方式:Cookie(SESSDATA) + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| -------- | ---- | -------- | ------ | -------------------------------- | +| business | str | 使用场景 | 必要 | reply:评论区
dynamic:动态 | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------- | +| code | num | 返回值 | 0:成功
-101:账号未登录
-400:请求错误 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------------------- | ----- | ---------------- | ---- | +| user_panel_packages | array | 用户拥有的表情包 | | +| all_packages | array | 所有表情包 | | +| mall | obj | 商城页面 | | + +`data`对象中的`user_panel_packages`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | --------------------- | -------------- | +| 0 | obj | 用户拥有的表情包1 | **详情见附表** | +| n | obj | 用户拥有的表情包(n+1) | **详情见附表** | +| …… | obj | …… | …… | + +`data`对象中的`all_packages`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | --------------- | -------------- | +| 0 | obj | 所有表情包1 | **详情见附表** | +| n | obj | 所有表情包(n+1) | **详情见附表** | +| …… | obj | …… | …… | + +`data`对象中的`mall`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----- | ---- | ----------- | ---- | +| title | str | 商城名称 | | +| url | str | 商城页面url | | + +**示例:** + +```shell +curl -G 'https://api.bilibili.com/x/emote/setting/panel' \ +--data-urlencode 'business=reply' \ +-b 'SESSDATA=xxx' +``` + +**限于篇幅,代码块示例略** + +## 附表-表情包对象 + +| 字段 | 类型 | 内容 | 备注 | +| ----- | ----- | ----------------- | -------------------------------------------------------- | +| id | num | 表情包id | | +| text | str | 表情包名称 | | +| url | str | 表情包标志图片url | | +| mtime | num | 创建时间 | 时间戳 | +| type | num | 表情包类型 | 1:普通
2:会员专属
3:购买所得
4:颜文字 | +| attr | num | ??? | **作用尚不明确** | +| meta | obj | 属性信息 | | +| emote | array | 表情列表 | | +| flags | obj | 是否添加标志 | | + +`表情包对象`中的`flags`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----- | ---- | ---------- | ------------------------------------------------------------ | +| added | bool | 是否已添加 | true:已添加
false:未添加
需要登录(SESSDATA)
否则恒为false | + +`表情包对象`中的`meta`对象: + +| 字段 | 类型 | 内容 | 备注 | +| -------- | ---- | --------------- | ---------------- | +| size | num | 表情尺寸信息 | 1:小
2:大 | +| item_id | num | 购买物品id | | +| item_url | num | 购买物品页面url | 无则无此项 | + +`表情包对象`中的`emote`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | --------- | ---- | +| 0 | obj | 表情1 | | +| n | obj | 表情(n+1) | | +| …… | obj | …… | …… | + +`emote`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---------- | ---- | ----------- | -------------------------------------------------------- | +| id | num | 表情id | | +| package_id | num | 表情包id | | +| text | str | 表情转义符 | 颜文字时为该字串 | +| url | str | 表情图片url | 颜文字时为该字串 | +| mtime | num | 创建时间 | 时间戳 | +| type | num | 表情类型 | 1:普通
2:会员专属
3:购买所得
4:颜文字 | +| attr | num | ??? | **作用尚不明确** | +| meta | obj | 属性信息 | | +| flags | obj | 禁用标志 | 无则为空 | + +`emote`数组中的对象中的`flags`对象: + +| 字段 | 类型 | 内容 | 备注 | +| --------- | ---- | ---------- | ------------------------------------------------------ | +| no_access | bool | 是否为禁用 | true:禁用
需要登录(SESSDATA)
否则恒为true | + +`emote`数组中的对象中的`meta`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----- | ---- | ------------ | ---------------- | +| size | num | 表情尺寸信息 | 1:小
2:大 | +| alias | str | 简写名 | 无则无此项 | diff --git a/docs/fav/action.md b/docs/fav/action.md new file mode 100644 index 0000000000..b554be8df9 --- /dev/null +++ b/docs/fav/action.md @@ -0,0 +1,482 @@ +# 收藏夹操作 + +- [管理收藏夹](#管理收藏夹) + - [新建收藏夹](#新建收藏夹) + - [修改收藏夹](#修改收藏夹) + - [删除收藏夹](#删除收藏夹) +- [管理收藏内容](#管理收藏内容) + - [批量复制内容](#批量复制内容) + - [清空所有失效内容](#清空所有失效内容) + +--- + +## 管理收藏夹 + +### 新建收藏夹 + +> https://api.bilibili.com/x/v3/fav/folder/add + +*请求方式:POST* + +认证方式:APP或Cookie(SESSDATA) + +**正文参数( application/x-www-form-urlencoded ):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------- | ---- | ------------------------ | -------------- | ------------------------------------ | +| title | str | 收藏夹标题 | 必要 | | +| intro | str | 收藏夹简介 | 非必要 | 默认为空 | +| privacy | num | 是否公开 | 非必要 | 默认为公开
0:公开
1:私密 | +| cover | str | 封面图url | 非必要 | 封面会被审核 | +| csrf | str | CSRF Token(位于cookie) | Cookie方式必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------- | +| code | num | 返回值 | 0:成功
-102:账号被封停 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +`data`对象: + +略.... + +详见[获取收藏夹元数据](info.md#获取收藏夹元数据)中的`data`对象 + +**示例:** + +创建一个叫`test`,简介是`2333`,封面`https://i0.hdslb.com/bfs/space/cb1c3ef50e22b6096fde67febe863494caefebad.png`,的公开收藏夹: + +```shell +curl 'https://api.bilibili.com/x/v3/fav/folder/add' \ +--data-urlencode 'title=test' \ +--data-urlencode 'intro=2333' \ +--data-urlencode 'privacy=0' \ +--data-urlencode 'cover=https://i0.hdslb.com/bfs/space/cb1c3ef50e22b6096fde67febe863494caefebad.png' \ +--data-urlencode 'csrf=xxxx' \ +-b 'SESSDATA=xxxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "id": 1182306172, + "fid": 11823061, + "mid": 470310172, + "attr": 6, + "title": "test", + "cover": "https://i0.hdslb.com/bfs/space/cb1c3ef50e22b6096fde67febe863494caefebad.png", + "upper": { + "mid": 0, + "name": "", + "face": "", + "followed": false, + "vip_type": 0, + "vip_statue": 0 + }, + "cover_type": 0, + "cnt_info": { + "collect": 0, + "play": 0, + "thumb_up": 0, + "share": 0 + }, + "type": 0, + "intro": "2333", + "ctime": 0, + "mtime": 0, + "state": 0, + "fav_state": 0, + "like_state": 0, + "media_count": 0 + } +} +``` + +
+ +### 修改收藏夹 + +> https://api.bilibili.com/x/v3/fav/folder/edit + +*请求方式:POST* + +认证方式:APP或Cookie(SESSDATA) + +**正文参数( application/x-www-form-urlencoded ):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| -------- | ---- | ------------------------ | -------------- | ------------------------------------------ | +| media_id | num | 目标收藏夹mdid | 必要 | | +| title | str | 修改收藏夹标题 | 必要 | | +| intro | str | 修改收藏夹简介 | 非必要 | | +| privacy | num | 是否公开 | 非必要 | 默认为公开

0:公开
1:私密 | +| cover | str | 封面图url | 非必要 | 封面会被审核 | +| csrf | str | CSRF Token(位于cookie) | Cookie方式必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------- | +| code | num | 返回值 | 0:成功
-102:账号被封停 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +`data`对象: + +略.... + +详见[获取收藏夹元数据](info.md#获取收藏夹元数据)中的`data`对象 + +**示例:** + +修改id为`1182306172`的名字为`test`,简介为`2333`,封面为`https://i0.hdslb.com/bfs/space/cb1c3ef50e22b6096fde67febe863494caefebad.png`,公开收藏夹: + +```shell +curl 'https://api.bilibili.com/x/v3/fav/folder/edit' \ +--data-urlencode 'media_id=1182306172' \ +--data-urlencode 'title=test' \ +--data-urlencode 'intro=2333' \ +--data-urlencode 'privacy=0' \ +--data-urlencode 'cover=https://i0.hdslb.com/bfs/space/cb1c3ef50e22b6096fde67febe863494caefebad.png' \ +--data-urlencode 'csrf=xxxx' \ +-b 'SESSDATA=xxxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "id": 1182306172, + "fid": 11823061, + "mid": 470310172, + "attr": 6, + "title": "test", + "cover": "https://i0.hdslb.com/bfs/space/cb1c3ef50e22b6096fde67febe863494caefebad.png", + "upper": { + "mid": 0, + "name": "", + "face": "", + "followed": false, + "vip_type": 0, + "vip_statue": 0 + }, + "cover_type": 0, + "cnt_info": { + "collect": 0, + "play": 0, + "thumb_up": 0, + "share": 0 + }, + "type": 0, + "intro": "2333", + "ctime": 0, + "mtime": 0, + "state": 0, + "fav_state": 0, + "like_state": 0, + "media_count": 0 + } +} +``` + +
+ +### 删除收藏夹 + +> https://api.bilibili.com/x/v3/fav/folder/del + +*请求方式:POST* + +认证方式:APP或Cookie(SESSDATA) + +**正文参数( application/x-www-form-urlencoded ):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| --------- | ---- | ------------------------ | -------------- | ------------------- | +| media_ids | nums | 目标收藏夹mdid列表 | 必要 | 每个成员间用`,`分隔 | +| csrf | str | CSRF Token(位于cookie) | Cookie方式必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------- | +| code | num | 返回值 | 0:成功 | +| message | str | 错误信息 | 成功为0 | +| ttl | num | 1 | | +| data | num | 信息本体 | 成功为0 | + +**示例:** + +删除id为`1182306172`的收藏夹: + +```shell +curl 'https://api.bilibili.com/x/v3/fav/folder/del' \ +--data-urlencode 'media_ids=1182306172' \ +--data-urlencode 'csrf=xxxx' \ +-b 'SESSDATA=xxxx' +``` + +
+查看响应示例: + +```json +{ + "code":0, + "message":"0", + "ttl":1, + "data":0 +} +``` + +
+ +## 管理收藏内容 + +### 批量复制内容 + +> https://api.bilibili.com/x/v3/fav/resource/copy + +*请求方式:POST* + +认证方式:APP或Cookie(SESSDATA) + +**正文参数( application/x-www-form-urlencoded ):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------------ | ---- | ------------------------ | -------------- | ------------------------------------------------------------ | +| src_media_id | num | 源收藏夹id | 必要 | | +| tar_media_id | num | 目标收藏夹id | 必要 | | +| mid | num | 当前用户mid | 必要 | | +| resources | strs | 目标内容id列表 | 必要 | 格式:{内容id}:{内容类型}
每个成员间用`,`分隔
类型:
2:视频稿件
12:音频
21:视频合集
内容id:
视频稿件:视频稿件avid
音频:音频auid
视频合集:视频合集id | +| platform | str | 平台标识 | 非必要 | 可为web | +| csrf | str | CSRF Token(位于cookie) | Cookie方式必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------------------ | +| code | num | 返回值 | 0:成功
-101:账号未登录
-111:csrf校验失败
-400:请求错误
11010:您访问的内容不存在 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | obj | 信息本体 | 成功为0 | + +**示例:** + +将id为`1288061499`的收藏夹中视频稿件`av21822819` `av21918689` `av22288065`复制到id为`1178751999`的收藏夹中 + +```shell +curl 'https://api.bilibili.com/x/v3/fav/resource/copy' \ +--data-urlencode 'src_media_id=1288061499' \ +--data-urlencode 'tar_media_id=1178751999' \ +--data-urlencode 'mid=233333' \ +--data-urlencode 'resources=21822819:2,21918689:2,22288065:2' \ +--data-urlencode 'platform=web' \ +--data-urlencode 'csrf=xxx' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + + +```json +{ + "code":0, + "message":"0", + "ttl":1, + "data":0 +} +``` + +
+ +### 批量移动内容 + +> https://api.bilibili.com/x/v3/fav/resource/move + +*请求方式:POST* + +认证方式:APP或Cookie(SESSDATA) + +**正文参数( application/x-www-form-urlencoded ):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------------ | ---- | ------------------------ | -------------- | ------------------------------------------------------------ | +| src_media_id | num | 源收藏夹id | 必要 | | +| tar_media_id | num | 目标收藏夹id | 必要 | | +| mid | num | 当前用户mid | 必要 | | +| resources | strs | 目标内容id列表 | 必要 | 格式:{内容id}:{内容类型}
每个成员间用`,`分隔
类型:
2:视频稿件
12:音频
21:视频合集
内容id:
视频稿件:视频稿件avid
音频:音频auid
视频合集:视频合集id | +| platform | str | 平台标识 | 非必要 | 可为web | +| csrf | str | CSRF Token(位于cookie) | Cookie方式必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------------------ | +| code | num | 返回值 | 0:成功
-101:账号未登录
-111:csrf校验失败
-400:请求错误
11010:您访问的内容不存在 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | obj | 信息本体 | 成功为0 | + +**示例:** + +将id为`1288061499`的收藏夹中视频稿件`av21822819` `av21918689` `av22288065`移动到id为`1178751999`的收藏夹中 + +```shell +curl 'https://api.bilibili.com/x/v3/fav/resource/move' \ +--data-urlencode 'src_media_id=1288061499' \ +--data-urlencode 'tar_media_id=1178751999' \ +--data-urlencode 'mid=233333' \ +--data-urlencode 'resources=21822819:2,21918689:2,22288065:2' \ +--data-urlencode 'platform=web' \ +--data-urlencode 'csrf=xxx' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + + +```json +{ + "code":0, + "message":"0", + "ttl":1, + "data":0 +} +``` + +
+ +### 批量删除内容 + +> https://api.bilibili.com/x/v3/fav/resource/batch-del + +*请求方式:POST* + +认证方式:APP或Cookie(SESSDATA) + +**正文参数( application/x-www-form-urlencoded ):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| --------- | -------------- | ------------------------ | ------------------------------------------------------------ | ------- | +| resources | 目标内容id列表 | 必要 | 格式:{内容id}:{内容类型}
每个成员间用`,`分隔
类型:
2:视频稿件
12:音频
21:视频合集
内容id:
视频稿件:视频稿件avid
音频:音频auid
视频合集:视频合集id | | +| media_id | num | 目标收藏夹id | 必要 | | +| platform | str | 平台标识 | 非必要 | 可为web | +| csrf | str | CSRF Token(位于cookie) | Cookie方式必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------------------ | +| code | num | 返回值 | 0:成功
-101:账号未登录
-111:csrf校验失败
-400:请求错误
11010:您访问的内容不存在 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | obj | 信息本体 | 成功为0 | + +**示例:** + +将id为`1178751999`的收藏夹中视频稿件`av21822819` `av21918689` `av22288065`取消收藏 + +```shell +curl 'https://api.bilibili.com/x/v3/fav/resource/batch-del' \ +--data-urlencode 'resources=21822819:2,21918689:2,22288065:2' \ +--data-urlencode 'media_id=1178751999' \ +--data-urlencode 'platform=web' \ +--data-urlencode 'csrf=xxx' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + + +```json +{ + "code":0, + "message":"0", + "ttl":1, + "data":0 +} +``` + +
+ +### 清空所有失效内容 + +> https://api.bilibili.com/x/v3/fav/resource/clean + +*请求方式:POST* + +认证方式:APP或Cookie(SESSDATA) + +**正文参数( application/x-www-form-urlencoded ):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| -------- | ---- | ------------------------ | -------------- | ---- | +| media_id | num | 目标收藏夹id | 必要 | | +| csrf | str | CSRF Token(位于cookie) | Cookie方式必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------- | +| code | num | 返回值 | 0:成功 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | obj | 信息本体 | 成功为0 | + +**示例:** + +清理id为`1161340172`的收藏夹 + +```shell +curl 'https://api.bilibili.com/x/v3/fav/resource/clean' \ +--data-urlencode 'media_id=1161340172' \ +--data-urlencode 'csrf=xxx' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + + +```json +{ + "code":0, + "message":"0", + "ttl":1, + "data":0 +} +``` + +
diff --git a/docs/fav/info.md b/docs/fav/info.md new file mode 100644 index 0000000000..60979fd5d7 --- /dev/null +++ b/docs/fav/info.md @@ -0,0 +1,415 @@ +# 收藏夹基本信息 + +- [获取收藏夹元数据](#获取收藏夹元数据) +- [获取指定用户创建的所有收藏夹信息](#获取指定用户创建的所有收藏夹信息) +- [批量获取指定收藏id的内容](#批量获取指定收藏id的内容) + +--- + +## 获取收藏夹元数据 + +> https://api.bilibili.com/x/v3/fav/folder/info + +*请求方式:GET* + +认证方式:Cookie或APP + +**注:查询权限收藏夹时需要相应用户登录** + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| -------- | ---- | ---------------------- | ------ | ---- | +| media_id | num | 目标收藏夹id(完整id) | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ----------------------------- | -------- | --------------------------------------------------- | +| code | num | 返回值 | 0:成功
-400:请求错误
-403:访问权限不足 | +| message | str | 错误信息 | 默认为0 | +| data | 有效时:obj
无效或:null | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----------- | ---- | -------------------- | -------------------------------------------------- | +| id | num | 收藏夹mlid(完整id) | 收藏夹原始id+创建者mid尾号2位 | +| fid | num | 收藏夹原始id | | +| mid | num | 创建者mid | | +| attr | num | 属性位(?) | | +| title | str | 收藏夹标题 | | +| cover | str | 收藏夹封面图片url | | +| upper | obj | 创建者信息 | | +| cover_type | num | 封面图类别(?) | | +| cnt_info | obj | 收藏夹状态数 | | +| type | num | 类型(?) | 一般是11 | +| intro | str | 备注 | | +| ctime | num | 创建时间 | 时间戳 | +| mtime | num | 收藏时间 | 时间戳 | +| state | num | 状态(?) | 一般为0 | +| fav_state | num | 收藏夹收藏状态 | 已收藏收藏夹:1
未收藏收藏夹:0
需要登录 | +| like_state | num | 点赞状态 | 已点赞:1
未点赞:0
需要登录 | +| media_count | num | 收藏夹内容数量 | | + + +`info`中的`upper`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---------- | ---- | ---------------- | ----------------------------------------------- | +| mid | num | 创建者mid | | +| name | str | 创建者昵称 | | +| face | str | 创建者头像url | | +| followed | bool | 是否已关注创建者 | | +| vip_type | num | 会员类别 | 0:无
1:月大会员
2:年度及以上大会员 | +| vip_statue | num | 会员开通状态 | 0:无
1:有 | + +`info`中的`cnt_info`对象: + +| 字段 | 类型 | 内容 | 备注 | +| -------- | ---- | ------ | ---- | +| collect | num | 收藏数 | | +| play | num | 播放数 | | +| thumb_up | num | 点赞数 | | +| share | num | 分享数 | | + +**示例:** + +查询收藏夹`id=1052622027`的元数据 + +```shell +curl -G 'https://api.bilibili.com/x/v3/fav/folder/info' \ +--data-urlencode 'media_id=1052622027' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "id": 1052622027, + "fid": 10526220, + "mid": 686127, + "attr": 54, + "title": "猛 男 生 存", + "cover": "http://i2.hdslb.com/bfs/archive/bb51ee8a5fc5e03996138155f0f682d30ee16484.jpg", + "upper": { + "mid": 686127, + "name": "籽岷", + "face": "http://i0.hdslb.com/bfs/face/7efb679569b2faeff38fa08f6f992fa1ada5e948.webp", + "followed": true, + "vip_type": 2, + "vip_statue": 1 + }, + "cover_type": 2, + "cnt_info": { + "collect": 3393, + "play": 184822, + "thumb_up": 3918, + "share": 44 + }, + "type": 11, + "intro": "猛 男 生 存", + "ctime": 1598884758, + "mtime": 1598884758, + "state": 0, + "fav_state": 0, + "like_state": 0, + "media_count": 28 + } +} +``` + +
+ +## 获取指定用户创建的所有收藏夹信息 + +> https://api.bilibili.com/x/v3/fav/folder/created/list-all + +*请求方式:GET* + +认证方式:Cookie或APP + +**注:查询权限收藏夹时需要相应用户登录** + +该接口也能查询目标内容id存在于那些收藏夹中 + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | ---- | ------------ | ------ | ---------------------------------------- | +| up_mid | num | 目标用户mid | 必要 | | +| type | num | 目标内容属性 | 非必要 | 默认为全部
0:全部
2:视频稿件 | +| rid | num | 目标内容id | 非必要 | 视频稿件:视频稿件avid | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ----------------------------- | -------- | --------------------------- | +| code | num | 返回值 | 0:成功
-400:请求错误 | +| message | str | 错误信息 | 默认为0 | +| data | 有效时:obj
无效或:null | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------ | ----- | ---------------- | ---- | +| count | num | 创建的收藏夹总数 | | +| list | array | 创建的收藏夹列表 | | +| season | null | (?) | | + +`list`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | ------------- | ---- | +| 0 | obj | 收藏夹1 | | +| n | obj | 收藏夹(n+1) | | +| ... | obj | ... | | + +`medias`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----------- | ---- | ------------------------ | ------------------------------------------ | +| id | num | 收藏夹mlid(完整id) | 收藏夹原始id+创建者mid尾号2位 | +| fid | num | 收藏夹原始id | | +| mid | num | 创建者mid | | +| attr | num | 属性位(?) | | +| title | str | 收藏夹标题 | | +| fav_state | num | 目标id是否存在于该收藏夹 | 存在于该收藏夹:1
不存在于该收藏夹:0 | +| media_count | num | 收藏夹内容数量 | | + +**示例:** + +查询用户`mid=509372`的所有创建收藏夹列表 + +```shell +curl -G 'https://api.bilibili.com/x/v3/fav/folder/created/list-all' \ +--data-urlencode 'up_mid=509372' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "count": 2, + "list": [ + { + "id": 939227072, + "fid": 9392270, + "mid": 509372, + "attr": 54, + "title": "学习", + "fav_state": 0, + "media_count": 22 + }, + { + "id": 75020272, + "fid": 750202, + "mid": 509372, + "attr": 22, + "title": "MAD/AMV", + "fav_state": 0, + "media_count": 16 + } + ], + "season": null + } +} +``` + +
+ +## 批量获取指定收藏id的内容 + +> https://api.bilibili.com/x/v3/fav/resource/infos + +*请求方式:GET* + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| --------- | ---- | -------------- | ------ | ------------------------------------------------------------ | +| resources | strs | 目标内容id列表 | 必要 | 格式:{内容id}:{内容类型}
每个成员间用`,`分隔
类型:
2:视频稿件
12:音频
21:视频合集
内容id:
视频稿件:视频稿件avid
音频:音频auid
视频合集:视频合集id | +| platform | str | 平台标识 | 非必要 | 可为web(影响内容列表类型) | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ------------------------------- | ------------ | --------------------------- | +| code | num | 返回值 | 0:成功
-400:请求错误 | +| message | str | 错误信息 | 默认为0 | +| data | 有效时:array
无效或:null | 内容信息列表 | | + +`data`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | --------------- | ---- | +| 0 | obj | 内容信息1 | | +| n | obj | 内容信息(n+1) | | +| ... | obj | ... | | + +`data`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| -------- | ---- | ------------- | ------------------------------------------------------------ | +| id | num | 内容id | 视频稿件:视频稿件avid
音频:音频auid
视频合集:视频合集id | +| type | num | 内容类型 | 2:视频稿件
12:音频
21:视频合集 | +| title | str | 标题 | | +| cover | str | 封面url | | +| intro | str | 简介 | | +| page | num | 视频分P数 | | +| duration | num | 音频/视频时长 | | +| upper | obj | UP主信息 | | +| attr | num | 属性 | 0:正常
1:失效 | +| cnt_info | obj | 状态数 | | +| link | str | 跳转uri | | +| ctime | num | 投稿时间 | 时间戳 | +| pubtime | num | 发布时间 | 时间戳 | +| fav_time | num | 收藏时间 | 时间戳 | +| bv_id | str | 视频稿件bvid | | +| bvid | str | 视频稿件bvid | | +| season | null | (?) | | + +`data`数组中的对象中的`upper`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | ----------- | ---- | +| mid | num | UP主mid | | +| name | str | UP主昵称 | | +| face | str | UP主头像url | | + +`data`数组中的对象中的`cnt_info`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | ------ | ---- | +| collect | num | 收藏数 | | +| play | num | 播放数 | | +| danmaku | num | 弹幕数 | | + +**示例:** + +批量查询内容 + +1-视频稿件-`av583785685` + +2-视频合集-`523` + +3-音频-`au15664` + +```shell +curl -G 'https://api.bilibili.com/x/v3/fav/resource/infos' \ +--data-urlencode 'resources=583785685:2,523:21,15664:12' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": [ + { + "id": 583785685, + "type": 2, + "title": "已失效视频", + "cover": "http://i0.hdslb.com/bfs/archive/be27fd62c99036dce67efface486fb0a88ffed06.jpg", + "intro": "审核君辛苦了~\r\n使用curl命令访问B站api,实现二维码登录 查询登录信息 视频投币 发送评论的操作\r\n本视频作为api收集项目的一个硬核DEMO\r\n由于当时录音的问题,大部分是后期配的,后面声音有点小\r\n想了解更多的去github页面,也可以qq\r\n\r\nbgm:\r\n雲流れ\r\nAutumn rain(未修改版)\r\n四月,初雨微凉", + "page": 1, + "duration": 604, + "upper": { + "mid": 293793435, + "name": "社会易姐QwQ", + "face": "http://i0.hdslb.com/bfs/face/aebb2639a0d47f2ce1fec0631f412eaf53d4a0be.jpg" + }, + "attr": 1, + "cnt_info": { + "collect": 1470, + "play": 28374, + "danmaku": 64 + }, + "link": "bilibili://video/583785685", + "ctime": 1594049831, + "pubtime": 1594049831, + "fav_time": 0, + "bv_id": "BV1kz4y1X7XP", + "bvid": "BV1kz4y1X7XP", + "season": null + }, + { + "id": 523, + "type": 21, + "title": "2021哔哩哔哩拜年纪", + "cover": "https://i0.hdslb.com/bfs/archive/8ccc50f7cbc671762e0536491bd2b8aeebc0837d.jpg", + "intro": "感谢各位制作者们的辛勤付出!节目精彩,愿大家看的开心!", + "page": 0, + "duration": 0, + "upper": { + "mid": 1868902080, + "name": "哔哩哔哩拜年纪", + "face": "http://i0.hdslb.com/bfs/face/7f6cb94fc071aca9fbb4b1ca9cc6415e86847576.jpg" + }, + "attr": 0, + "cnt_info": { + "collect": 0, + "play": 71527018, + "danmaku": 480547 + }, + "link": "bilibili://video/373561162", + "ctime": 0, + "pubtime": 0, + "fav_time": 0, + "bv_id": "", + "bvid": "", + "season": null + }, + { + "id": 15664, + "type": 12, + "title": "威风堂堂", + "cover": "http://i0.hdslb.com/bfs/music/c417d30b394a8a5d4e8a150ad75837dbae3b79d4.jpg", + "intro": "翻唱。在电脑里放了半个月终于!!!大家寒假快乐!!❁本家sm19233263;❁压制: 寒雨;❁mix: 三星堆;❁vocal: 茶理理。超喜欢michan的那段英文念白所以加了进来w 谢谢三月月和嘟比比你们后期辛苦了!", + "page": 1, + "duration": 200, + "upper": { + "mid": 684169, + "name": "茶理理理子", + "face": "" + }, + "attr": 0, + "cnt_info": { + "collect": 48872, + "play": 1508426, + "danmaku": 0 + }, + "link": "bilibili://music/detail/15664?name=%E5%A8%81%E9%A3%8E%E5%A0%82%E5%A0%82&uperName=%E8%8C%B6%E7%90%86%E7%90%86%E7%90%86%E5%AD%90&cover_url=http%3A%2F%2Fi0.hdslb.com%2Fbfs%2Fmusic%2Fc417d30b394a8a5d4e8a150ad75837dbae3b79d4.jpg&upperId=684169&author=%E8%8C%B6%E7%90%86%E7%90%86", + "ctime": 1502347604, + "pubtime": 1502347604, + "fav_time": 0, + "bv_id": "BV1bx411c7qt", + "bvid": "BV1bx411c7qt", + "season": null + } + ] +} +``` + +
\ No newline at end of file diff --git a/docs/fav/list.md b/docs/fav/list.md new file mode 100644 index 0000000000..86eb8e58b4 --- /dev/null +++ b/docs/fav/list.md @@ -0,0 +1,570 @@ +# 收藏夹内容 + +- [获取收藏夹内容明细列表](#获取收藏夹内容明细列表) +- [获取收藏夹全部内容id](#获取收藏夹全部内容id) + +--- + +## 获取收藏夹内容明细列表 + +> https://api.bilibili.com/x/v3/fav/resource/list + +*请求方式:GET* + +认证方式:Cookie或APP + +**注:查询权限收藏夹时需要相应用户登录** + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| -------- | ---- | ------------------------ | ------ | ------------------------------------------------------------ | +| media_id | num | 目标收藏夹mlid(完整id) | 必要 | | +| tid | num | 分区tid | 非必要 | 默认为全部分区
0:全部分区
[详见说明](../video/video_zone.md) | +| keyword | str | 搜索关键字 | 非必要 | | +| order | str | 排序方式 | 非必要 | 按收藏时间:mtime
按播放量: view
按投稿时间:pubtime | +| type | num | 查询范围 | 非必要 | 0:当前收藏夹(对应media_id)
1:全部收藏夹 | +| ps | num | 每页数量 | 必要 | 定义域:1-20 | +| pn | num | 页码 | 非必要 | 默认为1 | +| platform | str | 平台标识 | 非必要 | 可为web(影响内容列表类型) | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ----------------------------- | -------- | --------------------------------------------------- | +| code | num | 返回值 | 0:成功
-400:请求错误
-403:访问权限不足 | +| message | str | 错误信息 | 默认为0 | +| data | 有效时:obj
无效或:null | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------ | ----- | ------------ | ---- | +| info | obj | 收藏夹元数据 | | +| medias | array | 收藏夹内容 | | + +`data`中的`info`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----------- | ---- | -------------------- | -------------------------------------------------- | +| id | num | 收藏夹mlid(完整id) | 收藏夹原始id+创建者mid尾号2位 | +| fid | num | 收藏夹原始id | | +| mid | num | 创建者mid | | +| attr | num | 属性 | 0:正常
1:失效 | +| title | str | 收藏夹标题 | | +| cover | str | 收藏夹封面图片url | | +| upper | obj | 创建者信息 | | +| cover_type | num | 封面图类别(?) | | +| cnt_info | obj | 收藏夹状态数 | | +| type | num | 类型(?) | 一般是11 | +| intro | str | 备注 | | +| ctime | num | 创建时间 | 时间戳 | +| mtime | num | 收藏时间 | 时间戳 | +| state | num | 状态(?) | 一般为0 | +| fav_state | num | 收藏夹收藏状态 | 已收藏收藏夹:1
未收藏收藏夹:0
需要登录 | +| like_state | num | 点赞状态 | 已点赞:1
未点赞:0
需要登录 | +| media_count | num | 收藏夹内容数量 | | + + +`info`中的`upper`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---------- | ---- | ---------------- | ----------------------------------------------- | +| mid | num | 创建者mid | | +| name | str | 创建者昵称 | | +| face | str | 创建者头像url | | +| followed | bool | 是否已关注创建者 | | +| vip_type | num | 会员类别 | 0:无
1:月大会员
2:年度及以上大会员 | +| vip_statue | num | 会员开通状态 | 0:无
1:有 | + +`info`中的`cnt_info`对象: + +| 字段 | 类型 | 内容 | 备注 | +| -------- | ---- | ------ | ---- | +| collect | num | 收藏数 | | +| play | num | 播放数 | | +| thumb_up | num | 点赞数 | | +| share | num | 分享数 | | + +`data`中的`medias`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | ------------- | ---- | +| 0 | obj | 收藏内容1 | | +| n | obj | 收藏内容(n+1) | | +| ... | obj | ... | | + +`medias`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| -------- | ---- | ------------- | ------------------------------------------------------------ | +| id | num | 内容id | 视频稿件:视频稿件avid
音频:音频auid
视频合集:视频合集id | +| type | num | 内容类型 | 2:视频稿件
12:音频
21:视频合集 | +| title | str | 标题 | | +| cover | str | 封面url | | +| intro | str | 简介 | | +| page | num | 视频分P数 | | +| duration | num | 音频/视频时长 | | +| upper | obj | UP主信息 | | +| attr | num | 属性位(?) | | +| cnt_info | obj | 状态数 | | +| link | str | 跳转uri | | +| ctime | num | 投稿时间 | 时间戳 | +| pubtime | num | 发布时间 | 时间戳 | +| fav_time | num | 收藏时间 | 时间戳 | +| bv_id | str | 视频稿件bvid | | +| bvid | str | 视频稿件bvid | | +| season | null | (?) | | + +`medias`数组中的对象中的`upper`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | ----------- | ---- | +| mid | num | UP主mid | | +| name | str | UP主昵称 | | +| face | str | UP主头像url | | + +`medias`数组中的对象中的`cnt_info`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | ------ | ---- | +| collect | num | 收藏数 | | +| play | num | 播放数 | | +| danmaku | num | 弹幕数 | | + +**示例:** + +查询收藏夹`id=1052622027`,每页5个视频,第`1`页的内容明细 + +```shell +curl -G 'https://api.bilibili.com/x/v3/fav/resource/list' \ +--data-urlencode 'media_id=1052622027' \ +--data-urlencode 'platform=web' \ +--data-urlencode 'pn=1' \ +--data-urlencode 'ps=5' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "info": { + "id": 1052622027, + "fid": 10526220, + "mid": 686127, + "attr": 54, + "title": "猛 男 生 存", + "cover": "http://i2.hdslb.com/bfs/archive/bb51ee8a5fc5e03996138155f0f682d30ee16484.jpg", + "upper": { + "mid": 686127, + "name": "籽岷", + "face": "http://i0.hdslb.com/bfs/face/7efb679569b2faeff38fa08f6f992fa1ada5e948.webp", + "followed": true, + "vip_type": 2, + "vip_statue": 1 + }, + "cover_type": 2, + "cnt_info": { + "collect": 3393, + "play": 184768, + "thumb_up": 3916, + "share": 44 + }, + "type": 11, + "intro": "猛 男 生 存", + "ctime": 1598884758, + "mtime": 1598884758, + "state": 0, + "fav_state": 0, + "like_state": 0, + "media_count": 28 + }, + "medias": [ + { + "id": 371494037, + "type": 2, + "title": "猛 男 生 存", + "cover": "http://i2.hdslb.com/bfs/archive/bb51ee8a5fc5e03996138155f0f682d30ee16484.jpg", + "intro": "如果大家喜欢我的视频,别忘了点个赞,一键三连,或者关注我的频道哦~\n也可以把我的视频分享给你们的朋友们~\n\n第一集:BV1CZ4y1T7gC\n第二集:BV1oA411a72k\n第三集:BV1fK4y1e7Yj\n第四集:BV1Ya4y1E7Y6\n第五集:BV17V411z75A\n第六集:BV1oi4y137sw\n第七集:BV1Wt4y1D7Uu\n第八集:BV1Bp4y1q7y9\n第九集:BV1Lv411v7G2\n第十集:BV1Xi4y137ER\n第十一集:BV1nC4y1879J\n第十二集:BV1K54y1", + "page": 1, + "duration": 546, + "upper": { + "mid": 686127, + "name": "籽岷", + "face": "http://i0.hdslb.com/bfs/face/7efb679569b2faeff38fa08f6f992fa1ada5e948.webp" + }, + "attr": 0, + "cnt_info": { + "collect": 11256, + "play": 1638040, + "danmaku": 7697 + }, + "link": "bilibili://video/371494037", + "ctime": 1595690513, + "pubtime": 1595690513, + "fav_time": 1598884777, + "bv_id": "BV1CZ4y1T7gC", + "bvid": "BV1CZ4y1T7gC", + "season": null + }, + { + "id": 328991940, + "type": 2, + "title": "猛 男 生 存 2", + "cover": "http://i1.hdslb.com/bfs/archive/aa801612ea0229a08d000a525b715af24cba0964.jpg", + "intro": "如果大家喜欢我的视频,别忘了点个赞,一键三连,或者关注我的频道哦~\n也可以把我的视频分享给你们的朋友们~\n\n第一集:BV1CZ4y1T7gC\n第二集:BV1oA411a72k\n第三集:BV1fK4y1e7Yj\n第四集:BV1Ya4y1E7Y6\n第五集:BV17V411z75A\n第六集:BV1oi4y137sw\n第七集:BV1Wt4y1D7Uu\n第八集:BV1Bp4y1q7y9\n第九集:BV1Lv411v7G2\n第十集:BV1Xi4y137ER\n第十一集:BV1nC4y1879J\n第十二集:BV1K54y1", + "page": 1, + "duration": 644, + "upper": { + "mid": 686127, + "name": "籽岷", + "face": "http://i0.hdslb.com/bfs/face/7efb679569b2faeff38fa08f6f992fa1ada5e948.webp" + }, + "attr": 0, + "cnt_info": { + "collect": 8695, + "play": 1334651, + "danmaku": 6064 + }, + "link": "bilibili://video/328991940", + "ctime": 1595770876, + "pubtime": 1595770876, + "fav_time": 1598884783, + "bv_id": "BV1oA411a72k", + "bvid": "BV1oA411a72k", + "season": null + }, + { + "id": 884042215, + "type": 2, + "title": "猛 男 生 存 3", + "cover": "http://i1.hdslb.com/bfs/archive/f99059637c110dcd1cdae765a946801fbcefe4ab.jpg", + "intro": "如果大家喜欢我的视频,别忘了点个赞,一键三连,或者关注我的频道哦~\n也可以把我的视频分享给你们的朋友们~\n\n第一集:BV1CZ4y1T7gC\n第二集:BV1oA411a72k\n第三集:BV1fK4y1e7Yj\n第四集:BV1Ya4y1E7Y6\n第五集:BV17V411z75A\n第六集:BV1oi4y137sw\n第七集:BV1Wt4y1D7Uu\n第八集:BV1Bp4y1q7y9\n第九集:BV1Lv411v7G2\n第十集:BV1Xi4y137ER\n第十一集:BV1nC4y1879J\n第十二集:BV1K54y1", + "page": 1, + "duration": 703, + "upper": { + "mid": 686127, + "name": "籽岷", + "face": "http://i0.hdslb.com/bfs/face/7efb679569b2faeff38fa08f6f992fa1ada5e948.webp" + }, + "attr": 0, + "cnt_info": { + "collect": 9449, + "play": 1429408, + "danmaku": 8243 + }, + "link": "bilibili://video/884042215", + "ctime": 1595847079, + "pubtime": 1595847079, + "fav_time": 1598884788, + "bv_id": "BV1fK4y1e7Yj", + "bvid": "BV1fK4y1e7Yj", + "season": null + }, + { + "id": 669013980, + "type": 2, + "title": "猛 男 生 存 4", + "cover": "http://i1.hdslb.com/bfs/archive/def0f7009cb9a8b581ee03be9565918ff0c1913d.jpg", + "intro": "如果大家喜欢我的视频,别忘了点个赞,一键三连,或者关注我的频道哦~\n也可以把我的视频分享给你们的朋友们~\n\n第一集:BV1CZ4y1T7gC\n第二集:BV1oA411a72k\n第三集:BV1fK4y1e7Yj\n第四集:BV1Ya4y1E7Y6\n第五集:BV17V411z75A\n第六集:BV1oi4y137sw\n第七集:BV1Wt4y1D7Uu\n第八集:BV1Bp4y1q7y9\n第九集:BV1Lv411v7G2\n第十集:BV1Xi4y137ER\n第十一集:BV1nC4y1879J\n第十二集:BV1K54y1", + "page": 1, + "duration": 895, + "upper": { + "mid": 686127, + "name": "籽岷", + "face": "http://i0.hdslb.com/bfs/face/7efb679569b2faeff38fa08f6f992fa1ada5e948.webp" + }, + "attr": 0, + "cnt_info": { + "collect": 9950, + "play": 1309544, + "danmaku": 13551 + }, + "link": "bilibili://video/669013980", + "ctime": 1595943988, + "pubtime": 1595943988, + "fav_time": 1598884792, + "bv_id": "BV1Ya4y1E7Y6", + "bvid": "BV1Ya4y1E7Y6", + "season": null + }, + { + "id": 414034824, + "type": 2, + "title": "猛 男 生 存 5", + "cover": "http://i2.hdslb.com/bfs/archive/b4844ac89dde221d13bb8ddff80a8c4658bf7dc5.jpg", + "intro": "如果大家喜欢我的视频,别忘了点个赞,一键三连,或者关注我的频道哦~\n也可以把我的视频分享给你们的朋友们~\n\n第一集:BV1CZ4y1T7gC\n第二集:BV1oA411a72k\n第三集:BV1fK4y1e7Yj\n第四集:BV1Ya4y1E7Y6\n第五集:BV17V411z75A\n第六集:BV1oi4y137sw\n第七集:BV1Wt4y1D7Uu\n第八集:BV1Bp4y1q7y9\n第九集:BV1Lv411v7G2\n第十集:BV1Xi4y137ER\n第十一集:BV1nC4y1879J\n第十二集:BV1K54y1", + "page": 1, + "duration": 814, + "upper": { + "mid": 686127, + "name": "籽岷", + "face": "http://i0.hdslb.com/bfs/face/7efb679569b2faeff38fa08f6f992fa1ada5e948.webp" + }, + "attr": 0, + "cnt_info": { + "collect": 9446, + "play": 1235998, + "danmaku": 9021 + }, + "link": "bilibili://video/414034824", + "ctime": 1596023668, + "pubtime": 1596023668, + "fav_time": 1598884798, + "bv_id": "BV17V411z75A", + "bvid": "BV17V411z75A", + "season": null + } + ], + "has_more": true + } +} +``` + +
+ +## 获取收藏夹全部内容id + +> https://api.bilibili.com/x/v3/fav/resource/ids + +*请求方式:GET* + +认证方式:Cookie或APP + +**注:查询权限收藏夹时需要相应用户登录** + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| -------- | ---- | ------------------------ | ------ | --------------------------- | +| media_id | num | 目标收藏夹mlid(完整id) | 必要 | | +| platform | str | 平台标识 | 非必要 | 可为web(影响内容列表类型) | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ------------------------------- | ---------- | --------------------------------------------------- | +| code | num | 返回值 | 0:成功
-400:请求错误
-403:访问权限不足 | +| message | str | 错误信息 | 默认为0 | +| data | 有效时:array
无效或:null | 内容id列表 | | + +`data`中的`medias`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | --------------- | ---- | +| 0 | obj | 收藏内容id1 | | +| n | obj | 收藏内容id(n+1) | | +| ... | obj | ... | | + +`medias`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----- | ---- | ------------ | ------------------------------------------------------------ | +| id | num | 内容id | 视频稿件:视频稿件avid
音频:音频auid
视频合集:视频合集id | +| type | num | 内容类型 | 2:视频稿件
12:音频
21:视频合集 | +| bv_id | str | 视频稿件bvid | | +| bvid | str | 视频稿件bvid | | + +**示例:** + +查询收藏夹`id=1052622027`的全部内容id + +```shell +curl -G 'https://api.bilibili.com/x/v3/fav/resource/ids' \ +--data-urlencode 'media_id=1052622027' \ +--data-urlencode 'platform=web' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": [ + { + "id": 371494037, + "type": 2, + "bv_id": "BV1CZ4y1T7gC", + "bvid": "BV1CZ4y1T7gC" + }, + { + "id": 328991940, + "type": 2, + "bv_id": "BV1oA411a72k", + "bvid": "BV1oA411a72k" + }, + { + "id": 884042215, + "type": 2, + "bv_id": "BV1fK4y1e7Yj", + "bvid": "BV1fK4y1e7Yj" + }, + { + "id": 669013980, + "type": 2, + "bv_id": "BV1Ya4y1E7Y6", + "bvid": "BV1Ya4y1E7Y6" + }, + { + "id": 414034824, + "type": 2, + "bv_id": "BV17V411z75A", + "bvid": "BV17V411z75A" + }, + { + "id": 541550765, + "type": 2, + "bv_id": "BV1oi4y137sw", + "bvid": "BV1oi4y137sw" + }, + { + "id": 626619000, + "type": 2, + "bv_id": "BV1Wt4y1D7Uu", + "bvid": "BV1Wt4y1D7Uu" + }, + { + "id": 969124957, + "type": 2, + "bv_id": "BV1Bp4y1q7y9", + "bvid": "BV1Bp4y1q7y9" + }, + { + "id": 244079274, + "type": 2, + "bv_id": "BV1Lv411v7G2", + "bvid": "BV1Lv411v7G2" + }, + { + "id": 541500006, + "type": 2, + "bv_id": "BV1Xi4y137ER", + "bvid": "BV1Xi4y137ER" + }, + { + "id": 796655080, + "type": 2, + "bv_id": "BV1nC4y1879J", + "bvid": "BV1nC4y1879J" + }, + { + "id": 839243447, + "type": 2, + "bv_id": "BV1K54y1U77v", + "bvid": "BV1K54y1U77v" + }, + { + "id": 329235451, + "type": 2, + "bv_id": "BV13A411e7ad", + "bvid": "BV13A411e7ad" + }, + { + "id": 884202228, + "type": 2, + "bv_id": "BV1UK4y1v7K6", + "bvid": "BV1UK4y1v7K6" + }, + { + "id": 926710567, + "type": 2, + "bv_id": "BV1BT4y157HK", + "bvid": "BV1BT4y157HK" + }, + { + "id": 754200948, + "type": 2, + "bv_id": "BV1qk4y117Uk", + "bvid": "BV1qk4y117Uk" + }, + { + "id": 371795957, + "type": 2, + "bv_id": "BV1iZ4y1K7LG", + "bvid": "BV1iZ4y1K7LG" + }, + { + "id": 969268280, + "type": 2, + "bv_id": "BV1hp4y1v7mU", + "bvid": "BV1hp4y1v7mU" + }, + { + "id": 414281629, + "type": 2, + "bv_id": "BV1xV411U7mm", + "bvid": "BV1xV411U7mm" + }, + { + "id": 839319009, + "type": 2, + "bv_id": "BV1t54y1U7hg", + "bvid": "BV1t54y1U7hg" + }, + { + "id": 329271769, + "type": 2, + "bv_id": "BV12A411J7JZ", + "bvid": "BV12A411J7JZ" + }, + { + "id": 969365400, + "type": 2, + "bv_id": "BV1wp4y1i7U8", + "bvid": "BV1wp4y1i7U8" + }, + { + "id": 796831427, + "type": 2, + "bv_id": "BV1yC4y1t7Gb", + "bvid": "BV1yC4y1t7Gb" + }, + { + "id": 711972863, + "type": 2, + "bv_id": "BV1YD4y1m7FP", + "bvid": "BV1YD4y1m7FP" + }, + { + "id": 754414390, + "type": 2, + "bv_id": "BV1Yk4y127YR", + "bvid": "BV1Yk4y127YR" + }, + { + "id": 839478683, + "type": 2, + "bv_id": "BV1i54y127uw", + "bvid": "BV1i54y127uw" + }, + { + "id": 499448381, + "type": 2, + "bv_id": "BV19K411N7KE", + "bvid": "BV19K411N7KE" + }, + { + "id": 926919797, + "type": 2, + "bv_id": "BV1QT4y1L7Bb", + "bvid": "BV1QT4y1L7Bb" + } + ] +} +``` + +
diff --git a/docs/garb/color.md b/docs/garb/color.md new file mode 100644 index 0000000000..3ec7e07254 --- /dev/null +++ b/docs/garb/color.md @@ -0,0 +1,316 @@ +# 主题色 + +- [获取主题色基本信息1](#获取主题色基本信息1) +- [获取主题色基本信息2](#获取主题色基本信息2) + +--- + +## 获取主题色基本信息1 + +> https://club.bilibili.com/api/query.skin.list.do + +*请求方式:GET* + +鉴权方式:appkey + +认证方式:仅可APP + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ---------- | ---- | ------------ | ----------- | ------------- | +| access_key | str | APP登录Token | APP方式必要 | | +| appkey | str | APP密钥 | APP方式必要 | | +| build | num | 版本 | APP方式必要 | 可为`6082000` | +| sign | str | APP签名 | APP方式必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ----- | ------------ | ---------------------------------------------------- | +| ts | num | 当前时间戳 | | +| code | num | 返回值 | 0:成功
-3:API校验密匙错误
-400:请求错误 | +| data | array | 主题颜色列表 | | + +`data`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | ------------- | ---- | +| 0 | obj | 主题颜色1 | | +| n | obj | 主题颜色(n+1) | | +| …… | obj | …… | …… | + +`data`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---------- | ---- | ------------ | ------------------------------- | +| id | num | 颜色id | | +| name | str | 颜色名称 | | +| is_free | bool | 是否免费 | false:收费
true:免费 | +| price | num | 价格 | 单位为硬币 | +| is_bought | bool | 是否已购买 | false:未购买
true:已购买 | +| status | num | 状态 | 1:自动续费
4:已退订 | +| buy_time | num | 购买时间 | 毫秒时间戳 | +| due_time | num | 到期时间 | 毫秒时间戳 | +| color_name | str | 颜色类型名称 | | +| is_overdue | bool | 是否已到期 | false:未到期
true:已到期 | + +**示例:** + +```shell +curl -G 'https://club.bilibili.com/api/query.skin.list.do' \ +--data-urlencode 'access_key=xxx' \ +--data-urlencode 'appkey=1d8b6e7d45233436' \ +--data-urlencode 'build=6082000' \ +--data-urlencode 'sign=2d37f2cd6f86337a6a07cb3cf311be86' +``` + +
+查看响应示例: + +```json +{ + "ts": 1599225638239, + "code": 0, + "data": [ + { + "id": 2, + "name": "少女粉", + "is_free": true, + "price": 0, + "is_bought": false, + "color_name": "pink", + "is_overdue": false + }, + { + "id": 1, + "name": "夜间模式", + "is_free": true, + "price": 0, + "is_bought": false, + "color_name": "black", + "is_overdue": false + }, + { + "id": 3, + "name": "姨妈红", + "is_free": false, + "price": 5, + "is_bought": false, + "color_name": "red", + "is_overdue": false + }, + { + "id": 4, + "name": "咸蛋黄", + "is_free": false, + "price": 5, + "is_bought": false, + "color_name": "yellow", + "is_overdue": false + }, + { + "id": 5, + "name": "早苗绿", + "is_free": false, + "price": 5, + "is_bought": false, + "status": 4, + "buy_time": 1599219782000, + "due_time": 1601811782000, + "color_name": "green", + "is_overdue": false + }, + { + "id": 6, + "name": "胖次蓝", + "is_free": false, + "price": 5, + "is_bought": false, + "color_name": "blue", + "is_overdue": false + }, + { + "id": 7, + "name": "基佬紫", + "is_free": false, + "price": 5, + "is_bought": false, + "color_name": "purple", + "is_overdue": false + } + ] +} +``` + +
+ +## 获取主题色基本信息2 + +> https://api.bilibili.com/x/garb/skin/color/list + +*请求方式:GET* + +认证方式:仅可Cookie + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| -------- | ---- | -------- | ------ | ------------- | +| mobi_app | str | 平台标识 | 非必要 | 可为`android` | +| build | num | 版本 | 非必要 | 可为`6082000` | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ----- | ------------ | ---------------------------------------------------- | +| code | num | 返回值 | 0:成功
-3:API校验密匙错误
-400:请求错误 | +| message | str | 错误信息 | 默认为0 | +| data | array | 主题颜色列表 | | + +`data`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | ------------- | ---- | +| 0 | obj | 主题颜色1 | | +| n | obj | 主题颜色(n+1) | | +| …… | obj | …… | …… | + +`data`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---------- | ---- | ------------ | ------------------------------- | +| id | num | 颜色id | | +| name | str | 颜色名称 | | +| is_free | bool | 是否免费 | false:收费
true:免费 | +| price | num | 价格 | 单位为硬币 | +| is_bought | bool | 是否已购买 | false:未购买
true:已购买 | +| status | num | 状态 | 1:自动续费
4:已退订 | +| buy_time | num | 购买时间 | 毫秒时间戳 | +| due_time | num | 到期时间 | 毫秒时间戳 | +| color_name | str | 颜色类型名称 | | +| is_overdue | bool | 是否已到期 | false:未到期
true:已到期 | + +**示例:** + +```shell +curl -G 'https://api.bilibili.com/x/garb/skin/color/list' \ +--data-urlencode 'mobi_app=android' \ +--data-urlencode 'build=6082000' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": [ + { + "id": 8, + "name": "简洁白", + "is_free": true, + "price": 0, + "is_bought": false, + "status": 0, + "buy_time": 0, + "due_time": 0, + "color_name": "white", + "is_overdue": false + }, + { + "id": 2, + "name": "少女粉", + "is_free": true, + "price": 0, + "is_bought": false, + "status": 0, + "buy_time": 0, + "due_time": 0, + "color_name": "pink", + "is_overdue": false + }, + { + "id": 1, + "name": "夜间模式", + "is_free": true, + "price": 0, + "is_bought": false, + "status": 0, + "buy_time": 0, + "due_time": 0, + "color_name": "black", + "is_overdue": false + }, + { + "id": 3, + "name": "姨妈红", + "is_free": false, + "price": 5, + "is_bought": false, + "status": 0, + "buy_time": 0, + "due_time": 0, + "color_name": "red", + "is_overdue": false + }, + { + "id": 4, + "name": "咸蛋黄", + "is_free": false, + "price": 5, + "is_bought": false, + "status": 0, + "buy_time": 0, + "due_time": 0, + "color_name": "yellow", + "is_overdue": false + }, + { + "id": 5, + "name": "早苗绿", + "is_free": false, + "price": 5, + "is_bought": false, + "status": 4, + "buy_time": 1599219782000, + "due_time": 1601811782000, + "color_name": "green", + "is_overdue": false + }, + { + "id": 6, + "name": "胖次蓝", + "is_free": false, + "price": 5, + "is_bought": false, + "status": 0, + "buy_time": 0, + "due_time": 0, + "color_name": "blue", + "is_overdue": false + }, + { + "id": 7, + "name": "基佬紫", + "is_free": false, + "price": 5, + "is_bought": false, + "status": 0, + "buy_time": 0, + "due_time": 0, + "color_name": "purple", + "is_overdue": false + } + ] +} +``` + +
\ No newline at end of file diff --git a/docs/garb/skin.md b/docs/garb/skin.md new file mode 100644 index 0000000000..51186eeeef --- /dev/null +++ b/docs/garb/skin.md @@ -0,0 +1,272 @@ +# APP主题 + +- [获取主题及加载动画](#获取主题及加载动画) +- [主题包结构](#主题包结构) + +--- + +## 获取主题及加载动画 + +> https://app.bilibili.com/x/resource/show/skin + +*请求方式:GET* + +鉴权方式:appkey + +认证方式:仅可APP + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ---------- | ---- | ------------ | ----------- | ------------- | +| access_key | str | APP登录Token | APP方式必要 | | +| appkey | str | APP密钥 | APP方式必要 | | +| build | num | 版本 | APP方式必要 | 可为`6082000` | +| ts | num | 当前时间戳 | APP方式必要 | 可为`0` | +| sign | str | APP签名 | APP方式必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ---------------------------------------------------- | +| code | num | 返回值 | 0:成功
-3:API校验密匙错误
-400:请求错误 | +| message | str | 错误信息 | 默认为0 | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----------- | ----- | ------------ | ------------ | +| user_equip | obj | 个性主题信息 | 有效时有此项 | +| skin_colors | array | 主题颜色列表 | | +| load_equip | obj | 加载动画信息 | 有效时有此项 | + +`data`中的`user_equip`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----------- | ---- | --------------- | ------ | +| id | num | 装扮id | | +| name | str | 装扮名称 | | +| preview | str | 装扮封面url | | +| ver | num | 装扮版本 | 时间戳 | +| package_url | str | 装扮包url | | +| package_md5 | str | 装扮包md5校验值 | | +| data | obj | 装扮配置 | | + +`user_equip`中的`data`对象: + +| 字段 | 类型 | 内容 | 必要性 | 备注 | +| ------------------- | ---- | ----------------- | -------- | --------------------------- | +| color_mode | str | 颜色模式 | 必要 | light:亮色
dark:暗色 | +| color | str | 前景色? | 必要 | 颜色
1. 使用十六进制颜色值
2. 颜色值的大小写不限,下同
3. 例:#ffffff | +| color_second_page | str | 背景色? | 必要 | 颜色 | +| tail_color | str | 底边栏颜色 | 必要 | 颜色 | +| tail_color_selected | str | 底边栏颜色(选择时) | 必要 | 颜色 | +| tail_icon_ani | bool | 有无底边栏动画 | 必要 | false:无
true:有 | +| tail_icon_ani_mode | str | 底边栏动画循环播放 | 必要 | once:播放一次 | +| head_myself_mp4_play| str | 我的页面头图(视频)循环 | 必要 | once:播放一次
loop:循环播放 | +| tail_icon_mode | str | 底栏改图标或改颜色 | 必要 | img:图标
color:颜色 | +| side_bg_color | str | 侧边栏颜色 | 非必要 | 颜色
5.x 版本客户端的侧边栏 | +| side_line_color | str | 侧边栏线条颜色? | 非必要 | 颜色
5.x 版本客户端的侧边栏 | +| tail_icon_color | str | 底栏图标颜色 | 可能必要 | 颜色
若 tail_icon_mode = "color",则必要 | +| tail_icon_color_dark| str | 底栏图标颜色(夜间模式) | 可能必要 | 颜色
若 tail_icon_mode = "color",则必要 | +| tail_icon_color_selected| str | 底栏图标颜色(选择时) | 可能必要 | 颜色
若 tail_icon_mode = "color",则必要 | +| tail_icon_color_selected_dark| str | 底栏图标颜色(选择时)(夜间模式) | 可能必要 | 颜色
若 tail_icon_mode = "color",则必要 | + +`skin_colors`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | ------------- | ---- | +| 0 | obj | 主题颜色1 | | +| n | obj | 主题颜色(n+1) | | +| …… | obj | …… | …… | + +`skin_colors`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---------- | ---- | ------------ | ------------------------------- | +| id | num | 颜色id | | +| name | str | 颜色名称 | | +| is_free | bool | 是否免费 | false:收费
true:免费 | +| price | num | 价格 | 单位为硬币 | +| is_bought | bool | 是否已购买 | false:未购买
true:已购买 | +| status | num | 状态 | 1:自动续费
4:已退订 | +| buy_time | num | 购买时间 | 毫秒时间戳 | +| due_time | num | 到期时间 | 毫秒时间戳 | +| color_name | str | 颜色类型名称 | | +| is_overdue | bool | 是否已到期 | false:未到期
true:已到期 | + +`data`中的`load_equip`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----------- | ---- | --------------- | ------ | +| id | num | 装扮id | | +| name | str | 装扮名称 | | +| ver | num | 装扮版本 | 时间戳 | +| loading_url | str | 加载动画图标url | | + +**示例:** + +```shell +curl -G 'https://app.bilibili.com/x/resource/show/skin' \ +--data-urlencode 'access_key=xxx' \ +--data-urlencode 'appkey=1d8b6e7d45233436' \ +--data-urlencode 'build=6082000' \ +--data-urlencode 'ts=0' \ +--data-urlencode 'sign=ea212fea5b00a6278ea6d9938b4c500e' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "user_equip": { + "id": 2529, + "name": "初音未来-日版", + "preview": "http://i0.hdslb.com/bfs/garb/item/2fa16380b31b3cee6c889d645f2699de8e9d9faf.jpg", + "ver": 1598600025, + "package_url": "http://i0.hdslb.com/bfs/garb/zip/9c393edea0c7b7b59685a20cd655363ef573a325.zip", + "package_md5": "7b6d20d998ad543c6a275948a6a1a5fe", + "data": { + "color_mode": "light", + "color": "#212121", + "color_second_page": "#fff2d2", + "side_bg_color": "#ffe7ae", + "tail_color": "#996c00", + "tail_color_selected": "#0d6872", + "tail_icon_ani": true, + "tail_icon_ani_mode": "once" + } + }, + "skin_colors": [ + { + "id": 2, + "name": "少女粉", + "is_free": true, + "color_name": "pink" + }, + { + "id": 1, + "name": "夜间模式", + "is_free": true, + "color_name": "black" + }, + { + "id": 3, + "name": "姨妈红", + "price": 5, + "color_name": "red" + }, + { + "id": 4, + "name": "咸蛋黄", + "price": 5, + "color_name": "yellow" + }, + { + "id": 5, + "name": "早苗绿", + "price": 5, + "status": 4, + "buy_time": 1599219782000, + "due_time": 1601811782000, + "color_name": "green" + }, + { + "id": 6, + "name": "胖次蓝", + "price": 5, + "color_name": "blue" + }, + { + "id": 7, + "name": "基佬紫", + "price": 5, + "color_name": "purple" + } + ], + "load_equip": { + "id": 2531, + "name": "初音未来13周年", + "ver": 1598602035, + "loading_url": "http://i0.hdslb.com/bfs/garb/item/9b12e8b5cc16a4c2e71e91c43796f09d5e132847.webp" + } + } +} +``` + +
+ +## 主题包结构 + +主题包为app端付费主题(套装)的整合包,以zip格式通过url分发 + +包内的图片文件为app对应的资源替换,替换时可随意修改后缀 jpg 或 png + +必要性:head_bg 及 head_tab_bg 为必要,其他非必要 + +| 文件名 | 说明 | +| --------------------------------- | -------------------------- | +| head_bg.jpg | 首页顶部栏背景 | +| head_tab_bg.jpg | 顶部栏背景 | +| head_myself_bg.jpg | 【我的】页面头图(小) | +| head_myself_squared_bg.jpg | 【我的】页面头图(大) | +| head_myself_mp4_bg.mp4 | 【我的】页面头图(视频)
格式参考:后缀必须 mp4、分辨率 1242 x 1074、60 FPS、去掉音轨(音频) | +| side_bg.jpg | 侧边栏背景 | +| side_bg_bottom.jpg | 侧边栏底部背景 | +| tail_bg.png | 底部栏背景 | +| tail_icon_main.png | 【首页】按钮 | +| tail_icon_channel.png | 【频道】按钮 | +| tail_icon_dynamic.png | 【动态】按钮 | +| tail_icon_shop.png | 【会员购】按钮 | +| tail_icon_myself.png | 【我的】按钮 | +| tail_icon_pub_btn_bg.png | 【发布】按钮 | +| tail_icon_selected_main.png | 【首页】按钮(选中状态) | +| tail_icon_selected_channel.png | 【频道】按钮(选中状态) | +| tail_icon_selected_dynamic.png | 【动态】按钮(选中状态) | +| tail_icon_selected_shop.png | 【会员购】按钮(选中状态) | +| tail_icon_selected_myself.png | 【我的】按钮(选中状态) | +| tail_icon_selected_pub_btn_bg.png | 【发布】按钮(选中状态) | + + +以`id=2529(初音未来-日版)`的资源为例 + +```shell +wget https://i0.hdslb.com/bfs/garb/zip/9c393edea0c7b7b59685a20cd655363ef573a325.zip +unzip -l 9c393edea0c7b7b59685a20cd655363ef573a325.zip +``` + +返回为 + +``` +Archive: 9c393edea0c7b7b59685a20cd655363ef573a325.zip + Length Date Time Name +--------- ---------- ----- ---- + 22995 1980-00-00 00:00 tail_icon_selected_myself.png + 18444 1980-00-00 00:00 head_bg.jpg + 3061 1980-00-00 00:00 head_tab_bg.jpg + 188898 1980-00-00 00:00 side_bg.jpg + 2842 1980-00-00 00:00 side_bg_bottom.jpg + 203134 1980-00-00 00:00 tail_bg.png + 27539 1980-00-00 00:00 tail_icon_main.png + 25632 1980-00-00 00:00 tail_icon_selected_main.png + 27415 1980-00-00 00:00 tail_icon_selected_channel.png + 191706 1980-00-00 00:00 head_myself_squared_bg.jpg + 27919 1980-00-00 00:00 tail_icon_channel.png + 27262 1980-00-00 00:00 tail_icon_selected_dynamic.png + 147738 1980-00-00 00:00 head_myself_bg.jpg + 28182 1980-00-00 00:00 tail_icon_dynamic.png + 25878 1980-00-00 00:00 tail_icon_shop.png + 26487 1980-00-00 00:00 tail_icon_selected_shop.png + 21831 1980-00-00 00:00 tail_icon_myself.png +--------- ------- + 1016963 17 files +``` + diff --git a/docs/history&toview/history.md b/docs/history&toview/history.md new file mode 100644 index 0000000000..ea54bc26b6 --- /dev/null +++ b/docs/history&toview/history.md @@ -0,0 +1,850 @@ +# 历史记录 + +- [获取历史记录列表_web端](#获取历史记录列表_web端) +- [获取视频观看历史记录_web端旧版](#获取视频观看历史记录_旧版) +- [删除历史记录](#删除历史记录) +- [清空历史记录](#清空历史记录) +- [停用历史记录](#停用历史记录) +- [查询历史记录停用状态](#查询历史记录停用状态) + +--- + +## 获取历史记录列表_web端 + +>https://api.bilibili.com/x/web-interface/history/cursor + +*请求方式:GET* + +认证方式:Cookie (SESSDATA) + +注:`max`、`business`、`view_at`参数用于历史记录列表的 IFS (无限滚动),其用法类似链表的 next 指针 + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| -------- | ---- | ------------------------ | ------ | ------------------------------------------------------------ | +| max | num | 历史记录截止目标 id | 非必要 | 默认为 0
稿件:稿件 avid
剧集(番剧 / 影视):剧集 ssid
直播:直播间 id
文集:文集 rlid
文章:文章 cvid | +| business | str | 历史记录截止目标业务类型 | 非必要 | 默认为空
archive:稿件
pgc:剧集(番剧 / 影视)
live:直播
article-list:文集
article:文章 | +| view_at | num | 历史记录截止时间 | 非必要 | 时间戳
默认为 0
0 为当前时间 | +| type | str | 历史记录分类筛选 | 非必要 | all:全部类型(默认)
archive:稿件
live:直播
article:文章 | +| ps | num | 每页项数 | 非必要 | 默认为 20,最大 30 | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ----- | ------------ | ------------------------------------------------- | +| code | num | 返回值 | 0:成功
-101:账号未登录
-400:请求错误 | +| message | str | 错误信息 | 默认为 0 | +| ttl | num | 1 | | +| data | array | 历史记录列表 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------ | ----- | ---------------- | ---- | +| cursor | obj | 历史记录页面信息 | | +| tab | array | 历史记录筛选类型 | | +| list | array | 分段历史记录列表 | | + +`data`中的`cursor`对象: + +| 字段 | 类型 | 内容 | 备注 | +| -------- | ---- | ---------------- | -------------- | +| max | num | 最后一项目标 id | **见请求参数** | +| view_at | num | 最后一项时间节点 | 时间戳 | +| business | str | 最后一项业务类型 | **见请求参数** | +| ps | num | 每页项数 | | + +`data`中的`tab`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | ------------------ | ---- | +| 0 | obj | 历史记录筛选类型 1 | | +| 1 | obj | 历史记录筛选类型 2 | | +| 2 | obj | 历史记录筛选类型 3 | | + +`tab`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | ------ | ---- | +| type | str | 类型 | | +| name | str | 类型名 | | + +`data`中的`list`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | -------------- | ---------------- | +| 0 | obj | 历史记录 1 | | +| n | obj | 历史记录 (n+1) | 按照查看顺序排列 | +| …… | obj | | | + +`list`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----------- | ------------------------------- | ------------------------ | ---------------------------------------- | +| title | str | 条目标题 | | +| long_title | str | 条目副标题 | | +| cover | str | 条目封面图 url | 用于专栏以外的条目 | +| covers | 有效时:array
无效时:null | 条目封面图组 | 仅用于专栏 | +| uri | str | 重定向 url | 仅用于剧集和直播 | +| history | obj | 条目详细信息 | | +| videos | num | 视频分 P 数目 | 仅用于稿件视频 | +| author_name | str | UP 主昵称 | | +| author_face | str | UP 主头像 url | | +| author_mid | num | UP 主 mid | | +| view_at | num | 查看时间 | 时间戳 | +| progress | num | 视频观看进度 | 单位为秒
用于稿件视频或剧集 | +| badge | str | 角标文案 | 稿件视频 / 剧集 / 笔记 | +| show_title | str | 分 P 标题 | 用于稿件视频或剧集 | +| duration | num | 视频总时长 | 用于稿件视频或剧集 | +| current | str | (?) | | +| total | num | 总计分集数 | 仅用于剧集 | +| new_desc | str | 最新一话 / 最新一 P 标识 | 用于稿件视频或剧集 | +| is_finish | num | 是否已完结 | 仅用于剧集
0:未完结
1:已完结 | +| is_fav | num | 是否收藏 | 0:未收藏
1:已收藏 | +| kid | num | 条目目标 id | **详细内容见参数** | +| tag_name | str | 子分区名 | 用于稿件视频和直播 | +| live_status | num | 直播状态 | 仅用于直播
0:未开播
1:已开播 | + +`list`数组中的对象中的`covers`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | -------------- | ---- | +| 0 | str | 封面图片 1 | | +| n | str | 封面图片 (n+1) | | +| …… | str | …… | | + +`list`数组中的对象中的`history`对象: + +| 字段 | 类型 | 内容 | 备注 | +| -------- | ---- | --------------------- | ------------------------------------------------------------ | +| oid | num | 目标id | 稿件视频&剧集(当`business=archive`或`business=pgc`时):稿件avid
直播(当`business=live`时):直播间id
文章(当`business=article`时):文章cvid
文集(当`business=article-list`时):文集rlid | +| epid | num | 剧集epid | 仅用于剧集 | +| bvid | str | 稿件bvid | 仅用于稿件视频 | +| page | num | 观看到的视频分P数 | 仅用于稿件视频 | +| cid | num | 观看到的对象id | 稿件视频&剧集(当`business=archive`或`business=pgc`时):视频cid
文集(当`business=article-list`时):文章cvid | +| part | str | 观看到的视频分 P 标题 | 仅用于稿件视频 | +| business | str | 业务类型 | **见请求参数** | +| dt | num | 记录查看的平台代码 | 1 3 5 7:手机端
2:web端
4 6:pad端
33:TV端
0:其他 | + +**示例:** + +获取当前时间截止的5条历史记录 + +```shell +curl -G 'https://api.bilibili.com/x/web-interface/history/cursor' \ +--data-urlencode 'ps=5' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "cursor": { + "max": 26193, + "view_at": 1592985807, + "business": "pgc", + "ps": 5 + }, + "tab": [ + { + "type": "archive", + "name": "视频" + }, + { + "type": "live", + "name": "直播" + }, + { + "type": "article", + "name": "专栏" + } + ], + "list": [ + { + "title": "韩国漫画如何出海掘金?一年出口额2.8亿元", + "long_title": "", + "cover": "", + "covers": [ + "https://i0.hdslb.com/bfs/article/b170c6fd7429ae205d6cb935e1d431710d82609d.jpg" + ], + "uri": "", + "history": { + "oid": 6470274, + "epid": 0, + "bvid": "", + "page": 0, + "cid": 0, + "part": "", + "business": "article", + "dt": 2 + }, + "videos": 0, + "author_name": "三文娱", + "author_face": "http://i1.hdslb.com/bfs/face/98566839756a8e3de6e183109984b032de6ff2d9.jpg", + "author_mid": 34772409, + "view_at": 1593000539, + "progress": 0, + "badge": "专栏", + "show_title": "", + "duration": 0, + "current": "", + "total": 0, + "new_desc": "", + "is_finish": 0, + "is_fav": 0, + "kid": 6470274, + "tag_name": "", + "live_status": 0 + }, + { + "title": "从国际空间站俯瞰地球,静谧蓝星守护者", + "long_title": "", + "cover": "http://i0.hdslb.com/bfs/live/new_room_cover/f07d8a0c7c5655f81cf1586903a121f2680cf3bc.jpg", + "covers": null, + "uri": "https://live.bilibili.com/14047", + "history": { + "oid": 14047, + "epid": 0, + "bvid": "", + "page": 0, + "cid": 0, + "part": "", + "business": "live", + "dt": 2 + }, + "videos": 0, + "author_name": "Zelo-Balance", + "author_face": "http://i1.hdslb.com/bfs/face/7303b3032d1e13ca7c788cd9c30d4430f8ffd1ea.jpg", + "author_mid": 19193, + "view_at": 1592999822, + "progress": 0, + "badge": "直播中", + "show_title": "", + "duration": 0, + "current": "", + "total": 0, + "new_desc": "", + "is_finish": 0, + "is_fav": 0, + "kid": 14047, + "tag_name": "户外", + "live_status": 1 + }, + { + "title": "许巍 《蓝莲花》吉他Cover,这回你们不用截图抓我了吧", + "long_title": "", + "cover": "http://i2.hdslb.com/bfs/archive/0225b1f1a790393097ceebb51e89796be806d6bc.jpg", + "covers": null, + "uri": "", + "history": { + "oid": 883617049, + "epid": 0, + "bvid": "BV1sK4y147ob", + "page": 1, + "cid": 205017957, + "part": "许巍 《蓝莲花》 Cover_1", + "business": "archive", + "dt": 2 + }, + "videos": 1, + "author_name": "硬核拆解", + "author_face": "http://i1.hdslb.com/bfs/face/4e131c9609299303cdde882792fc62b9f99cdcde.jpg", + "author_mid": 427494870, + "view_at": 1592999572, + "progress": 13, + "badge": "", + "show_title": "", + "duration": 91, + "current": "", + "total": 0, + "new_desc": "", + "is_finish": 0, + "is_fav": 0, + "kid": 883617049, + "tag_name": "演奏", + "live_status": 0 + }, + { + "title": "从清楚与混沌之分看Vtuber形象塑造", + "long_title": "", + "cover": "", + "covers": [ + "https://i0.hdslb.com/bfs/article/5ddb94dd1890c639622717c7083fb2917b4aa475.jpg" + ], + "uri": "", + "history": { + "oid": 268656, + "epid": 0, + "bvid": "", + "page": 0, + "cid": 6233590, + "part": "", + "business": "article-list", + "dt": 2 + }, + "videos": 0, + "author_name": "普天一光", + "author_face": "http://i2.hdslb.com/bfs/face/3702810bdac3d5103d684e61dc5bc8492a74f904.jpg", + "author_mid": 6614889, + "view_at": 1592998686, + "progress": 0, + "badge": "专栏", + "show_title": "", + "duration": 0, + "current": "", + "total": 0, + "new_desc": "", + "is_finish": 0, + "is_fav": 0, + "kid": 268656, + "tag_name": "", + "live_status": 0 + }, + { + "title": "百妖谱", + "long_title": "庆忌(下)", + "cover": "http://i0.hdslb.com/bfs/archive/695a4566d05620a24c51d6eb935fa4767d673b45.jpg", + "covers": null, + "uri": "https://www.bilibili.com/bangumi/play/ss26193", + "history": { + "oid": 370908663, + "epid": 326789, + "bvid": "", + "page": 0, + "cid": 199204975, + "part": "", + "business": "pgc", + "dt": 3 + }, + "videos": 0, + "author_name": "", + "author_face": "", + "author_mid": 0, + "view_at": 1592985807, + "progress": 533, + "badge": "国创", + "show_title": "第8话 庆忌(下)", + "duration": 1402, + "current": "", + "total": 12, + "new_desc": "更新至第10话", + "is_finish": 0, + "is_fav": 0, + "kid": 26193, + "tag_name": "", + "live_status": 0 + } + ] + } +} +``` + +
+ +## 获取视频观看历史记录_web端旧版 + +> https://api.bilibili.com/x/v2/history + +*请求方式:GET* + +认证方式:Cookie (SESSDATA) + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | ---- | -------- | ------ | ------- | +| pn | num | 页码 | 非必要 | 默认为1 | +| ps | num | 每页项数 | 非必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ------ | ------------ | ------------------------------------------------- | +| code | num | 返回值 | 0:成功
-101:账号未登录
-400:请求错误 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | array | 历史记录列表 | | + +`data`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | ------------- | ------------------------------------------ | +| 0 | obj | 历史观看1 | | +| n | obj | 历史观看(n+1) | 按照观看顺序排列
项数为总计观看视频数 | +| …… | obj | …… | …… | + +`data`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------------------------------- | ------- | ------------------------------ | ------------------------------------------------------------ | +| aid | num | 稿件avid | | +| videos | num | 视频分P总数 | 默认为1 | +| tid | num | 分区tid | | +| tname | str | 子分区名称 | | +| copyright | num | 是否转载 | 1:原创
2:转载 | +| pic | str | 视频封面图片url | | +| title | str | 稿件标题 | | +| pubdate | num | 稿件发布时间 | 时间戳 | +| ctime | num | 用户提交稿件的时间 | 时间戳 | +| desc | str | 视频简介 | | +| state | num | 视频状态 | 略,见[获取视频详细信息(web端)](/video/info.md#获取视频详细信息(web端))中的`state`备注 | +| ~~attribute~~(仅做历史性保留) | ~~num~~ | ~~稿件属性位配置~~ | 本字段已被删除
~~略,见[获取视频详细信息(web端)](/video/info.md#获取视频详细信息(web端))中的`attribute`备注~~ | +| duration | num | 视频总计持续时长(所有分P) | 单位为秒 | +| rights | obj | 视频属性标志 | 略,见[获取视频详细信息(web端)](/video/info.md#获取视频详细信息(web端))中的`rights`对象 | +| owner | obj | 视频UP主信息 | 略,见[获取视频详细信息(web端)](/video/info.md#获取视频详细信息(web端))中的`owner`对象 | +| stat | obj | 视频状态数 | 略,见[获取视频详细信息(web端)](/video/info.md#获取视频详细信息(web端))中的`stat`对象 | +| dynamic | str | 视频同步发布的的动态的文字内容 | 无为空 | +| cid | num | 视频1P cid | | +| dimension | obj | 视频1P分辨率 | 略,见[获取视频详细信息(web端)](/video/info.md#获取视频详细信息(web端))中的`dimension`对象 | +| bangumi | obj | 番剧/影视信息 | 非番剧/影视无此项 | +| cheese | obj | 课程信息 | 非课程无此项 | +| favorite | bool | 是否已收藏 | true:已收藏
false:未收藏 | +| type | num | 视频属性 | 3:普通视频
4:剧集
10:课程 | +| sub_type | num | 附视频属性 | 0:普通视频
1:番剧
2:电影
3:纪录片
4:国创
5:电视剧
7:综艺 | +| device | num | 观看平台代码 | 1 3 5 7:手机端
2:web端
4 6:pad端
33:TV端
0:其他 | +| page | obj | 最后观看的分P信息 | | +| count | num | 分P数 | 非投稿视频无此项 | +| progress | num | 观看进度 | 单位为秒 | +| view_at | num | 观看时间 | 时间戳 | +| kid | num | 稿件avid | | +| business | str | 视频类型标识 | archive:用户投稿视频
pgc:番剧/影视
cheese:课程 | +| redirect_link | str | 重定向url | | +| bvid | str | 稿件bvid | | + +`data`数组中的对象`bangumi`对象: + +| 字段 | 类型 | 内容 | 备注 | +| -------------- | ---- | --------------- | ------------ | +| cover | str | 番剧封面图片url | | +| ep_id | num | 番剧epid | | +| episode_status | num | ??? | | +| follow | num | 0 | 作用尚不明确 | +| long_title | str | 单集标题 | | +| season | obj | 剧集信息 | | +| title | str | 集数 | | + +`bangumi`中的`season`对象: + +| 字段 | 类型 | 内容 | 备注 | +| --------------- | ---- | ------------ | ---------------------- | +| is_finish | num | 是否完结 | 0:连载中
1:完结 | +| newest_ep_id | num | 最细一话epid | | +| newest_ep_index | str | 最细一话集数 | | +| season_id | num | 番剧ssid | | +| season_status | num | ??? | | +| season_type | num | ??? | | +| title | str | 番剧标题 | | +| total_count | num | 总集数 | | + +`data`数组中的对象`cheese`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----------- | ---- | --------------- | ---- | +| cover | str | 课程封面图片url | | +| long_title | str | 完整标题 | | +| number | str | 本集数 | | +| season_id | num | 课程ssid | | +| update_info | str | 总集数 | | + +**示例:** + +查询当前视频历史记录列表 + +```shell +curl -G 'https://api.bilibili.com/x/v2/history' \ +--data-urlencode 'ps=5' \ +--data-urlencode 'pn=1' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": [ + { + "aid": 96523832, + "videos": 1, + "tid": 33, + "tname": "连载动画", + "copyright": 2, + "pic": "http://i0.hdslb.com/bfs/archive/dfc29be381565ee041a0ec9cfc7a32f8a63f76cd.jpg", + "title": "【1月】异度侵入 ID:INVADED 12【独家正版】", + "pubdate": 1584289800, + "ctime": 1584289800, + "desc": "#12", + "state": 0, + "attribute": 338688, + "duration": 1481, + "redirect_url": "https://www.bilibili.com/bangumi/play/ep307457", + "rights": { + "bp": 0, + "elec": 0, + "download": 0, + "movie": 0, + "pay": 1, + "hd5": 1, + "no_reprint": 0, + "autoplay": 0, + "ugc_pay": 0, + "is_cooperation": 0, + "ugc_pay_preview": 0, + "no_background": 0 + }, + "owner": { + "mid": 928123, + "name": "哔哩哔哩番剧", + "face": "http://i1.hdslb.com/bfs/face/7a8412cbacb9fd18f40ddbbf0ad183e45afc1365.jpg" + }, + "stat": { + "aid": 96523832, + "view": 4772927, + "danmaku": 108890, + "reply": 48584, + "favorite": 46, + "coin": 61768, + "share": 290, + "now_rank": 0, + "his_rank": 0, + "like": 1241, + "dislike": 0 + }, + "dynamic": "", + "cid": 164789275, + "dimension": { + "width": 1920, + "height": 1080, + "rotate": 0 + }, + "favorite": false, + "type": 4, + "sub_type": 1, + "device": 3, + "page": { + "cid": 164789275, + "page": 1, + "from": "vupload", + "part": "ID_INVADED_112.encoded", + "duration": 1481, + "vid": "", + "weblink": "", + "dimension": { + "width": 1920, + "height": 1080, + "rotate": 0 + } + }, + "bangumi": { + "ep_id": 307457, + "title": "12", + "long_title": "CHANNELED", + "episode_status": 13, + "follow": 0, + "cover": "http://i0.hdslb.com/bfs/archive/dfc29be381565ee041a0ec9cfc7a32f8a63f76cd.jpg", + "season": { + "season_id": 29310, + "title": "异度侵入 ID:INVADED", + "season_status": 13, + "is_finish": 1, + "total_count": 13, + "newest_ep_id": 307774, + "newest_ep_index": "13", + "season_type": 1 + } + }, + "progress": 277, + "view_at": 1588831600, + "kid": 29310, + "business": "pgc", + "redirect_link": "https://www.bilibili.com/bangumi/play/ep307457", + "bvid": "BV1K7411f7uu" + }, + { + "aid": 497899395, + "videos": 1, + "tid": 189, + "tname": "电脑装机", + "copyright": 1, + "pic": "http://i0.hdslb.com/bfs/archive/fd4e0893b234ee729cf15198065eced98367ebfe.jpg", + "title": "600元的2007款iMac,如今过时了吗?", + "pubdate": 1587727345, + "ctime": 1587708111, + "desc": "苹果东西是真的保值,酷睿2现在都还能卖的这么贵。第一次使用4K画质进行拍摄,应该比以前清楚一些。如有问题请在评论区指出,谢谢!", + "state": 0, + "attribute": 16768, + "duration": 389, + "mission_id": 13106, + "rights": { + "bp": 0, + "elec": 0, + "download": 0, + "movie": 0, + "pay": 0, + "hd5": 1, + "no_reprint": 1, + "autoplay": 1, + "ugc_pay": 0, + "is_cooperation": 0, + "ugc_pay_preview": 0, + "no_background": 0 + }, + "owner": { + "mid": 3391089, + "name": "数字云糕Official", + "face": "http://i2.hdslb.com/bfs/face/238dfbca5dda5de2d5ba95ee4e99804714e2b5e2.jpg" + }, + "stat": { + "aid": 497899395, + "view": 23325, + "danmaku": 92, + "reply": 115, + "favorite": 195, + "coin": 132, + "share": 23, + "now_rank": 0, + "his_rank": 0, + "like": 555, + "dislike": 0 + }, + "dynamic": "#IMAC##APPLE##MAC# 苹果东西是真的保值,酷睿2现在都还能卖的这么贵。第一次使用4K画质进行拍摄,应该比以前清楚一些。", + "cid": 182570131, + "dimension": { + "width": 1920, + "height": 1080, + "rotate": 0 + }, + "favorite": false, + "type": 3, + "sub_type": 0, + "device": 3, + "page": { + "cid": 182570131, + "page": 1, + "from": "vupload", + "part": "iMac", + "duration": 389, + "vid": "", + "weblink": "", + "dimension": { + "width": 1920, + "height": 1080, + "rotate": 0 + } + }, + "count": 1, + "progress": -1, + "view_at": 1588828357, + "kid": 497899395, + "business": "archive", + "redirect_link": "https://www.bilibili.com/video/av497899395", + "bvid": "BV1NK41157EF" + } + ] +} +``` + +
+ +## 删除历史记录 + +> https://api.bilibili.com/x/v2/history/delete + +*请求方式:POST* + +认证方式:Cookie (SESSDATA) + +**正文参数( application/x-www-form-urlencoded ):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | ---- | --------------------------------------------------- | ------ | ------------------------------------------------------------ | +| kid | str | 删除的目标记录,格式为`{业务类型}_{目标id}`详见备注 | 必要 | 视频:archive\_{稿件avid}
直播:live_{直播间id}
专栏:article\_{专栏cvid}
剧集:pgc\_{剧集ssid}
文集:article-list\_{文集rlid} | +| csrf | str | CSRF Token(位于cookie) | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------------------ | +| code | num | 返回值 | 0:成功
-101:账号未登录
-111:csrf校验失败
-400:请求错误 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | + +**示例:** + +删除视频`av540580868`的观看历史记录 + +```shell +curl 'https://api.bilibili.com/x/v2/history/delete' \ +--data-urlencode 'kid=archive_540580868' \ +--data-urlencode 'csrf=xxx' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1 +} +``` + +
+ +## 清空历史记录 + +> https://api.bilibili.com/x/v2/history/clear + +*请求方式:POST* + +认证方式:Cookie (SESSDATA) + +**正文参数( application/x-www-form-urlencoded ):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | ---- | ------------------------ | ------ | ---- | +| csrf | str | CSRF Token(位于cookie) | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ----------------------------------------------------- | +| code | num | 返回值 | 0:成功
-101:账号未登录
-111:csrf校验失败 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | + +**示例:** + +清空历史记录 + +```shell +curl 'https://api.bilibili.com/x/v2/history/clear' \ +--data-urlencode 'csrf=xxx' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1 +} +``` + +
+ +## 停用历史记录 + +> https://api.bilibili.com/x/v2/history/shadow/set + +*请求方式:POST* + +认证方式:Cookie (SESSDATA) + +该操作不会影响原有历史记录 + +**正文参数( application/x-www-form-urlencoded ):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | ---- | ------------------------ | ------ | -------------------------------------------- | +| switch | bool | 停用开关 | 非必要 | true:停用
false:正常
默认为false | +| csrf | str | CSRF Token(位于cookie) | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ----------------------------------------------------- | +| code | num | 返回值 | 0:成功
-101:账号未登录
-111:csrf校验失败 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | + +**示例:** + +停用历史记录功能 + +```shell +curl 'https://api.bilibili.com/x/v2/history/shadow/set' \ +--data-urlencode 'switch=true' \ +--data-urlencode 'csrf=xxx' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1 +} +``` + +
+ +## 查询历史记录停用状态 + +> https://api.bilibili.com/x/v2/history/shadow + +*请求方式:GET* + +认证方式:Cookie (SESSDATA) + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ----------------------------- | +| code | num | 返回值 | 0:成功
-101:账号未登录 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | bool | 停用状态 | true:停用
false:正常 | + +**示例:** + +当前状态为未停用视频历史记录 + +```shell +curl 'https://api.bilibili.com/x/v2/history/shadow' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": false +} +``` + +
diff --git a/docs/history&toview/toview.md b/docs/history&toview/toview.md new file mode 100644 index 0000000000..2f16ae70e6 --- /dev/null +++ b/docs/history&toview/toview.md @@ -0,0 +1,470 @@ +# 稍后再看 + + + +- [视频添加稍后再看](#视频添加稍后再看) +- [添加频道中所有视频到稍后再看](#添加频道中所有视频到稍后再看) +- [获取稍后再看视频列表](#获取稍后再看视频列表) +- [删除稍后再看视频](#删除稍后再看视频) +- [清空稍后再看视频列表](#清空稍后再看视频列表) + +--- + +## 视频添加稍后再看 + +>https://api.bilibili.com/x/v2/history/toview/add + +*请求方式:POST* + +认证方式:Cookie(SESSDATA) + +最多添加100个视频 + +**正文参数( application/x-www-form-urlencoded ):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | ---- | ------------------------ | ------------ | ------------------ | +| aid | num | 稿件avid | 必要(可选) | avid与bvid任选一个 | +| bvid | str | 稿件bvid | 必要(可选) | avid与bvid任选一个 | +| csrf | str | CSRF Token(位于cookie) | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------------------ | +| code | num | 返回值 | 0:成功
-101:账号未登录
-111:csrf校验失败
-400:请求错误
90001:列表已满
90003:稿件已经被删除 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | + +**示例:** + +添加视频`av41687433`/`BV1ht41147kj`到稍后再看列表 + +avid方式: + +```shell +curl 'https://api.bilibili.com/x/v2/history/toview/add' \ +--data-urlencode 'aid=41687433' \ +--data-urlencode 'csrf=xxx' \ +-b 'SESSDATA=xxx' +``` + +bvid方式: + +```shell +curl 'https://api.bilibili.com/x/v2/history/toview/add' \ +--data-urlencode 'bvid=BV1ht41147kj' \ +--data-urlencode 'csrf=xxx' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1 +} +``` + +
+ +## 添加频道中所有视频到稍后再看 + +> https://space.bilibili.com/ajax/channel/addAllToView + +*请求方式:POST* + +认证方式:Cookie(SESSDATA) + +鉴权方式:Cookie中`DedeUserID`及`DedeUserID__ckMd5`存在且不为0,referer为 `.bilibili.com`域名下 + +带有转义 + +超过容量后会截取容量之内的添加 + +**正文参数( application/x-www-form-urlencoded ):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | ---- | ------------------------ | ------ | ---- | +| cid | num | 目标频道id | 必要 | | +| mid | num | 目标频道所属的用户mid | 必要 | | +| csrf | str | CSRF Token(位于cookie) | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------ | ---- | -------- | --------------------------- | +| status | bool | 是否成功 | false:失败
true:成功 | +| data | str | 错误信息 | | + +**示例:** + +添加用户`mid=282994`下的频道`4693`中所有视频到稍后再看 + +```shell +curl 'https://space.bilibili.com/ajax/channel/addAllToView' \ +--data-urlencode 'cid=4693' \ +--data-urlencode 'mid=282994' \ +--data-urlencode 'csrf=xxx' \ +-b 'SESSDATA=xxx;DedeUserID=1;DedeUserID__ckMd5=1;' +-e 'https://www.bilibili.com' +``` + +
+查看响应示例: + +```json +{ + "status": true, + "data": "操作成功" +} +``` + +
+ +## 获取稍后再看视频列表 + +> https://api.bilibili.com/x/v2/history/toview + +*请求方式:GET* + +认证方式:Cookie(SESSDATA) + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------- | +| code | num | 返回值 | 0:成功
-101:账号未登录
-400:请求错误 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | data | 数据本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----- | ------ | ---------------- | ---- | +| count | num | 稍后再看视频数 | | +| list | array | 稍后再看视频列表 | | + +`data`中的`list`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | ------------- | ---------------------------------------------- | +| 0 | obj | 稍后再看1 | | +| n | obj | 稍后再看(n+1) | 按照添加顺序排列
项数为总计稍后再看视频数 | +| …… | obj | …… | …… | +| 99 | obj | 最后一项 | | + +`data`中的`list`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------------------------------- | ------- | ------------------------------ | ------------------------------------------------------------ | +| aid | num | 稿件avid | | +| videos | num | 稿件分P总数 | 默认为1 | +| tid | num | 分区tid | | +| tname | str | 子分区名称 | | +| copyright | num | 是否转载 | 1:原创
2:转载 | +| pic | str | 稿件封面图片url | | +| title | str | 稿件标题 | | +| pubdate | num | 稿件发布时间 | 时间戳 | +| ctime | num | 用户提交稿件的时间 | 时间戳 | +| desc | str | 视频简介 | | +| state | num | 视频状态 | 略,见[获取视频详细信息(web端)](/video/info.md#获取视频详细信息(web端))中的`state`备注 | +| ~~attribute~~(仅做历史性保留) | ~~num~~ | ~~稿件属性位配置~~ | 本字段已被删除~~略,见[获取视频详细信息(web端)](/video/info.md#获取视频详细信息(web端))中的`attribute`备注~~ | +| duration | num | 稿件总时长(所有分P) | 单位为秒 | +| rights | obj | 稿件属性标志 | 略,见[获取视频详细信息(web端)](/video/info.md#获取视频详细信息(web端))中的`rights`对象 | +| owner | obj | 稿件UP主信息 | 略,见[获取视频详细信息(web端)](/video/info.md#获取视频详细信息(web端))中的`owner`对象 | +| stat | obj | 稿件状态数 | 略,见[获取视频详细信息(web端)](/video/info.md#获取视频详细信息(web端))中的`stat`对象 | +| dynamic | str | 视频同步发布的的动态的文字内容 | 无为空 | +| dimension | obj | 稿件1P分辨率 | 略,见[获取视频详细信息(web端)](/video/info.md#获取视频详细信息(web端))中的`dimension`对象 | +| count | num | 稿件分P数 | 非投稿视频无此项 | +| cid | num | 视频cid | | +| progress | num | 观看进度时间 | 单位为秒 | +| add_at | num | 添加时间 | 时间戳 | +| bvid | str | 稿件bvid | | + +**示例:** + +获取稍后再看视频列表 + +```shell +curl 'https://api.bilibili.com/x/v2/history/toview' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "count": 25, + "list": [ + { + "aid": 200333024, + "videos": 1, + "tid": 95, + "tname": "手机平板", + "copyright": 1, + "pic": "http://i1.hdslb.com/bfs/archive/a5e3072e670daec4c01a182aae91c1f85a48001e.jpg", + "title": "【山新】疫情下,配音演员怎么开工录音?", + "pubdate": 1586959137, + "ctime": 1586959137, + "desc": "疫情这段时间,配音演员们是怎么录音的呢=W=", + "state": 0, + "attribute": 16768, + "duration": 218, + "rights": { + "bp": 0, + "elec": 0, + "download": 0, + "movie": 0, + "pay": 0, + "hd5": 1, + "no_reprint": 1, + "autoplay": 1, + "ugc_pay": 0, + "is_cooperation": 0, + "ugc_pay_preview": 0, + "no_background": 0 + }, + "owner": { + "mid": 14082, + "name": "山新", + "face": "http://i0.hdslb.com/bfs/face/74c82caee6d9eb623e56161ea8ed6d68afabfeae.jpg" + }, + "stat": { + "aid": 200333024, + "view": 361123, + "danmaku": 1792, + "reply": 1376, + "favorite": 7571, + "coin": 12129, + "share": 895, + "now_rank": 0, + "his_rank": 0, + "like": 54705, + "dislike": 0 + }, + "dynamic": "疫情这段时间,配音演员们是怎么录音的呢=W=", + "dimension": { + "width": 3840, + "height": 2160, + "rotate": 0 + }, + "page": { + "cid": 178808041, + "page": 1, + "from": "vupload", + "part": "无标题", + "duration": 218, + "vid": "", + "weblink": "", + "dimension": { + "width": 3840, + "height": 2160, + "rotate": 0 + } + }, + "count": 1, + "cid": 178808041, + "progress": 32, + "add_at": 1587041785, + "bvid": "BV1Yz411B7n3" + }, + { + "aid": 710350011, + "videos": 1, + "tid": 124, + "tname": "趣味科普人文", + "copyright": 1, + "pic": "http://i0.hdslb.com/bfs/archive/c5b7e7c07a4abf27029c5afb3ab65fee4475b9a9.jpg", + "title": "不花一分钱建立自己的网站!给硬盘里的小姐姐换个新家!", + "pubdate": 1586919626, + "ctime": 1586898238, + "desc": "制作视频不易,你的点赞是对我最大的支持!\nUP主的个人网站:https://amdradeonrin.github.io/MIKU/\n视频提到的文件在网站有下载\nGitHub上的网站源码:https://github.com/AMDRadeonRin/MIKU", + "state": 0, + "attribute": 16768, + "duration": 169, + "mission_id": 13106, + "rights": { + "bp": 0, + "elec": 0, + "download": 0, + "movie": 0, + "pay": 0, + "hd5": 1, + "no_reprint": 1, + "autoplay": 1, + "ugc_pay": 0, + "is_cooperation": 0, + "ugc_pay_preview": 0, + "no_background": 0 + }, + "owner": { + "mid": 179757857, + "name": "GTX690战术核显卡导弹", + "face": "http://i2.hdslb.com/bfs/face/2504de8c1eeef22d91bbc45803f6b29afcbb0adf.jpg" + }, + "stat": { + "aid": 710350011, + "view": 3293, + "danmaku": 37, + "reply": 117, + "favorite": 355, + "coin": 76, + "share": 11, + "now_rank": 0, + "his_rank": 0, + "like": 325, + "dislike": 0 + }, + "dynamic": "#网页制作##HTML##网页#给你们科普一下怎么弄网站吧,你们也可以考虑整一个XD", + "dimension": { + "width": 1920, + "height": 1080, + "rotate": 0 + }, + "count": 1, + "cid": 0, + "progress": 0, + "add_at": 1587012410, + "bvid": "BV1LQ4y1T7Xh" + }, + ………… + ] + } +} +``` + +
+ +## 删除稍后再看视频 + +> https://api.bilibili.com/x/v2/history/toview/del + +*请求方式:POST* + +认证方式:Cookie(SESSDATA) + +**正文参数( application/x-www-form-urlencoded ):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | ---- | ------------------------ | ------ | ------------------------------------------------------------ | +| viewed | bool | 是否删除所有已观看的视频 | 非必要 | true:删除已观看视频
false:不删除已观看视频
默认为false | +| aid | num | 删除的目标记录的avid | 非必要 | | +| csrf | str | CSRF Token(位于cookie) | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------------------ | +| code | num | 返回值 | 0:成功
-101:账号未登录
-111:csrf校验失败
-400:请求错误 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | + +**示例:** + +删除视频`av540580868`的稍后再看记录 + +```shell +curl 'https://api.bilibili.com/x/v2/history/toview/del' \ +--data-urlencode 'aid=540580868' \ +--data-urlencode 'csrf=xxx' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1 +} +``` + +
+ +删除所有已观看的视频 + +```shell +curl 'https://api.bilibili.com/x/v2/history/toview/del' \ +--data-urlencode 'viewed=true' \ +--data-urlencode 'csrf=xxx' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1 +} +``` + +
+ +## 清空稍后再看视频列表 + +> https://api.bilibili.com/x/v2/history/toview/clear + +*请求方式:POST* + +认证方式:Cookie(SESSDATA) + +**正文参数( application/x-www-form-urlencoded ):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | ---- | ------------------------ | ------ | ---- | +| csrf | num | CSRF Token(位于cookie) | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ----------------------------------------------------- | +| code | num | 返回值 | 0:成功
-101:账号未登录
-111:csrf校验失败 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | + +**示例:** + +清空稍后再看视频列表 + +```shell +curl 'https://api.bilibili.com/x/v2/history/toview/clear' \ +--data-urlencode 'csrf=xxx' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1 +} +``` + +
\ No newline at end of file diff --git a/docs/live/info.md b/docs/live/info.md new file mode 100644 index 0000000000..5eeef0aa9b --- /dev/null +++ b/docs/live/info.md @@ -0,0 +1,971 @@ +# 直播间基本信息 + +- [直播间基本信息](#直播间基本信息) + - [获取直播间信息](#获取直播间信息) + - [获取用户对应的直播间状态](#获取用户对应的直播间状态) + - [获取房间页初始化信息](#获取房间页初始化信息) + - [获取主播信息](#获取主播信息) + - [批量查询直播间状态](#批量查询直播间状态) + - [获取直播间信息](#获取直播间信息) + +--- + +## 获取直播间信息 + +> https://api.live.bilibili.com/room/v1/Room/get_info + +*请求方式: GET* + +**URL参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +|---------|-----|------|-----|-------| +| room_id | num | 直播间号 | 必要 | 可以为短号 | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +|---------|-----|------|-----------------| +| code | num | 返回值 | 0:成功
1:不存在 | +| message | str | 错误信息 | | +| msg | str | 错误信息 | | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +|-------------------------|-----------|--------|-----------------------------| +| uid | num | 主播mid | | +| room_id | num | 直播间长号 | | +| short_id | num | 直播间短号 | 为0是无短号 | +| attention | num | 关注数量 | | +| online | num | 观看人数 | | +| is_portrait | bool | 是否竖屏 | | +| description | str | 描述 | | +| live_status | num | 直播状态 | 0:未开播
1:直播中
2:轮播中 | +| area_id | num | 分区id | | +| parent_area_id | num | 父分区id | | +| parent_area_name | str | 父分区名称 | | +| old_area_id | num | 旧版分区id | | +| background | str | 背景图片链接 | | +| title | str | 标题 | | +| user_cover | str | 封面 | | +| keyframe | str | 关键帧 | 用于网页端悬浮展示 | +| is_strict_room | bool | 未知 | 未知 | +| live_time | str | 直播开始时间 | YYYY-MM-DD HH:mm:ss | +| tags | str | 标签 | ','分隔 | +| is_anchor | num | 未知 | 未知 | +| room_silent_type | str | 禁言状态 | | +| room_silent_level | num | 禁言等级 | | +| room_silent_second | num | 禁言时间 | 单位是秒 | +| area_name | str | 分区名称 | | +| pardants | str | 未知 | 未知 | +| area_pardants | str | 未知 | 未知 | +| hot_words | list(str) | 热词 | | +| hot_words_status | num | 热词状态 | | +| verify | str | 未知 | 未知 | +| new_pendants | obj | 头像框\大v | | +| up_session | str | 未知 | | +| pk_status | num | pk状态 | | +| pk_id | num | pk id | | +| battle_id | num | 未知 | | +| allow_change_area_time | num | | | +| allow_upload_cover_time | num | | | +| studio_info | obj | | | + +`new_pendants`对象: + +| 字段 | 类型 | 内容 | 备注 | +|--------------|-----|-----|-------------------| +| frame | obj | 头像框 | | +| mobile_frame | obj | 同上 | 手机版, 结构一致, 可能null | +| badge | obj | 大v | | +| mobile_badge | obj | 同上 | 手机版, 结构一致, 可能null | + +`frame`对象: + +| 字段 | 类型 | 内容 | 备注 | +|--------------|------|--------|-----| +| name | str | 名称 | | +| value | str | 值 | | +| position | num | 位置 | | +| desc | str | 描述 | | +| area | num | 分区 | | +| area_old | num | 旧分区 | | +| bg_color | str | 背景色 | | +| bg_pic | str | 背景图 | | +| use_old_area | bool | 是否旧分区号 | | + +`badge`对象: + +| 字段 | 类型 | 内容 | 备注 | +|----------|-----|-----|-------------------------------------------| +| name | str | 类型 | v_person: 个人认证(黄)
v_company: 企业认证(蓝) | +| position | num | 位置 | | +| value | str | 值 | | +| desc | str | 描述 | | + +`studio_info`对象: + +| 字段 | 类型 | 内容 | 备注 | +|-------------|-------|-----|-----| +| status | num | | | +| master_list | array | | | + +**示例:** + +查询直播间`room_id=1`信息 + +```shell +curl -G 'https://api.live.bilibili.com/room/v1/Room/get_info' \ +--data-urlencode 'room_id=1' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "msg": "ok", + "message": "ok", + "data": { + "uid": 9617619, + "room_id": 5440, + "short_id": 1, + "attention": 11919499, + "online": 0, + "is_portrait": false, + "description": "欢迎加入bilibili《快乐运动研究社》,和B站UP主们一起探讨有关运动的经历感受,解决身体和情绪的“疑难杂症”,寻找适合自己的运动,一起跟练!本期我们一起探讨:运动健身能缓解社交恐惧吗?", + "live_status": 2, + "area_id": 145, + "parent_area_id": 1, + "parent_area_name": "娱乐", + "old_area_id": 6, + "background": "", + "title": "快乐运动研究社", + "user_cover": "https://i0.hdslb.com/bfs/live/new_room_cover/96943b8d106a777a34cf796421bb4254163b30e1.jpg", + "keyframe": "https://i0.hdslb.com/bfs/live-key-frame/keyframe08121926000000005440np0q7a.jpg", + "is_strict_room": false, + "live_time": "0000-00-00 00:00:00", + "tags": "", + "is_anchor": 0, + "room_silent_type": "", + "room_silent_level": 1, + "room_silent_second": 0, + "area_name": "视频聊天", + "pendants": "", + "area_pendants": "", + "hot_words": [ + "2333333", + "喂,妖妖零吗", + "红红火火恍恍惚惚", + "FFFFFFFFFF", + "Yooooooo", + "啪啪啪啪啪", + "666666666", + "老司机带带我", + "你为什么这么熟练啊", + "gg", + "prprpr", + "向大佬低头", + "请大家注意弹幕礼仪哦!", + "还有这种操作!", + "囍", + "打call", + "你气不气?", + "队友呢?" + ], + "hot_words_status": 0, + "verify": "", + "new_pendants": { + "frame": { + "name": "", + "value": "", + "position": 0, + "desc": "", + "area": 0, + "area_old": 0, + "bg_color": "", + "bg_pic": "", + "use_old_area": false + }, + "badge": { + "name": "v_company", + "position": 3, + "value": "", + "desc": "哔哩哔哩直播官方账号" + }, + "mobile_frame": { + "name": "", + "value": "", + "position": 0, + "desc": "", + "area": 0, + "area_old": 0, + "bg_color": "", + "bg_pic": "", + "use_old_area": false + }, + "mobile_badge": null + }, + "up_session": "", + "pk_status": 0, + "pk_id": 0, + "battle_id": 0, + "allow_change_area_time": 0, + "allow_upload_cover_time": 0, + "studio_info": { + "status": 0, + "master_list": [] + } + } +} +``` + +
+ +## 获取用户对应的直播间状态 + +> https://api.live.bilibili.com/room/v1/Room/getRoomInfoOld + +*请求方式:GET* + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +|-----|-----|---------|-----|-----| +| mid | num | 目标用户mid | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +|---------|-----|------|---------------------| +| code | num | 返回值 | 0:成功
-400:请求错误 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +|----------------|-----|-----------|------------------| +| roomStatus | num | 直播间状态 | 0:无房间
1:有房间 | +| roundStatus | num | 轮播状态 | 0:未轮播
1:轮播 | +| live_status | num | 直播状态 | 0:未开播
1:直播中 | +| url | str | 直播间网页url | | +| title | str | 直播间标题 | | +| cover | str | 直播间封面url | | +| online | num | 直播间人气 | 值为上次直播时刷新 | +| roomid | num | 直播间id(短号) | | +| broadcast_type | num | 0 | | +| online_hidden | num | 0 | | + +**示例:** + +查询用户`mid=322892`的直播间信息 + +```shell +curl -G 'https://api.live.bilibili.com/room/v1/Room/getRoomInfoOld' \ +--data-urlencode 'mid=322892' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "roomStatus": 1, + "roundStatus": 0, + "live_status": 1, + "url": "https://live.bilibili.com/5441", + "title": "好久没当黑铁主播了", + "cover": "http://i0.hdslb.com/bfs/live/room_cover/833f7ff506bac17c06010e8834922993657505b2.jpg", + "online": 268602, + "roomid": 5441, + "broadcast_type": 0, + "online_hidden": 0 + } +} +``` + +
+ +## 获取房间页初始化信息 + +> https://api.live.bilibili.com/room/v1/Room/room_init + +*请求方式:GET* + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +|-----|-----|------------|-----|-----| +| id | num | 目标直播间号(短号) | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +|---------|-----|------|------------------------| +| code | num | 返回值 | 0:成功
60004:直播间不存在 | +| msg | str | 错误信息 | 默认为ok | +| message | str | 错误信息 | 默认为ok | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +|--------------|------|--------------|------------------------------------| +| room_id | num | 直播间真实id | | +| short_id | num | 直播间id(短号) | | +| uid | num | 主播用户mid | | +| need_p2p | num | 是否p2p | | +| is_hidden | bool | 是否隐藏 | | +| is_locked | bool | 是否锁定 | | +| is_portrait | bool | 是否竖屏 | | +| live_status | num | 直播状态 | 0:未开播
1:直播中
2:轮播中 | +| hidden_till | num | 隐藏时间戳 | | +| lock_till | num | 锁定时间戳 | | +| encrypted | bool | 是否加密 | | +| pwd_verified | bool | 加密房间是否通过密码验证 | `encrypted`=true时才有意义 | +| live_time | num | 开播时间 | 未开播时为`-62170012800` | +| room_shield | num | 未知 | | +| is_sp | num | 是否为特殊直播间 | 0:普通直播间
1:付费直播间 | +| special_type | num | 特殊直播间标志 | 0:普通直播间
1:付费直播间
2:拜年祭直播间 | + +**示例:** + +查询直播间`id=76`的直播间信息 + +```shell +curl -G 'https://api.live.bilibili.com/room/v1/Room/room_init' \ +--data-urlencode 'id=76' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "msg": "ok", + "message": "ok", + "data": { + "room_id": 14073662, + "short_id": 76, + "uid": 50333369, + "need_p2p": 0, + "is_hidden": false, + "is_locked": false, + "is_portrait": false, + "live_status": 1, + "hidden_till": 0, + "lock_till": 0, + "encrypted": false, + "pwd_verified": false, + "live_time": 1602151186, + "room_shield": 1, + "is_sp": 0, + "special_type": 0 + } +} +``` + +
+ +## 获取主播信息 + +> https://api.live.bilibili.com/live_user/v1/Master/info + +*请求方式:GET* + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +|-----|-----|---------|-----|-----| +| uid | num | 目标用户mid | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +|---------|-----|------|------------------| +| code | num | 返回值 | 0:成功
1:参数错误 | +| msg | str | 错误信息 | 默认为空 | +| message | str | 错误信息 | 默认为空 | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +|----------------|-----|-----------|------------| +| info | obj | 主播信息 | | +| exp | obj | 经验等级 | | +| follower_num | num | 主播粉丝数 | | +| room_id | num | 直播间id(短号) | | +| medal_name | str | 粉丝勋章名 | | +| glory_count | num | 主播荣誉数 | | +| pendant | str | 直播间头像框url | | +| link_group_num | num | 0 | **作用尚不明确** | +| room_news | obj | 主播公告 | | + +`info`对象: + +| 字段 | 类型 | 内容 | 备注 | +|-----------------|-----|---------|-------------------------| +| uid | num | 主播mid | | +| uname | str | 主播用户名 | | +| face | str | 主播头像url | | +| official_verify | obj | 认证信息 | | +| gender | num | 主播性别 | -1:保密
0:女
1:男 | + +`info`中的`official_verify`对象: + +| 字段 | 类型 | 内容 | 备注 | +|------|-----|--------|------------------------------| +| type | num | 主播认证类型 | -1:无
0:个人认证
1:机构认证 | +| desc | str | 主播认证信息 | | + +`exp`对象: + +| 字段 | 类型 | 内容 | 备注 | +|--------------|-----|------|-----| +| master_level | obj | 主播等级 | | + +`exp`中的`master_level`对象: + +| 字段 | 类型 | 内容 | 备注 | +|---------|-------|--------|-----| +| level | num | 当前等级 | | +| color | num | 等级框颜色 | | +| current | array | 当前等级信息 | | +| next | array | 下一等级信息 | | + +`master_level`中的`current`数组: + +| 项 | 类型 | 内容 | 备注 | +|-----|-----|------|-----| +| 0 | num | 升级积分 | | +| 1 | num | 总积分 | | + +`master_level`中的`next`数组: + +| 项 | 类型 | 内容 | 备注 | +|-----|-----|------|-----| +| 0 | num | 升级积分 | | +| 1 | num | 总积分 | | + +`room_news`对象: + +| 字段 | 类型 | 内容 | 备注 | +|------------|-----|------|-----| +| content | str | 公告内容 | | +| ctime | str | 公告时间 | | +| ctime_text | str | 公告日期 | | + +**示例:** + +查询直播间`mid=76`的主播信息 + +```shell +curl -G 'https://api.live.bilibili.com/live_user/v1/Master/info' \ +--data-urlencode 'uid=2' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "msg": "", + "message": "", + "data": { + "info": { + "uid": 2, + "uname": "碧诗", + "face": "https://i0.hdslb.com/bfs/face/ef0457addb24141e15dfac6fbf45293ccf1e32ab.jpg", + "official_verify": { + "type": 0, + "desc": "bilibili个人认证:bilibili创始人(站长)" + }, + "gender": 1 + }, + "exp": { + "master_level": { + "level": 30, + "color": 10512625, + "current": [ + 2870000, + 11883810 + ], + "next": [ + 3730000, + 15613810 + ] + } + }, + "follower_num": 926624, + "room_id": 1024, + "medal_name": "逸国", + "glory_count": 0, + "pendant": "", + "link_group_num": 0, + "room_news": { + "content": "", + "ctime": "", + "ctime_text": "" + } + } +} +``` + +
+ +## 批量查询直播间状态 + +> https://api.live.bilibili.com/room/v1/Room/get_status_info_by_uids + +*请求方式:GET/POST* + +认证方式:无 (无需添加Cookie) + +**url参数 (GET方式):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +|--------|-------|------------|-----|-----| +| uids[] | array | 要查询的主播 mid | 必要 | | + +**正文参数 (POST方式):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +|------|------|------------|-----|-----| +| uids | nums | 要查询的主播 mid | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +|---------|-----|------|-------------------------| +| code | num | 返回值 | 0:成功
-111:csrf校验失败 | +| message | str | 错误信息 | 默认为success | +| msg | str | 错误信息 | 默认为success | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +|-----|-----|-------|------------| +| uid | str | 直播间信息 | 实际字段为主播mid | + +`uid`对象: + +| 字段 | 类型 | 内容 | 备注 | +|---------------------|-----|-----------|------------------------------| +| title | str | 直播间标题 | | +| room_id | num | 直播间房间号 | 直播间实际房间号 | +| uid | num | 主播mid | | +| online | num | 直播间在线人数 | | +| live_time | num | 直播持续时长 | | +| live_status | num | 直播间开播状态 | 0:未开播
1:正在直播
2:轮播中 | +| short_id | num | 直播间房间号 | 直播间短房间号,常见于签约主播 | +| area | num | 直播间分区id | | +| area_name | str | 直播间分区名 | | +| area_v2_id | num | 直播间新版分区id | | +| area_v2_name | str | 直播间新版分区名 | | +| area_v2_parent_id | num | 直播间父分区id | | +| area_v2_parent_name | str | 直播间父分区名 | | +| uname | str | 主播用户名 | | +| face | str | 主播头像url | | +| tag_name | str | 直播间标签 | | +| tags | str | 直播间自定标签 | | +| cover_from_user | str | 直播间封面url | | +| keyframe | str | 直播间关键帧url | | +| lock_till | str | 直播间封禁信息 | | +| hidden_till | str | 直播间隐藏信息 | | +| broadcast_type | num | 直播类型 | 0:普通直播
1:手机直播 | + +**示例:** + +查询用户`mid=672328094的直播间信息 + +```shell +# GET方式 +curl -G 'https://api.live.bilibili.com/room/v1/Room/get_status_info_by_uids' +--data-urlencode 'uids[]=672328094' + +# POST方式 +curl 'https://api.live.bilibili.com/room/v1/Room/get_status_info_by_uids' \ +-H "Content-Type: application/json" \ +-d "{\"uids\": [672328094]}" +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "msg": "success", + "message": "success", + "data": { + "672328094": { + "title": "【B限】玩个毛线", + "room_id": 22637261, + "uid": 672328094, + "online": 4087370, + "live_time": 0, + "live_status": 2, + "short_id": 0, + "area": 6, + "area_name": "生活娱乐", + "area_v2_id": 371, + "area_v2_name": "虚拟主播", + "area_v2_parent_name": "虚拟主播", + "area_v2_parent_id": 9, + "uname": "嘉然今天吃什么", + "face": "http://i2.hdslb.com/bfs/face/d399d6f5cf7943a996ae96999ba3e6ae2a2988de.jpg", + "tag_name": "日常,学习,萌宠,厨艺,手机直播", + "tags": "", + "cover_from_user": "http://i0.hdslb.com/bfs/live/new_room_cover/f3ed7a782c13086e536ec8bc6e9593bb4918f905.jpg", + "keyframe": "http://i0.hdslb.com/bfs/live-key-frame/keyframe041722000000226372619dr3m8.jpg", + "lock_till": "0000-00-00 00:00:00", + "hidden_till": "0000-00-00 00:00:00", + "broadcast_type": 0 + } + } +} +``` + +
+ +## 清晰度代码 + +| 代码 | 说明 | +|-------|-----| +| 30000 | 杜比 | +| 20000 | 4K | +| 10000 | 原画 | +| 400 | 蓝光 | +| 250 | 超清 | +| 150 | 高清 | +| 80 | 流畅 | + +## 获取直播间信息 + +> https://api.live.bilibili.com/xlive/web-room/v2/index/getRoomPlayInfo + +*请求方式:GET* + +认证方式:无 (无需添加Cookie) + +**url参数 (GET方式):** + +| 参数名 | 类型 | 内容 | 必填 | 备注 | +|----------|-----|-------|-----|------------------------------------------------| +| room_id | num | 直播间id | 必要 | | +| protocol | str | 直播协议 | 必要 | 0:http_stream
1:http_hls
可多选, 使用英文逗号分隔 | +| format | str | 格式 | 必要 | 0:flv
1:ts
2:fmp4
可多选, 使用英文逗号分隔 | +| codec | str | 编码格式 | 必要 | 0:AVC
1:HEVC
可多选, 使用英文逗号分隔 | +| qn | num | 清晰度编码 | | 默认`150`
[清晰度代码](#清晰度代码) | +| platform | str | `web` | | | +| ptype | num | `8` | | | +| dolby | num | `5` | | | +| panorama | num | `1` | | | + +**json回复:** + +根对象: + +| 字段名 | 类型 | 内容 | 备注 | +|---------|-----|------|-----------------------| +| code | num | 响应码 | 0:成功
1002002:参数错误 | +| message | str | 0 | | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段名 | 类型 | 内容 | 备注 | +|-------------------|-------|-----------|---------------------------| +| room_id | num | 直播间id | | +| short_id | num | 直播间短id | | +| uid | num | 主播uid | | +| is_hidden | bool | 直播间是否被隐藏 | | +| is_locked | bool | 直播间是否被锁定 | | +| is_portrait | bool | 是否竖屏 | | +| live_status | num | 直播状态 | 0:未开播
1:直播中
2:轮播中 | +| hidden_till | num | 隐藏结束时间 | | +| lock_till | num | 封禁结束时间 | 秒级时间戳 | +| encrypted | bool | 直播间为加密直播间 | | +| pwd_verified | bool | 是否通过密码验证 | 当`encrypted`为`true`时才有意义 | +| live_time | num | 本次开播时间 | 秒级时间戳 | +| room_shield | num | | | +| all_special_types | array | | | +| playurl_info | obj | 直播流信息 | | + +`playurl_info`对象 + +| 字段名 | 类型 | 内容 | 备注 | +|-----------|-----|-----|-----| +| conf_json | str | | | +| playurl | obj | | | + +`playurl`对象 + +| 字段名 | 类型 | 内容 | 备注 | +|-----------|-------|-------|-----| +| cid | num | 直播间id | | +| g_qn_desc | array | 清晰度列表 | | +| stream | array | 直播流信息 | | +| p2p_data | obj | | | +| dolby_qn | | | | + +`g_qn_desc`数组中的对象 + +| 字段名 | 类型 | 内容 | 备注 | +|-----------|-----|-------|-----------------| +| qn | num | 清晰度代码 | [清晰度代码](#清晰度代码) | +| desc | str | 清晰度描述 | | +| hdr_desc | str | | | +| attr_desc | | | | + +`stream`数组中的对象 + +| 字段名 | 类型 | 内容 | 备注 | +|---------------|-------|------|-----| +| protocol_name | str | 协议名 | | +| format | array | 格式列表 | | + +`format`数组中的对象 + +| 字段名 | 类型 | 内容 | 备注 | +|-------------|-------|------|-----| +| format_name | str | 格式名 | | +| codec | array | 编码列表 | | + +`codec`数组中的对象 + +| 字段名 | 类型 | 内容 | 备注 | +|------------|-------|-----------|-----------------| +| codec_name | str | 编码名 | | +| current_qn | num | 当前清晰度编码 | [清晰度代码](#清晰度代码) | +| accept_qn | array | 可用清晰度编码列表 | [清晰度代码](#清晰度代码) | +| base_url | str | 播放源路径 | | +| url_info | array | 域名信息列表 | | +| hdr_qn | null | | | +| dolby_type | num | | | +| attr_name | str | | | + +`url_info`数组中的对象 + +| 字段名 | 类型 | 内容 | 备注 | +|------------|-----|-------|-----| +| host | str | 域名 | | +| extra | str | URL参数 | | +| stream_ttl | num | | | + +`p2p_data`对象 + +| 字段名 | 类型 | 内容 | 备注 | +|-----------|------|-----|-----| +| p2p | bool | | | +| p2p_type | num | | | +| m_p2p | bool | | | +| m_servers | null | | | + +**示例:** + +查询room_id=3的直播间信息 + +```shell +curl -L -X GET 'https://api.live.bilibili.com/xlive/web-room/v2/index/getRoomPlayInfo?room_id=3&protocol=0,1&format=0,1,2&codec=0,1&qn=10000' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "room_id": 23058, + "short_id": 3, + "uid": 11153765, + "is_hidden": false, + "is_locked": false, + "is_portrait": false, + "live_status": 1, + "hidden_till": 0, + "lock_till": 0, + "encrypted": false, + "pwd_verified": true, + "live_time": 1671425336, + "room_shield": 1, + "all_special_types": [], + "playurl_info": { + "conf_json": "{\"cdn_rate\":10000,\"report_interval_sec\":150}", + "playurl": { + "cid": 23058, + "g_qn_desc": [ + { + "qn": 30000, + "desc": "杜比", + "hdr_desc": "", + "attr_desc": null + }, + { + "qn": 20000, + "desc": "4K", + "hdr_desc": "", + "attr_desc": null + }, + { + "qn": 10000, + "desc": "原画", + "hdr_desc": "", + "attr_desc": null + }, + { + "qn": 400, + "desc": "蓝光", + "hdr_desc": "HDR", + "attr_desc": null + }, + { + "qn": 250, + "desc": "超清", + "hdr_desc": "HDR", + "attr_desc": null + }, + { + "qn": 150, + "desc": "高清", + "hdr_desc": "", + "attr_desc": null + }, + { + "qn": 80, + "desc": "流畅", + "hdr_desc": "", + "attr_desc": null + } + ], + "stream": [ + { + "protocol_name": "http_stream", + "format": [ + { + "format_name": "flv", + "codec": [ + { + "codec_name": "avc", + "current_qn": 10000, + "accept_qn": [ + 10000, + 150 + ], + "base_url": "/live-bvc/462997/live_11153765_9369560.flv?", + "url_info": [ + { + "host": "https://cn-hbcd-cu-02-20.bilivideo.com", + "extra": "expires=1674103815&pt=web&deadline=1674103815&len=0&oi=1963941079&platform=web&qn=10000&trid=1000061f434c07ac4f4184820bfb141e75e8&uipk=100&uipv=100&nbs=1&uparams=cdn,deadline,len,oi,platform,qn,trid,uipk,uipv,nbs&cdn=cn-gotcha01&upsig=f494aa9e92e24943061fe5082494ec44&sk=33541455720f64c7671bc1480acfb176&p2p_type=1&src=57345&sl=1&free_type=0&sid=cn-hbcd-cu-02-20&chash=1&sche=ban&score=12&pp=rtmp&machinezone=jd&source=onetier&trace=0&site=92e80b6f3ebfd393e7d1c1e2e648d9c1&order=1", + "stream_ttl": 3600 + } + ], + "hdr_qn": null, + "dolby_type": 0, + "attr_name": "" + } + ] + } + ] + }, + { + "protocol_name": "http_hls", + "format": [ + { + "format_name": "ts", + "codec": [ + { + "codec_name": "avc", + "current_qn": 10000, + "accept_qn": [ + 10000, + 150 + ], + "base_url": "/live-bvc/462997/live_11153765_9369560.m3u8?", + "url_info": [ + { + "host": "https://cn-hbcd-cu-02-20.bilivideo.com", + "extra": "expires=1674103815&len=0&oi=1963941079&pt=web&qn=10000&trid=1003061f434c07ac4f4184820bfb141e75e8&sigparams=cdn,expires,len,oi,pt,qn,trid&cdn=cn-gotcha01&sign=4f9bcec18e3afdca04b31ffb285ec915&sk=33541455720f64c7671bc1480acfb176&p2p_type=1&src=57345&sl=1&free_type=0&sid=cn-hbcd-cu-02-20&chash=1&sche=ban&score=12&pp=rtmp&machinezone=jd&source=onetier&trace=0&site=92e80b6f3ebfd393e7d1c1e2e648d9c1&order=1", + "stream_ttl": 3600 + } + ], + "hdr_qn": null, + "dolby_type": 0, + "attr_name": "" + } + ] + }, + { + "format_name": "fmp4", + "codec": [ + { + "codec_name": "avc", + "current_qn": 10000, + "accept_qn": [ + 10000, + 150 + ], + "base_url": "/live-bvc/462997/live_11153765_9369560/index.m3u8?", + "url_info": [ + { + "host": "https://cn-hbcd-cu-02-20.bilivideo.com", + "extra": "expires=1674103815&len=0&oi=1963941079&pt=web&qn=10000&trid=1007061f434c07ac4f4184820bfb141e75e8&sigparams=cdn,expires,len,oi,pt,qn,trid&cdn=cn-gotcha01&sign=cc57dce528316d8389f2f34e7bd15f5c&sk=a99391b8b4d5779b2e32e41dbc989d2d&flvsk=33541455720f64c7671bc1480acfb176&p2p_type=1&src=57345&sl=1&free_type=0&sid=cn-hbcd-cu-02-20&chash=1&sche=ban&bvchls=1&score=12&pp=rtmp&machinezone=jd&source=onetier&trace=0&site=92e80b6f3ebfd393e7d1c1e2e648d9c1&order=1", + "stream_ttl": 3600 + }, + { + "host": "https://c1--cn-gotcha208.bilivideo.com", + "extra": "expires=1674103815&len=0&oi=1963941079&pt=web&qn=10000&trid=1007061f434c07ac4f4184820bfb141e75e8&sigparams=cdn,expires,len,oi,pt,qn,trid&cdn=cn-gotcha208&sign=2ff96adf5056c8dbee546955260fc2df&sk=a99391b8b4d5779b2e32e41dbc989d2d&p2p_type=1&src=57345&sl=1&free_type=0&pp=rtmp&machinezone=jd&source=onetier&trace=0&site=92e80b6f3ebfd393e7d1c1e2e648d9c1&order=2", + "stream_ttl": 3600 + } + ], + "hdr_qn": null, + "dolby_type": 0, + "attr_name": "" + } + ] + } + ] + } + ], + "p2p_data": { + "p2p": true, + "p2p_type": 1, + "m_p2p": false, + "m_servers": null + }, + "dolby_qn": null + } + } + } +} +``` + +
\ No newline at end of file diff --git a/docs/live/live_area.md b/docs/live/live_area.md new file mode 100644 index 0000000000..5eeedf0ad7 --- /dev/null +++ b/docs/live/live_area.md @@ -0,0 +1,214 @@ +# 直播间分区 + +- [获取全部直播间分区列表](#获取全部直播间分区列表) + +--- + +## 获取全部直播间分区列表 + +> https://api.live.bilibili.com/room/v1/Area/getList + +*请求方式:GET* + +直播分区共有两级,分别是父分区和子分区 + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ------ | ---------- | ------------- | +| code | num | 返回值 | 0:成功 | +| msg | str | 错误信息 | 默认为success | +| message | str | 错误信息 | 默认为success | +| data | array | 父分区列表 | | + +`data`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | ----------- | ---- | +| 0 | obj | 父分区1 | | +| n | obj | 父分区(n+1) | | +| …… | obj | …… | …… | + +`data`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | ---------- | ---- | +| id | num | 父分区id | | +| name | name | 父分区名 | | +| list | list | 子分区列表 | | + +`data`数组中的对象中的`list`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | ----------- | ---- | +| 0 | obj | 子分区1 | | +| n | obj | 子分区(n+1) | | +| …… | obj | …… | …… | + +`list`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----------- | ---- | ----------------- | ---------------- | +| id | str | 子分区id | | +| parent_id | str | 父分区id | | +| old_area_id | str | 旧分区id | | +| name | str | 子分区名 | | +| act_id | str | 0 | **作用尚不明确** | +| pk_status | str | ??? | **作用尚不明确** | +| hot_status | num | 是否为热门分区 | 0:否
1:是 | +| lock_status | str | 0 | **作用尚不明确** | +| pic | str | 子分区标志图片url | | +| parent_name | str | 父分区名 | | +| area_type | num | | | + +**示例:** + +如想在`网游`父分区下的`英雄联盟`分区开播,则查到子分区id为`86` + +```shell +curl 'https://api.live.bilibili.com/room/v1/Area/getList' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "msg": "success", + "message": "success", + "data": [ + { + "id": 2, + "name": "网游", + "list": [ + { + "id": "86", + "parent_id": "2", + "old_area_id": "4", + "name": "英雄联盟", + "act_id": "0", + "pk_status": "0", + "hot_status": 1, + "lock_status": "0", + "pic": "http://i0.hdslb.com/bfs/vc/dcfb14f14ec83e503147a262e7607858b05d7ac0.png", + "parent_name": "网游", + "area_type": 0 + }, + { + "id": "252", + "parent_id": "2", + "old_area_id": "3", + "name": "逃离塔科夫", + "act_id": "0", + "pk_status": "0", + "hot_status": 1, + "lock_status": "0", + "pic": "http://i0.hdslb.com/bfs/vc/762a7de3dd5fe8165d1d55b232484a017941592f.png", + "parent_name": "网游", + "area_type": 0 + }, + { + "id": "80", + "parent_id": "2", + "old_area_id": "1", + "name": "绝地求生", + "act_id": "0", + "pk_status": "0", + "hot_status": 1, + "lock_status": "0", + "pic": "http://i0.hdslb.com/bfs/vc/43ca83fdcd10505eaeef1b76cf8ce642a53b94da.png", + "parent_name": "网游", + "area_type": 0 + }, + ………… + ] + }, + { + "id": 3, + "name": "手游", + "list": [ + { + "id": "35", + "parent_id": "3", + "old_area_id": "12", + "name": "王者荣耀", + "act_id": "0", + "pk_status": "0", + "hot_status": 1, + "lock_status": "0", + "pic": "http://i0.hdslb.com/bfs/vc/0fefa924760b2dd492a12dddafe179bfa1216918.png", + "parent_name": "手游", + "area_type": 0 + }, + ………… + ] + }, + { + "id": 6, + "name": "单机", + "list": [ + { + "id": "236", + "parent_id": "6", + "old_area_id": "1", + "name": "主机游戏", + "act_id": "0", + "pk_status": "0", + "hot_status": 1, + "lock_status": "0", + "pic": "http://i0.hdslb.com/bfs/vc/edb636ee59f902e3134a2790545045bddd70978e.png", + "parent_name": "单机", + "area_type": 0 + }, + ………… + ] + }, + { + "id": 1, + "name": "娱乐", + "list": [ + { + "id": "21", + "parent_id": "1", + "old_area_id": "10", + "name": "视频唱见", + "act_id": "0", + "pk_status": "1", + "hot_status": 1, + "lock_status": "0", + "pic": "http://i0.hdslb.com/bfs/vc/72b93ddafdf63c9f0b626ad546847a3c03c92b6f.png", + "cate_id": "12", + "parent_name": "娱乐", + "area_type": 0 + }, + ………… + ] + }, + { + "id": 5, + "name": "电台", + "list": [ + { + "id": "190", + "parent_id": "5", + "old_area_id": "10", + "name": "唱见电台", + "act_id": "0", + "pk_status": "0", + "hot_status": 0, + "lock_status": "0", + "pic": "http://i0.hdslb.com/bfs/vc/d22d7fafbf9b24e2bc3ce1df5eb9f006e6035e5d.png", + "parent_name": "电台", + "area_type": 0 + }, + ………… + ] + } + ] +} +``` + +
diff --git a/docs/live/live_stream.md b/docs/live/live_stream.md new file mode 100644 index 0000000000..22cd70a56d --- /dev/null +++ b/docs/live/live_stream.md @@ -0,0 +1,160 @@ +# 直播间视频流 + +- [根据真实直播间号获取直播视频流](#根据真实直播间号获取直播视频流) + +--- + +## 根据真实直播间号获取直播视频流 + +> https://api.live.bilibili.com/room/v1/Room/playUrl + +*请求方式:GET* + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | ---- | ----------- | ------ | ---- | +| cid | num | 目标真实直播间号 | 必要 | 直播间的`room_id`(非短号) | +| platform | str | 直播流格式 | 非必要 | h5:hls方式
web:http-flv方式
默认为http-flv方式 | +| quality | num | 画质 | 非必要 | `qn`与`quality`任选其一
2:流畅
3:高清
4:原画 | +| qn | str | 画质 | 非必要 | `qn`与`quality`任选其一
80:流畅
150:高清
400:蓝光
10000:原画
20000:4K
30000:杜比 | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | --------------------------- | +| code | num | 返回值 | 0:成功
-400:参数错误
19002003:房间信息不存在 | +| message | str | 错误信息 | 默认为0 | +| ttl | str | 1 | | +| data | obj | 信息本体 | | + + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| -------------- | ---- | ------------- | ------------------------ | +| current_quality | num | 当前画质代码`qn` | | +| accept_quality | array | 可选画质数参数 | | +| current_qn | num | 当前画质代码`quality` | | +| quality_description | array | 可选画质参数`quality` | | +| durl | array | 直播流url组 | | + +`accept_quality`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | ----------------- | ---- | +| 0 | str | `qn`画质代码1 | | +| n | str | `qn`画质代码(n+1) | | +| …… | str | …… | …… | + +`quality_description`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | ------------- | ---- | +| 0 | obj | 画质代码1 | | +| n | obj | 画质代码(n+1) | | +| …… | obj | …… | …… | + +`quality_description`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | -------------------- | ---- | +| qn | num | 画质代码 | | +| desc | str | 该代码对应的画质名称 | | + +`durl`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | ----------- | ---- | +| 0 | obj | 主线服务器 | | +| n | obj | 备线n服务器 | | +| …… | obj | …… | …… | + +`durl`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| -------------- | ---- | ------------- | ------------------------ | +| url | str | 直播流url | flv或m3u8格式
**注:带有转义** | +| length | num | 0 | 作用尚不明确 | +| order | num | 服务器线路序号 | | +| stream_type | num | 0 | 作用尚不明确 | +| p2p_type | num | 0 | 作用尚不明确 | + +**示例:** + +查询直播间`cid=14073662`的直播间信息 + +```shell +curl -G 'https://api.live.bilibili.com/room/v1/Room/playUrl' \ +--data-urlencode 'cid=14073662' \ +--data-urlencode 'qn=10000' \ +--data-urlencode 'platform=web' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "current_quality": 3, + "accept_quality": [ + "4", + "3", + "2" + ], + "current_qn": 3, + "quality_description": [ + { + "qn": 4, + "desc": "原画" + }, + { + "qn": 3, + "desc": "高清" + }, + { + "qn": 2, + "desc": "流畅" + } + ], + "durl": [ + { + "url": "https://d1--cn-gotcha04.bilivideo.com/live-bvc/601131/live_14073662_bs_3699814_1500.flv?cdn=cn-gotcha04&expires=1602496530&len=0&oi=1939228219&pt=&qn=150&trid=e6540d81a5d04c2ea459c46ebe77472a&sigparams=cdn,expires,len,oi,pt,qn,trid&sign=20e4ac695fbdd1d11d5dac4f93caa783&ptype=0&src=9&sl=1&order=1", + "length": 0, + "order": 1, + "stream_type": 0, + "p2p_type": 0 + }, + { + "url": "https://d1--cn-gotcha01.bilivideo.com/live-bvc/757951/live_14073662_bs_3699814_1500.flv?cdn=cn-gotcha01&expires=1602496530&len=0&oi=1939228219&pt=&qn=150&trid=e6540d81a5d04c2ea459c46ebe77472a&sigparams=cdn,expires,len,oi,pt,qn,trid&sign=9deea67bb9e9c1f0fa3886a34aa09473&ptype=0&src=9&sl=1&order=2", + "length": 0, + "order": 2, + "stream_type": 0, + "p2p_type": 0 + }, + { + "url": "https://d1--cn-gotcha04.bilivideo.com/live-bvc/982058/live_14073662_bs_3699814_1500.flv?cdn=cn-gotcha04&expires=1602496530&len=0&oi=1939228219&pt=&qn=150&trid=e6540d81a5d04c2ea459c46ebe77472a&sigparams=cdn,expires,len,oi,pt,qn,trid&sign=8753b270960034660184d975d86c0161&ptype=0&src=9&sl=1&order=3", + "length": 0, + "order": 3, + "stream_type": 0, + "p2p_type": 0 + }, + { + "url": "https://d1--cn-gotcha04.bilivideo.com/live-bvc/139554/live_14073662_bs_3699814_1500.flv?cdn=cn-gotcha04&expires=1602496530&len=0&oi=1939228219&pt=&qn=150&trid=e6540d81a5d04c2ea459c46ebe77472a&sigparams=cdn,expires,len,oi,pt,qn,trid&sign=cf93474e923c9ba8288c45d954f81045&ptype=0&src=9&sl=1&order=4", + "length": 0, + "order": 4, + "stream_type": 0, + "p2p_type": 0 + } + ] + } +} +``` + +
diff --git a/docs/live/manage.md b/docs/live/manage.md new file mode 100644 index 0000000000..6cf334b5a1 --- /dev/null +++ b/docs/live/manage.md @@ -0,0 +1,266 @@ +# 直播间管理 + +- [更新直播间标题](#更新直播间标题) +- [开始直播](#开始直播) +- [关闭直播](#关闭直播) + +--- + +## 更新直播间标题 + +> https://api.live.bilibili.com/room/v1/Room/update + +*请求方式:POST* + +认证方式:Cookie(SESSDATA) + +鉴权方式:Cookie中`bili_jct`的值正确并与`csrf`相同 + +**正文参数( application/x-www-form-urlencoded ):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------- | ---- | ------------------------ | ------ | -------------------- | +| room_id | num | 直播间id | 必要 | 必须为自己的直播间id | +| title | str | 直播间标题 | 必要 | 最大20字符 | +| csrf | str | CSRF Token(位于cookie) | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ------ | -------- | ------------------------------------------------------ | +| code | num | 返回值 | 0:成功
65530:token错误(登录错误)
1:错误 | +| msg | str | 错误信息 | 默认为ok | +| message | str | 错误信息 | 默认为ok | +| data | array | 空 | | + +**示例:** + +修改直播间`10352053`标题为`测试` + +```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' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "msg": "ok", + "message": "ok", + "data": [] +} +``` + +
+ +## 开始直播 + +> https://api.live.bilibili.com/room/v1/Room/startLive + +*请求方式:POST* + +认证方式:Cookie(SESSDATA) + +鉴权方式:Cookie中`bili_jct`的值正确并与`csrf`相同 + +开播时必须有分区选择,开播后返回推流地址 + +**正文参数( application/x-www-form-urlencoded ):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| -------- | ---- | ------------------------ | ------ | ----------------------------------- | +| room_id | num | 直播间id | 必要 | 必须为自己的直播间id | +| area_v2 | num | 直播分区id(子分区id) | 必要 | 详见[直播分区](live_area.md) | +| platform | str | 直播平台 | 必要 | web端:
bililink:android_link | +| csrf | str | CSRF Token(位于cookie) | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------------------ | +| code | num | 返回值 | 0:成功
65530:token错误(登录错误)
1:错误
60009:分区不存在
**(其他错误码有待补充)** | +| msg | str | 错误信息 | 默认为空 | +| message | str | 错误信息 | 默认为空 | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| --------- | ----- | ---------------- | ---------------------- | +| change | num | 是否改变状态 | 0:未改变
1:改变 | +| status | str | LIVE | | +| room_type | num | 0 | 作用尚不明确 | +| rtmp | obj | RTMP推流地址信息 | | +| protocols | array | ??? | 作用尚不明确 | +| try_time | str | ??? | 作用尚不明确 | +| live_key | str | ??? | 作用尚不明确 | +| notice | obj | ??? | 作用尚不明确 | + +`data`中的`rtmp`对象: + +| 字段 | 类型 | 内容 | 备注 | +| -------- | ---- | -------------------------------- | ------------ | +| addr | str | RTMP推流(发送)地址 | **重要** | +| code | str | RTMP推流参数(密钥) | **重要** | +| new_link | str | 获取CDN推流ip地址重定向信息的url | 没啥用 | +| provider | str | ??? | 作用尚不明确 | + +`data`中的`protocols`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | ------ | ------------ | +| 0 | obj | ??? | 作用尚不明确 | + +`data`中的`protocols`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| -------- | ---- | -------------------------------- | ------------ | +| protocol | str | rtmp | 作用尚不明确 | +| addr | str | RTMP推流(发送)地址 | | +| code | str | RTMP推流参数(密钥) | | +| new_link | str | 获取CDN推流ip地址重定向信息的url | | +| provider | str | txy | 作用尚不明确 | + +`data`中的`notice`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----------- | ---- | ---- | ------------ | +| type | num | 1 | 作用尚不明确 | +| status | num | 0 | 作用尚不明确 | +| title | str | 空 | 作用尚不明确 | +| msg | str | 空 | 作用尚不明确 | +| button_text | str | 空 | 作用尚不明确 | +| button_url | str | 空 | 作用尚不明确 | + +**示例:** + +以`27`作为分区id开播直播间`10352053` + +其中`"data"."rtmp"."addr"`为推流地址 + +`"data"."rtmp"."code"`为推流参数 + +```shell +curl 'https://api.live.bilibili.com/room/v1/Room/startLive' \ +--data-urlencode 'room_id=10352053' \ +--data-urlencode 'area_v2=27' \ +--data-urlencode 'platform=pc' \ +--data-urlencode 'csrf=xxx' \ +-b 'SESSDATA=xxx;bili_jct=xx' +``` + +
+查看响应示例: + +```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": "" + } + } +} +``` + +
+ +## 关闭直播 + +> https://api.live.bilibili.com/room/v1/Room/stopLive + +*请求方式:POST* + +认证方式:Cookie(SESSDATA) + +鉴权方式:Cookie中`bili_jct`的值正确并与`csrf`相同 + +**正文参数( application/x-www-form-urlencoded ):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------- | ---- | ------------------------ | ------ | -------------------- | +| room_id | num | 直播间id | 必要 | 必须为自己的直播间id | +| csrf | str | CSRF Token(位于cookie) | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------------------ | +| code | num | 返回值 | 0:成功
65530:token错误(登录错误)
-400:没有权限
**(其他错误码有待补充)** | +| msg | str | 错误信息 | 默认为空 | +| message | str | 错误信息 | 默认为空 | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------ | ---- | ------------ | ---------------------- | +| change | num | 是否改变状态 | 0:未改变
1:改变 | +| status | str | PREPARING | | + +**示例:** + +关闭直播间`10352053`的直播 + +```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' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "msg": "", + "message": "", + "data": { + "change": 1, + "status": "PREPARING" + } +} +``` + +
diff --git a/docs/live/message_stream.md b/docs/live/message_stream.md new file mode 100644 index 0000000000..7e5be5b027 --- /dev/null +++ b/docs/live/message_stream.md @@ -0,0 +1,2336 @@ +# 直播间信息流 + +- [获取信息流认证秘钥](#获取信息流认证秘钥) +- [数据包格式](#数据包格式) +- [数据包](#数据包) + - [认证包](#认证包) + - [认证包回复](#认证包回复) + - [心跳包](#心跳包) + - [心跳包回复](#心跳包回复人气值) + - [普通包](#普通包) + +--- + +## 获取信息流认证秘钥 + +> https://api.live.bilibili.com/xlive/web-room/v1/index/getDanmuInfo + +*请求方式:GET* + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | ---- | ------------ | ------ | ---- | +| id | num | 直播间真实id | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------------------ | +| code | num | 返回值 | 0:成功
65530:token错误(登录错误)
1:错误
60009:分区不存在
**(其他错误码有待补充)** | +| message | str | 错误信息 | 默认为空 | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------------------ | ----- | ------------------- | ---- | +| group | str | live | | +| business_id | num | 0 | | +| refresh_row_factor | num | 0.125 | | +| refresh_rate | num | 100 | | +| max_delay | num | 5000 | | +| token | str | 认证秘钥 | | +| host_list | array | 信息流服务器节点列表 | | + +`host_list`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| -------- | ---- | ---------- | ---- | +| host | str | 服务器域名 | | +| port | num | tcp端口 | | +| wss_port | num | wss端口 | | +| ws_port | num | ws端口 | | + +**示例:** + +获得直播间`22824550`的信息流认证秘钥 + +```shell +curl -G 'https://api.live.bilibili.com/xlive/web-room/v1/index/getDanmuInfo' \ +--data-urlencode 'id=22824550' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "group": "live", + "business_id": 0, + "refresh_row_factor": 0.125, + "refresh_rate": 100, + "max_delay": 5000, + "token": "Eac3Lm1JADzny-YnB5MW0MQcd23rw_mgMFZAnu40I-J2ecP2Qj6CH-UqjdfvwiqVEZcEksG1ONSOi1dGzm0wM4FxqA-ZYXtcQyHXPXqxmrx3AmDx8Z5-d4TuKQkaU0zxevH1B-gnu7g8TDtIE4lns4BYlw==", + "host_list": [ + { + "host": "tx-sh-live-comet-02.chat.bilibili.com", + "port": 2243, + "wss_port": 443, + "ws_port": 2244 + }, + { + "host": "tx-bj-live-comet-02.chat.bilibili.com", + "port": 2243, + "wss_port": 443, + "ws_port": 2244 + }, + { + "host": "broadcastlv.chat.bilibili.com", + "port": 2243, + "wss_port": 443, + "ws_port": 2244 + } + ] + } +} +``` + +
+ +## 数据包格式 + +数据包为MQ(Message Queue,消息队列)使用Websocket或TCP连接作为通道,具体格式为头部数据+正文数据 + +操作流程: + +发送认证包->接收认证包回应->接收普通包&(每30秒发送心跳包->接收心跳回应) + +头部格式: + +| 偏移量 | 长度 | 类型 | 含义 | +| ------ | ---- | ------ | ------------------------------------------------------------ | +| 0 | 4 | uint32 | 封包总大小(头部大小+正文大小) | +| 4 | 2 | uint16 | 头部大小(一般为0x0010,16字节) | +| 6 | 2 | uint16 | 协议版本:
0普通包正文不使用压缩
1心跳及认证包正文不使用压缩
2普通包正文使用zlib压缩
3普通包正文使用brotli压缩,解压为一个带头部的协议0普通包 | +| 8 | 4 | uint32 | 操作码(封包类型) | +| 12 | 4 | uint32 | sequence,每次发包时向上递增 | + +操作码: + +| 代码 | 含义 | +| ---- | -------------------- | +| 2 | 心跳包 | +| 3 | 心跳包回复(人气值) | +| 5 | 普通包(命令) | +| 7 | 认证包 | +| 8 | 认证包回复 | + +*普通包可能包含多条命令,每个命令有一个头部,指示该条命令的长度等信息* + +## 数据包 + +### 认证包 + +方式:(上行) + +连接成功后5秒内发送,否则强制断开连接 + +正文: + +json格式 + +| 字段 | 类型 | 内容 | 必要性 | 备注 | +| -------- | ---- | ------------ | ------ | ------------------ | +| uid | num | 用户mid | 非必要 | uid为0即为游客登录 | +| roomid | num | 加入房间的id | 必要 | 直播间真实id | +| protover | num | 协议版本 | 非必要 | 3 | +| platform | str | 平台标识 | 非必要 | "web" | +| type | num | 2 | 非必要 | | +| key | str | 认证秘钥 | 非必要 | | + +示例: + +``` +00000000: 0000 00ff 0010 0001 0000 0007 0000 0001 ................ +00000001: 7b22 7569 6422 3a31 3630 3134 3836 3234 {"uid":160148624 +00000002: 2c22 726f 6f6d 6964 223a 3232 3630 3831 ,"roomid":226081 +00000003: 3132 2c22 7072 6f74 6f76 6572 223a 332c 12,"protover":3, +00000004: 2270 6c61 7466 6f72 6d22 3a22 7765 6222 "platform":"web" +00000005: 2c22 7479 7065 223a 322c 226b 6579 223a ,"type":2,"key": +00000006: 2230 7670 5448 5737 7757 556e 6c6f 5270 "0vpTHW7wWUnloRp +00000007: 5251 6b47 764e 626e 7776 7364 6d2d 7159 RQkGvNbnwvsdm-qY +00000008: 4777 4243 5875 2d59 5164 6e57 7653 5547 GwBCXu-YQdnWvSUG +00000009: 7373 4139 7962 4b68 7932 6a78 3952 6f63 ssA9ybKhy2jx9Roc +0000000a: 4150 4651 6d54 4f6b 5277 6b4b 687a 4479 APFQmTOkRwkKhzDy +0000000b: 4839 5054 756f 5468 6834 4630 7562 584c H9PTuoThh4F0ubXL +0000000c: 4964 6e69 3734 5539 304b 4242 6972 3248 Idni74U90KBBir2H +0000000d: 7451 3941 3777 674b 3438 4b7a 495f 5a5a tQ9A7wgK48KzI_ZZ +0000000e: 3838 7557 4e59 6652 4f48 6964 4e6a 3732 88uWNYfROHidNj72 +0000000f: 7061 796e 3479 3071 4268 513d 3d22 7d payn4y0qBhQ=="} +``` + + + +### 认证包回复 + +方式:(下行) + +在认证包发送成功后就会收到 + +json格式 + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | ------ | --------- | +| code | num | 返回值 | 0认证成功 | + +示例: + +``` +00000000: 0000 001a 0010 0001 0000 0008 0000 0001 ................ +00000001: 7b22 636f 6465 223a 307d {"code":0} +``` + + + +### 心跳包 + +方式:(上行) + +30秒左右发送一次,否则60秒后会被强制断开连接 + +正文: + +可以为空或任意字符 + +示例: + +``` +00000000: 0000 001f 0010 0001 0000 0002 0000 0001 ................ +00000001: 5b6f 626a 6563 7420 4f62 6a65 6374 5d [object Object] +``` + +### 心跳包回复(人气值) + +方式:(下行) + +在心跳包发送成功后就会收到 + +正文: + +正文分为两个部分,第一部分是人气值 [uint32整数,代表房间当前的人气值] + +第二部分是对于心跳包内容的复制,心跳包正文是什么这里就会回应什么。 + +示例: + +``` +00000000: 0000 0014 0010 0001 0000 0003 0000 0000 ................ +00000001: 0000 09a2 5b6f 626a 6563 7420 4f62 6a65 ....[object Obje +00000002: 6374 5d ct] +``` + +可见房间内人气值为2466(0x000009a2) + +### 普通包 + +方式:(下行) + +正文: + +正文一般为普通JSON数据。 + +大多数普通包都经过zlib压缩或brotli压缩。 + +示例: + +``` +00000000: 0000 0086 0010 0003 0000 0005 0000 0000 ................ +00000001: 8b38 8000 0000 7200 1000 0000 0000 0500 .8....r......... +00000002: 0000 007b 2263 6d64 223a 2257 4154 4348 ...{"cmd":"WATCH +00000003: 4544 5f43 4841 4e47 4522 2c22 6461 7461 ED_CHANGE","data +00000004: 223a 7b22 6e75 6d22 3a32 3230 3937 2c22 ":{"num":22097," +00000005: 7465 7874 5f73 6d61 6c6c 223a 2232 2e32 text_small":"2.2 +00000006: e4b8 8722 2c22 7465 7874 5f6c 6172 6765 ...","text_large +00000007: 223a 2232 2e32 e4b8 87e4 baba e79c 8be8 ":"2.2.......... +00000008: bf87 227d 7d03 .."}}. +``` + +--- + +- [弹幕](#弹幕) +- [进场或关注消息](#进场或关注消息) +- [送礼](#送礼) +- [礼物星球点亮](#礼物星球点亮) +- [礼物连击](#礼物连击) +- [通知消息](#通知消息) +- [主播准备中](#主播准备中) +- [直播开始](#直播开始) +- [主播信息更新](#主播信息更新) +- [直播间高能榜](#直播间高能榜) +- [直播间高能用户数量](#直播间高能用户数量) +- [用户到达直播间高能榜前三名的消息](#用户到达直播间高能榜前三名的消息) +- [直播间用户点赞](#直播间用户点赞) +- [直播间点赞数](#直播间点赞数) +- [直播间发红包弹幕](#直播间发红包弹幕) +- [直播间红包](#直播间红包) +- [直播间抢到红包的用户](#直播间抢到红包的用户) +- [直播间看过人数](#直播间看过人数) +- [用户进场特效](#用户进场特效) +- [直播间在所属分区的排名改变](#直播间在所属分区的排名改变) +- [直播间在所属分区排名提升的祝福](#直播间在所属分区排名提升的祝福) +- [直播间信息更改](#直播间信息更改) +- [醒目留言按钮](#醒目留言按钮) +- [顶部横幅](#顶部横幅) +- [下播的直播间](#下播的直播间) +- [未知消息](#未知消息) + +--- + + +#### 弹幕 + +当收到弹幕时接收到此条消息 + +json格式 + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | ------ | --------- | +| cmd | str | "DANMU_MSG" | 如果是弹幕消息,内容则是"DANMU_MSG" | +| info | array | 这条弹幕的用户、内容与粉丝勋章等各种信息 | 待调查其中每个数据的含义 | + + + + + + +
+查看消息示例: + +``` json +{ + "cmd": "DANMU_MSG", + "info": [ + [ + 0, + 1, + 25, + 16777215, + 1673789362967, + 1673770572, + 0, + "81240bc1", + 0, + 0, + 0, + "", + 0, + "{}", + "{}", + { + "mode": 0, + "show_player_type": 0, + "extra": "{\"send_from_me\":false,\"mode\":0,\"color\":16777215,\"dm_type\":0,\"font_size\":25,\"player_mode\":1,\"show_player_type\":0,\"content\":\"测试文本\",\"user_hash\":\"2166623169\",\"emoticon_unique\":\"\",\"bulge_display\":0,\"recommend_score\":8,\"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}" + }, + { + "activity_identity": "", + "activity_source": 0, + "not_show": 0 + } + ], + "测试文本", + [ + 50500335, + "属官一号", + 0, + 0, + 0, + 10000, + 1, + "" + ], + [ + 5, + "小纸鱼", + "薄海纸鱼", + 706667, + 6126494, + "", + 0, + 12632256, + 12632256, + 12632256, + 0, + 0, + 1837617 + ], + [ + 0, + 0, + 9868950, + ">50000", + 2 + ], + [ + "", + "" + ], + 0, + 0, + null, + { + "ts": 1673789362, + "ct": "A4721FE3" + }, + 0, + 0, + null, + null, + 0, + 21 + ] +} +``` +
+ +#### 进场或关注消息 + +有用户进入直播间或关注主播时触发 + +json格式 + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | ------ | --------- | +| cmd | str | "INTERACT_WORD" | 如果是进入直播间或关注消息,内容则是"INTERACT_WORD" | +| data | obj | 进入直播间的用户的信息 | | + +data字段 + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | ------ | --------- | +| contribution | obj | 待调查 | | +| dmscore | num | 待调查 | | +| fans_medal | obj | 粉丝勋章 | | +| identities | num | 待调查 | | +| is_spread | num | 待调查 | | +| msg_type | num | 1为进场,2为关注 | | +| roomid | num | 房间号 | | +| is_spread | num | 待调查 | | +| is_spread | num | 待调查 | | +| score | num | 待调查 | | +| spread_desc | str | 待调查 | | +| spread_info | str | 待调查 | | +| tail_icon | num | 待调查 | | +| timestamp | num | 时间戳 | | +| trigger_time | num | 触发时间 | | +| uid | num | 用户ID | | +| uname | str | 用户名称 | | +| uname_color | str | 用户名称颜色 | | + +
+查看消息示例: + +```json +{ + "cmd": "INTERACT_WORD", + "data": { + "contribution": { + "grade": 0 + }, + "dmscore": 4, + "fans_medal": { + "anchor_roomid": 890976, + "guard_level": 0, + "icon_id": 0, + "is_lighted": 0, + "medal_color": 6067854, + "medal_color_border": 12632256, + "medal_color_end": 12632256, + "medal_color_start": 12632256, + "medal_level": 1, + "medal_name": "小豆皮", + "score": 134, + "special": "", + "target_id": 6574487 + }, + "identities": [ + 1 + ], + "is_spread": 0, + "msg_type": 1, + "roomid": 24143902, + "score": 1644563948936, + "spread_desc": "", + "spread_info": "", + "tail_icon": 0, + "timestamp": 1644563948, + "trigger_time": 1644563947876475000, + "uid": 335979315, + "uname": "TIM_Init", + "uname_color": "" + } +} +``` + +
+ +#### 送礼 + +json格式 + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | ------ | --------- | +| cmd | str | "SEND_GIFT" | 投喂礼物等,内容则是"SEND_GIFT" | +| data | obj | 礼物投喂人、礼物信息、礼物数量等 | | + +data字段 + +| 字段 | 类型 | 内容 | 备注 | +| ---- | -------- | ------ | --------- | +| action | str | 礼物操作,一般为"投喂" | | +| batch_combo_id | str | 待调查 | 有时为空字符串 | +| batch_combo_send | obj | 待调查 | 有时为null | +| beatId | str | 待调查 | | +| biz_source | str | 待调查 | | +| blind_gift | | 待调查 | | +| broadcast_id | num | 待调查 | | +| coin_type | str | 待调查 | | +| combo_resources_id | num | 待调查 | | +| combo_send | | 待调查 | | +| comber_stay_time | num | 待调查 | | +| combo_total_coin | num | 待调查 | | +| crit_prob | num | 待调查 | | +| demarcation | num | 待调查 | | +| discount_price | num | 待调查 | | +| dmscore | num | 待调查 | | +| draw | num | 待调查 | | +| effect | num | 待调查 | | +| effect_block | num | 待调查 | | +| face | str | 礼物投喂者的头像URL | | +| face_effect_id | num | 待调查 | | +| face_effect_type | num | 待调查 | | +| float_sc_resource_id | num | 待调查 | | +| giftId | num | 礼物ID | | +| giftName | str | 礼物名称 | | +| giftType | num | 待调查 | | +| gold | number | 待调查 | | +| guard_level | num | 待调查 | | +| is_first | bool | 待调查 | | +| is_join_receiver | bool | 待调查 | | +| is_naming | bool | 待调查 | | +| is_special_batch | num | 待调查 | | +| magnification | num | 待调查 | | +| medal_info | obj | 礼物投喂者粉丝奖牌信息 | | +| name_color | str | 待调查 | | +| num | number | 该次投喂的礼物数量 | | +| original_gift_name | str | 待调查 | | +| price | num | 待调查 | | +| rcost | num | 待调查 | | +| receive_user_info | obj | 礼物接收者信息,一般是主播 | | +| remain | num | 待调查 | | +| rnd | num | 礼物发送时的时间戳,以及后面9位未知数字 | | +| send_master | | 待调查 | | +| silver | num | 待调查 | | +| super | num | 待调查 | | +| super_batch_gift_num | num | 待调查 | | +| super_gift_num | num | 待调查 | | +| svga_block | num | 待调查 | | +| switch | bool | 待调查 | | +| tag_image | str | 待调查 | | +| tid | num | 礼物发送时的时间戳,以及后面9位未知数字 | 似乎与rnd字段相同 | +| timestamp | num | 礼物发送时的时间戳 | | +| top_list | | 待调查 | | +| total_coin | num | 待调查 | | +| uid | num | 礼物投喂者的UID | | +| uname | str | 礼物投喂者的名称 | | + +batch_combo_send字段 + +| 字段 | 类型 | 内容 | 备注 | +| ---- | -------- | ------ | --------- | +| action | str | 礼物操作,一般为"投喂" | | +| batch_combo_id | str | 待调查 | | +| batch_combo_num | num | 待调查 | | +| blind_gift | | 待调查 | | +| gift_id | num | 待调查 | | +| gift_name | str | 投喂的礼物名称 | 待调查 | +| gift_num | num | 投喂礼物数量 | 待调查 | +| send_master | | 待调查 | | +| uid | num | 礼物投喂者的UID | | +| uname | str | 礼物投喂者的名称 | | + +medal_info字段 + +| 字段 | 类型 | 内容 | 备注 | +| ---- | -------- | ------ | --------- | +| anchor_roomid | num | 待调查 | | +| anchor_uname | str | 待调查 | | +| guard_level | num | 待调查 | | +| icon_id | num | 待调查 | | +| is_lighted | num | 待调查 | | +| medal_color | num | 礼物投喂者的粉丝奖牌颜色 | 十六进制颜色值转为了十进制表示 | +| medal_border_color | num | 礼物投喂者的粉丝奖牌边框颜色 | 十六进制颜色值的十进制表示 | +| medal_color_end | num | 待调查 | | +| medal_color_start | num | 待调查 | | +| medal_level | num | 礼物投喂者的粉丝奖牌等级 | | +| medal_name | str | 礼物投喂者的粉丝奖牌名称 | | +| special | str | 待调查 | | +| target_id | num | 待调查 | | + +receive_user_info字段 + +| 字段 | 类型 | 内容 | 备注 | +| ---- | -------- | ------ | --------- | +| uid | num | 礼物接收者的UID | 一般为主播的UID | +| uname | str | 礼物接收者的名称 | 一般为主播的名称 | + +
+查看消息示例: + +```json +{ + "cmd": "SEND_GIFT", + "data": { + "action": "投喂", + "batch_combo_id": "batch:gift:combo_id:510149209:36047134:31036:1673622464.8445", + "batch_combo_send": { + "action": "投喂", + "batch_combo_id": "batch:gift:combo_id:510149209:36047134:31036:1673622464.8445", + "batch_combo_num": 1, + "blind_gift": null, + "gift_id": 31036, + "gift_name": "小花花", + "gift_num": 1, + "send_master": null, + "uid": 510149209, + "uname": "12138额83121" + }, + "beatId": "", + "biz_source": "live", + "blind_gift": null, + "broadcast_id": 0, + "coin_type": "gold", + "combo_resources_id": 1, + "combo_send": { + "action": "投喂", + "combo_id": "gift:combo_id:510149209:36047134:31036:1673622464.8434", + "combo_num": 1, + "gift_id": 31036, + "gift_name": "小花花", + "gift_num": 1, + "send_master": null, + "uid": 510149209, + "uname": "12138额83121" + }, + "combo_stay_time": 3, + "combo_total_coin": 100, + "crit_prob": 0, + "demarcation": 1, + "discount_price": 100, + "dmscore": 8, + "draw": 0, + "effect": 0, + "effect_block": 0, + "face": "https://i1.hdslb.com/bfs/face/fb79103e8b33547023e2010030b6889bba2b49bf.jpg", + "face_effect_id": 0, + "face_effect_type": 0, + "float_sc_resource_id": 0, + "giftId": 31036, + "giftName": "小花花", + "giftType": 0, + "gold": 0, + "guard_level": 0, + "is_first": true, + "is_join_receiver": false, + "is_naming": false, + "is_special_batch": 0, + "magnification": 1, + "medal_info": { + "anchor_roomid": 0, + "anchor_uname": "", + "guard_level": 0, + "icon_id": 0, + "is_lighted": 0, + "medal_color": 0, + "medal_color_border": 0, + "medal_color_end": 0, + "medal_color_start": 0, + "medal_level": 0, + "medal_name": "", + "special": "", + "target_id": 0 + }, + "name_color": "", + "num": 1, + "original_gift_name": "", + "price": 100, + "rcost": 164536872, + "receive_user_info": { + "uid": 36047134, + "uname": "小霖QL" + }, + "remain": 0, + "rnd": "1673622464121900003", + "send_master": null, + "silver": 0, + "super": 0, + "super_batch_gift_num": 1, + "super_gift_num": 1, + "svga_block": 0, + "switch": true, + "tag_image": "", + "tid": "1673622464121900003", + "timestamp": 1673622464, + "top_list": null, + "total_coin": 100, + "uid": 510149209, + "uname": "12138额83121" + } +} +``` +
+ +#### 礼物星球点亮 + +json格式 + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | ------ | --------- | +| cmd | str | "GIFT_STAR_PROCESS" | 主播的礼物星球其一点亮之后,则内容为"GIFT_STAR_PROCESS" | +| data | obj | 消息文本 | | + +data字段 + +| 字段 | 类型 | 内容 | 备注 | +| ---- | -------- | ------ | --------- | +| status | num | 待调查 | | +| tip | str | 点亮礼物星球的消息文本 | | + +
+查看消息示例: + +```json +{ + "cmd": "GIFT_STAR_PROCESS", + "data": { + "status": 1, + "tip": "情书已点亮" + } +} +``` +
+ +#### 礼物连击 + +json格式 + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | ------ | --------- | +| cmd | str | "COMBO_SEND" | | +| data | obj | 礼物投喂者、礼物信息等 | | + +data字段 + +| 字段 | 类型 | 内容 | 备注 | +| ---- | -------- | ------ | --------- | +| action | str | 礼物操作,一般为"投喂" | | +| batch_combo_id | str | 待调查 | | +| batch_combo_num | num | 连击礼物数量 | | +| combo_id | str | 待调查 | | +| combo_num | str | 连击礼物数量 | | +| combo_total_coin | num | 待调查 | | +| dmscore | num | 待调查 | | +| gift_id | num | 待调查 | | +| gift_name | str | 连击礼物的名称 | | +| gift_num | num | 0 | | +| is_join_receiver | bool | 待调查 | | +| is_naming | bool | 待调查 | | +| is_show | num | 待调查 | | +| medal_info | obj | 礼物投喂者的粉丝勋章信息 | | +| name_color | str | 待调查 | | +| r_uname | str | 主播的名称 | | +| receive_user_info | obj | 主播的UID和名称 | | +| ruid | num | 主播的UID | | +| send_master | | 待调查 | | +| total_num | num | 连击礼物数量 | | +| uid | num | 礼物投喂者的UID | | +| uname | str | 礼物投喂者的名称 | | + +receive_user_info字段 + +| 字段 | 类型 | 内容 | 备注 | +| ---- | -------- | ------ | --------- | +| uid | number | 礼物接收者的UID | 一般为主播的UID | +| uname | string | 礼物接收者的名称 | 一般为主播的名称 | + +
+查看消息示例: + +```json +{ + "cmd": "COMBO_SEND", + "data": { + "action": "投喂", + "batch_combo_id": "batch:gift:combo_id:3493090830584635:29857468:31036:1673774515.6190", + "batch_combo_num": 2, + "combo_id": "gift:combo_id:3493090830584635:29857468:31036:1673774515.6180", + "combo_num": 2, + "combo_total_coin": 200, + "dmscore": 112, + "gift_id": 31036, + "gift_name": "小花花", + "gift_num": 0, + "is_join_receiver": false, + "is_naming": false, + "is_show": 1, + "medal_info": { + "anchor_roomid": 0, + "anchor_uname": "", + "guard_level": 0, + "icon_id": 0, + "is_lighted": 1, + "medal_color": 6067854, + "medal_color_border": 6067854, + "medal_color_end": 6067854, + "medal_color_start": 6067854, + "medal_level": 3, + "medal_name": "爱珞珞", + "special": "", + "target_id": 3493076559465366 + }, + "name_color": "", + "r_uname": "露萌不要雨草", + "receive_user_info": { + "uid": 29857468, + "uname": "露萌不要雨草" + }, + "ruid": 29857468, + "send_master": null, + "total_num": 2, + "uid": 3493090830584635, + "uname": "DOC-Neo" + } +} +``` +
+ + + +#### 通知消息 + +json格式 + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | ------ | --------- | +| cmd | str | "NOTICE_MSG" | 通知消息,内容则是"NOTICE_MSG" | +| id | num | 待调查 | | +| data | obj | 通知数据 | | + +data字段 + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | ------ | --------- | +| full | obj | 待调查 | | +| half | obj | 待调查 | | +| side | obj | 待调查 | | +| roomid | num | 目标直播间短号 | | +| real_roomid | num | 目标直播间真实ID | | +| msg_common | str | 显示的消息内容 | | +| msg_self | str | 消息内容本身 | 剔除额外文本 | +| link_rel | str | 通知消息跳转的URL | | +| msg_type | num | 待调查 | | +| shield_uid | num | 待调查 | | +| business_id | str | 待调查 | | +| scatter | obj | 待调查 | | +| marquee_id | str | 待调查 | | +| notice_type | num | 待调查 | | + +
+查看消息示例: + +```json +{ + "cmd": "NOTICE_MSG", + "id": 804, + "name": "人气榜第一名", + "full": { + "head_icon": "https://i0.hdslb.com/bfs/live/f74b09c7fb83123a0dd66c536b6d5b143d271b08.png", + "tail_icon": "https://i0.hdslb.com/bfs/live/822da481fdaba986d738db5d8fd469ffa95a8fa1.webp", + "head_icon_fa": "https://i0.hdslb.com/bfs/live/f74b09c7fb83123a0dd66c536b6d5b143d271b08.png", + "tail_icon_fa": "https://i0.hdslb.com/bfs/live/38cb2a9f1209b16c0f15162b0b553e3b28d9f16f.png", + "head_icon_fan": 1, + "tail_icon_fan": 4, + "background": "#FFE6BD", + "color": "#9D5412", + "highlight": "#FF6933", + "time": 20 + }, + "half": { + "head_icon": "https://i0.hdslb.com/bfs/live/f74b09c7fb83123a0dd66c536b6d5b143d271b08.png", + "tail_icon": "https://i0.hdslb.com/bfs/live/822da481fdaba986d738db5d8fd469ffa95a8fa1.webp", + "background": "#FFE6BD", + "color": "#9D5412", + "highlight": "#FF6933", + "time": 0 + }, + "side": { + "head_icon": "", + "background": "", + "color": "", + "highlight": "", + "border": "" + }, + "roomid": 23919301, + "real_roomid": 23919301, + "msg_common": "恭喜主播<%AG超玩会王者荣耀一诺%>荣获上小时人气榜第<%1%>名!点击传送查看精彩内容!", + "msg_self": "恭喜主播<%AG超玩会王者荣耀一诺%>荣获上小时人气榜第<%1%>名!", + "link_url": "https://live.bilibili.com/23919301?broadcast_type=0&is_room_feed=1&from=28003&extra_jump_from=28003", + "msg_type": 1, + "shield_uid": -1, + "business_id": "", + "scatter": { + "min": 0, + "max": 0 + }, + "marquee_id": "", + "notice_type": 0 +} +``` +```json +{ + "cmd": "NOTICE_MSG", + "id": 814, + "name": "幻影飞船专用", + "full": { + "head_icon": "https://i0.hdslb.com/bfs/live/08978f1721200e11328d1f7d6231b21bcca20488.gif", + "tail_icon": "https://i0.hdslb.com/bfs/live/822da481fdaba986d738db5d8fd469ffa95a8fa1.webp", + "head_icon_fa": "https://i0.hdslb.com/bfs/live/08978f1721200e11328d1f7d6231b21bcca20488.gif", + "tail_icon_fa": "https://i0.hdslb.com/bfs/live/38cb2a9f1209b16c0f15162b0b553e3b28d9f16f.png", + "head_icon_fan": 1, + "tail_icon_fan": 4, + "background": "#F09153", + "color": "#FFFFFF", + "highlight": "#FFE600", + "time": 15 + }, + "half": { + "head_icon": "https://i0.hdslb.com/bfs/live/08978f1721200e11328d1f7d6231b21bcca20488.gif", + "tail_icon": "", + "background": "#F09153", + "color": "#FFFFFFFF", + "highlight": "#FFE600", + "time": 15 + }, + "side": { + "head_icon": "", + "background": "", + "color": "", + "highlight": "", + "border": "" + }, + "roomid": 25207004, + "real_roomid": 25207004, + "msg_common": "<%咖啡_ミシェル%>投喂<%夜月瓜瓜sukuyi%>1个幻影飞船,向着浩瀚星辰出发!", + "msg_self": "<%咖啡_ミシェル%>投喂<%夜月瓜瓜sukuyi%>1个幻影飞船,向着浩瀚星辰出发!", + "link_url": "https://live.bilibili.com/25207004?broadcast_type=0&is_room_feed=1&from=28003&extra_jump_from=28003&live_lottery_type=1", + "msg_type": 2, + "shield_uid": -1, + "business_id": "32356", + "scatter": { + "min": 0, + "max": 0 + }, + "marquee_id": "", + "notice_type": 0 +} +``` + +
+ +#### 主播准备中 + +json格式 + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | ------ | --------- | +| cmd | str | "PREPARING" | | +| round | num | 轮播状态:
1正在轮播
0未轮播 | | +| roomid | num | 直播间ID | 未知是真实ID还是短号 | | + +
+查看消息示例: + +```json +{ + "cmd": "PREPARING", + "round": 1, + "roomid": "8618057" +} +``` + +
+ +#### 直播开始 + + +#### 主播信息更新 + +json格式 + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | ------ | --------- | +| cmd | str | "ROOM_REAL_TIME_MESSAGE_UPDATE" | | +| data | obj | 房间ID、主播粉丝数等 | | + +data字段 + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | ------ | --------- | +| roomid | num | 直播间ID | 未知是真实ID还是短号 | | +| fans | num | 主播当前粉丝数 | | +| red_notice | num | 待调查 | | +| fans_club | num | 主播粉丝团人数 | | + +
+查看消息示例: + +```json +{ + "cmd": "ROOM_REAL_TIME_MESSAGE_UPDATE", + "data": { + "roomid": 8618057, + "fans": 136, + "red_notice": -1, + "fans_club": 8 + } +} +
+ +#### 直播间高能榜 + +json格式 + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | ------ | --------- | +| cmd | str | "ONLINE_RANK_V2" | 直播间高能用户数据刷新,内容则是"ONLINE_RANK_V2" | +| data | obj | 直播间高能用户数据 | | + +data字段 + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | ------ | --------- | +| list | array | 在直播间高能用户中的用户信息 | | +| rank_type | str | 待调查 | | + +list数组中的对象 + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | ------ | --------- | +| uid | num | 用户UID | | +| face | str | 用户头像URL | | +| score | str | 该用户的贡献值 | | +| uname | str | 用户名称 | | +| rank | num | 该用户在高能榜中的排名 | | +| guard_level | num | 待调查 | | + +
+查看消息示例: + +```json +{ + "cmd": "ONLINE_RANK_V2", + "data": { + "list": [ + { + "uid": 2082621455, + "face": "https://i2.hdslb.com/bfs/face/9de6050277fa13d830eb97e3453d89843de46a31.jpg", + "score": "20", + "uname": "8级萌新_小华", + "rank": 1, + "guard_level": 0 + }, + { + "uid": 50500335, + "face": "https://i0.hdslb.com/bfs/face/ca722209251478ef0ffb45c3adeafb9dab283c57.jpg", + "score": "20", + "uname": "属官一号", + "rank": 2, + "guard_level": 0 + }, + { + "uid": 29857468, + "face": "https://i1.hdslb.com/bfs/face/7b4ae2e7e950f2dfb2bd969859c813487ce3b64c.jpg", + "score": "12", + "uname": "露萌不要雨草", + "rank": 3, + "guard_level": 0 + } + ], + "rank_type": "gold-rank" + } +} +``` + +
+ + +#### 直播间高能用户数量 + +json格式 + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | ------ | --------- | +| cmd | str | "ONLINE_RANK_COUNT" | 直播间高能用户数,内容是"ONLINE_RANK_COUNT" | +| data | obj | 直播间高能用户数量 | | + +data字段 + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | ------ | --------- | +| count | num | 直播间高能用户数量 | | + + +
+查看消息示例: + +```json +{ + "cmd": "ONLINE_RANK_COUNT", + "data": { + "count": 4 + } +} +``` + +
+ +#### 用户到达直播间高能榜前三名的消息 + + +json格式 + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | ------ | --------- | +| cmd | str | "ONLINE_RANK_TOP3" | | +| data | obj | 消息内容、高能榜排名等 | | + +data字段 + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | ------ | --------- | +| dmscore | num | 待调查 | | +| list | array | 消息内容和高能榜排名 | | + +list数组中的对象 + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | ------ | --------- | +| msg | str | 消息内容 | | +| rank | num | 该用户的高能榜排名 | | + +
+查看消息示例: + +```json +{ + "cmd": "ONLINE_RANK_TOP3", + "data": { + "dmscore": 112, + "list": [ + { + "msg": "恭喜 <%你干嘛哈哈哎哟%> 成为高能用户", + "rank": 1 + } + ] + } +} +``` + +
+ +#### 直播间用户点赞 + +json格式 + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | ------ | --------- | +| cmd | str | "LIKE_INFO_V3_CLICK" | 若直播间被赞,则内容是"LIKE_INFO_V3_CLICK" | +| data | obj | 点赞的用户的信息 | | + +data字段 + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | ------ | --------- | +| show_area | num | 待调查 | | +| msg_type | num | 待调查 | | +| like_icon | str | 点赞图标的URL | | +| uid | num | 点赞的用户的UID | | +| like_text | str | 点赞文本 | | +| uname | str | 点赞的用户的名称 | | +| uname_color | str | 点赞的用户的名称颜色 | | +| identities | array | 待调查 | | +| fans_medal | obj | 点赞的用户的粉丝勋章信息 | | +| contribution_info | obj | 待调查 | | +| dmscore | num | 待调查 | | + +
+查看消息示例: + +```json +{ + "cmd": "LIKE_INFO_V3_CLICK", + "data": { + "show_area": 0, + "msg_type": 6, + "like_icon": "https://i0.hdslb.com/bfs/live/23678e3d90402bea6a65251b3e728044c21b1f0f.png", + "uid": 32174213, + "like_text": "为主播点赞了", + "uname": "MeiDngS", + "uname_color": "", + "identities": [ + 1 + ], + "fans_medal": { + "target_id": 0, + "medal_level": 0, + "medal_name": "", + "medal_color": 0, + "medal_color_start": 12632256, + "medal_color_end": 12632256, + "medal_color_border": 12632256, + "is_lighted": 0, + "guard_level": 0, + "special": "", + "icon_id": 0, + "anchor_roomid": 0, + "score": 0 + }, + "contribution_info": { + "grade": 0 + }, + "dmscore": 20 + } +} +``` + +
+ +#### 直播间点赞数 + +json格式 + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | ------ | --------- | +| cmd | str | "LIKE_INFO_V3_UPDATE" | 若直播间点赞数更新,则内容是"LIKE_INFO_V3_UPDATE" | +| data | obj | 直播间点赞数 | | + +data字段 + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | ------ | --------- | +| click_count | num | 直播间点赞数 | | + +
+查看消息示例: + +```json +{ + "cmd": "LIKE_INFO_V3_UPDATE", + "data": { + "click_count": 3227 + } +} +``` + +
+ +#### 直播间发红包弹幕 + +json格式 + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | ------ | --------- | +| cmd | str | "POPULARITY_RED_POCKET_START" | | +| data | obj | 送红包的老板的信息、里面的礼物信息 | | + +data字段 + +| 字段 | 类型 | 内容 | 备注 | +| ---------- | --- | ------ | --------- | +| lot_id | num | 发送的红包的ID | | +| sender_uid | num | 发送者的UID | | +| sender_name | str | 发送者的名称 | | +| sender_face | str | 发送者的头像的URL | | +| join_requirement | num | 待调查 | | +| danmu | str | 用户参与红包时自动发送的弹幕内容 | | +| current_time | num | 服务器发送数据包的Unix时间戳 | | +| start_time | num | 可以开始抢红包的Unix时间戳 | | +| end_time | num | 抢红包的结束时间Unix时间戳 | | +| last_time | num | 红包的持续时间(秒) | start_time - end_time | +| remove_time | num | 待调查 | | +| replace_time | num | 待调查 | | +| lot_status | num | 待调查 | | +| h5_url | str | 红包页面的URL | | +| user_status | num | 用户参与状态,但是不知道是哪个用户 | 1已参与
2未参与 | +| awards | array | 红包内包含的礼物的信息 | | +| lot_config_id | num | 待调查 | | +| total_price | num | 红包总价格 | | +| wait_num | num | 待调查 | | + +awards数组中的对象 + +| 字段 | 类型 | 内容 | 备注 | +| ---------- | --- | ------ | --------- | +| gift_id | num | 礼物ID | | +| gift_name | str | 礼物名称 | | +| gift_pic | str | 礼物图标URL | | +| num | num | 该礼物的数量 | | + + +
+查看消息示例: + +```json +{ + "cmd": "POPULARITY_RED_POCKET_START", + "data": { + "lot_id": 8445764, + "sender_uid": 38554435, + "sender_name": "我的0019", + "sender_face": "https://i1.hdslb.com/bfs/face/282c3055de94c74d69094fad91a56f9ed73a270a.jpg", + "join_requirement": 1, + "danmu": "点点红包,关注主播抽礼物~", + "current_time": 1673684632, + "start_time": 1673684631, + "end_time": 1673684811, + "last_time": 180, + "remove_time": 1673684826, + "replace_time": 1673684821, + "lot_status": 1, + "h5_url": "https://live.bilibili.com/p/html/live-app-red-envelope/popularity.html?is_live_half_webview=1&hybrid_half_ui=1,5,100p,100p,000000,0,50,0,0,1;2,5,100p,100p,000000,0,50,0,0,1;3,5,100p,100p,000000,0,50,0,0,1;4,5,100p,100p,000000,0,50,0,0,1;5,5,100p,100p,000000,0,50,0,0,1;6,5,100p,100p,000000,0,50,0,0,1;7,5,100p,100p,000000,0,50,0,0,1;8,5,100p,100p,000000,0,50,0,0,1\&hybrid_rotate_d=1&hybrid_biz=popularityRedPacket&lotteryId=8445764", + "user_status": 2, + "awards": [ + { + "gift_id": 31212, + "gift_name": "打call", + "gift_pic": "https://s1.hdslb.com/bfs/live/461be640f60788c1d159ec8d6c5d5cf1ef3d1830.png", + "num": 2 + }, + { + "gift_id": 31214, + "gift_name": "牛哇", + "gift_pic": "https://s1.hdslb.com/bfs/live/91ac8e35dd93a7196325f1e2052356e71d135afb.png", + "num": 3 + }, + { + "gift_id": 31216, + "gift_name": "i了i了", + "gift_pic": "https://s1.hdslb.com/bfs/live/1157a445487b39c0b7368d91b22290c60fa665b2.png", + "num": 3 + } + ], + "lot_config_id": 3, + "total_price": 1600, + "wait_num": 0 + } +} +``` + +
+ + +#### 直播间红包 + +json格式 + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | ------ | --------- | +| cmd | str | "POPULARITY_RED_POCKET_NEW" | 与“直播间发红包弹幕”不同
那个是发红包的弹幕信息
这个则和“送礼”的信息相似,但也有前者的一些字段 | +| data | obj | 发送者信息和红包(礼物)信息 | | + +data字段 + +| 字段 | 类型 | 内容 | 备注 | +| ---------- | --- | ------ | --------- | +| lot_id | num | 发送的红包的ID | | +| start_time | num | 开始抢红包的Unix时间戳 | | +| current_time | num | 服务器发送数据包的Unix时间戳 | | +| wait_num | num | 待调查 | | +| uname | str | 发送者的名称 | | +| uid | num | 发送者的UID | | +| action | str | 礼物操作 | | +| num | num | 礼物数量 | | +| gift_name | str | "红包" | | +| gift_id | num | 礼物ID | | +| price | num | 待调查 | | +| name_color | str | 发送者的名称的颜色 | | +| medal_info | obj | 发送者的粉丝勋章信息 | | + + +
+查看消息示例: + +```json +{ + "cmd": "POPULARITY_RED_POCKET_NEW", + "data": { + "lot_id": 8445764, + "start_time": 1673684631, + "current_time": 1673684631, + "wait_num": 0, + "uname": "我的0019", + "uid": 38554435, + "action": "送出", + "num": 1, + "gift_name": "红包", + "gift_id": 13000, + "price": 20, + "name_color": "", + "medal_info": { + "target_id": 400963649, + "special": "", + "icon_id": 0, + "anchor_uname": "", + "anchor_roomid": 0, + "medal_level": 21, + "medal_name": "憨憨酥", + "medal_color": 1725515, + "medal_color_start": 12632256, + "medal_color_end": 12632256, + "medal_color_border": 12632256, + "is_lighted": 0, + "guard_level": 0 + } + } +} +``` +
+ + +#### 直播间抢到红包的用户 + +json格式 + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | ------ | --------- | +| cmd | str | "POPULARITY_RED_POCKET_WINNER_LIST" | | +| data | obj | 抢到红包的用户信息、红包内的礼物信息 | | + +data字段 + +| 字段 | 类型 | 内容 | 备注 | +| ---------- | --- | ------ | --------- | +| lot_id | num | 该红包的ID | | +| total_num | num | 该红包内所有礼物的总数 | | +| winner_info | array | 抢到红包的用户的信息
抢到的礼物ID等 | | +| awards | obj | 该红包内的礼物信息 | | +| version | num | 待调查 | | + +winner_info数组中的数组 + +| 索引 | 类型 | 内容 | 备注 | +| ---- | ---- | ---- | ---- | +| 0 | num | 该抢到红包的用户的UID | | +| 1 | str | 该抢到红包的用户的名称 | | +| 2 | num | 待调查 | | +| 3 | num | 该用户抢到的礼物的ID | | + +awards字段 + +| 字段 | 类型 | 内容 | 备注 | +| ---------- | --- | ------ | --------- | +| 礼物ID | obj | 礼物信息 | | +| ... | obj | | | + +礼物ID 对象 + +| 字段 | 类型 | 内容 | 备注 | +| ---------- | --- | ------ | --------- | +| award_type | num | 待调查 | | +| award_name | str | 该礼物的名称 | | +| award_pic | str | 该礼物的图标URL | | +| award_big_pic | str | 该礼物的高分辨率图标URL | | +| award_price | num | 待调查 | | + +
+查看消息示例: + +```json +{ + "cmd": "POPULARITY_RED_POCKET_WINNER_LIST", + "data": { + "lot_id": 8445764, + "total_num": 8, + "winner_info": [ + [ + 38554435, + "我的0019", + 4581509, + 31212 + ], + [ + 516174930, + "云来海遛鸟大爷", + 4606389, + 31212 + ] + ], + "awards": { + "31212": { + "award_type": 1, + "award_name": "打call", + "award_pic": "https://s1.hdslb.com/bfs/live/461be640f60788c1d159ec8d6c5d5cf1ef3d1830.png", + "award_big_pic": "https://i0.hdslb.com/bfs/live/9e6521c57f24c7149c054d265818d4b82059f2ef.png", + "award_price": 500 + }, + "31214": { + "award_type": 1, + "award_name": "牛哇", + "award_pic": "https://s1.hdslb.com/bfs/live/91ac8e35dd93a7196325f1e2052356e71d135afb.png", + "award_big_pic": "https://i0.hdslb.com/bfs/live/3b74c117b4f265edcea261bc5608a58d3a7c300a.png", + "award_price": 100 + }, + "31216": { + "award_type": 1, + "award_name": "i了i了", + "award_pic": "https://s1.hdslb.com/bfs/live/1157a445487b39c0b7368d91b22290c60fa665b2.png", + "award_big_pic": "https://i0.hdslb.com/bfs/live/cfb9c3d9bdd2c25c95b7d859ebaa590ca9362adb.png", + "award_price": 100 + } + }, + "version": 1 + } +} +``` +
+ + + +#### 直播间看过人数 + +该数据包的正文中,前19字节的信息未知。 + +前19字节信息示例: +``` +00000001: 8b38 8000 0000 7200 1000 0000 0000 0500 .8....r......... +00000002: 0000 00 ... +``` + +json格式 + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | ------ | --------- | +| cmd | str | "WATCHED_CHANGE" | 若直播间看过人数更新,则内容是"WATCHED_CHANGE" | +| data | obj | 直播间看过人数 | | + +data字段 + +| 字段 | 类型 | 内容 | 备注 | +| ---------- | --- | ------ | --------- | +| num | num | | | +| text_small | str | | | +| text_large | str | | | + +
+查看消息示例: + +```json +{ + "cmd": "WATCHED_CHANGE", + "data": { + "num": 17903, + "text_small": "1.7万", + "text_large": "1.7万人看过" + } +} +``` + +
+ +#### 用户进场特效 + +json格式 + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | ------ | --------- | +| cmd | str | "ENTRY_EFFECT" | 有进场特效的用户进入直播间,则内容是"ENTRY_EFFECT" | +| data | obj | 进场用户、进场特效信息 | | + +data字段 + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | ------ | --------- | +| id | num | 待调查 | | +| uid | num | 进场用户的UID | | +| target_id | num | 主播的UID? | | +| mock_effect | num | 待调查 | | +| face | str | 进场用户的头像URL | | +| privilege_type | num | 待调查 | | +| copy_writing | str | 进场欢迎文本 | | +| copy_color | str | 进场欢迎文本的十六进制颜色值 | | +| highlight_color | str | 待调查 | | +| priority | num | 待调查 | | +| basemap_url | str | 进场特效背景图片URL | APP端使用该URL | +| show_avatar | num | 是否显示用户头像 | 1显示
0不显示 | +| web_basemap_url | str | 进场特效背景图片URL | 网页端使用该URL | +| web_effective_time | num | 进场特效生存时间 | 网页端 | +| web_effect_close | num | 待调查 | | +| web_close_time | num | 待调查 | | +| business | num | 待调查 | | +| copy_writing_v2 | str | 进场欢迎文本的复制? | | +| icon_list | array | 待调查 | | +| max_delay_time | num | 待调查 | | +| trigger_time | num | 触发的Unix时间戳,以及后面9位未知数字 | | +| identities | num | 待调查 | | +| effect_silent_time | num | 待调查 | | +| effective_time_new | num | 待调查 | | +| web_dynamic_url_webp | str | 待调查 | | +| web_dynamic_url_apng | str | 待调查 | | +| mobile_dynamic_url_webp | str | 待调查 | | + +
+查看消息示例: + +```json +{ + "cmd": "ENTRY_EFFECT", + "data": { + "id": 4, + "uid": 489893482, + "target_id": 27717502, + "mock_effect": 0, + "face": "https://i0.hdslb.com/bfs/face/member/noface.jpg", + "privilege_type": 3, + "copy_writing": "欢迎舰长 <%天使雨晰%> 进入直播间", + "copy_color": "#ffffff", + "highlight_color": "#E6FF00", + "priority": 1, + "basemap_url": "https://i0.hdslb.com/bfs/live/mlive/11a6e8eb061c3e715d0a6a2ac0ddea2faa15c15e.png", + "show_avatar": 1, + "effective_time": 2, + "web_basemap_url": "https://i0.hdslb.com/bfs/live/mlive/11a6e8eb061c3e715d0a6a2ac0ddea2faa15c15e.png", + "web_effective_time": 2, + "web_effect_close": 0, + "web_close_time": 0, + "business": 1, + "copy_writing_v2": "欢迎舰长 <%天使雨晰%> 进入直播间", + "icon_list": [], + "max_delay_time": 7, + "trigger_time": 1673625604373633300, + "identities": 6, + "effect_silent_time": 0, + "effective_time_new": 0, + "web_dynamic_url_webp": "", + "web_dynamic_url_apng": "", + "mobile_dynamic_url_webp": "" + } +} +``` + +
+ + +#### 直播间在所属分区的排名改变 + +json格式 + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | ------ | --------- | +| cmd | str | "AREA_RANK_CHANGED" | 若直播间在所属分区的排名改变,则内容是"AREA_RANK_CHANGED" | +| data | obj | 直播间在所属分区的排名信息 | | + +data字段 + +| 字段 | 类型 | 内容 | 备注 | +| ---------- | --- | ------ | --------- | +| conf_id | num | 待调查 | | +| rank_name | str | 排行榜名称 | | +| uid | num | 主播的UID | | +| rank | num | 直播间在分区的排名 | 若没有上榜则为0 | +| icon_url_blue | str | 蓝色排名图标URL | | +| icon_url_pink | str | 粉色排名图标URL | | +| icon_url_grey | str | 灰色排名图标URL | | +| action_type | num | 待调查 | | +| timestamp | num | 触发时的Unix时间戳 | | +| msg_id | str | 待调查 | | +| jump_url_link | str | 排行榜跳转链接 | APP端页面 | +| jump_url_pc | str | 排行榜跳转链接 | APP端页面 | +| jump_url_pink | str | 排行榜跳转链接 | APP端页面 | +| jump_url_web | str | 排行榜跳转链接 | APP端页面 | + +
+查看消息示例: + +```json +{ + "cmd": "AREA_RANK_CHANGED", + "data": { + "conf_id": 23, + "rank_name": "手游航海", + "uid": 27717502, + "rank": 4, + "icon_url_blue": "https://i0.hdslb.com/bfs/live/18e2990a546d33368200f9058f3d9dbc4038eb5c.png", + "icon_url_pink": "https://i0.hdslb.com/bfs/live/a6c490c36e88c7b191a04883a5ec15aed187a8f7.png", + "icon_url_grey": "https://i0.hdslb.com/bfs/live/cb7444b1faf1d785df6265bfdc1fcfc993419b76.png", + "action_type": 1, + "timestamp": 1673625610, + "msg_id": "e93c7860-b901-41ca-aad8-fe538a5fac9c", + "jump_url_link": "https://live.bilibili.com/p/html/live-app-hotrank/index.html?clientType=3&ruid=27717502&conf_id=23&is_live_half_webview=1&hybrid_rotate_d=1&is_cling_player=1&hybrid_half_ui=1,3,100p,70p,f4eefa,0,30,100,0,0;2,2,375,100p,f4eefa,0,30,100,0,0;3,3,100p,70p,f4eefa,0,30,100,0,0;4,2,375,100p,f4eefa,0,30,100,0,0;5,3,100p,70p,f4eefa,0,30,100,0,0;6,3,100p,70p,f4eefa,0,30,100,0,0;7,3,100p,70p,f4eefa,0,30,100,0,0;8,3,100p,70p,f4eefa,0,30,100,0,0#/area-rank", + "jump_url_pc": "https://live.bilibili.com/p/html/live-app-hotrank/index.html?clientType=4&ruid=27717502&conf_id=23&pc_ui=338,465,f4eefa,0#/area-rank", + "jump_url_pink": "https://live.bilibili.com/p/html/live-app-hotrank/index.html?clientType=1&ruid=27717502&conf_id=23&is_live_half_webview=1&hybrid_rotate_d=1&is_cling_player=1&hybrid_half_ui=1,3,100p,70p,f4eefa,0,30,100,0,0;2,2,375,100p,f4eefa,0,30,100,0,0;3,3,100p,70p,f4eefa,0,30,100,0,0;4,2,375,100p,f4eefa,0,30,100,0,0;5,3,100p,70p,f4eefa,0,30,100,0,0;6,3,100p,70p,f4eefa,0,30,100,0,0;7,3,100p,70p,f4eefa,0,30,100,0,0;8,3,100p,70p,f4eefa,0,30,100,0,0#/area-rank", + "jump_url_web": "https://live.bilibili.com/p/html/live-app-hotrank/index.html?clientType=2&ruid=27717502&conf_id=23#/area-rank" + } +} +``` + +
+ + +#### 直播间在所属分区排名提升的祝福 + +会分多个普通包发送 + +json格式 + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | ------ | --------- | +| cmd | str | "COMMON_NOTICE_DANMAKU" | 例如提示“恭喜主播 时雨ioo 成为手游航海当前第5名”,
,则内容是"COMMON_NOTICE_DANMAKU" | +| data | obj | 直播间在所属分区排名提升的祝福的信息 | | + +data字段 + +| 字段 | 类型 | 内容 | 备注 | +| ---------- | --- | ------ | --------- | +| biz_id | num | 待调查 | | +| content_segments | array | 文本分段 | | +| danmaku_style | obj | 文本样式信息 | | +| danmaku_url | str | 待调查 | | +| dmscore | num | 待调查 | | +| terminals | array | 待调查 | | + +content_segments数组中的对象 + +| 字段 | 类型 | 内容 | 备注 | +| ---------- | --- | ------ | --------- | +| font_color | str | text字段的十六进制颜色值 | | +| font_color_dark | str | text字段的十六进制颜色值 | APP端设置为深色模式时使用 | +| text | str | 祝贺文本 | | +| type | num | 待调查 | | + +danmaku_style字段 + +| 字段 | 类型 | 内容 | 备注 | +| ---------- | --- | ------ | --------- | +| background_color | str | 文本背景颜色的十六进制颜色值 | | +| background_color_dark | str | 文本背景颜色的十六进制颜色值 | APP端设置为深色模式时使用 | + +
+查看消息示例: + +第一条数据: +```json +{ + "cmd": "COMMON_NOTICE_DANMAKU", + "data": { + "biz_id": 0, + "content_segments": [ + { + "font_color": "#CCCCCC", + "font_color_dark": "#CCCCCC", + "text": "恭喜主播 时雨ioo ", + "type": 1 + }, + { + "font_color": "#F494AF", + "font_color_dark": "#F494AF", + "text": "成为手游航海当前第5名", + "type": 1 + } + ], + "danmaku_style": { + "background_color": null, + "background_color_dark": null + }, + "danmaku_uri": "", + "dmscore": 144, + "terminals": [ + 1, + 2, + 3 + ] + } +} +``` +第二条数据: +```json +{ + "cmd": "COMMON_NOTICE_DANMAKU", + "data": { + "biz_id": 0, + "content_segments": [ + { + "font_color": "#99A5AE", + "font_color_dark": "#99A5AE", + "text": "恭喜主播 时雨ioo 成为手游航海当前第5名", + "type": 1 + } + ], + "danmaku_style": { + "background_color": null, + "background_color_dark": null + }, + "danmaku_uri": "", + "dmscore": 144, + "terminals": [ + 5 + ] + } +} +``` +第三条数据: +```json +{ + "cmd": "COMMON_NOTICE_DANMAKU", + "data": { + "biz_id": 0, + "content_segments": [ + { + "font_color": "#998EFF", + "font_color_dark": "#998EFF", + "text": "恭喜主播 时雨ioo 成为手游航海第5名", + "type": 1 + } + ], + "danmaku_style": { + "background_color": null, + "background_color_dark": null + }, + "danmaku_uri": "", + "dmscore": 144, + "terminals": [ + 4 + ] + } +} +``` + +
+ + +#### 直播间信息更改 + +json格式 + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | ------ | --------- | +| cmd | str | "ROOM_CHANGE" | 例如直播间标题更改、直播间分区更改 | +| data | obj | | | + +data字段 + +| 字段 | 类型 | 内容 | 备注 | +| ---------- | --- | ------ | --------- | +| title | str | 直播间标题 | | +| area_id | num | 当前直播间所属分区的ID | | +| parent_area_id | num | 待调查 | | +| area_name | str | 当前直播间所属分区的名称 | | +| parent_area_name | str | 待调查 | | +| live_key | str | 待调查 | | +| sub_session_key | str | 待调查 | | + +
+查看消息示例: + +```json +{ + "cmd": "ROOM_CHANGE", + "data": { + "title": "开始白给CS", + "area_id": 371, + "parent_area_id": 9, + "area_name": "虚拟主播", + "parent_area_name": "虚拟主播", + "live_key": "320830629635915849", + "sub_session_key": "320830629635915849sub_time:1673690546" + } +} +``` +
+ + +#### 醒目留言按钮 + +json格式 + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | ------ | --------- | +| cmd | str | "SUPER_CHAT_ENTRANCE" | 不知道有什么意义 | +| data | obj | 醒目留言按钮的信息 | | +| roomid | num | 直播间ID | 未知是短号还是真实ID | + +data字段 + +| 字段 | 类型 | 内容 | 备注 | +| ---------- | --- | ------ | --------- | +| status | num | 待调查 | | +| jump_url | str | 按下“醒目留言”按钮后弹出小窗的页面URL | | +| icon | str | “醒目留言”按钮图标的URL | | +| broadcast_type | num | 待调查 | | + +
+查看消息示例: + +```json +{ + "cmd": "SUPER_CHAT_ENTRANCE", + "data": { + "status": 1, + "jump_url": "https://live.bilibili.com/p/html/live-app-superchat2/index.html?is_live_half_webview=1&hybrid_half_ui=1,3,100p,70p,ffffff,0,30,100;2,2,375,100p,ffffff,0,30,100;3,3,100p,70p,ffffff,0,30,100;4,2,375,100p,ffffff,0,30,100;5,3,100p,60p,ffffff,0,30,100;6,3,100p,60p,ffffff,0,30,100;7,3,100p,60p,ffffff,0,30,100", + "icon": "https://i0.hdslb.com/bfs/live/0a9ebd72c76e9cbede9547386dd453475d4af6fe.png", + "broadcast_type": 1 + }, + "roomid": "8618057" +} +``` +
+ +#### 顶部横幅 + +网页端在直播间标题下面的横幅 + +例如“限时任务”等 + +json格式 + + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | ------ | --------- | +| cmd | str | "WIDGET_BANNER" | | +| data | obj | 横幅信息 | | + +data字段 + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | ------ | --------- | +| timestamp | num | 服务器发送数据包时的Unix时间戳 | | +| widget_list | obj | 横幅信息 | 待调查 | + +widget_list字段 + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | ------ | --------- | +| 横幅ID | obj | 横幅信息 | | +| ... | obj | | | + +横幅ID 字段 + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | ------ | --------- | +| id | num | 横幅ID | | +| title | str | 待调查 | | +| cover | str | 待调查 | | +| web_cover | str | 待调查 | | +| tip_text | str | 待调查 | | +| tip_text_color | str | 待调查 | | +| tip_bottom_color | str | 待调查 | | +| jump_url | str | 点击横幅后出现小窗的页面的URL | | +| url | str | 待调查 | | +| stay_time | num | 待调查 | | +| site | num | 待调查 | | +| platform_in | array | 待调查 | | +| type | num | 待调查 | | +| band_id | num | 待调查 | | +| sub_key | str | 待调查 | | +| sub_data | str | 横幅数据 | | +| is_add | bool | 待调查 | | + +
+查看消息示例: + +```json +{ + "cmd": "WIDGET_BANNER", + "data": { + "timestamp": 1673684868, + "widget_list": { + "308": { + "id": 308, + "title": "一月限时任务", + "cover": "", + "web_cover": "", + "tip_text": "限时任务", + "tip_text_color": "", + "tip_bottom_color": "", + "jump_url": "https://live.bilibili.com/activity/live-activity-battle/index.html?app_name=time_limited_task_jan_2023&is_live_half_webview=1&hybrid_rotate_d=1&hybrid_half_ui=1,3,100p,70p,0,0,0,0,12,0;2,2,375,100p,0,0,0,0,12,0;3,3,100p,70p,0,0,0,0,12,0;4,2,375,100p,0,0,0,0,12,0;5,3,100p,70p,0,0,0,0,12,0;6,3,100p,70p,0,0,0,0,12,0;7,3,100p,70p,0,0,0,0,12,0;8,3,100p,70p,0,0,0,0,12,0&room_id=8618057&uid=29857468#/", + "url": "", + "stay_time": 5, + "site": 1, + "platform_in": [ + "live", + "blink", + "live_link", + "web", + "pc_link" + ], + "type": 1, + "band_id": 101558, + "sub_key": "", + "sub_data": "%7B%22task_status%22%3A0%2C%22current_val%22%3A10%2C%22target_val%22%3A1200%2C%22timeout%22%3A1673687024%2C%22reward_price%22%3A8%2C%22reward_type%22%3A1%7D", + "is_add": true + } + } + } +} +``` + +
+ +#### 下播的直播间 + +json格式 + + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | ------ | --------- | +| cmd | str | "STOP_LIVE_ROOM_LIST" | | +| data | obj | 下播的直播间ID列表 | | + +data字段 + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | ------ | --------- | +| room_id_list | array | 下播的直播间ID | | + +room_id_list数组中的数字 + +| 类型 | 内容 | 备注 | +| --- | ---- | ---- | +| num | 下播的直播间ID | 未知是真实ID还是短号 | +| num | ... | | + + +
+查看消息示例: + +```json +{ + "cmd": "STOP_LIVE_ROOM_LIST", + "data": { + "room_id_list": [ + 22629205, + 23130005, + 25963791, + 5532805, + 668631, + 21409011, + 21559541, + 23499952, + 26700301, + 26785971, + 11673798, + 13766041, + 22980849, + 23719726, + 23865141, + 24984476, + 6134501, + 13782552, + 22276717, + 24107587, + 25023546, + 25404621, + 25516925, + 26527626, + 3392341, + 34027, + 502153, + 6479194, + 7636554, + 12237172, + 22821330, + 24484883, + 25641623, + 26230536, + 26792222, + 3642143, + 21774100, + 22797418, + 23698420, + 24020165, + 23969235, + 24207417, + 24541492, + 24900566, + 25385044, + 4484938, + 11113452, + 21442530, + 22046176, + 22184897, + 22386835, + 23499007, + 26129631, + 26866037, + 5971876, + 22779750, + 24132482, + 25789722, + 26251362, + 26822052, + 26835655, + 5122088, + 6668191, + 12439052, + 23690850, + 24458365, + 26189089, + 26676322, + 26872742, + 4917898, + 826723, + 22886872, + 24752347, + 25108137, + 5796786, + 6176498, + 6208022, + 7578115, + 14218725, + 22659435, + 23774701, + 24804876, + 25081572, + 25275744, + 26430916, + 730392, + 9505076, + 25467274, + 3015372, + 5764087, + 9407015, + 21356836, + 24302940, + 25469360, + 25666252, + 26564899, + 26574306, + 9391864, + 136707, + 15163029, + 22001560, + 22642183, + 24168773, + 24197349, + 26750190, + 59670, + 6545138, + 7538431, + 12568128, + 22865116, + 26566675, + 26658222, + 26778289, + 26856746, + 3386215, + 1270737, + 1856866, + 22371951, + 22953580, + 23026533, + 9316759, + 13628231, + 25166176, + 6736476, + 7745491, + 893989, + 25349228, + 25684996, + 26835833, + 763132, + 1282353, + 14333573, + 26677056, + 5553188, + 1549629, + 22807502, + 25633167, + 26062956, + 26558451, + 9312947, + 14366742, + 1864809, + 25581444, + 26656406, + 11454847, + 13507879, + 187331, + 22626880, + 23187177, + 23481929, + 24042533, + 24501754, + 26776408, + 2315619, + 24320832, + 24708829, + 26236176, + 26575516, + 3105045, + 6164089, + 21145740, + 21258252, + 23211964, + 23610573, + 26873451, + 10452273, + 21300836, + 26076163, + 26510266, + 933508, + 21751571, + 24043374, + 26045578, + 26784723, + 26811618, + 22836140, + 23558501, + 24429614, + 24476599, + 2681976, + 26867816, + 7802886, + 13617926, + 2049112, + 26233820, + 6868338, + 23458654, + 24370731, + 26126954, + 5070119, + 24416075 + ] + } +} +``` + +
+ +#### 未知消息 + +`PLAY_TOGETHER` +
+查看消息示例: + +示例1: +```json +{ + "cmd": "PLAY_TOGETHER", + "data": { + "ruid": 29857468, + "roomid": 8618057, + "action": "switch_off", + "uid": 0, + "timestamp": 1673690546, + "message": "", + "message_type": 0, + "jump_url": "", + "web_url": "", + "apply_number": 0, + "refresh_tool": false, + "cur_fleet_num": 0, + "max_fleet_num": 0 + } +} +``` +示例2 +```json +{ + "cmd": "PLAY_TOGETHER", + "data": { + "ruid": 29857468, + "roomid": 8618057, + "action": "switch_off", + "uid": 0, + "timestamp": 1673690549, + "message": "系统提示:主播已切换分区", + "message_type": 3, + "jump_url": "", + "web_url": "", + "apply_number": 0, + "refresh_tool": true, + "cur_fleet_num": 0, + "max_fleet_num": 0 + } +} +``` +
+ + diff --git a/docs/live/redpocket.md b/docs/live/redpocket.md new file mode 100644 index 0000000000..15a8430ea1 --- /dev/null +++ b/docs/live/redpocket.md @@ -0,0 +1,130 @@ +# 直播间人气红包 + +- [获取指定直播间的红包信息](#获取指定直播间的红包信息) + +--- + +## 获取指定直播间的红包信息 + +> https://api.live.bilibili.com/xlive/lottery-interface/v1/lottery/getLotteryInfoWeb + +*请求方式:GET* + +认证方式(可选):Cookie(SESSDATA) + +如果不携带Cookie信息,user_status将始终返回2(未参与)。 + +如果所查询的直播间无红包,popularity_red_pocket为null。 + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------- | ---- | ---------------- | ------ | ---- | +| roomid | str | 直播间id | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ------ | ---------- | ------------- | +| code | num | 返回值 | 0:成功 | +| message | str | 错误信息 | 0:成功 | +| ttl | num | TimeToLive | 正常为1 | +| data | object | 返回数据 | | + +`data`对象: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | ----------- | ---- | +| popularity_red_pocket | array | 人气红包信息 | | +| …… | ...... | …… | …… | + +`popularity_red_pocket`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | ---------- | ---- | +| lot_id | num | 红包id | | +| sender_uid | num | 红包发送者uid | | +| sender_name | str | 红包发送者昵称 | | +| sender_face | str | 红包发送者头像 | | +| join_requirement | num | 参与条件? | | +| danmu | str | 参与红包时自动发送的弹幕内容 | | +| awards | array | 红包内容 | | +| lot_status | num | 未知 | | +| h5_url | str | 红包界面 | | +| user_status | num | 用户是否已参与 | 1:已参与 2:未参与 | +| lot_config_id | num | 未知 | | +| total_price | num | 红包总计价格 | | + +**示例:** + +查询房间号为24146996的直播间红包信息: + +```shell +curl -G 'https://api.live.bilibili.com/xlive/lottery-interface/v1/lottery/getLotteryInfoWeb?roomid=24146996' +``` + +
+查看响应示例: + +```json + +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "pk": null, + "guard": null, + "gift": null, + "storm": null, + "silver": null, + "activity_box": { + "ACTIVITY_ID": 0, + "ACTIVITY_PIC": "" + }, + "danmu": null, + "anchor": null, + "red_pocket": null, + "popularity_red_pocket": [{ + "lot_id": 622474, + "sender_uid": 1651908873, + "sender_name": "九泽糖糖の小蘑菇", + "sender_face": "http://i0.hdslb.com/bfs/face/c932c5c8b1607fe2e1da22b9780af19662dac939.jpg", + "join_requirement": 1, + "danmu": "老板大气!点点红包抽礼物!", + "awards": [{ + "gift_id": 31212, + "num": 2, + "gift_name": "打call", + "gift_pic": "https://s1.hdslb.com/bfs/live/f75291a0e267425c41e1ce31b5ffd6bfedc6f0b6.png" + }, { + "gift_id": 31214, + "num": 3, + "gift_name": "牛哇", + "gift_pic": "https://s1.hdslb.com/bfs/live/23475a7a6170e0d94ba52720e23060dc7604b735.png" + }, { + "gift_id": 31216, + "num": 3, + "gift_name": "i了i了", + "gift_pic": "https://s1.hdslb.com/bfs/live/1157a445487b39c0b7368d91b22290c60fa665b2.png" + }], + "start_time": 1645358104, + "end_time": 1645358284, + "last_time": 180, + "remove_time": 1645358299, + "replace_time": 1645358294, + "current_time": 1645358231, + "lot_status": 1, + "h5_url": "https://live.bilibili.com/p/html/live-app-red-envelope/popularity.html?is_live_half_webview=1\u0026hybrid_half_ui=1,5,100p,100p,000000,0,50,0,0,1;2,5,100p,100p,000000,0,50,0,0,1;3,5,100p,100p,000000,0,50,0,0,1;4,5,100p,100p,000000,0,50,0,0,1;5,5,100p,100p,000000,0,50,0,0,1;6,5,100p,100p,000000,0,50,0,0,1;7,5,100p,100p,000000,0,50,0,0,1;8,5,100p,100p,000000,0,50,0,0,1\u0026hybrid_rotate_d=1\u0026hybrid_biz=popularityRedPacket\u0026lotteryId=622474", + "user_status": 1, + "lot_config_id": 3, + "total_price": 1600 + }], + "activity_box_info": null + } +} +``` + +
diff --git a/docs/live/user.md b/docs/live/user.md new file mode 100644 index 0000000000..6f3fa5b210 --- /dev/null +++ b/docs/live/user.md @@ -0,0 +1,363 @@ +# 直播间用户实用 API + +- [直播间用户实用 API](#直播间用户实用-api) + - [获取用户持有的粉丝勋章信息](#获取用户持有的粉丝勋章信息) + - [佩戴勋章](#佩戴勋章) + - [直播签到](#直播签到) + - [本月直播签到信息](#本月直播签到信息) + - [上月直播签到信息](#上月直播签到信息) + +--- + +## 获取用户持有的粉丝勋章信息 + +> ~~https://api.live.bilibili.com/fans_medal/v5/live_fans_medal/iApiMedal~~ +> +> https://api.live.bilibili.com/xlive/app-ucenter/v1/user/GetMyMedals + +_请求方式:GET_ + +认证方式:Cookie(SESSDATA)或 APP + +**url 参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| --------- | ---- | ------------ | ------ | ------------------------------------------------- | +| page_size | num | 每页的数量 | 必要 | 最大为 10,超出 `1002002:参数异常` | +| page | num | 返回结果页数 | 必要 | 两个参数不填返回空,只 page 不填或错误则 500 异常 | + +**json 回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------- | +| code | num | 返回值 | 0:成功
-1002002:参数异常
-500:服务器异常 | +| message | str | 错误信息 | 默认为 "0" | +| ttl | str | 1 | | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| --------- | ----- | ---------------- | ---- | +| count | num | 勋章数量 | | +| items | array | 粉丝勋章信息本体 | | +| page_info | obj | 页码信息 | | + +`items 数组内`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------------------ | ------ | -------------------- | -------------------------------------- | +| can_delete | bool | 可否删除 | | +| day_limit | num | 日经验上限(原力值) | eg: 1500 | +| guard_level | num | | | +| guard_medal_title | str | 加成状态 | | +| intimacy | num | 当前已得亲密度 | | +| is_lighted | num | 是否点亮 | 0:未点亮
1:点亮 | +| level | num | 勋章等级 | | +| medal_name | str | 勋章名 | | +| medal_color_border | num | 勋章边框颜色信息 | 颜色数值为 10 进制的 16 进制值(下同) | +| medal_color_start | num | 勋章起始颜色 | 从右往左渐变(20 级+勋章) | +| medal_color_end | num | 勋章结束颜色 | 从右往左渐变(20 级+勋章) | +| medal_id | num | 粉丝勋章 id | | +| next_intimacy | num | 升级所需经验 | | +| today_feed | num | 本日亲密度 | | +| roomid | num | 直播间房间号 | | +| status | num | | | +| target_id | number | up 主 mid | | +| target_name | str | up 主用户名 | | +| uname | str | up 主用户名 | | + +`page_info`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---------- | ---- | -------------- | ---- | +| total_page | num | 页码总长度 | | +| cur_page | num | 当前返回的页码 | | + +**示例:** + +```shell +curl https://api.live.bilibili.com/xlive/app-ucenter/v1/user/GetMyMedals?page=1&page_size=10 \ +-b "SESSDATA=xxx" +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "items": [ + { + "can_deleted": true, + "day_limit": 1500, + "guard_level": 0, + "guard_medal_title": "未开启加成", + "intimacy": 9617, + "is_lighted": 0, + "level": 11, + "medal_name": "锦依卫", + "medal_color_border": 12632256, + "medal_color_end": 12632256, + "medal_color_start": 12632256, + "medal_id": 29245, + "next_intimacy": 10000, + "today_feed": 0, + "roomid": 1546736, + "status": 0, + "target_id": 36081646, + "target_name": "洛天依", + "uname": "洛天依" + } + ], + "page_info": { + "cur_page": 1, + "total_page": 1 + }, + "count": 1 + } +} +``` + +
+ +## 佩戴勋章 + +> https://api.live.bilibili.com/xlive/web-room/v1/fansMedal/wear + +_请求方式:POST_ + +**表单参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ---------- | ---- | ----------------------- | ------ | ---- | +| medal_id | num | 勋章 id | 必要 | | +| csrf | num | cookie 中 bili_jct 字段 | 必要 | | +| csrf_token | num | 同上 | 必要 | | + +**json 回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | -------------- | +| code | num | 返回值 | 0:成功 | +| ttl | str | 1 | | +| message | str | 错误信息 | 默认为佩戴成功 | +| data | obj | 信息本体 | 默认为无 | + +**示例:** + +佩戴勋章 id 为 1 的勋章 + +```JavaScript +var madelForm = new FormData(); +madelForm.append("medal_id", 1); +madelForm.append("csrf", bili_jct); +madelForm.append("csrf_token", bili_jct); +$.ajax({ + url: "https://api.live.bilibili.com/xlive/web-room/v1/fansMedal/wear", + type: "POST", + data: madelForm, + dataType: "JSON", + processData: false, + contentType: false, + cache: false, + xhrFields: { + withCredentials: true + }, + success: function (){ + + } +}) +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "佩戴成功", + "ttl": 1, + "data": {} +} +``` + +
+ +## 直播签到 + +> https://api.live.bilibili.com/xlive/web-ucenter/v1/sign/DoSign + +_请求方式:GET_ + +认证方式:Cookie(SESSDATA)或 APP + +**json 回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ---------------------- | +| code | num | 返回值 | 0:成功
1:参数错误 | +| ttl | str | 1 | | +| message | str | 错误信息 | 默认为当日签到奖励内容 | +| data | obj | 信息本体 | 默认为空 | + +## 本月直播签到信息 + +> https://api.live.bilibili.com/xlive/web-ucenter/v1/sign/WebGetSignInfo + +_请求方式:GET_ + +认证方式:Cookie(SESSDATA)或 APP + +**json 回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ---------------------- | +| code | num | 返回值 | 0:成功 | +| ttl | str | 1 | | +| message | str | 错误信息 | 默认为0 | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----------------- | ----- | ---------------------------- | ---------------------- | +| text | str | 今日签到奖励信息 | 默认为空 | +| specialText | str | 连续签到奖励信息 | 默认为空 | +| status | num | 签到状态 | 0:未签到
1:已签到 | +| allDays | num | 当月天数 | | +| curMonth | num | 当前月 | | +| curYear | num | 当前年 | | +| curDay | num | 当前日 | | +| curData | str | 当前日期(格式化) | eg: 2023-2-19 | +| hadSignDays | num | 当月已签到天数 | 默认为0 | +| newTask | num | 作用未知 | 默认为0 | +| signDaysList | array | 当月已签到日列表 | 默认为空 | +| signBonusDaysList | array | 当月已签到且有特殊奖励日列表 | 默认为空 | + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "text": "3000点用户经验,2根辣条", + "specialText": "再签到7天可以获得50根辣条", + "status": 1, + "allDays": 28, + "curMonth": 2, + "curYear": 2023, + "curDay": 19, + "curDate": "2023-2-19", + "hadSignDays": 13, + "newTask": 0, + "signDaysList": [ + 2, + 3, + 4, + 5, + 6, + 7, + 11, + 13, + 14, + 15, + 17, + 18, + 19 + ], + "signBonusDaysList": [ + 6 + ] + } +} +``` + +
+ +## 上月直播签到信息 + +> https://api.live.bilibili.com/sign/getLastMonthSignDays + +_请求方式:GET_ + +认证方式:Cookie(SESSDATA)或 APP + +**json 回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ---------------------- | +| code | num | 返回值 | 0:成功 | +| ttl | str | 1 | | +| message | str | 错误信息 | 默认为0 | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----------------- | ----- | ---------------------------- | -------- | +| days | num | 上月天数 | | +| month | num | 上月月份值 | | +| hadSignDays | num | 上月已签到天数 | 默认为0 | +| signDaysList | array | 上月已签到日列表 | 默认为空 | +| signBonusDaysList | array | 上月已签到且有特殊奖励日列表 | 默认为空 | + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "month": 1, + "days": 31, + "hadSignDays": 20, + "signDaysList": [ + 1, + 2, + 3, + 6, + 7, + 8, + 10, + 12, + 13, + 14, + 15, + 18, + 20, + 23, + 24, + 25, + 26, + 27, + 30, + 31 + ], + "signBonusDaysList": [ + 7, + 31 + ] + } +} +``` + +
diff --git a/docs/login/exit.md b/docs/login/exit.md new file mode 100644 index 0000000000..1fed409f10 --- /dev/null +++ b/docs/login/exit.md @@ -0,0 +1,72 @@ +# 退出账号登录 + +- [退出登录(web 端)](#退出登录web端) + +--- + +## 退出登录(web端) + +> https://passport.bilibili.com/login/exit/v2 + +_请求方式:POST_ + +认证方式:Cookie + +验证登录成功后会使用`set-cookie`字段清空以下 cookie 项: + +`DedeUserID` `DedeUserID__ckMd5` `SESSDATA` `bili_jct` + +并在服务器注销该登录 Token (SESSDATA),该 Token 即失效 + +请求必须包含以下cookie项:`DedeUserID` `bili_jct` `SESSDATA` + +**正文参数 (application/x-www-form-urlencoded):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| -------- | ---- | ---------------------------------------- | ------ | --------------------------------- | +| biliCSRF | str | CSRF Token (位于 cookie 中的 `bili_jct`) | 必要 | | +| gourl | str | 成功后跳转到的页面 | 非必要 | 默认为`javascript:history.go(-1)` | + +**json 回复:** + +如果 cookie 已经失效则输出登录页 html + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ----------- | -------- | --------------------------------- | +| code | num | 返回值 | 0:成功
2202:csrf 请求非法 | +| status | bool | 返回值 | `true`:成功 | +| ts | num | 时间戳 | | +| message | str | 错误信息 | 成功时不存在 | +| data | 有效时:obj | 信息本体 | 失败时不存在 | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----------- | ---- | ---------- | ---- | +| redirectUrl | str | 重定向 url | | + +**示例:** + +```shell +curl -L -X POST 'https://passport.bilibili.com/login/exit/v2' \ +-H 'Cookie: DedeUserID=xxx; bili_jct=xxx; SESSDATA=xxx' \ +-H 'Content-Type: application/x-www-form-urlencoded' \ +--data-urlencode 'biliCSRF=xxxxxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "status": true, + "ts": 1663034005, + "data": { + "redirectUrl": "https://passport.biligame.com/crossDomain?DedeUserID=&DedeUserID__ckMd5=&SESSDATA=&bili_jct=&gourl=javascript%3Ahistory.go%28-1%29" + } +} +``` +
\ No newline at end of file diff --git a/docs/login/login_action/QR.md b/docs/login/login_action/QR.md new file mode 100644 index 0000000000..a4ec5c784a --- /dev/null +++ b/docs/login/login_action/QR.md @@ -0,0 +1,636 @@ +# 二维码登录 + + + +- [扫码登录流程(伪代码)](#扫码登录流程伪代码) +- [web端扫码登录](#web端扫码登录) + - [申请二维码(web端)](#申请二维码web端) + - [扫码登录(web端)](#扫码登录web端) +- [web端扫码登录-旧版](#web端扫码登录-旧版) + - [申请二维码(web端-旧版)](#申请二维码web端-旧版) + - [扫码登录(web端-旧版)](#扫码登录web端-旧版) +- [TV端扫码登录](#TV端扫码登录) + - [申请二维码(TV端)](#申请二维码TV端) + - [扫码登录(TV端)](#扫码登录TV端) + +--- + +## 扫码登录流程(伪代码) + +```python +token, url = 申请二维码() +生成二维码(url) # 等待客户端扫码 +while True: + status, cookie = 扫码登录(token) + match status: + case 未扫描: + continue + case 二维码超时 | 二维码失效: + 提示('二维码失效或超时') # 需要用户重新操作 + break + case 已扫描未确认: + 提示('扫描成功') + case 登录成功: + 提示('扫描成功') + 存储cookie(cookie) + SSO登录页面跳转() + break +``` + +## web端扫码登录 + +### 申请二维码(web端) + +> https://passport.bilibili.com/x/passport-login/web/qrcode/generate + +*请求方式:GET* + +密钥超时为180秒 + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +|---------|-----|------|------| +| code | num | 返回值 | 0:成功 | +| message | str | 错误信息 | | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +|------------|-----|------------------|--------| +| url | str | 二维码内容 (登录页面 url) | | +| qrcode_key | str | 扫码登录秘钥 | 恒为32字符 | + +**示例:** + +`url`中的值生成二维码,等待手机客户端扫描,并将`qrcode_key`保存备用 + +```shell +curl 'https://passport.bilibili.com/x/passport-login/web/qrcode/generate' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "url": "https://passport.bilibili.com/h5-app/passport/login/scan?navhide=1\u0026qrcode_key=8587cf8106a0b863c46d6bab913537f6\u0026from=", + "qrcode_key": "8587cf8106a0b863c46d6bab913537f6" + } +} +``` + +
+ +### 扫码登录(web端) + +> https://passport.bilibili.com/x/passport-login/web/qrcode/poll + +*请求方式:GET* + +密钥超时为180秒 + +验证登录成功后会进行设置以下cookie项: + +`DedeUserID` `DedeUserID__ckMd5` `SESSDATA` `bili_jct` + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +|------------|-----|--------|-----|-----| +| qrcode_key | str | 扫码登录秘钥 | 非必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +|---------|-----|------|------| +| code | num | 返回值 | 0:成功 | +| message | str | 错误信息 | | +| data | obj | 信息本体 | | + +data 对象: + +| 字段 | 类型 | 内容 | 备注 | +|---------------|-----|----------------------------------------------------------------|------------------------| +| url | str | 游戏分站跨域登录 url | 未登录为空 | +| refresh_token | str | 刷新`refresh_token` | 未登录为空 | +| timestamp | num | 登录时间 | 未登录为`0`
时间戳 单位为毫秒 | +| code | num | 0:扫码登录成功
86038:二维码已失效
86090:二维码已扫码未确认
86101:未扫码 | | +| message | str | 扫码状态信息 | | + +**示例:** + +使用扫描秘钥`c3bd5286a2b40a822f5f60e9bf3f602e`登录 + +```shell +curl -G "https://passport.bilibili.com/x/passport-login/web/qrcode/poll"\ +--data-urlencode 'qrcode_key=c3bd5286a2b40a822f5f60e9bf3f602e' \ +-c 'cookie.txt' +``` + +当密钥正确时但未扫描时`code`为`86101` + +
+查看响应示例: + + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "url": "", + "refresh_token": "", + "timestamp": 0, + "code": 86101, + "message": "未扫码" + } +} +``` + +
+ +扫描成功但手机端未确认时`code`为`86090` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "url": "", + "refresh_token": "", + "timestamp": 0, + "code": 86090, + "message": "二维码已扫码未确认" + } +} +``` + +
+ +扫描成功手机端确认登录后,`code`为`0`,并向浏览器写入cookie + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "url": "https://passport.biligame.com/crossDomain?DedeUserID=***\u0026DedeUserID__ckMd5=***\u0026Expires=***\u0026SESSDATA=***\u0026bili_jct=***\u0026gourl=https%3A%2F%2Fpassport.bilibili.com", + "refresh_token": "***", + "timestamp": 1662363009601, + "code": 0, + "message": "" + } +} +``` + +
+ +**响应头部抓包信息:** + +可明显看见设置了几个cookie + +
+查看响应示例: + +```http +HTTP/1.1 200 OK +Date: Mon, 05 Sep 2022 07:30:09 GMT +Expires: Mon, 05 Sep 2022 07:30:08 GMT +Cache-control: no-cache +Content-encoding: br +Content-type: application/json; charset=utf-8 +bili-status-code: 0 +bili-trace-id: 0d23fe044a6315a5 +set-cookie: SESSDATA=***; Path=/; Domain=bilibili.com; Expires=Sat, 04 Mar 2023 07:30:09 GMT; HttpOnly; Secure +set-cookie: bili_jct=***; Path=/; Domain=bilibili.com; Expires=Sat, 04 Mar 2023 07:30:09 GMT +set-cookie: DedeUserID=***; Path=/; Domain=bilibili.com; Expires=Sat, 04 Mar 2023 07:30:09 GMT +set-cookie: DedeUserID__ckMd5=***; Path=/; Domain=bilibili.com; Expires=Sat, 04 Mar 2023 07:30:09 GMT +set-cookie: sid=***; Path=/; Domain=bilibili.com; Expires=Sat, 04 Mar 2023 07:30:09 GMT +x-bili-trace-id: 2fbd8abd97dbd4db0d23fe044a6315a5 +x-cache-webcdn: BYPASS from blzone02 +``` + +
+ +二维码失效时`code`为`86038` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "url": "", + "refresh_token": "", + "timestamp": 0, + "code": 86038, + "message": "二维码已失效" + } +} +``` + +
+ +## web端扫码登录-旧版 + +以下为旧版扫码登录 API,尚可正常访问 + +### 申请二维码(web端-旧版) + +> https://passport.bilibili.com/qrcode/getLoginUrl + +*请求方式:GET* + +密钥超时为180秒 + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +|--------|------|------|--------| +| code | num | 返回值 | 0:成功 | +| status | bool | true | 作用尚不明确 | +| ts | num | 请求时间 | 时间戳 | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +|----------|-----|------------------|--------| +| url | str | 二维码内容 (登录页面 url) | | +| oauthKey | str | 扫码登录秘钥 | 恒为32字符 | + +**示例:** + +`url`中的值生成二维码,等待手机客户端扫描,并将`oauthKey`保存备用 + +```shell +curl 'https://passport.bilibili.com/qrcode/getLoginUrl' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "status": true, + "ts": 1583314311, + "data": { + "url": "https://passport.bilibili.com/qrcode/h5/login?oauthKey=c3bd5286a2b40a822f5f60e9bf3f602e", + "oauthKey": "c3bd5286a2b40a822f5f60e9bf3f602e" + } +} +``` + +
+ +### 扫码登录(web端-旧版) + +> https://passport.bilibili.com/qrcode/getLoginInfo + +*请求方式:POST* + +密钥超时为180秒 + +验证登录成功后会进行设置以下cookie项: + +`DedeUserID` `DedeUserID__ckMd5` `SESSDATA` `bili_jct` + +**正文参数( application/x-www-form-urlencoded ):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +|----------|-----|--------|-----|----------------------------| +| oauthKey | str | 扫码登录秘钥 | 必要 | | +| gourl | str | 跳转url | 非必要 | 默认为http://www.bilibili.com | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +|---------|----------------------|---------------------------|---------------------------------------------------------| +| code | num | 返回值 | 0:成功 | +| message | str | | 正确无 | +| ts | num | 扫码时间 | 错误无 | +| status | bool | 扫码是否成功 | true:成功
false:未成功 | +| data | 正确时:obj
错误时:num | 正确时:游戏分站url
错误时:错误代码 | 未成功时:
-1:密钥错误
-2:密钥超时
-4:未扫描
-5:未确认 | + +data 对象: + +| 字段 | 类型 | 内容 | 备注 | +|-----|-----|--------------|-----| +| url | str | 游戏分站跨域登录 url | | + +**示例:** + +使用扫描秘钥`c3bd5286a2b40a822f5f60e9bf3f602e`登录 + +```shell +curl "https://passport.bilibili.com/qrcode/getLoginInfo"\ +--data-urlencode 'oauthKey=c3bd5286a2b40a822f5f60e9bf3f602e' \ +-c 'cookie.txt' +``` + +当密钥正确时但未扫描时`status`为`false`,`data`为`-4` + +
+查看响应示例: + +```json +{ + "status":false, + "data":-4, + "message":"Can't scan~" +} +``` + +
+ +扫描成功但手机端未确认时`status`为`false`,`data`为`-5` + +
+查看响应示例: + +```json +{ + "status":false, + "data":-5, + "message":"Can't confirm~" +} +``` + +
+ +扫描成功手机端确认登录后,`status`为`true`,`data`为对象,并向浏览器写入cookie + +
+查看响应示例: + +```json +{ + "code": 0, + "status": true, + "ts": 1583315474, + "data": { + "url": "https://passport.biligame.com/crossDomain?DedeUserID=***&DedeUserID__ckMd5=***&Expires=***&SESSDATA=***&bili_jct=***&gourl=http%3A%2F%2Fwww.bilibili.com" + } +} +``` + +
+ +**响应头部抓包信息:** + +可明显看见设置了几个cookie + +
+查看响应示例: + +```http +HTTP/1.1 200 OK +Date: Wed, 04 Mar 2020 10:36:37 GMT +Content-Type: application/json;charset=UTF-8 +Transfer-Encoding: chunked +Connection: keep-alive +Server: Apache-Coyote/1.1 +Set-Cookie: sid=***; Domain=.bilibili.com; Expires=Thu, 04-Mar-2021 10:36:37 GMT; Path=/ +Set-Cookie: DedeUserID=***; Domain=.bilibili.com; Expires=Mon, 31-Aug-2020 10:19:57 GMT; Path=/ +Set-Cookie: DedeUserID__ckMd5=***; Domain=.bilibili.com; Expires=Mon, 31-Aug-2020 10:19:57 GMT; Path=/ +Set-Cookie: SESSDATA=***; Domain=.bilibili.com; Expires=Mon, 31-Aug-2020 10:19:57 GMT; Path=/; HttpOnly +Set-Cookie: bili_jct=***; Domain=.bilibili.com; Expires=Mon, 31-Aug-2020 10:19:57 GMT; Path=/ +Expires: Wed, 04 Mar 2020 10:36:36 GMT +Cache-Control: no-cache +X-Cache-Webcdn: BYPASS from ks-sxhz-dx-w-01 +``` + +
+ +## TV端扫码登录 + +### 申请二维码(TV端) + +> https://passport.snm0516.aisee.tv/x/passport-tv-login/qrcode/auth_code +> +> https://passport.bilibili.com/x/passport-tv-login/qrcode/auth_code + +*请求方式:POST* + +鉴权方式:appkey + +密钥超时为180秒 + +本接口可申请用于TV端APP方式登录的`access_key` + +**正文参数( application/x-www-form-urlencoded ):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| -------- | ---- | ---------- | ------------ | -------------------------- | +| appkey | str | APP 密钥 | APP 方式必要 | 仅可用`4409e2ce8ffd12b8` | +| local_id | str | TV 端 id | TV 端必要 | 可为`0` | +| ts | num | 当前时间戳 | APP 方式必要 | | +| sign | str | APP 签名 | APP 方式必要 | | +| mobi_app | str | 平台标识 | 非必要 | 会被拼接到返回的 url query | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +|---------|-----|------|---------------------------------------| +| code | num | 返回值 | 0:成功
-3:API校验密匙错误
-400:请求错误 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| --------- | ---- | -------------- | ------------ | +| url | str | 二维码内容 url | | +| auth_code | str | 扫码登录秘钥 | 恒为 32 字符 | + +**示例:** + +```shell +curl 'https://passport.snm0516.aisee.tv/x/passport-tv-login/qrcode/auth_code' \ +--data-urlencode 'appkey=4409e2ce8ffd12b8' \ +--data-urlencode 'local_id=0' \ +--data-urlencode 'ts=0' \ +--data-urlencode 'sign=e134154ed6add881d28fbdf68653cd9c' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "url": "https://passport.bilibili.com/x/passport-tv-login/h5/qrcode/auth?auth_code=0eeb635a64526709d70cb4c854a3b001", + "auth_code": "0eeb635a64526709d70cb4c854a3b001" + } +} +``` + +
+ +### 扫码登录(TV端) + +> https://passport.snm0516.aisee.tv/x/passport-tv-login/qrcode/poll +> +> https://passport.bilibili.com/x/passport-tv-login/qrcode/poll + +*请求方式:POST* + +鉴权方式:appkey + +密钥超时为180秒 + +验证登录成功后会返回可用于APP方式登录的`access_key`以及`refresh_token` + +**正文参数 (application/x-www-form-urlencoded):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +|-----------|-----|-------|---------|-----------------------| +| appkey | str | APP密钥 | APP方式必要 | 仅可用`4409e2ce8ffd12b8` | +| auth_code | str | 扫码秘钥 | 必要 | | +| local_id | str | TV端id | TV端必要 | 可为0 | +| ts | num | 当前时间戳 | APP方式必要 | | +| sign | str | APP签名 | APP方式必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +|---------|-----------------------|------|--------------------------------------------------------------------------------------------------------------| +| code | num | 返回值 | 0:成功
-3:API校验密匙错误
-400:请求错误
-404:啥都木有
86038:二维码已失效
86039:二维码尚未确认
86090:二维码已扫码未确认 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | 有效时:obj
无效时:null | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +|---------------|-----|------------|---------------------| +| mid | num | 登录用户mid | | +| access_token | str | APP登录Token | | +| refresh_token | str | APP刷新Token | | +| expires_in | num | 有效时间 | 默认:15552000秒,等于180天 | + +**示例:** + +使用扫描秘钥`6214464b3025541abf6f654cf7569a01`进行验证登录 + +```shell +curl 'https://passport.snm0516.aisee.tv/x/passport-tv-login/qrcode/poll' \ +--data-urlencode 'appkey=4409e2ce8ffd12b8' \ +--data-urlencode 'auth_code=6214464b3025541abf6f654cf7569a01' \ +--data-urlencode 'local_id=0' \ +--data-urlencode 'ts=0' \ +--data-urlencode 'sign=87de3d0fee7c3f4facd244537238914e' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "is_new": false, + "mid": 10086, + "access_token": "********************************", + "refresh_token": "********************************", + "expires_in": 15552000, + "token_info": { + "mid": 10086, + "access_token": "********************************", + "refresh_token": "********************************", + "expires_in": 15552000 + }, + "cookie_info": { + "cookies": [ + { + "name": "SESSDATA", + "value": "********************************", + "http_only": 1, + "expires": 1679988973, + "secure": 0 + }, + { + "name": "bili_jct", + "value": "********************************", + "http_only": 0, + "expires": 1679988973, + "secure": 0 + }, + { + "name": "DedeUserID", + "value": "*******", + "http_only": 0, + "expires": 1679988973, + "secure": 0 + }, + { + "name": "DedeUserID__ckMd5", + "value": "****************", + "http_only": 0, + "expires": 1679988973, + "secure": 0 + }, + { + "name": "sid", + "value": "********", + "http_only": 0, + "expires": 1679988973, + "secure": 0 + } + ], + "domains": [ + ".bilibili.com", + ".biligame.com", + ".bigfun.cn", + ".bigfunapp.cn", + ".dreamcast.hk" + ] + }, + "sso": [ + "https://passport.bilibili.com/api/v2/sso", + "https://passport.biligame.com/api/v2/sso", + "https://passport.bigfunapp.cn/api/v2/sso" + ] + } +} +``` + +
diff --git a/docs/login/login_action/SMS.md b/docs/login/login_action/SMS.md new file mode 100644 index 0000000000..112dc628d6 --- /dev/null +++ b/docs/login/login_action/SMS.md @@ -0,0 +1,258 @@ +# 短信登录 + +- [获取国际冠字码_web端](#获取国际冠字码_web端) +- [发送短信验证码_web端](#发送短信验证码_web端) +- [使用短信验证码登录_web端](#使用短信验证码登录_web端) + +--- + +web端短信登录流程: + +1. [完成人机验证](readme.md) +2. 发送短信,使用国际地区代码`cid`+手机号码`tel`+登录密钥`token`+极验`challenge`+验证结果`validate`+验证结果`seccode` +3. 提交短信验证码以验证登录操作,使用国际地区代码`cid`+手机号码`tel`+短信验证码`code` + +## 获取国际冠字码_web端 + +> https://passport.bilibili.com/web/generic/country/list + +*请求方式:GET* + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | -------- | ------- | +| code | num | 返回值 | 0:成功 | +| data | obj | 数据本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------ | ----- | ------------- | ---- | +| common | array | 常用国家&地区 | | +| others | array | 其他国家&地区 | | + +`data`中的`common`和`others`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | -------------- | ---- | +| 0 | obj | 国家&地区1 | | +| n | obj | 国家&地区(n+1) | | +| …… | obj | …… | …… | + +`common`和`others`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---------- | ---- | ------------- | ---- | +| id | num | 国际代码值 | | +| cname | str | 国家&地区名 | | +| country_id | str | 国家&地区区号 | | + +**示例:** + +```shell +curl 'https://passport.bilibili.com/web/generic/country/list' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "data": { + "common": [ + { + "id": 1, + "cname": "中国大陆", + "country_id": "86" + }, + { + "id": 5, + "cname": "中国香港特别行政区", + "country_id": "852" + }, + ………… + ], + "others": [ + { + "id": 22, + "cname": "阿富汗", + "country_id": "93" + }, + { + "id": 20, + "cname": "阿尔巴尼亚", + "country_id": "355" + }, + ………… + ] + } +} +``` + +
+ +## 发送短信验证码_web端 + +> https://passport.bilibili.com/x/passport-login/web/sms/send + +*请求方式:POST* + +同手机号短信发送 CD 时间为 60s + +短信验证码 timeout 为 5min + +**正文参数 (application/x-www-form-urlencoded):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| --- | --- | --- | --- | --- | +| cid | num | 国际冠字码 | 必要 | 可以从[获取国际冠字码](#获取国际冠字码(web端))获取 | +| tel | num | 手机号码 | 必要 | | +| source | str | 登录来源 | 必要 | `main_web`:独立登录页
`main_mini`:小窗登录 | +| token | str | 登录 API token | 必要 | 在[申请 captcha 验证码](readme.md#申请captcha验证码)接口处获取 | +| challenge | str | 极验 challenge | 必要 | 在[申请 captcha 验证码](readme.md#申请captcha验证码)接口处获取 | +| validate | str | 极验 result | 必要 | 极验验证后得到 | +| seccode | str | 极验 result +`\|jordan` | 必要 | 极验验证后得到 | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------ | ---- | -------- | --------- | +| code | num | 返回值 | 0:成功
-400:请求错误
1002:手机号格式错误
86203:短信发送次数已达上限
1003:验证码已经发送
1025:该手机号在哔哩哔哩有过永久封禁记录,无法再次注册或绑定新账号
2400:登录秘钥错误
2406:验证极验服务出错 | +| message | str | 错误信息 | 成功为0 | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----------- | ---- | -------------- | ------------------------ | +| captcha_key | str | 短信登录 token | 在下方传参时需要,请备用 | + +**示例:** + +例如手机号为`13888888888`,国际id为`1 (中国大陆)`,登录秘钥为`aabbccdd`,极验challenge为`2333`,极验结果为`666666`,进行发送短信验证码操作 + +```shell +curl 'https://passport.bilibili.com/x/passport-login/web/sms/send' \ +--data-urlencode 'tel=13888888888' \ +--data-urlencode 'cid=1' \ +--data-urlencode 'source=main_web' \ +--data-urlencode 'token=aabbccdd' \ +--data-urlencode 'challenge=2333' \ +--data-urlencode 'validate=666666' \ +--data-urlencode 'seccode=666666|jordan' +``` + +
+查看响应示例: + +```json +{"code":0, + "message":"0", + "ttl":1, + "data":{ + "captcha_key":"7542f109c3318d74847626495c68c321" + } +} +``` + +
+ +## 使用短信验证码登录_web端 + +> https://passport.bilibili.com/x/passport-login/web/login/sms + +*请求方式:POST* + +验证登录成功后会进行设置以下cookie项: + + `DedeUserID` `DedeUserID__ckMd5` `SESSDATA` `bili_jct` + +**正文参数 (application/x-www-form-urlencoded):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| --- | --- | --- | --- | --- | +| cid | num | 国际冠字码 | 必要 | 可以从[获取国际冠字码](#获取国际冠字码(web端))获取 | +| tel | num | 手机号码 | 必要 | | +| code | num | 短信验证码 | 必要 | timeout 为 5min | +| source | str | 登录来源 | 必要 | `main_web`:独立登录页
`main_mini`:小窗登录 | +| captcha_key | str | 短信登录 token | 必要 | 从[上述API](#发送短信验证码(web端))请求成功后返回 | +| go_url | str | 跳转url | 非必要 | 默认为 https://www.bilibili.com | +| keep | bool | 是否记住登录 | 非必要 | `true`:记住登录
`false`:不记住登录 | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| --- | --- | --- | --- | +| code | num | 返回值 | 0:成功
-400:请求错误
1006:请输入正确的短信验证码
1007:短信验证码已过期 | +| message | str | 错误信息 | | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| --- | --- | --- | --- | +| is_new | bool | 是否为新注册用户 | false:非新注册用户
true:新注册用户 | +| status | num | 0 | 未知,可能0就是成功吧 | +| url | str | 跳转 url | 默认为 https://www.bilibili.com | + +**示例:** + +使用手机号`13888888888`,短信验证码为`123456`,进行验证登录操作 + +```shell +curl 'https://passport.bilibili.com/x/passport-login/web/login/sms' +--data-urlencode 'cid=1' \ +--data-urlencode 'tel=13888888888' \ +--data-urlencode 'code=123456' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "data": { + "is_new": false, + "status": 0, + "url": "https://space.bilibili.com" + } +} +``` + +
+ +**响应头部抓包信息:** + +可明显看见设置了几个cookie(填入浏览器即可成功登录) + +
+查看响应示例: + +```http +HTTP/1.1 200 OK +Date: Mon, 13 Jul 2020 09:57:33 GMT +Content-Type: application/json;charset=UTF-8 +Content-Length: 78 +Connection: keep-alive +Server: Apache-Coyote/1.1 +Set-Cookie: DedeUserID=***; Domain=.bilibili.com; Expires=Sat, 18-Jul-2020 09:57:57 GMT; Path=/ +Set-Cookie: DedeUserID__ckMd5=***; Domain=.bilibili.com; Expires=Sat, 18-Jul-2020 09:57:57 GMT; Path=/ +Set-Cookie: SESSDATA=***; Domain=.bilibili.com; Expires=Sat, 18-Jul-2020 09:57:57 GMT; Path=/; HttpOnly +Set-Cookie: bili_jct=***; Domain=.bilibili.com; Expires=Sat, 18-Jul-2020 09:57:57 GMT; Path=/ +Set-Cookie: sid=***; Domain=.bilibili.com; Expires=Sat, 18-Jul-2020 09:57:57 GMT; Path=/ +Expires: Mon, 13 Jul 2020 09:57:32 GMT +Cache-Control: no-cache +X-Cache-Webcdn: BYPASS from jd-sxhz-dx-w-01 + +``` + +
diff --git a/docs/login/login_action/password.md b/docs/login/login_action/password.md new file mode 100644 index 0000000000..d0def6f350 --- /dev/null +++ b/docs/login/login_action/password.md @@ -0,0 +1,499 @@ +# 密码登录 + +- [密码登录流程(伪代码)](#密码登录流程伪代码) +- [web端密码登录](#web端密码登录) + - [获取公钥&盐(web端)](#获取公钥&盐web端) + - [登录操作(web端)](#登录操作web端) +- [web端密码登录-旧版](#web端密码登录-旧版) + - [获取公钥&盐(web端-旧版)](#获取公钥&盐web端-旧版) + - [登录操作(web端-旧版)](#登录操作web端-旧版) +- [APP端密码登录](#APP端密码登录) + - [获取公钥&盐(APP端)](#获取公钥&盐APP端) + - TODO:登录操作(APP端) +- [登录密码的加密实例](#登录密码的加密实例) + +--- + +## 密码登录流程(伪代码) + +```python +账号 = '2333333' +密码字符串 = 'password' + +# 1.人机验证步骤 +token, gt, challenge = 获取验证码() +validate = 填写验证码(gt, challenge) # 这一步填写验证码 (访问极验API,得到validate) + +# 2.密码加密步骤 +pubkey, salt = 获取公钥和盐() +加密后的密码 = RSA公钥加密(pubkey, salt+密码字符串) # 盐需要加在密码字符串前 +base64编码后的密文 = base64编码(加密后的密码) + +# 3.开始登录 +cookie = 密码登录(账号, base64编码后的密文, token, challenge, validate) +存储cookie(cookie) +SSO登录页面跳转() +``` + +## web端密码登录 + +### 获取公钥&盐(web端) + +> https://passport.bilibili.com/x/passport-login/web/key + +*请求方式:GET* + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +|---------|-----|------|------| +| code | num | 返回值 | 0:成功 | +| message | str | 错误信息 | | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +|------|-----|--------|------------------------------------------| +| hash | str | 密码盐值 | 有效时间为 20s
恒为 16 字符
需要拼接在明文密码之前 | +| key | str | rsa 公钥 | PEM 格式编码
加密密码时需要使用 | + +**示例:** + +```shell +curl 'https://passport.bilibili.com/x/passport-login/web/key' +``` + +
+查看响应示例: + + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "hash": "9333681c87fd8d6e", + "key": "-----BEGIN PUBLIC KEY-----\nMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDjb4V7EidX/ym28t2ybo0U6t0n\n6p4ej8VjqKHg100va6jkNbNTrLQqMCQCAYtXMXXp2Fwkk6WR+12N9zknLjf+C9sx\n/+l48mjUU8RqahiFD1XT/u2e0m2EN029OhCgkHx3Fc/KlFSIbak93EH/XlYis0w+\nXl69GV6klzgxW6d2xQIDAQAB\n-----END PUBLIC KEY-----\n" + } +} +``` + +
+ +### 登录操作(web端) + +> https://passport.bilibili.com/x/passport-login/web/login + +*请求方式:POST* + +验证登录成功后会进行设置以下 cookie 项: + +`sid` `DedeUserID` `DedeUserID__ckMd5` `SESSDATA` `bili_jct` + +**正文参数 (application/x-www-form-urlencoded):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| --------- | ---- | ---------------------- | ------ | ------------------------------------------------------------ | +| username | str | 用户登录账号 | 必要 | 手机号或邮箱地址 | +| password | str | 加密后的带盐密码 | 必要 | base64 格式 | +| keep | num | 0 | 必要 | | +| token | str | 登录 token | 必要 | 在[申请 captcha 验证码](readme.md#申请captcha验证码)接口处获取 | +| challenge | str | 极验 challenge | 必要 | 在[申请 captcha 验证码](readme.md#申请captcha验证码)接口处获取 | +| validate | str | 极验 result | 必要 | 极验验证后得到 | +| seccode | str | 极验 result +`\|jordan` | 必要 | 极验验证后得到 | +| go_url | str | 跳转 url | 非必要 | 默认为 https://www.bilibili.com | +| source | str | 登录来源 | 非必要 | `main_web`:独立登录页
`main_mini`:小窗登录 | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +|---------|-----------------------|------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| code | num | 返回值 | 0:成功
-105:验证码错误
-400:请求错误
-629:账号或密码错误
-653:用户名或密码不能为空
-662:提交超时,请重新提交
-2001:缺少必要的的参数
-2100:需验证手机号或邮箱
2400:登录秘钥错误
2406:验证极验服务出错
86000:RSA解密失败 | +| message | str | 错误信息 | | +| data | 成功时:obj
失败时:null | 数据本体 | | + +data 对象: + +| 字段 | 类型 | 内容 | 备注 | +|---------------|-----|-------------------|------------------------| +| message | str | 扫码状态信息 | | +| refresh_token | str | 刷新`refresh_token` | | +| status | num | 0 | | +| timestamp | num | 登录时间 | 未登录为`0`
时间戳 单位为毫秒 | +| url | str | 游戏分站跨域登录 url | | + +**示例:** + +例如用户账号为`12345678900`,加密后的密码为`xxx`,登录秘钥为`aabbccdd`,极验challenge为`2333`,极验结果为`666666`,进行验证登录操作 + +```shell +curl 'https://passport.bilibili.com/x/passport-login/web/login' \ +--data-urlencode 'username=12345678900' \ +--data-urlencode 'password=xxx' \ +--data-urlencode 'keep=0' \ +--data-urlencode 'source=main_web' \ +--data-urlencode 'token=aabbccdd' \ +--data-urlencode 'challenge=2333' \ +--data-urlencode 'validate=666666' \ +--data-urlencode 'seccode=666666|jordan' +``` + +
+查看响应示例: + + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "status": 0, + "message": "", + "url": "https://passport.biligame.com/crossDomain?DedeUserID=***&DedeUserID__ckMd5=***&Expires=***&SESSDATA=***&bili_jct=***&gourl=https%3A%2F%2Fwww.bilibili.com%2F", + "refresh_token": "***", + "timestamp": 1662452570273 + } +} + +``` + +
+ +**响应头部抓包信息:** + +可明显看见设置了几个 cookie + +
+查看响应示例: + +```http +HTTP/1.1 200 OK +Date: Mon, 13 Jul 2020 06:56:00 GMT +Content-Type: application/json;charset=UTF-8 +Content-Length: 273 +Connection: keep-alive +Server: Apache-Coyote/1.1 +Set-Cookie: DedeUserID=***; Domain=.bilibili.com; Expires=Sat, 09-Jan-2021 06:39:43 GMT; Path=/ +Set-Cookie: DedeUserID__ckMd5=***; Domain=.bilibili.com; Expires=Sat, 09-Jan-2021 06:39:43 GMT; Path=/ +Set-Cookie: SESSDATA=***; Domain=.bilibili.com; Expires=Sat, 09-Jan-2021 06:39:43 GMT; Path=/; HttpOnly +Set-Cookie: bili_jct=***; Domain=.bilibili.com; Expires=Sat, 09-Jan-2021 06:39:43 GMT; Path=/ +Content-Security-Policy-Report-Only: default-src 'self' data: *.bilibili.com *.hdslb.com; style-src 'self' 'unsafe-inline' *.hdslb.com static.geetest.com; img-src 'self' data: blob: *.bilibili.com *.hdslb.com http://*.hdslb.com static.geetest.com; script-src 'self' 'unsafe-inline' 'unsafe-eval' *.bilibili.com *.hdslb.com api.geetest.com static.geetest.com; object-src 'self' *.hdslb.com; media-src 'self' *.acgvideo.com http://*.acgvideo.com *.ksyungslb.com; connect-src 'self' data: wss://*.bilibili.com:* *.bilibili.com *.hdslb.com *.biliapi.net *.biliapi.com; frame-ancestors 'self' *.bilibili.com *.biligame.com; report-uri https://security.bilibili.com/csp_report +Expires: Mon, 13 Jul 2020 06:55:59 GMT +Cache-Control: no-cache +X-Cache-Webcdn: BYPASS from jd-sxhz-dx-w-01 +``` + +
+ +## web端密码登录-旧版 + +以下为密码扫码登录 API,尚可正常访问 + +### 获取公钥&盐(web端-旧版) + +> https://passport.bilibili.com/login?act=getkey + +*请求方式:GET* + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +|------|-----|--------|------------------------------------------| +| hash | str | 密码盐值 | 有效时间为 20s
恒为 16 字符
需要拼接在明文密码之前 | +| key | str | rsa 公钥 | PEM 格式编码
加密密码时需要使用 | + +**示例:** + +```shell +curl 'https://passport.bilibili.com/login?act=getkey' +``` + +
+查看响应示例: + +```json +{ + "hash":"07c6501690c1af85", + "key":"-----BEGIN PUBLIC KEY-----\nMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDjb4V7EidX/ym28t2ybo0U6t0n\n6p4ej8VjqKHg100va6jkNbNTrLQqMCQCAYtXMXXp2Fwkk6WR+12N9zknLjf+C9sx\n/+l48mjUU8RqahiFD1XT/u2e0m2EN029OhCgkHx3Fc/KlFSIbak93EH/XlYis0w+\nXl69GV6klzgxW6d2xQIDAQAB\n-----END PUBLIC KEY-----\n" +} +``` + +
+ +### 登录操作(web端-旧版) + + +> https://passport.bilibili.com/web/login/v2 + +*请求方式:POST* + +验证登录成功后会进行设置以下cookie项: + +`sid` `DedeUserID` `DedeUserID__ckMd5` `SESSDATA` `bili_jct` + +**正文参数 (application/x-www-form-urlencoded ):** + + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ----------- | ---- | ---------------------- | ------ | ------------------------------------------------------------ | +| captchaType | num | 6 | 必要 | 必须为`6` | +| username | str | 用户登录账号 | 必要 | 手机号或邮箱地址 | +| password | str | 加密后的带盐密码 | 必要 | base64 格式 | +| keep | bool | 是否记住登录 | 必要 | `true`:记住登录
`false`:不记住登录 | +| key | str | 登录 token | 必要 | 在[申请 captcha 验证码](readme.md#申请captcha验证码)接口处获取 | +| challenge | str | 极验 challenge | 必要 | 在[申请 captcha 验证码](readme.md#申请captcha验证码)接口处获取 | +| validate | str | 极验 result | 必要 | 极验验证后得到 | +| seccode | str | 极验 result +`\|jordan` | 必要 | 极验验证后得到 | + + + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +|---------|-----|-------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| code | num | 返回值 | 0:成功
-400:请求错误
-629:账号或密码错误
-653:用户名或密码不能为空
-662:提交超时,请重新提交
-2001:缺少必要的的参数
-2100:需验证手机号或邮箱
2400:登录秘钥错误
2406:验证极验服务出错
86000:RSA解密失败 | +| ts | num | 当前时间戳 | 成功时无此项 | +| message | str | 错误信息 | 默认为0 | +| data | obj | 数据本体 | 成功时有此项 | + +`data`对象: + +**未登录时:** + +| 字段 | 类型 | 内容 | 备注 | +|-------------|-----|--------------|-----| +| redirectUrl | str | 游戏分站跨域登录 url | | + +**已登录时:** + +| 字段 | 类型 | 内容 | 备注 | +|---------|------|--------------------------|-----| +| isLogin | bool | true | | +| goUrl | str | https://www.bilibili.com | | + +**需验证手机号或邮箱时** + +| 字段 | 类型 | 内容 | 备注 | +|----------|-----|--------------------------|------------| +| mid | num | 用户 mid | | +| tel | str | 绑定的手机号 | 星号隐藏部分信息 | +| email | str | 绑定的邮箱 | 星号隐藏部分信息 | +| sorce | num | 0 | **作用尚不明确** | +| keeptime | num | 1 | **作用尚不明确** | +| goUrl | str | https://www.bilibili.com | | + +**示例:** + +例如用户账号为`12345678900`,加密后的密码为`xxx`,登录秘钥为`aabbccdd`,极验challenge为`2333`,极验结果为`666666`,进行验证登录操作 + +```shell +curl 'https://passport.bilibili.com/web/login/v2' \ +--data-urlencode 'captchaType=6' \ +--data-urlencode 'username=12345678900' \ +--data-urlencode 'password=xxx' \ +--data-urlencode 'keep=true' \ +--data-urlencode 'token=aabbccdd' \ +--data-urlencode 'challenge=2333' \ +--data-urlencode 'validate=666666' \ +--data-urlencode 'seccode=666666|jordan' +``` + +
+查看响应示例: + + +```json +{ + "code": 0, + "data": { + "redirectUrl": "https://passport.biligame.com/crossDomain?DedeUserID=***&DedeUserID__ckMd5=***&Expires=15551000&SESSDATA=***&bili_jct=***&gourl=https%3A%2F%2Fwww.bilibili.com" + } +} +``` + +
+ +**响应头部抓包信息:** + +可明显看见设置了几个 cookie + +
+查看响应示例: + +```http +HTTP/1.1 200 OK +Date: Mon, 13 Jul 2020 06:56:00 GMT +Content-Type: application/json;charset=UTF-8 +Content-Length: 273 +Connection: keep-alive +Server: Apache-Coyote/1.1 +Set-Cookie: DedeUserID=***; Domain=.bilibili.com; Expires=Sat, 09-Jan-2021 06:39:43 GMT; Path=/ +Set-Cookie: DedeUserID__ckMd5=***; Domain=.bilibili.com; Expires=Sat, 09-Jan-2021 06:39:43 GMT; Path=/ +Set-Cookie: SESSDATA=***; Domain=.bilibili.com; Expires=Sat, 09-Jan-2021 06:39:43 GMT; Path=/; HttpOnly +Set-Cookie: bili_jct=***; Domain=.bilibili.com; Expires=Sat, 09-Jan-2021 06:39:43 GMT; Path=/ +Content-Security-Policy-Report-Only: default-src 'self' data: *.bilibili.com *.hdslb.com; style-src 'self' 'unsafe-inline' *.hdslb.com static.geetest.com; img-src 'self' data: blob: *.bilibili.com *.hdslb.com http://*.hdslb.com static.geetest.com; script-src 'self' 'unsafe-inline' 'unsafe-eval' *.bilibili.com *.hdslb.com api.geetest.com static.geetest.com; object-src 'self' *.hdslb.com; media-src 'self' *.acgvideo.com http://*.acgvideo.com *.ksyungslb.com; connect-src 'self' data: wss://*.bilibili.com:* *.bilibili.com *.hdslb.com *.biliapi.net *.biliapi.com; frame-ancestors 'self' *.bilibili.com *.biligame.com; report-uri https://security.bilibili.com/csp_report +Expires: Mon, 13 Jul 2020 06:55:59 GMT +Cache-Control: no-cache +X-Cache-Webcdn: BYPASS from jd-sxhz-dx-w-01 +``` + +
+ +## APP端密码登录 + +### 获取公钥&盐(APP端) + +> http://passport.bilibili.com/api/oauth2/getKey + +*请求方式:POST* + +鉴权方式:appkey + +**正文参数( application/x-www-form-urlencoded ):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +|--------|-----|-------|---------|-----| +| appkey | str | APP密钥 | APP方式必要 | | +| sign | str | APP签名 | APP方式必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +|------|-----|--------|------------------------------------------| +| hash | str | 密码盐值 | 有效时间为 20s
恒为 16 字符
需要拼接在明文密码之前 | +| key | str | rsa 公钥 | PEM 格式编码
加密密码时需要使用 | + +**示例:** + +```shell +curl 'https://passport.bilibili.com/api/oauth2/getKey' \ +--data-urlencode 'appkey=1d8b6e7d45233436' \ +--data-urlencode 'sign=17004c193f688f0b5665c1068e733aff' +``` + +
+查看响应示例: + +```json +{ + "hash": "07c6501690c1af85", + "key": "-----BEGIN PUBLIC KEY-----\nMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDjb4V7EidX/ym28t2ybo0U6t0n\n6p4ej8VjqKHg100va6jkNbNTrLQqMCQCAYtXMXXp2Fwkk6WR+12N9zknLjf+C9sx\n/+l48mjUU8RqahiFD1XT/u2e0m2EN029OhCgkHx3Fc/KlFSIbak93EH/XlYis0w+\nXl69GV6klzgxW6d2xQIDAQAB\n-----END PUBLIC KEY-----\n" +} +``` + +
+ +### 登录操作(APP端) + +TODO + +## 登录密码的加密实例 + +以下实例使用 Python 语言,在任何平台(web、APP)使用密码登录都需要如下加密步骤 + +首先在需拉取 RSA PubKey 和 salt 备用 + +```python +import requests + +resp = requests.get('https://passport.bilibili.com/x/passport-login/web/key').json()['data'] +print('salt =', resp['hash']) +print('PubKey =', resp['key']) +``` + +`hash`字段为 salt,长度固定为 16 字符,timeout 时间只有 20s + +`key`字段为 RSA PubKey,为 PEM 格式,加密需要使用 + +``` +salt = 9773d106a67e27d6 +PubKey = -----BEGIN PUBLIC KEY----- +MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDjb4V7EidX/ym28t2ybo0U6t0n +6p4ej8VjqKHg100va6jkNbNTrLQqMCQCAYtXMXXp2Fwkk6WR+12N9zknLjf+C9sx +/+l48mjUU8RqahiFD1XT/u2e0m2EN029OhCgkHx3Fc/KlFSIbak93EH/XlYis0w+ +Xl69GV6klzgxW6d2xQIDAQAB +-----END PUBLIC KEY----- +``` + +例如登录密码为`BiShi22332323`,现在对它进行加盐并使用获取的 PubKey 加密 + +```python +import rsa +password = 'BiShi22332323' + +pubKey = rsa.PublicKey.load_pkcs1_openssl_pem(resp['key']) # 读取 PEM 密钥 +encryptedPassword = rsa.encrypt((resp['hash']+password).encode(), pubKey) # 盐需要加在明文密码之前,一并加密 +print(encryptedPassword) +``` + +下面将输出一段 bytes 数据: + +``` +b'}\x9c\xd4\xcd\x88\x92\xa7\xde\x85\xdb\xabm\xd7\xd3\x08\x02@xo\x85\xa4\xe1\x11\xd0o\x80\x03.$\xc8l\xbe\xba;\xfe\xee\xa7(\xf8S\x95\x1e\x9106\xa4\x1d\xcf\x8e\xbe\x8d\x94A\x86s\xf9"\x12\x0c\x135\xbb\xbc\xe1\xde\x1b\x90\t)P\xeb\xa9\x8fXY]\x83\x18\x81f\n:\xdb\xe1\xbe\xe8\x1e\xba\x1c D8d}B\x17\xf9\x8a\xf0i\'1\xa5\xc4\x05&\xaa;n\xf8{\xa02\xffY\xcelU\xd5\xaf\x8aJK\xdc\xf1@\xbc\x93' +``` + +接下来需要把加密后的结果进行 base64 编码 + +```python +import base64 +b64Password = base64.b64encode(encryptedPassword).decode() +print('result =', b64Password) +``` + +以下为最终加密结果,可直接向 API 请求体传参以登录: + +因为 RSA 公钥加密的**无法解密性**,故无法本地验证,仅可请求 API 验证(略... + +``` +result = fZzUzYiSp96F26tt19MIAkB4b4Wk4RHQb4ADLiTIbL66O/7upyj4U5UekTA2pB3Pjr6NlEGGc/kiEgwTNbu84d4bkAkpUOupj1hZXYMYgWYKOtvhvugeuhwgRDhkfUIX+YrwaScxpcQFJqo7bvh7oDL/Wc5sVdWvikpL3PFAvJM= +``` + +以下为密码加密的Java实现: + +```java +package com.ho.test; + +import cn.hutool.core.codec.Base64; + +import javax.crypto.Cipher; +import java.security.KeyFactory; +import java.security.PublicKey; +import java.security.spec.X509EncodedKeySpec; + +public class Test3 { + public static void main(String[] args) throws Exception { + //用户密码 + String password = "abcdef"; + //获取到的证书内容 + String key = "-----BEGIN PUBLIC KEY-----\nMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDjb4V7EidX/ym28t2ybo0U6t0n\n6p4ej8VjqKHg100va6jkNbNTrLQqMCQCAYtXMXXp2Fwkk6WR+12N9zknLjf+C9sx\n/+l48mjUU8RqahiFD1XT/u2e0m2EN029OhCgkHx3Fc/KlFSIbak93EH/XlYis0w+\nXl69GV6klzgxW6d2xQIDAQAB\n-----END PUBLIC KEY-----\n"; + //获取到的盐值 + String hash = "bb73382121594c46"; + String[] split = key.strip().split("\n"); + String newKey = split[1] + split[2] + split[3] + split[4]; + //进行加密 + KeyFactory keyFactory = KeyFactory.getInstance("RSA"); + X509EncodedKeySpec keySpec = new X509EncodedKeySpec(Base64.decode(newKey)); + PublicKey publicKey = keyFactory.generatePublic(keySpec); + Cipher cipher = Cipher.getInstance(keyFactory.getAlgorithm()); + cipher.init(Cipher.PUBLIC_KEY, publicKey); + byte[] bytes = cipher.doFinal((hash + password).getBytes()); + String encode = Base64.encode(bytes); + System.out.println(encode); + } +} + +``` \ No newline at end of file diff --git a/docs/login/login_action/readme.md b/docs/login/login_action/readme.md new file mode 100644 index 0000000000..d89ac14bf0 --- /dev/null +++ b/docs/login/login_action/readme.md @@ -0,0 +1,99 @@ +# 登录操作 + +人机验证方式登录包含**账号密码登录**与手**机短信验证码登录** + +**注:扫码登录**不需要进行**人机验证**,故**不使用**以下接口 + +## 扫码登录 + +- [扫码登录](QR.md) + +## 验证登录 + +人机验证流程: + +1. 请求验证码参数,得到登录密钥`key`与极验id`gt`和极验KEY`challenge` +2. 进行滑动or点击验证 +3. 返回验证结果`validate`与`seccode`,进行短信或密码登录 + + +### 申请captcha验证码 + +> https://passport.bilibili.com/x/passport-login/captcha?source=main_web + +*请求方式:GET* + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------ | ---- | -------- | --------- | +| code | num | 返回值 | 0:成功 | +| message | str | 返回信息 | | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| -------- | ----- | ------ | -------- | +| geetest | obj | 极验captcha数据 | | +| tencent | obj | (?) | **作用尚不明确** | +| token | str | 登录 API token | 与 captcha 无关,与登录接口有关 | +| type | str | 验证方式 | 用于判断使用哪一种验证方式,目前所见只有极验
geetest:极验 | + +`geetest`对象: + +| 字段 | 类型 | 内容 | 备注 | +| -------- | ----- | ------ | -------- | +| gt | str | 极验id | 一般为固定值 | +| challenge | str | 极验KEY | 由B站后端产生用于人机验证 | + +**示例:** + +```shell +curl 'https://passport.bilibili.com/x/passport-login/captcha?source=main_web' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "type": "geetest", + "token": "00fbe75cc2864ba0af969231f193a974", + "geetest": { + "challenge": "a57d9be17505d4a15ed84694c48fbf74", + "gt": "ac597a4506fee079629df5d8b66dd4fe" + }, + "tencent": { + "appid": "" + } + } +} +``` + +
+ +### 进行验证 + +本文档为Bilibili文档,验证码为geetest极验提供,故不提供api + +附: [手动验证器](https://kuresaru.github.io/geetest-validator/) +[及其源码](https://github.com/kuresaru/geetest-validator) + +1. 打开手动验证器,在1、2分别填入上面API返回的`gt`和`challenge` +2. 点击按钮3,稍等加载验证码,点击按钮4进行验证 +3. 验证完成后,点击按钮5生成验证结果 +4. 使用最开始获得到的`key`、`challenge`和刚获得到的`validate`、`seccode`继续之后的登录操作 + + +### 继续登录 + +- [短信登录](SMS.md) +- [密码登录](password.md) diff --git a/docs/login/login_info.md b/docs/login/login_info.md new file mode 100644 index 0000000000..b306a8bae2 --- /dev/null +++ b/docs/login/login_info.md @@ -0,0 +1,569 @@ +# 登录基本信息 + +- [导航栏用户信息](#导航栏用户信息) +- [~~登录用户信息仅部分(已弃用)~~](#~~登录用户信息仅部分(已弃用)~~) +- [登录用户信息(APP端)](#登录用户信息APP端) +- [登录用户状态数(双端)](#登录用户状态数双端) +- [获取硬币数](#获取硬币数) + +--- + +## 导航栏用户信息 + +> https://api.bilibili.com/nav(带有转义) +> +> https://api.bilibili.com/x/web-interface/nav(原始数据) + +*请求方式:GET* + +认证方式:仅可Cookie(SESSDATA) + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ----------------------------- | +| code | num | 返回值 | 0:成功
-101:账号未登录 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| -------------------- | ---- | ---------------- | ------------------------------------------------- | +| isLogin | bool | 是否已登录 | false:未登录
true:已登录 | +| email_verified | num | 是否验证邮箱地址 | 0:未验证
1:已验证 | +| face | str | 用户头像url | | +| level_info | obj | 等级信息 | | +| mid | num | 用户mid | | +| mobile_verified | num | 是否验证手机号 | 0:未验证
1:已验证 | +| money | num | 拥有硬币数 | | +| moral | num | 当前节操值 | 上限为70 | +| official | obj | 认证信息 | | +| officialVerify | obj | 认证信息2 | | +| pendant | obj | 头像框信息 | | +| scores | num | 0 | 作用尚不明确 | +| uname | str | 用户昵称 | | +| vipDueDate | num | 会员到期时间 | 毫秒 时间戳 | +| vipStatus | num | 会员开通状态 | 0:无
1:有 | +| vipType | num | 会员类型 | 0:无
1:月度大会员
2:年度及以上大会员 | +| vip_pay_type | num | 会员开通状态 | 0:无
1:有 | +| vip_theme_type | num | 0 | 作用尚不明确 | +| vip_label | obj | 会员标签 | | +| vip_avatar_subscript | num | 是否显示会员图标 | 0:不显示
1:显示 | +| vip_nickname_color | str | 会员昵称颜色 | 颜色码 | +| wallet | obj | B币钱包信息 | | +| has_shop | bool | 是否拥有推广商品 | false:无
true:有 | +| shop_url | str | 商品推广页面url | | +| allowance_count | num | 0 | 作用尚不明确 | +| answer_status | num | 0 | 作用尚不明确 | + +`data`中的`level_info`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------------- | ---- | ------------------------ | ---- | +| current_level | num | 当前等级 | | +| current_min | num | 当前等级经验最低值 | | +| current_exp | num | 当前经验 | | +| next_exp | 小于6级时:num
6级时:str | 升级下一等级需达到的经验 |当用户等级为Lv6时,值为`--`,代表无穷大 | + +`data`中的`official`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----- | ---- | -------- | ------------------------------------------------- | +| role | num | 认证类型 | 0:无
1 2 7:个人认证
3 4 5 6:机构认证 | +| title | str | 认证信息 | 无为空 | +| desc | str | 认证备注 | 无为空 | +| type | num | 是否认证 | -1:无
0:认证 | + +`data`中的`official_verify`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | -------- | ------------------- | +| type | num | 是否认证 | -1:无
0:认证 | +| desc | str | 认证信息 | 无为空 | + +`data`中的`pendant`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------ | ---- | ----------- | ------------ | +| pid | num | 挂件id | | +| name | str | 挂件名称 | | +| image | str | 挂件图片url | | +| expire | num | 0 | 作用尚不明确 | + +`data`中的`vip_label`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----------- | ---- | -------- | ------------------------------------------------------------ | +| path | str | 空 | 作用尚不明确 | +| text | str | 会员名称 | | +| label_theme | str | 会员标签 | vip:大会员
annual_vip:年度大会员
ten_annual_vip:十年大会员
hundred_annual_vip:百年大会员 | + +`data`中的`wallet`对象: + +| 字段 | 类型 | 内容 | 备注 | +| --------------- | ---- | ------------- | ------------ | +| mid | num | 登录用户mid | | +| bcoin_balance | num | 拥有B币数 | | +| coupon_balance | num | 每月奖励B币数 | | +| coupon_due_time | num | 0 | 作用尚不明确 | + +**示例:** + +```shell +curl 'https://api.bilibili.com/nav' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code":0, + "message":"0", + "ttl":1, + "data":{ + "isLogin":true, + "email_verified":1, + "face":"http://i1.hdslb.com/bfs/face/aebb2639a0d47f2ce1fec0631f412eaf53d4a0be.jpg", + "level_info":{ + "current_level":5, + "current_min":10800, + "current_exp":17065, + "next_exp":28800 + }, + "mid":293793435, + "mobile_verified":1, + "money":33.4, + "moral":70, + "official":{ + "role":0, + "title":"", + "desc":"", + "type":-1 + }, + "officialVerify":{ + "type":-1, + "desc":"" + }, + "pendant":{ + "pid":0, + "name":"", + "image":"", + "expire":0, + "image_enhance":"" + }, + "scores":0, + "uname":"社会易姐QwQ", + "vipDueDate":1612454400000, + "vipStatus":1, + "vipType":2, + "vip_pay_type":1, + "vip_theme_type":0, + "vip_label":{ + "path":"", + "text":"年度大会员", + "label_theme":"annual_vip" + }, + "vip_avatar_subscript":1, + "vip_nickname_color":"#FB7299", + "wallet":{ + "mid":293793435, + "bcoin_balance":8, + "coupon_balance":5, + "coupon_due_time":0 + }, + "has_shop":false, + "shop_url":"", + "allowance_count":0, + "answer_status":0 + } +} +``` + +
+ +## ~~登录用户信息仅部分(已弃用)~~ + +
+查看折叠内容 + +> https://account.bilibili.com/home/userInfo + +*请求方式:GET* + +认证方式:仅可Cookie(SESSDATA) + +鉴权方式:Cookie中`DedeUserID`存在且不为0 + +带有转义 + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------ | ---- | -------- | ----------------------------- | +| code | num | 返回值 | 0:成功
-101:账号未登录 | +| status | bool | true | 作用尚不明确 | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----------------- | ---- | ----------------- | ------------------------------- | +| level_info | obj | 等级信息 | | +| bCoins | num | 拥有B币数 | | +| coins | num | 拥有硬币数 | | +| face | str | 登录用户头像url | | +| nameplate_current | null | ??? | 作用尚不明确 | +| nameplate_current | str | 登录用户勋章url | | +| pendant_current | str | 登录用户头像框url | | +| uname | str | 登录用户昵称 | | +| userStatus | str | 登录用户状态 | | +| vipType | num | 大会员类型 | 0:无
1:月度
2:年度 | +| vipStatus | num | 会员开通状态 | 0:无
1:有 | +| official_verify | num | 是否认证 | -1:无
0:认证 | +| pointBalance | num | 0 | 作用尚不明确 | + +`data`中的`level_info`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------------- | ---- | ------------------------ | ---- | +| current_level | num | 当前等级 | | +| current_min | num | 当前等级经验最低值 | | +| current_exp | num | 当前经验 | | +| next_exp | num | 升级下一等级需达到的经验 | | + +**示例:** + +```shell +curl 'https://account.bilibili.com/home/userInfo' \ +-b 'SESSDATA=xxx;DedeUserID=1;' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "status": true, + "data": { + "level_info": { + "current_level": 5, + "current_min": 10800, + "current_exp": 14270, + "next_exp": 28800 + }, + "bCoins": 10, + "coins": 2.5, + "face": "http:\/\/i2.hdslb.com\/bfs\/face\/480e2e98513aaeb65d2f2c76dbae750c4de722e9.jpg", + "nameplate_current": null, + "pendant_current": "http:\/\/i0.hdslb.com\/bfs\/face\/6550f53324c330f201a528e70ef305cb10ac2c01.png", + "uname": "\u793e\u4f1a\u6613\u59d0QwQ", + "userStatus": "\u6b63\u5f0f\u4f1a\u5458", + "vipType": 2, + "vipStatus": 1, + "official_verify": -1, + "pointBalance": 0 + } +} +``` + +
+ +
+ +## 登录用户信息(APP端) + +> https://app.bilibili.com/x/v2/account/myinfo + +*请求方式:GET* + +认证方式:仅可APP + +鉴权方式:appkey + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ---------- | ---- | ------------ | ----------- | ---- | +| access_key | str | APP登录Token | APP方式必要 | | +| appkey | str | APP密钥 | APP方式必要 | | +| ts | num | 当前时间戳 | APP方式必要 | | +| sign | str | APP签名 | APP方式必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------------------ | +| code | num | 返回值 | 0:成功
-3:API校验密匙错误
-101:账号未登录
-400:请求错误 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| -------------- | ---- | ---------------- | ----------------------------- | +| mid | num | 用户mid | | +| name | str | 用户昵称 | | +| sign | str | 用户签名 | | +| coins | num | 拥有硬币数 | | +| birthday | str | 用户生日 | YYYY-MM-DD | +| face | str | 用户头像url | | +| sex | num | 用户性别 | 0:私密
1:男
2:女 | +| level | num | 用户等级 | 0-6 | +| rank | num | 1000 | **作用尚不明确** | +| silence | num | 用户是否被封禁 | 0:正常
1:封禁 | +| vip | obj | 会员信息 | | +| email_status | num | 是否验证邮箱地址 | 0:未验证
1:已验证 | +| tel_status | num | 是否验证手机号 | 0:未验证
1:已验证 | +| official | obj | 认证信息 | | +| identification | num | 1 | **作用尚不明确** | +| invite | obj | | | +| is_tourist | num | 0 | **作用尚不明确** | +| pin_prompting | num | 0 | **作用尚不明确** | + +`data`中的`vip`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---------------- | ---- | ---------------- | ------------------------------- | +| type | num | 大会员类型 | 0:无
1:月度
2:年度 | +| status | num | 会员开通状态 | 0:无
1:有 | +| due_date | num | 大会员到期时间 | 毫秒 时间戳 | +| vip_pay_type | num | 会员开通状态 | 0:无
1:有 | +| theme_type | num | 会员开通状态 | 0:无
1:有 | +| label | obj | 大会员信息 | | +| avatar_subscript | num | 是否显示会员图标 | 0:不显示
1:显示 | +| nickname_color | str | 会员昵称颜色 | 颜色码 | + +`vip`中的`label`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----------- | ---- | ------------ | ---------------- | +| path | str | 空 | **作用尚不明确** | +| text | str | 会员类型文字 | | +| label_theme | str | 会员类型 | | + +`data`中的`official`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----- | ---- | -------- | ------------------------------------------------- | +| role | num | 认证类型 | 0:无
1 2 7:个人认证
3 4 5 6:机构认证 | +| title | str | 认证信息 | 无为空 | +| desc | str | 认证备注 | 无为空 | +| type | num | 认证备注 | 无为空 | + +`data`中的`invite`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------------- | ---- | ---- | ---------------- | +| invite_remind | num | 1 | **作用尚不明确** | +| display | bool | true | **作用尚不明确** | + +**示例:** + +```shell +curl -G 'https://app.bilibili.com/x/v2/account/myinfo' \ +--data-urlencode 'access_key=xxx' \ +--data-urlencode 'appkey=4409e2ce8ffd12b8' \ +--data-urlencode 'ts=0' \ +--data-urlencode 'sign=b8fb8480049c525994be6507a97ae0b6' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "mid": 293793435, + "name": "社会易姐QwQ", + "sign": "高中技术宅一枚,爱好MC&电子&8-bit音乐&数码&编程,资深猿厨,粉丝群:1136462265", + "coins": 33.4, + "birthday": "2002-03-05", + "face": "http://i1.hdslb.com/bfs/face/aebb2639a0d47f2ce1fec0631f412eaf53d4a0be.jpg", + "sex": 1, + "level": 5, + "rank": 10000, + "silence": 0, + "vip": { + "type": 2, + "status": 1, + "due_date": 1612454400000, + "vip_pay_type": 1, + "theme_type": 0, + "label": { + "path": "", + "text": "年度大会员", + "label_theme": "annual_vip" + }, + "avatar_subscript": 1, + "nickname_color": "#FB7299" + }, + "email_status": 1, + "tel_status": 1, + "official": { + "role": 0, + "title": "", + "desc": "", + "type": -1 + }, + "identification": 1, + "invite": { + "invite_remind": 1, + "display": true + }, + "is_tourist": 0, + "pin_prompting": 0 + } +} +``` + +
+ + +## 登录用户状态数(双端) + +> https://api.bilibili.com/x/web-interface/nav/stat + +*请求方式:GET* + +认证方式:Cookie(SESSDATA)或APP + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ---------- | ---- | ------------ | ----------- | ---- | +| access_key | str | APP登录Token | APP方式必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ----------------------------- | +| code | num | 返回值 | 0:成功
-101:账号未登录 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +| 字段 | 类型 | 内容 | 备注 | +| ------------- | ---- | ---------- | ---- | +| following | num | 关注数 | | +| follower | num | 粉丝数 | | +| dynamic_count | num | 发布动态数 | | + +**示例:** + +当前登录用户的状态数为粉丝596,关注754,发送的动态252 + +Cookie方式: + +```shell +curl 'https://api.bilibili.com/x/web-interface/nav/stat' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "following": 754, + "follower": 596, + "dynamic_count": 252 + } +} +``` + +
+ +APP方式: + +```shell +curl -G 'https://api.bilibili.com/x/web-interface/nav/stat' \ +--data-urlencode 'access_key=d907f51122c59599d580ade2315af971' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "following": 754, + "follower": 596, + "dynamic_count": 252 + } +} +``` + +
+ +## 获取硬币数 + +> https://account.bilibili.com/site/getCoin + +*请求方式:GET* + +认证方式:仅可Cookie(SESSDATA) + +鉴权方式:Cookie中` DedeUserID `存在且不为0 + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------ | ---- | -------- | ----------------------------- | +| code | num | 返回值 | 0:成功
-101:账号未登录 | +| status | bool | true | 作用尚不明确 | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----- | -------------------------------------- | ---------- | ---- | +| money | 硬币为正数时:num
硬币为0时:null | 当前硬币数 | | + +**示例:** + +```shell +curl 'https://account.bilibili.com/site/getCoin' \ +-b 'SESSDATA=xxx;DedeUserID=1;' +``` + +
+查看响应示例: + + +```json +{ + "code": 0, + "status": true, + "data": { + "money": 42.4 + } +} +``` + +
\ No newline at end of file diff --git a/docs/login/login_notice.md b/docs/login/login_notice.md new file mode 100644 index 0000000000..250327e3ba --- /dev/null +++ b/docs/login/login_notice.md @@ -0,0 +1,74 @@ +# 登录记录 + +- [查询登录记录](#查询登录记录) + +--- + +## 查询登录记录 + +> https://api.bilibili.com/x/safecenter/login_notice + +*请求方式:GET* + +认证方式:Cookie(SESSDATA) + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | ---- | ---------- | ------ | ------------------------------------------------------------ | +| mid | num | 用户mid | 必要 | | +| buvid | str | 设备虚拟id | 非必要 | web端为操作登录接口时Cookie中的`buvid3`
若登录设备无`buvid`则留空 | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | --------------------------- | +| code | num | 返回值 | 0:成功
-101:账号未登录
-400:请求错误 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----------- | ---- | ----------- | -------------------------- | +| mid | num | 登录用户mid | | +| device_name | str | 登录设备 | 依靠操作登录接口时的UA决定 | +| login_type | str | 登录方式 | 根据登录接口决定 | +| login_time | str | 登录时间 | YYYY-MM-DD hh:mm:ss | +| location | str | 登录位置 | 依靠ip决定 | +| ip | str | 登录ip | 部分用`*`打码 | + +**示例:** + +查询用户`293793435`设备id为`fuck_chenrui`的登录记录 + +```shell +curl -G 'https://api.bilibili.com/x/safecenter/login_notice' \ +--data-urlencode 'mid=293793435' \ +--data-urlencode 'buvid=fuck_chenrui' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "mid": 293793435, + "device_name": "Chrome浏览器", + "login_type": "扫码登录", + "login_time": "2020-10-02 22:42:38", + "location": "中国陕西渭南", + "ip": "36.40.***.**" + } +} +``` + +
diff --git a/docs/login/member_center.md b/docs/login/member_center.md new file mode 100644 index 0000000000..bd916299cf --- /dev/null +++ b/docs/login/member_center.md @@ -0,0 +1,675 @@ +# 个人中心 + +- [获取我的信息](#获取我的信息) +- [查询每日奖励状态](#查询每日奖励状态) +- [查询每日投币获得经验数](#查询每日投币获得经验数) +- [查询大会员状态](#查询大会员状态) +- [查询账号安全情况](#查询账号安全情况) +- [查询账号实名认证状态](#查询账号实名认证状态) +- [查询实名认证详细信息](#查询实名认证详细信息) +- [查询硬币变化情况](#查询硬币变化情况) +- [修改个人签名](#修改个人签名) + +--- + +## 获取我的信息 + +> https://api.bilibili.com/x/member/web/account + +*请求方式:GET* + +认证方式:Cookie(SESSDATA)或APP + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ---------- | ---- | ------------ | ----------- | ---- | +| access_key | str | APP登录Token | APP方式必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ----------------------------- | +| code | num | 返回值 | 0:成功
-101:账号未登录 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| --------- | ---- | -------------- | --------------------------------------- | +| mid | num | 我的mid | | +| uname | str | 我的昵称 | | +| userid | str | 我的用户名 | | +| sign | str | 我的签名 | | +| birthday | str | 我的生日 | YYYY-MM-DD | +| sex | str | 我的性别 | 男 女 保密 | +| nick_free | bool | 是否未设置昵称 | false:设置过昵称
true:未设置昵称 | +| rank | str | 我的会员等级 | | + +**示例:** + +```shell +curl 'https://api.bilibili.com/x/member/web/account' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code":0, + "message":"0", + "ttl":1, + "data":{ + "mid":293793435, + "uname":"社会易姐QwQ", + "userid":"bili_84675323391", + "sign":"高中技术宅一枚,爱好MC&电子&8-bit音乐&数码&编程,资深猿厨,粉丝群:1136462265", + "birthday":"2002-03-05", + "sex":"男", + "nick_free":false, + "rank":"正式会员" + } +} +``` + +
+ +## 查询每日奖励状态 + +> https://api.bilibili.com/x/member/web/exp/reward + +*请求方式:GET* + +认证方式:Cookie(SESSDATA)或APP + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ---------- | ---- | ------------ | ----------- | ---- | +| access_key | str | APP登录Token | APP方式必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ----------------------------- | +| code | num | 返回值 | 0:成功
-101:账号未登录 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------------- | ---- | -------------------- | ------------------------------------------------------------ | +| login | bool | 每日登录 | false:未完成
true:已完成
完成奖励5经验 | +| watch | bool | 每日观看 | false:未完成
true:已完成
完成奖励5经验 | +| coins | num | 每日投币所奖励的经验 | 上限为50
注:该值更新存在延迟
[另外一个专门API](#查询每日投币获得经验数) | +| share | bool | 每日分享 | false:未完成
true:已完成
完成奖励5经验 | +| email | bool | 绑定邮箱 | false:未完成
true:已完成 | +| tel | bool | 绑定手机号 | false:未完成
true:已完成
首次完成完成奖励100经验 | +| safe_question | bool | 设置密保问题 | false:未完成
true:已完成 | +| identify_card | bool | 实名认证 | false:未完成
true:已完成
首次完成奖励50经验 | + +**示例:** + +```shell +curl 'https://api.bilibili.com/x/member/web/exp/reward' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "login": true, + "watch": true, + "coins": 30, + "share": true, + "email": true, + "tel": true, + "safe_question": true, + "identify_card": true + } +} +``` + +
+ +## 查询每日投币获得经验数 + +>https://www.bilibili.com/plus/account/exp.php + +*请求方式:GET* + +认证方式:仅可Cookie(SESSDATA) + +鉴权方式:Cookie中`DedeUserID`存在且不为0 + +该接口实时更新,未发现延迟 + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------------------- | ----------- | +| code | num | 返回值 | 0:成功 | +| message | str | 错误信息 | 默认为0 | +| number | num | 每日投币所奖励的经验 | 上限为50
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "number": 20 +} +``` + + + +## 查询大会员状态 + +> https://api.bilibili.com/x/vip/web/user/info + +*请求方式:GET* + +认证方式:仅可Cookie(SESSDATA) + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ----------------------------- | +| code | num | 返回值 | 0:成功
-101:账号未登录 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------------ | ---- | ---------------- | ------------------------------------------------------------ | +| mid | num | 我的mid | | +| vip_type | num | 大会员类型 | 0:无
1:月度
2:年度 | +| vip_status | num | 大会员状态 | 1:正常
2:由于IP地址更换过于频繁,服务被冻结
3:你的大会员账号风险过高,大会员功能已被锁定 | +| vip_due_date | num | 大会员到期时间 | 时间戳 毫秒 | +| vip_pay_type | num | 是否已购买大会员 | 0:未购买
1:已购买 | +| theme_type | num | 0 | 作用尚不明确 | + +**示例:** + +```shell +curl 'https://api.bilibili.com/x/vip/web/user/info' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "mid": 293793435, + "vip_type": 2, + "vip_status": 1, + "vip_due_date": 1612454400000, + "vip_pay_type": 1, + "theme_type": 0 + } +} +``` + +
+ +## 查询账号安全情况 + +> https://passport.bilibili.com/web/site/user/info + +*请求方式:GET* + +认证方式:Cookie(SESSDATA)或APP + +鉴权方式:如用Cookie方式认证时Cookie中`DedeUserID`存在且不为0 + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ---------- | ---- | ------------ | ----------- | ---- | +| access_key | str | APP登录Token | APP方式必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ----------------------------- | +| code | num | 返回值 | 0:成功
-101:账号未登录 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------------- | ---- | ---------------- | ---- | +| account_info | obj | 账号绑定信息 | | +| account_safe | obj | 密码安全信息 | | +| account_sns | obj | 互联登录绑定信息 | | +| account_other | obj | | | + +`data`中的`account_info`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------------------ | ---- | -------------- | ------------------------------- | +| hide_tel | str | 绑定的手机号 | 星号隐藏部分信息 | +| hide_mail | str | 绑定的邮箱 | 星号隐藏部分信息 | +| bind_tel | bool | 是否绑定手机号 | false:未绑定
true:已绑定 | +| bind_mail | bool | 是否绑定邮箱 | false:未绑定
true:已绑定 | +| tel_verify | bool | 是否验证手机号 | false:未验证
true:已验证 | +| mail_verify | bool | 是否验证邮箱 | false:未验证
true:已验证 | +| unneeded_check | bool | 是否未设置密码 | false:已设置
true:未设置 | +| realname_certified | bool | 是否实名认证 | false:已认证
true:未认证 | + +`data`中的`account_safe`对象: + +| 字段 | 类型 | 内容 | 备注 | +| --------- | ---- | ---------------- | ----------------------------- | +| Score | num | 账号安全等级 | 0-100
已弃用? | +| score_new | num | 新版账号安全等级 | 0-100 | +| pwd_level | num | 当前密码强度等级 | 1:弱
2:中
3:强 | +| security | bool | 当前密码是否安全 | false:不安全
true:安全 | + +`data`中的`account_sns`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----------- | ---- | ------------ | ------------------------ | +| weibo_bind | num | 是否绑定微博 | 0:未绑定
1:已绑定 | +| qq_bind | num | 是否绑定qq | 0:未绑定
1:已绑定 | +| wechat_bind | num | 是否绑定微信 | 0:未绑定
1:已绑定 | + +`data`中的`account_other`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---------- | ---- | ----- | ------------ | +| skipVerify | bool | false | 作用尚不明确 | + +**示例:** + +```shell +curl 'https://passport.bilibili.com/web/site/user/info' \ +-b 'SESSDATA=xxx;DedeUserID=1;' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "data": { + "account_info": { + "hide_tel": "153*****056", + "hide_mail": "144****@qq.com", + "bind_tel": true, + "bind_mail": true, + "tel_verify": true, + "mail_verify": true, + "unneeded_check": false, + "realname_certified": true + }, + "account_safe": { + "Score": 90, + "score_new": 100, + "pwd_level": 3, + "security": true + }, + "account_sns": { + "weibo_bind": 1, + "qq_bind": 1, + "wechat_bind": 1 + }, + "account_other": { + "skipVerify": false + } + } +} +``` + +
+ +## 查询账号实名认证状态 + +> https://api.bilibili.com/x/member/realname/status + +*请求方式:GET* + +认证方式:Cookie(SESSDATA)或APP + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ---------- | ---- | ------------ | ----------- | ---- | +| access_key | str | APP登录Token | APP方式必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ----------------------------- | +| code | num | 返回值 | 0:成功
-101:账号未登录 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------ | ---- | ------------ | ------------------------ | +| status | num | 实名认证状态 | 0:未认证
1:已认证 | + +**示例:** + +当前状态为已认证 + +```shell +curl 'https://api.bilibili.com/x/member/realname/status' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "status": 1 + } +} +``` + +
+ +## 查询实名认证详细信息 + +> https://api.bilibili.com/x/member/realname/apply/status + +*请求方式:GET* + +认证方式:Cookie(SESSDATA)或APP + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ---------- | ---- | ------------ | ----------- | ---- | +| access_key | str | APP登录Token | APP方式必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ----------------------------- | +| code | num | 返回值 | 0:成功
-101:账号未登录 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | obj | 数据本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| --------- | ---- | ------------ | ------------------------------------------------------------ | +| status | num | 认证状态 | 1:已认证
3:未认证 | +| remark | str | 驳回信息 | 默认为空 | +| realname | str | 实名姓名 | 星号隐藏完全信息 | +| card | str | 证件号码 | 星号隐藏部分信息 | +| card_type | num | 证件类型代码 | 0:身份证
2:港澳居民来往内地通行证
3:台湾居民来往大陆通行证
4:护照(中国签发)
5:外国人永久居留证
6:其他国家或地区身份证明 | + +```shell +curl 'https://api.bilibili.com/x/member/realname/apply/status' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "status": 1, + "remark": "", + "realname": "***", + "card": "6****************7", + "card_type": 0 + } +} +``` + +
+ +## 查询硬币变化情况 + +> httpsss://api.bilibili.com/x/member/web/coin/log + +*请求方式:GET* + +认证方式:Cookie(SESSDATA)或APP + +仅能查询最近一周的情况 + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ---------- | ---- | ------------ | ----------- | ---- | +| access_key | str | APP登录Token | APP方式必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ----------------------------- | +| code | num | 返回值 | 0:成功
-101:账号未登录 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | obj | 数据本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----- | ------ | ---------------- | ---- | +| list | array | 变化记录条目列表 | | +| count | num | 变化记录条目数 | | + +`data`中的`list`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | ----------------- | ---- | +| 0 | obj | 变化记录条目1 | | +| n | obj | 变化记录条目(n+1) | | +| …… | obj | …… | …… | + +`list`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------ | ---- | -------- | ---------------------- | +| time | str | 变化时间 | YYYY-MM-DD HH:MM:SS | +| delta | num | 变化量 | 正值为收入,负值为支出 | +| reason | str | 变化说明 | | + +**示例:** + +```shell +curl 'https://api.bilibili.com/x/member/web/coin/log' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "list": [ + { + "time": "2020-05-19 23:58:29", + "delta": -1, + "reason": "给视频 BV1j5411s7M8 打赏" + }, + { + "time": "2020-05-19 16:02:53", + "delta": -1, + "reason": "给视频 BV1Ht4y117A1 打赏" + }, + { + "time": "2020-05-19 15:38:42", + "delta": 0.1, + "reason": "给视频 BV1nb411C7aa 打赏" + }, + { + "time": "2020-05-19 02:19:20", + "delta": 1, + "reason": "登录奖励" + }, + { + "time": "2020-05-18 22:34:04", + "delta": -1, + "reason": "给视频 BV1Bp4y1Q7uw 打赏" + }, + { + "time": "2020-05-18 22:33:59", + "delta": -1, + "reason": "给视频 BV1j5411s7M8 打赏" + }, + { + "time": "2020-05-18 02:45:53", + "delta": 1, + "reason": "登录奖励" + }, + { + "time": "2020-05-17 03:02:38", + "delta": 1, + "reason": "登录奖励" + }, + { + "time": "2020-05-16 01:57:02", + "delta": 1, + "reason": "登录奖励" + }, + { + "time": "2020-05-15 11:10:35", + "delta": 0.2, + "reason": "给视频 BV1Yt41137T6 打赏" + }, + { + "time": "2020-05-15 00:34:27", + "delta": 1, + "reason": "登录奖励" + }, + { + "time": "2020-05-14 02:11:37", + "delta": 1, + "reason": "登录奖励" + }, + { + "time": "2020-05-13 02:12:28", + "delta": 1, + "reason": "登录奖励" + } + ], + "count": 13 + } +} +``` + +
+ +## 修改个人签名 + +> https://api.bilibili.com/x/member/web/sign/update + +*请求方式:POST* + +认证方式:Cookie(SESSDATA)或APP + +修改签名不会立即生效,会等待审核队列稍后生效 + +**正文参数( application/x-www-form-urlencoded ):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ---------- | ---- | ------------------------ | -------------- | -------------------------------------------- | +| access_key | str | APP登录Token | APP方式必要 | | +| user_sign | str | 要设置的签名内容 | 非必要 | 删除签名留空或省去即可
最多支持70个字符 | +| csrf | str | CSRF Token(位于cookie) | Cookie方式必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------------------ | +| code | num | 返回值 | 0:成功
-101:账号未登录
-111:csrf校验失败
40015:签名包含敏感词
40021:签名不能包含表情图片
40022:签名过长 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | + +**示例:** + +更新个人标签为`高中技术宅一枚,爱好MC&电子&8-bit音乐&数码&编程,资深猿厨,粉丝群:1136462265` + +```shell +curl 'https://api.bilibili.com/x/member/web/sign/update' \ +--data-urlencode 'user_sign=高中技术宅一枚,爱好MC&电子&8-bit音乐&数码&编程,粉丝群:1136462265' \ +--data-urlencode 'csrf=xxx' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code":0, + "message":"0", + "ttl":1 +} +``` + +
+ + diff --git a/docs/manga/Activity.md b/docs/manga/Activity.md new file mode 100644 index 0000000000..afc25ecb84 --- /dev/null +++ b/docs/manga/Activity.md @@ -0,0 +1,79 @@ +# 漫画任务操作 + +- [漫画任务操作](#漫画任务操作) + - [分享漫画](#分享漫画) + +## 分享漫画 + +> https://manga.bilibili.com/twirp/activity.v1.Activity/ShareComic + +_请求方式:POST_ + +认证方式:Cookie(SESSDATA)/ APP + +**正文参数( application/x-www-form-urlencoded ):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| -------- | ---- | ---- | ------ | ------- | +| platform | str | 平台 | 必要 | android | + +**json 回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---- | --------- | -------- | ------------------------------------------------------- | +| code | num / str | 返回值 | 见对应表格 | +| msg | str | 错误信息 | | +| meta | obj | 错误信息 | invalid_argument 时存在,例如 `{"argument":"platform"}` | +| data | obj | | `code` 为 0,`msg` 为空时存在 | + +`code` - `msg` 对应表: + +| code | code 类型 | msg | 备注 | +| ---------------- | --------- | ------------------ | --------------------------- | +| 0 | num | 空 | 分享成功,`data` 存在 | +| 0 | num | 今日已分享 | | +| invalid_argument | str | xxxx must be valid | xxxx 字段为必须,`meta`存在 | +| unauthenticated | str | must login | 必须登录才能分享 | + +`data` 对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----- | ---- | -------- | ---- | +| point | num | 获取积分 | | + +**示例:** + +```bash +curl -X POST https://manga.bilibili.com/twirp/activity.v1.Activity/ShareComic \ +-b "SESSDATA=xxxxx" \ +--data-urlencode 'platform=android' +``` + +
+分享成功: + +```json +{ + "code": 0, + "msg": "", + "data": { + "point": 5 + } +} +``` + +
+ +
+今日已分享: + +```json +{ + "code": 0, + "msg": "今日已分享" +} +``` + +
diff --git a/docs/manga/ClockIn.md b/docs/manga/ClockIn.md new file mode 100644 index 0000000000..36681ed3b0 --- /dev/null +++ b/docs/manga/ClockIn.md @@ -0,0 +1,217 @@ +# 签到 + +> https://manga.bilibili.com/twirp/activity.v1.Activity/ClockIn + +*请求方式:POST* + +认证方式:Cookie(SESSDATA)/ APP + +**正文参数( application/x-www-form-urlencoded ):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +|----------|-----|----|-----|---------| +| platform | str | 平台 | 必要 | android | +| device | str | 平台 | 非必要 | h5 | + +**正文参数( application/json ):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +|------|-----|------|-----|-------| +| type | num | | 非必要 | 补签时使用 | +| date | str | 补签日期 | 必要 | 补签时使用 | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +|------|-----------|------|--------------------------------------------| +| code | num / str | 返回值 | 0:成功
invalid_argument:今日已签到 | +| msg | str | 错误信息 | 成功:空
已签到:clockin clockin is duplicate | +| meta | obj | 错误信息 | 今日已签到时存在 | +| data | obj | | | + +**示例:** + +普通签到: + +```bash +curl -L -X POST 'https://manga.bilibili.com/twirp/activity.v1.Activity/ClockIn' \ +-H 'Cookie: SESSDATA=xxx' \ +-H 'Content-Type: application/x-www-form-urlencoded' \ +--data-urlencode 'platform=android' +``` + +
+签到成功: + +```json +{ + "code": 0, + "msg": "", + "data": {} +} +``` + +
+ +
+今日已签到: + +```json +{ + "code": "invalid_argument", + "msg": "clockin clockin is duplicate", + "meta": { + "argument": "clockin" + } +} +``` + +
+ +补签: + +```bash +curl -L 'https://manga.bilibili.com/twirp/activity.v1.Activity/ClockIn?platform=android' \ +-H 'Cookie: SESSDATA=xxx' \ +-H 'content-type: application/json;charset=UTF-8' \ +-d '{"type":0,"date":"2023-02-15"}' +``` + +
+补签成功: + +```json +{ + "code": 0, + "msg": "", + "data": {} +} +``` + +
+ +# 查询签到状态 + +> https://manga.bilibili.com/twirp/activity.v1.Activity/GetClockInInfo + +*请求方式:POST* + +认证方式:Cookie(SESSDATA)/ APP + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +|------|-----|------|------| +| code | num | 返回值 | 0:成功 | +| msg | str | 错误信息 | 空 | +| data | obj | 信息本体 | | + +`data` 对象: + +| 字段 | 类型 | 内容 | 备注 | +|-------------------|-------|------------------|------------------| +| day_count | num | 连续签到天数 | | +| status | num | 今日是否已签到 | 0:未签到
1:已签到 | +| credit_icon | str | | | +| sign_before_icon | str | | | +| sign_today_icon | str | | | +| breathe_icon | str | | | +| new_credit_x_icon | str | | | +| coupon_pic | str | | | +| points | array | 一次签到周期中每次签到可获得点数 | | +| point_infos | array | | | + +`point_infos`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +|--------------|------|---------|----| +| point | num | 签到可获取积分 | | +| origin_point | num | | | +| is_activity | bool | | | +| title | str | 签到奖励描述 | | + +**示例:** + +```bash +curl -L -X POST 'https://manga.bilibili.com/twirp/activity.v1.Activity/GetClockInInfo' \ +-H 'Cookie: SESSDATA=xxx' +``` + +
+成功: + +```json +{ + "code": 0, + "msg": "", + "data": { + "day_count": 58, + "status": 1, + "points": [ + 10, + 20, + 20, + 10, + 10, + 10, + 30 + ], + "credit_icon": "https://i0.hdslb.com/bfs/static/manga/artifact/sign-resource/v2/9da6QImiK_w192_h192.png", + "sign_before_icon": "https://i0.hdslb.com/bfs/static/manga/artifact/sign-resource/v2/BuA6z3lhN_w192_h192.png", + "sign_today_icon": "https://i0.hdslb.com/bfs/static/manga/artifact/sign-resource/v2/TWSLUHbbg_w192_h192.png", + "breathe_icon": "http://i0.hdslb.com/bfs/static/manga/artifact/sign-resource/anime.breathe.svga", + "point_infos": [ + { + "point": 10, + "origin_point": 10, + "is_activity": false, + "title": "10积分" + }, + { + "point": 20, + "origin_point": 20, + "is_activity": false, + "title": "20积分" + }, + { + "point": 20, + "origin_point": 20, + "is_activity": false, + "title": "20积分" + }, + { + "point": 10, + "origin_point": 10, + "is_activity": false, + "title": "10积分" + }, + { + "point": 10, + "origin_point": 10, + "is_activity": false, + "title": "10积分" + }, + { + "point": 10, + "origin_point": 10, + "is_activity": false, + "title": "10积分" + }, + { + "point": 30, + "origin_point": 30, + "is_activity": false, + "title": "30积分+福利券" + } + ], + "new_credit_x_icon": "https://i0.hdslb.com/bfs/static/manga/artifact/sign-resource/v2/QP5DsW2S_w192_h192.png", + "coupon_pic": "https://i0.hdslb.com/bfs/static/manga/artifact/sign-resource/v2/Yalqqoiz_w402_h162.png" + } +} +``` + +
\ No newline at end of file diff --git a/docs/manga/Comic.md b/docs/manga/Comic.md new file mode 100644 index 0000000000..af9d4bb1a1 --- /dev/null +++ b/docs/manga/Comic.md @@ -0,0 +1,4223 @@ +# 购买漫画章节 + +> https://manga.bilibili.com/twirp/comic.v1.Comic/BuyEpisode + +*请求方式:POST* + +认证方式:Cookie(SESSDATA)/ APP + +**URL参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ---------- | ---- | ------------------------ | -------------- | ------------------------------------------------------------ | +| access_key | str | APP登录凭证 | 必要 | 使用APP鉴权方式时必填 | +| appkey | str | cc8617fd6961e070 | 非必要 | | +| mobi_app | str | android_comic | 非必要 | | +| version | str | 4.13.0 | 非必要 | | +| build | str | 36413002 | 非必要 | | +| channel | str | bilicomic | 非必要 | | +| platform | str | android | 必要 | | +| device | str | android | 非必要 | | +| buvid | str | | 非必要 | | +| machine | str | samsung+SM-G9730 | 非必要 | | +| is_teenager | num | 0 | 非必要 | | +| no_recommend | num | 0 | 非必要 | | +| ts | num | 秒级时间戳 | 非必要 | | + +**正文参数( application/json ):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| -------- | ---- | ------------------------ | ------ | ------------------------------------------------- | +| epId | num | 章节id | 必要 | | +| buyMethod | num | 购买方式 | 必要 | 2:漫读券
4:新人等免
5:通用券 | +| couponId | num | 漫读券id | 必要 | | +| comicId | num | 漫画id | 可选 | buyMethod:4为必要| +| autoPayGoldStatus | num | 2 | 可选 | buyMethod:2,5 为必要
buyMethod:4为不必要 | +| isPresale | num | 0 | 可选 | buyMethod:2,5 为必要
buyMethod:4为不必要 | + +漫读券购买 + +``` +{ + "epId": 484366, + "buyMethod": 2, + "couponId": 7461430, + "autoPayGoldStatus": 2, + "isPresale": 0 +} +``` + +等就免费(新人等免) +``` +{ + "ep_id": 321913, + "comic_id": 26564, + "buy_method": 4 +} +``` + +通用券购买 + +``` +{ + "epId": 484366, + "buyMethod": 5, + "couponId": 0, + "autoPayGoldStatus": 2, + "payAmount": 1, + "isPresale": 0 +} +``` + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------------------ | +| code | num | 返回值 | 0:成功
0:本话无需购买
1:没有足够的卡券使用次数
| +| msg | str | 错误信息 | | + +**示例:** + +```bash +curl -L -X POST 'https://manga.bilibili.com/twirp/comic.v1.Comic/BuyEpisode?platform=android' \ +-H 'Cookie: SESSDATA=xxx;' \ +-H 'Content-Type: application/json' \ +--data-raw '{ + "epId": 484366, + "buyMethod": 2, + "couponId": 7461430, + "autoPayGoldStatus": 2, + "isPresale": 0 +}' +``` + +
+购买成功: + +```json +{ + "code": 0, + "msg": "", + "data": { + "auto_use_item": "" + } +} +``` + +
+ +# 获取漫画详情 + +> https://manga.bilibili.com/twirp/comic.v1.Comic/ComicDetail + +*请求方式:POST* + +认证方式:Cookie(SESSDATA)/ APP + +**URL参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ---------- | ---- | ------------------------ | -------------- | ------------------------------------------------------------ | +| access_key | str | APP登录凭证 | 非必要 | 可不登录访问 | +| appkey | str | cc8617fd6961e070 | 非必要 | | +| mobi_app | str | android_comic | 非必要 | | +| version | str | 4.13.0 | 非必要 | | +| build | str | 36413002 | 非必要 | | +| channel | str | bilicomic | 非必要 | | +| platform | str | android | 非必要 | 可选值:web/android | +| device | str | android | 必要 | 如不填则不会获取ep_list信息,可选值:pc/android | +| buvid | str | | 非必要 | | +| machine | str | samsung+SM-G9730 | 非必要 | | +| is_teenager | num | 0 | 非必要 | | +| no_recommend | num | 0 | 非必要 | | +| ts | num | 秒级时间戳 | 非必要 | | + +**正文参数( application/json ):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| -------- | ---- | ------------------------ | ------ | ------------------------------------------------- | +| comicId | num | 漫画id | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------------------ | +| code | num | 返回值 | 0:成功 | +| msg | str | 错误信息 | | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------------------ | +| id | num | 漫画id | | +| title | str | 漫画名称 | | +| comic_type | num | 0,1 | | +| page_default | num | 0,1,2,4,8 | | +| page_allow | num | | | +| horizontal_cover | str | 横板封面 | | +| square_cover | str | 方形封面 | | +| vertical_cover | str | 竖版封面 | | +| author_name | array | 作者列表 | | +| styles | array | | | +| last_ord | num | 最新一话序号 | | +| is_finish | num | 完结状态
0:未完结 1:已完结 | | +| status | num | -1,0 | | +| fav | num | | | +| read_order | num | | | +| evaluate | num | 漫画简介 | | +| total | num | 总话数 | | +| ep_list | array | 章节信息 | | +| release_time | str | | | +| is_limit | num | | | +| read_epid | num | | | +| last_read_time | str | | | +| is_download | num | | | +| read_short_title | str | | | +| styles2 | array | | | +| renewal_time | str | | | +| last_short_title | str | 最新一话短标题 | | +| discount_type | num | | | +| discount | num | | | +| discount_end | str | | | +| no_reward | bool | | | +| batch_discount_type | num | | | +| ep_discount_type | num | | | +| has_fav_activity | bool | | | +| fav_free_amount | num | | | +| allow_wait_free | bool | 是否等就免费 | | +| wait_hour | num | 等待时间(小时) | | +| wait_free_at | num | 等待时间(小时) | | +| no_danmaku | num | | | +| auto_pay_status | num | | | +| no_month_ticket | bool | | | +| immersive | bool | | | +| no_discount | bool | | | +| show_type | num | | | +| pay_mode | num | | | +| chapters | array | | | +| classic_lines | str | 漫画简介 | | +| pay_for_new | num | | | +| fav_comic_info | obj | | | +| serial_status | num | | | +| series_info | obj | | | +| album_count | num | | | +| wiki_id | num | | | +| disable_coupon_amount | num | | | +| japan_comic | bool |是否为日本漫画 | | +| interact_value | num | | | +| temporary_finish_time | str | | | +| video | | | | +| introduction | str | 介绍| | +| comment_status | num | | | +| no_screenshot | bool | | | +| type | num | | | +| vomic_cvs | array | | | +| no_rank | bool | | | +| presale_eps | array | | | +| presale_text | str | | | +| presale_discount | num | | | +| no_leaderboard | bool | | | + +`ep_list`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------------------ | +| id | num | 章节id | | +| ord | num | 章节序号,最新章节排在前面 | | +| read | num | 是否阅读过,0:没有 1:阅读过 | | +| pay_mode | num | | | +| is_locked | bool | 是否处于锁定状态 | | +| pay_gold | num | 解锁所需漫币 | | +| size | num | 文件大小(字节) | | +| short_title | str | 短标题 | | +| is_in_free | bool | | | +| title | str | 标题 | | +| cover | str | 封面 | | +| pub_time | str | 发布日期 | | +| comments | num | 评论数 | | +| unlock_expire_at | str | | | +| unlock_type | num | | | +| allow_wait_free | bool | | | +| progress | str | | | +| like_count | num | 点赞数 | | +| chapter_id | num | | | +| type | num | | | +| extra | num | | | + +`styles2`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------------------ | +| id | num | 漫画风格id | | +| name | str | 漫画风格名称 | | + +`fav_comic_info`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------------------ | +| has_fav_activity | bool | | | +| fav_free_amount | num | | | +| fav_coupon_type | num | | | + +`series_info`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------------------ | +| id | num | | | +| comics | array | | | + +**示例:** + +```bash +curl -L -X POST 'https://manga.bilibili.com/twirp/comic.v1.Comic/ComicDetail?device=pc' \ +-H 'Content-Type: application/json' \ +--data-raw '{ + "comicId": 28500 +}' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "msg": "", + "data": { + "id": 28500, + "title": "夏日重现", + "comic_type": 1, + "page_default": 4, + "page_allow": 15, + "horizontal_cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "square_cover": "http://i0.hdslb.com/bfs/manga-static/35fa9fa6190aa528f26f6e1341d9ee80b66b535f.jpg", + "vertical_cover": "https://i0.hdslb.com/bfs/manga-static/965cdb5c83e0b2066b4b60973ba7f4242f592967.jpg", + "author_name": [ + "田中靖规", + "集英社" + ], + "styles": [ + "悬疑灵异" + ], + "last_ord": 152, + "is_finish": 1, + "status": 0, + "fav": 0, + "read_order": 0, + "evaluate": "【此漫画的翻译由版权方提供】青梅竹马的潮死了——。听闻这个悲报,慎平回到了阔别已久的故乡和歌山市·日都岛与家人再会并出席葬礼。但是岛上貌似陡生异变,充斥着不寻常的气息……?\n夏日孤岛上的悬疑剧!!\n\n", + "total": 167, + "ep_list": [ + { + "id": 779804, + "ord": 152, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 17973126, + "short_title": "后篇(4)", + "is_in_free": false, + "title": "2026未然凶宅-后篇(4)", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2022-05-12 00:00:00", + "comments": 218, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 458, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 779788, + "ord": 151, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 17654401, + "short_title": "后篇(3)", + "is_in_free": false, + "title": "2026未然凶宅-后篇(3)", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2022-05-12 00:00:00", + "comments": 31, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 171, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 779782, + "ord": 150, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 18250988, + "short_title": "后篇(2)", + "is_in_free": false, + "title": "2026未然凶宅-后篇(2)", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2022-05-12 00:00:00", + "comments": 39, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 179, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 779752, + "ord": 149, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 19374429, + "short_title": "后篇(1)", + "is_in_free": false, + "title": "2026未然凶宅-后篇(1)", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2022-05-12 00:00:00", + "comments": 41, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 174, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 779751, + "ord": 148, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 20993207, + "short_title": "前篇(3)", + "is_in_free": false, + "title": "2026未然凶宅-前篇(3)", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2022-05-12 00:00:00", + "comments": 52, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 187, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 779749, + "ord": 147, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 17048075, + "short_title": "前篇(2)", + "is_in_free": false, + "title": "2026未然凶宅-前篇(2)", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2022-05-12 00:00:00", + "comments": 60, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 191, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 779748, + "ord": 146, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 21462932, + "short_title": "前篇(1)", + "is_in_free": false, + "title": "2026未然凶宅-前篇(1)", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2022-05-12 00:00:00", + "comments": 151, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 233, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 546499, + "ord": 145, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 26980054, + "short_title": "139", + "is_in_free": false, + "title": "第139话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2021-02-01 12:00:00", + "comments": 1314, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 3241, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 543783, + "ord": 144, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 33822142, + "short_title": "138", + "is_in_free": false, + "title": "第138话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2021-01-25 12:00:00", + "comments": 232, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 514, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 539917, + "ord": 143, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 20551895, + "short_title": "137", + "is_in_free": false, + "title": "第137话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2021-01-11 12:00:00", + "comments": 124, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 461, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 529960, + "ord": 142, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 18729857, + "short_title": "136", + "is_in_free": false, + "title": "第136话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-12-28 12:00:00", + "comments": 112, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 432, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 526882, + "ord": 141, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 9528871, + "short_title": "135", + "is_in_free": false, + "title": "第135话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-12-21 12:00:00", + "comments": 64, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 397, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 524737, + "ord": 140, + "read": 0, + "pay_mode": 0, + "is_locked": false, + "pay_gold": 0, + "size": 4658617, + "short_title": "记录", + "is_in_free": false, + "title": "023", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-12-14 12:00:00", + "comments": 63, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 368, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 520819, + "ord": 139, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 19569820, + "short_title": "134", + "is_in_free": false, + "title": "第134话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-12-07 12:00:00", + "comments": 234, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 411, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 518563, + "ord": 138, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 0, + "short_title": "133", + "is_in_free": false, + "title": "第133话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-11-30 12:00:00", + "comments": 52, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 404, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 516460, + "ord": 137, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 16923412, + "short_title": "132", + "is_in_free": false, + "title": "第132话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-11-23 12:00:00", + "comments": 66, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 408, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 513494, + "ord": 136, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 22397411, + "short_title": "131", + "is_in_free": false, + "title": "第131话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-11-16 00:00:00", + "comments": 73, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 385, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 509309, + "ord": 135, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 11417949, + "short_title": "130", + "is_in_free": false, + "title": "第130话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-11-02 12:00:00", + "comments": 121, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 415, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 507403, + "ord": 134, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 13421937, + "short_title": "129", + "is_in_free": false, + "title": "第129话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-26 00:00:00", + "comments": 108, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 382, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 505464, + "ord": 133, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 0, + "short_title": "128", + "is_in_free": false, + "title": "第128话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 101, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 414, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 504084, + "ord": 132, + "read": 0, + "pay_mode": 0, + "is_locked": false, + "pay_gold": 0, + "size": 714738, + "short_title": "记录", + "is_in_free": false, + "title": "022", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 38, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 327, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 503749, + "ord": 131, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 13733489, + "short_title": "127", + "is_in_free": false, + "title": "第127话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 87, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 383, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 498378, + "ord": 130, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 0, + "short_title": "126", + "is_in_free": false, + "title": "第126话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 83, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 392, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 496100, + "ord": 129, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 17044238, + "short_title": "125", + "is_in_free": false, + "title": "第125话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 59, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 378, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 494999, + "ord": 128, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 19000950, + "short_title": "124", + "is_in_free": false, + "title": "第124话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 53, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 369, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 494997, + "ord": 127, + "read": 0, + "pay_mode": 0, + "is_locked": false, + "pay_gold": 0, + "size": 757788, + "short_title": "记录", + "is_in_free": false, + "title": "021", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 73, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 295, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 494996, + "ord": 126, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 25583325, + "short_title": "123", + "is_in_free": false, + "title": "第123话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 88, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 341, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 494995, + "ord": 125, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 22945986, + "short_title": "122", + "is_in_free": false, + "title": "第122话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 114, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 382, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 494994, + "ord": 124, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 22007815, + "short_title": "121", + "is_in_free": false, + "title": "第121话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 60, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 336, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 494992, + "ord": 123, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 14200387, + "short_title": "120", + "is_in_free": false, + "title": "第120话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 98, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 349, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 494990, + "ord": 122, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 20253075, + "short_title": "119", + "is_in_free": false, + "title": "第119话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 153, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 352, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 494986, + "ord": 121, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 34545559, + "short_title": "118", + "is_in_free": false, + "title": "第118话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 97, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 353, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 494983, + "ord": 120, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 26875814, + "short_title": "117", + "is_in_free": false, + "title": "第117话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 38, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 326, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 494982, + "ord": 119, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 24302773, + "short_title": "116", + "is_in_free": false, + "title": "第116话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 60, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 311, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 494981, + "ord": 118, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 22563845, + "short_title": "115", + "is_in_free": false, + "title": "第115话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 103, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 332, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 494979, + "ord": 117, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 26357441, + "short_title": "114", + "is_in_free": false, + "title": "第114话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 190, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 325, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 494978, + "ord": 116, + "read": 0, + "pay_mode": 0, + "is_locked": false, + "pay_gold": 0, + "size": 3055913, + "short_title": "记录", + "is_in_free": false, + "title": "020", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 27, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 303, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 494977, + "ord": 115, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 27213199, + "short_title": "113", + "is_in_free": false, + "title": "第113话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 131, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 344, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 494876, + "ord": 114, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 27036215, + "short_title": "112", + "is_in_free": false, + "title": "第112话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 84, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 306, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 494872, + "ord": 113, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 18077367, + "short_title": "111", + "is_in_free": false, + "title": "第111话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 66, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 317, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 494852, + "ord": 112, + "read": 0, + "pay_mode": 0, + "is_locked": false, + "pay_gold": 0, + "size": 6547152, + "short_title": "记录", + "is_in_free": false, + "title": "019", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 20, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 286, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 494849, + "ord": 111, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 17709563, + "short_title": "110", + "is_in_free": false, + "title": "第110话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 42, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 326, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 494848, + "ord": 110, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 0, + "short_title": "109", + "is_in_free": false, + "title": "第109话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 42, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 325, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 494847, + "ord": 109, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 20356850, + "short_title": "108", + "is_in_free": false, + "title": "第108话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 52, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 322, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 494846, + "ord": 108, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 21075013, + "short_title": "107", + "is_in_free": false, + "title": "第107话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 29, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 314, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 494698, + "ord": 107, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 19078032, + "short_title": "106", + "is_in_free": false, + "title": "第106话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 81, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 320, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 494696, + "ord": 106, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 21291294, + "short_title": "105", + "is_in_free": false, + "title": "第105话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 56, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 350, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 494691, + "ord": 105, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 22030863, + "short_title": "104", + "is_in_free": false, + "title": "第104话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 56, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 305, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 494690, + "ord": 104, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 17400960, + "short_title": "103", + "is_in_free": false, + "title": "第103话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 33, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 304, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 494688, + "ord": 103, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 0, + "short_title": "102", + "is_in_free": false, + "title": "第102话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 53, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 329, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 552061, + "ord": 102.5, + "read": 0, + "pay_mode": 0, + "is_locked": false, + "pay_gold": 0, + "size": 1922541, + "short_title": "记录", + "is_in_free": false, + "title": "018", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2022-05-12 00:00:00", + "comments": 8, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 30, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 494682, + "ord": 102, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 20268719, + "short_title": "101", + "is_in_free": false, + "title": "第101话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 92, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 317, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 494666, + "ord": 101, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 17542840, + "short_title": "100", + "is_in_free": false, + "title": "第100话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 48, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 323, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 494665, + "ord": 100, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 27598387, + "short_title": "99", + "is_in_free": false, + "title": "第99话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 109, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 350, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 494664, + "ord": 99, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 24852154, + "short_title": "98", + "is_in_free": false, + "title": "第98话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 64, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 326, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 494663, + "ord": 98, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 20721168, + "short_title": "97", + "is_in_free": false, + "title": "第97话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 57, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 309, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 494656, + "ord": 97, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 15000137, + "short_title": "96", + "is_in_free": false, + "title": "第96话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 126, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 339, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 552060, + "ord": 96.5, + "read": 0, + "pay_mode": 0, + "is_locked": false, + "pay_gold": 0, + "size": 3910437, + "short_title": "记录", + "is_in_free": false, + "title": "017", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2022-05-12 00:00:00", + "comments": 5, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 30, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 494650, + "ord": 96, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 25062481, + "short_title": "95", + "is_in_free": false, + "title": "第95话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 89, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 360, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 494645, + "ord": 95, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 19376143, + "short_title": "94", + "is_in_free": false, + "title": "第94话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 82, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 397, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 494638, + "ord": 94, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 34661163, + "short_title": "93", + "is_in_free": false, + "title": "第93话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 64, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 352, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 494637, + "ord": 93, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 33798923, + "short_title": "92", + "is_in_free": false, + "title": "第92话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 55, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 350, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 494632, + "ord": 92, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 19784232, + "short_title": "91", + "is_in_free": false, + "title": "第91话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 81, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 387, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 494627, + "ord": 91, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 18532096, + "short_title": "90", + "is_in_free": false, + "title": "第90话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 121, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 371, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 494009, + "ord": 90, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 19527018, + "short_title": "89", + "is_in_free": false, + "title": "第89话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 57, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 330, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 552059, + "ord": 89.5, + "read": 0, + "pay_mode": 0, + "is_locked": false, + "pay_gold": 0, + "size": 2034891, + "short_title": "记录", + "is_in_free": false, + "title": "016", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2022-05-12 00:00:00", + "comments": 14, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 33, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 493979, + "ord": 89, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 18494693, + "short_title": "88", + "is_in_free": false, + "title": "第88话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 87, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 351, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 493950, + "ord": 88, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 17416462, + "short_title": "87", + "is_in_free": false, + "title": "第87话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 71, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 343, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 493944, + "ord": 87, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 0, + "short_title": "86", + "is_in_free": false, + "title": "第86话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 88, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 357, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 552058, + "ord": 86.5, + "read": 0, + "pay_mode": 0, + "is_locked": false, + "pay_gold": 0, + "size": 4837743, + "short_title": "记录", + "is_in_free": false, + "title": "015", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2022-05-10 00:00:00", + "comments": 9, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 42, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 491230, + "ord": 86, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 21039936, + "short_title": "85", + "is_in_free": false, + "title": "第85话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 59, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 319, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 491229, + "ord": 85, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 14463535, + "short_title": "84", + "is_in_free": false, + "title": "第84话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 87, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 344, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 552057, + "ord": 84.5, + "read": 0, + "pay_mode": 0, + "is_locked": false, + "pay_gold": 0, + "size": 11625156, + "short_title": "记录", + "is_in_free": false, + "title": "014", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2022-05-10 00:00:00", + "comments": 12, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 46, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 491228, + "ord": 84, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 15900351, + "short_title": "83", + "is_in_free": false, + "title": "第83话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 71, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 347, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 491227, + "ord": 83, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 19182670, + "short_title": "82", + "is_in_free": false, + "title": "第82话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 67, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 355, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 491226, + "ord": 82, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 18627336, + "short_title": "81", + "is_in_free": false, + "title": "第81话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 45, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 347, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 491225, + "ord": 81, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 15574642, + "short_title": "80", + "is_in_free": false, + "title": "第80话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 51, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 346, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 491224, + "ord": 80, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 24885059, + "short_title": "79", + "is_in_free": false, + "title": "第79话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 79, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 350, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 491223, + "ord": 79, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 22427296, + "short_title": "78", + "is_in_free": false, + "title": "第78话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 80, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 356, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 552056, + "ord": 78.5, + "read": 0, + "pay_mode": 0, + "is_locked": false, + "pay_gold": 0, + "size": 1551067, + "short_title": "记录", + "is_in_free": false, + "title": "013", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2022-05-12 00:00:00", + "comments": 5, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 38, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 491222, + "ord": 78, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 18725322, + "short_title": "77", + "is_in_free": false, + "title": "第77话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 100, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 354, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 491221, + "ord": 77, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 16185606, + "short_title": "76", + "is_in_free": false, + "title": "第76话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 59, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 341, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 491220, + "ord": 76, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 18886387, + "short_title": "75", + "is_in_free": false, + "title": "第75话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 88, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 370, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 491215, + "ord": 75, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 19228812, + "short_title": "74", + "is_in_free": false, + "title": "第74话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 106, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 343, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 552054, + "ord": 74.5, + "read": 0, + "pay_mode": 0, + "is_locked": false, + "pay_gold": 0, + "size": 1106084, + "short_title": "记录", + "is_in_free": false, + "title": "012", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2022-05-12 00:00:00", + "comments": 9, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 43, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 491214, + "ord": 74, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 17213820, + "short_title": "73", + "is_in_free": false, + "title": "第73话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 105, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 358, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 552053, + "ord": 73.5, + "read": 0, + "pay_mode": 0, + "is_locked": false, + "pay_gold": 0, + "size": 1510250, + "short_title": "记录", + "is_in_free": false, + "title": "011", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2022-05-10 00:00:00", + "comments": 7, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 46, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 491213, + "ord": 73, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 12514556, + "short_title": "72", + "is_in_free": false, + "title": "第72话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 38, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 356, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 491212, + "ord": 72, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 24337518, + "short_title": "71", + "is_in_free": false, + "title": "第71话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 45, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 353, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 491211, + "ord": 71, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 22329539, + "short_title": "70", + "is_in_free": false, + "title": "第70话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 45, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 343, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 491210, + "ord": 70, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 12721444, + "short_title": "69", + "is_in_free": false, + "title": "第69话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 59, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 363, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 491209, + "ord": 69, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 14948018, + "short_title": "68", + "is_in_free": false, + "title": "第68话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 48, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 363, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 491208, + "ord": 68, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 19604576, + "short_title": "67", + "is_in_free": false, + "title": "第67话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 97, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 370, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 491207, + "ord": 67, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 18529368, + "short_title": "66", + "is_in_free": false, + "title": "第66话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 136, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 386, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 491206, + "ord": 66, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 19616688, + "short_title": "65", + "is_in_free": false, + "title": "第65话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 79, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 350, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 491205, + "ord": 65, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 17889729, + "short_title": "64", + "is_in_free": false, + "title": "第64话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 77, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 369, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 552052, + "ord": 64.5, + "read": 0, + "pay_mode": 0, + "is_locked": false, + "pay_gold": 0, + "size": 1729726, + "short_title": "记录", + "is_in_free": false, + "title": "010", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2022-05-10 00:00:00", + "comments": 47, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 47, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 485887, + "ord": 64, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 24816564, + "short_title": "63", + "is_in_free": false, + "title": "第63话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 96, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 363, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 485886, + "ord": 63, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 21990493, + "short_title": "62", + "is_in_free": false, + "title": "第62话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 161, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 377, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 485885, + "ord": 62, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 16121252, + "short_title": "61", + "is_in_free": false, + "title": "第61话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 35, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 338, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 485884, + "ord": 61, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 23868117, + "short_title": "60", + "is_in_free": false, + "title": "第60话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 54, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 353, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 485883, + "ord": 60, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 14907334, + "short_title": "59", + "is_in_free": false, + "title": "第59话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 57, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 360, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 485882, + "ord": 59, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 21003716, + "short_title": "58", + "is_in_free": false, + "title": "第58话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 49, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 362, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 485881, + "ord": 58, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 21336454, + "short_title": "57", + "is_in_free": false, + "title": "第57话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 43, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 335, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 485880, + "ord": 57, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 15975510, + "short_title": "56", + "is_in_free": false, + "title": "第56话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 43, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 346, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 485879, + "ord": 56, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 16073891, + "short_title": "55", + "is_in_free": false, + "title": "第55话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 48, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 352, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 552051, + "ord": 55.5, + "read": 0, + "pay_mode": 0, + "is_locked": false, + "pay_gold": 0, + "size": 1380370, + "short_title": "记录", + "is_in_free": false, + "title": "009", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2022-05-12 00:00:00", + "comments": 8, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 49, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 485878, + "ord": 55, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 13480749, + "short_title": "54", + "is_in_free": false, + "title": "第54话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 56, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 357, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 485877, + "ord": 54, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 21882584, + "short_title": "53", + "is_in_free": false, + "title": "第53话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 38, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 372, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 485853, + "ord": 53, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 23862198, + "short_title": "52", + "is_in_free": false, + "title": "第52话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 56, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 388, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 485852, + "ord": 52, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 23267613, + "short_title": "51", + "is_in_free": false, + "title": "第51话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 43, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 370, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 485851, + "ord": 51, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 17028529, + "short_title": "50", + "is_in_free": false, + "title": "第50话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 63, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 380, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 485850, + "ord": 50, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 21963399, + "short_title": "49", + "is_in_free": false, + "title": "第49话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 122, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 418, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 552050, + "ord": 49.5, + "read": 0, + "pay_mode": 0, + "is_locked": false, + "pay_gold": 0, + "size": 1650224, + "short_title": "记录", + "is_in_free": false, + "title": "008", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2022-05-12 00:00:00", + "comments": 15, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 57, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 485849, + "ord": 49, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 0, + "short_title": "48", + "is_in_free": false, + "title": "第48话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 71, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 392, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 485848, + "ord": 48, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 18582327, + "short_title": "47", + "is_in_free": false, + "title": "第47话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 64, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 401, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 485847, + "ord": 47, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 28025152, + "short_title": "46", + "is_in_free": false, + "title": "第46话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 78, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 444, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 485846, + "ord": 46, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 18644930, + "short_title": "45", + "is_in_free": false, + "title": "第45话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 27, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 402, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 485845, + "ord": 45, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 17555220, + "short_title": "44", + "is_in_free": false, + "title": "第44话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 71, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 418, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 485844, + "ord": 44, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 23713922, + "short_title": "43", + "is_in_free": false, + "title": "第43话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 41, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 392, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 485842, + "ord": 43, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 22048242, + "short_title": "42", + "is_in_free": false, + "title": "第42话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 36, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 400, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 485841, + "ord": 42, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 17956496, + "short_title": "41", + "is_in_free": false, + "title": "第41话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 45, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 423, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 485840, + "ord": 41, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 20461324, + "short_title": "40", + "is_in_free": false, + "title": "第40话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 102, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 441, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 485839, + "ord": 40, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 16463871, + "short_title": "39", + "is_in_free": false, + "title": "第39话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 38, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 404, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 485836, + "ord": 39, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 18664684, + "short_title": "38", + "is_in_free": false, + "title": "第38话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 42, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 403, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 485835, + "ord": 38, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 17811979, + "short_title": "37", + "is_in_free": false, + "title": "第37话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 46, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 422, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 552049, + "ord": 37.5, + "read": 0, + "pay_mode": 0, + "is_locked": false, + "pay_gold": 0, + "size": 4923840, + "short_title": "记录", + "is_in_free": false, + "title": "005~007", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2022-05-12 00:00:00", + "comments": 9, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 59, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 485834, + "ord": 37, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 22221360, + "short_title": "36", + "is_in_free": false, + "title": "第36话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 78, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 410, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 485833, + "ord": 36, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 19204738, + "short_title": "35", + "is_in_free": false, + "title": "第35话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 42, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 397, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 485832, + "ord": 35, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 17688181, + "short_title": "34", + "is_in_free": false, + "title": "第34话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 43, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 407, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 485831, + "ord": 34, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 14314953, + "short_title": "33", + "is_in_free": false, + "title": "第33话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 138, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 430, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 485826, + "ord": 33, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 15190983, + "short_title": "32", + "is_in_free": false, + "title": "第32话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 80, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 409, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 484535, + "ord": 32, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 21701429, + "short_title": "31", + "is_in_free": false, + "title": "第31话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 81, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 408, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 484534, + "ord": 31, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 15619952, + "short_title": "30", + "is_in_free": false, + "title": "第30话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 61, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 429, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 484528, + "ord": 30, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 18250579, + "short_title": "29", + "is_in_free": false, + "title": "第29话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 60, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 435, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 484526, + "ord": 29, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 27051218, + "short_title": "28", + "is_in_free": false, + "title": "第28话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 59, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 406, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 484514, + "ord": 28, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 0, + "short_title": "27", + "is_in_free": false, + "title": "第27话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 63, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 420, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 484507, + "ord": 27, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 17113482, + "short_title": "26", + "is_in_free": false, + "title": "第26话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 98, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 447, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 484500, + "ord": 26, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 14359689, + "short_title": "25", + "is_in_free": false, + "title": "第25话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 63, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 407, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 484483, + "ord": 25, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 15182223, + "short_title": "24", + "is_in_free": false, + "title": "第24话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 55, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 421, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 484478, + "ord": 24, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 20914179, + "short_title": "23", + "is_in_free": false, + "title": "第23话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 75, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 447, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 484474, + "ord": 23, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 17764811, + "short_title": "22", + "is_in_free": false, + "title": "第22话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 65, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 434, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 484461, + "ord": 22, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 27296421, + "short_title": "21", + "is_in_free": false, + "title": "第21话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 51, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 441, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 484443, + "ord": 21, + "read": 0, + "pay_mode": 0, + "is_locked": false, + "pay_gold": 0, + "size": 15462050, + "short_title": "记录", + "is_in_free": false, + "title": "004", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 115, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 455, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 484433, + "ord": 20, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 20824911, + "short_title": "20", + "is_in_free": false, + "title": "第20话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 127, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 497, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 484422, + "ord": 19, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 25714866, + "short_title": "19", + "is_in_free": false, + "title": "第19话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 106, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 537, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 484395, + "ord": 18, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 24927577, + "short_title": "18", + "is_in_free": false, + "title": "第18话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 94, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 527, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 484387, + "ord": 17, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 0, + "short_title": "17", + "is_in_free": false, + "title": "第17话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 48, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 493, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 484377, + "ord": 16, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 19775909, + "short_title": "16", + "is_in_free": false, + "title": "第16话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 70, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 503, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 552046, + "ord": 15.5, + "read": 0, + "pay_mode": 0, + "is_locked": false, + "pay_gold": 0, + "size": 3261603, + "short_title": "记录", + "is_in_free": false, + "title": "003", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2021-02-18 13:17:06", + "comments": 39, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 385, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 484376, + "ord": 15, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 23101595, + "short_title": "15", + "is_in_free": false, + "title": "第15话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 97, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 510, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 484375, + "ord": 14, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 21456269, + "short_title": "14", + "is_in_free": false, + "title": "第14话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 130, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 510, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 484373, + "ord": 13, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 22942430, + "short_title": "13", + "is_in_free": false, + "title": "第13话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 64, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 522, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 484372, + "ord": 12, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 20225389, + "short_title": "12", + "is_in_free": false, + "title": "第12话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 67, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 499, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 552048, + "ord": 11.5, + "read": 0, + "pay_mode": 0, + "is_locked": false, + "pay_gold": 0, + "size": 1569935, + "short_title": "记录", + "is_in_free": false, + "title": "002", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2022-05-12 00:00:00", + "comments": 10, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 52, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 484369, + "ord": 11, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 18897621, + "short_title": "11", + "is_in_free": false, + "title": "第11话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 82, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 566, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 484367, + "ord": 10, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 28021344, + "short_title": "10", + "is_in_free": false, + "title": "第10话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 65, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 519, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 484366, + "ord": 9, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 14198049, + "short_title": "9", + "is_in_free": false, + "title": "第9话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 72, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 544, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 484365, + "ord": 8, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 14137875, + "short_title": "8", + "is_in_free": false, + "title": "第8话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 92, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 575, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 552047, + "ord": 7.5, + "read": 0, + "pay_mode": 0, + "is_locked": false, + "pay_gold": 0, + "size": 1794952, + "short_title": "记录", + "is_in_free": false, + "title": "001", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2022-05-12 00:00:00", + "comments": 23, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 80, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 484360, + "ord": 7, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 20283011, + "short_title": "7", + "is_in_free": false, + "title": "第7话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 83, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 589, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 484351, + "ord": 6, + "read": 0, + "pay_mode": 1, + "is_locked": true, + "pay_gold": 49, + "size": 18898536, + "short_title": "6", + "is_in_free": false, + "title": "第6话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 43, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 626, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 484350, + "ord": 5, + "read": 0, + "pay_mode": 0, + "is_locked": false, + "pay_gold": 0, + "size": 18623472, + "short_title": "5", + "is_in_free": false, + "title": "第5话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 86, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 1017, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 484347, + "ord": 4, + "read": 0, + "pay_mode": 0, + "is_locked": false, + "pay_gold": 0, + "size": 15209423, + "short_title": "4", + "is_in_free": false, + "title": "第4话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 85, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 976, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 484345, + "ord": 3, + "read": 0, + "pay_mode": 0, + "is_locked": false, + "pay_gold": 0, + "size": 15210025, + "short_title": "3", + "is_in_free": false, + "title": "第3话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 72, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 972, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 484344, + "ord": 2, + "read": 0, + "pay_mode": 0, + "is_locked": false, + "pay_gold": 0, + "size": 26269998, + "short_title": "2", + "is_in_free": false, + "title": "第2话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 147, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 1001, + "chapter_id": 0, + "type": 0, + "extra": 0 + }, + { + "id": 484342, + "ord": 1, + "read": 0, + "pay_mode": 0, + "is_locked": false, + "pay_gold": 0, + "size": 81495763, + "short_title": "1", + "is_in_free": false, + "title": "第1话", + "cover": "http://i0.hdslb.com/bfs/manga-static/94dcf91d49253ab62b601a72772a00fddb5d0c32.jpg", + "pub_time": "2020-10-21 00:00:00", + "comments": 407, + "unlock_expire_at": "0000-00-00 00:00:00", + "unlock_type": 0, + "allow_wait_free": false, + "progress": "", + "like_count": 1283, + "chapter_id": 0, + "type": 0, + "extra": 0 + } + ], + "release_time": "2020.10.21", + "is_limit": 0, + "read_epid": 0, + "last_read_time": "", + "is_download": 1, + "read_short_title": "", + "styles2": [ + { + "id": 1081, + "name": "悬疑灵异" + } + ], + "renewal_time": "", + "last_short_title": "后篇(4)", + "discount_type": 0, + "discount": 0, + "discount_end": "0001-01-01 00:00:00", + "no_reward": false, + "batch_discount_type": 0, + "ep_discount_type": 0, + "has_fav_activity": false, + "fav_free_amount": 0, + "allow_wait_free": false, + "wait_hour": 0, + "wait_free_at": "0000-00-00 00:00:00", + "no_danmaku": 0, + "auto_pay_status": 0, + "no_month_ticket": false, + "immersive": false, + "no_discount": false, + "show_type": 0, + "pay_mode": 1, + "chapters": [], + "classic_lines": "【此漫画的翻译由版权方提供】青梅竹马的潮死了——。听闻这个悲报,慎平回到了阔别已久的故乡和歌山市·日都岛与家人再会并出席葬礼。但是岛上貌似陡生异变,充斥着不寻常的气息……?\n夏日孤岛上的悬疑剧!!\n\n", + "pay_for_new": 0, + "fav_comic_info": { + "has_fav_activity": false, + "fav_free_amount": 0, + "fav_coupon_type": 0 + }, + "serial_status": 0, + "series_info": { + "id": 0, + "comics": [] + }, + "album_count": 0, + "wiki_id": 131075, + "disable_coupon_amount": 2, + "japan_comic": true, + "interact_value": "57514", + "temporary_finish_time": "", + "video": null, + "introduction": "最聪明的男主打最聪明的反派!", + "comment_status": 1, + "no_screenshot": true, + "type": 0, + "vomic_cvs": [], + "no_rank": true, + "presale_eps": [], + "presale_text": "", + "presale_discount": 0, + "no_leaderboard": true + } +} +``` + +
diff --git a/docs/manga/Download.md b/docs/manga/Download.md new file mode 100644 index 0000000000..07b0a97dc7 --- /dev/null +++ b/docs/manga/Download.md @@ -0,0 +1,256 @@ +# 获取当前话全部图片地址 + +> https://manga.bilibili.com/twirp/comic.v1.Comic/GetImageIndex + +*请求方式:POST* + +认证方式:Cookie(SESSDATA)/ APP + +**URL参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ---------- | ---- | ------------------------ | -------------- | ------------------------------------------------------------ | +| access_key | str | APP登录凭证 | 必要 | 使用APP鉴权方式时必填 | +| appkey | str | cc8617fd6961e070 | 非必要 | | +| mobi_app | str | android_comic | 非必要 | | +| version | str | 4.21.0 | 非必要 | | +| build | str | 36421000 | 非必要 | | +| channel | str | bilicomic | 非必要 | | +| platform | str | android | 非必要 | | +| device | str | android | 非必要 | | +| buvid | str | XY118701XXXXXXXXX104911DXXXXXCAEXXXXE | 非必要 | 长度为37 | +| machine | str | | 非必要 | 手机品牌+型号 | +| is_teenager | num | 0 | 非必要 | | +| no_recommend | num | 0 | 非必要 | | +| ts | num | 秒级时间戳 | 非必要 | + +**正文参数( application/json ):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| -------- | ---- | ------------------------ | ------ | ------------------------------------------------- | +| epId(ep_id) | num | 当前话的id | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------------------ | +| code | num | 返回值 | 0:成功 | +| msg | str | 错误信息 | | +| data | obj | | | + +`data` 对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------------------ | +| path | str | .index 文件路径 | 解密详见[此处](./unlock_index_data.md) | +| images | array | 本话图片信息 | | +| last_modified | str | 本话信息最后修改时间 | | +| host | str | `https://manga.hdslb.com` | | +| video | obj | | | + +`images` 数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------------------ | +| path | str | 图片的路径 | 不包含host | +| x | num | 图片宽度 | 单位:像素px | +| y | num | 图片高度 | 单位:像素px | +| video_path | str | | | +| video_size | str | | | + +`video` 对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------------------ | +| svid | str | | | +| filename | str | | | +| route | str | | | +| resource | array | | | +| raw_width | str | | | +| raw_height | str | | | +| raw_rotate | str | | | +| img_urls | array | | | +| bin_url | str | | | +| img_x_len | num | | | +| img_x_size | num | | | +| img_y_len | num | | | +| img_y_size | num | | | + + +**示例:** + +```bash +curl -L -X POST 'https://manga.bilibili.com/twirp/comic.v1.Comic/GetImageIndex' \ +-H 'Cookie: SESSDATA=xxx;' \ +-H 'Content-Type: application/json' \ +--data-raw '{ + "ep_id": 321912 +}' +``` + +
+查看响应示例: + + +```json +{ + "code": 0, + "msg": "", + "data": { + "path": "/bfs/manga/26564/321912/data.index?token=80eab62fef85c1c134a6399f817a938f&ts=63404145", + "images": [ + { + "path": "/bfs/manga/11e404e602fa9f709bfb89d692ac56d2e17f974d.jpg", + "x": 1600, + "y": 2268, + "video_path": "", + "video_size": "0" + }, + { + "path": "/bfs/manga/bf1c48540b68f473b429317d8f6fa8cdb6eed3a5.jpg", + "x": 1600, + "y": 2268, + "video_path": "", + "video_size": "0" + }, + { + "path": "/bfs/manga/a46cfe90cfb49c67a4dbfc0002e5bc3d87d02963.jpg", + "x": 1600, + "y": 2268, + "video_path": "", + "video_size": "0" + } + ], + "last_modified": "2019-05-13 21:15:53", + "host": "https://manga.hdslb.com", + "video": { + "svid": "", + "filename": "", + "route": "", + "resource": [], + "raw_width": "0", + "raw_height": "0", + "raw_rotate": "0", + "img_urls": [], + "bin_url": "", + "img_x_len": 10, + "img_x_size": 160, + "img_y_len": 10, + "img_y_size": 90 + } + } +} +``` + +
+ +# 获取某一图片的token + +> https://manga.bilibili.com/twirp/comic.v1.Comic/ImageToken + +*请求方式:POST* + +认证方式:Cookie(SESSDATA)/ APP + +**URL参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------------ | ---- | ------------------------------------- | ------ | --------------------- | +| access_key | str | APP登录凭证 | 必要 | 使用APP鉴权方式时必填 | +| appkey | str | cc8617fd6961e070 | 非必要 | | +| mobi_app | str | android_comic | 非必要 | | +| version | str | 4.21.0 | 非必要 | | +| build | str | 36421000 | 非必要 | | +| channel | str | bilicomic | 非必要 | | +| platform | str | android | 非必要 | | +| device | str | android | 非必要 | | +| buvid | str | XY118701XXXXXXXXX104911DXXXXXCAEXXXXE | 非必要 | 长度为37 | +| machine | str | samsung+SM-G9730 | 非必要 | 手机品牌+型号 | +| is_teenager | num | 0 | 非必要 | | +| no_recommend | num | 0 | 非必要 | | +| ts | num | 秒级时间戳 | 非必要 | | + +**正文参数( application/json ):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | ---- | ------------------- | ------ | ------------------------------------------------------------ | +| urls | str | 请求token的图片地址 | 必要 | `[\"https://i0.hdslb.com{path}\"]`
{path}代表图片的相对网站路径,支持jpg和webp | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ----- | -------- | ------- | +| code | num | 返回值 | 0:成功 | +| msg | str | 错误信息 | | +| data | array | | | + +`data` 数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----- | ---- | ------------------- | ------------------------------------ | +| url | str | 图片下载的地址 | 此时网址开头 https://manga.hdslb.com | +| token | str | 图片下载需要的token | | + +**示例:** + +```bash +curl -L -X POST 'https://manga.bilibili.com/twirp/comic.v1.Comic/ImageToken' \ +-H 'Cookie: SESSDATA=xxx;' \ +-H 'Content-Type: application/json' \ +--data-raw '{ + "urls": "[\"https://i0.hdslb.com/bfs/manga/11e404e602fa9f709bfb89d692ac56d2e17f974d.jpg\"]" +}' +``` + +
+查看响应示例: + + + +```json +{ + "code": 0, + "msg": "", + "data": [ + { + "url": "https://manga.hdslb.com/bfs/manga/11e404e602fa9f709bfb89d692ac56d2e17f974d.jpg", + "token": "36931815abb35857627a22c347dc1c86&ts=634045c2" + } + ] +} +``` + +
+ +# 下载图片 + +*请求方式:GET* + +在上一步获取token的基础上,构建如下的url + +例如获取到此token + +``` +{ + "code": 0, + "msg": "", + "data": [ + { + "url": "https://manga.hdslb.com/bfs/manga/11e404e602fa9f709bfb89d692ac56d2e17f974d.jpg", + "token": "36931815abb35857627a22c347dc1c86&ts=634045c2" + } + ] +} +``` + +则访问以下网址即可,注意需要添加`?token=`。此网址有效期较短 + +``` +https://manga.hdslb.com/bfs/manga/11e404e602fa9f709bfb89d692ac56d2e17f974d.jpg?token=36931815abb35857627a22c347dc1c86&ts=634045c2 +``` + +备注:若访问 `https://i0(或i1).hdslb.com/bfs/manga(或new_dyn或archive)/11e404e602fa9f709bfb89d692ac56d2e17f974d.jpg` 均无法获取 diff --git a/docs/manga/Season.md b/docs/manga/Season.md new file mode 100644 index 0000000000..225144c6fb --- /dev/null +++ b/docs/manga/Season.md @@ -0,0 +1,439 @@ +# 漫画赛季 + +- [漫画赛季](#漫画赛季) + - [获取赛季信息](#获取赛季信息) + - [赛季奖励领取](#赛季奖励领取) + +_漫画赛季仅在 app 端可见,但可以使用 Cookie 鉴权_ + +## 获取赛季信息 + +> https://manga.bilibili.com/twirp/user.v1.Season/GetSeasonInfo + +_请求方式:POST_ + +接口不鉴权可查看基本信息,鉴权后可查看赛季个人信息和赛季规则。 + +认证方式:Cookie(SESSDATA)/ APP + +**json 回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | -------- | ---- | +| code | num | 返回值 | | +| msg | str | 错误信息 | | +| data | obj | 信息本体 | | + +`data` 对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------------------ | ----- | ------------------ | -------------------------- | +| current_time | str | 当前时间字符串 | ISO 8601 | +| start_time | str | 赛季开始 | ISO 8601 | +| end_time | str | 赛季结束 | ISO 8601 | +| remain_amount | num | 拥有积分 | 未登录为 `0` | +| season_id | str | 第几个赛季 | | +| tasks | array | 待领取奖励的任务 | 未登录/没有可领取时为 `[]` | +| welfare | array | 赛季奖励 | | +| next | obj | 未知 | 未登录为 `null` | +| cover | str | 版头图片 | | +| today_tasks | array | 今日的任务完成情况 | | +| text | obj | 赛季相关文案 | 未登录为 `null` | +| season_clock_in | obj | | | +| announcement | obj | 未知 | 未登录为 `null` | +| lottery | obj | | | +| mission_point_rate | str | | | +| season_title | str | 赛季标题 | | +| point_rate | obj | | | +| rank | obj | | | + +`data` 对象的 `rank`: + +| 字段 | 类型 | 内容 | 备注 | +| ---------- | ---- | ----- | ---- | +| is_visible | bool | false | | + +`data` 对象的 `tasks`: + +| 字段 | 类型 | 内容 | 备注 | +| ------ | ---- | ---------- | ----------------------- | +| title | str | 任务描述 | | +| id | str | | | +| status | num | 任务状态 | 应该都是`1`:待领取奖励 | +| type | num | | 与 today_tasks 的一致 | +| amount | num | 可获取积分 | | +| ctime | str | 完成时间 | ISO 8601 | + +`data` 对象的 `next`: + +| 字段 | 类型 | 内容 | 备注 | +| ------------ | ---- | ---- | ---- | +| title | str | 空 | | +| amount | num | 0 | | +| gap_time | num | 0 | | +| current_time | num | 0 | | + +`data` 对象的 `text`: + +| 字段 | 类型 | 内容 | 备注 | +| ------------ | ---- | ------------ | ---- | +| notice | str | 赛季公告 | | +| clonckInRule | str | 赛季签到规则 | | + +`data` 对象的 `announcement`: + +| 字段 | 类型 | 内容 | 备注 | +| -------- | ---- | ----- | ---- | +| title | str | 空 | | +| jump_url | str | 空 | | +| enable | bool | false | | + +`data` 对象的 `point_rate`: + +| 字段 | 类型 | 内容 | 备注 | +| ------------- | ---- | ---- | ---- | +| sign_in | num | 0 | | +| game | num | 0 | | +| daily_mission | num | 0 | | +| week_mission | num | 0 | | + +`data` 对象的 `lottery`: + +| 字段 | 类型 | 内容 | 备注 | +| ---------------------- | ---- | ------------ | ---- | +| lottery_act_id | str | '0' | | +| enable_lottery | bool | 是否开启抽奖 | | +| lottery_id | str | '0' | | +| advance_lottery_act_id | str | '0' | | +| advance_pool_id | str | '0' | | + +`data` 对象的 `season_clock_in`: + +| 字段 | 类型 | 内容 | 备注 | +| ----------------- | ---- | ---------------- | ---- | +| is_super_luck | bool | | | +| draw_luck_time | str | | | +| prize_type | num | | | +| prize_title | str | | | +| add_up_sign | num | 赛季连续签到天数 | | +| title | str | 签到标题 | | +| sign_old_amount | num | | | +| preluck_amount | num | | | +| continuous_days | num | 连续签到天数 | | +| address_id | str | | | +| has_super_prize | bool | | | +| subtitle | str | 签到子标题 | | +| prize_image | str | | | +| prize_target_days | num | | | +| prize_amount | num | | | +| tomorrow_amount | num | 明日签到积分 | | +| entrance_tag | str | | | + +`data` 对象的 `today_tasks`: + +| 字段 | 类型 | 内容 | 备注 | +| ---------- | ---------- | ------------ | ------------------------------------------- | +| type | num | | | +| title | str | 任务标题 | 可能为空字符串 | +| amount | num | 可获得积分 | | +| status | num | 完成状态 | 0:未完成
1:待领取奖励
2:已完成 | +| duration | num | 耗时(分) | 直接完成的为 0 | +| comics | comic 数组 | 任务指定漫画 | 仅`type=22`时有内容,所有账号是一致的 | +| page_url | str | 空 | | +| progress | num | 已完成进度 | | +| sub_id | num | | `type` 一致时有效 | +| share_type | num | `0` | | + +`today_tasks`对象的 `comics`: + +| 字段 | 类型 | 内容 | 备注 | +| -------------- | -------- | -------- | ---- | +| comic_id | num | 漫画 id | | +| title | str | 漫画名称 | | +| vertical_cover | str | 漫画封面 | | +| styles | str 数组 | 漫画类型 | | + +`data` 对象的 `welfare`: + +| 字段 | 类型 | 内容 | 备注 | +| --------------- | ---- | ------------ | --------------------------------------------------------- | +| type | num | 奖励类型 | 200-限免卡
202-漫读券
203-优惠券
205-最终宝箱 | +| success | num | 兑换状态 | 0-未兑换
2-已兑换 | +| exchange_amount | num | 积分消耗 | | +| boss_welfare | bool | 最终奖励 | | +| boss_remain | num | 最终奖励剩余 | | +| rank | num | 顺序 | | +| title | str | 空 | | +| url | str | 空 | | +| kind_address_id | str | '0' | | + +**示例:** + +```bash +curl -X POST https://manga.bilibili.com/twirp/user.v1.Season/GetSeasonInfo +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "msg": "", + "data": { + "current_time": "2022-11-30T15:12:00+08:00", + "start_time": "2022-11-14T00:00:00+08:00", + "end_time": "2022-12-11T23:59:00+08:00", + "remain_amount": 0, + "season_id": "35", + "tasks": [], + "welfare": [ + { + "type": 200, + "success": 0, + "exchange_amount": 100, + "boss_welfare": false, + "boss_remain": 0, + "rank": 1, + "title": "", + "url": "", + "kind_address_id": "0" + }, + // 中间的省略 + { + "type": 205, + "success": 0, + "exchange_amount": 0, + "boss_welfare": true, + "boss_remain": 0, + "rank": 21, + "title": "", + "url": "", + "kind_address_id": "0" + } + ], + "next": null, + "cover": "https://i0.hdslb.com/bfs/manga-static/b81fcd291cff74965b71d67e7df261de5790c2cd.png", + "today_tasks": [ + { + "type": 18, + "title": "", + "amount": 20, + "status": 0, + "duration": 30, + "comics": [], + "page_url": "", + "progress": 0, + "sub_id": 1, + "share_type": 0 + }, + { + "type": 20, + "title": "", + "amount": 20, + "status": 0, + "duration": 3, + "comics": [], + "page_url": "", + "progress": 0, + "sub_id": 1, + "share_type": 0 + }, + { + "type": 22, + "title": "", + "amount": 50, + "status": 0, + "duration": 15, + "comics": [ + { + "comic_id": 32190, + "title": "我的成就有点多", + "vertical_cover": "https://i0.hdslb.com/bfs/manga-static/efc403e323656fad24335aef007af5f318879597.png", + "styles": ["都市"] + }, + { + "comic_id": 30538, + "title": "我知道你的秘密", + "vertical_cover": "https://i0.hdslb.com/bfs/manga-static/607f2c13afcf82ebba98f18213033d93bba7d58a.jpg", + "styles": ["悬疑"] + }, + { + "comic_id": 25874, + "title": "桃花宝典", + "vertical_cover": "http://i0.hdslb.com/bfs/manga-static/bb1d33004af7dfbf197572cb9ef1c5fdd19e17a8.jpg", + "styles": ["都市"] + } + ], + "page_url": "", + "progress": 0, + "sub_id": 1, + "share_type": 0 + }, + { + "type": 17, + "title": "阅读3分钟", + "amount": 10, + "status": 0, + "duration": 3, + "comics": [], + "page_url": "", + "progress": 0, + "sub_id": 1, + "share_type": 0 + }, + { + "type": 17, + "title": "阅读5分钟", + "amount": 10, + "status": 0, + "duration": 5, + "comics": [], + "page_url": "", + "progress": 0, + "sub_id": 2, + "share_type": 0 + }, + { + "type": 17, + "title": "阅读10分钟", + "amount": 20, + "status": 0, + "duration": 10, + "comics": [], + "page_url": "", + "progress": 0, + "sub_id": 3, + "share_type": 0 + }, + { + "type": 17, + "title": "阅读20分钟", + "amount": 40, + "status": 0, + "duration": 20, + "comics": [], + "page_url": "", + "progress": 0, + "sub_id": 4, + "share_type": 0 + }, + { + "type": 17, + "title": "阅读30分钟", + "amount": 60, + "status": 0, + "duration": 30, + "comics": [], + "page_url": "", + "progress": 0, + "sub_id": 5, + "share_type": 0 + }, + { + "type": 19, + "title": "每日首次玩猜拳", + "amount": 5, + "status": 0, + "duration": 1, + "comics": [], + "page_url": "", + "progress": 0, + "sub_id": 1, + "share_type": 0 + }, + { + "type": 1, + "title": "打开系统通知", + "amount": 5, + "status": 0, + "duration": 0, + "comics": [], + "page_url": "", + "progress": 0, + "sub_id": 0, + "share_type": 0 + }, + { + "type": 2, + "title": "设置个人偏好", + "amount": 5, + "status": 0, + "duration": 0, + "comics": [], + "page_url": "", + "progress": 0, + "sub_id": 0, + "share_type": 0 + } + ], + "text": null, + "season_clock_in": { + "is_super_luck": false, + "draw_luck_time": "", + "prize_type": 0, + "prize_title": "", + "add_up_sign": 0, + "title": "", + "sign_old_amount": 0, + "preluck_amount": 0, + "continuous_days": 0, + "address_id": "0", + "has_super_prize": false, + "subtitle": "", + "prize_image": "", + "prize_target_days": 0, + "prize_amount": 0, + "tomorrow_amount": 0, + "entrance_tag": "" + }, + "announcement": null, + "lottery": { + "lottery_act_id": "0", + "enable_lottery": true, + "lottery_id": "0", + "advance_lottery_act_id": "0", + "advance_pool_id": "0" + }, + "mission_point_rate": 0, + "season_title": "初冬赛季", + "point_rate": { "sign_in": 0, "game": 0, "daily_mission": 0, "week_mission": 0 }, + "rank": { "is_visible": false } + } +} +``` + +
+ +## 赛季奖励领取 + +> https://manga.bilibili.com/twirp/user.v1.Season/TakeSeasonGifts + +_请求方式:POST_ + +认证方式:Cookie(SESSDATA)/ APP + +**正文参数( application/x-www-form-urlencoded ):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| --------- | ---- | ------- | ------ | --------------- | +| season_id | num | 赛季 id | 必要 | 必须为本赛季 id | + +**json 回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | -------- | ---- | +| code | num | 返回值 | | +| msg | str | 错误信息 | | + +`code` - `msg` 对照表: + +| code | msg | 备注 | +| ---- | ------------------------------------ | ---------------------------- | +| 0 | | 领取成功 | +| 2 | 当前没有正在进行的赛季,无法兑换奖励 | season_id 字段不正确 | +| 7 | 任务已领取或者未完成 | 没有已经完成的 `today_tasks` | diff --git a/docs/manga/User.md b/docs/manga/User.md new file mode 100644 index 0000000000..e8d3e4a37e --- /dev/null +++ b/docs/manga/User.md @@ -0,0 +1,730 @@ +# 获取拥有的漫读券列表 + +> https://manga.bilibili.com/twirp/user.v1.User/GetCoupons + +*请求方式:POST* + +认证方式:Cookie(SESSDATA)/ APP + +**URL参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ---------- | ---- | ------------------------ | -------------- | ------------------------------------------------------------ | +| access_key | str | APP登录凭证 | 必要 | 使用APP鉴权方式时必填 | +| appkey | str | cc8617fd6961e070 | 非必要 | | +| mobi_app | str | android_comic | 非必要 | | +| version | str | 4.13.0 | 非必要 | | +| build | str | 36413002 | 非必要 | | +| channel | str | bilicomic | 非必要 | | +| platform | str | android | 非必要 | | +| device | str | android | 非必要 | | +| buvid | str | | 非必要 | | +| machine | str | samsung+SM-G9730 | 非必要 | | +| is_teenager | num | 0 | 非必要 | | +| no_recommend | num | 0 | 非必要 | | +| ts | num | 秒级时间戳 | 非必要 | | + +**正文参数( application/json ):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| -------- | ---- | ------------------------ | ------ | ------------------------------------------------- | +| pageNum | num | 页数 | 必要 | | +| pageSize | num | 分页大小 | 必要 | 默认20,取值范围[1,100] | +| notExpired | bool | true | 非必要 | | +| tabType | num | 1 | 非必要 | | +| type | num | 0 | 非必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------------------ | +| code | num | 返回值 | 0:成功 | +| msg | str | 错误信息 | | +| data | obj | | | + +`data` 对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------------------ | +| total_remain_amount | num | | | +| user_coupons | array | | | +| coupon_info | obj | | | + +`user_coupons` 数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------------------ | +| ID | num | 漫读券id | | +| remain_amount | num | 漫读券剩余数 | | +| expire_time | num | 过期时间 | | +| reason | num | 获取方式 | | +| type | num | 类型 | | +| ctime | num | 获取时间 | | +| total_amount | num | 漫读券总数 | | +| limits | array | (?) | | +| type_num | num | 7:福利券 | | +| will_expire | num | 是否即将过期?
0:否
1:是 | | +| discount | num | 0 | | +| discount_limit | num | 0 | | +| is_from_card | num | 0 | | +| valid_time | str | 0001-01-01 | | +| discount_base | num | 0 | | + +`coupon_info` 对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------------------ | +| new_coupon_num | num | | | +| coupon_will_expire | num | | | +| rent_will_expire | num | | | +| new_rent_num | num | | | +| discount_will_expire | num | | | +| new_discount_num | num | | | +| month_ticket_will_expire | num | | | +| new_month_ticket_num | num | | | +| silver_will_expire | num | | | +| new_silver_num | num | | | +| remain_item | num | | | +| remain_discount | num | | | +| remain_coupon | num | 拥有的漫读券数量 | | +| remain_silver | num | 拥有的通用券数量 | | +| remain_shop_coupon | num | 拥有的商城优惠券数量 | | +| new_shop_num | num | | | +| shop_will_expire | num | | | +| new_suit_id | num | | | +| remain_suit_coupon | num | | | +| new_suit_num | num | | | +| suit_will_expire | num | | | +| vip_priv_coupon | bool | | | + + +**示例:** + +```bash +curl -L -X POST 'https://manga.bilibili.com/twirp/user.v1.User/GetCoupons' \ +-H 'Cookie: SESSDATA=xxx;' \ +-H 'Content-Type: application/json' \ +--data-raw '{ + "notExpired": true, + "pageNum": 1, + "pageSize": 20, + "tabType": 1, + "type": 0 +}' +``` + +
+查看响应示例: + + +```json +{ + "code": 0, + "msg": "", + "data": { + "total_remain_amount": 1, + "user_coupons": [ + { + "ID": 7473503, + "remain_amount": 1, + "expire_time": "2022-05-24 12:00:33", + "reason": "积分兑换", + "type": "福利券", + "ctime": "2022-05-17 12:00:33", + "total_amount": 1, + "limits": [], + "type_num": 7, + "will_expire": 0, + "discount": 0, + "discount_limit": 0, + "is_from_card": 0, + "valid_time": "0001-01-01", + "discount_base": 0 + } + ], + "coupon_info": { + "new_coupon_num": 0, + "coupon_will_expire": 0, + "rent_will_expire": 0, + "new_rent_num": 0, + "discount_will_expire": 0, + "new_discount_num": 0, + "month_ticket_will_expire": 0, + "new_month_ticket_num": 0, + "silver_will_expire": 0, + "new_silver_num": 0, + "remain_item": 0, + "remain_discount": 0, + "remain_coupon": 1, + "remain_silver": 8, + "remain_shop_coupon": 1, + "new_shop_num": 0, + "shop_will_expire": 0, + "new_suit_id": 60007, + "remain_suit_coupon": 0, + "new_suit_num": 0, + "suit_will_expire": 0, + "vip_priv_coupon": false + } + } +} +``` + +
+ + + +# 获取已购漫画 + +> https://manga.bilibili.com/twirp/user.v1.User/GetAutoBuyComics + +*请求方式:POST* + +认证方式:Cookie(SESSDATA)/ APP + +**URL参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| -------- | ---- | ---- | ------ | ---- | +| device | str | 设备 | 非必要 | | +| platform | str | 平台 | 非必要 | | + +**正文参数( application/json ):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| -------- | ---- | ------------------------ | ------ | ------------------------------------------------- | +| page_num | num | 页数 | 必要 | | +| page_size | num | 分页大小 | 必要 | 默认15 | + + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---------- | -------- | ------- | +| code | num | 返回值 | 0:成功 | +| msg | str | 错误信息 | | +| data | obj(array) | | | + +`data`array中的对象 + +| 字段 | 类型 | 内容 | 备注 | +| ---------------- | ---- | ---------------- | ---- | +| id | num | 内部id | | +| comic_id | str | 漫画id | | +| comic_title | str | 漫画标题 | | +| hcover | str | 横版头图 | | +| scover | str | 方形头图 | | +| vcover | str | 竖版封面图 | | +| bought_ep_count | num | 已购章节数 | | +| gold_status | num | | | +| coupon_status | num | | | +| comic_status | num | 漫画状态 | | +| last_ord | num | 最后一话 | | +| ctime | str | 获取时间 | | +| last_short_title | str | 最后一话的短标题 | | +| bug_type | num | 购买类型 | | +| ep_for_chapters | num | | | +| orders | obj | 自动扣费顺序 | | +| enable_auto_pay | bool | 是否开启自动付费 | | +| type | num | | | + + + +**示例** + +```bash +curl -L -X POST 'https://manga.bilibili.com/twirp/user.v1.User/GetAutoBuyComics' \ +-H "Cookie: xxxxx" \ +-H 'Content-Type: application/json;charset=UTF-8' \ +-H 'User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36' \ +-d '{"page_num": 1,"page_size": 15}' +``` + + +
+查看响应示例: + + +```json +{ + "code": 0, + "msg": "", + "data": [ + { + "id": 20276887, + "comic_id": 26554, + "comic_title": "擅长捉弄的(原)高木同学", + "hcover": "http://i0.hdslb.com/bfs/manga-static/443b4a49be1e92cd204af1472e2a7f41c1df7336.png", + "scover": "http://i0.hdslb.com/bfs/manga-static/e29eb39aed0971851efe5998d3b9c156ba52bb4e.jpg", + "vcover": "http://i0.hdslb.com/bfs/manga-static/9536b3d6c6eaef5992986d6b06d35188c20f4366.jpg", + "bought_ep_count": 13, + "gold_status": 2, + "coupon_status": 2, + "comic_status": 0, + "last_ord": 235, + "ctime": "2022-01-26 21:39:33", + "last_short_title": "235", + "buy_type": 0, + "ep_for_chapters": 0, + "orders": [ + { + "id": 2, + "title": "漫读券" + }, + { + "id": 3, + "title": "通用券" + }, + { + "id": 1, + "title": "漫币" + } + ], + "enable_auto_pay": false, + "type": 0 + }, + { + "id": 15129353, + "comic_id": 29726, + "comic_title": "NEW GAME!", + "hcover": "https://i0.hdslb.com/bfs/manga-static/586df1c03978ef01eac9e6a670f26395f6495ead.jpg", + "scover": "https://i0.hdslb.com/bfs/manga-static/7110c8751fef26b082b5452bd515736a78bf0670.jpg", + "vcover": "https://i0.hdslb.com/bfs/manga-static/d3aa1477dcc9720f9bcee19c775849baad6b4e66.jpg", + "bought_ep_count": 4, + "gold_status": 2, + "coupon_status": 2, + "comic_status": 0, + "last_ord": 180, + "ctime": "2021-06-21 16:29:27", + "last_short_title": "180", + "buy_type": 0, + "ep_for_chapters": 0, + "orders": [ + { + "id": 2, + "title": "漫读券" + }, + { + "id": 3, + "title": "通用券" + }, + { + "id": 1, + "title": "漫币" + } + ], + "enable_auto_pay": false, + "type": 0 + }, + { + "id": 13525712, + "comic_id": 28080, + "comic_title": "终将成为你", + "hcover": "https://i0.hdslb.com/bfs/manga-static/bed69097d5fdc68bff87fce1e168b810448ee145.jpg", + "scover": "https://i0.hdslb.com/bfs/manga-static/855e851b58c805b05b347fddb80a46dcb260afac.jpg", + "vcover": "https://i0.hdslb.com/bfs/manga-static/10e8243b502bd19947cd49a6ac2ea0a9b8c5daa3.jpg", + "bought_ep_count": 5, + "gold_status": 2, + "coupon_status": 2, + "comic_status": 0, + "last_ord": 45, + "ctime": "2021-04-09 08:26:41", + "last_short_title": "第45话", + "buy_type": 9, + "ep_for_chapters": 0, + "orders": [], + "enable_auto_pay": false, + "type": 0 + }, + { + "id": 13469083, + "comic_id": 28198, + "comic_title": "米诺斯的牛肉100%", + "hcover": "http://i0.hdslb.com/bfs/manga-static/75931d991ddd40bc49c655ff3fca770d45eac9aa.jpg", + "scover": "http://i0.hdslb.com/bfs/manga-static/ee37104f5d97bb486e69d660d9a93242a1c2817a.jpg", + "vcover": "http://i0.hdslb.com/bfs/manga-static/be5400d37c1428ecc98a8e2d1772175991a262ed.jpg", + "bought_ep_count": 1, + "gold_status": 2, + "coupon_status": 2, + "comic_status": 0, + "last_ord": 6, + "ctime": "2021-04-06 12:21:20", + "last_short_title": "6", + "buy_type": 0, + "ep_for_chapters": 0, + "orders": [], + "enable_auto_pay": false, + "type": 0 + }, + { + "id": 13436048, + "comic_id": 27545, + "comic_title": "宝石之国", + "hcover": "http://i0.hdslb.com/bfs/manga-static/94637fff52eca04a8f32e19ed0c2f676b9bee96e.png", + "scover": "http://i0.hdslb.com/bfs/manga-static/e538ce332a639809aea70c8e30a19645e9b2ae3e.jpg", + "vcover": "http://i0.hdslb.com/bfs/manga-static/91e03718b03b7d3a2dca53c461b4b84953ce8cb0.jpg", + "bought_ep_count": 11, + "gold_status": 2, + "coupon_status": 2, + "comic_status": 0, + "last_ord": 96, + "ctime": "2021-04-05 00:09:17", + "last_short_title": "96", + "buy_type": 0, + "ep_for_chapters": 0, + "orders": [ + { + "id": 2, + "title": "漫读券" + }, + { + "id": 3, + "title": "通用券" + }, + { + "id": 1, + "title": "漫币" + } + ], + "enable_auto_pay": false, + "type": 0 + }, + { + "id": 13237163, + "comic_id": 27877, + "comic_title": "极主夫道", + "hcover": "https://i0.hdslb.com/bfs/manga-static/5a8b7bd678e2ae135415af31493417ae77bc83dd.png", + "scover": "http://i0.hdslb.com/bfs/manga-static/aa36b8cff89e42c1820e43c483d483ed3eb8d938.png", + "vcover": "http://i0.hdslb.com/bfs/manga-static/96a6b07bcea58955efed4df876bc8f1b5df9d5cc.jpg", + "bought_ep_count": 6, + "gold_status": 2, + "coupon_status": 2, + "comic_status": 0, + "last_ord": 96, + "ctime": "2021-03-27 12:28:27", + "last_short_title": "96", + "buy_type": 0, + "ep_for_chapters": 0, + "orders": [ + { + "id": 2, + "title": "漫读券" + }, + { + "id": 3, + "title": "通用券" + }, + { + "id": 1, + "title": "漫币" + } + ], + "enable_auto_pay": false, + "type": 0 + }, + { + "id": 12913068, + "comic_id": 25519, + "comic_title": "四月是你的谎言", + "hcover": "http://i0.hdslb.com/bfs/manga-static/33cda8ed8e6c89691d5397dc47f8c7c7945a54c4.png", + "scover": "http://i0.hdslb.com/bfs/manga-static/a6ed17ddac9bb568cefeb4eda8f8f3298db6c8cd.jpg", + "vcover": "http://i0.hdslb.com/bfs/manga-static/6d82d75a9a2817a18e16e2b82f76312d0fd02d06.jpg", + "bought_ep_count": 36, + "gold_status": 2, + "coupon_status": 2, + "comic_status": 0, + "last_ord": 44, + "ctime": "2021-03-11 23:58:50", + "last_short_title": "44", + "buy_type": 0, + "ep_for_chapters": 0, + "orders": [ + { + "id": 2, + "title": "漫读券" + }, + { + "id": 3, + "title": "通用券" + }, + { + "id": 1, + "title": "漫币" + } + ], + "enable_auto_pay": false, + "type": 0 + }, + { + "id": 12793711, + "comic_id": 28537, + "comic_title": "前男友成为了那样的男子", + "hcover": "https://i0.hdslb.com/bfs/manga-static/33440f7675a424dcce35459e2392e23e9d345531.jpg", + "scover": "http://i0.hdslb.com/bfs/manga-static/3de961215ad2a96ccf5dbb45d85db88934b545cb.jpg", + "vcover": "https://i0.hdslb.com/bfs/manga-static/77feff2a5f1aab93060e8ce5105e5616cb7313a7.jpg", + "bought_ep_count": 3, + "gold_status": 2, + "coupon_status": 2, + "comic_status": 0, + "last_ord": 54, + "ctime": "2021-03-06 19:20:03", + "last_short_title": "44", + "buy_type": 0, + "ep_for_chapters": 0, + "orders": [ + { + "id": 2, + "title": "漫读券" + }, + { + "id": 3, + "title": "通用券" + }, + { + "id": 1, + "title": "漫币" + } + ], + "enable_auto_pay": false, + "type": 0 + }, + { + "id": 12751111, + "comic_id": 26009, + "comic_title": "辉夜大小姐想让我告白 ~天才们的恋爱头脑战~", + "hcover": "https://i0.hdslb.com/bfs/manga-static/7fe349fd5a3d9522546e1582ad03604e82b1ff41.png", + "scover": "http://i0.hdslb.com/bfs/manga-static/b0ac1e3379e940c47b31209edf016e32e8bcee37.jpg", + "vcover": "https://i0.hdslb.com/bfs/manga-static/6188cad7ec7ac2b0555c0a815f9d2afbe7c0c5cb.jpg", + "bought_ep_count": 2, + "gold_status": 2, + "coupon_status": 2, + "comic_status": 0, + "last_ord": 259, + "ctime": "2021-03-05 00:16:13", + "last_short_title": "269", + "buy_type": 0, + "ep_for_chapters": 0, + "orders": [ + { + "id": 2, + "title": "漫读券" + }, + { + "id": 3, + "title": "通用券" + }, + { + "id": 1, + "title": "漫币" + } + ], + "enable_auto_pay": false, + "type": 0 + }, + { + "id": 12479079, + "comic_id": 27867, + "comic_title": "邪神与厨二病少女", + "hcover": "https://i0.hdslb.com/bfs/manga-static/96594b34528640f51ef5062648b55c871f4d4b1b.jpg", + "scover": "https://i0.hdslb.com/bfs/manga-static/54a7f8d35024ef46dc270dc758d882bc98c4a1c5.jpg", + "vcover": "https://i0.hdslb.com/bfs/manga-static/1b07c3be74d65cbb707934de190af10ca81588f3.jpg", + "bought_ep_count": 194, + "gold_status": 2, + "coupon_status": 2, + "comic_status": 0, + "last_ord": 216.5, + "ctime": "2021-02-23 00:18:06", + "last_short_title": "216.5", + "buy_type": 0, + "ep_for_chapters": 0, + "orders": [ + { + "id": 2, + "title": "漫读券" + }, + { + "id": 3, + "title": "通用券" + }, + { + "id": 1, + "title": "漫币" + } + ], + "enable_auto_pay": false, + "type": 0 + }, + { + "id": 11749927, + "comic_id": 29119, + "comic_title": "足艺少女小村同学", + "hcover": "https://i0.hdslb.com/bfs/manga-static/30b7917fd7d8b0afe6d913f09bab31e5eafae8b6.jpg", + "scover": "https://i0.hdslb.com/bfs/manga-static/f4ec445bc209ad473cdf9127528c09e271535617.jpg", + "vcover": "https://i0.hdslb.com/bfs/manga-static/8f83793c06dc0f59cab3a6acf4b978dc3c0a01f9.jpg", + "bought_ep_count": 13, + "gold_status": 2, + "coupon_status": 2, + "comic_status": 0, + "last_ord": 58, + "ctime": "2021-01-31 11:04:31", + "last_short_title": "最终话", + "buy_type": 0, + "ep_for_chapters": 0, + "orders": [ + { + "id": 2, + "title": "漫读券" + }, + { + "id": 3, + "title": "通用券" + }, + { + "id": 1, + "title": "漫币" + } + ], + "enable_auto_pay": false, + "type": 0 + }, + { + "id": 11605399, + "comic_id": 29053, + "comic_title": "如果是理想中的女儿,就算是世界最强也能受到宠爱吗?", + "hcover": "https://i0.hdslb.com/bfs/manga-static/5a7886e2b94515ea75a3ea34d9c77db3f2487b59.jpg", + "scover": "https://i0.hdslb.com/bfs/manga-static/88f6d08fed2998aba96cedbfdffba555bef4d1c1.jpg", + "vcover": "https://i0.hdslb.com/bfs/manga-static/517a155372e7de966cca2f5f42edabd31a90b169.jpg", + "bought_ep_count": 5, + "gold_status": 2, + "coupon_status": 2, + "comic_status": 0, + "last_ord": 28, + "ctime": "2021-01-25 19:40:15", + "last_short_title": "28", + "buy_type": 0, + "ep_for_chapters": 0, + "orders": [ + { + "id": 2, + "title": "漫读券" + }, + { + "id": 3, + "title": "通用券" + }, + { + "id": 1, + "title": "漫币" + } + ], + "enable_auto_pay": false, + "type": 0 + }, + { + "id": 11386175, + "comic_id": 28656, + "comic_title": "就算这样,“步”还是靠了过来", + "hcover": "http://i0.hdslb.com/bfs/manga-static/c95456b2d00f84293bda62b12539d19172b45db1.jpg", + "scover": "http://i0.hdslb.com/bfs/manga-static/2601c1474cd214d28797381e70b2c19ac7d67869.jpg", + "vcover": "https://i0.hdslb.com/bfs/manga-static/3a556ed655ddf84c7930b3ce180fbdbf8f1d8112.jpg", + "bought_ep_count": 2, + "gold_status": 2, + "coupon_status": 2, + "comic_status": 0, + "last_ord": 160, + "ctime": "2021-01-17 10:48:29", + "last_short_title": "160", + "buy_type": 0, + "ep_for_chapters": 0, + "orders": [ + { + "id": 2, + "title": "漫读券" + }, + { + "id": 3, + "title": "通用券" + }, + { + "id": 1, + "title": "漫币" + } + ], + "enable_auto_pay": false, + "type": 0 + }, + { + "id": 11356706, + "comic_id": 26731, + "comic_title": "在魔王城说晚安", + "hcover": "https://i0.hdslb.com/bfs/manga-static/061f63826f1aa24a5b9346f79b915999004b13da.jpg", + "scover": "http://i0.hdslb.com/bfs/manga-static/94ae037dae4cc61d580c5c3c42702ccf10d977dc.jpg", + "vcover": "https://i0.hdslb.com/bfs/manga-static/2958043a10024ddebfafc4fd47d3566043689300.jpg", + "bought_ep_count": 148, + "gold_status": 2, + "coupon_status": 2, + "comic_status": 0, + "last_ord": 292, + "ctime": "2021-01-16 11:25:47", + "last_short_title": "292", + "buy_type": 0, + "ep_for_chapters": 0, + "orders": [ + { + "id": 2, + "title": "漫读券" + }, + { + "id": 3, + "title": "通用券" + }, + { + "id": 1, + "title": "漫币" + } + ], + "enable_auto_pay": false, + "type": 0 + }, + { + "id": 11079049, + "comic_id": 27355, + "comic_title": "堀与宫村", + "hcover": "https://i0.hdslb.com/bfs/manga-static/b51b905707664415dab91cf81fb0373f970b54b5.jpg", + "scover": "https://i0.hdslb.com/bfs/manga-static/6ac604dfd0ad6c486a520519983212d74c340f28.jpg", + "vcover": "https://i0.hdslb.com/bfs/manga-static/c29ba3ce67613539666582d31d42b40fb48cc3c7.jpg", + "bought_ep_count": 119, + "gold_status": 2, + "coupon_status": 2, + "comic_status": 0, + "last_ord": 126, + "ctime": "2021-01-05 12:52:59", + "last_short_title": "page.122", + "buy_type": 0, + "ep_for_chapters": 0, + "orders": [ + { + "id": 2, + "title": "漫读券" + }, + { + "id": 3, + "title": "通用券" + }, + { + "id": 1, + "title": "漫币" + } + ], + "enable_auto_pay": false, + "type": 0 + } + ] +} +``` + +
\ No newline at end of file diff --git a/docs/manga/index_file.md b/docs/manga/index_file.md new file mode 100644 index 0000000000..e6f9c39122 --- /dev/null +++ b/docs/manga/index_file.md @@ -0,0 +1,277 @@ +# data.index + +- [data.index文件解析](#data.index文件解析) + - [获取data.index](#获取data.index) + - [文件解密算法](#文件解密算法) + - [进行解密操作](#进行解密操作) +- [data.index内容](#data.index内容) + +--- + +## data.index文件解析 + +本解密及数据解析例程以《在魔王城说晚安 第 1 话 不眠之城的公主》为例 + +本话链接:https://manga.bilibili.com/mc26731/329893 (mcid=`26731`, epid=`329893`) + +使用 Python 语言为例 + +### 获取data.index + +直接使用 GET 方法请求该话对应的 data.index 文件地址,就会得到一个二进制文件 + +```bash +curl -s 'https://manga.hdslb.com/bfs/manga/26731/329893/data.index?token=4b93ced19dc5ade671064804232ef4f5&ts=634e1943' | hexdump -C +``` + +data.index 文件内容的 HEX 如下 + +首部有 9 Byte 作为 File Magic 内容是 ASCII 编码的 `BILICOMIC` + +``` +00000000 42 49 4c 49 43 4f 4d 49 43 f5 43 06 04 7f 68 08 |BILICOMIC.C...h.| +00000010 00 ad 08 05 00 6b 68 00 00 a5 08 05 00 6b 68 00 |.....kh......kh.| +00000020 00 a5 08 0c 00 6b 68 69 6e c1 6d 7d 2e 0f 09 74 |.....khin.m}...t| +00000030 ec 33 c3 8f 5c 2c 64 86 df 40 a4 82 58 9c 42 f5 |.3..\,d..@..X.B.| +00000040 ab 21 51 4d aa f9 f1 e0 84 84 9b 40 12 58 87 1e |.!QM.......@.X..| +00000050 ba 28 29 7d ce 89 04 03 d9 91 8d fd 7e 31 1d be |.()}........~1..| +00000060 ba d8 35 ef cb a0 83 db 71 5e f1 ee f1 90 19 43 |..5.....q^.....C| +00000070 03 dd 32 f7 b8 7a b7 07 7f b9 3f 7d 3a d5 54 7e |..2..z....?}:.T~| +00000080 5f fa e2 bd c1 90 bb 0f 9c 7d 34 e4 f0 49 2f 17 |_........}4..I/.| +00000090 39 1b c0 cc 45 25 47 72 76 34 13 12 b9 12 f9 f3 |9...E%Grv4......| +000000a0 8b b9 56 13 72 be 60 5e 55 27 5f 98 e0 3e 41 78 |..V.r.`^U'_..>Ax| +000000b0 d5 af 56 d0 82 3c d5 e0 55 94 70 d0 0c 16 5f 33 |..V..<..U.p..._3| +000000c0 c5 bb 14 d7 e9 e5 4a 7c 7f db 04 ea 7b 9b 90 94 |......J|....{...| +000000d0 fd 53 e1 d2 f8 86 1b 7c ea 97 dd 0b 22 33 75 39 |.S.....|...."3u9| +000000e0 24 76 39 38 6d 58 a4 ed b4 14 8f 71 49 95 9c cb |$v98mX.....qI...| +000000f0 eb 42 eb ec df a2 22 ae 39 0c 3d 03 95 43 27 55 |.B....".9.=..C'U| +00000100 c1 c8 b2 37 2c 01 b0 f4 22 7c 51 1a 93 b5 ab 6d |...7,..."|Q....m| +00000110 72 95 0c 33 9a ed 2d d6 22 f0 08 b6 5c bb f6 b5 |r..3..-."...\...| +00000120 07 5f cf a1 3a 66 c8 30 41 29 31 dd 17 63 46 85 |._..:f.0A)1..cF.| +00000130 ea 53 20 a0 aa 89 65 91 78 37 ac 4b 06 e6 59 7a |.S ...e.x7.K..Yz| +00000140 c2 b7 10 56 cc a0 2e 85 94 09 01 89 83 43 82 a4 |...V.........C..| +00000150 db 60 91 89 15 83 aa 45 aa d6 5f fd 6a 64 f9 1c |.`.....E.._.jd..| +00000160 9d ef c3 6c 34 85 e7 49 8a a7 c3 bc 32 09 eb b8 |...l4..I....2...| +00000170 ef 70 ab d6 6a d2 7f f6 96 b1 9a 75 eb f8 47 34 |.p..j......u..G4| +00000180 db 1d 99 78 57 58 04 4e e0 c4 a4 58 d8 81 f5 02 |...xWX.N...X....| +00000190 3c 42 7e 1c 27 98 3c 70 df 04 13 33 fa ff 21 3b | +查看json内容: + +```json +{ + "clips": [ + {"r": 1600, "b": 2300, "t": 0, "l": 0, "pic": 0}, + {"r": 1600, "b": 2468, "t": 0, "l": 0, "pic": 1}, + {"r": 1600, "b": 2468, "t": 0, "l": 0, "pic": 2}, + {"r": 1600, "b": 2468, "t": 0, "l": 0, "pic": 3}, + {"r": 1600, "b": 2468, "t": 0, "l": 0, "pic": 4}, + {"r": 1600, "b": 2468, "t": 0, "l": 0, "pic": 5}, + {"r": 1600, "b": 2468, "t": 0, "l": 0, "pic": 6}, + {"r": 1600, "b": 2468, "t": 0, "l": 0, "pic": 7}, + {"r": 1600, "b": 2468, "t": 0, "l": 0, "pic": 8}, + {"r": 1600, "b": 2468, "t": 0, "l": 0, "pic": 9}, + {"r": 1600, "b": 2468, "t": 0, "l": 0, "pic": 10}, + {"r": 1600, "b": 2468, "t": 0, "l": 0, "pic": 11}, + {"r": 1600, "b": 2468, "t": 0, "l": 0, "pic": 12}, + {"r": 1600, "b": 2468, "t": 0, "l": 0, "pic": 13}, + {"r": 1600, "b": 2468, "t": 0, "l": 0, "pic": 14}, + {"r": 1600, "b": 2468, "t": 0, "l": 0, "pic": 15}, + {"r": 1600, "b": 2468, "t": 0, "l": 0, "pic": 16}, + {"r": 1600, "b": 2468, "t": 0, "l": 0, "pic": 17}, + {"r": 1600, "b": 2468, "t": 0, "l": 0, "pic": 18}, + {"r": 1600, "b": 2468, "t": 0, "l": 0, "pic": 19}, + {"r": 1600, "b": 2468, "t": 0, "l": 0, "pic": 20}, + {"r": 846, "b": 1200, "t": 0, "l": 0, "pic": 21} + ], + "pics": [ + "/bfs/manga/fc655fa220dfab74bb91b9b6e308e92e1f74fc4b.jpg", + "/bfs/manga/cb3c882f5a72c45385541e65dba6ac7689c24ebc.jpg", + "/bfs/manga/9f79683a30a1f165a6abcd2550066bd0f9bce719.jpg", + "/bfs/manga/592702a6411a8739d041d50cff9ac52ccc3e0ab1.jpg", + "/bfs/manga/52fb305a77f80d4078469c67ca4c4d8031722acc.jpg", + "/bfs/manga/d3bb31ca1943c2558eca9df9a44b7fb52d927f1e.jpg", + "/bfs/manga/2ac06b8dbaae0499edf7fb6cd99c1fe4b424a96f.jpg", + "/bfs/manga/98f63f139ecf30e3b037635fc1f59fb40388e947.jpg", + "/bfs/manga/55099ea5e0e198482ea6d216a5e41b02835701b7.jpg", + "/bfs/manga/ee60daaf9ca659bb0df7d45402c86c79a1f64739.jpg", + "/bfs/manga/8620f9742fddc97d4179f18fd2b9f1b1420138dd.jpg", + "/bfs/manga/0490a9d8bdb6312ac56baa24ed0595a2465d98dc.jpg", + "/bfs/manga/bc3234cb0ba2be2b724b1a640a418f1db7b2ac43.jpg", + "/bfs/manga/0d16c5e9779f187916e4b173e7a6447b14707ece.jpg", + "/bfs/manga/58f3985afc3f2cf57052725dfea47af5634ac1c8.jpg", + "/bfs/manga/de09b30d952566c2c1308f5da59a2ffb3b2deb5c.jpg", + "/bfs/manga/36ecc5565340605883cb000f513b49bfc91e0d3e.jpg", + "/bfs/manga/120f3174def02b3dd908ee69b427d094506b884d.jpg", + "/bfs/manga/fdbe3bd0d446c0129557bd19037785456e55f12c.jpg", + "/bfs/manga/813a1bb68c3f89616583c8662fa81984d6a907db.jpg", + "/bfs/manga/fd3a53f04831e577707e4c873e2fc205e71d5cde.jpg", + "/bfs/manga/50e1c513336e0685ca01723d64c712294e534ca0.jpg" + ], + "sizes": [ + {"cx": 1600, "cy": 2300}, + {"cx": 1600, "cy": 2468}, + {"cx": 1600, "cy": 2468}, + {"cx": 1600, "cy": 2468}, + {"cx": 1600, "cy": 2468}, + {"cx": 1600, "cy": 2468}, + {"cx": 1600, "cy": 2468}, + {"cx": 1600, "cy": 2468}, + {"cx": 1600, "cy": 2468}, + {"cx": 1600, "cy": 2468}, + {"cx": 1600, "cy": 2468}, + {"cx": 1600, "cy": 2468}, + {"cx": 1600, "cy": 2468}, + {"cx": 1600, "cy": 2468}, + {"cx": 1600, "cy": 2468}, + {"cx": 1600, "cy": 2468}, + {"cx": 1600, "cy": 2468}, + {"cx": 1600, "cy": 2468}, + {"cx": 1600, "cy": 2468}, + {"cx": 1600, "cy": 2468}, + {"cx": 1600, "cy": 2468}, + {"cx": 846, "cy": 1200} + ] +} +``` + + + +## data.index内容 + +以下内容为解密后的 JSON 数据定义 + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----- | ----- | -------- | ---- | +| clips | array | 尺寸信息 | | +| pics | array | 图片路径 | | +| sizes | array | 尺寸信息 | | + +根对象中的`clips`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | --------------- | ---- | +| 0 | obj | 第 1 页信息 | | +| n | obj | 第 (n+1) 页信息 | | +| …… | obj | …… | …… | + +`clips`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | ------------ | ------------- | +| r | num | 图片宽度 | | +| b | num | 图片高度 | | +| t | num | (?) | | +| l | num | (?) | | +| pic | num | 图片页码序号 | 从 0 开始递增 | + +根对象中的`pics`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | ----------------- | ------------------------------ | +| 0 | str | 第 1 图片路径 | 图片不能直接访问,需要二次鉴权 | +| n | str | 第 (n+1) 图片路径 | | +| …… | str | …… | …… | + +根对象中的`sizes`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | --------------- | ---- | +| 0 | obj | 第 1 页信息 | | +| n | obj | 第 (n+1) 页信息 | | +| …… | obj | …… | …… | + +`clips`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | -------- | ---- | +| cx | num | 图片宽度 | | +| cy | num | 图片高度 | | diff --git a/docs/manga/light_card.md b/docs/manga/light_card.md new file mode 100644 index 0000000000..c4409c419e --- /dev/null +++ b/docs/manga/light_card.md @@ -0,0 +1,204 @@ +# 获取轻享卡信息 + +> https://manga.bilibili.com/twirp/card.v1.Card/GetUserLightCard + +*请求方式:POST* + +是否需要登录:`是` + +认证方式:Cookie(SESSDATA)/ APP + +Content-Type:`application/x-www-form-urlencoded` + +**URL参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +|------------|-----|----------------|-----|-----------------| +| access_key | str | 登录`access_key` | | 与`SESSDATA`二选其一 | + +**json回复:** + +根对象: + +| 字段名 | 类型 | 内容 | 备注 | +|------|-----|------|------| +| code | num | 响应码 | 0:成功 | +| msg | str | | | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段名 | 类型 | 内容 | 备注 | +|--------------------|-------|----------------|---------------------------------| +| state | num | 轻享卡开通状态 | 0:未开通
1:已开通 | +| show_state | num | | | +| expire_date | str | 轻享卡到期时间 | | +| receive_amount | num | 已领取数量 | | +| save_money | num | 已节省漫币 | | +| index | num | 默认选择签到周期 | | +| week | array | 一个领取周期内的领取状态信息 | | +| month_reward_state | num | 是否可选择全勤奖 | 0:不可领取
1:可领取
2:不可领取(灰色) | +| month_reward | num | | | +| cur_month_end | str | 全勤奖领取剩余时间 | | +| server_time | str | 当前服务器时间 | | + +`week`数组中的对象: + +| 字段名 | 类型 | 内容 | 备注 | +|-------------------|-----|-------------|------------------------------------------------| +| index | num | 第几领取周期 | 从`1`开始 | +| start_time | str | 本周期领取开始时间 | 1:待领取
2:已领取
3:明日可领
4:已失效
5:可领取 | +| end_time | str | 本周期领取结束时间 | `同上` | +| first | num | 本周期第1天的领取状态 | `同上` | +| second | num | 本周期第2天的领取状态 | `同上` | +| third | num | 本周期第3天的领取状态 | `同上` | +| fourth | num | 本周期第4天的领取状态 | `同上` | +| full_reward_state | num | 周期全勤奖领取状态 | 1:不可领取
2:可领取
3:已领取 | + +**示例:** + +`SESSDATA`方式: + +```shell +curl -L -X POST 'https://manga.bilibili.com/twirp/card.v1.Card/GetUserLightCard' \ +-H 'Cookie: SESSDATA=xxx' +``` + +`access_key`方式: + +```shell +curl -L -X POST 'https://manga.bilibili.com/twirp/card.v1.Card/GetUserLightCard?access_key=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "msg": "", + "data": { + "state": 1, + "show_state": 1, + "expire_date": "2023-03-09T23:59:59+08:00", + "receive_amount": 18, + "save_money": 890, + "index": 1, + "week": [ + { + "index": 1, + "start_time": "2023-02-10T00:00:00+08:00", + "end_time": "2023-02-16T23:59:59+08:00", + "first": 5, + "second": 1, + "third": 1, + "fourth": 1, + "full_reward_state": 1 + }, + { + "index": 2, + "start_time": "2023-02-17T00:00:00+08:00", + "end_time": "2023-02-23T23:59:59+08:00", + "first": 1, + "second": 1, + "third": 1, + "fourth": 1, + "full_reward_state": 1 + }, + { + "index": 3, + "start_time": "2023-02-24T00:00:00+08:00", + "end_time": "2023-03-02T23:59:59+08:00", + "first": 1, + "second": 1, + "third": 1, + "fourth": 1, + "full_reward_state": 1 + }, + { + "index": 4, + "start_time": "2023-03-03T00:00:00+08:00", + "end_time": "2023-03-09T23:59:59+08:00", + "first": 1, + "second": 1, + "third": 1, + "fourth": 1, + "full_reward_state": 1 + } + ], + "month_reward_state": 0, + "month_reward": 0, + "cur_month_end": "2023-03-10T00:00:00+08:00", + "server_time": "2023-02-10T10:59:43+08:00" + } +} +``` + +
+ +# 领取轻享卡奖励 + +> https://manga.bilibili.com/twirp/card.v1.Card/GetLightCoupon + +*请求方式:POST* + +是否需要登录:`是` + +认证方式:Cookie(SESSDATA)/ APP + +Content-Type:`application/json` + +**URL参数:** + +| 参数名 | 类型 | 必填 | 内容 | 备注 | +|------------|-----|----|-----------------|----| +| access_key | str | | 与`SESSDATA`二选其一 | | + +**正文参数( application/json ):** + +| 参数名 | 类型 | 必填 | 内容 | 备注 | +|-----------|-----|----|-----|--------| +| weekIndex | num | √ | 第几周 | 从`1`开始 | +| type | num | √ | 第几天 | 从`1`开始 | + +**json回复:** + +根对象: + +| 字段名 | 类型 | 内容 | 备注 | +|------|-----|-----|----------------------------------------------------| +| code | num | 响应码 | 0:成功
3:今日已领取,请明日再来
3:还未满足领取条件
4:找不到数据~ | +| msg | str | | | +| data | obj | | | + +**示例:** + +`SESSDATA`方式: + +```shell +curl -L -X POST 'https://manga.bilibili.com/twirp/card.v1.Card/GetLightCoupon' \ +-H 'content-type: application/json; charset=utf-8' \ +-H 'Cookie: SESSDATA=xxx' \ +--data-raw '{"type":1,"weekIndex":1}' +``` + +`access_key`方式: + +```shell +curl -L -X POST 'https://manga.bilibili.com/twirp/card.v1.Card/GetLightCoupon?access_key=xxx' \ +-H 'content-type: application/json; charset=utf-8' \ +--data-raw '{"type":1,"weekIndex":1}' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "msg": "", + "data": {} +} +``` + +
\ No newline at end of file diff --git a/docs/manga/point_shop.md b/docs/manga/point_shop.md new file mode 100644 index 0000000000..4d121f6047 --- /dev/null +++ b/docs/manga/point_shop.md @@ -0,0 +1,451 @@ +# 积分商城 + +- [获取当前持有点数](#获取当前持有点数) +- [获取兑换奖品列表](#获取兑换奖品列表) +- [兑换物品](#兑换物品) +- [获取兑换历史记录](#获取兑换历史记录) +- [获取玩法说明](#获取玩法说明) + +*积分商城由web页面提供功能,地址为:* + +> https://manga.bilibili.com/eden/credits-exchange.html + +## 获取当前持有点数 + +> https://manga.bilibili.com/twirp/pointshop.v1.Pointshop/GetUserPoint + +*请求方式:POST* + +认证方式:Cookie(SESSDATA)/ APP + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------------------ | +| code | num | 返回值 | | +| msg | str | 错误信息 | | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| -------- | ---- | -------- | ------------ | +| point | str | 点数 | 不登录时为0 | + +**示例:** + +```bash +curl 'https://manga.bilibili.com/twirp/pointshop.v1.Pointshop/GetUserPoint' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + + +```json +{ + "code": 0, + "msg": "", + "data": { + "point": "66666" + } +} +``` + +
+ +## 获取兑换奖品列表 + +> https://manga.bilibili.com/twirp/pointshop.v1.Pointshop/ListProduct + +*请求方式:POST* + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------------------ | +| code | num | 返回值 | | +| msg | str | 错误信息 | | +| data | array | 奖品列表 | | + +`data`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | --------- | ---- | +| 0 | obj | 奖品1 | | +| n | obj | 奖品(n+1) | | +| …… | obj | …… | …… | + +`data`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| -------- | ---- | -------- | ------------ | +| id | num | 物品id | | +| type | num | 物品类型 | 0:商城相关
3:限免券
7:福利券 | +| title | str | 物品名 | | +| image | str | 显示的图像 | 福利券为空 | +| amount | num | 库存总量 | | +| cost | num | 兑换所需点数(原价) | | +| real_cost | num | 兑换所需点数(现价) | | +| remain_amount | num | 库存剩余数 | | +| comic_id | num | 相关漫画id | | +| limits | array | 限定使用范围(漫画) | 限免券所适用的漫画 | +| discount | num | (?) | 目前恒为0 | +| product_type | num | 物品类型 | 1:限免券、福利券
4:商城满99立减10元券、商城5元无门槛券
5:商城5魔晶 | +| pendant_url | str | (?) | | +| pendant_expire | num | (?) | 0:限免券、福利券
7:商城满99立减10元券、商城5元无门槛券、商城5魔晶 | +| exchange_limit | num | 兑换次数限制 | | +| address_deadline | str | (?) | | +| act_type | num | (?) | 目前恒为0 | +| has_exchanged | bool | 是否兑换过该物品 | | +| main_coupon_deadline | str | 兑换后使用截止时间 | | +| deadline | str | 兑换后使用截止时间 | | +| point | str | (?) | 目前恒为0 | + +**示例:** + +```bash +curl 'https://manga.bilibili.com/twirp/pointshop.v1.Pointshop/ListProduct' +``` + +
+查看响应示例: + + +```json +{ + "code": 0, + "msg": "", + "data": [ + { + "id": 195, + "type": 7, + "title": "积分兑换", + "image": "", + "amount": 15999, + "cost": 200, + "real_cost": 100, + "remain_amount": 0, + "comic_id": 0, + "limits": [], + "discount": 0, + "product_type": 1, + "pendant_url": "", + "pendant_expire": 7, + "exchange_limit": 0, + "address_deadline": "0001-01-01T00:00:00Z", + "act_type": 0, + "has_exchanged": false, + "main_coupon_deadline": "0001-01-01T00:00:00Z", + "deadline": "", + "point": "0" + }, + { + "id": 1009, + "type": 0, + "title": "商城5魔晶", + "image": "", + "amount": 500, + "cost": 260, + "real_cost": 30, + "remain_amount": 0, + "comic_id": 0, + "limits": [], + "discount": 0, + "product_type": 5, + "pendant_url": "", + "pendant_expire": 0, + "exchange_limit": 1, + "address_deadline": "0001-01-01T00:00:00Z", + "act_type": 0, + "has_exchanged": false, + "main_coupon_deadline": "2022-03-22T23:59:59+08:00", + "deadline": "2022-03-22T23:59:59+08:00", + "point": "0" + }, + { + "id": 1008, + "type": 0, + "title": "商城满99立减10元券", + "image": "", + "amount": 400, + "cost": 2000, + "real_cost": 400, + "remain_amount": 390, + "comic_id": 0, + "limits": [], + "discount": 0, + "product_type": 4, + "pendant_url": "", + "pendant_expire": 0, + "exchange_limit": 1, + "address_deadline": "0001-01-01T00:00:00Z", + "act_type": 0, + "has_exchanged": false, + "main_coupon_deadline": "2022-03-22T23:59:59+08:00", + "deadline": "2022-03-22T23:59:59+08:00", + "point": "0" + }, + { + "id": 1007, + "type": 0, + "title": "商城5元无门槛券", + "image": "", + "amount": 200, + "cost": 1000, + "real_cost": 200, + "remain_amount": 134, + "comic_id": 0, + "limits": [], + "discount": 0, + "product_type": 4, + "pendant_url": "", + "pendant_expire": 0, + "exchange_limit": 1, + "address_deadline": "0001-01-01T00:00:00Z", + "act_type": 0, + "has_exchanged": false, + "main_coupon_deadline": "2022-03-22T23:59:59+08:00", + "deadline": "2022-03-22T23:59:59+08:00", + "point": "0" + }, + { + "id": 1536, + "type": 3, + "title": "白兔糖", + "image": "http://i0.hdslb.com/bfs/manga-static/c3369754789a77b5d0b15cc31c75538ac035b3aa.jpg", + "amount": 4000, + "cost": 100, + "real_cost": 75, + "remain_amount": 3991, + "comic_id": 27164, + "limits": [ + { + "type": 1, + "id": 27164, + "title": "白兔糖" + } + ], + "discount": 0, + "product_type": 1, + "pendant_url": "", + "pendant_expire": 7, + "exchange_limit": 0, + "address_deadline": "0001-01-01T00:00:00Z", + "act_type": 0, + "has_exchanged": false, + "main_coupon_deadline": "0001-01-01T00:00:00Z", + "deadline": "", + "point": "0" + } + ] +} +``` + +
+ + +## 兑换物品 + +> https://manga.bilibili.com/twirp/pointshop.v1.Pointshop/Exchange + +*请求方式:POST* + +认证方式:Cookie(SESSDATA)/ APP + +**正文参数( application/x-www-form-urlencoded 或 application/json):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ---------- | ---- | ------------------------ | -------------- | ------------------------------------------------------------ | +| product_id | str | 物品id | 必要 | | +| product_num | num | 兑换个数 | 必要 | | +| point | num | 物品所需点数 | 必要 | 现价(real_cost) | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------------------ | +| code | num | 返回值 | 0:兑换成功
1:积分不足
1:您点的太快了~
2:库存不足
3:product point mismatch(point填写错误)
3:超过用户最大可兑换数量
4:现在抢票的人太多啦,再点一下有机会优先上车喔 ε=ε=(ノ≧∇≦)ノ | +| message | str | 错误信息 | | + +**示例:** + +```bash +curl 'https://manga.bilibili.com/twirp/pointshop.v1.Pointshop/Exchange' \ +--data-urlencode 'product_id=195' \ +--data-urlencode 'product_num=1' \ +--data-urlencode 'point=real_cost' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "msg": "" +} +``` + +
+ +## 获取兑换历史记录 + +> https://manga.bilibili.com/twirp/activity.v1.Activity/GetPrizeList + +*请求方式:POST* + +认证方式:Cookie(SESSDATA)/ APP + +**正文参数( application/x-www-form-urlencoded 或 application/json):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ---------- | ---- | ------------------------ | -------------- | ------------------------------------------------------------ | +| act_id | num | 固定值:90018 | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------------------ | +| code | num | 返回值 | | +| msg | str | 错误信息 | | | +| data | obj | 信息本体 | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------ | ---- | -------- | ---- | +| prizes | obj | 兑换记录 | | +| addr | obj | (?) | | + +`data`中的`prizes`对象: + +| 字段 | 类型 | 内容 | 备注 | +| -------- | ---- | -------- | ------------ | +| user_prize_id | str | 兑换id? | | +| prize_id | num | 兑换的物品id | | +| ctime | str | 兑换时间 | | +| addr | null | (?) | | +| deadline | str | 过期时间 | | +| type | num | 类型 | 1:限免券、福利券
8:商城5魔晶 | +| name | str | 物品名 | | + +**示例:** + +```bash +curl 'https://manga.bilibili.com/twirp/activity.v1.Activity/GetPrizeList' \ +--data-urlencode 'act_id=90018' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "msg": "", + "data": { + "prizes": [ + { + "user_prize_id": "55117444", + "prize_id": 1009, + "ctime": "2022-03-21T12:22:53+08:00", + "addr": null, + "deadline": "0001-01-01T00:00:00Z", + "type": 8, + "name": "商城5魔晶" + }, + { + "user_prize_id": "2594073385420523088", + "prize_id": 1536, + "ctime": "2022-03-21T12:07:24+08:00", + "addr": null, + "deadline": "0001-01-01T00:00:00Z", + "type": 1, + "name": "白兔糖限免卡" + }, + { + "user_prize_id": "4899916394614914913", + "prize_id": 195, + "ctime": "2021-12-24T12:01:08+08:00", + "addr": null, + "deadline": "0001-01-01T00:00:00Z", + "type": 1, + "name": "积分兑换" + }, + { + "user_prize_id": "1152921504636496551", + "prize_id": 195, + "ctime": "2021-12-13T12:05:13+08:00", + "addr": null, + "deadline": "0001-01-01T00:00:00Z", + "type": 1, + "name": "积分兑换" + } + ], + "addr": { + "name": "", + "phone": "", + "address": "", + "id_card": "" + } + } +} +``` + +
+ +## 获取玩法说明 + +> https://manga.bilibili.com/twirp/pointshop.v1.Pointshop/GetExchangeRule + +*请求方式:POST* + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | -------- | ---- | +| code | num | 返回值 | | +| msg | str | 错误信息 | | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | -------- | ---- | +| rule | str | 玩法说明 | | + +**示例:** + +```bash +curl 'https://manga.bilibili.com/twirp/pointshop.v1.Pointshop/GetExchangeRule' +``` + +
+查看响应示例: + + +```json +{ + "code": 0, + "msg": "", + "data": { + "rule": "日常兑换说明:\n1、赛季积分达到一定数量可兑换积分商城内相应的商品;\n2、日常兑换奖品的刷新时间为每日中午12点,每天可兑换的奖品总数有限(具体可见商品页面展示),请尽快兑换。\n3、兑换的福利券&限免卡奖品有效期详见兑换框内显示或卡券包内详情说明哦,请及时在有效期内使用。\n4、赛季积分有效期为当前赛季时长(每期赛季时长详见福利中心页面倒计时显示),请及时在有效期内进行使用。\n5、赛季积分可在福利中心完成特定任务获取,具体详情可至福利中心查看(部分活动也可获取赛季积分,可随时关注活动信息哦)。" + } +} +``` + +
diff --git a/docs/message/msg.md b/docs/message/msg.md new file mode 100644 index 0000000000..4753391ed6 --- /dev/null +++ b/docs/message/msg.md @@ -0,0 +1,65 @@ +# 通知消息 + +- [未读消息数](#未读消息数) + +--- + +## 未读消息数 + +> https://api.bilibili.com/x/msgfeed/unread + +*请求方式:GET* + +认证方式:Cookie(SESSDATA) + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ----------------------------- | +| code | num | 返回值 | 0:成功
-101:账号未登录 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +data 对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------------- | ------------ | +| at | num | 未读at数 | | +| chat | num | 0 | 作用尚不明确 | +| like | num | 未读点赞数 | | +| reply | num | 未读回复数 | | +| sys_msg | num | 未读系统通知数 | | +| up | num | UP主助手信息数 | | + +**示例:** + +以下信息代表了未读点赞数为10,未读回复数为4,未读at消息数为3,未读系统通知数为2,UP主助手信息数为1 + +```shell +curl 'https://api.bilibili.com/x/msgfeed/unread' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "at": 3, + "chat": 0, + "like": 10, + "reply": 4, + "sys_msg": 2, + "up": 1 + } +} +``` + +
diff --git a/docs/message/private_msg.md b/docs/message/private_msg.md new file mode 100644 index 0000000000..598e17f6ee --- /dev/null +++ b/docs/message/private_msg.md @@ -0,0 +1,374 @@ +# 私信 + +- [未读私信数](#未读私信数) +- [发送私信(web端)](#发送私信web端) +- [私信消息记录](#私信消息记录) +--- + +## 未读私信数 + +> https://api.vc.bilibili.com/session_svr/v1/session_svr/single_unread + +*请求方式:GET* + +认证方式:Cookie(SESSDATA) + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | --------------------------- | +| code | num | 返回值 | 0:成功
-6:账号未登录 | +| message | str | 错误信息 | 默认为ok | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +`data` 对象: + +| 字段 | 类型 | 内容 | 备注 | +| --------------- | ---- | -------------------- | ---- | +| unfollow_unread | num | 未关注用户未读私信数 | | +| follow_unread | num | 已关注用户未读私信数 | | +| _gt_ | num | 0 | | + +**示例:** + +以下信息代表了为未关注用户未读私信数为`1`条,已关注用户未读私信数为`6`条 + +```shell +curl 'https://api.vc.bilibili.com/session_svr/v1/session_svr/single_unread' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "msg": "ok", + "message": "ok", + "data": { + "unfollow_unread": 1, + "follow_unread": 6, + "_gt_": 0 + } +} +``` + +
+ +## 发送私信(web端) + +> https://api.vc.bilibili.com/web_im/v1/web_im/send_msg + +*请求方式:POST* + +认证方式:Cookie(SESSDATA) + +**正文参数(application/x-www-form-urlencoded):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------------------ | ------------------------------------ | ------------------------ | ------ | -------------------------------------- | +| msg[sender_uid] | num | 发送者mid | 必要 | | +| msg[receiver_id] | num | 接收者mid | 必要 | | +| msg[receiver_type] | num | 1 | 必要 | 固定为1 | +| msg[msg_type] | num | 消息类型 | 必要 | 1:发送文字
2:发送图片
5:撤回消息 | +| msg[msg_status] | num | 0 | 非必要 | | +| msg[dev_id] | string | 372778FD-E359-461D-86A3-EA2BCC6FF52A | 必要 | **获取方式在下面** | +| msg[timestamp] | num | 时间戳(秒) | 必要 | | +| msg[content] | 发送文字时:str
撤回消息时:num | 消息内容 | 必要 | **详见下表** | +| csrf | str | CSRF Token(位于cookie) | 必要 | | + +--- + +**dev_id的获取** + +以JS为例: + +```javascript +const deviceid = "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (function (name) { + let randomInt = 16 * Math.random() | 0; + return ("x" === name ? randomInt : 3 & randomInt | 8).toString(16).toUpperCase() +})); +``` + +代码来自 [andywang425/BLTH](https://github.com/andywang425/BLTH/blob/45fe93e31754ca8bf07059d46266398e787dbf45/B%E7%AB%99%E7%9B%B4%E6%92%AD%E9%97%B4%E6%8C%82%E6%9C%BA%E5%8A%A9%E6%89%8B.js#L6618) + +以Java为例 + +```java +public class Util{ + private String getDevId() { + char[] b = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'}; + char[] s = "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".toCharArray(); + for (int i = 0; i < s.length; i++) { + if ('-' == s[i] || '4' == s[i]) { + continue; + } + int randomInt = (int) (16 * Math.random()); + if ('x' == s[i]) { + s[i] = b[randomInt]; + } else { + s[i] = b[3 & randomInt | 8]; + } + } + return new String(s); + } +} +``` +--- + +`msg[content]`消息内容: + +当发送文字时(`msg[msg_type]=1`): + +该参数为json序列字串 + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ---- | +| content | str | 私信内容 | | + +当发送图片时(`msg[msg_type]=2`): + +该参数为json序列字串 + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| -------- | ---- | -------- | :-------------------------------------------- | +| url | str | 图片url | 默认为B站相簿图片上传通道
也可用三方图床 | +| width | num | 图片的宽 | 单位:像素(非必要) | +| height | num | 图片的高 | 单位:像素(非必要) | +| type | str | 图片格式 | (非必要) | +| original | num | 1 | **作用未知**(非必要) | +| size | num | 文件大小 | 单位:千字节(非必要)
__向上取整__ | + +当撤回消息时(`msg[msg_type]=5`): + +该参数为数值,为目标消息的` msg_key ` + +**json回复:** + +根对象: +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ----------- | +| code | num | 返回值 | 0:成功
| +| message | str | 错误信息 | 默认为ok | +| ttl | num | | 默认为1 | +| data | obj | 主体 | 出错时为空 | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------------- | ---- | ---------- | ------------ | +| msg_key| num | 消息唯一id | | +| msg_content | str | 发送的消息 | | +| key_hit_infos | obj | | 作用尚不明确 | + +**示例:** + +给目标用户`mid=1`发一条文字私信: + +> up主你好, +> +> 催更[doge] + +```shell +curl 'https://api.vc.bilibili.com/web_im/v1/web_im/send_msg' \ +--data-urlencode 'msg[sender_uid]=293793435' \ +--data-urlencode 'msg[receiver_id]=1' \ +--data-urlencode 'msg[receiver_type] =1' \ +--data-urlencode 'msg[msg_type]=1' \ +--data-urlencode 'msg[dev_id] =372778FD-E359-461D-86A3-EA2BCC6FF52A' \ +--data-urlencode 'msg[timestamp] =1626181379' \ +--data-urlencode 'msg[content]={"content":"up主你好,\n催更[doge]"}' \ +--data-urlencode 'csrf=xxx' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{"code":0, +"message":"0", +"ttl":1, +"data":{"msg_key":6984393491767669026, + "msg_content":"up主你好,\n催更[doge]", + "key_hit_infos":{}}} +``` + +
+ +给目标用户`mid=1`发一条图片私信: + +> + +```shell +curl 'https://api.vc.bilibili.com/web_im/v1/web_im/send_msg' \ +--data-urlencode 'msg[sender_uid]=293793435' \ +--data-urlencode 'msg[receiver_id]=1' \ +--data-urlencode 'msg[receiver_type] =1' \ +--data-urlencode 'msg[msg_type]=2' \ +--data-urlencode 'msg[content]={"url":https://i1.hdslb.com/bfs/face/aebb2639a0d47f2ce1fec0631f412eaf53d4a0be.jpg}' \ +--data-urlencode 'csrf_token=xxx' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code":0, + "msg":"ok", + "message":"ok", + "data":{ + "msg_key":6852570013146024354, + "_gt_":0 + } +} +``` + +
+ +## 私信消息记录 + +> https://api.vc.bilibili.com/svr_sync/v1/svr_sync/fetch_session_msgs + +*请求方式:GET* + +此接口有设计缺陷,能够获取已经撤回,无法显示(如 发送私信 中msg[msg_type]:3)的消息 + +认证方式:Cookie(SESSDATA) + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | ---- | -------- | ------------ | ------------------ | +| sender_device_id | num | 发送者设备 | 可选 | 1 | +| talker_id | num | 聊天对象的UID | 必要 | -------------- | +| session_type | num | 聊天对象的类型 | 必要 | 1为用户,2为粉丝团 | +| size | num | 列出消息条数 | 可选 | 默认是20 | +| build | num | 未知 | 可选 | 默认是0 | +| mobi_app | str | 设备 | 可选 | web | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ------ | -------- | ---------------------------- | +| code | num | 返回值 | 0:成功
-400:请求错误 | +| msg | str | 错误信息 | 默认为0 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | array | 数据列表 | | + +`data`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | ------------- | ---- | +| messages | array | 聊天记录列表 | | +| has_more | num | 0 | | +| min_seqno | num | 未知 | | +| max_seqno | num | 未知 | | +| e_infos | array | 聊天表情列表 | | + +`messages`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | ------------- | ---- | +| sender_uid | num | 发送者uid | 注意名称是sender_uid | +| receiver_type | num | 与session_type对应 | 1为用户,2为粉丝团 | +| receiver_id | num | 接收者uid | 注意名称是receiver_id | +| msg_type | num | 消息类型 | 1:文字消息
2:图片消息
5:撤回的消息
12、13:通知 | +| content | str | 消息内容 | 此处存在设计缺陷 | +| msg_seqno | num | 未知 | | +| timestamp | num | 消息发送时间戳 | | +| at_uids | array | 未知 | | +| msg_key | num | 未知 | | +| msg_status | num | 消息状态 | 0 | +| notify_code |str | 未知 | | +| new_face_version |num | 未知 | 疑似只在粉丝团消息中出现 | + +`e_infos`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | ------------- | ---- | +| text | str | 表情名称 | | +| uri | str | 表情链接 | | +| size | num | 表情尺寸 | 1 | + +**示例:** + +获取与目标用户`mid=123`私信记录: + +```shell +curl 'https://api.vc.bilibili.com/svr_sync/v1/svr_sync/fetch_session_msgs?sender_device_id=1&talker_id=123&session_type=1&size=20&build=0&mobi_app=web' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "msg": "0", + "message": "0", + "ttl": 1, + "data": { + "messages": [ + { + "sender_uid": 2239814, + "receiver_type": 1, + "receiver_id": 123, + "msg_type": 1, + "content": "{\"content\":\"[口罩]\"}", + "msg_seqno": 309675413389322, + "timestamp": 1654154093, + "at_uids": [ + 0 + ], + "msg_key": 7104537732714964358, + "msg_status": 0, + "notify_code": "", + "new_face_version": 1 + }, + { + "sender_uid": 2239814, + "receiver_type": 1, + "receiver_id": 123, + "msg_type": 5, + "content": "{\"content\":\"1\"}", + "msg_seqno": 308302399586307, + "timestamp": 1654072255, + "at_uids": [ + 0 + ], + "msg_key": 7104186240789226795, + "msg_status": 0, + "notify_code": "" + }, + ], + "has_more": 0, + "min_seqno": 308188515844097, + "max_seqno": 309675413389322, + "e_infos": [ + { + "text": "[口罩]", + "url": "http://i0.hdslb.com/bfs/emote/3ad2f66b151496d2a5fb0a8ea75f32265d778dd3.png", + "size": 1 + } + ] + } +} +``` + +
+ diff --git a/docs/newbie_exam/action.md b/docs/newbie_exam/action.md new file mode 100644 index 0000000000..738a6a4170 --- /dev/null +++ b/docs/newbie_exam/action.md @@ -0,0 +1,456 @@ +# 操作 + +- [提交答题](#提交答题) + - [提交基础题](#提交基础题) + - [提交附加题](#提交附加题) + - [提交自选题](#提交自选题) +- [获取验证码](#获取验证码) +- [提交验证码](#提交验证码) +- [提交自选题分类](#提交自选题分类) +- [提前交卷](#提前交卷) + +--- + +## 提交答题 + +### 提交基础题 + +> https://api.bilibili.com/x/answer/v4/base/check + +*请求方式:POST* + +认证方式:APP或Cookie(SESSDATA) + +**正文参数( application/x-www-form-urlencoded ):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ----------- | ---- | ------------------------ | -------------- | ------------------------------------------ | +| question_id | num | 题目id | 必要 | 从[拉取基础题api](fetch.md#拉取基础题)获得 | +| ans_hash | str | 选项hash | 必要 | 从[拉取基础题api](fetch.md#拉取基础题)获得 | +| csrf | str | CSRF Token(位于cookie) | Cookie方式必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------------------ | +| code | num | 返回值 | 0:成功
-101:账号未登录
-400:请求错误
41014:答题过快或错误太多
41012:用户答题提交题目id不合法
41020:用户基础题已通过
41023:用户答题记录不存在 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------ | ---- | ------------ | ----------------------------------- | +| passed | bool | 选项是否正确 | true:选项正确
false:选项错误 | + +**示例:** + +提交题目id为`104`的题,选项hash为`cb4c8cc9424fc771f7c1598e74de498f` + +```shell +curl 'https://api.bilibili.com/x/answer/v4/base/check' \ +--data-urlencode 'question_id=104' \ +--data-urlencode 'ans_hash=cb4c8cc9424fc771f7c1598e74de498f' \ +--data-urlencode 'csrf=xxxx' \ +-b 'SESSDATA=xxxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "passed": true + } +} +``` + +
+ +### 提交附加题 + +> https://api.bilibili.com/x/answer/v4/base/check + +*请求方式:POST* + +认证方式:APP或Cookie(SESSDATA) + +**正文参数( application/x-www-form-urlencoded ):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ----------- | ---- | ------------------------ | -------------- | ------------------------------------------ | +| question_id | num | 题目id | 必要 | 从[拉取基础题api](fetch.md#拉取基础题)获得 | +| ans_hash | str | 选项hash | 必要 | 从[拉取基础题api](fetch.md#拉取基础题)获得 | +| csrf | str | CSRF Token(位于cookie) | Cookie方式必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------------------ | +| code | num | 返回值 | 0:成功
-101:账号未登录
-400:请求错误
41014:答题过快或错误太多
41012:用户答题提交题目id不合法
41023:用户答题记录不存在 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------ | ---- | ------------ | ----------------------------------- | +| passed | bool | 选项是否正确 | true:选项正确
false:选项错误 | + +**示例:** + +提交题目id为`104`的题,选项hash为`cb4c8cc9424fc771f7c1598e74de498f` + +```shell +curl 'https://api.bilibili.com/x/answer/v4/base/check' \ +--data-urlencode 'question_id=104' \ +--data-urlencode 'ans_hash=cb4c8cc9424fc771f7c1598e74de498f' \ +--data-urlencode 'csrf=xxxx' \ +-b 'SESSDATA=xxxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "passed": true + } +} +``` + +
+ +### 提交自选题 + +> https://api.bilibili.com/x/answer/v4/pro/check + +*请求方式:POST* + +认证方式:APP或Cookie(SESSDATA) + +**正文参数( application/x-www-form-urlencoded ):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ----------- | ---- | ------------------------ | -------------- | ------------------------------------------ | +| question_id | num | 题目id | 必要 | 从[拉取基础题api](fetch.md#拉取基础题)获得 | +| ans_hash | str | 选项hash | 必要 | 从[拉取基础题api](fetch.md#拉取基础题)获得 | +| csrf | str | CSRF Token(位于cookie) | Cookie方式必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------------------ | +| code | num | 返回值 | 0:成功
-101:账号未登录
-400:请求错误
41014:答题过快或错误太多
41012:用户答题提交题目id不合法
41023:用户答题记录不存在
41026:获取用户DB题目信息异常 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------ | ---- | ---- | ---------- | +| passed | bool | true | 恒为`true` | + +**示例:** + +提交题目id为`2935`的题,选项hash为`ffd55cbe0624f466bee2ea3eb576a4d0` + +```shell +curl -G 'https://api.bilibili.com/x/answer/v4/pro/check' \ +--data-urlencode 'question_id=2935' \ +--data-urlencode 'ans_hash=ffd55cbe0624f466bee2ea3eb576a4d0' \ +--data-urlencode 'csrf=xxxx' \ +-b 'SESSDATA=xxxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "passed": true + } +} +``` + +
+ +## 获取验证码 + +> https://api.bilibili.com/x/answer/v4/captcha + +*请求方式:GET* + +认证方式:APP或Cookie(SESSDATA) + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------------------ | +| code | num | 返回值 | 0:成功
-101:账号未登录
-400:请求错误
41010:用户答题非法访问
41014:答题过快或错误太多
41020:用户基础题已通过
41021:用户基础题未通过 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| --------- | ---- | ----------- | ------------- | +| type | str | 验证码类型? | geetest:极验 | +| gt | str | 极验id | | +| challenge | str | 极验key | | +| token | str | (?) | | +| url | str | (?) | | + +**示例:** + +```shell +curl 'https://api.bilibili.com/x/answer/v4/captcha' \ +-b 'SESSDATA=xxxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "type": "geetest", + "gt": "abc55d1fb914cb110cfb4c232a4b4c35", + "challenge": "90a6e03e626e13ee186ddae0107c3ae2", + "token": "", + "url": "" + } +} +``` + +
+ +## 提交验证码 + +> https://api.bilibili.com/x/answer/v4/captcha/check + +*请求方式:POST* + +认证方式:APP或Cookie(SESSDATA) + +**注:** + +旧版`edition=0`同时提交自选题分类以及验证码 + +新版`edition=2`仅仅提交验证码 + +**正文参数( application/x-www-form-urlencoded ):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ----------------- | ---- | ---------------------- | -------------- | ---------------- | +| types | nums | 自选题分类(旧版) | 非必要 | 新版不需要此字段 | +| type | str | 验证码类型 | 非必要 | | +| bilibili_token | str | | 非必要 | | +| bilibili_code | str | | 非必要 | | +| geetest_challenge | str | 极验key | 非必要 | | +| geetest_seccode | str | 极验结果+\|jordan | 非必要 | | +| geetest_validate | str | 极验结果 | 非必要 | | +| csrf | str | CSRF Token(位于cookie) | Cookie方式必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------------------ | +| code | num | 返回值 | 0:成功
-101:账号未登录
-105:验证码错误
-400:请求错误
41010:用户答题非法访问
41014:答题过快或错误太多
41021:用户基础题未通过
41031:自选题未通过 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | + +**示例:** + +```shell +curl 'https://api.bilibili.com/x/answer/v4/captcha/check' \ +--data-urlencode 'types=' \ +--data-urlencode 'type=geetest' \ +--data-urlencode 'bilibili_token=' \ +--data-urlencode 'bilibili_code=' \ +--data-urlencode 'geetest_challenge=3f809a7a9c51edca751fd26c032c182d' \ +--data-urlencode 'geetest_seccode=513ec576a275a3eb250829202d4dce46|jordan' \ +--data-urlencode 'geetest_validate=513ec576a275a3eb250829202d4dce46' \ +--data-urlencode 'csrf=xxx' \ +-b 'SESSDATA=xxxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1 +} +``` + +
+ +## 提交自选题分类 + +> https://api.bilibili.com/x/answer/v4/pro/type/check + +*请求方式:POST* + +认证方式:APP或Cookie(SESSDATA) + +**正文参数( application/x-www-form-urlencoded ):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | ---- | ---------------------- | -------------- | ---- | +| types | nums | 自选题分类(新版) | 必要 | | +| csrf | str | CSRF Token(位于cookie) | Cookie方式必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------------------ | +| code | num | 返回值 | 0:成功
-101:账号未登录
-400:请求错误
41010:用户答题非法访问
41014:答题过快或错误太多
41021:用户基础题未通过
41031:自选题未通过
41052:用户题目类型不合法
41055:基础附加题未通过 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | + +**示例:** + +选择`游戏` `影视` `科教/知识` `动画/动漫`分类 + +```shell +curl 'https://api.bilibili.com/x/answer/v4/pro/type/check' \ +--data-urlencode 'types=1,2,3,4' \ +--data-urlencode 'csrf=xxx' \ +-b 'SESSDATA=xxxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1 +} +``` + +
+ +## 提前交卷 + +> https://api.bilibili.com/x/answer/v4/submit + +*请求方式:POST* + +认证方式:APP或Cookie(SESSDATA) + +当当前得分>=60时,可请求本接口提前完成答题 + +**正文参数( application/x-www-form-urlencoded ):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | ---- | ---------------------- | -------------- | ---- | +| csrf | str | CSRF Token(位于cookie) | Cookie方式必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------------------ | +| code | num | 返回值 | 0:成功
-101:账号未登录
-400:请求错误
41014:答题过快或错误太多
41023:用户答题记录不存在
41031:自选题未通过 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------------ | ---- | ---------------- | -------------------------------------------- | +| hid | num | 答题会话id | | +| mid | num | 答题用户mid | | +| score | num | 得分 | | +| status | num | 0 | | +| number | num | 0 | | +| result | str | succeed | | +| stage | str | result | | +| version | str | 版本 | 目前为`v4` | +| start_time | num | 本次答题开始时间 | 时间戳 | +| first_answer | num | 0 | | +| progress | str | | | +| text | str | | | +| url | str | | | +| in_reg_audit | bool | | | +| edition | num | 答题版本 | 0:旧版(40+10+50)
2:新版(40+30+30) | +| rewards | null | | | +| captcha | num | 1 | | + +**示例:** + +```shell +curl 'https://api.bilibili.com/x/answer/v4/submit' \ +--data-urlencode 'csrf=xxx' \ +-b 'SESSDATA=xxxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "hid": 1623207905520705, + "mid": 293793435, + "score": 63, + "status": 3, + "number": 0, + "result": "succeed", + "stage": "result", + "version": "v4", + "start_time": 1636889218, + "first_answer": 0, + "progress": "", + "text": "", + "url": "", + "in_reg_audit": false, + "edition": 0, + "rewards": null, + "captcha": 1 + } +} +``` + +
diff --git a/docs/newbie_exam/fetch.md b/docs/newbie_exam/fetch.md new file mode 100644 index 0000000000..5b52e272c5 --- /dev/null +++ b/docs/newbie_exam/fetch.md @@ -0,0 +1,263 @@ +# 拉取题目 + +- [拉取基础题](#拉取基础题) +- [拉取附加题](#拉取附加题) +- [拉取自选题](#拉取自选题) + +--- + +## 拉取基础题 + +> https://api.bilibili.com/x/answer/v4/base + +*请求方式:GET* + +认证方式:Cookie或APP + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------------------ | +| code | num | 返回值 | 0:成功
-101:账号未登录
41014:答题过快或错误太多
41020:用户基础题已通过
41023:用户答题记录不存在 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| -------- | ---- | -------- | ---- | +| question | obj | 题目内容 | | + +`data`中的`question`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---------- | ----- | ------------------ | ------------------------------------------------------------ | +| id | num | 问题id | **问题id不代表题图,因为选项是打乱的** | +| number | num | 当前题号 | | +| q_height | num | 问题部分总高度 | | +| q_coord_y | num | 问题部分Y裁剪起始 | 当然是0 | +| image | str | 题图url | 题目文字+所有的选项文字排版成一张图,存储在bfs中 | +| from | str | 问题来源页面url | 如:“xx弹幕是否违规”所在的视频页 | +| options | array | 选项列表 | | +| type_id | num | 题目父类型id | 见[查询自选题分类](info.md#查询自选题分类)
**注:36为基础题** | +| type_name | str | 分院小电视提示文案 | 如:xx小电视 | +| type_image | str | 分院小电视图标url | | + +`question`中的`options`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | ----- | ---------------------- | +| 0 | obj | 选项A | | +| 1 | obj | 选项B | 选项至少2个 | +| 2 | obj | 选项C | 数组长度取决于选项个数 | +| 3 | obj | 选项D | | + +`question`中的`options`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | ----------------- | ------------------------ | +| number | num | 选项序号 | 如:1为A 2为B | +| high | num | 选项部分总高度 | | +| coord_y | num | 选项部分Y裁剪起始 | | +| hash | str | 选项hash | 作为提交对应选项时应传参 | + +**示例:** + +```shell +curl -G 'https://api.bilibili.com/x/answer/v4/base' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "question": { + "id": 6511, + "number": 1, + "q_height": 38.4, + "q_coord_y": 0, + "image": "https://i0.hdslb.com/bfs/member/9d7f1f1f0b7478a621d1b998a5a98982.png", + "from": "", + "options": [ + { + "number": 1, + "high": 42, + "coord_y": 38.4, + "hash": "f7619d6c2040d44f39dc87a7aa34fb9e" + }, + { + "number": 2, + "high": 42, + "coord_y": 80.4, + "hash": "dce5140040f40ca4030783585684369d" + } + ], + "type_id": 36, + "type_name": "小电视校长", + "type_image": "https://i0.hdslb.com/bfs/face/7b67c0c0da64a6ab059ff49bb0d4b92988b91806.png" + } + } +} +``` +
+ +## 拉取附加题 + +> https://api.bilibili.com/x/answer/v4/extra + +*请求方式:GET* + +认证方式:Cookie或APP + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------------------ | +| code | num | 返回值 | 0:成功
-101:账号未登录
41014:答题过快或错误太多
41021:用户基础题未通过
41023:用户答题记录不存在
41054:用户附加题已通过 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +`data`对象: + +同[拉取基础题](#拉取基础题)的`data`对象 + +**示例:** + +```shell +curl -G 'https://api.bilibili.com/x/answer/v4/extra' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "question": { + "id": 11492, + "number": 44, + "q_height": 76.8, + "q_coord_y": 0, + "image": "https://i0.hdslb.com/bfs/member/b6c846613bd0b44cd7c8af1d83e3f0c2.png", + "from": "https://www.bilibili.com/video/av14659093", + "options": [ + { + "number": 1, + "high": 42, + "coord_y": 76.8, + "hash": "ca15e6009047cf82358c50ab90fd8d9e" + }, + { + "number": 2, + "high": 42, + "coord_y": 118.8, + "hash": "60e86a1c736c68da3462f66377e4e8ca" + } + ], + "type_id": 36, + "type_name": "小电视校长", + "type_image": "https://i0.hdslb.com/bfs/face/7b67c0c0da64a6ab059ff49bb0d4b92988b91806.png" + } + } +} +``` +
+ +## 拉取自选题 + +> https://api.bilibili.com/x/answer/v4/pro + +*请求方式:GET* + +认证方式:Cookie或APP + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------------------ | +| code | num | 返回值 | 0:成功
-101:账号未登录
41014:答题过快或错误太多
41021:用户基础题未通过
41023:用户答题记录不存在
41051:用户答题验证码未通过
41055:基础附加题未通过 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +`data`对象: + +同[拉取基础题](#拉取基础题)的`data`对象 + +**示例:** + +```shell +curl -G 'https://api.bilibili.com/x/answer/v4/pro' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "question": { + "id": 824, + "number": 54, + "q_height": 38.4, + "q_coord_y": 0, + "image": "https://i0.hdslb.com/bfs/member/417e02be5652f79d0312fa2fcee28869.png", + "from": "", + "options": [ + { + "number": 1, + "high": 42, + "coord_y": 38.4, + "hash": "c4574c23cf728c19abeab3e7525258d4" + }, + { + "number": 2, + "high": 42, + "coord_y": 80.4, + "hash": "ffd48760758fbb8a2c183d1d04f692f8" + }, + { + "number": 3, + "high": 42, + "coord_y": 122.4, + "hash": "898d414dff49fe20c4a1da1e148fadb2" + }, + { + "number": 4, + "high": 42, + "coord_y": 164.4, + "hash": "09018443f09d8ef4f6fec5e96e082270" + } + ], + "type_id": 1, + "type_name": "游戏小电视", + "type_image": "https://i0.hdslb.com/bfs/face/6590bee26086fed66ee7cc5bac26a32d2f733037.png" + } + } +} +``` + +
+ diff --git a/docs/newbie_exam/info.md b/docs/newbie_exam/info.md new file mode 100644 index 0000000000..135d6c3c6f --- /dev/null +++ b/docs/newbie_exam/info.md @@ -0,0 +1,556 @@ +# 查询信息 + +- [查询答题状态](#查询答题状态) +- [查询自选题分类](#查询自选题分类) +- [查询答题结果](#查询答题结果) + +--- + +## 查询答题状态 + +> https://api.bilibili.com/x/answer/v4/status + +*请求方式:GET* + +认证方式:Cookie或APP + +**json回复:** + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------------------ | +| code | num | 返回值 | 0:成功
-101:账号未登录
41014:答题过快或错误太多 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------------ | ---- | ------------------ | ------------------------------------------------------------ | +| hid | num | 答题会话id | | +| mid | num | 答题用户mid | | +| score | num | 当前得分 | | +| status | num | 答题状态 | 0:未答题
2:答题中
3:已通过 | +| number | num | 当前题号 | | +| result | str | 是否通过答题 | failed:未通过
succeed:已通过 | +| stage | str | 当前答题阶段 | base:基础题
extra:附加题
pro_type:等待选择自选题类型
pro:自选题
complete:已完成 | +| version | str | 答题版本 | 当前为`v4` | +| start_time | num | 本次答题开始时间 | 时间戳 | +| first_answer | num | (?) | | +| progress | str | 当前答题进度 | 百分比
60分为100% | +| text | str | 提示文案 | | +| url | str | 答题页面url | | +| in_reg_audit | bool | 是否为第一次答题 | | +| edition | num | 答题版本 | 0:旧版(40+10+50)
2:新版(40+30+30) | +| rewards | null | (?) | | +| captcha | num | 是否已经提交验证码 | 1:已提交
仅新版提交验证码后存在 | + +**示例:** + +```shell +curl -G 'https://api.bilibili.com/x/answer/v4/status' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "hid": 1623207905520705, + "mid": 293793435, + "score": 2, + "status": 2, + "number": 2, + "result": "failed", + "stage": "base", + "version": "v4", + "start_time": 1623207905, + "first_answer": 2, + "progress": "3", + "text": "继续答题", + "url": "https://www.bilibili.com/h5/newbie/entry?navhide=1", + "in_reg_audit": false, + "edition": 0, + "rewards": null + } +} +``` + +
+ +## 查询自选题分类 + +> https://api.bilibili.com/x/answer/v4/pro/type + +*请求方式:GET* + +认证方式:Cookie或APP + +当字段`edition`的值不同时,该接口返回的数据也不同 + +**json回复:** + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ----- | ---------- | ------------------------------------------------------------ | +| code | num | 返回值 | 0:成功
-101:账号未登录
41014:答题过快或错误太多
41021:用户基础题未通过
41031:自选题未通过
41055:基础附加题未通过 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | array | 父分类列表 | | + +`data`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | ----------- | ---- | +| 0 | obj | 父分类1 | | +| n | obj | 父分类(n+1) | | +| …… | obj | …… | …… | + +`data`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------ | ----- | ---------- | ---- | +| id | num | 父分类id | | +| name | str | 父分类名 | | +| fields | array | 子分类列表 | | + +`data`数组中的对象中的`fields`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | ----------- | ---- | +| 0 | obj | 子分类1 | | +| n | obj | 子分类(n+1) | | +| …… | obj | …… | …… | + +`fields`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | -------- | ---- | +| id | num | 子分类id | | +| name | str | 子分类名 | | + +**示例:** + +```shell +curl -G 'https://api.bilibili.com/x/answer/v4/pro/type' \ +-b 'SESSDATA=xxx' +``` + +旧版`edition=0`返回: + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": [ + { + "id": 1, + "name": "游戏", + "fields": [ + { + "id": 8, + "name": "动作射击" + }, + { + "id": 9, + "name": "冒险格斗" + }, + { + "id": 12, + "name": "策略模拟 " + }, + { + "id": 13, + "name": "角色扮演 " + }, + { + "id": 14, + "name": "音乐体育 " + } + ] + }, + { + "id": 2, + "name": "影视", + "fields": [ + { + "id": 15, + "name": "纪录片 " + }, + { + "id": 16, + "name": "电影 " + }, + { + "id": 17, + "name": "电视剧 " + } + ] + }, + { + "id": 3, + "name": "科技", + "fields": [ + { + "id": 18, + "name": "军事 " + }, + { + "id": 19, + "name": "地理 " + }, + { + "id": 20, + "name": "历史 " + }, + { + "id": 21, + "name": "文学 " + }, + { + "id": 22, + "name": "数学 " + }, + { + "id": 23, + "name": "物理 " + }, + { + "id": 24, + "name": "化学 " + }, + { + "id": 25, + "name": "生物 " + }, + { + "id": 26, + "name": "数码科技 " + } + ] + }, + { + "id": 4, + "name": "动画", + "fields": [ + { + "id": 27, + "name": "动画声优 " + }, + { + "id": 28, + "name": "动漫内容 " + } + ] + }, + { + "id": 5, + "name": "艺术", + "fields": [ + { + "id": 29, + "name": "ACG音乐 " + }, + { + "id": 30, + "name": "三次元音乐 " + }, + { + "id": 31, + "name": "绘画 " + } + ] + }, + { + "id": 6, + "name": "流行前线", + "fields": [ + { + "id": 32, + "name": "娱乐 " + }, + { + "id": 33, + "name": "时尚 " + }, + { + "id": 34, + "name": "运动 " + } + ] + }, + { + "id": 7, + "name": "鬼畜", + "fields": [ + { + "id": 35, + "name": "鬼畜 " + } + ] + } + ] +} +``` + +
+ +新版`edition=2`返回: + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": [ + { + "id": 1, + "name": "游戏", + "fields": [ + { + "id": 1, + "name": "游戏" + } + ] + }, + { + "id": 2, + "name": "影视", + "fields": [ + { + "id": 2, + "name": "影视" + } + ] + }, + { + "id": 3, + "name": "科教/知识", + "fields": [ + { + "id": 3, + "name": "科教/知识" + } + ] + }, + { + "id": 4, + "name": "动画/动漫", + "fields": [ + { + "id": 4, + "name": "动画/动漫" + } + ] + }, + { + "id": 5, + "name": "音乐/舞蹈", + "fields": [ + { + "id": 5, + "name": "音乐/舞蹈" + } + ] + }, + { + "id": 32, + "name": "明星/娱乐", + "fields": [ + { + "id": 32, + "name": "明星/娱乐" + } + ] + }, + { + "id": 35, + "name": "鬼畜", + "fields": [ + { + "id": 35, + "name": "鬼畜" + } + ] + }, + { + "id": 42, + "name": "时尚/健身", + "fields": [ + { + "id": 42, + "name": "时尚/健身" + } + ] + } + ] +} +``` + +
+ + +## 查询答题结果 + +> https://api.bilibili.com/x/answer/v4/result + +*请求方式:GET* + +认证方式:无 + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | ---- | ---------- | ------ | ---- | +| hid | num | 答题会话id | 必要 | | + +**json回复:** + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ---------------------------------------------------------- | +| code | num | 返回值 | 0:成功
-400:请求错误
41023:用户答题记录不存在 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----------------- | ----- | ------------------------ | ----------------------------------- | +| hid | num | 答题会话id | | +| mid | num | 答题用户mid | | +| member | num | | | +| score | num | 得分 | | +| level | num | 用户等级 | | +| first_pass | num | | | +| uname | str | 用户昵称 | | +| face | str | 用户头像url | | +| status | str | 答题结果 | failed:未通过
succeed:已通过 | +| question_types | array | 已选择的自选题列表 | | +| power | array | 自选题分类得分情况 | | +| start_time | num | 开始答题时间 | 时间戳 | +| share | obj | | | +| can_show_rank_btn | bool | | | +| is_same_user | bool | | | +| view_more | str | | | +| video_info | obj | | | +| main_tids | array | | | +| sub_tids | array | | | +| power_result | null | | | +| score_rate | num | 分数超过平均用户的百分比 | | +| permission | obj | | | +| rewards | null | | | + +**示例:** + +```shell +curl -G 'https://api.bilibili.com/x/answer/v4/result' \ +--data-urlencode 'hid=1615088061307609' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "hid": 1615088061307609, + "mid": 1386643599, + "member": 0, + "score": 70, + "level": 0, + "first_pass": 0, + "uname": "眉凭铱ひ前非", + "face": "http://i0.hdslb.com/bfs/face/cd83d4cdbfb521455c168eaa181915b40cb664d1.jpg", + "status": "succeed", + "question_types": [ + { + "id": 12, + "name": "策略模拟 " + }, + { + "id": 13, + "name": "角色扮演 " + }, + { + "id": 14, + "name": "音乐体育 " + }, + { + "id": 8, + "name": "动作射击" + }, + { + "id": 9, + "name": "冒险格斗" + } + ], + "power": [ + { + "score": 0, + "name": "动画" + }, + { + "score": 0, + "name": "艺术" + }, + { + "score": 5, + "name": "游戏" + }, + { + "score": 0, + "name": "科技" + }, + { + "score": 0, + "name": "影视" + }, + { + "score": 0, + "name": "鬼畜" + } + ], + "start_time": 1615088061, + "share": { + "content": "", + "short_content": "" + }, + "can_show_rank_btn": false, + "is_same_user": true, + "view_more": "", + "video_info": { + "url": "", + "name": "", + "img": "", + "watch_num": "", + "up_num": "" + }, + "main_tids": [], + "sub_tids": [], + "power_result": null, + "score_rate": 84, + "permission": { + "reply": true, + "color_dm": true + } + } +} +``` + +
\ No newline at end of file diff --git a/docs/note/action.md b/docs/note/action.md new file mode 100644 index 0000000000..33dbabae0f --- /dev/null +++ b/docs/note/action.md @@ -0,0 +1,135 @@ +# 笔记操作 + +- [保存视频笔记](#保存视频笔记) +- [删除视频笔记](#删除视频笔记) + +--- + +## 保存视频笔记 + +> https://api.bilibili.com/x/note/add + +*请求方式:POST* + +认证方式:Cookie(SESSDATA) + +**正文参数( application/x-www-form-urlencoded ):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------------ | ---- | ------------------------ | ------ | ------------------------------------------------------------ | +| oid | num | 目标id | 必要 | | +| oid_type | num | 目标id类型 | 必要 | `0`视频(oid=avid) | +| note_id | num | 笔记id | 非必要 | 创建时无需此项 | +| title | str | 笔记标题 | 必要 | | +| summary | str | 笔记预览文本 | 必要 | | +| content | str | 笔记正文json序列 | 必要 | 格式见[附表](readme.md#附表-笔记正文序列格式) | +| tags | str | 笔记跳转标签列表 | 非必要 | | +| cls | num | 1 | 非必要 | 作用尚不明确 | +| from | str | 提交类型 | 非必要 | `auto`自动提交
`save`手动提交
`close`关闭时自动提交 | +| cont_len | num | 正文字数 | 非必要 | | +| platform | str | 平台 | 非必要 | 可为`web` | +| publish | num | 是否公开笔记 | 非必要 | `0`不公开
`1`公开 | +| auto_comment | num | 是否添加到评论区 | 非必要 | `0`不添加
`1`添加 | +| csrf | str | CSRF Token(位于cookie) | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------------------ | +| code | num | 返回值 | `0`成功
`-101`账号未登录
`-111`csrf校验失败
`-400`请求错误
`79508`该稿件已存在笔记,无法新增
`79513`笔记所属视频不合法 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | obj | 数据本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | ------------ | ---- | +| note_id | num | 笔记id | | + +**示例:** + +保存内容为加粗的STRONG的笔记`3809605586518023`于`av970322090` + +```shell +curl 'https://api.bilibili.com/x/note/add' \ +--data-urlencode 'oid=970322090' \ +--data-urlencode 'oid_type=0' \ +--data-urlencode 'note_id=3809605586518023' +--data-urlencode 'title=周刊哔哩哔哩排行榜#543' +--data-urlencode 'summary=STRONG' +--data-urlencode 'content=[{"attributes":{"bold":true},"insert":"STRONG"},{"insert":"\n"}]' +--data-urlencode 'tags=' +--data-urlencode 'cls=1' +--data-urlencode 'from=save' +--data-urlencode 'csrf=xxx' +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "note_id": 3809605586518023 + } +} +``` + +
+ +## 删除视频笔记 + +> https://api.bilibili.com/x/note/del + +*请求方式:POST* + +认证方式:Cookie(SESSDATA) + +**正文参数( application/x-www-form-urlencoded ):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------- | ---- | ------------------------ | ------ | ---- | +| oid | num | 目标稿件avid | 必要 | | +| note_id | num | 笔记id | 非必要 | | +| csrf | str | CSRF Token(位于cookie) | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------------------ | +| code | num | 返回值 | 0:成功
-101:账号未登录
-111:csrf校验失败
-400:请求错误 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | + +**示例:** + +删除稿件`av457253380`下的笔记`4075968478576647` + +```shell +curl 'https://api.bilibili.com/x/note/del' \ +--data-urlencode 'oid=457253380' \ +--data-urlencode 'note_id=4075968478576647' \ +--data-urlencode 'csrf=xxx' +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: +```json +{ + "code": 0, + "message": "0", + "ttl": 1 +} +``` + +
diff --git a/docs/note/info.md b/docs/note/info.md new file mode 100644 index 0000000000..2014a05ed2 --- /dev/null +++ b/docs/note/info.md @@ -0,0 +1,315 @@ +# 笔记详细信息 + +- [查询该稿件是否禁止笔记](#查询该稿件是否禁止笔记) +- [查询私有笔记内容](#查询私有笔记内容) +- [查询公开笔记内容](#查询公开笔记内容) + +--- + +## 查询该稿件是否禁止笔记 + +> https://api.bilibili.com/x/note/is_forbid + +*请求方式:GET* + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | ---- | -------- | ------ | ---- | +| aid | num | 稿件avid | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | --------------------------- | +| code | num | 返回值 | `0`成功
`-400`请求错误 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| -------------------- | ---- | ------------ | ----------------------------------- | +| forbid_note_entrance | bool | 是否禁止笔记 | `true`禁止笔记
`false`允许笔记 | + +**示例:** + +查询视频稿件`av338677252`是否禁止笔记 + +```shell +curl 'https://api.bilibili.com/x/note/info' \ +--data-urlencode 'aid=338677252' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "forbid_note_entrance": false + } +} +``` + +
+ +## 查询私有笔记内容 + +> https://api.bilibili.com/x/note/info + +*请求方式:GET* + +认证方式:Cookie(SESSDATA) + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------- | ---- | ---------- | ----------- | -------- | +| oid | num | 目标id | 必要 | | +| oid_type | num | 目标id类型 | 必要 | `0`视频(oid=avid) | +| note_id | num | 笔记id | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------------------ | +| code | num | 返回值 | `0`成功
`-400`请求错误
`-101`账号未登录
`79502`笔记详情未找到
`79503`笔记正文未找到 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------------ | ----- | ---------------- | -------------- | +| arc | obj | 对应视频稿件信息 | | +| audit_status | num | 0 | 作用暂不明确 | +| cid_count | num | 视频分P数 | | +| content | str | 笔记正文json序列 | 格式见[附表](readme.md#附表-笔记正文序列格式) | +| forbid_note_entrance | bool | | | +| pub_reason | str | 公开笔记相关原因 | | +| pub_status | num | 公开笔记状态 | `1`未公开
`2`已公开
`4`退回 | +| pub_version | num | | | +| summary | str | 笔记预览文本 | | +| tags | array | 笔记跳转标签列表 | | +| title | str | 笔记标题 | | + +`data`中的`arc`对象: + +| 字段 | 类型 | 内容 | 备注 | +| -------- | ---- | ---------- | ----------------- | +| oid | num | 目标id | | +| oid_type | num | 目标id类型 | `0`视频(oid=avid) | +| title | str | 视频标题 | | +| pic | str | 视频封面 | | +| status | num | | | +| desc | str | 视频简介 | | + +`data`中的`tags`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | ----------- | ---------------- | +| 0 | obj | 标签1 | | +| n | obj | 标签(n+1) | 按照笔记中位置排列 | +| …… | obj | …… | …… | + +`tags`中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| -------- | ---- | ----------------- | ------------ | +| cid | num | 视频cid | | +| status | num | 0 | 作用尚不明确 | +| index | num | 在稿件中的分P索引 | | +| seconds | num | 视频进度 | | +| pos | num | 笔记中位置 | | + +**示例:** + +查询视频`av338677252`中笔记`24508729145690112`的内容 + +```shell +curl 'https://api.bilibili.com/x/note/info' \ +--data-urlencode 'oid=338677252' \ +--data-urlencode 'oid_type=0' \ +--data-urlencode 'note_id=24508729145690112' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "title": "2022哔哩哔哩拜年纪", + "summary": " ...", + "content": "[{"insert":"\n"}]", + "cid_count": 0, + "audit_status": 0, + "pub_status": 0, + "pub_reason": "", + "pub_version": 0, + "forbid_note_entrance": false, + "tags": [], + "arc": { + "oid": 338677252, + "title": "2022哔哩哔哩拜年纪", + "status": 0, + "oid_type": 0, + "pic": "http://i2.hdslb.com/bfs/archive/1e683a5363f35aa0a65419dbf145177099e38f90.jpg", + "desc": "" + } + } +} +``` + +
+ +## 查询公开笔记内容 + +> https://api.bilibili.com/x/note/publish/info + +*请求方式:GET* + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | ---- | ------------------ | ------ | -------- | +| cvid | num | 笔记对应的专栏cvid | 必要 | 非笔记id | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ---------------------------------------------------------- | +| code | num | 返回值 | `0`成功
`-400`请求错误
`79514`公开笔记详情未找到 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| -------------------- | ----- | ---------------------- | --------------------------------------------- | +| cvid | num | 公开笔记对应的专栏cvid | | +| note_id | num | 笔记id | | +| title | str | 笔记标题 | | +| summary | str | 笔记预览 | | +| content | str | 笔记正文json序列 | 格式见[附表](readme.md#附表-笔记正文序列格式) | +| cid_count | num | (?) | | +| pub_status | num | 公开状态 | | +| tags | array | | | +| arc | obj | 稿件信息 | | +| author | obj | 作者信息 | | +| forbid_note_entrance | bool | | | + +`data`中的`arc`对象: + +| 字段 | 类型 | 内容 | 备注 | +| -------- | ---- | ---------- | ----------------- | +| oid | num | 目标id | | +| oid_type | num | 目标id类型 | `0`视频(oid=avid) | +| title | str | 标题 | | +| status | num | (?) | | +| pic | str | 封面url | | +| desc | str | 简介 | | + +`data`中的`author`对象: + +| 字段 | 类型 | 内容 | 备注 | +| -------- | ---- | ---------- | ---- | +| mid | num | 用户mid | | +| name | str | 昵称 | | +| face | str | 头像url | | +| level | num | 用户等级 | | +| vip_info | obj | 会员信息 | | +| pendant | obj | 头像框信息 | | + +**示例:** + +查看公开笔记`cv15160286`的信息 + +```shell +curl 'https://api.bilibili.com/x/note/publish/info' \ +--data-urlencode 'cvid=15160286' +``` + +
+查看响应示例: + + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "cvid": 15160286, + "note_id": 24114044116402190, + "title": "2022哔哩哔哩拜年纪", + "summary": "我决定再重新做一个系列,叫做影评系列 那么我们这一次是影系列的第n期 我也不知道是多少期,到时候回去统计一下 今天的影评是写,2022年哔哩哔哩拜年纪 【...", + "content": "[{"insert":"我决定再重新做一个系列,叫做影评系列\n那么我们这一次是影系列的第n期\n我也不知道是多少期,到时候回去统计一下\n今天的影评是写,2022年哔哩哔哩拜年纪\n【以及往年的拜年祭,会提一下】\n看完哔哩哔哩拜年纪之后,我的触动真的很大,那今天就先写哔哩哔哩拜年纪吧。\n字数同样有点长,希望看过2022哔哩哔哩拜年纪的人可以认真看完吧!也可以说说你的想法啊!\n\n首先先说一说它的时间,因为每次都在除夕夜播放而出现要和家人看春晚,又要去抢红包之类的,所以每次都看不了直播。这一点就很糟心了。\n所以说这次同往年一样,我也是看的回放。\n一\n一开始是2233跳舞,因为我不太关注这些二次元,所以说就不详细评述了\n但是这个和去年的不问天,应该是一个系列的。都是2233在一起出镜,然后配的是一首歌,但是我觉得这首歌确实没有不问天那么惊艳我了。\n【我觉得很大的可能是今年的作曲没有泡泡老师,去年,前年的泡泡老师作的曲都真的非常的好听,而且今年的拜年纪的预告片上也有一个三首他写的歌的串烧。真的很不错。】\n二\n然后就说一下\n今年以及往年的动画\n这个主体动画真的每年做的都很不错。就是既有意义,又有故事,还有深度,同时还介绍了风俗人情和乡土民俗,真的都是非常非常好的动画,并且动画制作也很精良。\n真的想知道这些动画的主创人员都是谁,可是每次都没有标注。\n【既然谈到动画,就来说一下去年预告的一个动画叫盒中之海。其实我本来是去年看拜年纪的时候是没有看到这个预告片的\n但是今年的评论区底下,几乎每一个评论区中都在催盒中之海,于是我便去看了一下。我发现这个真的变得更有意义和深度了。\n他讲的是一个游戏,还有海神等等\n虽然感觉到它的预告片很乱,但是总觉得其中有什么联系?就是很悬疑又很惊恐但一看就很有深度的动画了!\n所以我也期待着了!】\n今年讲的是哔哩楼的故事,我觉得他的那个创意真的很好,就是自助餐厅的创意\n可以让每一个人都尝到厨师的快乐,\n但又不是真正去做厨师,如果真的能有这样一家店就好了!\n然后拜年纪传统的视频串烧节目就不说了吧。\n三\n再后来就是新春小记,俗称的是拜年曲\n去年的拜年曲是吉祥话,我觉得两个都很好听,但是说去年的都是我认识并且比较喜欢的歌手,可以今年的歌手一个都不认识了[em]e107[/em]\n但是近两年的但连许都用了说话开篇,然后其中高潮的时候都是顶针的方式来演唱,可能这也是一个习俗吧,但真的还比较好听!\n四\n一些没有触动的作品就不说了\n所以接下来是灯火!\n我没有想到今年过年能再一次听到\n《灯火里的中国》!\n因为今年春晚没有周深还有些遗憾呢!\n但虽然这首歌不是周深唱的,但也温暖人心!\n这个应该与去年的《我的祖国》是一个系列的!\n五\n四迹老师的动画一如既往的有意思\n【但就是少了灵魂快板……】\n去年和前年的快板真的深入人心了!\n所以我还是最喜欢去年的\n“这个好诶!”\n六\n邪教老师好几年没有写燃曲了哈哈哈哈哈哈\n但这个风灵玉秀和拜年祭一起做的动画挺好的\n虽然我不知道风灵玉秀是什么动画\n但武侠版的这个动画的动作做的很细致\n又不是很快,看的舒服又清晰\n配上音乐……\n【我不在想再说还不错了哈哈哈哈哈哈哈】\n七\n终于到我最喜欢的一首人演唱的歌曲\n【哈哈哈哈哈为了不与卡农冲突】\n《快乐手帐》\n我要把纳兰寻风的词吹爆!!!!!!!!!\n“跟着我,哒哒哒哒,搭个舞台\n跟着我,哒哒哒哒,大步迈开”\n“生活就是平平淡淡,偶尔磕磕绊绊\n让脑筋多转转,往好处看看!”\n真的好温暖!积极向上!向前看!\n这个初音未来的声音也没有不适感了!\n这个真的好棒!\n八\n然后是沃玛!\n沃玛的脑回路真的很独特!\n他的这个系列是视频真的很独特又新奇!\n这个不好描述……自己去看吧!\n沃玛的声音也好听!哈哈哈哈哈哈哈\n九\n魔术跳过吧\n上面是这次拜年级我最喜欢的一个节目,第大调卡农。\n这个真的很温暖,还有小提琴和钢琴的两个二重奏,就是非常的震撼人心,很感动。\n再配上他的画面,从一个小孩儿到最后的老人,感觉这一生都可以用这首歌来概括。所以说真的很感动又很温暖,\n而且这个节目的副标题是:\n致敬一生中每一个重要时刻\n所以更感动了!\n十\n拜年祭燃曲《弈》\n意境真的很扩大,不看注释完全看不懂词啊\n但去还比较好听,但感觉没有去年的《万象霜天》惊艳\n那我在b站上面看到一个视频,把这八年的八个燃曲在一起放,然后《弈》真的听起来很明显,很明显。\n高潮很高,很好听!\n所以苍穹是sv还是v啊?\n十一\n这次cilicili的《另一个我》没有做好\n可能是因为去年是《时光盲盒》真的太棒了!!!!\n“一遍遍,我回来了!……辛苦了!”\n反而今年的歌没有触动\n这是我唯一一个跳过了大约一分钟的节目\n十二\n后面几个节目都具有讽刺意义\n但那个三年都放的那个讽刺动画系列\n我属实看不懂哈哈哈哈哈哈哈哈\n梗太多了哈哈哈哈哈哈真有些看不懂\n十三\n终于到《除夕》了\n音阙诗听第二次上拜年祭!\n第一次安安和镜子演唱《与梦盛开》\n第二次是音阙诗听团队创作《除夕》\n同样是音阙诗听味啊!\n这次的词写的还不错!\n所以,节日系列开更!\n【但A-SOUL究竟是什么组合,根本没听说过啊】\n十四\n最后一个节目。\n流年如歌,是前年的最后一个节目,但是我那时候还不习惯听V曲,所以说几乎完全就跳过了,那个节目没有听。\n但是这个纳兰寻风作的词,以及这个西门振作的曲,真的配合起来好好听。\n还是要再吹一下纳兰寻风老师的词真的好棒,然后同样和上一个说的一样,温暖,感动,就有积极向上的那种乐观。\n“你是冰雪消融唤醒万物第一缕花香……”\n“湖面上小船儿晃晃岁月长……”\n【但是纳兰寻风老师究竟是做什么的?\n好像经常调教也能看到他哈哈哈哈哈哈\n没有特别关注】\n然后我每次听一听的是泠鸢翻唱的版本,这一次是让刷牙老师来唱的,男声和女声唱有有别样的风味\n这真的就像《难忘今宵》一样,要待在每一场拜年纪嘛?\n新年的那一天晚上都随着流年如歌,进入梦乡!\n人生如梦,流年似水,岁月如歌,\n春夏秋冬,年复一年\n唯有自己不变\n去下一个十年找到属于自己的答案吧!\n哔哩哔哩乾杯!\n\n\n十五【正好是十五哈哈哈哈哈】\n《五十》这个节目是很晚的时候看的\n有些悬疑,甚至有些恐怖,但引起了许多思考\n写太多了,就不详说了……\n【再次期待艾导的《盒中之海》!】\n\n哔哩哔哩( ゜ -゜)つロ 乾杯~​\n——今日发布于Q,转到哔哩哔哩!\n"}]", + "cid_count": 0, + "pub_status": 2, + "tags": [], + "arc": { + "oid": 338677252, + "title": "2022哔哩哔哩拜年纪", + "status": 0, + "oid_type": 0, + "pic": "http://i2.hdslb.com/bfs/archive/1e683a5363f35aa0a65419dbf145177099e38f90.jpg", + "desc": "" + }, + "author": { + "mid": 523870870, + "name": "夜达星xxxxxxx", + "face": "http://i1.hdslb.com/bfs/face/2cdfd277e63b6bb1f400ed616b5caf0a04196f28.jpg", + "level": 3, + "vip_info": { + "type": 0, + "status": 0, + "due_date": 0, + "vip_pay_type": 0, + "theme_type": 0, + "label": { + "path": "", + "text": "", + "label_theme": "", + "text_color": "", + "bg_style": 0, + "bg_color": "", + "border_color": "" + }, + "avatar_subscript": 0, + "nickname_color": "", + "role": 0, + "avatar_subscript_url": "" + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "", + "image_enhance_frame": "" + } + }, + "forbid_note_entrance": false + } +} +``` + +
diff --git a/docs/note/list.md b/docs/note/list.md new file mode 100644 index 0000000000..0efe5843d9 --- /dev/null +++ b/docs/note/list.md @@ -0,0 +1,660 @@ +# 笔记列表 + +- [查询稿件私有笔记](#查询稿件私有笔记) +- [查询用户私有笔记](#查询用户私有笔记) +- [查询稿件公开笔记](#查询稿件公开笔记) +- [查询用户公开笔记](#查询用户公开笔记) + +--- + +## 查询稿件私有笔记 + +> https://api.bilibili.com/x/note/list/archive + +*请求方式:GET* + +认证方式:Cookie(SESSDATA) + +该接口只能查询私有笔记,无法查询公开笔记 + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| -------- | ---- | ------------------------ | ------ | ----------------- | +| oid | num | 目标id | 必要 | | +| oid_type | num | 目标id类型 | 必要 | `0`视频(oid=avid) | +| csrf | str | CSRF Token(位于cookie) | 非必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------- | +| code | num | 返回值 | 0:成功
-400:请求错误
-101:账号未登录 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ----- | -------- | -------------------------------------------------- | +| noteIds | array | 笔记列表 | 无笔记则无此项
可能后续会允许视频添加多个笔记 | + +`data`中的`noteIds`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | ------ | ---- | +| 0 | str | 笔记id | | + +**示例:** + +查询视频`av970322090`的笔记id + +```shell +curl 'https://api.bilibili.com/x/note/list/archive' \ +--data-urlencode 'oid=970322090' \ +--data-urlencode 'oid_type=0' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code":0, + "message":"0", + "ttl":1, + "data":{ + "noteIds":[ + "3809605586518023" + ] + } +} +``` + +
+ +## 查询用户私有笔记 + +> https://api.bilibili.com/x/note/list + +*请求方式:GET* + +认证方式:Cookie(SESSDATA) + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------- | ---- | ------------ | ----------- | ------------------------------------------------------- | +| ps | num | 每页项数 | 必要 | | +| pn | num | 页码 | 必要 | | +| csrf | str | CSRF Token(位于cookie) | 非必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | --------------------------------------------------- | +| code | num | 返回值 | 0:成功
-400:请求错误
-101:账号未登录 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---------- | ----- | -------- | ------------ | +| list | array | 明细列表 | | +| page | obj | 页面信息 | | + +`data`中的`list`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | ----------- | ---------------- | +| 0 | obj | 笔记1 | | +| n | obj | 笔记(n+1) | 按照创建顺序排列 | +| …… | obj | …… | …… | + +`list`中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| -------------------- | ---- | ------------ | ------------------------- | +| title | str | 笔记标题 | | +| summary | str | 笔记预览文本 | | +| mtime | str | 提交时间 | YYYY-MM-DD hh:mm | +| arc | obj | 视频信息 | | +| note_id | num | 笔记id | | +| audit_status | num | 0 | 作用尚不明确 | +| web_url | str | 笔记h5页url | | +| note_id_str | str | 笔记id str | | +| message | str | 更新信息 | "更新于 YYYY-MM-DD hh:mm" | +| forbid_note_entrance | bool | (?) | | +| likes | num | 点赞数 | | +| has_like | bool | 是否点赞 | | + +`list`中的`arc`中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------ | ---- | ------------ | ---------------------- | +| oid | num | 目标id | | +| bvid | str | 稿件bvid | | +| pic | str | 稿件封面图片url | | +| desc | str | 视频简介 | | +| status | num | 0 | | +| oid_type | num | 目标id类型 | `0`视频(oid=avid) | +| aid | num | 稿件avid | | + +`data`中的`page`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------ | ---- | ------------ | -------------------- | +| total | num | 笔记总数 | | +| size | num | 每页项数 | | +| num | num | 页码 | | + +**示例:** + +```shell +curl 'https://api.bilibili.com/x/note/list' \ +--data-urlencode 'ps=10' \ +--data-urlencode 'pn=1' +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "list": [ + { + "title": "2022哔哩哔哩拜年纪", + "summary": " ...", + "mtime": "2022-02-16 16:46", + "arc": { + "oid": 338677252, + "bvid": "BV1fR4y1T7aV", + "pic": "http://i2.hdslb.com/bfs/archive/1e683a5363f35aa0a65419dbf145177099e38f90.jpg", + "desc": "愿大家看的开心!新年快乐,虎年大吉,欧气十足,万事顺意!ヾ(≧▽≦*)o", + "status": 0, + "oid_type": 0, + "aid": 338677252 + }, + "note_id": 24508729145690110, + "audit_status": 0, + "web_url": "https://www.bilibili.com/h5/note-app?oid=338677252&oid_type=0&pagefrom=fullpage&navhide=1&-Bct.statusbar.mode=0", + "note_id_str": "24508729145690112", + "message": "更新于 2022-02-16 16:46", + "forbid_note_entrance": false, + "likes": 0, + "has_like": false + } + ], + "page": { + "total": 1, + "size": 10, + "num": 1 + } + } +} +``` + +
+ +## 查询稿件公开笔记 + +> https://api.bilibili.com/x/note/publish/list/archive + +*请求方式:GET* + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| -------- | ---- | ---------- | ------ | ----------------- | +| oid | num | 目标id | 必要 | | +| oid_type | num | 目标id类型 | 必要 | `0`视频(oid=avid) | +| ps | num | 每页项数 | 必要 | | +| pn | num | 页码 | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------- | +| code | num | 返回值 | 0:成功
-400:请求错误
-101:账号未登录 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---------------- | ----- | ------------ | ---- | +| list | array | 公开笔记列表 | | +| page | obj | 页面信息 | | +| show_public_note | bool | | | +| message | str | | | + +`data`中的`list`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | ----------- | ---------------- | +| 0 | obj | 笔记1 | | +| n | obj | 笔记(n+1) | 按照创建顺序排列 | +| …… | obj | …… | …… | + +`list`中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| -------- | ---- | ---------------------- | ------------------------- | +| cvid | num | 公开笔记对应的专栏cvid | | +| title | str | 笔记标题 | | +| summary | str | 笔记预览 | | +| pubtime | str | 发布时间 | YYYY-MM-DD hh:mm | +| web_url | str | 笔记h5页url | | +| message | str | 更新信息 | "更新于 YYYY-MM-DD hh:mm" | +| author | obj | 作者信息 | | +| likes | num | 点赞数 | | +| has_like | bool | 是否点赞 | 需要登录(Cookie) | + +`list`中的对象中的`author`对象: + +| 字段 | 类型 | 内容 | 备注 | +| -------- | ---- | ---------- | ---- | +| mid | num | 用户mid | | +| name | str | 昵称 | | +| face | str | 头像url | | +| level | num | 用户等级 | | +| vip_info | obj | 会员信息 | | +| pendant | obj | 头像框信息 | | + +**示例:** + +查询视频`av338677252`的公开笔记列表 + +```shell +curl 'https://api.bilibili.com/x/note/publish/list/archive' \ +--data-urlencode 'oid=338677252' \ +--data-urlencode 'oid_type=0' \ +--data-urlencode 'ps=10' \ +--data-urlencode 'pn=1' +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "list": [ + { + "cvid": 15160286, + "title": "2022哔哩哔哩拜年纪", + "summary": "我决定再重新做一个系列,叫做影评系列 那么我们这一次是影系列的第n期 我也不知道是多少期,到时候回去统计一下 今天的影评是写,2022年哔哩哔哩拜年纪 【...", + "pubtime": "2022-02-07 23:44", + "web_url": "https://www.bilibili.com/h5/note-app/view?cvid=15160286&pagefrom=ugcvideo", + "message": "更新于 2022-02-07 23:44", + "author": { + "mid": 523870870, + "name": "夜达星xxxxxxx", + "face": "http://i1.hdslb.com/bfs/face/2cdfd277e63b6bb1f400ed616b5caf0a04196f28.jpg", + "level": 3, + "vip_info": { + "type": 0, + "status": 0, + "due_date": 0, + "vip_pay_type": 0, + "theme_type": 0, + "label": { + "path": "", + "text": "", + "label_theme": "", + "text_color": "", + "bg_style": 0, + "bg_color": "", + "border_color": "" + }, + "avatar_subscript": 0, + "nickname_color": "", + "role": 0, + "avatar_subscript_url": "" + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "", + "image_enhance_frame": "" + } + }, + "likes": 7, + "has_like": false + }, + { + "cvid": 15086217, + "title": "2022哔哩哔哩拜年纪", + "summary": "节目表,多图预警,方便各位时间戳跳转…… 01:20 New Day [图片] 06:32 重返哔哩楼1 [图片] 11:06 嗨,...", + "pubtime": "2022-02-01 20:07", + "web_url": "https://www.bilibili.com/h5/note-app/view?cvid=15086217&pagefrom=ugcvideo", + "message": "更新于 2022-02-01 20:07", + "author": { + "mid": 3810985, + "name": "Remレム22", + "face": "http://i1.hdslb.com/bfs/face/4cce970eb1b9fb8b322d49133a11caa630178728.jpg", + "level": 6, + "vip_info": { + "type": 2, + "status": 1, + "due_date": 1694880000000, + "vip_pay_type": 1, + "theme_type": 0, + "label": { + "path": "", + "text": "年度大会员", + "label_theme": "annual_vip", + "text_color": "#FFFFFF", + "bg_style": 1, + "bg_color": "#FB7299", + "border_color": "" + }, + "avatar_subscript": 1, + "nickname_color": "#FB7299", + "role": 3, + "avatar_subscript_url": "http://i0.hdslb.com/bfs/vip/icon_Certification_big_member_22_3x.png" + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "", + "image_enhance_frame": "" + } + }, + "likes": 22, + "has_like": false + }, + { + "cvid": 15080841, + "title": "2022哔哩哔哩拜年纪", + "summary": "2022哔哩哔哩拜年纪从厨师的角度开始了故事,而厨师象征着每个人,每一道菜都是每个厨师用汗水耕耘出来的,并且在主线故事中穿插这不同的小故事,代表了近几年生...", + "pubtime": "2022-02-01 10:10", + "web_url": "https://www.bilibili.com/h5/note-app/view?cvid=15080841&pagefrom=ugcvideo", + "message": "更新于 2022-02-01 10:10", + "author": { + "mid": 482114483, + "name": "沐曦mornal", + "face": "http://i2.hdslb.com/bfs/face/cf1ef9c2045e317dfe6dbe8659b6f7a69c7572d5.jpg", + "level": 4, + "vip_info": { + "type": 1, + "status": 1, + "due_date": 1646755200000, + "vip_pay_type": 1, + "theme_type": 0, + "label": { + "path": "", + "text": "大会员", + "label_theme": "vip", + "text_color": "#FFFFFF", + "bg_style": 1, + "bg_color": "#FB7299", + "border_color": "" + }, + "avatar_subscript": 1, + "nickname_color": "", + "role": 1, + "avatar_subscript_url": "http://i0.hdslb.com/bfs/vip/icon_Certification_big_member_22_3x.png" + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "", + "image_enhance_frame": "" + } + }, + "likes": 7, + "has_like": false + }, + { + "cvid": 15080246, + "title": "2022哔哩哔哩拜年纪", + "summary": "niumniumnium~~~33是我的菜了! 这次的跨年纪呢确实不同于以往。我发现现代技术确实给类似的活动提供了平台与支持,但是不可否认的是bilibi...", + "pubtime": "2022-02-01 08:59", + "web_url": "https://www.bilibili.com/h5/note-app/view?cvid=15080246&pagefrom=ugcvideo", + "message": "更新于 2022-02-01 08:59", + "author": { + "mid": 1049943541, + "name": "吃瓜的DINGBALL", + "face": "http://i1.hdslb.com/bfs/face/93e7a3826586338e15e5703f9d49bb3bbd0adfa5.jpg", + "level": 2, + "vip_info": { + "type": 1, + "status": 0, + "due_date": 1641744000000, + "vip_pay_type": 0, + "theme_type": 0, + "label": { + "path": "", + "text": "", + "label_theme": "", + "text_color": "", + "bg_style": 0, + "bg_color": "", + "border_color": "" + }, + "avatar_subscript": 0, + "nickname_color": "", + "role": 0, + "avatar_subscript_url": "" + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "", + "image_enhance_frame": "" + } + }, + "likes": 10, + "has_like": false + }, + { + "cvid": 15077197, + "title": "2022哔哩哔哩拜年纪", + "summary": "23333333333333333333333333333333333333333333333333333333333333333333333333333...", + "pubtime": "2022-01-31 22:53", + "web_url": "https://www.bilibili.com/h5/note-app/view?cvid=15077197&pagefrom=ugcvideo", + "message": "更新于 2022-01-31 22:53", + "author": { + "mid": 433136442, + "name": "KiBi_3", + "face": "http://i0.hdslb.com/bfs/face/4c11d1419316f14b8b0f5c146d0cd34627955244.jpg", + "level": 2, + "vip_info": { + "type": 0, + "status": 0, + "due_date": 0, + "vip_pay_type": 0, + "theme_type": 0, + "label": { + "path": "", + "text": "", + "label_theme": "", + "text_color": "", + "bg_style": 0, + "bg_color": "", + "border_color": "" + }, + "avatar_subscript": 0, + "nickname_color": "", + "role": 0, + "avatar_subscript_url": "" + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "", + "image_enhance_frame": "" + } + }, + "likes": 2, + "has_like": false + }, + { + "cvid": 15077019, + "title": "2022哔哩哔哩拜年纪", + "summary": "2022加油吖!~~~~~~~~~~~~~~~~~~~~~2022加油吖!2022加油吖!2022加油吖!2022加油吖!2022加油吖!2022加油吖!...", + "pubtime": "2022-01-31 22:36", + "web_url": "https://www.bilibili.com/h5/note-app/view?cvid=15077019&pagefrom=ugcvideo", + "message": "更新于 2022-01-31 22:36", + "author": { + "mid": 11283554, + "name": "zhen_____", + "face": "http://i0.hdslb.com/bfs/baselabs/381fcc3865daf85bd6a1ddc4b6dfbd11ba937dc9.jpg", + "level": 6, + "vip_info": { + "type": 2, + "status": 1, + "due_date": 1730736000000, + "vip_pay_type": 0, + "theme_type": 0, + "label": { + "path": "", + "text": "年度大会员", + "label_theme": "annual_vip", + "text_color": "#FFFFFF", + "bg_style": 1, + "bg_color": "#FB7299", + "border_color": "" + }, + "avatar_subscript": 1, + "nickname_color": "#FB7299", + "role": 3, + "avatar_subscript_url": "http://i0.hdslb.com/bfs/vip/icon_Certification_big_member_22_3x.png" + }, + "pendant": { + "pid": 5459, + "name": "星座系列:巨蟹座", + "image": "http://i2.hdslb.com/bfs/garb/item/a6e5b6b36a4a6c00ca8881ecc837c2aa9ebcb53d.png", + "expire": 0, + "image_enhance": "http://i2.hdslb.com/bfs/garb/item/a6e5b6b36a4a6c00ca8881ecc837c2aa9ebcb53d.png", + "image_enhance_frame": "" + } + }, + "likes": 5, + "has_like": false + } + ], + "page": { + "total": 6, + "size": 10, + "num": 1 + }, + "show_public_note": true, + "message": "" + } +} +``` + +
+ +## 查询用户公开笔记 + +> https://api.bilibili.com/x/note/publish/list/user + +*请求方式:GET* + +认证方式:Cookie(SESSDATA) + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | ---- | ------------------------ | ------ | ---- | +| ps | num | 每页项数 | 必要 | | +| pn | num | 页码 | 必要 | | +| csrf | str | CSRF Token(位于cookie) | 非必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------- | +| code | num | 返回值 | 0:成功
-400:请求错误
-101:账号未登录 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ----- | -------- | ---- | +| list | array | 明细列表 | | +| page | obj | 页面信息 | | + +`data`中的`list`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | ----------- | ---------------- | +| 0 | obj | 笔记1 | | +| n | obj | 笔记(n+1) | 按照创建顺序排列 | +| …… | obj | …… | …… | + +`data`中的`page`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----- | ---- | -------- | ---- | +| total | num | 笔记总数 | | +| size | num | 每页项数 | | +| num | num | 页码 | | + +**示例:** + +```shell +curl 'https://api.bilibili.com/x/note/publish/list/user' \ +--data-urlencode 'ps=10' \ +--data-urlencode 'pn=1' +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "page": { + "total": 0, + "size": 10, + "num": 1 + } + } +} +``` + +
diff --git a/docs/note/readme.md b/docs/note/readme.md new file mode 100644 index 0000000000..dbf0223e12 --- /dev/null +++ b/docs/note/readme.md @@ -0,0 +1,159 @@ +# 视频笔记 + +2020-11-16 B站推出了测试版的功能——"视频笔记",与视频稿件关联,为富文本模式,可供记录观看视频时的感悟以及视频中的重要内容,目前只可在web端操作 + +笔记分为私有笔记和公开笔记,一个稿件只能添加一篇私有笔记,但可以公开多篇笔记 + +公开笔记与【专栏】性质相同,使用`cvid`寻址相应的公开笔记 + +--- + +**继续查看:** + +- [笔记列表](list.md) +- [笔记详细信息](info.md) +- [笔记操作](action.md) + +--- + +## 附表-笔记正文序列格式 + +根数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | ------------- | ---- | +| 0 | obj | 第1个元素 | | +| n | obj | 第(n+1)个元素 | | +| …… | obj | …… | …… | + +根数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---------- | ---- | ------------ | ------------------- | +| attributes | obj | 元素属性 | 无属性无此项 | +| insert | str | 元素内容 | 为跳转/图片时无此项 | +| insert | obj | 元素跳转信息 | 非跳转/图片时无此项 | + +对象中的`attributes`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---------- | ---- | ---------- | ------------------------------ | +| bold | bool | 是否加粗 | | +| strike | bool | 是否删除线 | | +| underline | bool | 是否下划线 | | +| background | str | 背景颜色 | | +| color | str | 文字颜色 | | +| list | str | 列表属性 | ordered有序列表/bullet无序列表 | +| size | str | 文字字号 | | + +对象中的`insert`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----------- | ---- | -------- | ------ | +| tag | obj | 跳转标签 | 二选一 | +| imageUpload | obj | 笔记图片 | 二选一 | + +`insert`中的`tag`对象: + +| 字段 | 类型 | 内容 | 备注 | +| -------- | ---- | ----------------- | ------------ | +| cid | num | 视频cid | | +| status | num | 0 | 作用尚不明确 | +| index | num | 在稿件中的分P索引 | | +| seconds | num | 视频进度 | | +| cidCount | num | 稿件总分P数 | | +| key | str | 标签创建时间戳 | | +| title | str | output | 作用尚不明确 | + +`insert`中的`imageUpload`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------ | ---- | ---------- | ------------ | +| url | str | 图片链接 | | +| status | str | done | 作用尚不明确 | +| width | num | 图片宽度-2 | | + +示例: + +以下笔记正文序列包含`字号`、`加粗`、`高亮`、`普通文本`格式 + +```json +[ + { + "attributes": { + "size": "24px", + "bold": true + }, + "insert": "关掉" + }, + { + "attributes": { + "size": "24px" + }, + "insert": "," + }, + { + "attributes": { + "size": "24px", + "bold": true + }, + "insert": "关掉" + }, + { + "insert": "," + }, + { + "attributes": { + "background": "#fff359" + }, + "insert": "一定要" + }, + { + "attributes": { + "background": "#fff359", + "bold": true + }, + "insert": "关掉" + }, + { + "insert": "\n再不关掉那些" + }, + { + "attributes": { + "bold": true + }, + "insert": "网络游戏" + }, + { + "insert": ",小孩哪有" + }, + { + "attributes": { + "bold": true + }, + "insert": "美好的未来" + }, + { + "insert": ",哪有" + }, + { + "attributes": { + "bold": true + }, + "insert": "美好的前程" + }, + { + "insert": ",祖国哪有" + }, + { + "attributes": { + "bold": true + }, + "insert": "栋梁之才" + }, + { + "insert": "\n" + } +] +``` + diff --git a/docs/other/API_sign.md b/docs/other/API_sign.md new file mode 100644 index 0000000000..767b12dbdd --- /dev/null +++ b/docs/other/API_sign.md @@ -0,0 +1,84 @@ +# API 签名与鉴权 + +部分客户端专用的 rest api 存在基于 sign 的鉴权,需要使用规定的`appkey`及其对应的`appsec`与原始请求参数进行签名计算 + +不同`appkey`对应不同的 app (如客户端、概念版、必剪、漫画、bililink等) + +不同平台同 app 也会存在不同的 `appkey`(如安卓端、ios端、TV端等) + +同平台同 app 下不同功能也会存在不同的 `appkey`(如登录专用、取流专用等) + +**appkey与appsec一一对应** + +- [API签名的计算方式](#API签名的计算方式) +- [已知的APPKey](#已知的APPKey) + +--- + +## API签名的计算方式 + +首先为参数中添加`appkey`字段,然后按照参数的 key 重新排序,再将重排序后的参数使用 url query 格式序列化拼接与该 appkey 相对应的 appsec (盐值) 进行**md5 hash计算**(32位小写),该 hash 便是 API 签名 + +为参数尾部增添`sign`字段,它的值为上一步计算所得的 hash,一并作为表单提交 + +**实例:** + +使用 appkey = `1d8b6e7d45233436`, appsec = `560c52ccd288fed045859ed18bffd973` 对如下 `params` 参数进行签名 + +```python +import hashlib +import urllib.parse + +def appsign(params, appkey, appsec): + '为请求参数进行 api 签名' + params.update({'appkey': appkey}) + params = dict(sorted(params.items())) # 重排序参数 key + query = urllib.parse.urlencode(params) # 序列化参数 + sign = hashlib.md5((query+appsec).encode()).hexdigest() # 计算 api 签名 + params.update({'sign':sign}) + return params + +appkey = '1d8b6e7d45233436' +appsec = '560c52ccd288fed045859ed18bffd973' +params = { + 'id':114514, + 'str':'1919810', + 'test':'いいよ,こいよ', +} +signed_params = appsign(params, appkey, appsec) +query = urllib.parse.urlencode(signed_params) +print(signed_params) +print(query) +``` + +输出以下内容,分别是进行 api 签名后参数的 dict 以及 url query 格式 + +``` +{'appkey': '1d8b6e7d45233436', 'id': 114514, 'str': '1919810', 'test': 'いいよ,こいよ', 'sign': '01479cf20504d865519ac50f33ba3a7d'} +appkey=1d8b6e7d45233436&id=114514&str=1919810&test=%E3%81%84%E3%81%84%E3%82%88%EF%BC%8C%E3%81%93%E3%81%84%E3%82%88&sign=01479cf20504d865519ac50f33ba3a7d +``` + +## 已知的APPKey + +| appkey | appsec(sign盐值) | 平台 | 应用 | 备注 | +|------------------|----------------------------------|-----|----------|------| +| 07da50c9a0bf829f | 25bdede4e1581c836cab73a48790ca6e | 安卓 | 概念版 | | +| 1d8b6e7d45233436 | 560c52ccd288fed045859ed18bffd973 | 安卓 | 客户端 | 一般用途 | +| 178cf125136ca8ea | 34381a26236dd1171185c0beb042e1c6 | 安卓 | 概念版 | | +| 27eb53fc9058f8c3 | c2ed53a74eeefe3cf99fbd01d8c9c375 | ios | 客户端 | 一般用途 | +| 37207f2beaebf8d7 | e988e794d4d4b6dd43bc0e89d6e90c43 | 安卓 | biliLink | | +| 4409e2ce8ffd12b8 | 59b43e04ad6965f34319062b478f83dd | TV | 客户端 | | +| 57263273bc6b67f6 | a0488e488d1567960d3a765e8d129f90 | 安卓 | 客户端 | | +| 8d23902c1688a798 | 710f0212e62bd499b8d3ac6e1db9302a | 安卓 | 车机版 | | +| 5dce947fe22167f9 | | 安卓 | 必剪 | | +| 7d336ec01856996b | a1ce6983bc89e20a36c37f40c4f1a0dd | 安卓 | 概念版 | | +| 85eb6835b0a1034e | 2ad42749773c441109bdc0191257a664 | | | | +| 8e16697a1b4f8121 | f5dd03b752426f2e623d7badb28d190a | 安卓 | 国际版 | | +| aae92bc66f3edfab | af125a0d5279fd576c1b4418a3e8276d | PC | 投稿工具 | | +| ae57252b0c09105d | c75875c596a69eb55bd119e74b07cfe3 | 安卓 | 国际版 | | +| bb3101000e232e27 | 36efcfed79309338ced0380abd824ac1 | 安卓 | 国际版 | | +| bca7e84c2d947ac6 | 60698ba2f68e01ce44738920a0ffe768 | 安卓 | 客户端 | 登录专用 | +| cc578d267072c94d | ffb6bb4c4edae2566584dbcacfc6a6ad | 安卓 | 轻视频 | | +| cc8617fd6961e070 | 3131924b941aac971e45189f265262be | 安卓 | 漫画 | | +| iVGUTjsxvpLeuDCf | aHRmhWMLkdeMuILqORnYZocwMBpMEOdt | 安卓 | 客户端 | 取流专用 | +| YvirImLGlLANCLvM | JNlZNgfNGKZEpaDTkCdPQVXntXhuiJEM | ios | 客户端 | 取流专用 | diff --git a/docs/other/bvid_desc.md b/docs/other/bvid_desc.md new file mode 100644 index 0000000000..8fd476b0ea --- /dev/null +++ b/docs/other/bvid_desc.md @@ -0,0 +1,389 @@ +# bvid说明 + +2020-03-23 B站推出了全新的稿件视频id`bvid`来接替之前的`avid`,其意义与之相同 + +详见: + +1. [【升级公告】AV号全面升级至BV号(专栏)](https://www.bilibili.com/read/cv5167957) +2. [【升级公告】AV号全面升级至BV号](https://www.bilibili.com/blackboard/activity-BV-PC.html) + +--- + +- [概述](#概述) + - [格式](#格式) + - [实质](#实质) + - [avid发号方式的变化](#avid发号方式的变化) + +- [算法概述](#算法概述) + - [av->bv算法](#av->bv算法) + - [bv->av算法](#bv->av算法) + +- [编程实现](#编程实现) + + - [Python](#Python) + + - [C](#C) + + - [TypeScript](#TypeScript) + + - [Java](#Java) + + - [Kotlin](#Kotlin) + + - [Golang](#Golang) + +--- + +## 概述 + +### 格式 + +“bvid”恒为长度为12的字符串,前两个字母为大写“BV”,后10个为base58计算结果 + +### 实质 + +“bvid"为“avid”的base58编码,可通过算法进行相互转化 + +### avid发号方式的变化 + +从2009-09-09 09:09:09 [av2](https://www.bilibili.com/video/av2)的发布到2020-03-28 19:45:02 [av99999999](https://www.bilibili.com/video/av99999999)的发布B站结束了以投稿时间为顺序的avid发放,改为随机发放avid + +~~暗示B站东方要完?泪目~~ + +## 算法概述 + +算法以及程序主要参考[知乎@mcfx的回答](https://www.zhihu.com/question/381784377/answer/1099438784) + +### av->bv算法 + +注:本算法及示例程序仅能编码及解码avid<` 29460791296 `,无法验证avid>=` 29460791296 `的正确性 + +1. a=(avid⊕177451812)+8728348608 +2. 以i为循环变量循环6次b[i]=(a/58^i)%58 +3. 将b[i]中各个数字转换为以下码表中的字符 + +码表: + +> fZodR9XQDSUm21yCkr6zBqiveYah8bt4xsWpHnJE7jL5VG3guMTKNPAwcF + +4. 初始化字符串b[i]=`BV1 4 1 7 ` + +5. 按照以下字符顺序编码表编码并填充至b[i] + +字符顺序编码表: + +> 0 -> 11 +> +> 1 -> 10 +> +> 2 -> 3 +> +> 3 -> 8 +> +> 4 -> 4 +> +> 5 -> 6 + + +### bv->av算法 + +为以上算法的逆运算 + +## 编程实现 + +使用Python、C、TypeScript、Java、Kotlin以及Golang作为示例,欢迎社区提交更多例程 + +### Python + +```python +table = 'fZodR9XQDSUm21yCkr6zBqiveYah8bt4xsWpHnJE7jL5VG3guMTKNPAwcF' # 码表 +tr = {} # 反查码表 +# 初始化反查码表 +for i in range(58): + tr[table[i]] = i +s = [11, 10, 3, 8, 4, 6] # 位置编码表 +XOR = 177451812 # 固定异或值 +ADD = 8728348608 # 固定加法值 + +def bv2av(x): + r = 0 + for i in range(6): + r += tr[x[s[i]]] * 58 ** i + return (r - ADD) ^ XOR + +def av2bv(x): + x = (x ^ XOR) + ADD + r = list('BV1 4 1 7 ') + for i in range(6): + r[s[i]] = table[x // 58 ** i % 58] + return ''. join(r) + +print(av2bv(170001)) +print(bv2av('BV17x411w7KC')) +``` + +输出为: + +``` +BV17x411w7KC +170001 +``` + +### C + +```c +#include +#include +#include +#include + +const char table[] = "fZodR9XQDSUm21yCkr6zBqiveYah8bt4xsWpHnJE7jL5VG3guMTKNPAwcF"; // 码表 +char tr[124]; // 反查码表 +const unsigned long long XOR = 177451812; // 固定异或值 +const unsigned long long ADD = 8728348608; // 固定加法值 +const int s[] = {11, 10, 3, 8, 4, 6}; // 位置编码表 + +// 初始化反查码表 +void tr_init() { + for (int i = 0; i < 58; i++) + tr[table[i]] = i; +} + +unsigned long long bv2av(char bv[]) { + unsigned long long r = 0; + unsigned long long av; + for (int i = 0; i < 6; i++) + r += tr[bv[s[i]]] * (unsigned long long)pow(58, i); + av = (r - ADD) ^ XOR; + return av; +} + +char *av2bv(unsigned long long av) { + char *result = (char*)malloc(13); + strcpy(result,"BV1 4 1 7 "); + av = (av ^ XOR) + ADD; + for (int i = 0; i < 6; i++) + result[s[i]] = table[(unsigned long long)(av / (unsigned long long)pow(58, i)) % 58]; + return result; +} + +int main() { + tr_init(); + printf("%s\n", av2bv(170001)); + printf("%u\n", bv2av("BV17x411w7KC")); + return 0; +} +``` + +输出为: + +``` +BV17x411w7KC +170001 +``` + +### TypeScript + +感谢[#417](https://github.com/SocialSisterYi/bilibili-API-collect/issues/417#issuecomment-1186475063)提供 + +```typescript +export default class BvCode { + private TABEL = 'fZodR9XQDSUm21yCkr6zBqiveYah8bt4xsWpHnJE7jL5VG3guMTKNPAwcF'; // 码表 + private TR: Record = {}; // 反查码表 + private S = [11, 10, 3, 8, 4, 6]; // 位置编码表 + private XOR = 177451812; // 固定异或值 + private ADD = 8728348608; // 固定加法值 + constructor() { + // 初始化反查码表 + const len = this.TABEL.length; + for (let i = 0; i < len; i++) { + this.TR[this.TABEL[i]] = i; + } + } + av2bv(av: number): string { + const x_ = (av ^ this.XOR) + this.ADD; + const r = ['B', 'V', '1', , , '4', , '1', , '7']; + for (let i = 0; i < 6; i++) { + r[this.S[i]] = this.TABEL[Math.floor(x_ / 58 ** i) % 58]; + } + return r.join(''); + } + bv2av(bv: string): number { + let r = 0; + for (let i = 0; i < 6; i++) { + r += this.TR[bv[this.S[i]]] * 58 ** i; + } + return (r - this.ADD) ^ this.XOR; + } +} + +const bvcode = new BvCode(); + +console.log(bvcode.av2bv(170001)); +console.log(bvcode.bv2av('BV17x411w7KC')); +``` + +输出为: + +``` +BV17x411w7KC +170001 +``` + +### Java + +```java +/** + * 算法来自:https://www.zhihu.com/question/381784377/answer/1099438784 + */ +public class Util { + private static final String TABLE = "fZodR9XQDSUm21yCkr6zBqiveYah8bt4xsWpHnJE7jL5VG3guMTKNPAwcF"; + private static final int[] S = new int[]{11, 10, 3, 8, 4, 6}; + private static final int XOR = 177451812; + private static final long ADD = 8728348608L; + private static final Map MAP = new HashMap<>(); + + static { + for (int i = 0; i < 58; i++) { + MAP.put(TABLE.charAt(i), i); + } + } + + public static String aidToBvid(int aid) { + long x = (aid ^ XOR) + ADD; + char[] chars = new char[]{'B', 'V', '1', ' ', ' ', '4', ' ', '1', ' ', '7', ' ', ' '}; + for (int i = 0; i < 6; i++) { + int pow = (int) Math.pow(58, i); + long i1 = x / pow; + int index = (int) (i1 % 58); + chars[S[i]] = TABLE.charAt(index); + } + return String.valueOf(chars); + } + + public static int bvidToAid(String bvid) { + long r = 0; + for (int i = 0; i < 6; i++) { + r += MAP.get(bvid.charAt(S[i])) * Math.pow(58, i); + } + return (int) ((r - ADD) ^ XOR); + } +} +``` + +### Kotlin +```kotlin +/** + * 此程序非完全原创,改编自GH站内某大佬的Java程序,修改了部分代码,且转换为Kotlin + * 算法来源同上 + */ +object VideoUtils { + //这里是由知乎大佬不知道用什么方法得出的转换用数字 + var ss = intArrayOf(11, 10, 3, 8, 4, 6, 2, 9, 5, 7) + var xor: Long = 177451812 //二进制时加减数1 + + var add = 8728348608L //十进制时加减数2 + + //变量初始化工作,加载哈希表 + private const val table = "fZodR9XQDSUm21yCkr6zBqiveYah8bt4xsWpHnJE7jL5VG3guMTKNPAwcF" + private val mp = HashMap() + private val mp2 = HashMap() + + //现在,定义av号和bv号互转的方法 +//定义一个power乘方方法,这是转换进制必要的 + fun power(a: Int, b: Int): Long { + var power: Long = 1 + for (c in 0 until b) power *= a.toLong() + return power + } + + //bv转av方法 + fun bv2av(s: String): String { + var r: Long = 0 + //58进制转换 + for (i in 0..57) { + val s1 = table.substring(i, i + 1) + mp[s1] = i + } + for (i in 0..5) { + r += mp[s.substring(ss[i], ss[i] + 1)]!! * power(58, i) + } + //转换完成后,需要处理,带上两个随机数 + return (r - add xor xor).toString() + } + + //av转bv方法 + fun av2bv(st: String): String { + try { + var s = java.lang.Long.valueOf(st.split("av".toRegex()).dropLastWhile { it.isEmpty() } + .toTypedArray()[1]) + val sb = StringBuffer("BV1 4 1 7 ") + //逆向思路,先将随机数还原 + s = (s xor xor) + add + //58进制转回 + for (i in 0..57) { + val s1 = table.substring(i, i + 1) + mp2[i] = s1 + } + for (i in 0..5) { + val r = mp2[(s / power(58, i) % 58).toInt()] + sb.replace(ss[i], ss[i] + 1, r!!) + } + return sb.toString() + } catch (e: ArrayIndexOutOfBoundsException) { + return "" + } + } + +} +``` + +### Golang +```go +package main + +import "math" + +const TABLE = "fZodR9XQDSUm21yCkr6zBqiveYah8bt4xsWpHnJE7jL5VG3guMTKNPAwcF" +var S = [11]uint{11, 10, 3, 8, 4, 6} +const XOR = 177451812 +const ADD = 8728348608 + +var TR = map[string]int64{} + +// 初始化 TR +func init() { + for i := 0; i < 58; i++ { + TR[TABLE[i:i+1]] = int64(i) + } +} + +func BV2AV(bv string) int64 { + r := int64(0) + for i := 0; i < 6; i++ { + r += TR[bv[S[i]:S[i]+1]] * int64(math.Pow(58, float64(i))) + } + return (r - ADD) ^ XOR +} + +func AV2BV(av int64) string { + x := (av ^ XOR) + ADD + r := []rune("BV1 4 1 7 ") + for i := 0; i < 6; i++ { + r[S[i]] = rune(TABLE[x/int64(math.Pow(58, float64(i)))%58]) + } + return string(r) +} + +func main() { + println(AV2BV(170001)) + println(BV2AV("BV17x411w7KC")) +} +``` + +输出为: + +``` +BV17x411w7KC +170001 +``` diff --git a/docs/other/errcode.md b/docs/other/errcode.md new file mode 100644 index 0000000000..534f39d2a9 --- /dev/null +++ b/docs/other/errcode.md @@ -0,0 +1,65 @@ +# 公共错误码 + +下表为大部分接口返回值中`code`字段值中公共的错误代码 + +- [权限类](#权限类) +- [请求类](#请求类) + +--- + +## 权限类 + +| 代码 | 含义 | +| ---- | -------------------------- | +| -1 | 应用程序不存在或已被封禁 | +| -2 | Access Key 错误 | +| -3 | API 校验密匙错误 | +| -4 | 调用方对该 Method 没有权限 | +| -101 | 账号未登录 | +| -102 | 账号被封停 | +| -103 | 积分不足 | +| -104 | 硬币不足 | +| -105 | 验证码错误 | +| -106 | 账号非正式会员或在适应期 | +| -107 | 应用不存在或者被封禁 | +| -108 | 未绑定手机 | +| -110 | 未绑定手机 | +| -111 | csrf 校验失败 | +| -112 | 系统升级中 | +| -113 | 账号尚未实名认证 | +| -114 | 请先绑定手机 | +| -115 | 请先完成实名认证 | + +## 请求类 + +| 代码 | 含义 | +| ---- | --------------------- | +| -304 | 木有改动 | +| -307 | 撞车跳转 | +| -400 | 请求错误 | +| -401 | 未认证 (或非法请求) | +| -403 | 访问权限不足 | +| -404 | 啥都木有 | +| -405 | 不支持该方法 | +| -409 | 冲突 | +| -412 | 请求被拦截 (客户端 ip 被服务端风控) | +| -500 | 服务器错误 | +| -503 | 过载保护,服务暂不可用 | +| -504 | 服务调用超时 | +| -509 | 超出限制 | +| -616 | 上传文件不存在 | +| -617 | 上传文件太大 | +| -625 | 登录失败次数太多 | +| -626 | 用户不存在 | +| -628 | 密码太弱 | +| -629 | 用户名或密码错误 | +| -632 | 操作对象数量限制 | +| -643 | 被锁定 | +| -650 | 用户等级太低 | +| -652 | 重复的用户 | +| -658 | Token 过期 | +| -662 | 密码时间戳过期 | +| -688 | 地理区域限制 | +| -689 | 版权限制 | +| -701 | 扣节操失败 | +|-8888|对不起,服务器开小差了~ (ಥ﹏ಥ)| diff --git a/docs/other/picture.md b/docs/other/picture.md new file mode 100644 index 0000000000..2b1aaad163 --- /dev/null +++ b/docs/other/picture.md @@ -0,0 +1,44 @@ +# 图片格式化 + +对于\*.hdslb.com/bfs下的图片文件都可以使用以下格式化参数 + +> \*.hdslb.com/bfs/\*/\*.\[jpg/png/gif\]@{width}w\_{high}h\_{quality}q.{format} + +| 可选参数 | 含义 | 备注 | +| -------- | ---------------- | ---------------- | +| width | 图片最大限制宽度 | | +| high | 图片最大限制高度 | | +| quality | 图片质量百分比 | 仅限webp | +| format | 图片格式 | 仅限png/jpg/webp | + +**示例:** + +原始图片 + +https://i1.hdslb.com/bfs/archive/e5fff1472bad1c0c6bcb3004205f9be23b58ffc0.jpg + +![](https://i1.hdslb.com/bfs/archive/e5fff1472bad1c0c6bcb3004205f9be23b58ffc0.jpg) + +高度限制为100 + +https://i1.hdslb.com/bfs/archive/e5fff1472bad1c0c6bcb3004205f9be23b58ffc0.jpg@100h + +![](https://i1.hdslb.com/bfs/archive/e5fff1472bad1c0c6bcb3004205f9be23b58ffc0.jpg@100h) + +宽度限制为100 + +https://i1.hdslb.com/bfs/archive/e5fff1472bad1c0c6bcb3004205f9be23b58ffc0.jpg@100w + +![](https://i1.hdslb.com/bfs/archive/e5fff1472bad1c0c6bcb3004205f9be23b58ffc0.jpg@100w) + +转换格式为webp + +https://i1.hdslb.com/bfs/archive/e5fff1472bad1c0c6bcb3004205f9be23b58ffc0.jpg@.webp + +![](https://i1.hdslb.com/bfs/archive/e5fff1472bad1c0c6bcb3004205f9be23b58ffc0.jpg@.webp) + +转换为webp图片质量为1% + +https://i1.hdslb.com/bfs/archive/e5fff1472bad1c0c6bcb3004205f9be23b58ffc0.jpg@1q.webp + +![](https://i1.hdslb.com/bfs/archive/e5fff1472bad1c0c6bcb3004205f9be23b58ffc0.jpg@1q.webp) \ No newline at end of file diff --git a/docs/other/time_stamp.md b/docs/other/time_stamp.md new file mode 100644 index 0000000000..eff08816e4 --- /dev/null +++ b/docs/other/time_stamp.md @@ -0,0 +1,79 @@ +# 获取当前时间戳 + +- [获取当前时间戳](#获取当前时间戳) + - [获取当前时间戳](#获取当前时间戳-1) + - [获取服务器端UTC时间](#获取服务器端utc时间) + +--- + +## 获取当前时间戳 + +> https://api.bilibili.com/x/report/click/now + +*请求方式:GET* + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------- | +| code | num | 返回值 | 0:成功 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | ------------ | ---- | +| now | num | 当前的时间戳 | | + +**示例:** + +```shell +curl 'https://api.bilibili.com/x/report/click/now' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "now": 1592666471 + } +} +``` + +
+ +## 获取服务器端UTC时间 + +> https://interface.bilibili.com/serverdate.js + +*请求方式:GET* + +**js回复:** + +```js +window.serverdate = Date.UTC(YYYY, M, D, h, m, s); +``` + +**示例:** + +```shell +curl 'https://interface.bilibili.com/serverdate.js' +``` + + +
+查看响应示例: + +```js +window.serverdate = Date.UTC(2021, 4, 16, 17, 31, 8); +``` +
diff --git a/docs/ranking&dynamic/85videos.md b/docs/ranking&dynamic/85videos.md new file mode 100644 index 0000000000..206f844f81 --- /dev/null +++ b/docs/ranking&dynamic/85videos.md @@ -0,0 +1,199 @@ + + +# 入站必刷 + +[获取入站必刷85个视频](#85videos) + +## 获取入站必刷85个视频 + +> https://api.bilibili.com/x/web-interface/popular/precious + +**url参数** + +| 字段 | 类型 | 内容 | 必要性 | 备注 | +| ------- | ----- | -------- | --------------------------- | +| page | int | 第几页 | 不必要 | 默认为1 | +| page_size | int | 每一页的视频数 | 不必要 | 可以设为 85 获取所有的视频 | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ----- | -------- | --------------------------- | +| code | num | 返回值 | 0:成功
-400:请求错误 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | array | 视频列表 | | + +`data` 字段: + +| 字段 | 类型 | 内容 | 备注 | +| - | - | - | - | +| title | string | 标题 | 入站必刷 | +| media_id | int | media_id | | +| explain | string | 解释(概括)| 我不允许还有人没看过这85个宝藏视频! | +| list | list | 列表 | | + +`data` 中的 `list` 字段: + +| 字段 | 类型 | 内容 | 备注 | +| - | - | - | - | +| aid | int | aid | | +| videos | int | 视频数? | | +| tid | int | 分区 id | | +| tname | string | 分区名称 | | +| copyright | int | 版权 | | +| pic | url | 封面 url | | +| title | string | 标题 | | +| pubdate | int | 发布时间 | 时间戳 | +| ctime | int | 暂不清楚 | 时间戳 | +| desc | string | 简介 | | +| state | int | 暂不清楚 | | +| duration | int | 视频时长 | 单位为秒 | +| mission_id | int | 暂不清楚 | | +| rights | dict | 暂不清楚 | 好像没啥么用 | +| owner | dict | 作者 | | +| stat | dict | 状态 | | +| dynamic | string | 动态发布时写的文字 | | +| cid | int | cid | | +| dimension | dict | 视频的一些属性 | | +| season_id | int | 暂不清楚 | | +| short_link | string | 短链 | | +| short_link_v2 | string | 短链 | 第二版 | +| bvid | string | bvid | | +| season_type | int | 分区 tid? | | +| is_ogv | bool | 暂不清楚 | | +| ogv_info | dict/null? | 暂不清楚 | | +| rcmd_reason | string? | 暂不清楚 | | +| achievement | string | 荣誉概述 | | + +**示例:** + +``` shell +curl 'https://api.bilibili.com/x/web-interface/popular/precious' +``` +
+查看响应事例: + +``` json +{ + "code":0, + "message":"0", + "ttl":1, + "data":{ + "title":"入站必刷", + "media_id":496307088, + "explain":"我不允许还有人没看过这85个宝藏视频!", + "list":[ + { + "aid":715024588, + "videos":1, + "tid":233, + "tname":"极客DIY", + "copyright":1, + "pic":"http://i1.hdslb.com/bfs/archive/55ce9a4d1797ec56a0d4ed727f1a279b89ec3664.jpg", + "title":"【才浅】15天花20万元用500克黄金敲数万锤纯手工打造三星堆黄金面具", + "pubdate":1618207101, + "ctime":1618207101, + "desc":"倾家荡产求三连支持!!!请大家帮忙给新系列想个名字,点赞一百万的话制作三星堆黄金权杖,不会真的可以点到一百万吧\nbgm:\n-Old-B - 【Free Beat】侠之道 、于剑飞 - 01 片头曲 帝陵、AniFace - 夜辞秋江", + "state":0, + "duration":717, + "mission_id":16881, + "rights":{ + "bp":0, + "elec":0, + "download":0, + "movie":0, + "pay":0, + "hd5":0, + "no_reprint":1, + "autoplay":1, + "ugc_pay":0, + "is_cooperation":0, + "ugc_pay_preview":0, + "no_background":0, + "arc_pay":0, + "pay_free_watch":0 + }, + "owner":{ + "mid":2200736, + "name":"才疏学浅的才浅", + "face":"http://i2.hdslb.com/bfs/face/1f4819b224cd882025a9a6a5f2c6680c332f37bc.jpg" + }, + "stat":{ + "aid":715024588, + "view":13833908, + "danmaku":215105, + "reply":39792, + "favorite":619513, + "coin":2484204, + "share":122302, + "now_rank":0, + "his_rank":1, + "like":2338710, + "dislike":0 + }, + "dynamic":"倾家荡产求三连!!", + "cid":323723441, + "dimension":{ + "width":1920, + "height":1080, + "rotate":0 + }, + "season_id":19992, + "short_link":"https://b23.tv/BV16X4y1g7wT", + "short_link_v2":"https://b23.tv/BV16X4y1g7wT", + "bvid":"BV16X4y1g7wT", + "season_type":0, + "is_ogv":false, + "ogv_info":null, + "rcmd_reason":"", + "achievement":"央视新华社点赞,博物馆喊话来上班!" + }, + ... and more + ] + } +} +``` +
diff --git a/docs/ranking&dynamic/dynamic.md b/docs/ranking&dynamic/dynamic.md new file mode 100644 index 0000000000..941a0b1d65 --- /dev/null +++ b/docs/ranking&dynamic/dynamic.md @@ -0,0 +1,199 @@ +# 分区最新视频 + +- [获取分区最新视频列表](#获取分区最新视频列表) + +--- + +## 获取分区最新视频列表 + +> https://api.bilibili.com/x/web-interface/dynamic/region + +*请求方式:GET* + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | ---- | ----------- | ------ | ------- | +| pn | num | 页码 | 非必要 | 默认为1 | +| ps | num | 每页项数 | 非必要 | 默认为5 | +| rid | num | 目标分区tid | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | --------------------------- | +| code | num | 返回值 | 0:成功
-400:请求错误 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| -------- | ------ | -------- | ---- | +| archives | array | 视频列表 | | +| page | obj | 页面信息 | | + +`data`中的`archives`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | --------- | ---- | +| 0 | obj | 视频1 | | +| n | obj | 视频(n+1) | | +| …… | obj | …… | …… | + +`data`中的`archives`数组中的对象: + +基本同[获取视频详细信息(web端)](/video/info.md#获取视频详细信息(web端))中的data对象 + +`data`中的`page`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----- | ---- | ---------- | ---- | +| count | num | 总计视频数 | | +| num | num | 当前页码 | | +| size | num | 每页项数 | | + +**示例:** + +获取`tid=21`(生活->日常)分区中的2条最新动态视频信息 + +```shell +curl -G 'https://api.bilibili.com/x/web-interface/dynamic/region' \ +--data-urlencode 'rid=21' \ +--data-urlencode 'ps=2' \ +--data-urlencode 'pn=1' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "page": { + "num": 1, + "size": 2, + "count": 189 + }, + "archives": [{ + "aid": 56998612, + "videos": 24, + "tid": 21, + "tname": "日常", + "copyright": 1, + "pic": "http://i2.hdslb.com/bfs/archive/76536be425ed98ba1f1b9aef1ada3a09f94c9f04.jpg", + "title": "操控百万UP主的一天!", + "pubdate": 1562568733, + "ctime": 1561624175, + "desc": "拍这个视频还挺辛苦的,希望大家喜欢的话给个三连叭!", + "state": 0, + "attribute": 536887424, + "duration": 1864, + "rights": { + "bp": 0, + "elec": 0, + "download": 0, + "movie": 0, + "pay": 0, + "hd5": 0, + "no_reprint": 1, + "autoplay": 0, + "ugc_pay": 0, + "is_cooperation": 0, + "ugc_pay_preview": 0, + "no_background": 0 + }, + "owner": { + "mid": 2206456, + "name": "花少北丶", + "face": "http://i1.hdslb.com/bfs/face/86ef6895a8f88c80f2885e7eb9ba7989db437b93.jpg" + }, + "stat": { + "aid": 56998612, + "view": 2863604, + "danmaku": 82588, + "reply": 5502, + "favorite": 65471, + "coin": 104905, + "share": 5815, + "now_rank": 0, + "his_rank": 12, + "like": 165638, + "dislike": 0 + }, + "dynamic": "你想看的这里都有!", + "cid": 99548502, + "dimension": { + "width": 1920, + "height": 1080, + "rotate": 0 + }, + "bvid": "BV1Wx411d7jX" + }, { + "aid": 837503204, + "videos": 1, + "tid": 21, + "tname": "日常", + "copyright": 1, + "pic": "http://i1.hdslb.com/bfs/archive/7025827d8dbfc6139a2d066daa51a08897282534.jpg", + "title": "“都是小人物,就别说什么大话了,活着就行”", + "pubdate": 1585264054, + "ctime": 1585264054, + "desc": "每一位用心生活的小人物,都是各自生活中不平凡的英雄!", + "state": 0, + "attribute": 16512, + "duration": 295, + "mission_id": 12868, + "rights": { + "bp": 0, + "elec": 0, + "download": 0, + "movie": 0, + "pay": 0, + "hd5": 0, + "no_reprint": 1, + "autoplay": 1, + "ugc_pay": 0, + "is_cooperation": 0, + "ugc_pay_preview": 0, + "no_background": 0 + }, + "owner": { + "mid": 350928606, + "name": "彼岸的岛", + "face": "http://i2.hdslb.com/bfs/face/9814b8b6defc045aa07c3bb08e8a30e63afd9f3e.jpg" + }, + "stat": { + "aid": 837503204, + "view": 142239, + "danmaku": 602, + "reply": 702, + "favorite": 4728, + "coin": 4712, + "share": 917, + "now_rank": 0, + "his_rank": 0, + "like": 7700, + "dislike": 0 + }, + "dynamic": "#全能打卡挑战##正能量##感人#", + "cid": 169901162, + "dimension": { + "width": 1280, + "height": 720, + "rotate": 0 + }, + "bvid": "BV1cg4y1a7tB" + }] + } +} +``` + +
diff --git a/docs/ranking&dynamic/popular.md b/docs/ranking&dynamic/popular.md new file mode 100644 index 0000000000..f849eb41c1 --- /dev/null +++ b/docs/ranking&dynamic/popular.md @@ -0,0 +1,1298 @@ +# 热门视频 + +- [获取当前热门视频列表](#获取当前热门视频列表) + +--- + +## 获取当前热门视频列表 + +> https://api.bilibili.com/x/web-interface/popular + +_请求方式:GET_ + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | ---- | -------- | ------ | --------- | +| pn | num | 页码 | 非必要 | 默认为 1 | +| ps | num | 每页项数 | 非必要 | 默认为 20 | + +>> 注意:当携带Cookie时返回的数据的排行是个性化的 + +**json 回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | --------------------------- | +| code | num | 返回值 | 0:成功
-400:请求错误 | +| message | str | 错误信息 | 默认为 0 | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ----- | -------------- | ---- | +| list | array | 视频列表 | | +| no_more | bool | 是否有更多数据 | false:下页还有数据
true:下页没有数据 | + +`data`中的`list`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | --------- | ---- | +| 0 | obj | 视频1 | | +| n | obj | 视频(n+1) | | +| …… | obj | …… | …… | + +`data`中的`list`数组中的对象: + +基本同[获取视频详细信息(web端)](/video/info.md#获取视频详细信息(web端))中的data对象 + + +**示例:** + +获取当前热门视频列表(不携带 Cookie) + +```shell +curl -G 'https://api.bilibili.com/x/web-interface/popular' \ +--data-urlencode 'ps=20' \ +--data-urlencode 'pn=1' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "list": [ + { + "aid": 260200041, + "videos": 1, + "tid": 212, + "tname": "美食侦探", + "copyright": 1, + "pic": "http://i1.hdslb.com/bfs/archive/02641bbfadc63f5224834b096cc6c440e14f385f.jpg", + "title": "街头碳水大师:当北方人看到 南方那么多面食…", + "pubdate": 1662198796, + "ctime": 1662198796, + "desc": "想不到这个南方街头,竟把我俩吃到深夜…", + "state": 0, + "duration": 803, + "mission_id": 873400, + "rights": { + "bp": 0, + "elec": 0, + "download": 0, + "movie": 0, + "pay": 0, + "hd5": 1, + "no_reprint": 1, + "autoplay": 1, + "ugc_pay": 0, + "is_cooperation": 0, + "ugc_pay_preview": 0, + "no_background": 0, + "arc_pay": 0, + "pay_free_watch": 0 + }, + "owner": { + "mid": 99157282, + "name": "盗月社食遇记", + "face": "http://i1.hdslb.com/bfs/face/c7fb5da587c2ec6b56ad47579933fda34c000457.jpg" + }, + "stat": { + "aid": 260200041, + "view": 295188, + "danmaku": 3590, + "reply": 1465, + "favorite": 3651, + "coin": 12006, + "share": 2039, + "now_rank": 0, + "his_rank": 0, + "like": 39568, + "dislike": 0 + }, + "dynamic": "这玩意怎么可能不好吃呢?!", + "cid": 822798408, + "dimension": { "width": 1920, "height": 1080, "rotate": 0 }, + "short_link": "https://b23.tv/BV1fe411g7F5", + "short_link_v2": "https://b23.tv/BV1fe411g7F5", + "first_frame": "http://i1.hdslb.com/bfs/storyff/n220903a22ujdxvylswyat3oqlkj8wax_firsti.jpg", + "pub_location": "上海", + "bvid": "BV1fe411g7F5", + "season_type": 0, + "is_ogv": false, + "ogv_info": null, + "rcmd_reason": { "content": "很多人点赞", "corner_mark": 0 } + }, + { + "aid": 472731550, + "videos": 1, + "tid": 17, + "tname": "单机游戏", + "copyright": 1, + "pic": "http://i1.hdslb.com/bfs/archive/7ebaad047fb96e5d14b8ebb2eabf4b39a4ef10a6.jpg", + "title": "卸载!!!!!", + "pubdate": 1662177000, + "ctime": 1662093287, + "desc": "再见!!!!!", + "state": 0, + "duration": 1090, + "mission_id": 899516, + "rights": { + "bp": 0, + "elec": 0, + "download": 0, + "movie": 0, + "pay": 0, + "hd5": 0, + "no_reprint": 1, + "autoplay": 1, + "ugc_pay": 0, + "is_cooperation": 0, + "ugc_pay_preview": 0, + "no_background": 0, + "arc_pay": 0, + "pay_free_watch": 0 + }, + "owner": { + "mid": 546195, + "name": "老番茄", + "face": "http://i0.hdslb.com/bfs/face/bc5ca101313d4db223c395d64779e76eb3482d60.jpg" + }, + "stat": { + "aid": 472731550, + "view": 997762, + "danmaku": 19350, + "reply": 4339, + "favorite": 44208, + "coin": 113024, + "share": 2172, + "now_rank": 0, + "his_rank": 7, + "like": 205331, + "dislike": 0 + }, + "dynamic": "", + "cid": 821658341, + "dimension": { "width": 1920, "height": 1080, "rotate": 0 }, + "short_link": "https://b23.tv/BV1AK411f7KR", + "short_link_v2": "https://b23.tv/BV1AK411f7KR", + "first_frame": "http://i0.hdslb.com/bfs/storyff/n220902a23i8b6s8004xd62mg3z2ol72_firsti.jpg", + "pub_location": "上海", + "bvid": "BV1AK411f7KR", + "season_type": 0, + "is_ogv": false, + "ogv_info": null, + "rcmd_reason": { "content": "20万点赞", "corner_mark": 0 } + }, + { + "aid": 730159604, + "videos": 1, + "tid": 173, + "tname": "桌游棋牌", + "copyright": 1, + "pic": "http://i1.hdslb.com/bfs/archive/524de9769a0c06d8300950e24b52dbdd7a192613.jpg", + "title": "老板?架空啦!", + "pubdate": 1662188531, + "ctime": 1662184216, + "desc": "希望你喜欢这次的视频,这次玩的是《我是大老板》。\n游戏的规则不算简单:\n轮到你时,你可以选择发起生意;\n当然你也可以选择补充手牌。\n做成生意会需要一些字母,相当于需要有人投资,ABCDEF就是各位投资人;\n身份类的字母是永久的,除非别人用招募牌给挖走;\n手牌中的字母是一次性的。\n为了成功完成生意,你作为老板需要和你的合伙人商量好价钱,完成后按约定分给合伙人。\n当然,失败的生意是挣不到钱的;\n并且,你作为老板可以 决定是否做这单生意。\n数个回合后,摇骰子决定游戏是否结束;\n游戏结束时,钱最多的人就赢了。\n注意", + "state": 0, + "duration": 941, + "mission_id": 917790, + "rights": { + "bp": 0, + "elec": 0, + "download": 0, + "movie": 0, + "pay": 0, + "hd5": 0, + "no_reprint": 1, + "autoplay": 1, + "ugc_pay": 0, + "is_cooperation": 1, + "ugc_pay_preview": 0, + "no_background": 0, + "arc_pay": 0, + "pay_free_watch": 0 + }, + "owner": { + "mid": 3913194, + "name": "高斯Goh", + "face": "http://i0.hdslb.com/bfs/face/d4c65b5c6be3f9d845c15401173f98b130728851.jpg" + }, + "stat": { + "aid": 730159604, + "view": 603101, + "danmaku": 6535, + "reply": 3197, + "favorite": 13123, + "coin": 22361, + "share": 1587, + "now_rank": 0, + "his_rank": 68, + "like": 87913, + "dislike": 0 + }, + "dynamic": "", + "cid": 822547268, + "dimension": { "width": 1920, "height": 1080, "rotate": 0 }, + "short_link": "https://b23.tv/BV1BD4y1B7ji", + "short_link_v2": "https://b23.tv/BV1BD4y1B7ji", + "first_frame": "http://i2.hdslb.com/bfs/storyff/n220903a21dbowrqfua2zw3hxxeffqtt_firsti.jpg", + "pub_location": "上海", + "bvid": "BV1BD4y1B7ji", + "season_type": 0, + "is_ogv": false, + "ogv_info": null, + "rcmd_reason": { "content": "8万点赞", "corner_mark": 1 } + }, + { + "aid": 942708210, + "videos": 1, + "tid": 85, + "tname": "小剧 场", + "copyright": 1, + "pic": "http://i1.hdslb.com/bfs/archive/fc453b388f94300e69134a67f2f02d3136462c60.jpg", + "title": "【火焰醉枪】卧槽!这火焰枪竟然不是特效,30个小时匠心制作……", + "pubdate": 1662087586, + "ctime": 1662087587, + "desc": "上期做了火焰醉剑后,大家都说想看火焰醉枪,这次熬了两个大夜拍完啦,制作不易,希望大家多多支持啊!", + "state": 0, + "duration": 156, + "mission_id": 926961, + "rights": { + "bp": 0, + "elec": 0, + "download": 0, + "movie": 0, + "pay": 0, + "hd5": 1, + "no_reprint": 1, + "autoplay": 1, + "ugc_pay": 0, + "is_cooperation": 0, + "ugc_pay_preview": 0, + "no_background": 0, + "arc_pay": 0, + "pay_free_watch": 0 + }, + "owner": { + "mid": 432083444, + "name": "俩大叔的功夫梦", + "face": "http://i2.hdslb.com/bfs/face/40bfa8df7854402bdecd21a9c7a67bc1bb891637.jpg" + }, + "stat": { + "aid": 942708210, + "view": 1583053, + "danmaku": 2300, + "reply": 1596, + "favorite": 21206, + "coin": 48190, + "share": 3088, + "now_rank": 0, + "his_rank": 13, + "like": 219810, + "dislike": 0 + }, + "dynamic": "【火焰醉枪】卧槽!这火焰枪竟然不是特效,30个小时匠心制作……", + "cid": 821595336, + "dimension": { "width": 3840, "height": 2160, "rotate": 0 }, + "short_link": "https://b23.tv/BV1yW4y1q78t", + "short_link_v2": "https://b23.tv/BV1yW4y1q78t", + "first_frame": "http://i2.hdslb.com/bfs/storyff/n220902a2uf2p36okkkd5tj0koh3jk17_firsti.jpg", + "pub_location": "四川", + "bvid": "BV1yW4y1q78t", + "season_type": 0, + "is_ogv": false, + "ogv_info": null, + "rcmd_reason": { "content": "百万播放", "corner_mark": 1 } + }, + { + "aid": 985156462, + "videos": 1, + "tid": 137, + "tname": "明星综合", + "copyright": 1, + "pic": "http://i0.hdslb.com/bfs/archive/ee633bc1f33e88a08240cb5df19a768c007871fd.jpg", + "title": "【时代少年团】《哪吒》练习室版", + "pubdate": 1662199200, + "ctime": 1662133574, + "desc": "", + "state": 0, + "duration": 254, + "rights": { + "bp": 0, + "elec": 0, + "download": 0, + "movie": 0, + "pay": 0, + "hd5": 1, + "no_reprint": 1, + "autoplay": 1, + "ugc_pay": 0, + "is_cooperation": 0, + "ugc_pay_preview": 0, + "no_background": 0, + "arc_pay": 0, + "pay_free_watch": 0 + }, + "owner": { + "mid": 3670216, + "name": "TF家族", + "face": "http://i1.hdslb.com/bfs/face/1c74336b9060d40d0ccf5e8bce7c0de34526b1e3.jpg" + }, + "stat": { + "aid": 985156462, + "view": 180284, + "danmaku": 20822, + "reply": 6925, + "favorite": 4740, + "coin": 6962, + "share": 1052, + "now_rank": 0, + "his_rank": 0, + "like": 28324, + "dislike": 0 + }, + "dynamic": "", + "cid": 822227418, + "dimension": { "width": 1920, "height": 1080, "rotate": 0 }, + "short_link": "https://b23.tv/BV1yt4y1j7RW", + "short_link_v2": "https://b23.tv/BV1yt4y1j7RW", + "first_frame": "http://i2.hdslb.com/bfs/storyff/n220902a23cnqomtt52rac3gi8wbif37_firsti.jpg", + "pub_location": "北京", + "bvid": "BV1yt4y1j7RW", + "season_type": 0, + "is_ogv": false, + "ogv_info": null, + "rcmd_reason": { "content": "明星综合·人气飙升", "corner_mark": 1 } + }, + { + "aid": 857527108, + "videos": 1, + "tid": 230, + "tname": "软件应用", + "copyright": 1, + "pic": "http://i0.hdslb.com/bfs/archive/9f495c058d7825b8d45f2701b4271affbf17442b.jpg", + "title": "【苏星河】我的这个微信,你们没人用过", + "pubdate": 1661953525, + "ctime": 1661952710, + "desc": "结尾有惊喜!", + "state": 0, + "duration": 654, + "mission_id": 668476, + "rights": { + "bp": 0, + "elec": 0, + "download": 0, + "movie": 0, + "pay": 0, + "hd5": 1, + "no_reprint": 1, + "autoplay": 1, + "ugc_pay": 0, + "is_cooperation": 0, + "ugc_pay_preview": 0, + "no_background": 0, + "arc_pay": 0, + "pay_free_watch": 0 + }, + "owner": { + "mid": 598464467, + "name": "苏星河牛通", + "face": "http://i2.hdslb.com/bfs/face/836a17376b6d1c21200310137256c91731045d1b.jpg" + }, + "stat": { + "aid": 857527108, + "view": 6031262, + "danmaku": 10807, + "reply": 7949, + "favorite": 252749, + "coin": 111985, + "share": 20700, + "now_rank": 0, + "his_rank": 1, + "like": 413858, + "dislike": 0 + }, + "dynamic": "", + "cid": 820274225, + "dimension": { "width": 1920, "height": 1080, "rotate": 0 }, + "short_link": "https://b23.tv/BV1tV4y1H72k", + "short_link_v2": "https://b23.tv/BV1tV4y1H72k", + "first_frame": "http://i1.hdslb.com/bfs/storyff/n220831qn3fp342hh8svfbtvora7zon7_firsti.jpg", + "pub_location": "上海", + "bvid": "BV1tV4y1H72k", + "season_type": 0, + "is_ogv": false, + "ogv_info": null, + "rcmd_reason": { "content": "百万播放", "corner_mark": 1 } + }, + { + "aid": 857678378, + "videos": 1, + "tid": 76, + "tname": "美食制作", + "copyright": 1, + "pic": "http://i1.hdslb.com/bfs/archive/5007b350acb31aa5f4a14c96190273d5590a6cb2.jpg", + "title": "《 中 式 炸 鸡 》", + "pubdate": 1662197400, + "ctime": 1662135610, + "desc": "三连吗\n谢谢", + "state": 0, + "duration": 248, + "mission_id": 816705, + "rights": { + "bp": 0, + "elec": 0, + "download": 0, + "movie": 0, + "pay": 0, + "hd5": 0, + "no_reprint": 1, + "autoplay": 1, + "ugc_pay": 0, + "is_cooperation": 0, + "ugc_pay_preview": 0, + "no_background": 0, + "arc_pay": 0, + "pay_free_watch": 0 + }, + "owner": { + "mid": 337521240, + "name": "记录生活的蛋黄派", + "face": "http://i0.hdslb.com/bfs/face/9ba6c7a0d3a2ebfe9db2f46219ece98e210d0269.jpg" + }, + "stat": { + "aid": 857678378, + "view": 285421, + "danmaku": 5138, + "reply": 1694, + "favorite": 2757, + "coin": 9736, + "share": 763, + "now_rank": 0, + "his_rank": 0, + "like": 56170, + "dislike": 0 + }, + "dynamic": "谢谢", + "cid": 822249262, + "dimension": { "width": 1920, "height": 1080, "rotate": 0 }, + "short_link": "https://b23.tv/BV1sV4y1p7hB", + "short_link_v2": "https://b23.tv/BV1sV4y1p7hB", + "first_frame": "http://i1.hdslb.com/bfs/storyff/n220903qn1naqorns10fx528qp3fucqw_firsti.jpg", + "pub_location": "广东", + "bvid": "BV1sV4y1p7hB", + "season_type": 0, + "is_ogv": false, + "ogv_info": null, + "rcmd_reason": { "content": "5万点赞", "corner_mark": 1 } + }, + { + "aid": 602403491, + "videos": 1, + "tid": 161, + "tname": "手工", + "copyright": 1, + "pic": "http://i1.hdslb.com/bfs/archive/01bf653fd89126740b02c421207eb2519ee26f0c.jpg", + "title": "用超轻黏土捏一个小奶牛", + "pubdate": 1661607234, + "ctime": 1661607235, + "desc": "-", + "state": 0, + "duration": 60, + "rights": { + "bp": 0, + "elec": 0, + "download": 0, + "movie": 0, + "pay": 0, + "hd5": 0, + "no_reprint": 1, + "autoplay": 1, + "ugc_pay": 0, + "is_cooperation": 0, + "ugc_pay_preview": 0, + "no_background": 0, + "arc_pay": 0, + "pay_free_watch": 0 + }, + "owner": { + "mid": 1160308896, + "name": "大米的摆摊日常", + "face": "http://i0.hdslb.com/bfs/face/2766a97e274c77166d208293c391b08e93cd7793.jpg" + }, + "stat": { + "aid": 602403491, + "view": 1055453, + "danmaku": 3500, + "reply": 2575, + "favorite": 23732, + "coin": 144083, + "share": 3469, + "now_rank": 0, + "his_rank": 42, + "like": 340294, + "dislike": 0 + }, + "dynamic": "", + "cid": 816374904, + "dimension": { "width": 1080, "height": 1920, "rotate": 0 }, + "short_link": "https://b23.tv/BV1pB4y157Bh", + "short_link_v2": "https://b23.tv/BV1pB4y157Bh", + "up_from_v2": 35, + "first_frame": "http://i1.hdslb.com/bfs/storyff/n220827a21lg9szf96xk8r3l38i3jet5_firsti.jpg", + "pub_location": "四川", + "bvid": "BV1pB4y157Bh", + "season_type": 0, + "is_ogv": false, + "ogv_info": null, + "rcmd_reason": { "content": "百万播放", "corner_mark": 1 } + }, + { + "aid": 217678690, + "videos": 1, + "tid": 138, + "tname": "搞笑", + "copyright": 1, + "pic": "http://i0.hdslb.com/bfs/archive/1b96235f6b4736f79430362f070f96f76741b8a5.jpg", + "title": "离谱到家了!两社恐挑战去7个UP主家零元购!", + "pubdate": 1662177000, + "ctime": 1662154182, + "desc": "感谢大家的观看,这期视频剪了一个月了。希望大家喜 欢\n三十六贱笑说:这期如果点赞40W,直接拍成系列。", + "state": 0, + "duration": 1918, + "mission_id": 753163, + "rights": { + "bp": 0, + "elec": 0, + "download": 0, + "movie": 0, + "pay": 0, + "hd5": 0, + "no_reprint": 1, + "autoplay": 1, + "ugc_pay": 0, + "is_cooperation": 1, + "ugc_pay_preview": 0, + "no_background": 0, + "arc_pay": 0, + "pay_free_watch": 0 + }, + "owner": { + "mid": 285499073, + "name": "东尼ookii", + "face": "http://i2.hdslb.com/bfs/face/456b2bff7e41ab212b74e9019fda1f26362e8723.jpg" + }, + "stat": { + "aid": 217678690, + "view": 976493, + "danmaku": 11559, + "reply": 1995, + "favorite": 8791, + "coin": 37190, + "share": 1776, + "now_rank": 0, + "his_rank": 31, + "like": 133451, + "dislike": 0 + }, + "dynamic": "超 级 离 谱 新 系 列 !!!", + "cid": 822326594, + "dimension": { "width": 1920, "height": 1080, "rotate": 0 }, + "short_link": "https://b23.tv/BV1Ja41137BA", + "short_link_v2": "https://b23.tv/BV1Ja41137BA", + "first_frame": "http://i2.hdslb.com/bfs/storyff/n220903qn2sc6o94iasldc2uix7nw6kz_firsti.jpg", + "pub_location": "广东", + "bvid": "BV1Ja41137BA", + "season_type": 0, + "is_ogv": false, + "ogv_info": null, + "rcmd_reason": { "content": "13万点赞", "corner_mark": 1 } + }, + { + "aid": 857726292, + "videos": 1, + "tid": 76, + "tname": "美食制作", + "copyright": 1, + "pic": "http://i0.hdslb.com/bfs/archive/1a9fe65a51c03d69fd1d4d50cff621e7b9112e29.jpg", + "title": "羊 肉 天 花 板", + "pubdate": 1662192000, + "ctime": 1662184515, + "desc": "羊肉串:\n其实我对羊肉串还是有些研究和追求的\n羊肉记得提前泡30分钟淡盐水去 膻味\n腌肉配方:2勺生抽 1勺蚝油 2勺白胡椒粉\n香料配方:半勺白糖 3勺孜然 2勺辣椒面\n同样的配方腌羊肉和香料也可以在家里炒 着着吃", + "state": 0, + "duration": 434, + "mission_id": 912283, + "rights": { + "bp": 0, + "elec": 0, + "download": 0, + "movie": 0, + "pay": 0, + "hd5": 0, + "no_reprint": 1, + "autoplay": 1, + "ugc_pay": 0, + "is_cooperation": 0, + "ugc_pay_preview": 0, + "no_background": 0, + "arc_pay": 0, + "pay_free_watch": 0 + }, + "owner": { + "mid": 473524263, + "name": "澳洲阿彭", + "face": "http://i0.hdslb.com/bfs/face/954547cf631e4f986e5f9e3bfd65328600184b6f.jpg" + }, + "stat": { + "aid": 857726292, + "view": 335725, + "danmaku": 951, + "reply": 429, + "favorite": 3672, + "coin": 15611, + "share": 867, + "now_rank": 0, + "his_rank": 0, + "like": 45838, + "dislike": 0 + }, + "dynamic": "千万不要让猫进厨房", + "cid": 822587296, + "dimension": { "width": 3840, "height": 2160, "rotate": 0 }, + "season_id": 28525, + "short_link": "https://b23.tv/BV1tV4y1p7ux", + "short_link_v2": "https://b23.tv/BV1tV4y1p7ux", + "first_frame": "http://i0.hdslb.com/bfs/storyff/n220903a21elu6y2vu085u1gh47kqbdb_firsti.jpg", + "pub_location": "上海", + "bvid": "BV1tV4y1p7ux", + "season_type": 0, + "is_ogv": false, + "ogv_info": null, + "rcmd_reason": { "content": "", "corner_mark": 0 } + }, + { + "aid": 815203242, + "videos": 1, + "tid": 216, + "tname": "鬼畜剧场", + "copyright": 1, + "pic": "http://i1.hdslb.com/bfs/archive/04a85276faffd2f4bd59a4a7f36cf69833af0fc2.jpg", + "title": "科目三:作毙", + "pubdate": 1662114430, + "ctime": 1662114430, + "desc": "看来你 是真想跟我拼一下子", + "state": 0, + "duration": 72, + "mission_id": 870359, + "rights": { + "bp": 0, + "elec": 0, + "download": 0, + "movie": 0, + "pay": 0, + "hd5": 0, + "no_reprint": 1, + "autoplay": 1, + "ugc_pay": 0, + "is_cooperation": 0, + "ugc_pay_preview": 0, + "no_background": 0, + "arc_pay": 0, + "pay_free_watch": 0 + }, + "owner": { + "mid": 7518140, + "name": "暂离二度", + "face": "http://i2.hdslb.com/bfs/face/3d31d41810f12de173515f83b150234bb08a6e72.jpg" + }, + "stat": { + "aid": 815203242, + "view": 892126, + "danmaku": 596, + "reply": 877, + "favorite": 13100, + "coin": 13068, + "share": 19249, + "now_rank": 0, + "his_rank": 92, + "like": 57099, + "dislike": 0 + }, + "dynamic": "", + "cid": 821964961, + "dimension": { "width": 1280, "height": 720, "rotate": 0 }, + "short_link": "https://b23.tv/BV1PG4y1r7JX", + "short_link_v2": "https://b23.tv/BV1PG4y1r7JX", + "first_frame": "http://i0.hdslb.com/bfs/storyff/n220902a21fhpl3fapghr9lxcwblqxu0_firsti.jpg", + "pub_location": "浙江", + "bvid": "BV1PG4y1r7JX", + "season_type": 0, + "is_ogv": false, + "ogv_info": null, + "rcmd_reason": { "content": "5万点赞", "corner_mark": 1 } + }, + { + "aid": 302736065, + "videos": 1, + "tid": 251, + "tname": "三农", + "copyright": 1, + "pic": "http://i1.hdslb.com/bfs/archive/a37fd6ed038127d2336d67c7e5726b9c016a0bae.jpg", + "title": "我又开始玩梗了,而且还进去了。", + "pubdate": 1662095667, + "ctime": 1662095667, + "desc": "-", + "state": 0, + "duration": 53, + "mission_id": 840062, + "rights": { + "bp": 0, + "elec": 0, + "download": 0, + "movie": 0, + "pay": 0, + "hd5": 0, + "no_reprint": 1, + "autoplay": 1, + "ugc_pay": 0, + "is_cooperation": 0, + "ugc_pay_preview": 0, + "no_background": 0, + "arc_pay": 0, + "pay_free_watch": 0 + }, + "owner": { + "mid": 50316381, + "name": "疆域阿力木", + "face": "http://i0.hdslb.com/bfs/face/05626e28bbbb34f944f28791a75a2cef4f396a6e.jpg" + }, + "stat": { + "aid": 302736065, + "view": 3078837, + "danmaku": 2722, + "reply": 3193, + "favorite": 15765, + "coin": 22301, + "share": 3463, + "now_rank": 0, + "his_rank": 3, + "like": 461326, + "dislike": 0 + }, + "dynamic": "", + "cid": 821690665, + "dimension": { "width": 1080, "height": 1920, "rotate": 0 }, + "short_link": "https://b23.tv/BV19P411V7Kz", + "short_link_v2": "https://b23.tv/BV19P411V7Kz", + "up_from_v2": 36, + "first_frame": "http://i0.hdslb.com/bfs/storyff/n220902qn2fba1mpclsphj2deu0cb5hg_firsti.jpg", + "pub_location": "新疆", + "bvid": "BV19P411V7Kz", + "season_type": 0, + "is_ogv": false, + "ogv_info": null, + "rcmd_reason": { "content": "百万播放", "corner_mark": 1 } + }, + { + "aid": 557636142, + "videos": 1, + "tid": 138, + "tname": "搞笑", + "copyright": 1, + "pic": "http://i0.hdslb.com/bfs/archive/ff263e883790351a81caa336c372807a8aabd76c.jpg", + "title": "家里有游乐园?【杜海皇】", + "pubdate": 1662180876, + "ctime": 1662180434, + "desc": "希望各位观众老爷们喜欢这期视频!\n喜欢记得点赞/投币/收藏/分享!", + "state": 0, + "duration": 905, + "mission_id": 753163, + "rights": { + "bp": 0, + "elec": 0, + "download": 0, + "movie": 0, + "pay": 0, + "hd5": 0, + "no_reprint": 1, + "autoplay": 1, + "ugc_pay": 0, + "is_cooperation": 1, + "ugc_pay_preview": 0, + "no_background": 0, + "arc_pay": 0, + "pay_free_watch": 0 + }, + "owner": { + "mid": 178029850, + "name": "杜海皇", + "face": "http://i1.hdslb.com/bfs/face/133111338ef9d6ca04515a0b517b2e837bc41e2b.jpg" + }, + "stat": { + "aid": 557636142, + "view": 692389, + "danmaku": 17406, + "reply": 3198, + "favorite": 14095, + "coin": 24362, + "share": 1470, + "now_rank": 0, + "his_rank": 44, + "like": 98582, + "dislike": 0 + }, + "dynamic": "家里有游乐园?", + "cid": 822513886, + "dimension": { "width": 1920, "height": 1080, "rotate": 0 }, + "short_link": "https://b23.tv/BV1ae4y1d7z8", + "short_link_v2": "https://b23.tv/BV1ae4y1d7z8", + "first_frame": "http://i2.hdslb.com/bfs/storyff/n220903a2vmxll1f3m5f532fzheru0f6_firsti.jpg", + "pub_location": "上海", + "bvid": "BV1ae4y1d7z8", + "season_type": 0, + "is_ogv": false, + "ogv_info": null, + "rcmd_reason": { "content": "9万点赞", "corner_mark": 1 } + }, + { + "aid": 217653051, + "videos": 1, + "tid": 138, + "tname": "搞笑", + "copyright": 1, + "pic": "http://i1.hdslb.com/bfs/archive/f6e7436fc136c6e824d0cdcc527b366417c238b5.jpg", + "title": "不行了,我们真的土飞天了!!!", + "pubdate": 1662197177, + "ctime": 1662195861, + "desc": "宝剑嫂说点赞20W,立马开始学习究极无敌宇宙SSS难度土味舞蹈!!!\n我就不信她能学会!??\n\n邮箱:baojiansao@163.com\n记得投稿!!等你!!!", + "state": 0, + "duration": 564, + "mission_id": 753163, + "rights": { + "bp": 0, + "elec": 0, + "download": 0, + "movie": 0, + "pay": 0, + "hd5": 0, + "no_reprint": 1, + "autoplay": 1, + "ugc_pay": 0, + "is_cooperation": 1, + "ugc_pay_preview": 0, + "no_background": 0, + "arc_pay": 0, + "pay_free_watch": 0 + }, + "owner": { + "mid": 147166910, + "name": "雨哥到处跑", + "face": "http://i2.hdslb.com/bfs/face/5717b696a212199679c31857b46c3ba5c465ee06.jpg" + }, + "stat": { + "aid": 217653051, + "view": 186234, + "danmaku": 2498, + "reply": 745, + "favorite": 2573, + "coin": 7170, + "share": 1162, + "now_rank": 0, + "his_rank": 0, + "like": 34817, + "dislike": 0 + }, + "dynamic": "究!极!无!敌!宇!宙!\n土!味!之!王!!!", + "cid": 822750256, + "dimension": { "width": 1920, "height": 1080, "rotate": 0 }, + "short_link": "https://b23.tv/BV1ga41137Gs", + "short_link_v2": "https://b23.tv/BV1ga41137Gs", + "first_frame": "http://i1.hdslb.com/bfs/storyff/n220903a21l7ofzzwi97zg23eqr7n2ur_firsti.jpg", + "pub_location": "上海", + "bvid": "BV1ga41137Gs", + "season_type": 0, + "is_ogv": false, + "ogv_info": null, + "rcmd_reason": { "content": "", "corner_mark": 0 } + }, + { + "aid": 472678228, + "videos": 1, + "tid": 76, + "tname": "美食制作", + "copyright": 1, + "pic": "http://i1.hdslb.com/bfs/archive/e92f638626a4e7bfff43f0ff72faf35ff914d851.jpg", + "title": "谁能吃空这一盆,立马入职!", + "pubdate": 1662111000, + "ctime": 1662099066, + "desc": "想知道小胖说什么的看到最后!", + "state": 0, + "duration": 220, + "mission_id": 816705, + "rights": { + "bp": 0, + "elec": 0, + "download": 0, + "movie": 0, + "pay": 0, + "hd5": 1, + "no_reprint": 1, + "autoplay": 1, + "ugc_pay": 0, + "is_cooperation": 0, + "ugc_pay_preview": 0, + "no_background": 0, + "arc_pay": 0, + "pay_free_watch": 0 + }, + "owner": { + "mid": 11452660, + "name": "p老板开饭了", + "face": "http://i1.hdslb.com/bfs/face/b1c8a639f1773284b3a7ceb00d62c54de1c8f470.jpg" + }, + "stat": { + "aid": 472678228, + "view": 1136045, + "danmaku": 541, + "reply": 1002, + "favorite": 7157, + "coin": 2192, + "share": 1122, + "now_rank": 0, + "his_rank": 65, + "like": 107942, + "dislike": 0 + }, + "dynamic": "完了,暴露了", + "cid": 821731282, + "dimension": { "width": 2160, "height": 3840, "rotate": 0 }, + "season_id": 619430, + "short_link": "https://b23.tv/BV12K411Z7ET", + "short_link_v2": "https://b23.tv/BV12K411Z7ET", + "first_frame": "http://i0.hdslb.com/bfs/storyff/n220902a21767eiq3pz6kpdf47u3h6c5_firsti.jpg", + "pub_location": "四川", + "bvid": "BV12K411Z7ET", + "season_type": 0, + "is_ogv": false, + "ogv_info": null, + "rcmd_reason": { "content": "百万播放", "corner_mark": 1 } + }, + { + "aid": 900009457, + "videos": 1, + "tid": 182, + "tname": "影视杂谈", + "copyright": 1, + "pic": "http://i2.hdslb.com/bfs/archive/533cb2685bcf5e64b29772dc87347466950710bd.jpg", + "title": "别抬头!天上的东西会吃人!2022最新科幻电影!", + "pubdate": 1661943707, + "ctime": 1661943707, + "desc": "《不》", + "state": 0, + "duration": 349, + "rights": { + "bp": 0, + "elec": 0, + "download": 0, + "movie": 0, + "pay": 0, + "hd5": 1, + "no_reprint": 1, + "autoplay": 1, + "ugc_pay": 0, + "is_cooperation": 0, + "ugc_pay_preview": 0, + "no_background": 0, + "arc_pay": 0, + "pay_free_watch": 0 + }, + "owner": { + "mid": 688872987, + "name": "侃片大师兄", + "face": "http://i0.hdslb.com/bfs/face/8935b194271d1dac8ce4c99bdbbd80f682d4a939.jpg" + }, + "stat": { + "aid": 900009457, + "view": 2142899, + "danmaku": 763, + "reply": 687, + "favorite": 5943, + "coin": 587, + "share": 238, + "now_rank": 0, + "his_rank": 85, + "like": 77420, + "dislike": 0 + }, + "dynamic": "", + "cid": 819990856, + "dimension": { "width": 1920, "height": 1080, "rotate": 0 }, + "short_link": "https://b23.tv/BV1EP4y1f71v", + "short_link_v2": "https://b23.tv/BV1EP4y1f71v", + "first_frame": "http://i2.hdslb.com/bfs/storyff/n220831qn23b5noftuzwf87zp2nxkfin_firsti.jpg", + "pub_location": "山东", + "bvid": "BV1EP4y1f71v", + "season_type": 0, + "is_ogv": false, + "ogv_info": null, + "rcmd_reason": { "content": "", "corner_mark": 0 } + }, + { + "aid": 645144956, + "videos": 1, + "tid": 208, + "tname": " 校园学习", + "copyright": 1, + "pic": "http://i0.hdslb.com/bfs/archive/4caba77c0ea7d95292c4e52dcfc1a2807318f068.jpg", + "title": "耗时一个月制作!不想任何学生错过这个视频啊啊!学习方法/中学/大学/研究生/考证/留学/成长/求职 | 开学解惑图鉴", + "pubdate": 1662177900, + "ctime": 1662127479, + "desc": "开学季啦,框框作为B站辅导员,为大家整理实用知识和经验参考,视频中所有的链接如下,如果 有帮助还请大家三连支持一波!!!!\n一、学习干货\n1、学习方法:\nBV1LU4y1g7no、BV14b411h7FM、BV1QX4y157mJ、BV1Ya4y1W7iT 、BV1X3411k7CX、BV1p741127kM\n2、中学学科:\n语文:BV1ZT4113744、BV1zB4y1w7Sk、BV1oE411K7Qq、BV18U4y1m7iV、BV16L4y157iZ\n数学:BV147411K7xu、BV1fJ411R", + "state": 0, + "duration": 439, + "mission_id": 895731, + "rights": { + "bp": 0, + "elec": 0, + "download": 0, + "movie": 0, + "pay": 0, + "hd5": 1, + "no_reprint": 1, + "autoplay": 1, + "ugc_pay": 0, + "is_cooperation": 0, + "ugc_pay_preview": 0, + "no_background": 0, + "arc_pay": 0, + "pay_free_watch": 0 + }, + "owner": { + "mid": 40427625, + "name": "取景框看世界", + "face": "http://i0.hdslb.com/bfs/face/0d671560a6dd7f28247b3b7501d404a5b01280ea.jpg" + }, + "stat": { + "aid": 645144956, + "view": 137130, + "danmaku": 1686, + "reply": 597, + "favorite": 23723, + "coin": 10164, + "share": 1411, + "now_rank": 0, + "his_rank": 0, + "like": 20994, + "dislike": 0 + }, + "dynamic": "这是框框给所有学生党送上的开学礼物,你一定会喜欢的(=・ω・=)", + "cid": 822546678, + "dimension": { "width": 1920, "height": 1080, "rotate": 0 }, + "season_id": 682687, + "short_link": "https://b23.tv/BV1rY4y1T7Lk", + "short_link_v2": "https://b23.tv/BV1rY4y1T7Lk", + "first_frame": "http://i0.hdslb.com/bfs/storyff/n220903a2204tfiy965tnt32zfgxjhwn_firsti.jpg", + "pub_location": "上海", + "bvid": "BV1rY4y1T7Lk", + "season_type": 0, + "is_ogv": false, + "ogv_info": null, + "rcmd_reason": { "content": "", "corner_mark": 0 } + }, + { + "aid": 302509227, + "videos": 1, + "tid": 183, + "tname": "影视剪辑", + "copyright": 1, + "pic": "http://i0.hdslb.com/bfs/archive/72695f92333cc5c5dcdc5161ba98fa89a8ad081a.jpg", + "title": "“从不拍烂片的导演”", + "pubdate": 1661986407, + "ctime": 1661986407, + "desc": "-", + "state": 0, + "duration": 20, + "rights": { + "bp": 0, + "elec": 0, + "download": 0, + "movie": 0, + "pay": 0, + "hd5": 1, + "no_reprint": 1, + "autoplay": 1, + "ugc_pay": 0, + "is_cooperation": 0, + "ugc_pay_preview": 0, + "no_background": 0, + "arc_pay": 0, + "pay_free_watch": 0 + }, + "owner": { + "mid": 241973789, + "name": "柯基剪辑c", + "face": "http://i2.hdslb.com/bfs/face/515688d6b0406ac9c242b3e0fbb36a5feabd50c8.jpg" + }, + "stat": { + "aid": 302509227, + "view": 169278, + "danmaku": 98, + "reply": 285, + "favorite": 9330, + "coin": 2736, + "share": 396, + "now_rank": 0, + "his_rank": 0, + "like": 34129, + "dislike": 0 + }, + "dynamic": "", + "cid": 820560843, + "dimension": { "width": 1920, "height": 1080, "rotate": 0 }, + "short_link": "https://b23.tv/BV1pP411L7yw", + "short_link_v2": "https://b23.tv/BV1pP411L7yw", + "up_from_v2": 8, + "first_frame": "http://i1.hdslb.com/bfs/storyff/n220901a232uv0w65umpau1641kk1ktt_firsti.jpg", + "pub_location": "江苏", + "bvid": "BV1pP411L7yw", + "season_type": 0, + "is_ogv": false, + "ogv_info": null, + "rcmd_reason": { "content": "", "corner_mark": 0 } + }, + { + "aid": 815038949, + "videos": 1, + "tid": 250, + "tname": "出行", + "copyright": 1, + "pic": "http://i2.hdslb.com/bfs/archive/f66582af3f5ea12b04d6f2bec1298fca308d33ce.jpg", + "title": "那天,我看到了54岁最帅的模样", + "pubdate": 1661769000, + "ctime": 1661756898, + "desc": "-", + "state": 0, + "duration": 91, + "mission_id": 834125, + "rights": { + "bp": 0, + "elec": 0, + "download": 0, + "movie": 0, + "pay": 0, + "hd5": 1, + "no_reprint": 1, + "autoplay": 1, + "ugc_pay": 0, + "is_cooperation": 0, + "ugc_pay_preview": 0, + "no_background": 0, + "arc_pay": 0, + "pay_free_watch": 0 + }, + "owner": { + "mid": 2041168605, + "name": "他叫阿园", + "face": "http://i0.hdslb.com/bfs/face/ee0cee6afda83588c938a5279d47ce66633379e6.jpg" + }, + "stat": { + "aid": 815038949, + "view": 4203035, + "danmaku": 1797, + "reply": 3724, + "favorite": 69671, + "coin": 150880, + "share": 6483, + "now_rank": 0, + "his_rank": 1, + "like": 732835, + "dislike": 0 + }, + "dynamic": "", + "cid": 817949474, + "dimension": { "width": 1080, "height": 1920, "rotate": 0 }, + "short_link": "https://b23.tv/BV1VG4y167tn", + "short_link_v2": "https://b23.tv/BV1VG4y167tn", + "up_from_v2": 36, + "first_frame": "http://i0.hdslb.com/bfs/storyff/n220829a2246h1eks5qvfw17msnqjkun_firsti.jpg", + "pub_location": "浙江", + "bvid": "BV1VG4y167tn", + "season_type": 0, + "is_ogv": false, + "ogv_info": null, + "rcmd_reason": { "content": " 百万播放", "corner_mark": 1 } + }, + { + "aid": 900245725, + "videos": 1, + "tid": 138, + "tname": "搞笑", + "copyright": 1, + "pic": "http://i1.hdslb.com/bfs/archive/8e842aef4241d2f0971bfbf8289919f9417a2054.jpg", + "title": "我们管这叫军训,外国人管这叫实兵演习!", + "pubdate": 1662092612, + "ctime": 1662092612, + "desc": "素材来源:各大高校军训名场面!\nBGM:Wake (Live)", + "state": 0, + "duration": 185, + "rights": { + "bp": 0, + "elec": 0, + "download": 0, + "movie": 0, + "pay": 0, + "hd5": 1, + "no_reprint": 1, + "autoplay": 1, + "ugc_pay": 0, + "is_cooperation": 0, + "ugc_pay_preview": 0, + "no_background": 0, + "arc_pay": 0, + "pay_free_watch": 0 + }, + "owner": { + "mid": 626297715, + "name": "荒草音乐", + "face": "http://i0.hdslb.com/bfs/face/d7b9ec37a9b159318cbf09d9d2ce43eba6cfaa12.jpg" + }, + "stat": { + "aid": 900245725, + "view": 792824, + "danmaku": 1603, + "reply": 2508, + "favorite": 11174, + "coin": 3072, + "share": 6911, + "now_rank": 0, + "his_rank": 0, + "like": 37460, + "dislike": 0 + }, + "dynamic": "", + "cid": 821649493, + "dimension": { "width": 1920, "height": 1080, "rotate": 0 }, + "short_link": "https://b23.tv/BV1DP4y1o7y1", + "short_link_v2": "https://b23.tv/BV1DP4y1o7y1", + "first_frame": "http://i1.hdslb.com/bfs/storyff/n220902a226id1e9dpruvu1a3ni88cad_firsti.jpg", + "pub_location": "四川", + "bvid": "BV1DP4y1o7y1", + "season_type": 0, + "is_ogv": false, + "ogv_info": null, + "rcmd_reason": { "content": "", "corner_mark": 0 } + } + ], + "no_more": false + } +} +``` +
\ No newline at end of file diff --git a/docs/ranking&dynamic/ranking.md b/docs/ranking&dynamic/ranking.md new file mode 100644 index 0000000000..738136276a --- /dev/null +++ b/docs/ranking&dynamic/ranking.md @@ -0,0 +1,959 @@ +# 视频排行榜 + + + +- [视频排行榜](#视频排行榜) + - [获取分区视频排行榜列表](#获取分区视频排行榜列表) + +--- + +## 获取分区视频排行榜列表 + +> https://api.bilibili.com/x/web-interface/ranking/v2 + +*请求方式:GET* + +获取稿件内容质量,近期的数据前100个稿件,动态更新。 + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | ---- | ----------- | ------ | ------------------------------------- | +| rid | num | 目标分区tid | 非必要 | | +| type | str | 未知 | 非必要 | 默认为:all,且为目前唯一已知值。怀疑为稿件类型,但没有找到其他值佐证。 | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ----- | -------- | --------------------------- | +| code | num | 返回值 | 0:成功
-400:请求错误 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | array | 视频列表 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| --- | --- | --- | --- | +| note | str | “根据稿件内容质量、近期的数据综合展示,动态更新” | 目前恒为此结果 | +| list | list | 视频列表 | 暂无 | + +`list`列表: + +| 项 | 类型 | 内容 | 备注 | +| --- | ---- | --------------- | ---- | +| 0 | obj | 排行榜第1名 | | +| n | obj | 排行榜第(n+1)名 | | +| …… | obj | …… | …… | +| 99 | obj | 排行榜第100名 | | + +`data`列表中的对象: + +可参考[获取视频详细信息(web端)](/video/info.md#获取视频详细信息(web端))中的data对象。本API对象中所有字段,均可在链接对象中找到。 + +**示例:** + +获取`tid=1`(动画)分区中所有稿件排行榜排行榜 + +```shell +curl -G 'https://api.bilibili.com/x/web-interface/ranking/v2' \ +--data-urlencode 'tid=1' \ +--data-urlencode 'type=all' +``` + +
+因本API返回对象过多(100个),故不全部展示,使用者可自行尝试。查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "note": "根据稿件内容质量、近期的数据综合展示,动态更新", + "list": [ + { + "aid": 517751921, + "videos": 1, + "tid": 253, + "tname": "动漫杂谈", + "copyright": 1, + "pic": "http://i1.hdslb.com/bfs/archive/c70d89ce459eb4a501885f7050ee37d94a5944e4.jpg", + "title": "神作之月!十年前的奇迹!新番时光机「2012年10月篇」", + "pubdate": 1668856639, + "ctime": 1668856639, + "desc": "新番时光机,回顾十年前的动画!本期为2012年10月\n\n往期:\nBV1Br4y1y7ri\nBV1Ly4y1s7wp\nBV16r4y1A7w4\nBV1c64y1f7ff\nBV1sA411A7JD\nBV1wT4y1D729\nBV1mR4y1A7Ey\nBV1gB4y1V7sz", + "state": 0, + "duration": 752, + "rights": { + "bp": 0, + "elec": 0, + "download": 0, + "movie": 0, + "pay": 0, + "hd5": 0, + "no_reprint": 1, + "autoplay": 1, + "ugc_pay": 0, + "is_cooperation": 0, + "ugc_pay_preview": 0, + "no_background": 0, + "arc_pay": 0, + "pay_free_watch": 0 + }, + "owner": { + "mid": 63231, + "name": "泛式", + "face": "https://i0.hdslb.com/bfs/face/2608aaa45309c77ac88fbfaa40e160b8c7892985.jpg" + }, + "stat": { + "aid": 517751921, + "view": 1156543, + "danmaku": 14224, + "reply": 5601, + "favorite": 28753, + "coin": 58324, + "share": 6548, + "now_rank": 0, + "his_rank": 11, + "like": 136884, + "dislike": 0 + }, + "dynamic": "泛式队长,时光机更新!", + "cid": 896512490, + "dimension": { + "width": 1920, + "height": 1080, + "rotate": 0 + }, + "season_id": 21183, + "short_link": "https://b23.tv/BV1Eg411v7a1", + "short_link_v2": "https://b23.tv/BV1Eg411v7a1", + "first_frame": "http://i2.hdslb.com/bfs/storyff/n221119a29spw3xihz66g3aeuae34t8i_firsti.jpg", + "pub_location": "上海", + "bvid": "BV1Eg411v7a1", + "score": 0 + }, + { + "aid": 987795979, + "videos": 1, + "tid": 27, + "tname": "综合", + "copyright": 1, + "pic": "http://i1.hdslb.com/bfs/archive/6045782867b5dd91196d93324028f3346eed663a.jpg", + "title": "看海贼的和看火影的都沉默了......", + "pubdate": 1668830400, + "ctime": 1668780416, + "desc": "这一期我把之前十多期的火影加海贼王的内容做了个合集,把做得还可以的片段浓缩成这3分钟,有部分重制了,下一次这类型的视频等着绿牛和尼卡路飞出场,在做多一期—。—感觉还可以的话就给我个三连……或者一个免费的赞,谢谢了", + "state": 0, + "duration": 196, + "mission_id": 1074046, + "rights": { + "bp": 0, + "elec": 0, + "download": 0, + "movie": 0, + "pay": 0, + "hd5": 1, + "no_reprint": 1, + "autoplay": 1, + "ugc_pay": 0, + "is_cooperation": 0, + "ugc_pay_preview": 0, + "no_background": 0, + "arc_pay": 0, + "pay_free_watch": 0 + }, + "owner": { + "mid": 601674546, + "name": "-夏秋冬-", + "face": "https://i0.hdslb.com/bfs/face/83b4dd8830c24ee73fbc59f0bd974ea37b0a9470.jpg" + }, + "stat": { + "aid": 987795979, + "view": 2098359, + "danmaku": 3460, + "reply": 2393, + "favorite": 33358, + "coin": 54977, + "share": 45656, + "now_rank": 0, + "his_rank": 15, + "like": 116834, + "dislike": 0 + }, + "dynamic": "", + "cid": 895657562, + "dimension": { + "width": 1920, + "height": 1080, + "rotate": 0 + }, + "short_link": "https://b23.tv/BV1D44y1Q7im", + "short_link_v2": "https://b23.tv/BV1D44y1Q7im", + "first_frame": "http://i2.hdslb.com/bfs/storyff/n221118qn157llqyqytou2d6cypvute8_firsti.jpg", + "pub_location": "广东", + "bvid": "BV1D44y1Q7im", + "score": 0 + }, + { + "aid": 690264225, + "videos": 1, + "tid": 86, + "tname": "特摄", + "copyright": 1, + "pic": "http://i1.hdslb.com/bfs/archive/f1ff369250c5fa72106e32e3d7862740ba6a3ab9.jpg", + "title": "评分7.0!风评不佳?诚实吐槽特摄电影《新奥特曼》", + "pubdate": 1668860302, + "ctime": 1668860302, + "desc": "点个关注再走哦~", + "state": 0, + "duration": 832, + "mission_id": 1028236, + "rights": { + "bp": 0, + "elec": 0, + "download": 0, + "movie": 0, + "pay": 0, + "hd5": 1, + "no_reprint": 1, + "autoplay": 1, + "ugc_pay": 0, + "is_cooperation": 0, + "ugc_pay_preview": 0, + "no_background": 0, + "arc_pay": 0, + "pay_free_watch": 0 + }, + "owner": { + "mid": 730732, + "name": "瓶子君152", + "face": "https://i1.hdslb.com/bfs/face/951d0a41b33e0c73a0460d20ee83c4c62b0da45f.jpg" + }, + "stat": { + "aid": 690264225, + "view": 1503667, + "danmaku": 4718, + "reply": 3816, + "favorite": 20847, + "coin": 49980, + "share": 4100, + "now_rank": 0, + "his_rank": 18, + "like": 131574, + "dislike": 0 + }, + "dynamic": "#动漫杂谈# #新奥特曼# \n新奥特曼这部电影终于也是借着在你B的推出全网首播\n我也终于是蹭到一回热度了\n这次电影其实评价十分的两极化,那么他究竟讲了什么,我又觉得他怎么样呢,答案就在视频中\n本期视频点赞10w投币4w后面做德凯完结吐槽", + "cid": 896556696, + "dimension": { + "width": 1920, + "height": 1080, + "rotate": 0 + }, + "short_link": "https://b23.tv/BV1S24y1y7yn", + "short_link_v2": "https://b23.tv/BV1S24y1y7yn", + "first_frame": "http://i0.hdslb.com/bfs/storyff/n221119a23dw30m9rx43073w439ptba1_firsti.jpg", + "pub_location": "上海", + "bvid": "BV1S24y1y7yn", + "score": 0 + }, + { + "aid": 690367853, + "videos": 1, + "tid": 47, + "tname": "短片·手书·配音", + "copyright": 1, + "pic": "http://i1.hdslb.com/bfs/archive/a79fc307134273460bcc2ebcf56569097dcf5537.jpg", + "title": "”B 站 用 户 精 神 现 状 Ⅱ “", + "pubdate": 1668829018, + "ctime": 1668829019, + "desc": "耶 熬夜之后\n准备看柯南去!\n希望这个视频能带给你快乐!\n☆··☆··☆··☆··☆··☆··☆··☆··☆··☆··☆\n\n文案/绘画/配音/剪辑:鸽一品 \n本节目基本保持1-2周1更!如果喜欢的话请一定要多多三连互动哦!\n\n平时我也会在直播间和大家互动发\n直播时间会在动态中发布周表 大概一周五播\n从0开始做V! 请多多支持!\n\n ☆··☆··☆··☆··☆··☆··☆··☆··☆··☆··☆\n\n感谢你的支持!鸽子也有自己贩售周边的桃宝店啦~\n一品鸽子窝:https://shop409788748.tao", + "state": 0, + "duration": 122, + "mission_id": 1074046, + "rights": { + "bp": 0, + "elec": 0, + "download": 0, + "movie": 0, + "pay": 0, + "hd5": 1, + "no_reprint": 1, + "autoplay": 1, + "ugc_pay": 0, + "is_cooperation": 0, + "ugc_pay_preview": 0, + "no_background": 0, + "arc_pay": 0, + "pay_free_watch": 0 + }, + "owner": { + "mid": 11399495, + "name": "鸽一品", + "face": "https://i2.hdslb.com/bfs/face/87f1fca837a16d6bbae552861454b45b1519301e.jpg" + }, + "stat": { + "aid": 690367853, + "view": 1158451, + "danmaku": 2596, + "reply": 338, + "favorite": 11617, + "coin": 3685, + "share": 429, + "now_rank": 0, + "his_rank": 45, + "like": 132542, + "dislike": 0 + }, + "dynamic": "耶 熬夜之后\n准备看柯南去!\n希望这个视频能带给你快乐!", + "cid": 896076372, + "dimension": { + "width": 1920, + "height": 1080, + "rotate": 0 + }, + "season_id": 174909, + "short_link": "https://b23.tv/BV1n24y117Zz", + "short_link_v2": "https://b23.tv/BV1n24y117Zz", + "first_frame": "http://i2.hdslb.com/bfs/storyff/n221119a23psu3qlqb6ssz3rae8wrk8s_firsti.jpg", + "pub_location": "浙江", + "bvid": "BV1n24y117Zz", + "score": 0 + }, + { + "aid": 605336408, + "videos": 1, + "tid": 47, + "tname": "短片·手书·配音", + "copyright": 1, + "pic": "http://i1.hdslb.com/bfs/archive/69ce5bd3ab899d2212e6dab962c8cfa7f41ad5af.jpg", + "title": "【封号斗罗】哔哩哔哩,来封我朋友的号呀!", + "pubdate": 1668830400, + "ctime": 1668823531, + "desc": "我好坏~\n\n后期 可大师 / 桥和你\n封号斗罗 CV 海盐奶糖白露\nBGM Girls Generation-Gee (Instrumental)", + "state": 0, + "duration": 64, + "rights": { + "bp": 0, + "elec": 0, + "download": 0, + "movie": 0, + "pay": 0, + "hd5": 0, + "no_reprint": 1, + "autoplay": 1, + "ugc_pay": 0, + "is_cooperation": 1, + "ugc_pay_preview": 0, + "no_background": 0, + "arc_pay": 0, + "pay_free_watch": 0 + }, + "owner": { + "mid": 20603745, + "name": "其人", + "face": "https://i0.hdslb.com/bfs/face/f5eb49deb5e87dde3f143c5d2d95d3338060ab93.jpg" + }, + "stat": { + "aid": 605336408, + "view": 652606, + "danmaku": 1527, + "reply": 757, + "favorite": 17896, + "coin": 5787, + "share": 762, + "now_rank": 0, + "his_rank": 49, + "like": 118886, + "dislike": 0 + }, + "dynamic": "", + "cid": 895984408, + "dimension": { + "width": 1920, + "height": 1080, + "rotate": 0 + }, + "season_id": 780987, + "short_link": "https://b23.tv/BV1u84y1C7w3", + "short_link_v2": "https://b23.tv/BV1u84y1C7w3", + "first_frame": "http://i2.hdslb.com/bfs/storyff/n221119a2tl68uyltrxucgeyufpd33gz_firsti.jpg", + "pub_location": "广东", + "bvid": "BV1u84y1C7w3", + "score": 0 + }, + { + "aid": 220294467, + "videos": 1, + "tid": 24, + "tname": "MAD·AMV", + "copyright": 1, + "pic": "http://i1.hdslb.com/bfs/archive/f18d4ecf7578e997d870f0aaf83a26e4fc379d2f.jpg", + "title": "【原神夜店风】深 夜 邂 逅~", + "pubdate": 1668827100, + "ctime": 1668770318, + "desc": "希望大家希望 做了蛮久的", + "state": 0, + "duration": 77, + "mission_id": 1060142, + "rights": { + "bp": 0, + "elec": 0, + "download": 0, + "movie": 0, + "pay": 0, + "hd5": 1, + "no_reprint": 1, + "autoplay": 1, + "ugc_pay": 0, + "is_cooperation": 1, + "ugc_pay_preview": 0, + "no_background": 0, + "arc_pay": 0, + "pay_free_watch": 0 + }, + "owner": { + "mid": 1542136, + "name": "三笠・阿克曼", + "face": "http://i1.hdslb.com/bfs/face/871d3db6a329d2b0e1a67c546301a65f9752d62a.jpg" + }, + "stat": { + "aid": 220294467, + "view": 353464, + "danmaku": 594, + "reply": 474, + "favorite": 34617, + "coin": 11816, + "share": 2647, + "now_rank": 0, + "his_rank": 66, + "like": 88222, + "dislike": 0 + }, + "dynamic": "大的来了!#原神##MAD#", + "cid": 895467115, + "dimension": { + "width": 1920, + "height": 1080, + "rotate": 0 + }, + "season_id": 330790, + "short_link": "https://b23.tv/BV1d8411j7xK", + "short_link_v2": "https://b23.tv/BV1d8411j7xK", + "first_frame": "http://i2.hdslb.com/bfs/storyff/n221118qntcb67e8mcic613b3frykpxn_firsti.jpg", + "pub_location": "陕西", + "bvid": "BV1d8411j7xK", + "score": 0 + }, + { + "aid": 562862605, + "videos": 1, + "tid": 47, + "tname": "短片·手书·配音", + "copyright": 1, + "pic": "http://i0.hdslb.com/bfs/archive/1cd7cb6cf45cdbd65b5b2cb85ac48bd045a110bf.jpg", + "title": "【孤独摇滚/手书】给波奇酱穿新衣服~", + "pubdate": 1668816600, + "ctime": 1668798123, + "desc": "小波奇那么漂亮!快给她买新衣服!!\n感谢原画姐姐们把波奇画得那么可爱!!!", + "state": 0, + "duration": 105, + "mission_id": 1074046, + "rights": { + "bp": 0, + "elec": 0, + "download": 0, + "movie": 0, + "pay": 0, + "hd5": 1, + "no_reprint": 1, + "autoplay": 1, + "ugc_pay": 0, + "is_cooperation": 1, + "ugc_pay_preview": 0, + "no_background": 0, + "arc_pay": 0, + "pay_free_watch": 0 + }, + "owner": { + "mid": 1992514, + "name": "纸欣Dream", + "face": "https://i1.hdslb.com/bfs/face/2c09ba55a475fafa1e82eff79869a9580774f1b0.jpg" + }, + "stat": { + "aid": 562862605, + "view": 428030, + "danmaku": 793, + "reply": 854, + "favorite": 24869, + "coin": 25730, + "share": 6026, + "now_rank": 0, + "his_rank": 96, + "like": 48593, + "dislike": 0 + }, + "dynamic": "#孤独摇滚# 给波奇酱换新衣服!!", + "cid": 896737541, + "dimension": { + "width": 1920, + "height": 1080, + "rotate": 0 + }, + "short_link": "https://b23.tv/BV1fv4y117Qh", + "short_link_v2": "https://b23.tv/BV1fv4y117Qh", + "first_frame": "http://i0.hdslb.com/bfs/storyff/n221119a2usulbe9u89fy3g0479v48y0_firsti.jpg", + "pub_location": "广东", + "bvid": "BV1fv4y117Qh", + "score": 0 + }, + { + "aid": 945304847, + "videos": 1, + "tid": 47, + "tname": "短片·手书·配音", + "copyright": 1, + "pic": "http://i1.hdslb.com/bfs/archive/76026f6a6d7698fcc5656fb2d7c151dcb4b4ea65.jpg", + "title": "【丧病中配】如果2077的CV来配音《赛博朋克:边缘行者》(第五话)", + "pubdate": 1668843300, + "ctime": 1668836610, + "desc": "本作品为剪辑二创,非商业用途仅供娱乐,喜欢的朋友欢迎去看完整版原片!\n有幸邀请到CV大佬们一起配《赛博朋克:边缘行者》玩,希望大家喜欢。本视频点赞过5万,继续更新第六话,谢谢大家的支持啦!\nCAST:\n大卫:@刘照坤Jock \n露西:CV张琦@Kii崽 \n曼恩:嘟督\n吉米黑咲:@配音演员虞晓旭 \n琦薇:@楼倾司 \n多莉欧:CV张琦@Kii崽 \n田中:@黑石稔 \n校长:@黑石稔 \n葛洛莉亚:CV张琦@Kii崽 \nNCPD(全):@是没有风的内个无风吖 \n义体医生:嘟督\n夹暴机动队:@菇力", + "state": 0, + "duration": 1034, + "mission_id": 1089377, + "rights": { + "bp": 0, + "elec": 0, + "download": 0, + "movie": 0, + "pay": 0, + "hd5": 1, + "no_reprint": 1, + "autoplay": 1, + "ugc_pay": 0, + "is_cooperation": 1, + "ugc_pay_preview": 0, + "no_background": 0, + "arc_pay": 0, + "pay_free_watch": 0 + }, + "owner": { + "mid": 2403047, + "name": "嘟督不噶油", + "face": "https://i2.hdslb.com/bfs/face/74738ef7c1ff743959908029b4c9d2dd8b5827c6.jpg" + }, + "stat": { + "aid": 945304847, + "view": 397714, + "danmaku": 2559, + "reply": 1513, + "favorite": 16296, + "coin": 39497, + "share": 3686, + "now_rank": 0, + "his_rank": 0, + "like": 54893, + "dislike": 0 + }, + "dynamic": "久等了!丧病中配《赛博朋克:边缘行者》第五话参上!做个好梦,大卫~", + "cid": 896151792, + "dimension": { + "width": 1920, + "height": 1080, + "rotate": 0 + }, + "season_id": 751347, + "short_link": "https://b23.tv/BV1gW4y1W7f4", + "short_link_v2": "https://b23.tv/BV1gW4y1W7f4", + "first_frame": "http://i0.hdslb.com/bfs/storyff/n221119a23injccl1ujog874rrzkgjbq_firsti.jpg", + "pub_location": "上海", + "bvid": "BV1gW4y1W7f4", + "score": 0 + }, + { + "aid": 432692681, + "videos": 1, + "tid": 47, + "tname": "短片·手书·配音", + "copyright": 1, + "pic": "http://i0.hdslb.com/bfs/archive/13b14a9003bd55b842e3d956f951719e37d4698d.jpg", + "title": "✨踏入白色殿堂,你选择谁?✨", + "pubdate": 1668679200, + "ctime": 1668669686, + "desc": "听说国内人均白毛控?\n小狐兔粉毛MEME指路:BV17B4y1J7vW\nBGM:Di Young-Pixel Pig", + "state": 0, + "duration": 45, + "mission_id": 1074046, + "rights": { + "bp": 0, + "elec": 0, + "download": 0, + "movie": 0, + "pay": 0, + "hd5": 1, + "no_reprint": 1, + "autoplay": 1, + "ugc_pay": 0, + "is_cooperation": 0, + "ugc_pay_preview": 0, + "no_background": 0, + "arc_pay": 0, + "pay_free_watch": 0 + }, + "owner": { + "mid": 1118188465, + "name": "在下小狐兔", + "face": "https://i1.hdslb.com/bfs/face/182be1a72202ae348f9d39f047d7b13e32798f80.jpg" + }, + "stat": { + "aid": 432692681, + "view": 1167712, + "danmaku": 3754, + "reply": 2080, + "favorite": 88688, + "coin": 53575, + "share": 5869, + "now_rank": 0, + "his_rank": 5, + "like": 170078, + "dislike": 0 + }, + "dynamic": "染头白毛,直接少走60年弯路~", + "cid": 894207559, + "dimension": { + "width": 1920, + "height": 1080, + "rotate": 0 + }, + "season_id": 73722, + "short_link": "https://b23.tv/BV1oG411F7B9", + "short_link_v2": "https://b23.tv/BV1oG411F7B9", + "first_frame": "http://i0.hdslb.com/bfs/storyff/n221117a2a2f8je8qiu2724qkdbgwjch_firsti.jpg", + "pub_location": "浙江", + "bvid": "BV1oG411F7B9", + "score": 0 + }, + { + "aid": 262671873, + "videos": 1, + "tid": 47, + "tname": "短片·手书·配音", + "copyright": 1, + "pic": "http://i0.hdslb.com/bfs/archive/0d03863e63cc426bbc579bcb54433e3c2f412686.jpg", + "title": "《不做》", + "pubdate": 1668598143, + "ctime": 1668598143, + "desc": "咸鱼日常", + "state": 0, + "duration": 40, + "mission_id": 1074046, + "rights": { + "bp": 0, + "elec": 0, + "download": 0, + "movie": 0, + "pay": 0, + "hd5": 1, + "no_reprint": 0, + "autoplay": 1, + "ugc_pay": 0, + "is_cooperation": 0, + "ugc_pay_preview": 0, + "no_background": 0, + "arc_pay": 0, + "pay_free_watch": 0 + }, + "owner": { + "mid": 357538100, + "name": "懒小熊_LXX", + "face": "https://i2.hdslb.com/bfs/face/7cc145cb9831c319f4a20dc560915478561110a8.jpg" + }, + "stat": { + "aid": 262671873, + "view": 1682548, + "danmaku": 384, + "reply": 1984, + "favorite": 51955, + "coin": 21220, + "share": 49865, + "now_rank": 0, + "his_rank": 11, + "like": 231688, + "dislike": 0 + }, + "dynamic": "", + "cid": 893540811, + "dimension": { + "width": 1440, + "height": 1080, + "rotate": 0 + }, + "short_link": "https://b23.tv/BV1RY411d7Sp", + "short_link_v2": "https://b23.tv/BV1RY411d7Sp", + "up_from_v2": 8, + "first_frame": "http://i1.hdslb.com/bfs/storyff/n221116a2qu5s05btpwu93sv0xig9hx5_firsti.jpg", + "pub_location": "湖南", + "bvid": "BV1RY411d7Sp", + "score": 0 + }, + { + "aid": 432645631, + "videos": 1, + "tid": 253, + "tname": "动漫杂谈", + "copyright": 1, + "pic": "http://i1.hdslb.com/bfs/archive/976382dd53576cc1af0926a31103e5d179cd26b3.jpg", + "title": "童年引爆全国的动画!《小鲤鱼》的最终结局和剧情究竟是什么?【拾荒记#29】", + "pubdate": 1668741505, + "ctime": 1668741505, + "desc": "相关动画:《小鲤鱼历险记》\n关于拾荒记这个栏目,我将在这个系列节目和大家一起在记忆的杂物堆里翻点什么出来\n\n大家还有什么想看我解读的,欢迎在评论区指出,说不定我下期就做了呢", + "state": 0, + "duration": 1945, + "mission_id": 993288, + "rights": { + "bp": 0, + "elec": 0, + "download": 0, + "movie": 0, + "pay": 0, + "hd5": 1, + "no_reprint": 1, + "autoplay": 1, + "ugc_pay": 0, + "is_cooperation": 0, + "ugc_pay_preview": 0, + "no_background": 0, + "arc_pay": 0, + "pay_free_watch": 0 + }, + "owner": { + "mid": 3078223, + "name": "野灿baka", + "face": "https://i1.hdslb.com/bfs/face/db80dbe62245bd35b32c293670190bf8ccd47975.jpg" + }, + "stat": { + "aid": 432645631, + "view": 1901441, + "danmaku": 14422, + "reply": 2815, + "favorite": 20903, + "coin": 26252, + "share": 6618, + "now_rank": 0, + "his_rank": 39, + "like": 97232, + "dislike": 0 + }, + "dynamic": "这期下饭很足,做了一个月呢,看个饱!", + "cid": 895004016, + "dimension": { + "width": 1920, + "height": 1080, + "rotate": 0 + }, + "season_id": 210289, + "short_link": "https://b23.tv/BV19G411F7iz", + "short_link_v2": "https://b23.tv/BV19G411F7iz", + "first_frame": "http://i0.hdslb.com/bfs/storyff/n221118a23ee03atvk7k4525jkiqwvxo_firsti.jpg", + "pub_location": "广西", + "bvid": "BV19G411F7iz", + "score": 0 + }, + { + "aid": 732840638, + "videos": 1, + "tid": 24, + "tname": "MAD·AMV", + "copyright": 1, + "pic": "http://i1.hdslb.com/bfs/archive/5bf52f12ed2eb3d3576f6eb4931e82a4f0aec9ce.jpg", + "title": "“ 现 在 开 始 ,电 锯 人 也 要 起 飞 了 ”", + "pubdate": 1668826313, + "ctime": 1668826313, + "desc": "是我低估了特效向MAD的难度,这次做了快一个月才做好(大概是累到很久都不想剪mad的程度。。)\n灵感来自林逸大佬的MAD视频\nbgm:16shots\n这次真的花费巨多心思,希望大家多多三连哇", + "state": 0, + "duration": 121, + "mission_id": 1074046, + "rights": { + "bp": 0, + "elec": 0, + "download": 0, + "movie": 0, + "pay": 0, + "hd5": 0, + "no_reprint": 1, + "autoplay": 1, + "ugc_pay": 0, + "is_cooperation": 0, + "ugc_pay_preview": 0, + "no_background": 0, + "arc_pay": 0, + "pay_free_watch": 0 + }, + "owner": { + "mid": 13458092, + "name": "笔龙XDDD", + "face": "https://i2.hdslb.com/bfs/face/fda9b8f0fb9d42c3ed90190b49b7478c87684078.jpg" + }, + "stat": { + "aid": 732840638, + "view": 456933, + "danmaku": 474, + "reply": 497, + "favorite": 16240, + "coin": 20333, + "share": 2288, + "now_rank": 0, + "his_rank": 0, + "like": 42301, + "dislike": 0 + }, + "dynamic": "叩", + "cid": 896032916, + "dimension": { + "width": 1920, + "height": 1080, + "rotate": 0 + }, + "season_id": 861825, + "short_link": "https://b23.tv/BV1hD4y1s7fJ", + "short_link_v2": "https://b23.tv/BV1hD4y1s7fJ", + "first_frame": "http://i0.hdslb.com/bfs/storyff/n221119a23flpz3l68ol27195z5warrj_firsti.jpg", + "pub_location": "浙江", + "bvid": "BV1hD4y1s7fJ", + "score": 0 + }, + { + "aid": 520311091, + "videos": 1, + "tid": 25, + "tname": "MMD·3D", + "copyright": 1, + "pic": "http://i0.hdslb.com/bfs/archive/0b15fe71c25d0c226a96a4ef253cfb946dda3a15.jpg", + "title": "万叶:哥把你揣兜里,你把哥踹沟里", + "pubdate": 1668871911, + "ctime": 1668871911, + "desc": "模型:米哈游/观海子\n渲染:小二今天吃啥啊、克里斯提亚娜\n动作/镜头:CME6大神犬\n原声:伤心欲茄", + "state": 0, + "duration": 16, + "mission_id": 1060142, + "rights": { + "bp": 0, + "elec": 0, + "download": 0, + "movie": 0, + "pay": 0, + "hd5": 1, + "no_reprint": 1, + "autoplay": 1, + "ugc_pay": 0, + "is_cooperation": 0, + "ugc_pay_preview": 0, + "no_background": 0, + "arc_pay": 0, + "pay_free_watch": 0 + }, + "owner": { + "mid": 403425503, + "name": "甜甜草酿鸡", + "face": "https://i2.hdslb.com/bfs/face/66eb2201458e7bf1875c6a1da629cf1c887e30fd.jpg" + }, + "stat": { + "aid": 520311091, + "view": 401135, + "danmaku": 206, + "reply": 597, + "favorite": 15559, + "coin": 2623, + "share": 12448, + "now_rank": 0, + "his_rank": 0, + "like": 64094, + "dislike": 0 + }, + "dynamic": "", + "cid": 896780848, + "dimension": { + "width": 1080, + "height": 1920, + "rotate": 0 + }, + "short_link": "https://b23.tv/BV1hM411C7ez", + "short_link_v2": "https://b23.tv/BV1hM411C7ez", + "up_from_v2": 35, + "first_frame": "http://i0.hdslb.com/bfs/storyff/n221119a213u50mtr1xje1pmh9ufufp1_firsti.jpg", + "pub_location": "广东", + "bvid": "BV1hM411C7ez", + "score": 0 + }, + { + "aid": 775289285, + "videos": 1, + "tid": 210, + "tname": "手办·模玩", + "copyright": 1, + "pic": "http://i1.hdslb.com/bfs/archive/8defd33e5c2dd860ecb46dfef3445aad14a1f7fa.jpg", + "title": "“最帅最强”的“究极体”?万代 MGEX 强袭自由高达 拼装模型【评头论足】", + "pubdate": 1668830154, + "ctime": 1668830154, + "desc": "大家喜欢视频的话多多点赞关注投币哦~\n《评头论足》主要以第一人称的方式去介绍最新上市的模玩产品,给人以把玩在手中最真实的直观感受,为广大模型爱好者选购模型玩具产品提供方便。合作油箱 pinggaoda@qq.com", + "state": 0, + "duration": 1120, + "mission_id": 1080009, + "rights": { + "bp": 0, + "elec": 0, + "download": 0, + "movie": 0, + "pay": 0, + "hd5": 0, + "no_reprint": 1, + "autoplay": 1, + "ugc_pay": 0, + "is_cooperation": 0, + "ugc_pay_preview": 0, + "no_background": 0, + "arc_pay": 0, + "pay_free_watch": 0 + }, + "owner": { + "mid": 2029306, + "name": "-评头论足-", + "face": "https://i1.hdslb.com/bfs/face/c20b5d1f044448ff2c5f4dbafc5dc464fdcdbca5.jpg" + }, + "stat": { + "aid": 775289285, + "view": 422301, + "danmaku": 12251, + "reply": 4824, + "favorite": 11219, + "coin": 26475, + "share": 10777, + "now_rank": 0, + "his_rank": 0, + "like": 37206, + "dislike": 0 + }, + "dynamic": "年度关注度超高的MGEX强袭自由,他来了!", + "cid": 896057755, + "dimension": { + "width": 3840, + "height": 2160, + "rotate": 0 + }, + "season_id": 573806, + "short_link": "https://b23.tv/BV1h14y1H7Ls", + "short_link_v2": "https://b23.tv/BV1h14y1H7Ls", + "first_frame": "http://i2.hdslb.com/bfs/storyff/n221119a21mwd5z96o6l7q1tg8gqhh6m_firsti.jpg", + "pub_location": "辽宁", + "bvid": "BV1h14y1H7Ls", + "score": 0 + }, + ] + } +} +``` + +
diff --git a/docs/search/hot.md b/docs/search/hot.md new file mode 100644 index 0000000000..049ad9ce45 --- /dev/null +++ b/docs/search/hot.md @@ -0,0 +1,569 @@ +# 默认搜索&热搜 + +- [获取默认搜索内容(web端)](#获取默认搜索内容web端) +- [获取热搜列表(web端)](#获取热搜列表web端) +- [获取热搜列表(手机端)](#获取热搜列表手机端) + +--- + +## 获取默认搜索内容(web端) + +> https://api.bilibili.com/x/web-interface/search/default + +*请求方式:GET* + +默认搜索为搜索框中默认填充内容,用于官方推荐内容,若不输入点击搜索按钮跳转为`url`中的链接 + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------- | +| code | num | 返回值 | 0:成功 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---------- | ---- | --------------- | -------------- | +| seid | str | 搜索seid | | +| id | num | 默认搜索id | | +| type | num | 0 | | +| show_name | str | 显示文字 | | +| name | str | 空 | | +| goto_type | num | 跳转类型 | 1:视频 | +| goto_value | str | 搜索目标id | 视频:稿件avid | +| url | str | 搜索目标跳转url | | + +**示例:** + +```shell +curl 'https://api.bilibili.com/x/web-interface/search/default' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "seid": "17607543598496143098", + "id": 3296036255232726331, + "type": 0, + "show_name": "歪果仁在中国做模特能赚多少钱?", + "name": "", + "goto_type": 1, + "goto_value": "243920322", + "url": "https://www.bilibili.com/video/BV1Tv411q7gx" + } +} +``` + +
+ +## 获取热搜列表(web端) + +> https://s.search.bilibili.com/main/hotword + +*请求方式:GET* + +榜单每隔固定时间统计一次,请求后返回搜索前10的关键词 + +带有转义 + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| --------- | ----- | ------------ | ------------- | +| exp_str | str | ??? | | +| code | num | 返回值 | 0:成功 | +| cost | obj | 详细搜索用时 | 大概是吧? | +| seid | str | 搜索seid | | +| timestamp | num | 榜单统计时间 | 时间戳 | +| message | str | 错误信息 | 默认为success | +| list | array | 热搜列表 | | + +`list`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | --------------- | ------------ | +| 0 | obj | 榜单第1名 | | +| n | obj | 榜单第(n+1)名 | 按照名次顺序 | +| 10 | obj | 榜单第10名 | 最后一项 | + +`list`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---------- | ---- | -------- | ------- | +| status | str | 空 | | +| hot_id | num | 热词id | 大概是吧? | +| keyword | str | 关键词 | | +| resource_id| num | 资源id | | +| goto_type | num | 0 | | +| res | array| null | | +| show_name | str | 完整关键词| | +| pos | num | 名次 | 1-10 | +| word_type | num | 条目属性 | 均返回8 | +| id | num | 名次 | 1-10 | +| goto_value | str | 空 | | +| live_id | array| null | | +| name_type | str | 空 | | +| icon | str | 图标url | | + +**示例:** + +```shell +curl 'https://s.search.bilibili.com/main/hotword' +``` + +
+查看响应示例: + +```json +{ + "exp_str": "8104#8200#8300#8401#8500#5502#6699", + "code": 0, + "cost": { + "reas_request": "0.001895", + "params_check": "0.000127", + "reas_response_format": "0.000098", + "deserialize_response": "0.000080", + "reas_request_format": "0.000076", + "total": "0.002479", + "main_handler": "0.002252" + }, + "seid": "9318821020548476185", + "timestamp": 1596034742, + "message": "success", + "list": [{ + "status": "", + "hot_id": 11003, + "keyword": "流浪地球2刘德华", + "resource_id": 0, + "goto_type": 0, + "res": [ + + ], + "show_name": "流浪地球2刘德华造型", + "pos": 1, + "word_type": 8, + "id": 1, + "goto_value": "", + "live_id": [ + + ], + "name_type": "", + "icon": "http://i0.hdslb.com/bfs/feed-admin/e9e7a2d8497d4063421b685e72680bf1cfb99a0d.png" + }, + { + "status": "", + "hot_id": 11012, + "keyword": "QQ飞车手游飞跃黄河", + "resource_id": 0, + "goto_type": 0, + "res": [ + + ], + "show_name": "QQ飞车手游飞跃黄河", + "pos": 2, + "word_type": 8, + "id": 2, + "goto_value": "", + "live_id": [ + + ], + "name_type": "", + "icon": "http://i0.hdslb.com/bfs/feed-admin/4d579fb61f9655316582db193118bba3a721eec0.png" + }, + { + "status": "", + "hot_id": 10996, + "keyword": "西工大遭网络攻击最新调查", + "resource_id": 0, + "goto_type": 0, + "res": [ + + ], + "show_name": "西工大遭网络攻击最新调查", + "pos": 3, + "word_type": 8, + "id": 3, + "goto_value": "", + "live_id": [ + + ], + "name_type": "", + "icon": "http://i0.hdslb.com/bfs/feed-admin/e9e7a2d8497d4063421b685e72680bf1cfb99a0d.png" + }, + { + "status": "", + "hot_id": 11004, + "keyword": "EDG 起诉", + "resource_id": 0, + "goto_type": 0, + "res": [ + + ], + "show_name": "EDGJieJie已起诉多家企业", + "pos": 4, + "word_type": 8, + "id": 4, + "goto_value": "", + "live_id": [ + + ], + "name_type": "", + "icon": "http://i0.hdslb.com/bfs/feed-admin/4d579fb61f9655316582db193118bba3a721eec0.png" + }, + { + "status": "", + "hot_id": 10992, + "keyword": "隐入尘烟", + "resource_id": 0, + "goto_type": 0, + "res": [ + + ], + "show_name": "隐入尘烟全平台下架", + "pos": 5, + "word_type": 8, + "id": 5, + "goto_value": "", + "live_id": [ + + ], + "name_type": "", + "icon": "http://i0.hdslb.com/bfs/feed-admin/e9e7a2d8497d4063421b685e72680bf1cfb99a0d.png" + }, + { + "status": "", + "hot_id": 10987, + "keyword": "原神半年内最良心封神池", + "resource_id": 0, + "goto_type": 0, + "res": [ + + ], + "show_name": "原神半年内最良心封神池", + "pos": 6, + "word_type": 8, + "id": 6, + "goto_value": "", + "live_id": [ + + ], + "name_type": "", + "icon": "" + }, + { + "status": "", + "hot_id": 10988, + "keyword": "高校回应设国内首个元宇宙院系", + "resource_id": 0, + "goto_type": 0, + "res": [ + + ], + "show_name": "高校回应设国内首个元宇宙院系", + "pos": 7, + "word_type": 8, + "id": 7, + "goto_value": "", + "live_id": [ + + ], + "name_type": "", + "icon": "" + }, + { + "status": "", + "hot_id": 10994, + "keyword": "美宇宙飞船成功撞击小行星", + "resource_id": 0, + "goto_type": 0, + "res": [ + + ], + "show_name": "美宇宙飞船成功撞击小行星", + "pos": 8, + "word_type": 8, + "id": 8, + "goto_value": "", + "live_id": [ + + ], + "name_type": "", + "icon": "" + }, + { + "status": "", + "hot_id": 10991, + "keyword": "你薅的羊毛可能已违法", + "resource_id": 0, + "goto_type": 0, + "res": [ + + ], + "show_name": "你薅的羊毛可能已违法", + "pos": 9, + "word_type": 8, + "id": 9, + "goto_value": "", + "live_id": [ + + ], + "name_type": "", + "icon": "" + }, + { + "status": "", + "hot_id": 11013, + "keyword": "辛普森一家", + "resource_id": 0, + "goto_type": 0, + "res": [ + + ], + "show_name": "辛普森一家", + "pos": 10, + "word_type": 8, + "id": 10, + "goto_value": "", + "live_id": [ + + ], + "name_type": "", + "icon": "http://i0.hdslb.com/bfs/feed-admin/4d579fb61f9655316582db193118bba3a721eec0.png" + } + ] +} +``` + +
+ +## 获取热搜列表(手机端) + +> https://app.bilibili.com/x/v2/search/trending/ranking + +*请求方式:GET* + +榜单每隔固定时间统计一次,请求后返回搜索前20的关键词 + +带有转义 + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| --------- | ----- | ------------ | ------------- | +| code | num | 返回值 | 0:成功 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 返回值 | 默认为1 | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | --------------- | ------------ | +| trackid | num | | 不知用途 | +| list | array | 热搜列表 | | + +`list`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | --------------- | ------------ | +| 0 | obj | 榜单第1名 | | +| n | obj | 榜单第(n+1)名 | 按照名次顺序 | +| 20 | obj | 榜单第20名 | 最后一项 | + +`list`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---------- | ---- | -------- | ------- | +| position | num | 名次 | 1-20 | +| keyword | str | 关键词 | | +| show_name | str | 完整关键词| | +| word_type | num | 条目属性 | 均返回8 | +| icon | str | 图标url | | +| hot_id | num | 热词id | 大概是吧? | + +**示例:** + +```shell +curl 'https://app.bilibili.com/x/v2/search/trending/ranking' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "trackid": "12666380188451258075", + "list": [ + { + "position": 1, + "keyword": "流浪地球2刘德华", + "show_name": "流浪地球2刘德华造型", + "word_type": 8, + "icon": "http://i0.hdslb.com/bfs/feed-admin/4d579fb61f9655316582db193118bba3a721eec0.png", + "hot_id": 11003 + }, + { + "position": 2, + "keyword": "QQ飞车手游飞跃黄河", + "show_name": "QQ飞车手游飞跃黄河", + "word_type": 8, + "icon": "http://i0.hdslb.com/bfs/feed-admin/4d579fb61f9655316582db193118bba3a721eec0.png", + "hot_id": 11012 + }, + { + "position": 3, + "keyword": "西工大遭网络攻击最新调查", + "show_name": "西工大遭网络攻击最新调查", + "word_type": 8, + "icon": "http://i0.hdslb.com/bfs/feed-admin/e9e7a2d8497d4063421b685e72680bf1cfb99a0d.png", + "hot_id": 10996 + }, + { + "position": 4, + "keyword": "EDG 起诉", + "show_name": "EDGJieJie已起诉多家企业", + "word_type": 8, + "icon": "http://i0.hdslb.com/bfs/feed-admin/4d579fb61f9655316582db193118bba3a721eec0.png", + "hot_id": 11004 + }, + { + "position": 5, + "keyword": "隐入尘烟", + "show_name": "隐入尘烟全平台下架", + "word_type": 8, + "icon": "http://i0.hdslb.com/bfs/feed-admin/e9e7a2d8497d4063421b685e72680bf1cfb99a0d.png", + "hot_id": 10992 + }, + { + "position": 6, + "keyword": "原神半年内最良心封神池", + "show_name": "原神半年内最良心封神池", + "word_type": 8, + "hot_id": 10987 + }, + { + "position": 7, + "keyword": "高校回应设国内首个元宇宙院系", + "show_name": "高校回应设国内首个元宇宙院系", + "word_type": 8, + "hot_id": 10988 + }, + { + "position": 8, + "keyword": "美宇宙飞船成功撞击小行星", + "show_name": "美宇宙飞船成功撞击小行星", + "word_type": 8, + "hot_id": 10994 + }, + { + "position": 9, + "keyword": "你薅的羊毛可能已违法", + "show_name": "你薅的羊毛可能已违法", + "word_type": 8, + "hot_id": 10991 + }, + { + "position": 10, + "keyword": "火锅店剩锅底重新给顾客", + "show_name": "火锅店剩锅底重新给顾客", + "word_type": 1, + "hot_id": 11014 + }, + { + "position": 11, + "keyword": "海月", + "show_name": "王者海月逆天", + "word_type": 8, + "hot_id": 10999 + }, + { + "position": 12, + "keyword": "周琦重返NBL", + "show_name": "徐静雨评周琦重返NBL", + "word_type": 8, + "icon": "http://i0.hdslb.com/bfs/feed-admin/4d579fb61f9655316582db193118bba3a721eec0.png", + "hot_id": 11007 + }, + { + "position": 13, + "keyword": "小超梦剑魔连招", + "show_name": "小超梦剑魔QA连招", + "word_type": 8, + "hot_id": 11006 + }, + { + "position": 14, + "keyword": "东八区的先生们已下架", + "show_name": "东八区的先生们已下架", + "word_type": 8, + "hot_id": 10955 + }, + { + "position": 15, + "keyword": "三国杀新武将全惠解", + "show_name": "三国杀新武将全惠解", + "word_type": 8, + "icon": "http://i0.hdslb.com/bfs/feed-admin/4d579fb61f9655316582db193118bba3a721eec0.png", + "hot_id": 11009 + }, + { + "position": 16, + "keyword": "ALGS训练赛", + "show_name": "ALGS训练赛", + "word_type": 8, + "icon": "http://i0.hdslb.com/bfs/feed-admin/4d579fb61f9655316582db193118bba3a721eec0.png", + "hot_id": 11011 + }, + { + "position": 17, + "keyword": "王者青白蛇皮肤优化", + "show_name": "王者青白蛇皮肤优化", + "word_type": 8, + "hot_id": 11000 + }, + { + "position": 18, + "keyword": "普京授予斯诺登俄公民身份", + "show_name": "普京授予斯诺登俄公民身份", + "word_type": 1, + "hot_id": 10977 + }, + { + "position": 19, + "keyword": "赛诺角色演示", + "show_name": "原神赛诺角色演示", + "word_type": 8, + "hot_id": 10998 + }, + { + "position": 20, + "keyword": "COD19被玩坏了", + "show_name": "COD19被玩坏了", + "word_type": 8, + "hot_id": 10971 + } + ], + "exp_str": "8000#5509#6605#7708" + } +} +``` + +
diff --git a/docs/search/search_request.md b/docs/search/search_request.md new file mode 100644 index 0000000000..9f32448aeb --- /dev/null +++ b/docs/search/search_request.md @@ -0,0 +1,1443 @@ +# 搜索 + +- [综合搜索(web端)](#综合搜索web端) +- [分类搜索(web端)](#分类搜索web端) + +--- + +> **B站于2022年8月24日更新了搜索api,增加了一大堆Cookies的校验,如果Cookies不足会返回-412搜索被拦截。如果没有cookies的话,请在搜索之前先GET一遍 https://bilibili.com 以获取cookies** + +## 综合搜索(web端) + +> https://api.bilibili.com/x/web-interface/search/all/v2 + +*方式:GET* + +认证方式:Cookie(SESSDATA) + +返回和关键字相关的20条信息 + +综合搜索为默认搜索方式,主要用于优先搜索用户、影视、番剧、游戏、话题等,并加载第一页的20项相关视频,还用于展示各个类型的结果数目,便于进一步分类搜索 + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------- | ---- | ---------------- | ------ | ---- | +| keyword | str | 需要搜索的关键词 | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | --------------------------- | +| code | num | 返回值 | 0:成功
-400:请求错误
-412:请求被拦截 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---------------- | ----- | ---------------- | ---------------- | +| seid | str | 搜索id | | +| page | num | 页数 | 固定为1 | +| pagesize | num | 每页条数 | 固定为20 | +| numResults | num | 总条数 | 最大值为1000 | +| numPages | num | 分页数 | 最大值为50 | +| suggest_keyword | str | 空 | **作用尚不明确** | +| rqt_type | str | search | **作用尚不明确** | +| cost_time | obj | 详细搜索用时 | 大概是吧? | +| exp_list | obj | ??? | **作用尚不明确** | +| egg_hit | num | 0 | **作用尚不明确** | +| pageinfo | obj | 分类页数信息 | | +| top_tlist | obj | 分类结果数目信息 | | +| show_column | num | 0 | **作用尚不明确** | +| show_module_list | array | 返回结果类型列表 | | +| result | array | 结果列表 | | + +`data`中的`cost_time`对象: + +| 字段 | 类型 | 内容 | 备注 | +| -------------------- | ---- | ---- | ---- | +| params_check | str | | | +| illegal_handler | str | | | +| as_response_format | str | | | +| as_request | str | | | +| save_cache | str | | | +| deserialize_response | str | | | +| as_request_format | str | | | +| total | str | | | +| main_handler | str | | | + +`data`中的`pageinfo`对象: + +| 字段 | 类型 | 内容 | 备注 | +| -------------- | ---- | -------- | ---- | +| pgc | obj | - | | +| live_room | obj | 直播数 | | +| photo | obj | 相簿数 | | +| topic | obj | 话题数 | | +| video | obj | 视频数 | | +| user | obj | - | | +| bili_user | obj | 用户数 | | +| media_ft | obj | 电影数 | | +| article | obj | 专栏数 | | +| media_bangumi | obj | 番剧数 | | +| special | obj | - | | +| operation_card | obj | - | | +| upuser | obj | - | | +| movie | obj | - | | +| live_all | obj | - | | +| tv | obj | - | | +| live | obj | 直播间数 | | +| bangumi | obj | - | | +| activity | obj | 活动数 | | +| live_master | obj | - | | +| live_user | obj | 主播数 | | + +`pageinfo`中的所有对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---------- | ---- | -------- | ---- | +| numResults | num | 总计数量 | | +| total | num | 总计数量 | | +| pages | num | 分页数量 | | + +`data`中的`top_tlist`对象: + +| 字段 | 类型 | 内容 | 备注 | +| -------------- | ---- | -------- | ---- | +| pgc | num | - | | +| live_room | num | 直播数 | | +| photo | num | 相簿数 | | +| topic | num | 话题数 | | +| video | num | 视频数 | | +| user | num | - | | +| bili_user | num | 用户数 | | +| media_ft | num | 电影数 | | +| article | num | 专栏数 | | +| media_bangumi | num | 番剧数 | | +| card | num | - | | +| operation_card | num | - | | +| upuser | num | - | | +| movie | num | - | | +| live_all | num | - | | +| tv | num | - | | +| live | num | 直播间数 | | +| special | num | - | | +| bangumi | num | - | | +| activity | num | 活动数 | | +| live_master | num | - | | +| live_user | num | 主播数 | | + +`data`中的`show_module_list`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | ------------- | ---- | +| 0 | str | activity | | +| 1 | str | web_game | 游戏 | +| 2 | str | card | | +| 3 | str | media_bangumi | 番剧 | +| 4 | str | media_ft | 电影 | +| 5 | str | bili_user | 用户 | +| 6 | str | user | | +| 7 | str | star | | +| 8 | str | video | 视频 | + +`data`中的`result`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | -------- | ---- | +| 0 | obj | - | | +| 1 | obj | 游戏结果 | | +| 2 | obj | - | | +| 3 | obj | 番剧结果 | | +| 4 | obj | 电影结果 | | +| 5 | obj | 用户结果 | | +| 6 | obj | - | | +| 7 | obj | - | | +| 8 | obj | 视频结果 | | + +`result`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----------- | ----- | -------- | ------------------------------ | +| result_type | str | 结果类型 | 与`result`数组对应的项相同 | +| data | array | 搜索结果 | 结果为该项所对应的对象条目格式 | + +`result`数组中的对象中的`data`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | --------------- | ---------------------------------------- | +| 0 | obj | 搜索结果1 | 对象详情见[搜索结果](search_response.md) | +| n | obj | 搜索结果(n+1) | 按照参数指定的顺序排列 | +| …… | obj | …… | …… | + +**示例:** + +使用综合搜索进行搜索关键字`洛天依` + +```shell +curl -G 'https://api.bilibili.com/x/web-interface/search/all/v2' \ +--data-urlencode 'keyword=洛天依' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "seid": "8850295244740510044", + "page": 1, + "pagesize": 20, + "numResults": 1000, + "numPages": 50, + "suggest_keyword": "", + "rqt_type": "search", + "cost_time": { + "params_check": "0.000496", + "get upuser live status": "0.002325", + "illegal_handler": "0.000118", + "as_response_format": "0.007020", + "mysql_request": "0.000054", + "as_request": "0.099139", + "as_request_format": "0.002199", + "deserialize_response": "0.000342", + "total": "0.109753", + "main_handler": "0.109041" + }, + "exp_list": { + "5520": true + }, + "egg_hit": 0, + "pageinfo": { + "pgc": { + "numResults": 0, + "total": 0, + "pages": 0 + }, + "live_room": { + "numResults": 1, + "total": 1, + "pages": 1 + }, + "photo": { + "numResults": 1000, + "total": 1000, + "pages": 50 + }, + "bili_user": { + "numResults": 548, + "total": 548, + "pages": 28 + }, + "topic": { + "numResults": 0, + "total": 0, + "pages": 0 + }, + "video": { + "numResults": 1000, + "total": 1000, + "pages": 50 + }, + "user": { + "numResults": 0, + "total": 0, + "pages": 0 + }, + "article": { + "numResults": 1000, + "total": 1000, + "pages": 50 + }, + "media_ft": { + "numResults": 1, + "total": 1, + "pages": 1 + }, + "media_bangumi": { + "numResults": 0, + "total": 0, + "pages": 0 + }, + "special": { + "numResults": 14, + "total": 14, + "pages": 1 + }, + "operation_card": { + "numResults": 0, + "total": 0, + "pages": 0 + }, + "upuser": { + "numResults": 0, + "total": 0, + "pages": 0 + }, + "movie": { + "numResults": 0, + "total": 0, + "pages": 0 + }, + "live_all": { + "numResults": 2, + "total": 2, + "pages": 1 + }, + "tv": { + "numResults": 0, + "total": 0, + "pages": 0 + }, + "live": { + "numResults": 773, + "total": 773, + "pages": 39 + }, + "bangumi": { + "numResults": 0, + "total": 0, + "pages": 0 + }, + "activity": { + "numResults": 0, + "total": 0, + "pages": 0 + }, + "live_master": { + "numResults": 1, + "total": 1, + "pages": 1 + }, + "live_user": { + "numResults": 772, + "total": 772, + "pages": 39 + } + }, + "top_tlist": { + "pgc": 0, + "live_room": 1, + "photo": 1000, + "bili_user": 548, + "topic": 0, + "video": 1000, + "user": 0, + "article": 1000, + "media_ft": 1, + "media_bangumi": 0, + "card": 0, + "operation_card": 0, + "upuser": 0, + "movie": 0, + "tv": 0, + "live": 2, + "special": 14, + "bangumi": 0, + "activity": 0, + "live_master": 1, + "live_user": 772 + }, + "show_column": 0, + "show_module_list": [ + "bili_user", + "user", + "activity", + "web_game", + "card", + "media_bangumi", + "media_ft", + "star", + "video" + ], + "result": [ + { + "result_type": "bili_user", + "data": [ + { + "type": "bili_user", + "mid": 36081646, + "uname": "洛天依", + "usign": "上海禾念Vsinger旗下歌手,世界第一位VOCALOID中文虚拟歌姬。投食请戳:luotianyi@sh-henian.com", + "fans": 1982688, + "videos": 45, + "upic": "//i2.hdslb.com/bfs/face/cc96d1d6bf76f8198263f9083921997ab3a80d8b.jpg", + "verify_info": "", + "level": 6, + "gender": 2, + "is_upuser": 1, + "is_live": 0, + "room_id": 1546736, + "res": [ + { + "aid": 753839250, + "bvid": "BV1Hk4y1B7Cx", + "title": "【洛天依】2020.7.12洛天依生日会", + "pubdate": 1594559234, + "arcurl": "http://www.bilibili.com/video/av753839250", + "pic": "//i2.hdslb.com/bfs/archive/5347eafb5a65ad9a9ffc39063d686772ea1298c4.jpg", + "play": "269428", + "dm": 30648, + "coin": 33838, + "fav": 24066, + "desc": "从2012年一路走至2020年,8年间刻画下的无数回忆,都在生日会上娓娓道来。\n大家的每一次应援,每一条弹幕都无可替代,都凝结着无可比拟的珍贵回忆。\n希望天依的歌声能鼓起每个人心中的勇气,跨过悲伤、无力,去迎接希望。\n愿我们一同携手成长~相扶相伴。\n天依的首张官方数字专辑也已经上线,等你来听。\n试听: BV1Tp4y1S7cu\n购买:https://y.music.163.com/m/album?id=92206376", + "duration": "58:6", + "is_pay": 0, + "is_union_video": 0 + }, + { + "aid": 968772260, + "bvid": "BV1Tp4y1S7cu", + "title": "【洛天依原创曲】万分之一的光", + "pubdate": 1594557008, + "arcurl": "http://www.bilibili.com/video/av968772260", + "pic": "//i1.hdslb.com/bfs/archive/67c6118e4f94bee89b984525ca665fc88c969cac.jpg", + "play": "333322", + "dm": 9323, + "coin": 39961, + "fav": 29818, + "desc": "8年间我们一起经历了许多,有欢乐也有悲伤,有相遇自然也有别离,但曾相处的日子永远那么辉光闪耀。\n感谢你成为我的光芒,而我也会是你万分之一的光。\n\n音乐:ChiliChill\n贝斯:山口進也\n鼓手:口口口口口\n调校:动点P\n弦乐编配:胡静成 / ChiliChill\n小提琴:庞阔 / 张浩\n中提琴:毕芳\n大提琴:郎莹\n监制:人形兎\n出品:Vsinger", + "duration": "4:12", + "is_pay": 0, + "is_union_video": 1 + }, + { + "aid": 883803983, + "bvid": "BV1kK4y1s7Dd", + "title": "洛天依2020官方专辑《Moments》试听PV", + "pubdate": 1594526467, + "arcurl": "http://www.bilibili.com/video/av883803983", + "pic": "//i1.hdslb.com/bfs/archive/2ff004df9d98e2a78531c6400ee8e823fb30e6f4.jpg", + "play": "205340", + "dm": 7748, + "coin": 18792, + "fav": 14222, + "desc": "8是数字也是象征;\n∞是循环也是无限;\n \n音乐给予了我诞生和成长的力量,让我不断汲取养分,直至冲破险阻向阳生长;\n音乐让我更加幸运,在曾经未知的道路上遇见属于我们彼此的蓝色星光;\n那些一路上的美好,我都想和你们一起收集,瞬间即永恒。\n\n--------Staff--------\n作曲:Chilichill / COP / 人形兎 / 纯白P / 花之祭P / 希望索任合资 / 银临 / JUSF周存\n作词: Chilichill / COP / 人形兎 / 果汁凉菜 / 沈病娇 / 南岐 / 冥凰 / ", + "duration": "3:44", + "is_pay": 0, + "is_union_video": 0 + } + ], + "official_verify": { + "type": 0, + "desc": "洛天依官方账号" + }, + "hit_columns": [ + "uname" + ] + } + ] + }, + { + "result_type": "user", + "data": [] + }, + { + "result_type": "activity", + "data": [] + }, + { + "result_type": "web_game", + "data": [] + }, + { + "result_type": "card", + "data": [] + }, + { + "result_type": "media_bangumi", + "data": [] + }, + { + "result_type": "media_ft", + "data": [] + }, + { + "result_type": "star", + "data": [] + }, + { + "result_type": "video", + "data": [ + { + "type": "video", + "id": 753839250, + "author": "洛天依", + "mid": 36081646, + "typeid": "30", + "typename": "VOCALOID·UTAU", + "arcurl": "http://www.bilibili.com/video/av753839250", + "aid": 753839250, + "bvid": "BV1Hk4y1B7Cx", + "title": "【洛天依】2020.7.12洛天依生日会", + "description": "从2012年一路走至2020年,8年间刻画下的无数回忆,都在生日会上娓娓道来。\n大家的每一次应援,每一条弹幕都无可替代,都凝结着无可比拟的珍贵回忆。\n希望天依的歌声能鼓起每个人心中的勇气,跨过悲伤、无力,去迎接希望。\n愿我们一同携手成长~相扶相伴。\n天依的首张官方数字专辑也已经上线,等你来听。\n试听: BV1Tp4y1S7cu\n购买:https://y.music.163.com/m/album?id=92206376", + "arcrank": "0", + "pic": "//i2.hdslb.com/bfs/archive/5347eafb5a65ad9a9ffc39063d686772ea1298c4.jpg", + "play": 269428, + "video_review": 30648, + "favorites": 24066, + "tag": "VSINGER,洛天依生日快乐,2020洛天依生日会,洛天依生日会,VOCALOID,洛天依", + "review": 4391, + "pubdate": 1594559234, + "senddate": 1594559234, + "duration": "58:6", + "badgepay": false, + "hit_columns": [ + "title", + "author", + "tag" + ], + "view_type": "", + "is_pay": 0, + "is_union_video": 0, + "rec_tags": null, + "new_rec_tags": [], + "rank_score": 102616359 + }, + { + "type": "video", + "id": 753460703, + "author": "低调的黑叔", + "mid": 22065421, + "typeid": "25", + "typename": "MMD·3D", + "arcurl": "http://www.bilibili.com/video/av753460703", + "aid": 753460703, + "bvid": "BV1Zk4y1B7bn", + "title": "【4K/布料/水手服】洛天依 - GimmexGimme", + "description": "喜欢本期4K请点个关注并长按视频下方大拇指一键三连拜托啦这对我真的很重要\n\nModel:\niRon0129/夏夜/Tda様/やまもと/Samsink(机动战士牛肉)\n\nMotion:\nシガー\n\nSailor Suit:\n星音\n\nStage:\nG_Wuuuuu\n\nRenderer:\nToolbag 3\n\nMusic:\n【初音ミク×鏡音リン】Gimme×Gimme【八王子P×Giga】", + "arcrank": "0", + "pic": "//i1.hdslb.com/bfs/archive/d1bd3d4d12b1e115ce82463853ff791a45472f1f.jpg", + "play": 809854, + "video_review": 1189, + "favorites": 47632, + "tag": "自制,3D,TDA,动画,百万剪辑师挑战,洛天依,美腿,舞蹈MMD,4K", + "review": 798, + "pubdate": 1591367468, + "senddate": 1591404973, + "duration": "1:11", + "badgepay": false, + "hit_columns": [ + "title", + "tag" + ], + "view_type": "", + "is_pay": 0, + "is_union_video": 0, + "rec_tags": null, + "new_rec_tags": [], + "rank_score": 102465557 + }, + { + "type": "video", + "id": 10131337, + "author": "赛亚♂sya", + "mid": 157056, + "typeid": "30", + "typename": "VOCALOID·UTAU", + "arcurl": "http://www.bilibili.com/video/av10131337", + "aid": 10131337, + "bvid": "BV1fx411U7Kg", + "title": "【洛天依原创】自言自语", + "description": "词曲编调绘:Sya;混音:JUSF周存;简介你随便拿个之前的复制粘贴就行", + "arcrank": "0", + "pic": "//i0.hdslb.com/bfs/archive/e5aab7ddab3e060854e420edae6c5282cbe09324.jpg", + "play": 746480, + "video_review": 4665, + "favorites": 49097, + "tag": "黑洛,诚信代投,自言自语,洛天依,VOCALOID中文曲,原创,高级一图流,自x自x,自A自B系列,赛亚♂sya,JUSF周存", + "review": 7310, + "pubdate": 1493282828, + "senddate": 1542308981, + "duration": "4:14", + "badgepay": false, + "hit_columns": [ + "title", + "tag" + ], + "view_type": "", + "is_pay": 0, + "is_union_video": 0, + "rec_tags": null, + "new_rec_tags": [], + "rank_score": 102432728 + }, + ………… + ] + } + ] + } +} +``` + +
+ + + +## 分类搜索(web端) + +> https://api.bilibili.com/x/web-interface/search/type + +*请求方式:GET* + +认证方式:Cookie(SESSDATA) + +根据关键词进行搜索,返回结果每页20项 + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ----------- | ---- | ------------------------ | ------ | ------------------------------------------------------------ | +| search_type | str | 搜索目标类型 | 必要 | 视频:video
番剧:media_bangumi
影视:media_ft
直播间及主播:live
直播间:live_room
主播:live_user
专栏:article
话题:topic
用户:bili_user
相簿:photo | +| keyword | str | 需要搜索的关键词 | 必要 | | +| order | str | 结果排序方式 | 非必要 | 搜索类型为视频、专栏及相簿时:
默认为totalrank
综合排序:totalrank
最多点击:click
最新发布:pubdate
最多弹幕:dm
最多收藏:stow
最多评论:scores
最多喜欢:attention(仅用于专栏)
----------------------------
搜索结果为直播间时:
默认为online
人气直播:online
最新开播:live_time
----------------------------
搜索结果为用户时:
默认为0
默认排序:0
粉丝数:fans
用户等级:level | +| order_sort | num | 用户粉丝数及等级排序顺序 | 非必要 | 仅用于搜索用户
默认为0
由高到低:0
由低到高:1 | +| user_type | num | 用户分类筛选 | 非必要 | 仅用于搜索用户
默认为0
全部用户:0
up主:1
普通用户:2
认证用户:3 | +| duration | num | 视频时长筛选 | 非必要 | 仅用于搜索视频
默认为0
全部时长:0
10分钟以下:1
10-30分钟:2
30-60分钟:3
60分钟以上:4 | +| tids | num | 视频分区筛选 | 非必要 | 仅用于搜索视频
默认为0
全部分区:0
筛选分区:目标分区tid | +| category_id | num | 专栏及相簿分区筛选 | 非必要 | 搜索结果为专栏时:
默认为0
全部分区:0
动画:2
游戏:1
影视:28
生活:3
兴趣:29
轻小说:16
科技:17
--------
搜索结果为相簿时:
默认为0
全部分区:0
画友:1
摄影:2 | +| page | num | 页码 | 非必要 | 默认为1 | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | --------------------------- | +| code | num | 返回值 | 0:成功
-400:请求错误
-412:请求被拦截 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| --------------- | ---------------------------------------------------------- | ------------ | ------------------------------ | +| seid | num | 搜索seid | | +| page | num | 当前页码 | | +| pagesize | num | 每页条数 | 固定20 | +| numResults | num | 总条数 | 最大值为1000 | +| numPages | num | 总计分页数 | 最大值为50 | +| suggest_keyword | str | 空 | **作用尚不明确** | +| rqt_type | str | search | **作用尚不明确** | +| cost_time | obj | 详细搜索用时 | 大概 | +| exp_list | obj | ??? | **作用尚不明确** | +| egg_hit | num | 0 | **作用尚不明确** | +| pageinfo | obj | 副分页信息 | 只在搜索类型为直播间及主播有效 | +| result | 搜索类型为直播间及主播时:obj
搜索类型为其他时:array | 结果列表 | | +| show_column | num | 0 | **作用尚不明确** | + +`data`中的`cost_time`对象: + +| 字段 | 类型 | 内容 | 备注 | +| -------------------- | ---- | ---- | ---- | +| params_check | str | | | +| illegal_handler | str | | | +| as_response_format | str | | | +| as_request | str | | | +| save_cache | str | | | +| deserialize_response | str | | | +| as_request_format | str | | | +| total | str | | | +| main_handler | str | | | + +`data`中的`pageinfo`对象: + +| 字段 | 类型 | 内容 | 备注 | +| --------- | ---- | ---------- | ---- | +| live_room | obj | 直播间信息 | | +| live_user | obj | 主播信息 | | + +`pageinfo`中的`live_room`及`live_user`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---------- | ---- | -------- | ---- | +| numPages | num | 总计页数 | | +| numResults | num | 总计项数 | | +| total | num | 总计项数 | | +| pages | num | 总计页数 | | + +**搜索类型为直播间及主播时:** + +`data`中的`result`对象: + +| 字段 | 类型 | 内容 | 备注 | +| --------- | ----- | ---------- | ---- | +| live_room | array | 直播间信息 | | +| live_user | array | 主播信息 | | + +`result`中的`live_room`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | --------------------- | ---------------------------------------- | +| 0 | obj | 直播间搜索结果1 | 对象详情见[搜索结果](search_response.md) | +| n | obj | 直播间搜索结果(n+1) | 按照参数指定的顺序排列 | +| …… | obj | …… | …… | + +`result`中的`live_user`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | ------------------- | ---------------------------------------- | +| 0 | obj | 主播搜索结果1 | 对象详情见[搜索结果](search_response.md) | +| n | obj | 主播搜索结果(n+1) | 按照参数指定的顺序排列 | +| …… | obj | …… | …… | + +**搜索类型为其他时:** + +`data`中的`result`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | --------------- | ---------------------------------------- | +| 0 | obj | 搜索结果1 | 对象详情见[搜索结果](search_response.md) | +| n | obj | 搜索结果(n+1) | 按照参数指定的顺序排列 | +| …… | obj | …… | …… | + +**示例:** + +按照关键词` 少年 `搜索视频,默认排序,全部时长,全部分区,第1页 + +```shell +curl -G 'https://api.bilibili.com/x/web-interface/search/type' \ +--data-urlencode 'search_type=video' \ +--data-urlencode 'keyword=少年' \ +--data-urlencode 'order=totalrank' \ +--data-urlencode 'duration=0' \ +--data-urlencode 'tids=0' \ +--data-urlencode 'page=1' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "seid": "9339963973663795027", + "page": 1, + "pagesize": 20, + "numResults": 1000, + "numPages": 50, + "suggest_keyword": "", + "rqt_type": "search", + "cost_time": { + "params_check": "0.000300", + "illegal_handler": "0.000077", + "as_response_format": "0.003071", + "as_request": "0.072525", + "save_cache": "0.001115", + "deserialize_response": "0.000310", + "as_request_format": "0.000319", + "total": "0.077996", + "main_handler": "0.076419" + }, + "exp_list": { + "5520": true + }, + "egg_hit": 0, + "result": [ + { + "type": "video", + "id": 243082173, + "author": "大橘爱吃猫", + "mid": 178932626, + "typeid": "193", + "typename": "MV", + "arcurl": "http://www.bilibili.com/video/av243082173", + "aid": 243082173, + "bvid": "BV1De411p77r", + "title": "梦然-《少年》官方版", + "description": "https://www.ixigua.com/i6822128361129640462/?logTag=EBTB5DTpBmxcfK1GYOOea\n梦然老师《少年》MV官方版,原版:西瓜视频搜索“抖音梦然-《少年》” 抖音搜索 “《少年》MV梦然。", + "arcrank": "0", + "pic": "//i0.hdslb.com/bfs/archive/e25120857a6298d1d4b9e64a805c023b5143c8ff.jpg", + "play": 1037655, + "video_review": 2616, + "favorites": 27341, + "tag": "华语MV,国语MV,梦然,少年,梦想,成长,循环,热歌", + "review": 1265, + "pubdate": 1588407050, + "senddate": 1588407051, + "duration": "4:18", + "badgepay": false, + "hit_columns": [ + "title", + "description", + "tag" + ], + "view_type": "", + "is_pay": 0, + "is_union_video": 0, + "rec_tags": null, + "new_rec_tags": [], + "rank_score": 105415949 + }, + { + "type": "video", + "id": 97387124, + "author": "小石头和孩子们", + "mid": 324914635, + "typeid": "31", + "typename": "翻唱", + "arcurl": "http://www.bilibili.com/video/av97387124", + "aid": 97387124, + "bvid": "BV1B7411R7a8", + "title": "你还是从前的那个少年吗?来自元气少女超甜的《少年》", + "description": "", + "arcrank": "0", + "pic": "//i1.hdslb.com/bfs/archive/8502088a888aeb37df7c4bd1b77d57aabae4f4d3.jpg", + "play": 1953494, + "video_review": 5934, + "favorites": 50883, + "tag": "全民音乐UP主,小石头和孩子们,少年,MV,翻唱,音乐推荐", + "review": 2963, + "pubdate": 1584581433, + "senddate": 1584581434, + "duration": "4:1", + "badgepay": false, + "hit_columns": [ + "title", + "tag" + ], + "view_type": "", + "is_pay": 0, + "is_union_video": 0, + "rec_tags": null, + "new_rec_tags": [], + "rank_score": 101083208 + }, + { + "type": "video", + "id": 200115746, + "author": "似乎一脸懵逼", + "mid": 110939266, + "typeid": "22", + "typename": "鬼畜调教", + "arcurl": "http://www.bilibili.com/video/av200115746", + "aid": 200115746, + "bvid": "BV1Yz411b7A3", + "title": "【马化腾】我还是充钱那个少年,没有一丝丝改变~", + "description": "临时做的小作品\n音源:-提问-", + "arcrank": "0", + "pic": "//i1.hdslb.com/bfs/archive/078a9b50b4df8d25c2f586668741b30348604173.jpg", + "play": 1069066, + "video_review": 3198, + "favorites": 16321, + "tag": "黄绿合战5th-绿队应援,马化腾,鬼畜调教,腾讯,腾讯游戏,QQ,氪金,少年,我还是从前那个少年", + "review": 1438, + "pubdate": 1585650825, + "senddate": 1586310556, + "duration": "1:26", + "badgepay": false, + "hit_columns": [ + "title", + "tag" + ], + "view_type": "", + "is_pay": 0, + "is_union_video": 0, + "rec_tags": null, + "new_rec_tags": [], + "rank_score": 100482941 + }, + { + "type": "video", + "id": 96440301, + "author": "Da圣音乐", + "mid": 353230307, + "typeid": "130", + "typename": "音乐综合", + "arcurl": "http://www.bilibili.com/video/av96440301", + "aid": 96440301, + "bvid": "BV1LE411G7F4", + "title": "最近突然火的《少年》太好听了,单曲循环了很多遍!", + "description": "Hello,大家好,我是阿光\n本期节目为大家盘点三首最近特别火的中文歌曲\n我保证每一首歌都能撩动你的心弦\n来喽,正如:恰同学少年,风华正茂!\n第一首就是歌手梦然发行于2019年的《少年》\n第二首《后会无期》\n第三首《平凡天使》", + "arcrank": "0", + "pic": "//i2.hdslb.com/bfs/archive/bcde6fb455902b367138b7a4026419de0a50a42d.jpg", + "play": 2440158, + "video_review": 2314, + "favorites": 7163, + "tag": "乐评盘点,音乐,少年,后会无期,平凡天使,邓紫棋,热门歌曲,感动,高考,疫情", + "review": 1072, + "pubdate": 1584334818, + "senddate": 1584339026, + "duration": "3:2", + "badgepay": false, + "hit_columns": [ + "title", + "description", + "tag" + ], + "view_type": "", + "is_pay": 0, + "is_union_video": 0, + "rec_tags": null, + "new_rec_tags": [], + "rank_score": 100455675 + }, + { + "type": "video", + "id": 370000842, + "author": "猫耳半圆", + "mid": 485450109, + "typeid": "24", + "typename": "MAD·AMV", + "arcurl": "http://www.bilibili.com/video/av370000842", + "aid": 370000842, + "bvid": "BV1AZ4y1j7t6", + "title": "最近火爆全网的《少年》,你喜欢吗?", + "description": "BGM:少年——梦然\n花了好多心思的作品,求个三连呀φ(>ω<*)", + "arcrank": "0", + "pic": "//i0.hdslb.com/bfs/archive/7437b6f66856b0d87437afd8827939954716cb2f.jpg", + "play": 2257050, + "video_review": 16225, + "favorites": 95864, + "tag": "bilibili新星计划,AMV,MAD,新人向,论BGM的重要性,青春,少年,治愈向,催泪向,多素材", + "review": 3548, + "pubdate": 1585459066, + "senddate": 1585459067, + "duration": "1:37", + "badgepay": false, + "hit_columns": [ + "title", + "description", + "tag" + ], + "view_type": "", + "is_pay": 0, + "is_union_video": 0, + "rec_tags": null, + "new_rec_tags": [], + "rank_score": 100409086 + }, + { + "type": "video", + "id": 837972700, + "author": "Da圣音乐", + "mid": 353230307, + "typeid": "130", + "typename": "音乐综合", + "arcurl": "http://www.bilibili.com/video/av837972700", + "aid": 837972700, + "bvid": "BV1Ug4y1z7oN", + "title": "终于找到日语版《少年》了!开口就是恋爱的味道,岛国也要被洗脑", + "description": "终于找到日语版《少年》了!开口就是恋爱的味道,岛国也要被洗脑", + "arcrank": "0", + "pic": "//i2.hdslb.com/bfs/archive/413b5417418c0e1107b3f79a284d20040b8bb4e9.jpg", + "play": 1390981, + "video_review": 2344, + "favorites": 11330, + "tag": "乐评盘点,梦然,少年,下山,日语,斋藤飞鸟,告白气球,花泽香菜,火影忍者,海贼王", + "review": 988, + "pubdate": 1588239130, + "senddate": 1588241127, + "duration": "3:12", + "badgepay": false, + "hit_columns": [ + "title", + "description", + "tag" + ], + "view_type": "", + "is_pay": 0, + "is_union_video": 0, + "rec_tags": null, + "new_rec_tags": [], + "rank_score": 100407822 + }, + { + "type": "video", + "id": 285145715, + "author": "潮汕好男人", + "mid": 19071708, + "typeid": "22", + "typename": "鬼畜调教", + "arcurl": "http://www.bilibili.com/video/av285145715", + "aid": 285145715, + "bvid": "BV1ac411h7BC", + "title": "【全明星】少年", + "description": "我还是充钱那个少年,又大又圆的少年\nBGM:少年\n制作:MC传奇(潮汕好男人/永远的MG)\n\n黄绿合战Day.3 对阵作品:BV1qQ4y1K7Gs, 投票传送门:https://www.bilibili.com/blackboard/activity-yellowVSgreen5th.html", + "arcrank": "0", + "pic": "//i1.hdslb.com/bfs/archive/911faee003fc828c46497cbd58fab0e22c7554f8.jpg", + "play": 3689254, + "video_review": 38262, + "favorites": 115408, + "tag": "鬼畜调教,鬼畜,黄绿合战,少年,黄绿合战5th,全明星", + "review": 4560, + "pubdate": 1586404524, + "senddate": 1592816392, + "duration": "3:1", + "badgepay": false, + "hit_columns": [ + "title", + "description", + "tag" + ], + "view_type": "", + "is_pay": 0, + "is_union_video": 0, + "rec_tags": null, + "new_rec_tags": [], + "rank_score": 100254286 + }, + { + "type": "video", + "id": 51475845, + "author": "吃你的馒头", + "mid": 25770774, + "typeid": "137", + "typename": "明星", + "arcurl": "http://www.bilibili.com/video/av51475845", + "aid": 51475845, + "bvid": "BV1K4411i7mw", + "title": "【日本少年混剪】氧气/心动瞬间/薄荷味的夏天要来了", + "description": "个人喜欢的霓虹国少年们混剪\n\n喜欢的少年会让我想起夏天,淡淡的薄荷味在校服衬衫晕开,笑容在空气里变成汽水,砰的一声打开砸向心脏。\n\nBGM:米津玄师/菅田将晖《灰色与青》\n\n道枝骏佑/新田真剑佑/菅田将晖\n坂口健太郎/古川雄辉/山崎贤人\n山田凉介/片寄凉太/贺来贤人\n龙星凉/佐藤健/吉沢亮\n柏原崇/锦户亮\n\n不按出场顺序(剪得昏天黑地完全记不住)\n\n禁二改转载出站,微博非本人发布皆为盗取视频,请随手举报或@吃你的馒头。\n\n原创作品不易,谢谢喜欢和理解。", + "arcrank": "0", + "pic": "//i2.hdslb.com/bfs/archive/93ae9d66eaf62161f1f12d0102b6c2d66ebe05a9.jpg", + "play": 1842547, + "video_review": 10738, + "favorites": 136384, + "tag": "明星,龙星凉,新田真剑佑,菅田将晖,古川雄辉,片寄凉太,柏原崇,山崎贤人,道枝骏佑,贺来贤人,山田凉介,锦户亮", + "review": 2385, + "pubdate": 1556992133, + "senddate": 1559716273, + "duration": "3:5", + "badgepay": false, + "hit_columns": [ + "title", + "description" + ], + "view_type": "", + "is_pay": 0, + "is_union_video": 0, + "rec_tags": null, + "new_rec_tags": [], + "rank_score": 100239604 + }, + { + "type": "video", + "id": 967814999, + "author": "沙拉酱merry", + "mid": 492472, + "typeid": "31", + "typename": "翻唱", + "arcurl": "http://www.bilibili.com/video/av967814999", + "aid": 967814999, + "bvid": "BV1Hp4y1y7iQ", + "title": "真的不是原唱?!《少年》超A御姐音翻唱", + "description": "少年\n词/曲/原唱/Rap:梦然\n和声编写:海青/梦然\n和声演唱:海青/梦然\n翻唱:沙拉酱merry\n后期:小敏\n这首歌真好听!\nPs:由于这首歌的难度和换气问题,音频和视频是分开录的所以会有口型差异,敬请谅解!!!大家听歌愉快~", + "arcrank": "0", + "pic": "//i0.hdslb.com/bfs/archive/565e8cdc98dab13dfa547cb13744410964f2fc00.jpg", + "play": 959598, + "video_review": 2447, + "favorites": 15166, + "tag": "被才华封印的颜值,少年,翻唱,女声,沙拉酱merry,御姐音", + "review": 1371, + "pubdate": 1587114006, + "senddate": 1587114030, + "duration": "7:58", + "badgepay": false, + "hit_columns": [ + "title", + "description", + "tag" + ], + "view_type": "", + "is_pay": 0, + "is_union_video": 0, + "rec_tags": null, + "new_rec_tags": [], + "rank_score": 100235329 + }, + { + "type": "video", + "id": 455021866, + "author": "鲨然鲨然", + "mid": 435476320, + "typeid": "126", + "typename": "人力VOCALOID", + "arcurl": "http://www.bilibili.com/video/av455021866", + "aid": 455021866, + "bvid": "BV195411673y", + "title": "【川普】我还是曾经那个少年", + "description": "鬼畜娱乐,请勿当真哦\n希望大家能开怀一笑\n笑了的话别忘了点赞哦", + "arcrank": "0", + "pic": "//i0.hdslb.com/bfs/archive/7cee31977deb39f297d2d2598e736d26ed337568.jpg", + "play": 3845319, + "video_review": 34660, + "favorites": 74705, + "tag": "黄绿合战5th-黄队应援,鬼畜调教,人力VOCALOID,自制,UTAU,川普,搞笑,少年,恶搞,青春", + "review": 4469, + "pubdate": 1585651085, + "senddate": 1586266006, + "duration": "2:56", + "badgepay": false, + "hit_columns": [ + "title", + "tag" + ], + "view_type": "", + "is_pay": 0, + "is_union_video": 0, + "rec_tags": null, + "new_rec_tags": [], + "rank_score": 100163091 + }, + { + "type": "video", + "id": 753055295, + "author": "大门E", + "mid": 735734, + "typeid": "31", + "typename": "翻唱", + "arcurl": "http://www.bilibili.com/video/av753055295", + "aid": 753055295, + "bvid": "BV1xk4y1k7aw", + "title": "【完整版日语版《少年》本尊来了】竟是国人元老唱见~", + "description": "词:lolo2513&梦然\n曲:梦然\n编曲:张亮\n混音:顾潇予\nPV:大门E\n之前唱了一个片段不料被许多人误以为《少年》原版是日本歌曲改编。因为没有版权一直没full,如今终于得到梦然老师(版权方)的认可及改编授权,终于出来了,再次感谢~!以我的key重新编曲,好哥们儿@lolo2513 老师的完整版日文填词,满满的少年jump既视感,唱的时候满脑子鸣人路飞,作为一个十五年的国人老唱见能被大家认可一首ACG歌曲简直泪流满面,希望大家能够喜欢~", + "arcrank": "0", + "pic": "//i1.hdslb.com/bfs/archive/363ece7b0fd61d1eb48a4bc3c2e804446b46ca1d.jpg", + "play": 676181, + "video_review": 1209, + "favorites": 31147, + "tag": "bilibili新星计划,少年,日语歌,翻唱", + "review": 1964, + "pubdate": 1588932007, + "senddate": 1588957659, + "duration": "4:1", + "badgepay": false, + "hit_columns": [ + "title", + "description", + "tag" + ], + "view_type": "", + "is_pay": 0, + "is_union_video": 0, + "rec_tags": null, + "new_rec_tags": [], + "rank_score": 100152701 + }, + { + "type": "video", + "id": 328601322, + "author": "萌宠教主", + "mid": 23976014, + "typeid": "24", + "typename": "MAD·AMV", + "arcurl": "http://www.bilibili.com/video/av328601322", + "aid": 328601322, + "bvid": "BV1EA411i7MD", + "title": "用三十部动漫唱一首《少年》——你长大了,你还在追番吗?", + "description": "BGM:少年\n【剪辑,填词】萌宠教主\n【演唱】浅若_natsu", + "arcrank": "0", + "pic": "//i0.hdslb.com/bfs/archive/eb7c1be356fd3bc6a947bb6398b6f02fc961bec2.jpg", + "play": 381018, + "video_review": 2881, + "favorites": 28530, + "tag": "少年,AMV,多素材,MAD,综漫,混剪,梦然,催泪", + "review": 922, + "pubdate": 1592020805, + "senddate": 1592020836, + "duration": "4:5", + "badgepay": false, + "hit_columns": [ + "title", + "description", + "tag" + ], + "view_type": "", + "is_pay": 0, + "is_union_video": 0, + "rec_tags": null, + "new_rec_tags": [], + "rank_score": 100129139 + }, + { + "type": "video", + "id": 838737756, + "author": "bili_148834382", + "mid": 148834382, + "typeid": "138", + "typename": "搞笑", + "arcurl": "http://www.bilibili.com/video/av838737756", + "aid": 838737756, + "bvid": "BV1Ug4y1v7mU", + "title": "大爷:我还是从前那个少年,没有一丝丝改变!", + "description": "大爷:我还是从前那个少年,没有一丝丝改变!", + "arcrank": "0", + "pic": "//i2.hdslb.com/bfs/archive/912cb238879558119d2f129438d7c71bb4372f9e.jpg", + "play": 7052, + "video_review": 18, + "favorites": 17, + "tag": "逗比,挑战,卧槽,沙雕,搞笑,大爷,厉害了,不一样呀,秀", + "review": 8, + "pubdate": 1593489906, + "senddate": 1593489906, + "duration": "1:34", + "badgepay": false, + "hit_columns": [ + "title", + "description" + ], + "view_type": "", + "is_pay": 0, + "is_union_video": 0, + "rec_tags": null, + "new_rec_tags": [], + "rank_score": 100123108 + }, + { + "type": "video", + "id": 541162396, + "author": "鬼兄奇谈", + "mid": 94641579, + "typeid": "124", + "typename": "社科人文", + "arcurl": "http://www.bilibili.com/video/av541162396", + "aid": 541162396, + "bvid": "BV1Bi4y1G7mo", + "title": "少年黑帮“新龙会”覆灭记!史上最“中二”的黑社会,作案后竟留下错别字?", + "description": "少年黑帮“新龙会”覆灭记!史上最“中二”的黑社会,作案后竟留下错别字?\n视频内容及素材均来源于网络", + "arcrank": "0", + "pic": "//i2.hdslb.com/bfs/archive/4c0c8d8f720119e3087b6b02025c3d957d642781.jpg", + "play": 150747, + "video_review": 627, + "favorites": 487, + "tag": "犯罪,案件,奇闻,全能打卡挑战,学生,法制,黑社会,中二,违法", + "review": 438, + "pubdate": 1593596709, + "senddate": 1593596710, + "duration": "8:42", + "badgepay": false, + "hit_columns": [ + "title", + "description" + ], + "view_type": "", + "is_pay": 0, + "is_union_video": 0, + "rec_tags": null, + "new_rec_tags": [], + "rank_score": 100120066 + }, + { + "type": "video", + "id": 413715309, + "author": "wkkm13", + "mid": 4056950, + "typeid": "76", + "typename": "美食圈", + "arcurl": "http://www.bilibili.com/video/av413715309", + "aid": 413715309, + "bvid": "BV1gV41167WS", + "title": "梦开始的地方,一年前那个不会剪辑的少年阿强。", + "description": "转自强哥第一个视频,那时候他还叫“浮华d假象”。\n梦开始的地方,那个不会剪辑的少年。", + "arcrank": "0", + "pic": "//i0.hdslb.com/bfs/archive/73772867e6a4ebaf66a12c73f1bc0d7a1f0fa085.jpg", + "play": 149332, + "video_review": 332, + "favorites": 86, + "tag": "cram阿强,泪目,美食,吃播,梦想,剪辑", + "review": 437, + "pubdate": 1593604848, + "senddate": 1593604848, + "duration": "5:31", + "badgepay": false, + "hit_columns": [ + "title", + "description" + ], + "view_type": "", + "is_pay": 0, + "is_union_video": 0, + "rec_tags": null, + "new_rec_tags": [], + "rank_score": 100102196 + }, + { + "type": "video", + "id": 838507935, + "author": "木子山上起酥酥", + "mid": 185924591, + "typeid": "75", + "typename": "动物圈", + "arcurl": "http://www.bilibili.com/video/av838507935", + "aid": 838507935, + "bvid": "BV1Jg4y1q77h", + "title": "少年人,这是修行。", + "description": "微博", + "arcrank": "0", + "pic": "//i1.hdslb.com/bfs/archive/8eae881830a5fc2be1434781e086f7191082cec8.jpg", + "play": 120068, + "video_review": 43, + "favorites": 312, + "tag": "逗比,正能量,水豚,动物", + "review": 155, + "pubdate": 1592366769, + "senddate": 1592366769, + "duration": "0:15", + "badgepay": false, + "hit_columns": [ + "title" + ], + "view_type": "", + "is_pay": 0, + "is_union_video": 0, + "rec_tags": null, + "new_rec_tags": [], + "rank_score": 100101593 + }, + { + "type": "video", + "id": 47749359, + "author": "Da圣音乐", + "mid": 353230307, + "typeid": "130", + "typename": "音乐综合", + "arcurl": "http://www.bilibili.com/video/av47749359", + "aid": 47749359, + "bvid": "BV12b411W7nF", + "title": "16岁中国少年韩国综艺上怒怼:老子来自中国!现场一片哗然", + "description": "16岁中国少年韩国综艺上怒怼:老子来自中国!现场一片哗然", + "arcrank": "0", + "pic": "//i1.hdslb.com/bfs/archive/171d9b27a0b9823b71894008117501014dd561ba.jpg", + "play": 5042589, + "video_review": 3949, + "favorites": 26065, + "tag": "说唱,韩国,中国,音乐选集,Rap,瞧不起,DISS,迪亚克,D.ark,综艺节目", + "review": 2793, + "pubdate": 1553926233, + "senddate": 1553926233, + "duration": "2:38", + "badgepay": false, + "hit_columns": [ + "title", + "description" + ], + "view_type": "", + "is_pay": 0, + "is_union_video": 0, + "rec_tags": null, + "new_rec_tags": [], + "rank_score": 100101064 + }, + { + "type": "video", + "id": 82363754, + "author": "在下甘柒辣", + "mid": 374835894, + "typeid": "24", + "typename": "MAD·AMV", + "arcurl": "http://www.bilibili.com/video/av82363754", + "aid": 82363754, + "bvid": "BV1qJ411V7QH", + "title": "我已不再是少年,但你们终究活在我心里", + "description": "国动会越来越好的,它由我们一同注目它的成长。\nBGM: start\n可否给个币,给这个肝疼的up点鼓励( ̄y▽ ̄)~*", + "arcrank": "0", + "pic": "//i2.hdslb.com/bfs/archive/2c7afbc835dbce9f554eb1b21b583ef6bed34cce.jpg", + "play": 1588667, + "video_review": 6782, + "favorites": 37909, + "tag": "国产动画,国漫良心,国漫,国漫王者归来,星游记,镇魂街,灵笼,刺客伍六七,大圣归来,哪吒", + "review": 1190, + "pubdate": 1578320753, + "senddate": 1582999612, + "duration": "3:44", + "badgepay": false, + "hit_columns": [ + "title" + ], + "view_type": "", + "is_pay": 0, + "is_union_video": 0, + "rec_tags": null, + "new_rec_tags": [], + "rank_score": 100099970 + }, + { + "type": "video", + "id": 413742409, + "author": "音乐Fans小琼", + "mid": 342943435, + "typeid": "130", + "typename": "音乐综合", + "arcurl": "http://www.bilibili.com/video/av413742409", + "aid": 413742409, + "bvid": "BV1bV41167Un", + "title": "《少年》霸占7周热歌第一,如今终于被新的神曲打破!网友:听吐了!", + "description": "bgm 纸砚zyan《画皮》\n《惊雷》MC六道\n《素颜》许嵩\n《麻雀》李荣浩\n《点歌的人》海来阿木\n《桥边姑娘》海伦 \n《旧梦一场》阿悠悠\n《世界这么大还是遇见你》程响(翻唱)\n《后来遇见他》胡66\n《处处吻》杨千嬅\n《少年》梦然", + "arcrank": "0", + "pic": "//i2.hdslb.com/bfs/archive/f004565df82a9ac3a8a168b4c12e244861f1d812.jpg", + "play": 12363, + "video_review": 137, + "favorites": 100, + "tag": "乐评盘点,全能打卡挑战,翻唱,许嵩,杨千嬅,李荣浩,喊麦,民谣,热歌,神曲", + "review": 71, + "pubdate": 1593523679, + "senddate": 1593576757, + "duration": "3:37", + "badgepay": false, + "hit_columns": [ + "title", + "description" + ], + "view_type": "", + "is_pay": 0, + "is_union_video": 0, + "rec_tags": null, + "new_rec_tags": [], + "rank_score": 100097483 + }, + { + "type": "video", + "id": 625380628, + "author": "涩廊", + "mid": 178366933, + "typeid": "137", + "typename": "明星", + "arcurl": "http://www.bilibili.com/video/av625380628", + "aid": 625380628, + "bvid": "BV1Xt4y127bX", + "title": "这TM才叫日系美少年!", + "description": "道枝骏佑,02年霓虹国弟弟!杰尼斯美少年!没长残的童星代表!身高现在180+了!绰号米七(谐音)\n出演过电视剧《成为母亲》《我的裙子去哪了》\n\n米七是一个超级帅气可爱的男孩子!一直都在努力提升自己,请敬请期待他未来的作品!\n米七米七!未来可期!\n跪求三连三连三连三连三连三连三连三连三连三连三连三连三连三连三连三连三连三连三连三连三连三连三连三连三连", + "arcrank": "0", + "pic": "//i2.hdslb.com/bfs/archive/9d727949eed2d82eb0561d08cbb3e28ac6603532.jpg", + "play": 768179, + "video_review": 1595, + "favorites": 29494, + "tag": "全能打卡挑战,杰尼斯,美少年,道枝骏佑,日系,米七", + "review": 1545, + "pubdate": 1588381204, + "senddate": 1590253109, + "duration": "1:22", + "badgepay": false, + "hit_columns": [ + "title", + "description", + "tag" + ], + "view_type": "", + "is_pay": 0, + "is_union_video": 0, + "rec_tags": null, + "new_rec_tags": [], + "rank_score": 100094816 + } + ], + "show_column": 0 + } +} +``` + +
diff --git a/docs/search/search_response.md b/docs/search/search_response.md new file mode 100644 index 0000000000..ed064d25e0 --- /dev/null +++ b/docs/search/search_response.md @@ -0,0 +1,778 @@ +# 搜索响应条目 + +本页为搜索结果数组`result`中的对象的说明 + +--- + +- [对象类型1-结果为视频](#对象类型1-结果为视频) +- [对象类型2-结果为番剧&影视](#对象类型2-结果为番剧&影视) +- [对象类型3-结果为直播间](#对象类型3-结果为直播间) +- [对象类型4-结果为主播](#对象类型4-结果为主播) +- [对象类型5-结果为专栏](#对象类型5-结果为专栏) +- [对象类型6-结果为话题](#对象类型6-结果为话题) +- [对象类型7-结果为用户](#对象类型7-结果为用户) +- [对象类型8-结果为相簿](#对象类型8-结果为相簿) + +--- + +## 对象类型1-结果为视频 + +| 字段 | 类型 | 内容 | 备注 | +| -------------- | ----- | -------------- | ----------------------------------------- | +| type | str | 结果类型 | 固定为video | +| id | num | 结果 | 为稿件avid | +| author | str | UP主昵称 | | +| mid | num | UP主mid | | +| typeid | str | 视频分区tid | | +| typename | str | 视频子分区名 | | +| arcurl | str | 视频重定向url | | +| aid | num | 稿件avid | | +| bvid | str | 稿件bvid | | +| title | str | 视频标题 | 关键字用xml标签``标注 | +| description | str | 视频简介 | | +| arcrank | str | 0 | **作用尚不明确** | +| pic | str | 视频封面url | | +| play | num | 视频播放量 | | +| video_review | num | 视频弹幕量 | | +| favorites | num | 视频收藏数 | | +| tag | str | 视频TAG | 每项TAG用`,`分隔 | +| review | num | 视频评论数 | | +| pubdate | num | 视频投稿时间 | 时间戳 | +| senddate | num | 视频发布时间 | 时间戳 | +| duration | str | 视频时长 | HH:MM | +| badgepay | bool | false | **作用尚不明确** | +| hit_columns | array | 关键字匹配类型 | | +| view_type | str | 空 | **作用尚不明确** | +| is_pay | num | 0 | **作用尚不明确** | +| is_union_video | num | 是否为合作视频 | 0:否
1:是 | +| rec_tags | null | - | **作用尚不明确** | +| new_rec_tags | array | 空 | **作用尚不明确** | +| rank_score | num | 结果排序量化值 | | + +`视频条目`中的`hit_columns`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | --------------- | ------------------------------------------------------------ | +| 0 | str | 匹配类型1 | title:标题匹配
description:简介匹配
author:UP主昵称匹配
tag:视频TAG匹配 | +| n | str | 匹配类型(n+1) | 项数为同时匹配到的类型数 | +| …… | str | …… | …… | + +**示例:** + +
+查看响应示例: + +```json +{ + "type": "video", + "id": 78977417, + "author": "MitchieM", + "mid": 5669526, + "typeid": "30", + "typename": "VOCALOID·UTAU", + "arcurl": "http://www.bilibili.com/video/av78977417", + "aid": 78977417, + "bvid": "BV1KJ411C7Un", + "title": "【Mitchie M】初音未来《买买买》【2020拜年祭单品】", + "description": "bilibili拜年祭のために、ダンスミュージックと中国の伝統楽器を組み合わせた曲を作りました。歌詞に「买买买」を使ったユニークな曲が出来上がったので、最高のクオリティーのMVと共に楽しんでもらえたら嬉しいです!\n为哔哩哔哩拜年祭制作了一首电子舞曲与中国传统乐器相结合的音乐,歌词是描写【买买买】的独特作品,和最棒的PV一起享受吧!\n\n▶︎ 舞蹈视频 [BV1pA411i7J6]", + "arcrank": "0", + "pic": "//i1.hdslb.com/bfs/archive/f0403bbd1ff3bad1df79aaa159d9e1cfb52c92de.jpg", + "play": 2915520, + "video_review": 14572, + "favorites": 114102, + "tag": "2020拜年祭单品,买买买,初音未来", + "review": 6124, + "pubdate": 1579877678, + "senddate": 1593099008, + "duration": "4:2", + "badgepay": false, + "hit_columns": [ + "title", + "description", + "tag" + ], + "view_type": "", + "is_pay": 0, + "is_union_video": 0, + "rec_tags": null, + "new_rec_tags": [], + "rank_score": 109020056 +} +``` + +
+ +## 对象类型2-结果为番剧&影视 + +| 字段 | 类型 | 内容 | 备注 | +| ---------------- | ------------------------------- | ---------------------------- | ------------------------------------------------------------ | +| type | str | 结果类型 | media_bangumi:番剧
media_ft:影视 | +| media_id | num | 剧集mdid | | +| season_id | num | 剧集ssid | | +| title | str | 剧集标题 | 关键字用xml标签``标注 | +| org_title | str | 剧集原名 | 关键字用xml标签``标注
可为空 | +| cover | str | 剧集封面url | | +| media_type | num | 剧集类型 | 1:番剧
2:电影
3:纪录片
4:国创
5:电视剧
7:综艺 | +| areas | str | 地区 | | +| styles | str | 风格 | | +| cv | str | 声优 | | +| staff | str | 制作组 | | +| play_state | num | 0 | **作用尚不明确** | +| goto_url | str | 剧集重定向url | | +| desc | str | 简介 | | +| corner | num | 角标有无 | 2:无
13:有 | +| pubtime | num | 开播时间 | 时间戳 | +| media_mode | num | 2 | **作用尚不明确** | +| is_avid | bool | false | **作用尚不明确** | +| fix_pubtime_str | str | 开播时间重写信息 | 优先级高于`pubtime`
可为空 | +| media_score | 有效时:obj
无效时:null | 评分信息 | | +| hit_columns | 有效时:array
无效时:null | 关键字匹配类型 | | +| all_net_name | str | 空 | **作用尚不明确** | +| all_net_icon | str | 空 | **作用尚不明确** | +| all_net_url | str | 空 | **作用尚不明确** | +| angle_title | str | 角标内容 | | +| angle_color | num | 角标颜色 | 0:红色
2:橙色 | +| display_info | array | 剧集标志信息 | | +| hit_epids | str | 关键字匹配分集标题的分集epid | 多个用`,`分隔 | +| pgc_season_id | num | 剧集ssid | | +| season_type | num | 剧集类型 | 1:番剧
2:电影
3:纪录片
4:国创
5:电视剧
7:综艺 | +| season_type_name | str | 剧集类型文字 | | +| selection_style | str | 分集选择按钮风格 | horizontal:横排式
grid:按钮式 | +| ep_size | num | 结果匹配的分集数 | | +| url | str | 剧集重定向url | | +| button_text | str | 观看按钮文字 | | +| is_follow | num | 是否追番 | 需要登录(SESSDATA)
未登录则恒为0
0:否
1:是 | +| is_selection | num | 1 | **作用尚不明确** | +| eps | array | 结果匹配的分集信息 | | +| badges | array | 剧集标志信息 | | + +`番剧条目`中的`media_score`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---------- | ---- | ------------ | ---- | +| user_count | num | 总计评分人数 | | +| score | num | 评分 | | + +`番剧条目`中的`hit_columns`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | --------------- | -------------------------------------- | +| 0 | str | 匹配类型1 | title:标题匹配
org_title:原标题 | +| n | str | 匹配类型(n+1) | 项数为同时匹配到的类型数 | +| …… | str | …… | …… | + +`番剧条目`中的`display_info`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | ------------ | ---- | +| 0 | obj | 剧集标志信息 | | + +`display_info`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------------------ | ---- | ------------ | ------ | +| bg_color_night | str | 夜间背景颜色 | 颜色码 | +| text | str | 剧集标志 | 颜色码 | +| border_color | str | 背景颜色 | 颜色码 | +| bg_style | num | 1 | | +| text_color | str | 文字颜色 | 颜色码 | +| bg_color | str | 背景颜色 | 颜色码 | +| text_color_night | str | 夜间文字颜色 | 颜色码 | +| border_color_night | str | 夜间背景颜色 | 颜色码 | + +`番剧条目`中的`eps`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | --------------- | ------------------------ | +| 0 | obj | 分集信息1 | | +| n | obj | 分集信息(n+1) | 项数为同时匹配到的分集数 | +| …… | obj | …… | …… | + +`eps`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------------ | ----- | ------------- | ---- | +| id | num | 分集epid | | +| cover | str | 分集封面url | | +| title | str | 完整标题 | | +| url | str | 分集重定向url | | +| release_date | str | 空 | | +| badges | array | 分集标志 | | +| index_title | str | 短标题 | | +| long_title | str | 单集标题 | | + +`番剧条目`中的`badges`数组(同`eps`数组中的对象中的`badges`数组): + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | ------------ | ---- | +| 0 | obj | 剧集标志信息 | | + +`badges`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------------------ | ---- | ------------ | ------ | +| text | str | 剧集标志 | 颜色码 | +| text_color | str | 文字颜色 | 颜色码 | +| text_color_night | str | 夜间文字颜色 | 颜色码 | +| bg_color | str | 背景颜色 | 颜色码 | +| bg_color_night | str | 夜间背景颜色 | 颜色码 | +| border_color | str | 空 | | +| border_color_night | str | 空 | | +| bg_style | num | 1 | | + +**示例:** + +
+查看响应示例: + +```json +{ + "media_id": 28224080, + "season_id": 29310, + "type": "media_bangumi", + "title": "异度侵入 ID:INVADED", + "org_title": "イド:インヴェイデッド", + "cover": "//i0.hdslb.com/bfs/bangumi/image/9bf9e66968f85b33ec3769a16c86b36dc984abbc.png", + "media_type": 1, + "areas": "日本", + "styles": "原创/科幻/推理", + "cv": "酒井户:津田健次郎\n百贵:细谷佳正\n富久田:竹内良太\n本堂町:M・A・O\n东乡:布里德卡特·塞拉·惠美\n早濑浦:村治学\n白岳:近藤隆\n羽二重:岩濑周平\n若鹿:榎木淳弥\n国府:加藤涉\n西村:落合福嗣\n松冈:西凛太朗 ", + "staff": "监督:青木英\n脚本:舞城王太郎\n角色原案:小玉有起\n角色设计:碇谷敦\n美术:曽野由大\n作画监督:又贺大介\n副监督:久保田雄大\n色彩设计:千叶絵美\n动画制作:NAZ", + "play_state": 0, + "goto_url": "https://www.bilibili.com/bangumi/play/ss29310/", + "desc": "本片讲述利用能检测出人们杀意的装置以及利用思想粒子做出的“井”,来探知事件真相的科幻故事。", + "corner": 13, + "pubtime": 1578240000, + "media_mode": 2, + "is_avid": false, + "fix_pubtime_str": "", + "media_score": { + "user_count": 275391, + "score": 9.8 + }, + "hit_columns": [ + "title" + ], + "all_net_name": "", + "all_net_icon": "", + "all_net_url": "", + "angle_title": "会员专享", + "angle_color": 0, + "display_info": [ + { + "bg_color_night": "#BB5B76", + "text": "会员专享", + "border_color": "#FB7299", + "bg_style": 1, + "text_color": "#FFFFFF", + "bg_color": "#FB7299", + "text_color_night": "#E5E5E5", + "border_color_night": "#BB5B76" + } + ], + "hit_epids": "", + "pgc_season_id": 29310, + "season_type": 1, + "season_type_name": "番剧", + "selection_style": "grid", + "ep_size": 13, + "url": "https://www.bilibili.com/bangumi/play/ss29310", + "button_text": "立即观看", + "is_follow": 1, + "is_selection": 1, + "eps": [ + { + "id": 307446, + "cover": "http://i0.hdslb.com/bfs/archive/4a1895e5b675209b6948dc321c3cc4991a6262bc.jpg", + "title": "1", + "url": "https://www.bilibili.com/bangumi/play/ep307446", + "release_date": "", + "badges": [], + "index_title": "1", + "long_title": "JIGSAWED 碎片世界" + }, + { + "id": 307447, + "cover": "http://i0.hdslb.com/bfs/archive/c66175203fdb6f54a9fb3accd793da0341b3140a.jpg", + "title": "2", + "url": "https://www.bilibili.com/bangumi/play/ep307447", + "release_date": "", + "badges": [ + { + "text": "会员", + "text_color": "#FFFFFF", + "text_color_night": "#E5E5E5", + "bg_color": "#FB7299", + "bg_color_night": "#BB5B76", + "border_color": "", + "border_color_night": "", + "bg_style": 1 + } + ], + "index_title": "2", + "long_title": "JIGSAWED Ⅱ 碎片世界" + }, + ………… + ], + "badges": [ + { + "text": "会员专享", + "text_color": "#FFFFFF", + "text_color_night": "#E5E5E5", + "bg_color": "#FB7299", + "bg_color_night": "#BB5B76", + "border_color": "", + "border_color_night": "", + "bg_style": 1 + } + ] +}, +``` + +
+ +## 对象类型3-结果为直播间 + +| 字段 | 类型 | 内容 | 备注 | +| ----------- | ----- | -------------- | ----------------------------------------- | +| type | str | 结果类型 | 固定为live_room | +| rank_offset | num | 搜索结果排名值 | | +| uid | num | 主播mid | | +| tas | str | 直播间TAG | 多个用`,`分隔 | +| hit_columns | array | 关键字匹配类型 | | +| live_time | str | 开播时间 | YYYY-MM-DD HH:MM:SS | +| cate_name | str | 子分区名 | | +| live_status | num | 1 | | +| uname | str | 主播昵称 | | +| uface | str | 主播头像url | | +| user_cover | str | 直播间封面url | | +| short_id | num | 0 | **作用尚不明确** | +| area | num | 1 | **作用尚不明确** | +| title | str | 直播间标题 | 关键字用xml标签``标注 | +| cover | str | 关键帧截图url | | +| online | num | 在线人数 | | +| rank_index | num | 0 | **作用尚不明确** | +| rank_score | num | 结果排序量化值 | | +| roomid | num | 直播间id | | +| attentions | num | 主播粉丝数 | | + +`直播间条目`中的`hit_columns`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | --------------- | ------------------------------------------------------------ | +| 0 | str | 匹配类型1 | title:直播间标题匹配
cate_name:子分区名匹配
uname:主播昵称匹配 | +| n | str | 匹配类型(n+1) | 项数为同时匹配到的类型数 | +| …… | str | …… | …… | + +**示例:** + +
+查看响应示例: + +```json +{ + "rank_offset": 1, + "uid": 682508, + "tags": "minecraft,声控,我的世界,虚拟主播,助眠", + "hit_columns": [ + "title", + "cate_name" + ], + "live_time": "2020-07-03 19:08:46", + "cate_name": "我的世界", + "live_status": 1, + "uname": "超心塞的十六", + "uface": "//i0.hdslb.com/bfs/face/dc33ad47b5e299c08bea9cfe565373213012599c.jpg", + "user_cover": "//i0.hdslb.com/bfs/live/new_room_cover/cbc7b1d0ba181df2c714c2e45ab00937129d3c5c.jpg", + "short_id": 148, + "area": 1, + "type": "live_room", + "title": "MC 1.16 极限服", + "cover": "//i0.hdslb.com/bfs/live/keyframe07031915000000010313u3z18a.jpg", + "online": 34702, + "rank_index": 0, + "rank_score": 34702, + "roomid": 10313, + "attentions": 317864 +} +``` + +
+ +## 对象类型4-结果为主播 + +| 字段 | 类型 | 内容 | 备注 | +| ----------- | ----- | -------------- | ------------------------------------------------------ | +| type | str | 结果类型 | 固定为live_user | +| rank_offset | num | 搜索结果排名值 | | +| uid | num | 主播mid | | +| tas | str | 直播间TAG | 多个用`,`分隔 | +| live_time | str | 开播时间 | YYYY-MM-DD HH:MM:SS
如未开播为0000-00-00 00:00:00 | +| hit_columns | array | 关键字匹配类型 | | +| live_status | num | 是否开播 | 0:未开播
1:已开播 | +| area | num | 1 | **作用尚不明确** | +| is_live | bool | 是否开播 | false:未开播
true:已开播 | +| uname | str | 主播昵称 | 关键字用xml标签``标注 | +| uface | str | 主播头像url | | +| rank_index | num | 0 | **作用尚不明确** | +| rank_score | num | 结果排序量化值 | | +| attentions | num | 主播粉丝数 | | + +`主播条目`中的`hit_columns`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | --------------- | ------------------------ | +| 0 | str | 匹配类型1 | uname:主播昵称匹配 | +| n | str | 匹配类型(n+1) | 项数为同时匹配到的类型数 | +| …… | str | …… | …… | + +**示例:** + +
+查看响应示例: + +```json +{ + "rank_offset": 1, + "uid": 322892, + "tags": "鬼畜,游戏,瞎扯淡,轰炸挂", + "type": "live_user", + "live_time": "2020-07-03 17:57:30", + "hit_columns": [ + "uname" + ], + "live_status": 1, + "area": 1, + "is_live": true, + "uname": "痒局长", + "uface": "//i2.hdslb.com/bfs/face/bcdf640faa16ebaacea1d4c930baabaec9087a80.jpg", + "rank_index": 0, + "rank_score": 2620790, + "roomid": 5441, + "attentions": 2570790 +} +``` + +
+ +## 对象类型5-结果为专栏 + +| 字段 | 类型 | 内容 | 备注 | +| ------------- | ----- | -------------- | ---------------- | +| type | str | 结果类型 | 固定为article | +| rank_offset | num | 搜索结果排名值 | | +| pub_time | num | 投稿时间 | 时间戳 | +| like | num | 获赞数 | | +| title | str | 标题 | | +| mid | num | UP主mid | | +| image_urls | array | 封面图组 | | +| template_id | num | ??? | **作用尚不明确** | +| category_id | num | 专栏分区 | | +| view | num | 阅读数 | | +| reply | num | 评论数 | | +| rank_index | num | 0 | **作用尚不明确** | +| desc | str | 文章预览 | | +| rank_score | num | 结果排序量化值 | | +| id | num | 专栏cvid | | +| category_name | str | 子分区名 | | + +`专栏条目`中的`covers`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | --------------- | ---- | +| 0 | str | 封面图片1 | | +| n | str | 封面图片(n+1) | | +| …… | str | …… | | + +**示例:** + +
+查看响应示例: + +```json +{ + "pub_time": 1582123245, + "like": 113, + "title": "【洛水闲谈】《普通DISCO》神话达成后的个人感想", + "rank_offset": 1, + "mid": 295535204, + "image_urls": [ + "//i0.hdslb.com/bfs/article/0c2e7e3cc14f7e097482688600be713a9e9a7029.png" + ], + "template_id": 4, + "category_id": 4, + "view": 843, + "reply": 58, + "rank_index": 0, + "desc": "今天,2020年2月19日,随着bilibili弹幕网上《普通DISCO》的播放量突破1000W,中文VOCALOID的第一首神话级歌曲诞生了。笔者昨夜盯着《普通DISCO》的播放量的增长速率熬到很晚,今早又起了个大早盯着那最后一万的播放量差距,直到播放量突破1000W才放松紧绷的神经,敲打键盘时肢体困倦神疲乏力,故长话短说,若有表达不妥之处还望各位海涵。ilem教主,其拥有近二十首百万传说曲,占bilibili弹幕网中文VOCALOID百万传说曲的三分之一,中文VOCALOID第一首传说曲与第", + "rank_score": 19, + "type": "article", + "id": 4743576, + "category_name": "动漫杂谈" +} +``` + +
+ +## 对象类型6-结果为话题 + +| 字段 | 类型 | 内容 | 备注 | +| ----------- | ----- | ----------------- | ---------------- | +| type | str | 结果类型 | 固定为topic | +| description | str | 简介 | | +| pubdate | nm | 发布时间 | 时间戳 | +| title | str | 标题 | | +| favourite | num | 0 | **作用尚不明确** | +| hit_columns | array | 关键字匹配类型 | | +| review | num | 0 | **作用尚不明确** | +| rank_offset | num | 搜索结果排名值 | | +| cover | str | 话题封面url | | +| update | num | 上传时间 | 时间戳 | +| mid | nm | 0 | **作用尚不明确** | +| click | num | ??? | **作用尚不明确** | +| tp_type | num | ??? | **作用尚不明确** | +| keyword | str | 空 | **作用尚不明确** | +| tp_id | num | 话题tp | | +| rank_index | num | 0 | **作用尚不明确** | +| author | str | UP主昵称 | | +| arcurl | str | 话题页面重定向url | | +| rank_score | num | 结果排序量化值 | | + +`话题条目`中的`hit_columns`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | --------------- | ------------------------ | +| 0 | str | 匹配类型1 | title:话题标题匹配 | +| n | str | 匹配类型(n+1) | 项数为同时匹配到的类型数 | +| …… | str | …… | …… | + +**示例:** + +
+查看响应示例: + +```json +{ + "description": "「Bad Apple」的各式各样的PV有很多很多,小编在这里给大家推荐一些比较特别且高人气的特别PV......", + "pubdate": 1479380676, + "title": "「Bad Apple」 的N种特别PV", + "favourite": 0, + "hit_columns": [ + "title" + ], + "review": 0, + "rank_offset": 1, + "cover": "//i0.hdslb.com/bfs/active/3005a94d446db3873d97b483323156b491d850ac.jpg", + "update": 31507200, + "mid": 0, + "click": 211843, + "tp_type": 0, + "keyword": "", + "tp_id": 2215, + "rank_index": 0, + "author": "Nuuu", + "type": "topic", + "arcurl": "http://www.bilibili.com/topic/50.html", + "rank_score": 1851888 +} +``` + +
+ +## 对象类型7-结果为用户 + +| 字段 | 类型 | 内容 | 备注 | +| --------------- | ----- | -------------- | ----------------------------- | +| type | str | 结果类型 | 固定为bili_user | +| mid | num | 用户mid | | +| uname | str | 用户昵称 | | +| usign | str | 用户签名 | | +| fans | num | 用户粉丝数 | | +| videos | num | 用户稿件数 | | +| upic | str | 用户头像url | | +| verify_info | str | 空 | **作用尚不明确** | +| level | num | 用户等级 | | +| gender | num | 用户性别 | 1:男
2:女
3:私密 | +| is_upuser | num | 是否为UP主 | 0:否
1:是 | +| is_live | num | 是否正在直播 | 0:否
1:是 | +| room_id | num | 用户直播间id | | +| res | array | 用户投稿内容 | | +| official_verify | obj | 用户认证信息 | | +| hit_columns | array | 关键字匹配类型 | | + +`用户条目`中的`res`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | ------------------- | ------------------------- | +| 0 | obj | 用户投稿视频1 | | +| n | obj | 用户投稿视频(n+1) | 项数为用户投稿的3个视频数 | +| …… | obj | …… | …… | + +`res`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| -------------- | ---- | ----------------- | ---------------- | +| aid | num | 稿件avid | | +| bvid | str | 稿件bvid | | +| title | str | 视频标题 | | +| pubdate | num | 视频投稿时间 | 时间戳 | +| arcurl | str | 视频页面重定向url | | +| pic | str | 视频封面图片url | | +| play | str | 播放量 | | +| dm | str | 弹幕量 | | +| coin | num | 投币数 | | +| fav | num | 收藏数 | | +| desc | str | 视频简介 | | +| duration | str | 视频时长 | MM:SS | +| is_pay | num | 0 | **作用尚不明确** | +| is_union_video | num | 是否为合作视频 | 0:否
1:是 | + +`用户条目`中的`official_verify`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | -------- | ----------------------------------------- | +| type | num | 是否认证 | 127:无
0:个人认证
1:组织认证 | +| desc | str | 认证名称 | | + +`用户条目`中的`hit_columns`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | --------------- | ------------------------ | +| 0 | str | 匹配类型1 | uname:用户昵称匹配 | +| n | str | 匹配类型(n+1) | 项数为同时匹配到的类型数 | +| …… | str | …… | …… | + +**示例:** + +
+查看响应示例: + +```json +{ + "type": "bili_user", + "mid": 208259, + "uname": "陈睿", + "usign": "喜欢的话就坚持吧", + "fans": 1561640, + "videos": 5, + "upic": "//i1.hdslb.com/bfs/app/8920e6741fc2808cce5b81bc27abdbda291655d3.png", + "verify_info": "", + "level": 6, + "gender": 1, + "is_upuser": 1, + "is_live": 0, + "room_id": 3394945, + "res": [ + { + "aid": 883660923, + "bvid": "BV1SK4y1477d", + "title": "BILIBILI 11周年演讲", + "pubdate": 1593176427, + "arcurl": "http://www.bilibili.com/video/av883660923", + "pic": "//i0.hdslb.com/bfs/archive/b28021df9c67ee2821cb9c1142b9d5e594e3b951.jpg", + "play": "6144081", + "dm": 185789, + "coin": 167803, + "fav": 147421, + "desc": "BILIBILI 11周年演讲,邀请数位嘉宾分享他们与B站的故事。\n陈睿《bilibili 11周年主题演讲》\n机智的党妹 《在B站,表达自我》\n腾格尔《在B站,做全新的腾格尔》\n周深《在B站,做一个歌手》《起风了》\n罗翔《在B站,授业与解惑》\nCarly李旎《在B站,一起成长》\nBILIBILI 11周年特映片《喜相逢》", + "duration": "217:7", + "is_pay": 0, + "is_union_video": 1 + }, + { + "aid": 838688095, + "bvid": "BV1Wg4y1v77h", + "title": "我们的五年——B站五年员工纪念视频 2020版", + "pubdate": 1593004830, + "arcurl": "http://www.bilibili.com/video/av838688095", + "pic": "//i1.hdslb.com/bfs/archive/701da662dfe00fb180eb4a47f1c38403838570a7.jpg", + "play": "957960", + "dm": 10830, + "coin": 44030, + "fav": 23108, + "desc": "每年626前夕,我们都会给本年度满五年工龄的员工颁发金LOGO(金质的小电视胸章),感谢他们对公司的陪伴和付出。“五年守护,感恩有你”", + "duration": "4:51", + "is_pay": 0, + "is_union_video": 0 + }, + { + "aid": 327892668, + "bvid": "BV1fA411b7zo", + "title": "【推荐一本喜欢的书】上帝掷骰子吗?", + "pubdate": 1587632267, + "arcurl": "http://www.bilibili.com/video/av327892668", + "pic": "//i0.hdslb.com/bfs/archive/c3ec25e2e4425303d7f4915692e3a9f0ec027669.jpg", + "play": "2131624", + "dm": 13570, + "coin": 37432, + "fav": 35498, + "desc": "#推荐一本喜欢的书# 423世界读书日,推荐我看过的最好看的量子物理科普书籍《上帝掷骰子吗》#读书等身#\n欢迎参与B站读书日活动:https://www.bilibili.com/blackboard/activity-gNeFPygv0.html 你每投一个读书视频,B站都会为你捐出一本书。", + "duration": "4:46", + "is_pay": 0, + "is_union_video": 0 + } + ], + "official_verify": { + "type": 0, + "desc": "bilibili董事长兼CEO" + }, + "hit_columns": [ + "uname" + ] +} +``` + +
+ +## 对象类型8-结果为相簿 + +| 字段 | 类型 | 内容 | 备注 | +| ----------- | ----- | -------------- | ---------------- | +| type | str | 结果类型 | 固定为photo | +| count | num | 图片数 | | +| like | num | 收藏数 | | +| title | str | 相簿标题 | | +| hit_columns | array | 关键字匹配类型 | | +| rank_offset | num | 搜索结果排名值 | | +| cover | str | 相簿封面url | | +| mid | num | UP主mid | | +| uname | str | UP主昵称 | | +| rank_index | num | 0 | **作用尚不明确** | +| view | num | 观看次数 | | +| id | num | 相簿id | | +| rank_score | num | 结果排序量化值 | | + +`相簿条目`中的`hit_columns`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | --------------- | ------------------------------------------------------------ | +| 0 | str | 匹配类型1 | title:相簿标贴匹配
description:相簿简介匹配
source_tag:相簿TAG匹配 | +| n | str | 匹配类型(n+1) | 项数为同时匹配到的类型数 | +| …… | str | …… | …… | + +**示例:** + +
+查看响应示例: + +```json +{ + "count": 4, + "like": 42, + "title": "EVA Q 绫波丽", + "hit_columns": [ + "title" + ], + "rank_offset": 1, + "cover": "http://i0.hdslb.com/bfs/album/1043ee70b677c9aab406142c6aa00d097be07c1e.jpg", + "mid": 3306217, + "uname": "迷失人形LLS", + "rank_index": 0, + "view": 100924, + "type": "photo", + "id": 8952802, + "rank_score": 25315 +} +``` + +
\ No newline at end of file diff --git a/docs/search/suggest.md b/docs/search/suggest.md new file mode 100644 index 0000000000..441054f73f --- /dev/null +++ b/docs/search/suggest.md @@ -0,0 +1,185 @@ +# 搜索建议 + +- [获取搜索建议关键词(web端)](#获取搜索建议关键词web端) + +--- + +## 获取搜索建议关键词(web端) + +> https://s.search.bilibili.com/main/suggest + +*请求方式:GET* + +搜索建议最多提供10个候选关键词 + +搜索建议内容可为任意语言(中 英 日等....),中文拼音支持全拼联想词 + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| --------- | ---- | ---------------------- | ------ | ------------------------ | +| term | str | 需要获得建议的输入内容 | 必要 | | +| main_ver | str | v1 | 非必要 | 固定为`v1` | +| highlight | str | 任意 | 非必要 | 有此项开启关键词高亮标签 | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----------- | ---- | ------------ | ------------ | +| code | num | 返回值 | 0:成功 | +| cost | obj | 详细搜索用时 | 大概是吧? | +| result | obj | 搜索建议结果 | | +| page caches | obj | ??? | 作用尚不明确 | +| sengine | obj | ??? | 作用尚不明确 | +| stoken | str | ??? | 作用尚不明确 | + +`cost`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----- | ---- | -------- | ---- | +| about | obj | 套了个娃 | | + +`cost`中的`about`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------------ | ---- | ---- | ---- | +| params_check | str | | | +| total | str | | | +| main_handler | str | | | + +`result`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ----- | -------- | ---- | +| tag | array | 套了个娃 | | + +`result`中的`tag`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | ------------------- | ---------------------- | +| 0 | obj | 第1建议关键词 | | +| n | obj | 第(n+1)建议关键词 | 按照相关程度与热度顺序 | +| 9 | obj | 第10建议关键词 | 最后一项 | + +`tag`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----- | ---- | ---------- | ------------------------------------------------------------ | +| value | str | 关键词内容 | | +| ref | num | 0 | 作用尚不明确 | +| name | str | 显示内容 | 在无高亮显示时与`value`相同
有高亮显示时带有``的xml标签 | +| spid | num | ??? | 作用尚不明确 | + +`page caches`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---------- | ---- | ---- | ------------ | +| save cache | str | no | 作用尚不明确 | + +`sengine`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----- | ---- | ---- | ------------ | +| usage | num | 0 | 作用尚不明确 | + +**示例:** + +获取关于`lei`的搜索建议,关键词带有高亮 + +```shell +curl -G 'https://s.search.bilibili.com/main/suggest' \ +--data-urlencode 'term=lei' \ +--data-urlencode 'main_ver=v1' \ +--data-urlencode 'highlight=' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "cost": { + "about": { + "params_check": "0.000103", + "total": "0.011644", + "main_handler": "0.011472" + } + }, + "result": { + "tag": [ + { + "value": "雷军", + "ref": 0, + "name": "雷军", + "spid": 1 + }, + { + "value": "雷之律者", + "ref": 0, + "name": "雷之律者", + "spid": 5 + }, + { + "value": "LEI神", + "ref": 0, + "name": "LEI神", + "spid": 5 + }, + { + "value": "LEIGH ELLEXSON", + "ref": 0, + "name": "LEIGH ELLEXSON", + "spid": 5 + }, + { + "value": "LEICA Q2", + "ref": 0, + "name": "LEICA Q2", + "spid": 5 + }, + { + "value": "LEIGHANNE", + "ref": 0, + "name": "LEIGHANNE", + "spid": 0 + }, + { + "value": "雷达探测姬", + "ref": 0, + "name": "雷达探测姬", + "spid": 5 + }, + { + "value": "雷律", + "ref": 0, + "name": "雷律", + "spid": 5 + }, + { + "value": "雷霆嘎巴", + "ref": 0, + "name": "雷霆嘎巴", + "spid": 5 + }, + { + "value": "雷霆沙赞", + "ref": 0, + "name": "雷霆沙赞", + "spid": 5 + } + ] + }, + "page caches": { + "save cache": "no" + }, + "sengine": { + "usage": 0 + }, + "stoken": "12344377692164099019" +} +``` + +
diff --git a/docs/user/check_nickname.md b/docs/user/check_nickname.md new file mode 100644 index 0000000000..add987e022 --- /dev/null +++ b/docs/user/check_nickname.md @@ -0,0 +1,137 @@ +# 检查昵称是否可注册 + +- [检查昵称](#检查昵称) + +--- + +## 检查昵称 + +> https://passport.bilibili.com/web/generic/check/nickname + +*请求方式:GET* + +也可用于判断指定昵称的用户是否存在 + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| -------- | ---- | ----------- | ------ | ---- | +| nickName | str | 目标昵称 | 必要 | 最长为16字符 | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | --------------------------- | +| code | num | 状态码 | -400:请求错误
-500:服务器端异常
**详细说明见下一表格** | +| message | str | 错误详情 | 若昵称可用,则不返回message | + +`code`状态码: + +| 值 | 含义 | +| ----- | --------------------------------- | +| 0 | 昵称未被注册 | +| 2001 | 该昵称已被他人使用 | +| 40002 | 昵称包含敏感信息 | +| 40004 | 昵称不可包含除\-和_以外的特殊字符 | +| 40005 | 昵称过长(超过16字符) | +| 40006 | 昵称过短(少于2字符) | +| 40014 | 昵称已存在 | + +**示例:** + +查询昵称 `xijinping` 是否被使用: + +```shell +curl -G 'https://passport.bilibili.com/web/generic/check/nickname' \ +--data-urlencode 'nickName=xijinping' +``` + +
+查看响应示例: + +```json +{ + "code":40002, + "message":"昵称包含敏感信息" +} +``` + +
+ +查询昵称 `//` 是否被使用: + +```shell +curl -G 'https://passport.bilibili.com/web/generic/check/nickname' \ +--data-urlencode 'nickName=//' +``` + +
+查看响应示例: + +```json +{ + "code": 40004, + "message": "昵称不可包含除-和_以外的特殊字符" +} +``` + +
+ +查询昵称 `test0000000000000 ` 是否被使用: + +```shell +curl -G 'https://passport.bilibili.com/web/generic/check/nickname' \ +--data-urlencode 'nickName=test0000000000000 ' +``` + +
+查看响应示例: + +```json +{ + "code": 40005, + "message": "昵称过长" +} +``` + +
+ +查询昵称 `0` 是否被使用: + +```shell +curl -G 'https://passport.bilibili.com/web/generic/check/nickname' \ +--data-urlencode 'nickName=0' +``` + +
+查看响应示例: + +```json +{ + "code": 40006, + "message": "昵称过短" +} +``` + +
+ +查询昵称 `test` 是否被使用: + +```shell +curl -G 'https://passport.bilibili.com/web/generic/check/nickname' \ +--data-urlencode 'nickName=test' +``` + +
+查看响应示例: + +```json +{ + "code":40014, + "message":"昵称已存在" +} +``` + +
diff --git a/docs/user/contract.md b/docs/user/contract.md new file mode 100644 index 0000000000..7080164a74 --- /dev/null +++ b/docs/user/contract.md @@ -0,0 +1,131 @@ +# 加入老粉计划 + +> https://api.bilibili.com/x/v1/contract/add_contract + +*请求方式:POST* + +是否需要登录:`是` + +认证方式:Cookie(SESSDATA) + +**正文参数 (application/x-www-form-urlencoded):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +|----------|-----|--------|-----|-----| +| aid | str | `空串` | | | +| up_mid | str | UP主UID | 必要 | | +| source | str | `4` | | | +| scene | str | `105` | | | +| platform | str | `web` | | | +| mobi_app | str | `pc` | | | +| csrf | str | 用户csrf | 必要 | | + +**json回复:** + +根对象: + +| 字段名 | 类型 | 内容 | 备注 | +|---------|-----|------|-------------------------| +| code | num | 响应码 | 0:成功
158001:`不满足条件` | +| message | str | 0 | | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +`data`对象 + +| 字段名 | 类型 | 内容 | 备注 | +|---------------|------|-----------------------------------|-----| +| allow_message | bool | `true` | | +| input_text | str | `UP主加油!看好你噢` | | +| input_title | str | `感谢你对UP主的特别支持,“老粉”可期!私信留言鼓励下TA吧 ` | | + +**示例:** + +```shell +curl --location --request POST 'https://api.bilibili.com/x/v1/contract/add_contract' \ +--header 'Cookie: SESSDATA=xxx' \ +--header 'Content-Type: application/x-www-form-urlencoded' \ +--data-urlencode 'up_mid=2' \ +--data-urlencode 'csrf=xxx' +``` + +
+点击查看 + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "allow_message": true, + "input_text": "UP主加油!看好你噢", + "input_title": "感谢你对UP主的特别支持,“老粉”可期!私信留言鼓励下TA吧 " + } +} +``` + +
+ +# 老粉计划发送留言 + +> https://api.bilibili.com/x/v1/contract/add_message + +*请求方式:POST* + +认证方式:Cookie (SESSDATA) + +**正文参数 (application/x-www-form-urlencoded):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +|---------|-----|--------|-----|-----| +| aid | str | `空串` | | | +| up_mid | str | UP主UID | 必要 | | +| source | str | `4` | | | +| scene | str | `105` | | | +| content | str | 留言内容 | 必要 | | +| csrf | str | 用户csrf | 必要 | | + +**json回复:** + +根对象: + +| 字段名 | 类型 | 内容 | 备注 | +|---------|-----|------|------------------------------| +| code | num | 响应码 | 0:成功
158005:您跟up主还不是契约关系 | +| message | str | 0 | | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +`data`对象 + +| 字段名 | 类型 | 内容 | 备注 | +|---------------|-----|------------------|-----| +| success_toast | str | `提交成功,UP主已收到留言~` | | + +**示例:** + +```shell +curl --location --request POST 'https://api.bilibili.com/x/v1/contract/add_message' \ +--header 'Cookie: SESSDATA=xxx' \ +--header 'Content-Type: application/x-www-form-urlencoded' \ +--data-urlencode 'up_mid=2' \ +--data-urlencode 'content=..' \ +--data-urlencode 'csrf=xxx' +``` + +
+点击查看 + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "success_toast": "提交成功,UP主已收到留言~" + } +} +``` + +
\ No newline at end of file diff --git a/docs/user/info.md b/docs/user/info.md new file mode 100644 index 0000000000..ecd4263eb0 --- /dev/null +++ b/docs/user/info.md @@ -0,0 +1,1229 @@ +# 用户基本信息 + + + +- [用户空间详细信息](#用户空间详细信息) +- [用户名片信息](#用户名片信息) +- [登录用户空间详细信息](#登录用户空间详细信息) +- [多用户详细信息](#多用户详细信息) + +--- + +## 用户空间详细信息 + +> https://api.bilibili.com/x/space/acc/info + +*请求方式:GET* + +认证方式:Cookie(SESSDATA) + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +|-----|-----|---------|-----|-----| +| mid | num | 目标用户mid | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +|---------|-----|------|---------------------| +| code | num | 返回值 | 0:成功
-400:请求错误 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +|------------------|------|------------|--------------------------------------------------------------------------------------------------| +| mid | num | mid | | +| name | str | 昵称 | | +| sex | str | 性别 | 男/女/保密 | +| face | str | 头像链接 | | +| face_nft | num | 是否为 nft 头像 | `0`不是nft头像
`1`是 nft 头像 | +| face_nft_type | num | | 0,1 | +| sign | str | 签名 | | +| rank | num | 用户权限等级 | 目前应该无任何作用
5000:0级未答题
10000:普通会员
20000:字幕君
25000:VIP
30000:真·职人
32000:管理员 | +| level | num | 当前等级 | 0-6级 | +| jointime | num | 注册时间 | 此接口返回恒为`0` | +| moral | num | 节操值 | 此接口返回恒为`0` | +| silence | num | 封禁状态 | 0:正常
1:被封 | +| coins | num | 硬币数 | 需要登录(Cookie)
只能查看自己的
默认为0 | +| fans_badge | bool | 是否具有粉丝勋章 | false:无
true:有 | +| fans_medal | obj | 粉丝勋章信息 | | +| official | obj | 认证信息 | | +| vip | obj | 会员信息 | | +| pendant | obj | 头像框信息 | | +| nameplate | obj | 勋章信息 | | +| user_honour_info | obj | | | +| is_followed | bool | 是否关注此用户 | true:已关注
false:未关注
需要登录(Cookie)
未登录恒为false | +| top_photo | str | 主页头图链接 | | +| theme | obj | 空 | **作用尚不明确** | +| sys_notice | obj | 系统通知 | 无内容则为空对象
主要用于展示如用户争议、纪念账号等等 | +| live_room | obj | 直播间信息 | | +| birthday | str | 生日 | MM-DD
如设置隐私为空 | +| school | obj | 学校 | | +| profession | obj | 专业资质信息 | | +| tags | null | 个人标签 | | +| series | obj | | | +| is_senior_member | num | 是否为硬核会员 | 0:否
1:是 | +| mcn_info | null | | | +| gaia_res_type | num | | | +| gaia_data | null | | | +| is_risk | bool | | | +| elec | obj | 充电信息 | | +| contract | obj | 是否显示老粉计划 | | + +`rank`示例 + +| UID | rank | +|-----------|-------| +| 2 | 20000 | +| 16765 | 20000 | +| 15773384 | 20000 | +| 124416 | 20000 | +| 429736362 | 25000 | +| 424261768 | 25000 | +| 41273726 | 25000 | +| 15080107 | 25000 | +| 9847497 | 25000 | +| 4856007 | 25000 | +| 928123 | 25000 | +| 132704 | 25000 | +| 70093 | 25000 | +| 47291 | 25000 | +| 27380 | 25000 | +| 22445 | 25000 | +| 3351 | 25000 | +| 1101 | 25000 | +| 93066 | 30000 | +| 2443068 | 30000 | +| 46368 | 30000 | +| 11167 | 30000 | + +`profession`示例 + +| UID | +|------------| +| 654391 | +| 1440295 | +| 1785155 | +| 2990100 | +| 3875803 | + +`data`中的`official`对象: + +| 字段 | 类型 | 内容 | 备注 | +|-------|-----|------|-----------------------------------------| +| role | num | 认证类型 | 0:无
1 2 7 9:个人认证
3 4 5 6:机构认证 | +| title | str | 认证信息 | 无为空 | +| desc | str | 认证备注 | 无为空 | +| type | num | 是否认证 | -1:无
0:个人认证
1:机构认证 | + +`data`中的`vip`对象: + +| 字段 | 类型 | 内容 | 备注 | +|----------------------|-----|-----------|----------------------------------------------| +| type | num | 会员类型 | 0:无
1:月大会员
2:年度及以上大会员 | +| status | num | 会员状态 | 0:无
1:有 | +| due_date | num | 会员过期时间 | Unix时间戳(毫秒) | +| vip_pay_type | num | 支付类型 | 0:未支付(常见于官方账号)
1:已支付(以正常渠道获取的大会员均为此值) | +| theme_type | num | 0 | 作用尚不明确 | +| label | obj | 会员标签 | | +| avatar_subscript | num | 是否显示会员图标 | 0:不显示
1:显示 | +| nickname_color | str | 会员昵称颜色 | 颜色码,一般为`#FB7299`,曾用于愚人节改变大会员配色 | +| role | num | 大角色类型 | 1:月度大会员
3:年度大会员
7:十年大会员
15:百年大会员 | +| avatar_subscript_url | str | 大会员角标地址 | | +| tv_vip_status | num | 电视大会员状态 | 0:未开通 | +| tv_vip_pay_type | num | 电视大会员支付类型 | | + +`vip`中的`label`对象: + +| 字段 | 类型 | 内容 | 备注 | +|---------------------------|------|----------|------------------------------------------------------------------------------------------------------------------------------| +| path | str | 空 | 作用尚不明确 | +| text | str | 会员类型文案 | `大会员` `年度大会员` `十年大会员` `百年大会员` `最强绿鲤鱼` | +| label_theme | str | 会员标签 | vip:大会员
annual_vip:年度大会员
ten_annual_vip:十年大会员
hundred_annual_vip:百年大会员
fools_day_hundred_annual_vip:最强绿鲤鱼 | +| text_color | str | 会员标签 | | +| bg_style | num | 1 | | +| bg_color | str | 会员标签背景颜色 | 颜色码,一般为`#FB7299`,曾用于愚人节改变大会员配色 | +| border_color | str | 会员标签边框颜色 | 未使用 | +| use_img_label | bool | `true` | | +| img_label_uri_hans | str | `空串` | | +| img_label_uri_hant | str | `空串` | | +| img_label_uri_hans_static | str | 大会员牌子图片 | 简体版 | +| img_label_uri_hant_static | str | 大会员牌子图片 | 繁体版 | + + +`data`中的`pendant`对象: + +**普通头像框的`image`与`image_enhance`内容相同** +**动态头像框的`image`为png静态图片,`image_enhance`为webp动态图片,`image_enhance_frame`为png逐帧序列** + +| 字段 | 类型 | 内容 | 备注 | +|---------------------|-----|--------------|------------| +| pid | num | 头像框id | | +| name | str | 头像框名称 | | +| image | str | 头像框图片url | | +| expire | num | 过期时间 | 此接口返回恒为`0` | +| image_enhance | str | 头像框图片url | | +| image_enhance_frame | str | 头像框图片逐帧序列url | | + +`data`中的`nameplate`对象: + +| 字段 | 类型 | 内容 | 备注 | +|-------------|-----|---------|-----| +| nid | num | 勋章id | | +| name | str | 勋章名称 | | +| image | str | 勋章图标 | | +| image_small | str | 勋章图标(小) | | +| level | str | 勋章等级 | | +| condition | str | 获取条件 | | + +`data`中的`fans_medal`对象: + +| 字段 | 类型 | 内容 | 备注 | +|-------|------|-----------|-----| +| show | bool | | | +| wear | bool | 是否佩戴了粉丝勋章 | | +| medal | obj | 粉丝勋章信息 | | + +`fans_medal`中的`medal`对象: + +| 字段 | 类型 | 内容 | 备注 | +|--------------------|-----|--------------|------------------| +| uid | num | 此用户mid | | +| target_id | num | 粉丝勋章所属UP的mid | | +| medal_id | num | 粉丝勋章id | | +| level | num | 粉丝勋章等级 | | +| medal_name | str | 粉丝勋章名称 | | +| medal_color | num | 颜色 | | +| intimacy | num | 当前亲密度 | | +| next_intimacy | num | 下一等级所需亲密度 | | +| day_limit | num | 每日亲密度获取上限 | | +| today_feed | num | 今日已获得亲密度 | | +| medal_color_start | num | 粉丝勋章颜色 | 十进制数,可转为十六进制颜色代码 | +| medal_color_end | num | 粉丝勋章颜色 | 十进制数,可转为十六进制颜色代码 | +| medal_color_border | num | 粉丝勋章边框颜色 | 十进制数,可转为十六进制颜色代码 | +| is_lighted | num | | | +| light_status | num | | | +| wearing_status | num | 当前是否佩戴 | 0:未佩戴
1:已佩戴 | +| score | num | | | + +`data`中的`sys_notice`对象: + +| 字段 | 类型 | 内容 | 备注 | +|-------------|-----|------|-----| +| id | num | id | | +| content | str | 显示文案 | | +| url | str | 跳转地址 | | +| notice_type | num | 提示类型 | 1,2 | +| icon | str | 前缀图标 | | +| text_color | str | 文字颜色 | | +| bg_color | str | 背景颜色 | | + +`sys_notice`示例 + +| id | content | url | notice_type | 示例用户 | +|-----|-------------------------------------------------|-----|-------------|-------------------------------------------------------------------------------------------------| +| 5 | 该用户存在争议行为,已冻结其帐号功能的使用 | | 1 | [82385070](https://space.bilibili.com/82385070) | +| 8 | 该用户存在较大争议,请谨慎甄别其内容 | | 1 | [28062215](https://space.bilibili.com/28062215) | +| 11 | 该账号涉及合约争议,暂冻结其账号功能使用。详见公告-> | | 1 | +| 16 | 该UP主内容存在争议,请注意甄别视频内信息 | | 1 | [382534165](https://space.bilibili.com/382534165) | +| 20 | 请允许我们在此献上最后的告别,以此纪念其在哔哩哔哩留下的回忆与足迹。请点此查看纪念账号相关说明 | | 2 | +| 22 | 该账号涉及合约诉讼,封禁其账号使用。 | | +| 24 | 该账号涉及合约争议,暂冻结其账号功能使用。 | | 1 | [291229008](https://space.bilibili.com/291229008) | +| 25 | 该用户涉及严重指控,暂冻结其账号功能使用 | | 1 | [81447581](https://space.bilibili.com/81447581) | +| 31 | 该用户涉及严重指控,暂冻结其账号功能使用 | | 1 | [22439273](https://space.bilibili.com/22439273) | +| 34 | 该用户涉及严重指控,暂冻结其账号功能使用 | | 1 | [1640486775](https://space.bilibili.com/1640486775) | +| 36 | 该账户存在争议,请谨慎甄别 | | 1 | [198297](https://space.bilibili.com/198297)
[18149131](https://space.bilibili.com/18149131) | + +`data`中的`live_room`对象: + +| 字段 | 类型 | 内容 | 备注 | +|----------------|-----|------------|------------------| +| roomStatus | num | 直播间状态 | 0:无房间
1:有房间 | +| liveStatus | num | 直播状态 | 0:未开播
1:直播中 | +| url | str | 直播间网页 url | | +| title | str | 直播间标题 | | +| cover | str | 直播间封面 url | | +| watched_show | obj | | | +| roomid | num | 直播间 id(短号) | | +| roundStatus | num | 轮播状态 | 0:未轮播
1:轮播 | +| broadcast_type | num | 0 | | + +`live_room`中的`watched_show`对象: + +| 字段 | 类型 | 内容 | 备注 | +|---------------|------|---------------------|-----| +| switch | bool | ? | | +| num | num | total watched users | | +| text_small | str | | | +| text_large | str | | | +| icon | str | watched icon url | | +| icon_location | str | ? | | +| icon_web | str | watched icon url | | + +`data`中的`school`对象: + +| 字段 | 类型 | 内容 | 备注 | +|------|-----|--------|-------| +| name | str | 就读大学名称 | 没有则为空 | + +`data`中的`profession`对象: + +| 字段 | 类型 | 内容 | 备注 | +|------------|-----|------|----------------| +| name | str | 资质名称 | | +| department | str | 职位 | | +| title | str | 所属机构 | | +| is_show | num | 是否显示 | 0:不显示
1:显示 | + +`data`中的`user_honour_info`对象: + +| 字段 | 类型 | 内容 | 备注 | +|--------|-------|------|-----| +| mid | num | 0 | | +| colour | str | null | | +| tags | array | null | | + +`data`中的`series`对象: + +| 字段 | 类型 | 内容 | 备注 | +|---------------------|------|-----|-----| +| user_upgrade_status | num | (?) | | +| show_upgrade_window | bool | (?) | | + +`data`中的`elec`对象: + +| 字段 | 类型 | 内容 | 备注 | +|-----------|-----|-----|-----| +| show_info | obj | | | + +`elec`中的`show_info`对象: + +| 字段 | 类型 | 内容 | 备注 | +|----------|------|---------|------------------| +| show | bool | 是否开通了充电 | | +| state | num | 状态 | -1:未开通
1:已开通 | +| title | str | `空串` | | +| icon | str | `空串` | | +| jump_url | str | `空串` | | + +`data`中的`contract`对象: + +| 字段名 | 类型 | 内容 | 备注 | +|-------------------|------|-----------|---------------------------| +| is_display | bool | | true/false
在页面中未使用此字段 | +| is_follow_display | bool | 是否在显示老粉计划 | true:显示
false:不显示 | + +**示例:** + +查询用户`mid=2`的详细信息 + +```shell +curl -G 'https://api.bilibili.com/x/space/acc/info' \ +--data-urlencode 'mid=2' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "mid": 2, + "name": "碧诗", + "sex": "男", + "face": "https://i2.hdslb.com/bfs/face/ef0457addb24141e15dfac6fbf45293ccf1e32ab.jpg", + "face_nft": 0, + "face_nft_type": 0, + "sign": "https://kami.im 直男过气网红 # We Are Star Dust", + "rank": 20000, + "level": 6, + "jointime": 0, + "moral": 0, + "silence": 0, + "coins": 0, + "fans_badge": true, + "fans_medal": { + "show": true, + "wear": true, + "medal": { + "uid": 2, + "target_id": 335115, + "medal_id": 45408, + "level": 21, + "medal_name": "伍千万", + "medal_color": 1725515, + "intimacy": 1980, + "next_intimacy": 2000, + "day_limit": 250000, + "medal_color_start": 1725515, + "medal_color_end": 5414290, + "medal_color_border": 1725515, + "is_lighted": 1, + "light_status": 1, + "wearing_status": 1, + "score": 50001980 + } + }, + "official": { + "role": 2, + "title": "bilibili创始人(站长)", + "desc": "", + "type": 0 + }, + "vip": { + "type": 2, + "status": 1, + "due_date": 3909916800000, + "vip_pay_type": 0, + "theme_type": 0, + "label": { + "path": "", + "text": "十年大会员", + "label_theme": "ten_annual_vip", + "text_color": "#FFFFFF", + "bg_style": 1, + "bg_color": "#FB7299", + "border_color": "", + "use_img_label": true, + "img_label_uri_hans": "", + "img_label_uri_hant": "", + "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/activity-plat/static/20221008/0597543265563f522fad443825cff578/O9l2i8GdaZ.png", + "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/8u7iRTPE7N.png" + }, + "avatar_subscript": 1, + "nickname_color": "#FB7299", + "role": 7, + "avatar_subscript_url": "", + "tv_vip_status": 1, + "tv_vip_pay_type": 0 + }, + "pendant": { + "pid": 32257, + "name": "EveOneCat2", + "image": "https://i2.hdslb.com/bfs/garb/item/488870931b1bba66da36d22848f0720480d3d79a.png", + "expire": 0, + "image_enhance": "https://i2.hdslb.com/bfs/garb/item/5974f17f9d96a88bafba2f6d18d647a486e88312.webp", + "image_enhance_frame": "https://i2.hdslb.com/bfs/garb/item/4316a3910bb0bd6f2f1c267a3e9187f0b9fe5bd0.png" + }, + "nameplate": { + "nid": 10, + "name": "见习偶像", + "image": "https://i1.hdslb.com/bfs/face/e93dd9edfa7b9e18bf46fd8d71862327a2350923.png", + "image_small": "https://i1.hdslb.com/bfs/face/275b468b043ec246737ab8580a2075bee0b1263b.png", + "level": "普通勋章", + "condition": "所有自制视频总播放数>=10万" + }, + "user_honour_info": { + "mid": 0, + "colour": null, + "tags": [] + }, + "is_followed": false, + "top_photo": "http://i0.hdslb.com/bfs/space/cb1c3ef50e22b6096fde67febe863494caefebad.png", + "theme": {}, + "sys_notice": {}, + "live_room": { + "roomStatus": 1, + "liveStatus": 0, + "url": "https://live.bilibili.com/1024?broadcast_type=0&is_room_feed=0", + "title": "试图恰鸡", + "cover": "http://i0.hdslb.com/bfs/live/new_room_cover/96ee5bfd0279a0f18b190340334f43f473038288.jpg", + "roomid": 1024, + "roundStatus": 0, + "broadcast_type": 0, + "watched_show": { + "switch": true, + "num": 14, + "text_small": "14", + "text_large": "14人看过", + "icon": "https://i0.hdslb.com/bfs/live/a725a9e61242ef44d764ac911691a7ce07f36c1d.png", + "icon_location": "", + "icon_web": "https://i0.hdslb.com/bfs/live/8d9d0f33ef8bf6f308742752d13dd0df731df19c.png" + } + }, + "birthday": "09-19", + "school": { + "name": "" + }, + "profession": { + "name": "", + "department": "", + "title": "", + "is_show": 0 + }, + "tags": null, + "series": { + "user_upgrade_status": 3, + "show_upgrade_window": false + }, + "is_senior_member": 1, + "mcn_info": null, + "gaia_res_type": 0, + "gaia_data": null, + "is_risk": false, + "elec": { + "show_info": { + "show": true, + "state": 1, + "title": "", + "icon": "", + "jump_url": "" + } + } + } +} +``` + +
+ +**查询到的信息解析如下:** + +**用户昵称为**:碧诗 + +**性别**:男 + +**用户的头像为**: + +https://i2.hdslb.com/bfs/face/ef0457addb24141e15dfac6fbf45293ccf1e32ab.jpg + + + +**等级**:6级 + +**生日**:09-19 + +**粉丝勋章状态**:拥有 + +**认证**:个人认证 + +**认证名称**: bilibili创始人(站长) + +**大会员类型**:年度 + +**大会员状态**:已开通 + +**电视大会员状态**:已开通 + +**头像框**:EveOneCat2 + +https://i2.hdslb.com/bfs/garb/item/5974f17f9d96a88bafba2f6d18d647a486e88312.webp + + + +**粉丝勋章**: 见习偶像 + +https://i1.hdslb.com/bfs/face/e93dd9edfa7b9e18bf46fd8d71862327a2350923.png + + + +**空间头图**: + +https://i0.hdslb.com/bfs/space/cb1c3ef50e22b6096fde67febe863494caefebad.png + +![](https://i0.hdslb.com/bfs/space/cb1c3ef50e22b6096fde67febe863494caefebad.png) + +## 用户名片信息 + +> https://api.bilibili.com/x/web-interface/card + +*请求方式:GET* + +认证方式:Cookie(SESSDATA) + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | ---- | -------------------- | ------ | ----------------------- | +| mid | num | 目标用户mid | 必要 | | +| photo | bool | 是否请求用户主页头图 | 非必要 | true:是
false:否 | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | --------------------------- | +| code | num | 返回值 | 0:成功
-400:请求错误 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------------- | ----- | -------------- | ------------------------------------------------------------ | +| card | obj | 卡片信息 | | +| following | bool | 是否关注此用户 | true:已关注
false:未关注
需要登录(Cookie)
未登录为false | +| archive_count | num | 用户稿件数 | | +| article_count | num | 0 | **作用尚不明确** | +| follower | num | 粉丝数 | | +| like_num | num | 点赞数 | | + +`data`中的`card`对象: + +| 字段 | 类型 | 内容 | 备注 | +| --------------- | ----- | -------------- | ------------------------------------------------------------ | +| mid | str | 用户mid | | +| approve | bool | false | **作用尚不明确** | +| name | str | 用户昵称 | | +| sex | str | 用户性别 | 男 女 保密 | +| face | str | 用户头像链接 | | +| DisplayRank | str | 0 | **作用尚不明确** | +| regtime | num | 0 | **作用尚不明确** | +| spacesta | num | 0 | **作用尚不明确** | +| birthday | str | 空 | **作用尚不明确** | +| place | str | 空 | **作用尚不明确** | +| description | str | 空 | **作用尚不明确** | +| article | num | 0 | **作用尚不明确** | +| attentions | array | 空 | **作用尚不明确** | +| fans | num | 粉丝数 | | +| friend | num | 关注数 | | +| attention | num | 关注数 | | +| level_info | obj | 等级 | | +| pendant | obj | 挂件 | | +| nameplate | obj | 勋章 | | +| Official | obj | 认证信息 | | +| official_verify | obj | 认证信息2 | | +| vip | obj | 大会员状态 | | +| space | obj | 主页头图 | | + +`card`中的`level_info`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------------- | ---- | -------- | ---------------- | +| current_level | num | 当前等级 | 0-6级 | +| current_min | num | 0 | 作用尚不明确 | +| current_exp | num | 0 | **作用尚不明确** | +| next_exp | num | 0 | **作用尚不明确** | + +`card`中的`pendant`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------ | ---- | ----------- | ---------------- | +| pid | num | 挂件id | | +| name | str | 挂件名称 | | +| image | str | 挂件图片url | | +| expire | num | 0 | **作用尚不明确** | + +`card`中的`nameplate`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----------- | ---- | ---------------- | -------------------- | +| nid | num | 勋章id | **详细说明有待补充** | +| name | str | 勋章名称 | | +| image | str | 挂件图片url 正常 | | +| image_small | str | 勋章图片url 小 | | +| level | str | 勋章等级 | | +| condition | str | 勋章条件 | | + +`card`中的`Official`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----- | ---- | -------- | ------------------------------------------------- | +| role | num | 认证类型 | 0:无
1 2 7:个人认证
3 4 5 6:机构认证 | +| title | str | 认证信息 | 无为空 | +| desc | str | 认证备注 | 无为空 | +| type | num | 是否认证 | -1:无
0:认证 | + +`card`中的`official_verify`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | -------- | ------------------- | +| type | num | 是否认证 | -1:无
0:认证 | +| desc | str | 认证信息 | 无为空 | + +`card`中的`vip`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------------- | ---- | ---------- | ------------------------------------------------- | +| vipType | num | 大会员类型 | 0:无
1:月度大会员
2:年度及以上大会员 | +| dueRemark | str | 空 | **作用尚不明确** | +| accessStatus | num | 0 | **作用尚不明确** | +| vipStatus | num | 大会员状态 | 0:无
1:有 | +| vipStatusWarn | str | 空 | **作用尚不明确** | +| theme_type | num | 0 | **作用尚不明确** | + +`card`中的`space`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----- | ---- | ---------------- | ---- | +| s_img | str | 主页头图url 小图 | | +| l_img | str | 主页头图url 正常 | | + +**示列:** + +```shell +curl -G 'api.bilibili.com/x/web-interface/card' \ +--data-urlencode 'mid=2' \ +--data-urlencode 'photo=true' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "card": { + "mid": "2", + "name": "碧诗", + "approve": false, + "sex": "男", + "rank": "20000", + "face": "http://i2.hdslb.com/bfs/face/ef0457addb24141e15dfac6fbf45293ccf1e32ab.jpg", + "DisplayRank": "0", + "regtime": 0, + "spacesta": 0, + "birthday": "", + "place": "", + "description": "", + "article": 0, + "attentions": [], + "fans": 969999, + "friend": 234, + "attention": 234, + "sign": "kami.im 直男过气网红 # av362830 “We Are Star Dust”", + "level_info": { + "current_level": 6, + "current_min": 0, + "current_exp": 0, + "next_exp": 0 + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "", + "image_enhance_frame": "" + }, + "nameplate": { + "nid": 10, + "name": "见习偶像", + "image": "http://i2.hdslb.com/bfs/face/e93dd9edfa7b9e18bf46fd8d71862327a2350923.png", + "image_small": "http://i2.hdslb.com/bfs/face/275b468b043ec246737ab8580a2075bee0b1263b.png", + "level": "普通勋章", + "condition": "所有自制视频总播放数\u003e=10万" + }, + "Official": { + "role": 2, + "title": "bilibili创始人(站长)", + "desc": "", + "type": 0 + }, + "official_verify": { + "type": 0, + "desc": "bilibili创始人(站长)" + }, + "vip": { + "type": 2, + "status": 1, + "due_date": 3896524800000, + "vip_pay_type": 0, + "theme_type": 0, + "label": { + "path": "", + "text": "十年大会员", + "label_theme": "ten_annual_vip", + "text_color": "#FFFFFF", + "bg_style": 1, + "bg_color": "#FB7299", + "border_color": "" + }, + "avatar_subscript": 1, + "nickname_color": "#FB7299", + "role": 7, + "avatar_subscript_url": "http://i0.hdslb.com/bfs/vip/icon_Certification_big_member_22_3x.png", + "vipType": 2, + "vipStatus": 1 + } + }, + "space": { + "s_img": "http://i1.hdslb.com/bfs/space/768cc4fd97618cf589d23c2711a1d1a729f42235.png", + "l_img": "http://i1.hdslb.com/bfs/space/cb1c3ef50e22b6096fde67febe863494caefebad.png" + } + }, + "following": true, + "archive_count": 37, + "article_count": 0, + "follower": 969999, + "like_num": 3547978 +} +``` + +
+ +## 登录用户空间详细信息 + +> https://api.bilibili.com/x/space/myinfo + +*请求方式:GET* + +认证方式:Cookie(SESSDATA) + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------- | +| code | num | 返回值 | 0:成功
-101:未登录 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| --------------- | ---- | ------------ | ------------------------ | +| mid | num | mid | | +| name | str | 昵称 | | +| sex | str | 性别 | 男 女 保密 | +| face | str | 头像图片url | | +| sign | str | 签名 | | +| rank | num | 10000 | **作用尚不明确** | +| level | num | 当前等级 | 0-6级 | +| jointime | num | 0 | **作用尚不明确** | +| moral | num | 节操 | 默认70 | +| silence | num | 封禁状态 | 0:正常
1:被封 | +| email_status | num | 已验证邮箱 | 0:未验证
1:已验证 | +| tel_status | num | 已验证手机号 | 0:未验证
1:已验证 | +| identification | num | 1 | **作用尚不明确** | +| vip | obj | 大会员状态 | | +| birthday | num | 生日 | 时间戳 | +| is_tourist | num | 0 | **作用尚不明确** | +| is_fake_account | num | 0 | **作用尚不明确** | +| pin_prompting | num | 0 | **作用尚不明确** | +| is_deleted | num | 0 | **作用尚不明确** | +| coins | num | 硬币数 | | +| following | num | 粉丝数 | | +| follower | num | 粉丝数 | | + +`data`中的`vip`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---------------- | ---- | ---------------- | ----------------------------------------------- | +| type | num | 会员类型 | 0:无
1:月大会员
2:年度及以上大会员 | +| status | num | 会员状态 | 0:无
1:有 | +| due_date | num | 会员过期时间 | Unix时间戳(毫秒) | +| theme_type | num | 0 | 作用尚不明确 | +| label | obj | 会员标签 | | +| avatar_subscript | num | 是否显示会员图标 | 0:不显示
1:显示 | +| nickname_color | str | 会员昵称颜色 | 颜色码 | + +`vip`中的`label`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----------- | ---- | -------- | ------------------------------------------------------------ | +| path | str | 空 | 作用尚不明确 | +| text | str | 会员名称 | | +| label_theme | str | 会员标签 | vip:大会员
annual_vip:年度大会员
ten_annual_vip:十年大会员
hundred_annual_vip:百年大会员 | + +`data`中的`pendant`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------ | ---- | ----------- | -------------------- | +| pid | num | 挂件id | **详细说明有待补充** | +| name | str | 挂件名称 | | +| image | str | 挂件图片url | | +| expire | num | 0 | **作用尚不明确** | + +`data`中的`nameplate`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----------- | ---- | ---------------- | -------------------- | +| nid | num | 勋章id | **详细说明有待补充** | +| name | str | 勋章名称 | | +| image | str | 挂件图片url 正常 | | +| image_small | str | 勋章图片url 小 | | +| level | str | 勋章等级 | | +| condition | str | 勋章条件 | | + +`data`中的`Official`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----- | ---- | -------- | ------------------------------------------------- | +| role | num | 认证类型 | 0:无
1 2 7:个人认证
3 4 5 6:机构认证 | +| title | str | 认证信息 | 无为空 | +| desc | str | 认证备注 | 无为空 | +| type | num | 是否认证 | -1:无
0:认证 | + +`data`中的`level_exp`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------------- | ---- | -------- | ---------------- | +| current_level | num | 当前等级 | 0-6级 | +| current_min | num | 0 | 指当前等级从多少经验值开始 | +| current_exp | num | 0 | 当前账户的经验值 | +| next_exp | num | 0 | 下一个等级所需的经验值**(不是还需要多少)** | + +**示例:** + +```shell +curl -G 'api.bilibili.com/x/space/myinfo' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "mid": 293793435, + "name": "社会易姐QwQ", + "sex": "男", + "face": "http://i0.hdslb.com/bfs/face/aebb2639a0d47f2ce1fec0631f412eaf53d4a0be.jpg", + "sign": "高考刚结束的普通技术宅一枚,喜欢MC和编程以及电子,是车车人也是术术人,粉丝群:1136462265", + "rank": 10000, + "level": 5, + "jointime": 0, + "moral": 70, + "silence": 0, + "email_status": 1, + "tel_status": 1, + "identification": 1, + "vip": { + "type": 2, + "status": 1, + "due_date": 1644163200000, + "vip_pay_type": 0, + "theme_type": 0, + "label": { + "path": "", + "text": "年度大会员", + "label_theme": "annual_vip", + "text_color": "#FFFFFF", + "bg_style": 1, + "bg_color": "#FB7299", + "border_color": "" + }, + "avatar_subscript": 1, + "nickname_color": "#FB7299", + "role": 3, + "avatar_subscript_url": "http://i0.hdslb.com/bfs/vip/icon_Certification_big_member_22_3x.png" + }, + "pendant": { + "pid": 2511, + "name": "初音未来13周年", + "image": "http://i0.hdslb.com/bfs/garb/item/4f8f3f1f2d47f0dad84f66aa57acd4409ea46361.png", + "expire": 0, + "image_enhance": "http://i0.hdslb.com/bfs/garb/item/fe0b83b53e2342b16646f6e7a9370d8a867decdb.webp", + "image_enhance_frame": "http://i0.hdslb.com/bfs/garb/item/127c507ec8448be30cf5f79500ecc6ef2fd32f2c.png" + }, + "nameplate": { + "nid": 4, + "name": "青铜殿堂", + "image": "http://i0.hdslb.com/bfs/face/2879cd5fb8518f7c6da75887994c1b2a7fe670bd.png", + "image_small": "http://i0.hdslb.com/bfs/face/6707c120e00a3445933308fd9b7bd9fad99e9ec4.png", + "level": "普通勋章", + "condition": "单个自制视频总播放数\u003e=1万" + }, + "official": { + "role": 0, + "title": "", + "desc": "", + "type": -1 + }, + "birthday": 1015257600, + "is_tourist": 0, + "is_fake_account": 0, + "pin_prompting": 0, + "is_deleted": 0, + "in_reg_audit": 0, + "is_rip_user": false, + "profession": { + "id": 0, + "name": "", + "show_name": "" + }, + "level_exp": { + "current_level": 5, + "current_min": 10800, + "current_exp": 27125, + "next_exp": 28800 + }, + "coins": 9, + "following": 1122, + "follower": 1122 + } +} +``` + +
+ +## 多用户详细信息 + +> https://api.vc.bilibili.com/account/v1/user/cards + +*请求方式:GET* + +认证方式:Cookie(SESSDATA) + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | ---- | ----------------- | ------ | --------------------------------- | +| uids | nums | 目标用户的UID列表 | 必要 | 每个成员间用`,`分隔,最多50个成员 | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ----- | -------- | ----------------------------------------------------------------- | +| code | num | 返回值 | 0:成功
-400:请求错误
600007:超出批量获取用户信息限制 | +| msg | str | 错误信息 | 默认为空 | +| message | str | 错误信息 | 默认为空 | +| data | array | 信息本体 | | + +`data`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | --------- | ---- | +| 0 | obj | 用户1 | | +| n | obj | 用户(n+1) | | +| …… | obj | …… | …… | + +`data`数组中的对象: + +基本同「[用户空间详细信息](#用户空间详细信息)」中的data对象 + +**示例:** + +查询用户`uids=1,2,3`的详细信息 + +```shell +curl -G 'https://api.vc.bilibili.com/account/v1/user/cards' \ +--data-urlencode 'uids=1,2,3' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "msg": "", + "message": "", + "data": [{ + "mid": 1, + "name": "bishi", + "sex": "男", + "face": "https://i1.hdslb.com/bfs/face/34c5b30a990c7ce4a809626d8153fa7895ec7b63.gif", + "sign": "", + "rank": 10000, + "level": 4, + "silence": 0, + "vip": { + "type": 2, + "status": 1, + "due_date": 1754496000000, + "vip_pay_type": 1, + "theme_type": 0, + "label": { + "path": "", + "text": "年度大会员", + "label_theme": "annual_vip", + "text_color": "#FFFFFF", + "bg_style": 1, + "bg_color": "#FB7299", + "border_color": "", + "use_img_label": true, + "img_label_uri_hans": "", + "img_label_uri_hant": "", + "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png", + "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png" + }, + "avatar_subscript": 1, + "nickname_color": "#FB7299", + "role": 3, + "avatar_subscript_url": "", + "tv_vip_status": 0, + "tv_vip_pay_type": 0, + "tv_due_date": 1633622400 + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "", + "image_enhance_frame": "" + }, + "nameplate": { + "nid": 0, + "name": "", + "image": "", + "image_small": "", + "level": "", + "condition": "" + }, + "official": { + "role": 0, + "title": "", + "desc": "", + "type": -1 + }, + "birthday": 622137600, + "is_fake_account": 0, + "is_deleted": 0, + "in_reg_audit": 0, + "face_nft": 0, + "face_nft_new": 0, + "is_senior_member": 0 + }, { + "mid": 2, + "name": "碧诗", + "sex": "男", + "face": "https://i2.hdslb.com/bfs/face/ef0457addb24141e15dfac6fbf45293ccf1e32ab.jpg", + "sign": "https://kami.im 直男过气网红 # av362830 “We Are Star Dust”", + "rank": 20000, + "level": 6, + "silence": 0, + "vip": { + "type": 2, + "status": 1, + "due_date": 3901881600000, + "vip_pay_type": 0, + "theme_type": 0, + "label": { + "path": "", + "text": "十年大会员", + "label_theme": "ten_annual_vip", + "text_color": "#FFFFFF", + "bg_style": 1, + "bg_color": "#FB7299", + "border_color": "", + "use_img_label": true, + "img_label_uri_hans": "", + "img_label_uri_hant": "", + "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/adb599797dd171e2d3d6d012f448b49679258344.png", + "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/sGu57N6pgK.png" + }, + "avatar_subscript": 1, + "nickname_color": "#FB7299", + "role": 7, + "avatar_subscript_url": "", + "tv_vip_status": 0, + "tv_vip_pay_type": 0, + "tv_due_date": 1655481600 + }, + "pendant": { + "pid": 32257, + "name": "EveOneCat2", + "image": "https://i2.hdslb.com/bfs/garb/item/488870931b1bba66da36d22848f0720480d3d79a.png", + "expire": 0, + "image_enhance": "https://i2.hdslb.com/bfs/garb/item/5974f17f9d96a88bafba2f6d18d647a486e88312.webp", + "image_enhance_frame": "https://i2.hdslb.com/bfs/garb/item/4316a3910bb0bd6f2f1c267a3e9187f0b9fe5bd0.png" + }, + "nameplate": { + "nid": 10, + "name": "见习偶像", + "image": "https://i0.hdslb.com/bfs/face/e93dd9edfa7b9e18bf46fd8d71862327a2350923.png", + "image_small": "https://i1.hdslb.com/bfs/face/275b468b043ec246737ab8580a2075bee0b1263b.png", + "level": "普通勋章", + "condition": "所有自制视频总播放数>=10万" + }, + "official": { + "role": 2, + "title": "bilibili创始人(站长)", + "desc": "", + "type": 0 + }, + "birthday": 622137600, + "is_fake_account": 0, + "is_deleted": 0, + "in_reg_audit": 0, + "face_nft": 0, + "face_nft_new": 0, + "is_senior_member": 1 + }, { + "mid": 3, + "name": "囧囧倉", + "sex": "男", + "face": "https://i0.hdslb.com/bfs/face/d4de6a84557eea8f18510a3f61115d96832aa071.jpg", + "sign": "富强、民主、文明、和谐、自由、平等、公正、法治、爱国、敬业、诚信、友善。", + "rank": 10000, + "level": 5, + "silence": 0, + "vip": { + "type": 0, + "status": 0, + "due_date": 0, + "vip_pay_type": 0, + "theme_type": 0, + "label": { + "path": "", + "text": "", + "label_theme": "", + "text_color": "", + "bg_style": 0, + "bg_color": "", + "border_color": "", + "use_img_label": true, + "img_label_uri_hans": "", + "img_label_uri_hant": "", + "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/d7b702ef65a976b20ed854cbd04cb9e27341bb79.png", + "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/KJunwh19T5.png" + }, + "avatar_subscript": 0, + "nickname_color": "", + "role": 0, + "avatar_subscript_url": "", + "tv_vip_status": 0, + "tv_vip_pay_type": 0, + "tv_due_date": 0 + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "", + "image_enhance_frame": "" + }, + "nameplate": { + "nid": 0, + "name": "", + "image": "", + "image_small": "", + "level": "", + "condition": "" + }, + "official": { + "role": 0, + "title": "", + "desc": "", + "type": -1 + }, + "birthday": 1262275200, + "is_fake_account": 0, + "is_deleted": 0, + "in_reg_audit": 0, + "face_nft": 0, + "face_nft_new": 0, + "is_senior_member": 0 + }] +} +``` + +
diff --git a/docs/user/register.md b/docs/user/register.md new file mode 100644 index 0000000000..daea5920e7 --- /dev/null +++ b/docs/user/register.md @@ -0,0 +1,102 @@ +# 用户注册 + + +## 人机验证 + +[完成人机验证(参考验证登录)](../login/login_action/readme.md#验证登录) + +完成后得到`key`, `challenge`, `validate`, `seccode`四个参数 + + +## 发送短信验证码 + +[发送短信验证码(参考短信登录)](../login/login_action/SMS.md#发送短信验证码(web端)) + +**注意不同的是这里type=1而非21**,推测此参数决定短信内容 + +```bash +curl 'https://passport.bilibili.com/web/sms/general/v2/send' \ + --data-urlencode 'key=6eeb28e7bbd64b389da2be3a2778c7e3' \ + --data-urlencode 'captchaType=6' \ + --data-urlencode 'type=1' \ + --data-urlencode 'cid=1' \ + --data-urlencode 'tel=13888888888' \ + --data-urlencode 'challenge=c52148f88a28b6011db52bb213483ee8' \ + --data-urlencode 'validate=a98841cd6ea58e1b1f5783fca73cddb6' \ + --data-urlencode 'seccode=a98841cd6ea58e1b1f5783fca73cddb6|jordan' +``` + +
+查看示例 + +```json +{ + "code": 0, + "message": "验证码短信已下发" +} +``` + +
+ +## 提交注册请求 + +> https://passport.bilibili.com/web/reg/tel + +*请求方式:POST* + +**正文参数( application/x-www-form-urlencoded ):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| -------- | ---- | ---------------- | ------ | ------------------------------------------------------------ | +| cid | num | 国际冠字码 | 必要 | 可以从 [获取国际冠字码](../login/login_action/SMS.md#获取国际冠字码_web端) 接口中获取 | +| tel | num | 手机号码 | 必要 | | +| code | num | 短信验证码 | 必要 | | +| nickName | str | 昵称 | 必要 | | +| pwd | str | 密码 | 必要 | 密码为明文 | +| plat | num | 0 | 必要 | 平台? | +| gourl | str | 注册成功跳转地址 | 非必要 | 默认为主页`https://www.bilibili.com/` | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ----------------------------------------------- | +| code | num | 返回值 | 0:成功
1005:验证码错误
1007:验证码过期 | +| message | str | 错误信息 | 成功时无此字段 | +| data | obj | 信息本体 | 只在成功时存在 | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------------ | ---- | ---------- | ----------------------------- | +| redirectUrl | str | 跳转链接 | | +| hint | str | "注册成功" | 成功后不提示成功还能提示什么? | +| in_reg_audit | num | (?) | | + +```bash +curl 'https://passport.bilibili.com/web/reg/tel' \ + --data-urlencode 'plat=0' \ + --data-urlencode 'cid=1' \ + --data-urlencode 'tel=13888888888' \ + --data-urlencode 'code=121314' \ + --data-urlencode 'nickName=萌系小妹纸わ' + --data-urlencode 'pwd=Password1234' \ + --data-urlencode 'gourl=https://www.bilibili.com' +``` + +
+查看示例 + +```json +{ + "code": 0, + "data": { + "redirectUrl": "https://www.bilibili.com", + "hint": "注册成功", + "in_reg_audit": 0 + } +} +``` + +
\ No newline at end of file diff --git a/docs/user/relation.md b/docs/user/relation.md new file mode 100644 index 0000000000..f333a90793 --- /dev/null +++ b/docs/user/relation.md @@ -0,0 +1,2450 @@ +# 用户关系相关 + +- [查询用户粉丝明细](#查询用户粉丝明细) +- [查询用户关注明细](#查询用户关注明细) +- [查询用户关注明细2](#查询用户关注明细2) +- [搜索关注明细](#搜索关注明细) +- [查询共同关注明细](#查询共同关注明细) +- [查询悄悄关注明细](#查询悄悄关注明细) +- [查询互相关注明细](#查询互相关注明细) +- [查询黑名单明细](#查询黑名单明细) +- [操作用户关系](#操作用户关系) +- [批量操作用户关系](#批量操作用户关系) +- [查询用户与自己关系_仅查关注](#查询用户与自己关系_仅查关注) +- [查询用户与自己关系_互相](#查询用户与自己关系_互相) +- [批量查询用户与自己关系](#批量查询用户与自己关系) +- [关注分组相关](#关注分组相关) + - [查询关注分组列表](#查询关注分组列表) + - [查询关注分组明细](#查询关注分组明细) + - [查询目标用户所在的分组](#查询目标用户所在的分组) + - [查询所有特别关注的mid](#查询所有特别关注的mid) + - [创建分组](#创建分组) + - [重命名分组](#重命名分组) + - [删除分组](#删除分组) + - [修改分组成员](#修改分组成员) + - [复制关注到分组](#复制关注到分组) + - [移动关注到分组](#移动关注到分组) + +--- + +## 查询用户粉丝明细 + + + +> https://api.bilibili.com/x/relation/followers + +*请求方式:GET* + +认证方式:Cookie(SESSDATA)或APP + +登录可看自己前1000名,其他用户可查看前250名(网页端请求时ps为20,所以直接查看只能看到前100名) + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ---------- | ---- | ------------ | ----------- | ---------------------------------- | +| access_key | str | APP登录Token | APP方式必要 | | +| vmid | num | 目标用户mid | 必要 | | +| ps | num | 每页项数 | 非必要 | 默认为50 | +| pn | num | 页码 | 非必要 | 默认为1
其他用户仅可查看前5页 | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | --------------------------------------------------- | +| code | num | 返回值 | 0:成功
-400:请求错误
22007:访问超过5页 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---------- | ----- | -------- | ------------ | +| list | array | 明细列表 | | +| re_version | num | ??? | 作用尚不明确 | +| total | num | 粉丝总数 | | + +`data`中的`list`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | --------- | ---------------- | +| 0 | obj | 粉丝1 | | +| n | obj | 粉丝(n+1) | 按照关注顺序排列 | +| …… | obj | …… | …… | + +`list`中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| --------------- | ---- | ------------ | --------------------------------------- | +| mid | num | 用户mid | | +| attribute | num | 关注属性 | 0:未关注
2:已关注
6:已互粉 | +| mtime | num | 成为粉丝时间 | 时间戳
互关后刷新 | +| tag | null | | | +| special | num | 0 | | +| uname | str | 用户昵称 | | +| face | str | 用户头像url | | +| sign | str | 用户签名 | | +| official_verify | obj | 认证信息 | | +| vip | obj | 会员信息 | | + +`list`中的对象中的`official_verify`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | ------------ | ------------------- | +| type | num | 用户认证类型 | -1:无
0:个人认证
1:机构认证 | +| desc | str | 用户认证信息 | 无为空 | + +`list`中的对象中的`vip`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------------- | ---- | ------------ | ----------------------------------------------- | +| vipType | num | 会员类型 | 0:无
1:月度大会员
2:年度以上大会员 | +| vipDueDate | num | 会员到期时间 | 时间戳 毫秒 | +| dueRemark | str | 空 | 作用尚不明确 | +| accessStatus | num | 0 | 作用尚不明确 | +| vipStatus | num | 大会员状态 | 0:无
1:有 | +| vipStatusWarn | str | 空 | 作用尚不明确 | +| themeType | num | 0 | 作用尚不明确 | +| label | obj | ??? | 作用尚不明确 | + +`vip`中的`label`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | ---- | ------------ | +| path | str | 空 | 作用尚不明确 | + +**示例:** + +获取用户`mid=293793435`的粉丝明细 + +```shell +curl -G 'https://api.bilibili.com/x/relation/followers' \ +--data-urlencode 'vmid=293793435' \ +--data-urlencode 'ps=2' \ +--data-urlencode 'pn=1' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "list": [{ + "mid": 387195656, + "attribute": 0, + "mtime": 1583839793, + "tag": null, + "special": 0, + "uname": "L_E_M_O_H_E", + "face": "https://i1.hdslb.com/bfs/face/8ec537db75eeb292faa8dc85a9ff8aba83148c86.jpg", + "sign": "暂时断更。。Back later", + "official_verify": { + "type": -1, + "desc": "" + }, + "vip": { + "vipType": 0, + "vipDueDate": 0, + "dueRemark": "", + "accessStatus": 0, + "vipStatus": 0, + "vipStatusWarn": "", + "themeType": 0, + "label": { + "path": "" + } + } + }, { + "mid": 175989424, + "attribute": 0, + "mtime": 1583822019, + "tag": null, + "special": 0, + "uname": "哥本哈根iii", + "face": "https://i1.hdslb.com/bfs/face/e53c0fe9315176d48bd294b1f381f0da70131cd7.jpg", + "sign": "", + "official_verify": { + "type": -1, + "desc": "" + }, + "vip": { + "vipType": 0, + "vipDueDate": 0, + "dueRemark": "", + "accessStatus": 0, + "vipStatus": 0, + "vipStatusWarn": "", + "themeType": 0, + "label": { + "path": "" + } + } + }], + "re_version": 3857745402, + "total": 365 + } +} +``` + +
+ +## 查询用户关注明细 + + + +> https://api.bilibili.com/x/relation/followings + +*请求方式:GET* + +认证方式:Cookie(SESSDATA)或APP + +登录可看自己全部,其他用户仅可查看前5页 + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ---------- | ---- | ------------ | ----------- | ------------------------------------------------------- | +| access_key | str | APP登录Token | APP方式必要 | | +| vmid | num | 目标用户mid | 必要 | | +| order_type | str | 排序方式 | 非必要 | 按照关注顺序排列:留空
按照最常访问排列:attention | +| ps | num | 每页项数 | 非必要 | 默认为50 | +| pn | num | 页码 | 非必要 | 默认为1
其他用户仅可查看前5页 | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------------------ | +| code | num | 返回值 | 0:成功
-400:请求错误
22007:访问超过5页
22115:用户已设置隐私,无法查看 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +data 对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---------- | ----- | -------- | ------------ | +| list | array | 明细列表 | | +| re_version | num | ??? | 作用尚不明确 | +| total | num | 关注总数 | | + +`data`中的`list`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | --------- | ---------------- | +| 0 | obj | 关注1 | | +| n | obj | 关注(n+1) | 按照关注顺序排列 | +| …… | obj | …… | …… | + +数组`list`中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| --------------- | ---------------------------------------- | ------------ | --------------------------------------- | +| mid | num | 用户mid | | +| attribute | num | 关注属性 | 0:未关注
2:已关注
6:已互粉 | +| mtime | num | 关注对方时间 | 时间戳
互关后刷新 | +| tag | 默认分组:null
存在至少一个分组:array | 分组id | | +| special | num | 特别关注标志 | 0:否
1:是 | +| uname | str | 用户昵称 | | +| face | str | 用户头像url | | +| sign | str | 用户签名 | | +| official_verify | obj | 认证信息 | | +| vip | obj | 会员信息 | | + +数组`list`中的对象中的`tag`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | --------------------- | ---- | +| 0 | num | 位于分组1的分组id | | +| n | num | 位于分组(n+1)的分组id | | +| …… | num | …… | …… | + +`list`中的对象中的`official_verify`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | ------------ | ------------------- | +| type | num | 用户认证类型 | -1:无
1:认证 | +| desc | str | 用户认证信息 | 无为空 | + +`list`中的对象中的`vip`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------------- | ---- | ------------ | ----------------------------------------------- | +| vipType | num | 会员类型 | 0:无
1:月度大会员
2:年度以上大会员 | +| vipDueDate | num | 会员到期时间 | 时间戳 毫秒 | +| dueRemark | str | 空 | 作用尚不明确 | +| accessStatus | num | 0 | 作用尚不明确 | +| vipStatus | num | 大会员状态 | 0:无
1:有 | +| vipStatusWarn | str | 空 | 作用尚不明确 | +| themeType | num | 0 | 作用尚不明确 | +| label | obj | ??? | 作用尚不明确 | + +`vip`中的`label`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | ---- | ------------ | +| path | str | 空 | 作用尚不明确 | + +**示例:** + +获取用户`mid=293793435`的关注明细,按照关注顺序 + +```shell +curl -G 'https://api.bilibili.com/x/relation/followings' \ +--data-urlencode 'vmid=293793435' \ +--data-urlencode 'order_type=' \ +--data-urlencode 'ps=2' \ +--data-urlencode 'pn=1' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "list": [{ + "mid": 14082, + "attribute": 2, + "mtime": 1584271945, + "tag": null, + "special": 0, + "uname": "山新", + "face": "https://i0.hdslb.com/bfs/face/74c82caee6d9eb623e56161ea8ed6d68afabfeae.jpg", + "sign": "都说了是天依爹地,不是妈咪。\r私信有点多回复不过来~商业合作啥的请移步Weibo私信@山新 哦哦哦~", + "official_verify": { + "type": 0, + "desc": "配音演员、声优。洛天依声源提供者。" + }, + "vip": { + "vipType": 2, + "vipDueDate": 1601654400000, + "dueRemark": "", + "accessStatus": 0, + "vipStatus": 1, + "vipStatusWarn": "", + "themeType": 0, + "label": { + "path": "" + } + } + }, { + "mid": 420831218, + "attribute": 2, + "mtime": 1584208169, + "tag": [207542], + "special": 0, + "uname": "支付宝Alipay", + "face": "https://i2.hdslb.com/bfs/face/aaf18aeb2d9822e28a590bd8d878572ca8c59e04.jpg", + "sign": "阿支来了,关注点赞转发投币四连走起!", + "official_verify": { + "type": 1, + "desc": "支付宝官方账号" + }, + "vip": { + "vipType": 1, + "vipDueDate": 1585065600000, + "dueRemark": "", + "accessStatus": 0, + "vipStatus": 1, + "vipStatusWarn": "", + "themeType": 0, + "label": { + "path": "" + } + } + }], + "re_version": 3228575555, + "total": 699 + } +} +``` + +
+ +## 查询用户关注明细2 + + + +> https://app.biliapi.net/x/v2/relation/followings + +*请求方式:GET* + +认证方式:Cookie(SESSDATA)或APP + +登录可看自己全部,其他用户仅可查看前5页,可以获取已设置可见性隐私的关注列表 + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ---------- | ---- | ------------ | ----------- | ------------------------------------------------------- | +| access_key | str | APP登录Token | APP方式必要 | | +| vmid | num | 目标用户mid | 必要 | | +| order_type | str | 排序方式 | 非必要 | 按照关注顺序排列:留空
按照最常访问排列:attention | +| ps | num | 每页项数 | 非必要 | 默认为50 | +| pn | num | 页码 | 非必要 | 默认为1
其他用户仅可查看前5页 | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------------------ | +| code | num | 返回值 | 0:成功
-400:请求错误
22007:访问超过5页 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +data 对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---------- | ----- | -------- | ------------ | +| list | array | 明细列表 | | +| re_version | num | ??? | 作用尚不明确 | +| total | num | 关注总数 | | + +`data`中的`list`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | --------- | ---------------- | +| 0 | obj | 关注1 | | +| n | obj | 关注(n+1) | 按照关注顺序排列 | +| …… | obj | …… | …… | + +数组`list`中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| --------------- | ---------------------------------------- | ------------ | --------------------------------------- | +| mid | num | 用户mid | | +| attribute | num | 关注属性 | 0:未关注
2:已关注
6:已互粉 | +| mtime | num | 关注对方时间 | 时间戳
互关后刷新 | +| tag | 默认分组:null
存在至少一个分组:array | 分组id | | +| special | num | 特别关注标志 | 0:否
1:是 | +| uname | str | 用户昵称 | | +| face | str | 用户头像url | | +| sign | str | 用户签名 | | +| official_verify | obj | 认证信息 | | +| vip | obj | 会员信息 | | + +数组`list`中的对象中的`tag`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | --------------------- | ---- | +| 0 | num | 位于分组1的分组id | | +| n | num | 位于分组(n+1)的分组id | | +| …… | num | …… | …… | + +`list`中的对象中的`official_verify`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | ------------ | ------------------- | +| type | num | 用户认证类型 | -1:无
1:认证 | +| desc | str | 用户认证信息 | 无为空 | + +`list`中的对象中的`vip`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------------- | ---- | ------------ | ----------------------------------------------- | +| vipType | num | 会员类型 | 0:无
1:月度大会员
2:年度以上大会员 | +| vipDueDate | num | 会员到期时间 | 时间戳 毫秒 | +| dueRemark | str | 空 | 作用尚不明确 | +| accessStatus | num | 0 | 作用尚不明确 | +| vipStatus | num | 大会员状态 | 0:无
1:有 | +| vipStatusWarn | str | 空 | 作用尚不明确 | +| themeType | num | 0 | 作用尚不明确 | +| label | obj | ??? | 作用尚不明确 | + +`vip`中的`label`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | ---- | ------------ | +| path | str | 空 | 作用尚不明确 | + +**示例:** + +获取用户`mid=293793435`的关注明细,按照关注顺序 + +```shell +curl -G 'https://app.biliapi.net/x/v2/relation/followings' \ +--data-urlencode 'vmid=293793435' \ +--data-urlencode 'order_type=' \ +--data-urlencode 'ps=2' \ +--data-urlencode 'pn=1' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "list": [{ + "mid": 14082, + "attribute": 2, + "mtime": 1584271945, + "tag": null, + "special": 0, + "uname": "山新", + "face": "https://i0.hdslb.com/bfs/face/74c82caee6d9eb623e56161ea8ed6d68afabfeae.jpg", + "sign": "都说了是天依爹地,不是妈咪。\r私信有点多回复不过来~商业合作啥的请移步Weibo私信@山新 哦哦哦~", + "official_verify": { + "type": 0, + "desc": "配音演员、声优。洛天依声源提供者。" + }, + "vip": { + "vipType": 2, + "vipDueDate": 1601654400000, + "dueRemark": "", + "accessStatus": 0, + "vipStatus": 1, + "vipStatusWarn": "", + "themeType": 0, + "label": { + "path": "" + } + } + }, { + "mid": 420831218, + "attribute": 2, + "mtime": 1584208169, + "tag": [207542], + "special": 0, + "uname": "支付宝Alipay", + "face": "https://i2.hdslb.com/bfs/face/aaf18aeb2d9822e28a590bd8d878572ca8c59e04.jpg", + "sign": "阿支来了,关注点赞转发投币四连走起!", + "official_verify": { + "type": 1, + "desc": "支付宝官方账号" + }, + "vip": { + "vipType": 1, + "vipDueDate": 1585065600000, + "dueRemark": "", + "accessStatus": 0, + "vipStatus": 1, + "vipStatusWarn": "", + "themeType": 0, + "label": { + "path": "" + } + } + }], + "re_version": 3228575555, + "total": 699 + } +} +``` + +
+ +## 搜索关注明细 + + + +> https://api.bilibili.com/x/relation/followings/search + +*请求方式:GET* + +认证方式:Cookie(SESSDATA)或APP + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ---------- | ---- | ------------ | ----------- | -------- | +| access_key | str | APP登录Token | APP方式必要 | | +| vmid | str | 目标用户mid | 必要 | | +| name | str | 搜索关键词 | 必要 | | +| ps | num | 每页项数 | 非必要 | 默认为50 | +| pn | num | 页码 | 非必要 | 默认为1 | + +data 对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---------- | ----- | -------- | ------------ | +| list | array | 明细列表 | | +| re_version | num | ??? | 作用尚不明确 | +| total | num | 关注总数 | | + +`data`中的`list`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | ------------- | ---------------- | +| 0 | obj | 共同关注1 | | +| n | obj | 共同关注(n+1) | 按照关注顺序排列 | +| …… | obj | …… | …… | + +数组`list`中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| --------------- | ------------------------------------------- | ------------ | --------------------------------------- | +| mid | num | 用户mid | | +| attribute | num | 关注属性 | 0:未关注
2:已关注
6:已互粉 | +| mtime | num | 关注对方时间 | 时间戳
互关后刷新 | +| tag | 默认分组:null
存在至少一个分组:array | 分组id | | +| special | num | 特别关注标志 | 0:否
1:是 | +| uname | str | 用户昵称 | | +| face | str | 用户头像url | | +| sign | str | 用户签名 | | +| official_verify | obj | 认证信息 | | +| vip | obj | 会员信息 | | + +数组`list`中的对象中的`tag`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | --------------------- | ---- | +| 0 | num | 位于分组1的分组id | | +| n | num | 位于分组(n+1)的分组id | | +| …… | num | …… | …… | + +`list`中的对象中的`official_verify`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | ------------ | ------------------- | +| type | num | 用户认证类型 | -1:无
1:认证 | +| desc | str | 用户认证信息 | 无为空 | + +`list`中的对象中的`vip`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------------- | ---- | ------------ | ----------------------------------------------- | +| vipType | num | 会员类型 | 0:无
1:月度大会员
2:年度以上大会员 | +| vipDueDate | num | 会员到期时间 | 时间戳 毫秒 | +| dueRemark | str | 空 | 作用尚不明确 | +| accessStatus | num | 0 | 作用尚不明确 | +| vipStatus | num | 大会员状态 | 0:无
1:有 | +| vipStatusWarn | str | 空 | 作用尚不明确 | +| themeType | num | 0 | 作用尚不明确 | +| label | obj | ??? | 作用尚不明确 | + +`vip`中的`label`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | ---- | ------------ | +| path | str | 空 | 作用尚不明确 | + +**示例:** + +搜索我的关注列表中关键词`warma` + +```shell +curl -G 'https://api.bilibili.com/x/relation/followings/search' \ +--data-urlencode 'vmid=293793435' \ +--data-urlencode 'name=warma' \ +--data-urlencode 'ps=2' \ +--data-urlencode 'pn=1' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "list": [ + { + "mid": 53456, + "attribute": 2, + "mtime": 1586415053, + "tag": [ + -10 + ], + "special": 1, + "uname": "Warma", + "face": "https://i2.hdslb.com/bfs/face/c1bbee6d255f1e7fc434e9930f0f288c8b24293a.jpg", + "sign": "我是沃玛,做点傻开心的视频。日常发在微博:@_warma_ ", + "official_verify": { + "type": 0, + "desc": "bilibili 知名UP主" + }, + "vip": { + "vipType": 2, + "vipDueDate": 1637424000000, + "dueRemark": "", + "accessStatus": 0, + "vipStatus": 1, + "vipStatusWarn": "", + "themeType": 0, + "label": { + "path": "" + } + } + } + ], + "total": 1 + } +} +``` + +
+ +## 查询共同关注明细 + + + +> https://api.bilibili.com/x/relation/same/followings + +*请求方式:GET* + +认证方式:Cookie(SESSDATA)或APP + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ---------- | ---- | ------------ | ----------- | -------- | +| access_key | str | APP登录Token | APP方式必要 | | +| vmid | num | 目标用户mid | 必要 | | +| ps | num | 每页项数 | 非必要 | 默认为50 | +| pn | num | 页码 | 非必要 | 默认为1 | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------- | +| code | num | 返回值 | 0:成功
-101:账号未登录
-400:请求错误 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +data 对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---------- | ----- | -------- | ------------ | +| list | array | 明细列表 | | +| re_version | num | ??? | 作用尚不明确 | +| total | num | 关注总数 | | + +`data`中的`list`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | ------------- | ---------------- | +| 0 | obj | 共同关注1 | | +| n | obj | 共同关注(n+1) | 按照关注顺序排列 | +| …… | obj | …… | …… | + +数组`list`中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| --------------- | ------------------------------------------- | ------------ | --------------------------------------- | +| mid | num | 用户mid | | +| attribute | num | 关注属性 | 0:未关注
2:已关注
6:已互粉 | +| mtime | num | 关注对方时间 | 时间戳
互关后刷新 | +| tag | 默认分组:null
存在至少一个分组:array | 分组id | | +| special | num | 特别关注标志 | 0:否
1:是 | +| uname | str | 用户昵称 | | +| face | str | 用户头像url | | +| sign | str | 用户签名 | | +| official_verify | obj | 认证信息 | | +| vip | obj | 会员信息 | | + +数组`list`中的对象中的`tag`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | --------------------- | ---- | +| 0 | num | 位于分组1的分组id | | +| n | num | 位于分组(n+1)的分组id | | +| …… | num | …… | …… | + +`list`中的对象中的`official_verify`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | ------------ | ------------------- | +| type | num | 用户认证类型 | -1:无
1:认证 | +| desc | str | 用户认证信息 | 无为空 | + +`list`中的对象中的`vip`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------------- | ---- | ------------ | ----------------------------------------------- | +| vipType | num | 会员类型 | 0:无
1:月度大会员
2:年度以上大会员 | +| vipDueDate | num | 会员到期时间 | 时间戳 毫秒 | +| dueRemark | str | 空 | 作用尚不明确 | +| accessStatus | num | 0 | 作用尚不明确 | +| vipStatus | num | 大会员状态 | 0:无
1:有 | +| vipStatusWarn | str | 空 | 作用尚不明确 | +| themeType | num | 0 | 作用尚不明确 | +| label | obj | ??? | 作用尚不明确 | + +`vip`中的`label`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | ---- | ------------ | +| path | str | 空 | 作用尚不明确 | + +**示例:** + +获取自己与用户`mid=2`的共同关注明细 + +```shell +curl -G 'https://api.bilibili.com/x/relation/same/followings' \ +--data-urlencode 'vmid=2' \ +--data-urlencode 'ps=2' \ +--data-urlencode 'pn=1' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "list": [ + { + "mid": 116683, + "attribute": 2, + "mtime": 1564627532, + "tag": null, + "special": 0, + "uname": "=咬人猫=", + "face": "https://i0.hdslb.com/bfs/face/8fad84a4470f3d894d8f0dc95555ab8f2cb10a83.jpg", + "sign": "面瘫女仆酱~小粗腿~事业线什么的!!吐槽你就输了!喵~", + "official_verify": { + "type": 0, + "desc": "bilibili 2019百大UP主、高能联盟成员" + }, + "vip": { + "vipType": 2, + "vipDueDate": 1618934400000, + "dueRemark": "", + "accessStatus": 0, + "vipStatus": 1, + "vipStatusWarn": "", + "themeType": 0, + "label": { + "path": "" + } + } + }, + { + "mid": 517717593, + "attribute": 2, + "mtime": 1592126052, + "tag": [ + 207542 + ], + "special": 0, + "uname": "上海爱丽丝幻乐团", + "face": "https://i0.hdslb.com/bfs/face/851a9191cbe93e66304d7577c0f6f83834e52109.jpg", + "sign": "日本同人社团 上海爱丽丝幻乐团", + "official_verify": { + "type": 0, + "desc": "上海爱丽丝幻乐团官方账号" + }, + "vip": { + "vipType": 1, + "vipDueDate": 1593792000000, + "dueRemark": "", + "accessStatus": 0, + "vipStatus": 0, + "vipStatusWarn": "", + "themeType": 0, + "label": { + "path": "" + } + } + } + ], + "re_version": 2498273968, + "total": 38 + } +} +``` + +
+ +## 查询悄悄关注明细 + + + +> https://api.bilibili.com/x/relation/whispers + +*请求方式:GET* + +认证方式:Cookie(SESSDATA)或APP + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ---------- | ---- | ------------ | ----------- | -------- | +| access_key | str | APP登录Token | APP方式必要 | | +| ps | num | 每页项数 | 非必要 | 默认为50 | +| pn | num | 页码 | 非必要 | 默认为1 | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------- | +| code | num | 返回值 | 0:成功
-101:账号未登录
-400:请求错误 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +data 对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---------- | ----- | -------- | ------------ | +| list | array | 明细列表 | | +| re_version | num | ??? | 作用尚不明确 | + +`data`中的`list`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | --------- | ---------------- | +| 0 | obj | 关注1 | | +| n | obj | 关注(n+1) | 按照关注顺序排列 | +| …… | obj | …… | …… | + +数组`list`中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| --------------- | ------------------------------------------- | ------------ | --------------------------------------- | +| mid | num | 用户mid | | +| attribute | num | 关注属性 | 0:未关注
2:已关注
6:已互粉 | +| mtime | num | 关注对方时间 | 时间戳
互关后刷新 | +| tag | 默认分组:null
存在至少一个分组:array | 分组id | | +| special | num | 特别关注标志 | 0:否
1:是 | +| uname | str | 用户昵称 | | +| face | str | 用户头像url | | +| sign | str | 用户签名 | | +| official_verify | obj | 认证信息 | | +| vip | obj | 会员信息 | | + +数组`list`中的对象中的`tag`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | --------------------- | ---- | +| 0 | num | 位于分组1的分组id | | +| n | num | 位于分组(n+1)的分组id | | +| …… | num | …… | …… | + +`list`中的对象中的`official_verify`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | ------------ | ------------------- | +| type | num | 用户认证类型 | -1:无
1:认证 | +| desc | str | 用户认证信息 | 无为空 | + +`list`中的对象中的`vip`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------------- | ---- | ------------ | ----------------------------------------------- | +| vipType | num | 会员类型 | 0:无
1:月度大会员
2:年度以上大会员 | +| vipDueDate | num | 会员到期时间 | 时间戳 毫秒 | +| dueRemark | str | 空 | 作用尚不明确 | +| accessStatus | num | 0 | 作用尚不明确 | +| vipStatus | num | 大会员状态 | 0:无
1:有 | +| vipStatusWarn | str | 空 | 作用尚不明确 | +| themeType | num | 0 | 作用尚不明确 | +| label | obj | ??? | 作用尚不明确 | + +`vip`中的`label`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | ---- | ------------ | +| path | str | 空 | 作用尚不明确 | + +**示例:** + +获取悄悄关注明细 + +```shell +curl -G 'https://api.bilibili.com/x/relation/whispers' \ +--data-urlencode 'ps=2' \ +--data-urlencode 'pn=1' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "list": [ + { + "mid": 178429408, + "attribute": 1, + "mtime": 1605972105, + "tag": null, + "special": 0, + "uname": "老弟一号", + "face": "https://i2.hdslb.com/bfs/face/21426275f3d3149b96b88783275205ba574c09e3.jpg", + "sign": "萌新硬件玩家,前垃圾佬~(◦˙▽˙◦某宝店 老弟一号 粉丝群679540094商务合作V13869651328", + "official_verify": { + "type": 0, + "desc": "知识领域优质UP主" + }, + "vip": { + "vipType": 2, + "vipDueDate": 1632499200000, + "dueRemark": "", + "accessStatus": 0, + "vipStatus": 1, + "vipStatusWarn": "", + "themeType": 0, + "label": { + "path": "" + } + } + } + ], + "re_version": 2137574562 + } +} +``` + +
+ +## 查询互相关注明细 + + + +> https://api.bilibili.com/x/relation/friends + +*请求方式:GET* + +认证方式:Cookie(SESSDATA)或APP + +查询与自己互关的用户明细,可看全部 + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ---------- | ---- | ------------ | ----------- | -------- | +| access_key | str | APP登录Token | APP方式必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------- | +| code | num | 返回值 | 0:成功
-101:账号未登录
-400:请求错误 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +data 对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---------- | ----- | -------- | ------------ | +| list | array | 明细列表 | | +| re_version | num | ??? | 作用尚不明确 | + +`data`中的`list`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | --------- | ---------------- | +| 0 | obj | 互关1 | | +| n | obj | 互关(n+1) | 按照关注顺序排列 | +| …… | obj | …… | …… | + +数组`list`中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| --------------- | ------------------------------------------- | ------------ | --------------------------------------- | +| mid | num | 用户mid | | +| attribute | num | 关注属性 | 6:已互粉 | +| mtime | num | 关注对方时间 | 时间戳
互关后刷新 | +| tag | 默认分组:null
存在至少一个分组:array | 分组id | | +| special | num | 特别关注标志 | 0:否
1:是 | +| uname | str | 用户昵称 | | +| face | str | 用户头像url | | +| sign | str | 用户签名 | | +| official_verify | obj | 认证信息 | | +| vip | obj | 会员信息 | | + +数组`list`中的对象中的`tag`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | --------------------- | ---- | +| 0 | num | 位于分组1的分组id | | +| n | num | 位于分组(n+1)的分组id | | +| …… | num | …… | …… | + +`list`中的对象中的`official_verify`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | ------------ | ------------------- | +| type | num | 用户认证类型 | -1:无
1:认证 | +| desc | str | 用户认证信息 | 无为空 | + +`list`中的对象中的`vip`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------------- | ---- | ------------ | ----------------------------------------------- | +| vipType | num | 会员类型 | 0:无
1:月度大会员
2:年度以上大会员 | +| vipDueDate | num | 会员到期时间 | 时间戳 毫秒 | +| dueRemark | str | 空 | 作用尚不明确 | +| accessStatus | num | 0 | 作用尚不明确 | +| vipStatus | num | 大会员状态 | 0:无
1:有 | +| vipStatusWarn | str | 空 | 作用尚不明确 | +| themeType | num | 0 | 作用尚不明确 | +| label | obj | ??? | 作用尚不明确 | + +`vip`中的`label`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | ---- | ------------ | +| path | str | 空 | 作用尚不明确 | + +**示例:** + +获取互相关注明细 + +```shell +curl -G 'https://api.bilibili.com/x/relation/friends' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "list": [ + { + "mid": 293793435, + "attribute": 6, + "mtime": 1583817598, + "tag": [-10], + "special": 1, + "uname": "社会易姐QwQ", + "face": "https://i0.hdslb.com/bfs/face/aebb2639a0d47f2ce1fec0631f412eaf53d4a0be.jpg", + "sign": "BAC项目负责人 | 带砖技术宅 | MC 编程 电子 | 车万众\u0026术术人 | 粉丝群1136462265 博客shakaianee.top", + "face_nft": 0, + "official_verify": { + "type": -1, + "desc": "" + }, + "vip": { + "vipType": 2, + "vipDueDate": 1675872000000, + "dueRemark": "", + "accessStatus" :0, + "vipStatus": 1, + "vipStatusWarn": "", + "themeType": 0, + "label": { + "path": "", + "text": "年度大会员", + "label_theme": "annual_vip", + "text_color": "#FFFFFF", + "bg_style": 1, + "bg_color": "#FB7299", + "border_color": "" + }, + "avatar_subscript": 1, + "nickname_color": "#FB7299", + "avatar_subscript_url": "" + }, + "nft_icon": "", + "rec_reason": "", + "track_id": "" + } + ], + "re_version": 0 + } +} +``` + +
+ +## 查询黑名单明细 + +> https://api.bilibili.com/x/relation/blacks + +*请求方式:GET* + +认证方式:Cookie(SESSDATA)或APP + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ---------- | ---- | ------------ | ----------- | -------- | +| access_key | str | APP登录Token | APP方式必要 | | +| ps | num | 每页项数 | 非必要 | 默认为50 | +| pn | num | 页码 | 非必要 | 默认为1 | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------- | +| code | num | 返回值 | 0:成功
-101:账号未登录
-400:请求错误 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +data 对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---------- | ----- | ------------ | ------------ | +| list | array | 明细列表 | | +| re_version | num | ??? | 作用尚不明确 | +| total | num | 黑名单总计数 | | + +`data`中的`list`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | --------- | ---------------- | +| 0 | obj | 关注1 | | +| n | obj | 关注(n+1) | 按照关注顺序排列 | +| …… | obj | …… | …… | + +数组`list`中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| --------------- | ---- | ------------ | ---------------------- | +| mid | num | 用户mid | | +| attribute | num | 关注属性 | 128:已拉黑 | +| mtime | num | 关注对方时间 | 时间戳
互关后刷新 | +| tag | null | | | +| special | num | 0 | | +| uname | str | 用户昵称 | | +| face | str | 用户头像url | | +| sign | str | 用户签名 | | +| official_verify | obj | 认证信息 | | +| vip | obj | 会员信息 | | + +`list`中的对象中的`official_verify`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | ------------ | ------------------- | +| type | num | 用户认证类型 | -1:无
1:认证 | +| desc | str | 用户认证信息 | 无为空 | + +`list`中的对象中的`vip`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------------- | ---- | ------------ | ----------------------------------------------- | +| vipType | num | 会员类型 | 0:无
1:月度大会员
2:年度以上大会员 | +| vipDueDate | num | 会员到期时间 | 时间戳 毫秒 | +| dueRemark | str | 空 | 作用尚不明确 | +| accessStatus | num | 0 | 作用尚不明确 | +| vipStatus | num | 大会员状态 | 0:无
1:有 | +| vipStatusWarn | str | 空 | 作用尚不明确 | +| themeType | num | 0 | 作用尚不明确 | +| label | obj | ??? | 作用尚不明确 | + +`vip`中的`label`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | ---- | ------------ | +| path | str | 空 | 作用尚不明确 | + +**示例:** + +获取黑名单明细 + +```shell +curl -G 'https://api.bilibili.com/x/relation/blacks' \ +--data-urlencode 'ps=2' \ +--data-urlencode 'pn=1' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "list": [ + { + "mid": 22179720, + "attribute": 128, + "mtime": 1603032789, + "tag": null, + "special": 0, + "uname": "咩2016", + "face": "https://i0.hdslb.com/bfs/face/41fe435a7e62eae605a5908652f32f3afff2ae74.jpg", + "sign": "", + "official_verify": { + "type": 0, + "desc": "" + }, + "vip": { + "vipType": 0, + "vipDueDate": 0, + "dueRemark": "", + "accessStatus": 0, + "vipStatus": 0, + "vipStatusWarn": "", + "themeType": 0, + "label": { + "path": "" + } + } + }, + { + "mid": 16174624, + "attribute": 128, + "mtime": 1603026420, + "tag": null, + "special": 0, + "uname": "其实死亡没有那么痛", + "face": "https://i2.hdslb.com/bfs/face/79257f5a2e7194a71337ccca5927afba7706d316.jpg", + "sign": "等我,我马上就来", + "official_verify": { + "type": 0, + "desc": "" + }, + "vip": { + "vipType": 0, + "vipDueDate": 0, + "dueRemark": "", + "accessStatus": 0, + "vipStatus": 0, + "vipStatusWarn": "", + "themeType": 0, + "label": { + "path": "" + } + } + } + ], + "re_version": 897205356, + "total": 2 + } +} +``` + +
+ +## 操作用户关系 + + + +> https://api.bilibili.com/x/relation/modify + +*请求方式:POST* + +认证方式:Cookie(SESSDATA)或APP + +**正文参数( application/x-www-form-urlencoded ):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ---------- | ---- | ---------------------- | -------------- | -------------------------------------------------------- | +| access_key | str | APP登录Token | APP方式必要 | | +| fid | num | 目标用户mid | 必要 | | +| act | num | 操作代码 | 必要 | **操作代码见下表** | +| re_src | num | 关注来源代码 | 必要 | 空间:11
视频:14
文章:115
活动页面:222 | +| csrf | str | CSRF Token(位于cookie) | Cookie方式必要 | | + +操作代码`act`: + +| 代码 | 含义 | +| ---- | ------------ | +| 1 | 关注 | +| 2 | 取关 | +| 3 | 悄悄关注 | +| 4 | 取消悄悄关注 | +| 5 | 拉黑 | +| 6 | 取消拉黑 | +| 7 | 踢出粉丝 | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------------------ | +| code | num | 返回值 | 0:成功
-101:账号未登录
-102:账号被封停
-111:csrf校验失败
-400:请求错误
22001:不能对自己进行此操作
22003:用户位于黑名单 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | + +**示例:** + +关注`mid=14082`的用户 + +```shell +curl 'https://api.bilibili.com/x/relation/modify' \ +--data-urlencode 'fid=14082' \ +--data-urlencode 'act=1' \ +--data-urlencode 're_src=11' \ +--data-urlencode 'csrf=xxx' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1 +} +``` + +
+ +## 批量操作用户关系 + +> https://api.bilibili.com/x/relation/batch/modify + +*请求方式:POST* + +认证方式:Cookie(SESSDATA)或APP + +此接口只支持关注和拉黑操作 + +**正文参数( application/x-www-form-urlencoded ):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ---------- | ---- | ---------------------- | -------------- | ---------------------------------------------- | +| access_key | str | APP登录Token | APP方式必要 | | +| fids | nums | 目标用户mid | 必要 | 每个之间用`,`间隔 | +| act | num | 操作代码 | 必要 | 同上
仅可为1或5,故只能进行批量关注和拉黑 | +| re_src | num | 关注来源代码 | 必要 | 同上 | +| csrf | str | CSRF Token(位于cookie) | Cookie方式必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------------------ | +| code | num | 返回值 | 0:成功
-101:账号未登录
-102:账号被封停
-111:csrf校验失败
-400:请求错误
22003:用户位于黑名单 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | obj | 数据本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----------- | ----- | ------------- | ---- | +| failed_fids | array | 操作失败的mid | | + +`data`中的`failed_fids`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | ------------------ | ---- | +| 0 | num | 操作失败的mid 1 | | +| n | num | 操作失败的mid(n+1) | | +| …… | num | …… | …… | + +**示例:** + +批量关注`mid=1,2,3,4,5`的用户 + +```shell +curl 'https://api.bilibili.com/x/relation/batch/modify' \ +--data-urlencode 'fid=1,2,3,4,5' \ +--data-urlencode 'act=1' \ +--data-urlencode 're_src=11' \ +--data-urlencode 'csrf=xxx' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "failed_fids": [] + } +} +``` + +
+ +## 查询用户与自己关系_仅查关注 + +> https://api.bilibili.com/x/relation + +*请求方式:GET* + +认证方式:Cookie(SESSDATA)或APP + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ---------- | ---- | ------------ | ----------- | ---- | +| access_key | str | APP登录Token | APP方式必要 | | +| fid | num | 目标用户mid | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------- | +| code | num | 返回值 | 0:成功
-101:账号未登录
-400:请求错误 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| --------- | ---------------------------------------- | ------------ | --------------------------------------- | +| mid | num | 目标用户mid | | +| attribute | num | 关注属性 | 0:未关注
2:已关注
6:已互粉
128:拉黑 | +| mtime | num | 关注对方时间 | 时间戳
未关注为0 | +| tag | null默认分组
array存在至少一个分组 | 分组id | | +| special | num | 特别关注标志 | 0:否
1:是 | + +`tag`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | ----------------------- | ---- | +| 0 | num | 位于分组1的分组 | | +| n | num | 位于分组(n+1)的分组 | | +| …… | num | …… | …… | + +**示例:** + +可得对于`mid=258150656`的用户,在`2018/10/28 0:51:41`时关注,且设为特别关注,并位于为`-10`分组中 + +```shell +curl -G 'https://api.bilibili.com/x/relation' \ +--data-urlencode 'fid=258150656' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "mid": 258150656, + "attribute": 2, + "mtime": 1540659101, + "tag": [-10], + "special": 1 + } +} +``` + +
+ +## 查询用户与自己关系_互相 + +> https://api.bilibili.com/x/space/acc/relation + +*请求方式:GET* + +认证方式:Cookie(SESSDATA)或APP + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ---------- | ---- | ------------ | ----------- | ---- | +| access_key | str | APP登录Token | APP方式必要 | | +| mid | num | 目标用户mid | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------- | +| code | num | 返回值 | 0:成功
-101:账号未登录
-400:请求错误 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----------- | ---- | ------------------------ | ---- | +| relation | obj | 目标用户对于本用户的属性 | | +| be_relation | obj | 本用户对于目标用户的属性 | | + +`data`中的`relation`对象: + +| 字段 | 类型 | 内容 | 备注 | +| --------- | ---------------------------------------- | ------------ | -------------- | +| mid | num | 对方用户mid | | +| attribute | num | 关注属性 | 0:未关注
1:悄悄关注
2:已关注
6:已互粉
128:拉黑 | +| mtime | num | 关注对方时间 | 互关后刷新时间 | +| tag | null默认分组
array存在至少一个分组 | 分组id | | +| special | num | 特别关注标志 | 0:否
1:是 | + +`data`中的`be_relation`对象: + +| 字段 | 类型 | 内容 | 备注 | +| --------- | ---------------------------------------- | ------------ | -------------- | +| mid | num | 自己的mid | | +| attribute | num | 关注属性 | 0:未关注
1:悄悄关注
2:已关注
6:已互粉
128:拉黑 | +| mtime | num | 成为粉丝时间 | 互关后刷新时间 | +| tag | null默认分组
array存在至少一个分组 | 分组id | | +| special | num | 特别关注标志 | 0:否
1:是 | + +`be_relation`与`relation`中的`tag`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | --------------------- | ---- | +| 0 | num | 位于分组1的分组id | | +| n | num | 位于分组(n+1)的分组id | | +| …… | num | …… | …… | + +**示例:** + +可得对于`mid=15858903`的用户,在`2019/1/24 14:24:19`时关注了对方,且互相关注,自己将对方特别关注,并同时位于为`-10`和`194110`的分组中,对方也将自己设为特别关注,并同时位于为`-10`和`56502`的分组中(虽然我看不到) + +```shell +curl -G 'https://api.bilibili.com/x/space/acc/relation' \ +--data-urlencode 'mid=15858903' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "relation": { + "mid": 15858903, + "attribute": 6, + "mtime": 1548311059, + "tag": [-10, 194110], + "special": 1, + "is_followed": false + }, + "be_relation": { + "mid": 293793435, + "attribute": 6, + "mtime": 1548311059, + "tag": [56502, -10], + "special": 1, + "is_followed": false + } + } +} +``` + +
+ +## 批量查询用户与自己关系 + +> https://api.bilibili.com/x/relation/relations + +*请求方式:GET* + +认证方式:Cookie(SESSDATA)或APP + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ---------- | ---- | ------------ | ----------- | ------------------- | +| access_key | str | APP登录Token | APP方式必要 | | +| fids | nums | 目标用户mid | 必要 | 每个之间用`,`间隔 | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------- | +| code | num | 返回值 | 0:成功
-101:账号未登录
-400:请求错误 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| --------- | ---- | ---------- | ---- | +| {用户mid} | obj | 关注的用户 | 下同 | +| …… | obj | …… | | + +`{用户mid}`对象: + +| 字段 | 类型 | 内容 | 备注 | +| --------- | --------------------------------------- | ------------ | ------------------------------------------------------------ | +| mid | num | 目标用户mid | | +| attribute | num | 关注属性 | 0:未关注
1:悄悄关注
2:已关注
6:已互粉
128:拉黑 | +| mtime | num | 关注对方时间 | 时间戳
未关注为0 | +| tag | null默认分组
array存在至少一个分组 | 分组id | | +| special | num | 特别关注标志 | 0:否
1:是 | + +`tag`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | --------------------- | ---- | +| 0 | num | 位于分组1的分组id | | +| n | num | 位于分组(n+1)的分组id | | +| …… | num | …… | …… | + +**示例:** + +批量查询`mid=1,2,3,4,5`的关系 + +```shell +curl -G 'https://api.bilibili.com/x/relation/relations' \ +--data-urlencode 'fid=258150656' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "1": { + "mid": 1, + "attribute": 2, + "mtime": 1601654227, + "tag": null, + "special": 0 + }, + "2": { + "mid": 2, + "attribute": 2, + "mtime": 1601654225, + "tag": null, + "special": 0 + } + } +} +``` + +
+ +## 关注分组相关 + +### 查询关注分组列表 + +> https://api.bilibili.com/x/relation/tags + +*请求方式:GET* + +认证方式:Cookie(SESSDATA)或APP + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ---------- | ---- | ------------ | ----------- | ---- | +| access_key | str | APP登录Token | APP方式必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ------ | -------- | ----------------------------- | +| code | num | 返回值 | 0:成功
-101:账号未登录 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | array | 分组列表 | | + +`data`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | ------------ | ---- | +| 0 | obj | 特别关注分组 | | +| 1 | obj | 默认分组 | | +| n | obj | 其他分组 | | +| …… | num | …… | …… | + +数组`data`中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----- | ---- | ---------- | ---------------------------------- | +| tagid | num | 分组id | 特别关注恒为-10
默认分组恒为0 | +| name | str | 分组名称 | | +| count | num | 分组成员数 | | + +**示例:** + +查询所有的分组的名字以及id + +```shell +curl 'https://api.bilibili.com/x/relation/tags' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": [{ + "tagid": -10, + "name": "特别关注", + "count": 16 + }, { + "tagid": 0, + "name": "默认分组", + "count": 536 + },{ + "tagid": 194111, + "name": "我的同学", + "count": 16 + }, + ………… + ] +} +``` + +
+ +### 查询关注分组明细 + +> https://api.bilibili.com/x/relation/tag + +*请求方式:GET* + +认证方式:Cookie(SESSDATA)或APP + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ---------- | ---- | ------------ | ----------- | ------------------------------------------------------- | +| access_key | str | APP登录Token | APP方式必要 | | +| tagid | num | 分组id | 必要 | 特别关注恒为-10
默认分组恒为0 | +| order_type | str | 排序方式 | 非必要 | 按照关注顺序排列:留空
按照最常访问排列:attention | +| ps | num | 每页项数 | 非必要 | 默认为50 | +| pn | num | 页数 | 非必要 | 默认为1 | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ------ | -------- | ------------------------------------------------------------ | +| code | num | 返回值 | 0:成功
-101:账号未登录
-400:请求错误
22104:该分组不存在 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | array | 成员列表 | | + +`data`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | ------------- | ---------------- | +| 0 | obj | 成员信息1 | | +| n | obj | 成员信息(n+1) | 按照添加顺序排序 | +| …… | obj | …… | …… | + +数组`data`中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| --------------- | ---- | ----------- | ---- | +| mid | num | 用户mid | | +| uname | str | 用户昵称 | | +| face | str | 用户头像url | | +| sign | str | 用户签名 | | +| official_verify | obj | 认证信息 | | +| vip | obj | 会员信息 | | + +数组`data`中的对象中的`official_verify`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | ------------ | ------------------- | +| type | num | 用户认证类型 | -1:无
1:认证 | +| desc | str | 用户认证信息 | 无为空 | + +数组`data`中的对象中的`vip`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------------- | ---- | ------------ | ----------------------------------- | +| vipType | num | 大会员类型 | 0:无
1:月会员
2:年会员 | +| vipDueDate | num | 会员到期时间 | 毫秒 时间戳 | +| dueRemark | str | 空 | 作用尚不明确 | +| accessStatus | num | 0 | 作用尚不明确 | +| vipStatus | num | 大会员状态 | 0无
1有 | +| vipStatusWarn | str | 空 | 作用尚不明确 | +| themeType | num | 0 | 作用尚不明确 | +| label | obj | ??? | 作用尚不明确 | + +数组`data`中的对象中的`label`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | ---- | ------------ | +| path | str | 空 | 作用尚不明确 | + +**示例:** + +以每页2项的方式获取了id为`207542`分组的第1页的粉丝明细,按照关注顺序 + +```shell +curl -G 'https://api.bilibili.com/x/relation/tag' \ +--data-urlencode 'tagid=207542' \ +--data-urlencode 'order_type=' \ +--data-urlencode 'ps=2' \ +--data-urlencode 'pn=1' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": [{ + "mid": 420831218, + "uname": "支付宝Alipay", + "face": "https://i2.hdslb.com/bfs/face/aaf18aeb2d9822e28a590bd8d878572ca8c59e04.jpg", + "sign": "阿支来了,关注点赞转发投币四连走起!", + "official_verify": { + "type": 1, + "desc": "支付宝官方账号" + }, + "vip": { + "vipType": 1, + "vipDueDate": 1585065600000, + "dueRemark": "", + "accessStatus": 0, + "vipStatus": 1, + "vipStatusWarn": "", + "themeType": 0, + "label": { + "path": "" + } + } + }, { + "mid": 125086406, + "uname": "MSI微星科技", + "face": "https://i1.hdslb.com/bfs/face/a844760e4e491677615b39399bc761e74c579bb4.jpg", + "sign": "你好,这里是微星显卡官方!专注显卡三十年,欢迎私信咨询或提问MSI", + "official_verify": { + "type": 1, + "desc": "微星科技官方账号" + }, + "vip": { + "vipType": 1, + "vipDueDate": 1540656000000, + "dueRemark": "", + "accessStatus": 0, + "vipStatus": 0, + "vipStatusWarn": "", + "themeType": 0, + "label": { + "path": "" + } + } + }] +} +``` + +
+ +### 查询目标用户所在的分组 + +> https://api.bilibili.com/x/relation/tag/user + +*请求方式:GET* + +认证方式:Cookie(SESSDATA)或APP + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ---------- | ---- | ------------ | ----------- | ---- | +| access_key | str | APP登录Token | APP方式必要 | | +| fid | num | 目标用户mid | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------- | +| code | num | 返回值 | 0:成功
-101:账号未登录
-400:请求错误 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------------------- | ---- | --------- | ---- | +| {加入的分组id 1} | str | 分组1名称 | | +| {加入的分组id n} | str | 分组n名称 | | +| …… | str | …… | | + +**示例:** + +查询用户`mid=319214221`存在的所有分组和名称 + +```shell +curl -G 'https://api.bilibili.com/x/relation/tag/user' \ +--data-urlencode 'fid=319214221' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "-10": "特别关注", + "194111": "我的同学" + } +} +``` + +
+ +### 查询所有特别关注的mid + +> https://api.bilibili.com/x/relation/tag/special + +*请求方式:GET* + +认证方式:Cookie(SESSDATA)或APP + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ---------- | ---- | ------------ | ----------- | ---- | +| access_key | str | APP登录Token | APP方式必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ----- | -------- | ----------------------------- | +| code | num | 返回值 | 0:成功
-101:账号未登录 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | array | 成员列表 | | + +`data`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | ------------ | ---- | +| 0 | num | 成员1mid | | +| n | num | 成员(n+1)mid | | +| …… | num | …… | …… | + +**示例:** + +```shell +curl 'https://api.bilibili.com/x/relation/tag/special' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": [ + 500716647, + 32832243, + 53456, + 25944552, + 301839556, + 427494870, + 319214221, + 31949159, + 382666849, + 258318451, + 15858903, + 54992199, + 3379951, + 392279807, + 23215368, + 258150656, + 20165629, + 22179720 + ] +} +``` + +
+ +### 创建分组 + + + +> https://api.bilibili.com/x/relation/tag/create + +*请求方式:POST* + +认证方式:Cookie(SESSDATA)或APP + +**正文参数( application/x-www-form-urlencoded ):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ---------- | ---- | ---------------------- | -------------- | ---------- | +| access_key | str | APP登录Token | APP方式必要 | | +| tag | str | 分组名 | 必要 | 最长16字符 | +| csrf | str | CSRF Token(位于cookie) | Cookie方式必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------------------ | +| code | num | 返回值 | 0:成功
-111:csrf校验失败
-101:账号未登录
-400:请求错误
22106:该分组已经存在
22103:分组名过长 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----- | ---- | -------------- | ---- | +| tagid | num | 创建的分组的id | | + +**示例:** + +创建了名为`测试`的分组,得到id为`216677` + +```shell +curl 'https://api.bilibili.com/x/relation/tag/create' \ +--data-urlencode 'tag=测试' \ +--data-urlencode 'csrf=xxx' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "tagid": 216677 + } +} +``` + +
+ +### 重命名分组 + +> https://api.bilibili.com/x/relation/tag/update + +*请求方式:POST* + +认证方式:Cookie(SESSDATA)或APP + +**正文参数( application/x-www-form-urlencoded ):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ---------- | ---- | ---------------------- | -------------- | ---------- | +| access_key | str | APP登录Token | APP方式必要 | | +| tagid | num | 分组id | 必要 | | +| name | str | 新名称 | 必要 | 最长16字符 | +| csrf | str | CSRF Token(位于cookie) | Cookie方式必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------------------ | +| code | num | 返回值 | 0:成功
-111:csrf校验失败
-101:账号未登录
-400:请求错误
22103:分组名过长
22104:该分组不存在 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | + +**示例:** + +把id为`194112`的分组更名为`膜法师` + +```shell +curl 'https://api.bilibili.com/x/relation/tag/update' \ +--data-urlencode 'tagid=194112' \ +--data-urlencode 'name=膜法师' \ +--data-urlencode 'csrf=xxx' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1 +} +``` + +
+ +### 删除分组 + + + +> https://api.bilibili.com/x/relation/tag/del + +*请求方式:POST* + +认证方式:Cookie(SESSDATA)或APP + +**正文参数( application/x-www-form-urlencoded ):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ---------- | ---- | ---------------------- | -------------- | ---- | +| access_key | str | APP登录Token | APP方式必要 | | +| tagid | num | 分组id | 必要 | | +| csrf | str | CSRF Token(位于cookie) | Cookie方式必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------------------ | +| code | num | 返回值 | 0:成功
-111:csrf校验失败
-101:账号未登录
-400:请求错误 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | + +示例: + +删除分组id为`216699`的分组 + +```shell +curl 'https://api.bilibili.com/x/relation/tag/del' \ +--data-urlencode 'tagid=216699' \ +--data-urlencode 'csrf=xxx' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1 +} +``` + +
+ +### 修改分组成员 + + + +> https://api.bilibili.com/x/relation/tags/addUsers + +*请求方式:POST* + +认证方式:Cookie(SESSDATA)或APP + +如需删除分组中的成员,请将`tagids`设为0,即移动至默认分组,而不是取关 + +**正文参数( application/x-www-form-urlencoded ):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ---------- | ---- | ------------------------ | -------------- | ------------------- | +| access_key | str | APP登录Token | APP方式必要 | | +| fids | nums | 目标用户mid | 必要 | 每个之间用`,`间隔 | +| tagids | nums | 分组id | 必要 | 每个之间用`,`间隔 | +| csrf | str | CSRF Token(位于cookie) | Cookie方式必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------------------ | +| code | num | 返回值 | 0:成功
-111:csrf校验失败
-101:账号未登录
-400:请求错误
22104:无权限
22105:未关注 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | + +**示例:** + +把关注用户`mid=205631797`同时添加分组关系到id为`-10`和`207542`的分组中 + +```shell +curl 'https://api.bilibili.com/x/relation/tags/addUsers' \ +--data-urlencode 'fids=205631797' \ +--data-urlencode 'tagids=-10,207542' \ +--data-urlencode 'csrf=xxx' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1 +} +``` + +
+ +### 复制关注到分组 + +> https://api.bilibili.com/x/relation/tags/copyUsers + +*请求方式:POST* + +认证方式:Cookie(SESSDATA)或APP + +**正文参数( application/x-www-form-urlencoded ):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ---------- | ---- | ------------------------ | -------------- | ------------------- | +| access_key | str | APP登录Token | APP方式必要 | | +| fids | nums | 待复制的用户mid | 必要 | 每个之间用`,`间隔 | +| tagids | nums | 目标分组id | 必要 | 每个之间用`,`间隔 | +| csrf | str | CSRF Token(位于cookie) | Cookie方式必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------------------ | +| code | num | 返回值 | 0:成功
-111:csrf校验失败
-101:账号未登录
-400:请求错误
22104:无权限
22105:未关注 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | + +**示例:** + +把关注用户`mid=4856007`和`mid=326499679`同时复制到为`231305`的分组id中 + +```shell +curl 'https://api.bilibili.com/x/relation/tags/copyUsers' \ +--data-urlencode 'fids=4856007,326499679' \ +--data-urlencode 'tagids=231305' \ +--data-urlencode 'csrf=xxx' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code":0, + "message":"0", + "ttl":1 +} +``` + +
+ +### 移动关注到分组 + +> https://api.bilibili.com/x/relation/tags/moveUsers + +*请求方式:POST* + +认证方式:Cookie(SESSDATA)或APP + +**正文参数( application/x-www-form-urlencoded ):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------------ | ---- | ------------------------ | -------------- | ------------------- | +| access_key | str | APP登录Token | APP方式必要 | | +| beforeTagids | nums | 原分组id | 必要 | 每个之间用`,`间隔 | +| afterTagids | nums | 新分组id | 必要 | 每个之间用`,`间隔 | +| fids | nums | 待移动的用户mid | 必要 | 每个之间用`,`间隔 | +| csrf | str | CSRF Token(位于cookie) | Cookie方式必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------------------ | +| code | num | 返回值 | 0:成功
-111:csrf校验失败
-101:账号未登录
-400:请求错误
22104:无权限
22105:未关注 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | + +**示例:** + +把关注用户`mid=321173469`和`mid=327086920`同时从id为`207542`的分组移动到为`231305`的分组中 + +```shell +curl 'https://api.bilibili.com/x/relation/tags/moveUsers' \ +--data-urlencode 'beforeTagids=207542' \ +--data-urlencode 'afterTagids=23130' \ +--data-urlencode 'fids=321173469,327086920' \ +--data-urlencode 'csrf=xxx' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code":0, + "message":"0", + "ttl":1 +} +``` + +
diff --git a/docs/user/space.md b/docs/user/space.md new file mode 100644 index 0000000000..4b2a683c11 --- /dev/null +++ b/docs/user/space.md @@ -0,0 +1,4832 @@ +# 用户空间相关 + +- [主页](#主页) + - [置顶视频](#置顶视频) + - [查询用户置顶视频](#查询用户置顶视频) + - [设置置顶视频](#设置置顶视频) + - [取消置顶视频](#取消置顶视频) + - [代表作视频](#代表作视频) + - [查询用户代表作视频列表](#查询用户代表作视频列表) + - [添加代表作视频](#添加代表作视频) + - [删除代表作视频](#删除代表作视频) + - [个人TAG](#个人TAG) + - [查看用户个人TAG](#查看用户个人TAG) + - [修改个人TAG](#修改个人TAG) + - [空间公告](#空间公告) + - [查看用户空间公告](#查看用户空间公告) + - [修改空间公告](#修改空间公告) + - [主页板块布局与权限](#主页板块布局与权限) + - [查询空间设置](#查询空间设置) + - [调整空间板块布局](#调整空间板块布局) + - [修改空间隐私权限](#修改空间隐私权限) + - [查询用户最近玩过的游戏](#查询用户最近玩过的游戏) + - [获取用户最近投币的视频明细](#获取用户最近投币的视频明细) + - [获取用户最近点赞的视频明细](#获取用户最近点赞的视频明细) +- [投稿](#投稿) + - [查询用户投稿视频明细](#查询用户投稿视频明细) + - [查询用户投稿相簿预览](#查询用户投稿相簿预览) + - [查询用户投稿相簿明细](#查询用户投稿相簿明细) +- [频道](#频道) + - [查询用户频道列表](#查询用户频道列表) + - [查询用户频道中的视频](#查询用户频道中的视频) + - [创建频道](#创建频道) + - [修改频道](#修改频道) + - [删除频道](#删除频道) + - [频道添加视频](#频道添加视频) + - [频道删除视频](#频道删除视频) + - [调整频道视频排序](#调整频道视频排序) + - [检查频道中有无失效视频](#检查频道中有无失效视频) +- [收藏](#收藏) + - [查询用户创建的视频收藏夹](#查询用户创建的视频收藏夹) + - [查询用户收藏的视频收藏夹](#查询用户收藏的视频收藏夹) +- [课程](#课程) + - [查询用户发布的课程列表](#查询用户发布的课程列表) +- [订阅](#订阅) + - [查询用户追番预览列表](#查询用户追番预览列表) + - [查询用户追番(追剧)明细](#查询用户追番(追剧)明细) + - [查询用户关注的TAG(话题)](#查询用户关注的TAG话题) + +--- + +## 主页 + + + +### 置顶视频 + +#### 查询用户置顶视频 + +>https://api.bilibili.com/x/space/top/arc + +*请求方式:GET* + +粉丝在其主页上可见 + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +|------|-----|---------|-----|-----| +| vmid | num | 目标用户mid | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +|---------|-----|------|---------------------------------------| +| code | num | 返回值 | 0:成功
-400:请求错误
53016:没有置顶视频 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +|-------------|------|-----------------|-------------------------------------------------------------------| +| aid | num | 稿件avid | | +| videos | num | 视频分P总数 | 默认为1 | +| tid | num | 分区tid | | +| tname | str | 子分区名称 | | +| copyright | num | 是否转载 | 1:原创
2:转载 | +| pic | str | 视频封面图片url | | +| title | str | 稿件标题 | | +| pubdate | num | 稿件发布时间 | 时间戳 | +| ctime | num | 用户提交稿件的时间 | 时间戳 | +| desc | str | 视频简介 | | +| state | num | 视频状态 | 略,见[获取视频详细信息(web端)](/video/info.md#获取视频详细信息(web端))中的`state`备注 | +| attribute | num | 稿件属性位配置 | 略,见[获取视频详细信息(web端)](/video/info.md#获取视频详细信息(web端))中的`attribute`备注 | +| duration | num | 视频总计持续时长(所有分P) | 单位为秒 | +| rights | obj | 视频属性标志 | 略,见[获取视频详细信息(web端)](/video/info.md#获取视频详细信息(web端))中的`rights`对象 | +| owner | obj | 视频UP主信息 | 略,见[获取视频详细信息(web端)](/video/info.md#获取视频详细信息(web端))中的`owner`对象 | +| stat | obj | 视频状态数 | 略,见[获取视频详细信息(web端)](/video/info.md#获取视频详细信息(web端))中的`stat`对象 | +| dynamic | str | 视频同步发布的的动态的文字内容 | 无为空 | +| cid | num | 视频1P cid | | +| dimension | obj | 视频1P分辨率 | 略,见[获取视频详细信息(web端)](/video/info.md#获取视频详细信息(web端))中的`dimension`对象 | +| bvid | str | 稿件bvid | | +| reason | str | 置顶视频备注 | | +| inter_video | bool | 是否为合作视频 | false:否
true:是 | + +**示例:** + +查询用户`mid=23215368`的置顶视频 + +```shell +curl -G 'https://api.bilibili.com/x/space/top/arc' \ +--data-urlencode 'vmid=23215368' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "aid": 37896701, + "videos": 1, + "tid": 28, + "tname": "原创音乐", + "copyright": 1, + "pic": "http://i2.hdslb.com/bfs/archive/cc9e72822d68fffdd0406144f1b5348a13c89652.jpg", + "title": "燃烧吧!铃声!把主流手机铃声编成一首曲子", + "pubdate": 1544469671, + "ctime": 1544469671, + "desc": "各品牌的手机铃声大合奏,毫无违和感~", + "state": 0, + "attribute": 16768, + "duration": 208, + "rights": { + "bp": 0, + "elec": 0, + "download": 0, + "movie": 0, + "pay": 0, + "hd5": 1, + "no_reprint": 1, + "autoplay": 1, + "ugc_pay": 0, + "is_cooperation": 0, + "ugc_pay_preview": 0, + "no_background": 0 + }, + "owner": { + "mid": 23215368, + "name": "Wayjon冰冰酱", + "face": "http://i2.hdslb.com/bfs/face/7c9715f1768191137eb7ebf91918ca0f99532012.jpg" + }, + "stat": { + "aid": 37896701, + "view": 1058237, + "danmaku": 16821, + "reply": 3725, + "favorite": 76888, + "coin": 100694, + "share": 17091, + "now_rank": 0, + "his_rank": 0, + "like": 90521, + "dislike": 0 + }, + "dynamic": "#编曲##FL##纯音乐#", + "cid": 66621209, + "dimension": { + "width": 1920, + "height": 1080, + "rotate": 0 + }, + "bvid": "BV18t411q7zz", + "reason": "", + "inter_video": false + } +} +``` + +
+ +#### 设置置顶视频 + +> https://api.bilibili.com/x/space/top/arc/set + +*请求方式:POST* + +认证方式:Cookie(SESSDATA) + +**正文参数( application/x-www-form-urlencoded ):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +|--------|-----|----------------------|--------|----------------------| +| aid | num | 置顶目标稿件avid | 必要(可选) | avid与bvid任选一个 | +| bvid | str | 置顶目标稿件bvid | 必要(可选) | avid与bvid任选一个 | +| reason | str | 置顶视频备注 | 非必要 | 置顶备注最大40字符
默认为空 | +| csrf | str | CSRF Token(位于cookie) | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +|---------|-----|------|---------------------------------------------------------------------------------------------------------------------------| +| code | num | 返回值 | 0:成功
-101:账号未登录
-111:csrf校验失败
-304:未修改
-400:请求错误
53014:稿件已失效
53015:备注过长
53017:置顶非自己的稿件 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | + +**示例:** + +置顶视频`av98948772`/`BV1n741127LD` + +avid方式: + +```shell +curl 'https://api.bilibili.com/x/space/top/arc/set' \ +--data-urlencode 'aid=98948772' \ +-b 'SESSDATA=xxx' +``` + +bvid方式: + +```shell +curl 'https://api.bilibili.com/x/space/top/arc/set' \ +--data-urlencode 'bvid=BV1n741127LD' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1 +} +``` + +
+ +#### 取消置顶视频 + +> https://api.bilibili.com/x/space/top/arc/cancel + +*请求方式:POST* + +认证方式:Cookie(SESSDATA) + +**正文参数( application/x-www-form-urlencoded ):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +|------|-----|----------------------|-----|-----| +| csrf | str | CSRF Token(位于cookie) | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +|---------|-----|------|--------------------------------------------------------------| +| code | num | 返回值 | 0:成功
-101:账号未登录
-111:csrf校验失败
-400:请求错误(重复取消) | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | + +**示例:** + +```shell +curl 'https://api.bilibili.com/x/space/top/arc/cancel' \ +--data-urlencode 'csrf=xxx' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1 +} +``` + +
+ +### 代表作视频 + +#### 查询用户代表作视频列表 + +> https://api.bilibili.com/x/space/masterpiece + +*请求方式:GET* + +新访客在其主页上可见 + +最多可以设置3个 + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +|------|-----|---------|-----|-----| +| vmid | num | 目标用户mid | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +|---------|-------|-------|---------------------| +| code | num | 返回值 | 0:成功
-400:请求错误 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | array | 代表作列表 | | + +`data`数组: + +| 项 | 类型 | 内容 | 备注 | +|-----|-----|------|------------------| +| 0 | obj | 代表作1 | 无则为空 | +| 1 | obj | 代表作2 | 无则为空 | +| 2 | obj | 代表作3 | 无则为空
最多设置3个 | + +`data`数组中的对象: + +同[查询用户置顶视频](#查询用户置顶视频)中的`data`对象 + +**示例:** + +查询用户`mid=23215368`的代表作视频列表 + +```shell +curl -G 'https://api.bilibili.com/x/space/masterpiece' \ +--data-urlencode 'vmid=23215368' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": [{ + "aid": 37896701, + "videos": 1, + "tid": 28, + "tname": "原创音乐", + "copyright": 1, + "pic": "http://i2.hdslb.com/bfs/archive/cc9e72822d68fffdd0406144f1b5348a13c89652.jpg", + "title": "燃烧吧!铃声!把主流手机铃声编成一首曲子", + "pubdate": 1544469671, + "ctime": 1544469671, + "desc": "各品牌的手机铃声大合奏,毫无违和感~", + "state": 0, + "attribute": 16768, + "duration": 208, + "rights": { + "bp": 0, + "elec": 0, + "download": 0, + "movie": 0, + "pay": 0, + "hd5": 1, + "no_reprint": 1, + "autoplay": 1, + "ugc_pay": 0, + "is_cooperation": 0, + "ugc_pay_preview": 0, + "no_background": 0 + }, + "owner": { + "mid": 23215368, + "name": "Wayjon冰冰酱", + "face": "http://i2.hdslb.com/bfs/face/7c9715f1768191137eb7ebf91918ca0f99532012.jpg" + }, + "stat": { + "aid": 37896701, + "view": 1058241, + "danmaku": 16821, + "reply": 3725, + "favorite": 76888, + "coin": 100694, + "share": 17091, + "now_rank": 0, + "his_rank": 0, + "like": 90521, + "dislike": 0 + }, + "dynamic": "#编曲##FL##纯音乐#", + "cid": 66621209, + "dimension": { + "width": 1920, + "height": 1080, + "rotate": 0 + }, + "bvid": "BV18t411q7zz", + "reason": "", + "inter_video": false + }, { + "aid": 39596658, + "videos": 1, + "tid": 21, + "tname": "日常", + "copyright": 1, + "pic": "http://i2.hdslb.com/bfs/archive/431e51d0e40e3461e1c1b0f59c755ae8843b1adb.jpg", + "title": "MY2018 - 纪念我的2018年", + "pubdate": 1546328392, + "ctime": 1546328392, + "desc": "", + "state": 0, + "attribute": 16768, + "duration": 239, + "mission_id": 10996, + "rights": { + "bp": 0, + "elec": 0, + "download": 0, + "movie": 0, + "pay": 0, + "hd5": 1, + "no_reprint": 1, + "autoplay": 1, + "ugc_pay": 0, + "is_cooperation": 0, + "ugc_pay_preview": 0, + "no_background": 0 + }, + "owner": { + "mid": 23215368, + "name": "Wayjon冰冰酱", + "face": "http://i2.hdslb.com/bfs/face/7c9715f1768191137eb7ebf91918ca0f99532012.jpg" + }, + "stat": { + "aid": 39596658, + "view": 1518, + "danmaku": 16, + "reply": 40, + "favorite": 22, + "coin": 60, + "share": 9, + "now_rank": 0, + "his_rank": 0, + "like": 112, + "dislike": 0 + }, + "dynamic": "#vlog##记录##生活记录#", + "cid": 69561078, + "dimension": { + "width": 1920, + "height": 1080, + "rotate": 0 + }, + "bvid": "BV1Jt411B7La", + "reason": "", + "inter_video": false + }, { + "aid": 44721369, + "videos": 1, + "tid": 28, + "tname": "原创音乐", + "copyright": 1, + "pic": "http://i0.hdslb.com/bfs/archive/9887797402599c42f74a7624f3db4a92a0ebf465.jpg", + "title": "【铃声串烧系列】华米两开花;中华有为,国之荣耀!把主流手机铃声编成一首曲子", + "pubdate": 1551128445, + "ctime": 1551128445, + "desc": "把主流手机铃声编成一首曲子,这一版用华为的铃声作为主旋律,毫无违和感~伴随着2019mwc的开幕,希望国产厂商能获得全世界的目光,并且将属于中国人的科技自信传递到全世界!", + "state": 0, + "attribute": 16768, + "duration": 174, + "rights": { + "bp": 0, + "elec": 0, + "download": 0, + "movie": 0, + "pay": 0, + "hd5": 1, + "no_reprint": 1, + "autoplay": 1, + "ugc_pay": 0, + "is_cooperation": 0, + "ugc_pay_preview": 0, + "no_background": 0 + }, + "owner": { + "mid": 23215368, + "name": "Wayjon冰冰酱", + "face": "http://i2.hdslb.com/bfs/face/7c9715f1768191137eb7ebf91918ca0f99532012.jpg" + }, + "stat": { + "aid": 44721369, + "view": 306757, + "danmaku": 7713, + "reply": 1520, + "favorite": 17216, + "coin": 16489, + "share": 2917, + "now_rank": 0, + "his_rank": 0, + "like": 21439, + "dislike": 0 + }, + "dynamic": "#铃声##纯音乐##音乐#【铃声串烧】Mix Ringtones!船新的版本来啦!这一版用华为的铃声作为主旋律,毫无违和感~伴随着2019mwc的开幕,希望国产厂商能获得全世界的目光,并且将属于中国人的科技自信传递到全世界!", + "cid": 78290138, + "dimension": { + "width": 1920, + "height": 1080, + "rotate": 0 + }, + "bvid": "BV1vb411879C", + "reason": "", + "inter_video": false + }] +} +``` + +
+ +#### 添加代表作视频 + +> https://api.bilibili.com/x/space/masterpiece/add + +*请求方式:POST* + +认证方式:Cookie(SESSDATA) + +代表作上限为3个稿件 + +**正文参数( application/x-www-form-urlencoded ):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +|--------|-----|----------------------|--------|----------------------| +| aid | num | 置顶目标稿件avid | 必要(可选) | avid与bvid任选一个 | +| bvid | str | 置顶目标稿件bvid | 必要(可选) | avid与bvid任选一个 | +| reason | str | 代表作备注 | 非必要 | 置顶备注最大40字符
默认为空 | +| csrf | str | CSRF Token(位于cookie) | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +|---------|-----|------|------------------------------------------------------------------------------------------------------------------------------------------------| +| code | num | 返回值 | 0:成功
-101:账号未登录
-111:csrf校验失败
-400:请求错误
53014:稿件已失效
53015:备注过长
53017:置顶非自己的稿件
53019:达到上限
53020:已经存在该稿件 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | + +**示例:** + +添加视频`av94916552`/`BV1ZE411K7ux`到代表作列表 + +avid方式: + +```shell +curl 'https://api.bilibili.com/x/space/masterpiece/add' \ +--data-urlencode 'aid=94916552' \ +--data-urlencode 'csrf=xxx' \ +-b 'SESSDATA=xxx' +``` + +bvid方式: + +```shell +curl 'https://api.bilibili.com/x/space/masterpiece/add' \ +--data-urlencode 'bvid=BV1ZE411K7ux' \ +--data-urlencode 'csrf=xxx' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1 +} +``` + +
+ +#### 删除代表作视频 + +> https://api.bilibili.com/x/space/masterpiece/cancel + +*请求方式:POST* + +认证方式:Cookie(SESSDATA) + +**正文参数( application/x-www-form-urlencoded ):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +|------|-----|----------------------|--------|---------------| +| aid | num | 要删除的目标稿件avid | 必要(可选) | avid与bvid任选一个 | +| bvid | str | 要删除的目标稿件bvid | 必要(可选) | avid与bvid任选一个 | +| csrf | str | CSRF Token(位于cookie) | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +|---------|-----|------|------------------------------------------------------------------------------| +| code | num | 返回值 | 0:成功
-101:账号未登录
-111:csrf校验失败
-400:请求错误
53021:置顶列表中没有该视频 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | 作用尚不明确 | + +**示例:** + +删除置顶视频`av59765630`/`BV1Yt41137T6` + +avid方式: + +```shell +curl 'api.bilibili.com/x/space/masterpiece/cancel' \ +--data-urlencode 'aid=59765630' \ +--data-urlencode 'csrf=xxx' \ +-b 'SESSDATA=xxx' +``` + +bvid方式: + +```shell +curl 'https://api.bilibili.com/x/space/masterpiece/cancel' \ +--data-urlencode 'bvid=BV1Yt41137T6' \ +--data-urlencode 'csrf=xxx' \ +-b 'SESSDATA=xxx' +``` + +### 个人TAG + +#### 查看用户个人TAG + +> https://api.bilibili.com/x/space/acc/tags + +*请求方式:GET* + +上限5条,且内容由用户自定义 + +带有转义 + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +|-----|-----|---------|-----|-----| +| mid | num | 目标用户mid | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +|---------|-------|------|---------------------| +| code | num | 返回值 | 0:成功
-400:请求错误 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | array | 信息本体 | | + +`data`数组: + +| 项 | 类型 | 内容 | 备注 | +|-----|-----|------|---------| +| 0 | obj | 套了个娃 | 只有1项??? | + +`data`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +|------|-------|---------|-----| +| mid | num | 目标用户mid | | +| tags | array | TAG名称 | | + +`data`数组中的对象中的`tags`数组: + +| 项 | 类型 | 内容 | 备注 | +|-----|-----|----------|------| +| 0 | str | TAG1 | | +| n | str | TAG(n+1) | | +| …… | str | …… | | +| 4 | str | TAG5 | 上限5条 | + +**示例:** + +查看用户`mid=53456`的个人TAG + +```shell +curl -G 'https://api.bilibili.com/x/space/acc/tags' \ +--data-urlencode 'mid=53456' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": [ + { + "mid": 53456, + "tags": [ + "游戏", + "音乐", + "warma", + "搞笑", + "动画" + ] + } + ] +} +``` + +
+ +#### 修改个人TAG + +> https://api.bilibili.com/x/space/acc/tags/set + +*请求方式:POST* + +认证方式:Cookie(SESSDATA) + +鉴权方式:Cookie中`DedeUserID`存在且不为0 + +**正文参数( application/x-www-form-urlencoded ):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +|------|------|----------------------|-----|--------------------------------------------------------------------------------| +| tags | strs | 要设置的TAG内容 | 非必要 | 删除公告留空或省去即可
各TAG长度小于10字符
最多5个TAG
各TAG之间用","(%2C)分隔
重复TAG无效 | +| csrf | str | CSRF Token(位于cookie) | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +|---------|-----|------|----------------------------------------------------------------| +| code | num | 返回值 | 0:成功
-101:账号未登录
-111:csrf校验失败
-400:请求错误(超出长度限制) | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | + +**示例:** + +修改个人TAG为`minecraft,技术宅,大佬,小哥哥,可爱` + +```shell +curl 'https://api.bilibili.com/x/space/acc/tags/set' \ +--data-urlencode 'tags=minecraft,技术宅,大佬,小哥哥,可爱' \ +--data-urlencode 'csrf=xxx' \ +-b 'SESSDATA=xxx;DedeUserID=1' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1 +} +``` + +
+ +### 空间公告 + +#### 查看用户空间公告 + +> https://api.bilibili.com/x/space/notice + +*请求方式:GET* + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | ---- | ----------- | ------ | ---- | +| mid | num | 目标用户mid | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +|---------|-----|------|---------------------| +| code | num | 返回值 | 0:成功
-400:请求错误 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | str | 公告信息 | 无则为空 | + +**示例:** + +查看用户`mid=53456`的空间公告 + +```shell +curl -G 'https://api.bilibili.com/x/space/notice' \ +--data-urlencode 'mid=53456' +``` + +
+查看响应示例: + +```json +{ + "code":0, + "message":"0", + "ttl":1, + "data":"我的微博 @_warma_\n直播录像上传到:warma养鸽场\n头像画师是:微博@Dr-H_喵_\n横幅画师:@薬屋" +} +``` + +
+ +#### 修改空间公告 + +> https://api.bilibili.com/x/space/notice/set + +*请求方式:POST* + +认证方式:Cookie(SESSDATA) + +**正文参数( application/x-www-form-urlencoded ):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +|--------|-----|----------------------|-----|--------------------------| +| notice | str | 要设置的公告内容 | 非必要 | 删除公告留空或省去即可
少于150字符 | +| csrf | str | CSRF Token(位于cookie) | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +|---------|-----|------|------------------------------------------------------------------------------| +| code | num | 返回值 | 0:成功
-101:账号未登录
-111:csrf校验失败
-304:未修改
-400:请求错误(超出长度限制) | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | 作用尚不明确 | + +**示例:** + +修改个人空间公告为`鸽子` + +```shell +curl 'https://api.bilibili.com/x/space/notice/set' \ +--data-urlencode 'notice=鸽子' \ +--data-urlencode 'csrf=xxx' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1 +} +``` + +
+ +### 主页板块布局与权限 + +#### 查询空间设置 + +> https://space.bilibili.com/ajax/settings/getSettings + +*请求方式:GET* + +注:带有转义 + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +|-----|-----|---------|-----|-----| +| mid | num | 目标用户mid | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +|--------|-------------------------|---------------------------|----------------------| +| status | bool | 用户是否存在 | true:存在
false:不存在 | +| data | 用户存在时:obj
用户不存在时:str | 用户存在时:信息本体
用户不存在时:错误信息 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +|------------------------|-------|------------|--------| +| privacy | obj | 空间隐私权限 | | +| index_order | array | 空间板块布局 | | +| theme | str | default主题? | 作用尚不明确 | +| theme_preview_img_path | str | 主题预览图路径? | 作用尚不明确 | +| toutu | obj | 空间头图 | | + +`privacy`对象: + +| 字段 | 类型 | 内容 | 备注 | +|-------------|-----|---------|------------------------| +| bangumi | num | 追番及追剧 | 0:隐藏
1:公开
**下同** | +| bbq | num | 轻视频 | | +| channel | num | 频道 | | +| coins_video | num | 最近投币的视频 | | +| comic | num | 追漫 | | +| dress_up | num | 装扮 | | +| fav_video | num | 收藏夹 | | +| groups | num | 圈子? | 作用尚不明确 | +| likes_video | num | 最近点赞的视频 | | +| played_game | num | 最近玩过的游戏 | | +| tags | num | 订阅标签 | | +| user_info | num | 个人资料 | | + +`index_order`数组: + +| 项 | 类型 | 内容 | 备注 | +|-----|-----|---------|--------------------------| +| 0 | obj | 板块1 | 根据板块布局顺序排序
先左侧布局后右侧布局 | +| n | obj | 板块(n+1) | | +| …… | obj | …… | …… | + +`index_order`数组内对象: + +| 字段 | 类型 | 内容 | 备注 | +|------|-----|------|-----| +| id | num | 板块编号 | | +| name | str | 板块名称 | | + +`toutu`对象: + +| 字段 | 类型 | 内容 | 备注 | +|---------------|-----|------------|-----------------------------------| +| sid | num | 空间头图ID | | +| expire | num | 到期时间? | 时间戳?
作用尚不明确 | +| s_img | str | 空间头图小图相对路径 | 完整url为`https://i0.hdslb.com/`+相对路径 | +| l_img | str | 空间头图相对路径 | **同上** | +| android_img | str | 空 | 注:**手机端头图与web端不同,需要用另一个api获取** | +| iphone_img | str | 空 | | +| ipad_img | str | 空 | | +| thumbnail_img | str | 缩略图 | | +| platform | num | 0 | 作用尚不明确 | + +**示例:** + +查看`mid=2`的空间设置 + +```shell +curl -G 'https://space.bilibili.com/ajax/settings/getSettings' \ +--data-urlencode 'mid=2' +``` + +
+查看响应示例: + +```json +{ + "status":true, + "data":{ + "privacy":{ + "bangumi":1, + "bbq":1, + "channel":1, + "coins_video":0, + "comic":1, + "dress_up":1, + "fav_video":0, + "groups":0, + "likes_video":0, + "played_game":1, + "tags":1, + "user_info":1 + }, + "index_order":[ + { + "id":1, + "name":"我的稿件" + }, + { + "id":8, + "name":"我的专栏" + }, + { + "id":7, + "name":"我的频道" + }, + { + "id":2, + "name":"我的收藏夹" + }, + { + "id":3, + "name":"订阅番剧" + }, + { + "id":4, + "name":"订阅标签" + }, + { + "id":5, + "name":"最近投币的视频" + }, + { + "id":6, + "name":"我的圈子" + }, + { + "id":9, + "name":"我的相簿" + }, + { + "id":21, + "name":"公告" + }, + { + "id":22, + "name":"直播间" + }, + { + "id":23, + "name":"个人资料" + }, + { + "id":24, + "name":"官方活动" + }, + { + "id":25, + "name":"最近玩过的游戏" + } + ], + "theme":"default", + "theme_preview_img_path":"", + "toutu":{ + "sid":1, + "expire":2861874560, + "s_img":"bfs/space/768cc4fd97618cf589d23c2711a1d1a729f42235.png", + "l_img":"bfs/space/cb1c3ef50e22b6096fde67febe863494caefebad.png", + "android_img":"", + "iphone_img":"", + "ipad_img":"", + "thumbnail_img":"", + "platform":0 + } + } +} +``` + +
+ +#### 调整空间板块布局 + +> https://space.bilibili.com/ajax/settings/setIndexOrder + +*请求方式:POST* + +认证方式:Cookie(SESSDATA) + +鉴权方式:Cookie中`DedeUserID`及`DedeUserID__ckMd5`存在且不为0,referer为 `.bilibili.com`域名下 + +**正文参数( application/x-www-form-urlencoded ):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +|-------------|------|----------------------|-----|-----------------------------------------------| +| index_order | nums | 布局列表 | 必要 | 每个值之间用","(%2C)分隔
先左侧布局再右侧布局
值的意义见下表 | +| csrf | str | CSRF Token(位于cookie) | 必要 | | + +布局参数`index_order`: + +| 值 | 含义 | +|-----|----------------------| +| 1 | (左侧)我的稿件 | +| 2 | (左侧)我的收藏夹 | +| 3 | (左侧)订阅番剧 | +| 4 | (左侧)订阅标签 | +| 5 | (左侧)最近投币的视频 | +| 6 | (左侧)我的圈子**(此板块被隐藏)** | +| 7 | (左侧)我的频道 | +| 8 | (左侧)我的专栏 | +| 9 | (左侧)我的相簿 | +| 21 | (右侧)公告 | +| 22 | (右侧)直播间 | +| 23 | (右侧)个人资料 | +| 24 | (右侧)官方活动 | +| 25 | (右侧)最近玩的游戏 | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +|--------|------|------|---------------------------| +| ststus | bool | 操作结果 | true:操作成功
false:操作失败 | +| data | str | 错误信息 | 正确时无此项 | + +**示例:** + +调整空间布局为: + +>我的稿件 直播间 +>我的专栏 个人资料 +>订阅番剧 公告 +>我的收藏夹 官方活动 +>我的相簿 最近玩的游戏 +>最近投币的视频 +>订阅标签 +>我的频道 + +```shell +curl 'https://space.bilibili.com/ajax/settings/setIndexOrder' \ +--data-urlencode 'index_order=1,8,3,2,9,5,4,7,22,23,21,24,25,6' \ +--data-urlencode 'csrf=xxx' \ +-b 'SESSDATA=xxx;DedeUserID=1;DedeUserID__ckMd5=1;' \ +-e 'https://www.bilibili.com' +``` + +
+查看响应示例: + +```json +{ + "status": true +} +``` + +
+ +#### 修改空间隐私权限 + +> https://space.bilibili.com/ajax/settings/setPrivacy + +*请求方式:POST* + +认证方式:Cookie(SESSDATA) + +鉴权方式:Cookie中`DedeUserID`及`DedeUserID__ckMd5`存在且不为0,referer为 `.bilibili.com`域名下 + +**正文参数( application/x-www-form-urlencoded ):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +|-------------|------|----------------------|-----|----------------------------| +| fav_video | num | 收藏视频 | 非必要 | 0:隐藏
1:公开
**下同** | +| bangumi | num | 追番及追剧 | 非必要 | | +| tags | num | 关注的TAG | 非必要 | | +| coins_video | num | 投币的视频 | 非必要 | | +| user_info | num | 个人信息 | 非必要 | | +| played_game | num | 玩过的游戏 | 非必要 | | +| csrf | nstr | CSRF Token(位于cookie) | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +|--------|------|------|---------------------------| +| ststus | bool | 操作结果 | true:操作成功
false:操作失败 | +| data | str | 错误信息 | 正确时无此项 | + +**示例:** + +设置`关注的TAG`为隐藏 + +```shell +curl 'https://space.bilibili.com/ajax/settings/setPrivacy' \ +--data-urlencode 'tags=0' \ +--data-urlencode 'csrf=xxx' \ +-b 'SESSDATA=xxx;DedeUserID=1;DedeUserID__ckMd5=1;' \ +-e 'https://www.bilibili.com' +``` + +
+查看响应示例: + +```json +{ + "status": true +} +``` + +
+ +### 查询用户最近玩过的游戏 + +> https://api.bilibili.com/x/space/lastplaygame + +*请求方式:GET* + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +|-----|-----|---------|-----|-----| +| mid | num | 目标用户mid | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +|---------|-------------------------|------|------------------------------------------| +| code | num | 返回值 | 0:成功
-400:请求错误
53013:用户隐私设置未公开 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | 隐藏时:null
公开时:array | 信息本体 | | + +`data`数组: + +| 项 | 类型 | 内容 | 备注 | +|-----|-----|---------|----------| +| 0 | obj | 游戏1 | | +| n | obj | 游戏(n+1) | 项数为总计游戏数 | +| …… | obj | …… | …… | + +`data`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +|---------|-----|-----------|-----| +| website | str | 游戏主页链接url | | +| image | str | 游戏图片url | | +| name | str | 游戏名 | | + +**示例:** + +查询`mid=2`的最近玩过的游戏 + +```shell +curl -G 'https://api.bilibili.com/x/space/lastplaygame' \ +--data-urlencode 'mid=2' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": [ + { + "website": "https://game.bilibili.com/fgo/event_meihosou", + "image": "http://i0.hdslb.com/bfs/game/f7d4ee0877089e4079b8f0b4f5c95dd4ceba512a.png", + "name": "命运-冠位指定(Fate/GO)" + }, + { + "website": "https://game.bilibili.com/pcr/xxtix", + "image": "http://i0.hdslb.com/bfs/game/7922ecea5cc76fe3c8c177e1d4a6c8cf1c36a700.jpg", + "name": "公主连结Re:Dive" + }, + { + "website": "https://game.bilibili.com/dwbgx/", + "image": "http://i0.hdslb.com/bfs/game/6d5b2df70dfa987408d8d09110cdc327949885e3.png", + "name": "大王不高兴" + }, + { + "website": "https://game.bilibili.com/bangdream/1stanniversary-yxzx/", + "image": "http://i0.hdslb.com/bfs/game/4a7d0b7272dffe5a489ee935b6bd2d4f7d5f1257.png", + "name": "BanG Dream!" + }, + { + "website": "http://www.biligame.com/detail/?id=101772", + "image": "http://i0.hdslb.com/bfs/game/8e8b04e7bd2170c2ba2c9f563a62c72bac2eba2c.jpg", + "name": "明日方舟" + } + ] +} +``` + +
+ +### 获取用户最近投币的视频明细 + +> https://api.bilibili.com/x/space/coin/video + +*请求方式:GET* + +认证方式:Cookie(SESSDATA) + +如设置隐私查看自己的需要认证 仅包含最近投币的20个视频,如超过指定时间未投币(也许一个月),列表将为空 + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | ---- | ----------- | ------ | ---- | +| vmid | num | 目标用户mid | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +|---------|-------------------------|------|------------------------------------------| +| code | num | 返回值 | 0:成功
-400:请求错误
53013:用户隐私设置未公开 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | 隐藏时:null
公开时:array | 信息本体 | | + +`data`数组: + +| 项 | 类型 | 内容 | 备注 | +|-----|-----|-----------|-----| +| 0 | obj | 投币视频1 | | +| n | obj | 投币视频(n+1) | | +| …… | obj | …… | | + +`data`数组中的对象: + +基本同[获取视频详细信息(web端)](/video/info.md#获取视频详细信息(web端))中的data对象 + +**示例:** + +查看用户`mid=15858903`的最近投币视频 + +```shell +curl -L -X GET 'https://api.bilibili.com/x/space/coin/video?vmid=15858903' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": [ + { + "aid": 259434557, + "videos": 1, + "tid": 218, + "tname": "喵星人", + "copyright": 1, + "pic": "http://i2.hdslb.com/bfs/archive/47d46ad72bf1898ebbfe7d82a9d972d4b53e61fc.jpg", + "title": "42度在家造溜冰场降温,猫上去直呼脚滑!", + "pubdate": 1660361400, + "ctime": 1660361407, + "desc": "刚开始真的觉得很难,不可能,学会理论知识后觉得,就这?太简单了,所以随便做做是成立的。就是学费有点贵,1w多……,我现在空调随便修!希望日后修空调能把这钱在挣回来!(溜冰场上期指路:BV1ga411f79y)\n萌宠区手工up主往期发明指路: \n猫力跑步发电机:BV1iy4y1a7Cb \n电动撸毛器:BV1H64y1v7gq\n戒烟头盔:BV1H64y1k7tz \n猫热能暖床器:BV1xF411i7tw \n全透明赏猫床:BV1Qb4y1C7sn \n写不完啦 还有很多,就要靠各位慢慢挖掘啦!", + "state": 0, + "duration": 501, + "mission_id": 859937, + "rights": { + "bp": 0, + "elec": 0, + "download": 0, + "movie": 0, + "pay": 0, + "hd5": 1, + "no_reprint": 1, + "autoplay": 1, + "ugc_pay": 0, + "is_cooperation": 0, + "ugc_pay_preview": 0, + "no_background": 0, + "arc_pay": 0, + "pay_free_watch": 0 + }, + "owner": { + "mid": 20951119, + "name": "蒂姆嘟嘟Tim", + "face": "http://i1.hdslb.com/bfs/face/9860c4c559fd2517b1fa92e592d3d71b95bb3ec2.jpg" + }, + "stat": { + "aid": 259434557, + "view": 1403311, + "danmaku": 5762, + "reply": 1295, + "favorite": 26633, + "coin": 100847, + "share": 4502, + "now_rank": 0, + "his_rank": 64, + "like": 130944, + "dislike": 0 + }, + "dynamic": "猫确实会两条腿滑冰!猫和老鼠诚不欺我", + "cid": 800970167, + "dimension": { + "width": 1920, + "height": 1080, + "rotate": 0 + }, + "season_id": 3702, + "short_link_v2": "https://b23.tv/BV1wa411Z77n", + "first_frame": "http://i0.hdslb.com/bfs/storyff/n220812a228chhkmeci9f0hizo6ivhzv_firsti.jpg", + "pub_location": "上海", + "bvid": "BV1wa411Z77n", + "coins": 2, + "time": 1662182649, + "ip": "", + "inter_video": false, + "resource_type": "ugc", + "subtitle": "" + } + ] +} +``` + +
+ +### 获取用户最近点赞的视频明细 + +> https://api.bilibili.com/x/space/like/video + +*请求方式:GET* + +认证方式:Cookie(SESSDATA) + +如设置隐私查看自己的需要认证 仅包含最近点赞的20个视频,也可能为空 + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +|------|-----|---------|-----|-----| +| vmid | num | 目标用户mid | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +|---------|-------------------------|------|------------------------------------------| +| code | num | 返回值 | 0:成功
-400:请求错误
53013:用户隐私设置未公开 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | 隐藏时:null
公开时:array | 信息本体 | | + +`data`数组: + +| 项 | 类型 | 内容 | 备注 | +|-----|-----|-----------|-----| +| 0 | obj | 点赞视频1 | | +| n | obj | 点赞视频(n+1) | | +| …… | obj | …… | | + +`data`数组中的对象: + +基本同[获取视频详细信息(web端)](/video/info.md#获取视频详细信息(web端))中的data对象 + +**示例:** + +查看用户`mid=15858903`的最近投币视频 + +```shell +curl -L -X GET 'https://api.bilibili.com/x/space/like/video?vmid=15858903' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "list": [ + { + "aid": 53516907, + "videos": 1, + "tid": 26, + "tname": "音MAD", + "copyright": 1, + "pic": "http://i1.hdslb.com/bfs/archive/3653400bb9a5996c9f0702d20fc431210dca0c5e.jpg", + "title": "喵内我回来了Brain Power", + "pubdate": 1558756227, + "ctime": 1558756227, + "desc": "在准备一个合作,所以一直没更新,O-oooooooooo AAAAE-A-A-I-A-U- JO-oooooooooooo AAE-O-A-A-U-U-A- E-eee-ee-eee AAAAE-A-E-I-E-A- JO-ooo-oo-oo-oo EEEEO-A-AAA-AAAA", + "state": 0, + "duration": 48, + "rights": { + "bp": 0, + "elec": 0, + "download": 0, + "movie": 0, + "pay": 0, + "hd5": 1, + "no_reprint": 1, + "autoplay": 1, + "ugc_pay": 0, + "is_cooperation": 0, + "ugc_pay_preview": 0, + "no_background": 0, + "arc_pay": 0, + "pay_free_watch": 0 + }, + "owner": { + "mid": 12466098, + "name": "不知道4576", + "face": "http://i0.hdslb.com/bfs/face/1361b4a2e686e9efa89fc0f1024985d0c44345c6.jpg" + }, + "stat": { + "aid": 53516907, + "view": 125484, + "danmaku": 258, + "reply": 441, + "favorite": 4268, + "coin": 3132, + "share": 859, + "now_rank": 0, + "his_rank": 0, + "like": 5767, + "dislike": 0 + }, + "dynamic": "#BRAIN POWER##音MAD##天使降临到我身边#", + "cid": 93639076, + "dimension": { + "width": 1920, + "height": 1080, + "rotate": 0 + }, + "short_link_v2": "https://b23.tv/BV1V4411s7Qr", + "bvid": "BV1V4411s7Qr", + "inter_video": false, + "resource_type": "ugc", + "subtitle": "" + }, + { + "aid": 557851916, + "videos": 1, + "tid": 122, + "tname": "野生技能协会", + "copyright": 2, + "pic": "http://i1.hdslb.com/bfs/archive/fea0d9efa7e2dc8cd9960bd466f78b2ed84d907d.jpg", + "title": "请问:「宁可在屎山上不断堆代码,也不愿意优化项目需求」❓", + "pubdate": 1662441923, + "ctime": 1662441923, + "desc": "https://fishc.com.cn/thread-217312-1-1.html\n⬆️关于产品迭代的3个关键⬆️", + "state": 0, + "duration": 312, + "rights": { + "bp": 0, + "elec": 0, + "download": 0, + "movie": 0, + "pay": 0, + "hd5": 1, + "no_reprint": 0, + "autoplay": 1, + "ugc_pay": 0, + "is_cooperation": 0, + "ugc_pay_preview": 0, + "no_background": 0, + "arc_pay": 0, + "pay_free_watch": 0 + }, + "owner": { + "mid": 314076440, + "name": "鱼C-小甲鱼", + "face": "http://i2.hdslb.com/bfs/face/4543ce186f9b74e60a85e66c010187bd3be3d0e1.jpg" + }, + "stat": { + "aid": 557851916, + "view": 89834, + "danmaku": 245, + "reply": 164, + "favorite": 490, + "coin": 265, + "share": 570, + "now_rank": 0, + "his_rank": 0, + "like": 1601, + "dislike": 0 + }, + "dynamic": "【遇山开路 逢水搭桥】超完美产品是如何「迭代」出来的❓", + "cid": 825277912, + "dimension": { + "width": 1920, + "height": 1080, + "rotate": 0 + }, + "season_id": 4830, + "short_link_v2": "https://b23.tv/BV1pe4y1C7XD", + "up_from_v2": 20, + "first_frame": "http://i0.hdslb.com/bfs/storyff/n220906qn22r4a6hff6vie1bodoftvgi_firsti.jpg", + "pub_location": "广东", + "bvid": "BV1pe4y1C7XD", + "inter_video": false, + "resource_type": "ugc", + "subtitle": "" + }, + { + "aid": 730007618, + "videos": 1, + "tid": 27, + "tname": "综合", + "copyright": 1, + "pic": "http://i0.hdslb.com/bfs/archive/1f65fd131db7eb81fd270e6ccb7257b68dfd60c4.jpg", + "title": "细!《猫和老鼠》中的小穿帮竟然有这么多!画师偷懒?", + "pubdate": 1661862565, + "ctime": 1661862565, + "desc": "BGM:超级马里奥世界\n 匈牙利狂想曲-李斯特\n Used to-James Carter", + "state": 0, + "duration": 338, + "mission_id": 779615, + "rights": { + "bp": 0, + "elec": 0, + "download": 0, + "movie": 0, + "pay": 0, + "hd5": 0, + "no_reprint": 1, + "autoplay": 1, + "ugc_pay": 0, + "is_cooperation": 0, + "ugc_pay_preview": 0, + "no_background": 0, + "arc_pay": 0, + "pay_free_watch": 0 + }, + "owner": { + "mid": 38968617, + "name": "大福咕咕", + "face": "http://i0.hdslb.com/bfs/face/e4a00d5409f1888c10e7382bf15df0fbd9f78ae8.jpg" + }, + "stat": { + "aid": 730007618, + "view": 8052558, + "danmaku": 6994, + "reply": 1905, + "favorite": 181436, + "coin": 113827, + "share": 5447, + "now_rank": 0, + "his_rank": 2, + "like": 698492, + "dislike": 0 + }, + "dynamic": "考虑到广大朋友们要开学了 直接提前更新!", + "cid": 819285197, + "dimension": { + "width": 1920, + "height": 1080, + "rotate": 0 + }, + "season_id": 371093, + "short_link_v2": "https://b23.tv/BV1kD4y1672t", + "first_frame": "http://i2.hdslb.com/bfs/storyff/n220830a238owa0pg6docs2wak8t6tg2_firsti.jpg", + "pub_location": "北京", + "bvid": "BV1kD4y1672t", + "inter_video": false, + "resource_type": "ugc", + "subtitle": "" + }, + { + "aid": 886537437, + "videos": 2, + "tid": 22, + "tname": "鬼畜调教", + "copyright": 1, + "pic": "http://i0.hdslb.com/bfs/archive/db9314a8b2730ee95cb9cac7fc5054c770ea9c9f.jpg", + "title": "电棍:向♿奔去(修复版)", + "pubdate": 1612420280, + "ctime": 1612420280, + "desc": "原作@_Karasu_ \n拙劣的模仿 歌词有修改", + "state": 0, + "duration": 448, + "rights": { + "bp": 0, + "elec": 0, + "download": 0, + "movie": 0, + "pay": 0, + "hd5": 0, + "no_reprint": 1, + "autoplay": 1, + "ugc_pay": 0, + "is_cooperation": 0, + "ugc_pay_preview": 0, + "no_background": 0, + "arc_pay": 0, + "pay_free_watch": 0 + }, + "owner": { + "mid": 12771348, + "name": "DJRicher", + "face": "http://i0.hdslb.com/bfs/face/4a033640048238cb039add4e064804e227e87082.jpg" + }, + "stat": { + "aid": 886537437, + "view": 8790816, + "danmaku": 11516, + "reply": 50330, + "favorite": 106746, + "coin": 157098, + "share": 66553, + "now_rank": 0, + "his_rank": 0, + "like": 155180, + "dislike": 0 + }, + "dynamic": "", + "cid": 312766707, + "dimension": { + "width": 1280, + "height": 720, + "rotate": 0 + }, + "short_link_v2": "https://b23.tv/BV1vK4y1p7F5", + "bvid": "BV1vK4y1p7F5", + "inter_video": false, + "resource_type": "ugc", + "subtitle": "" + }, + { + "aid": 514421957, + "videos": 1, + "tid": 21, + "tname": "日常", + "copyright": 2, + "pic": "http://i2.hdslb.com/bfs/archive/8570e2264c585ec47fa2f90f0fb41fcbe24082c1.jpg", + "title": "女子“巨乳症” 至Q杯,医生切除26斤赘乳", + "pubdate": 1660436958, + "ctime": 1660436958, + "desc": "网络", + "state": 0, + "duration": 157, + "rights": { + "bp": 0, + "elec": 0, + "download": 0, + "movie": 0, + "pay": 0, + "hd5": 0, + "no_reprint": 0, + "autoplay": 1, + "ugc_pay": 0, + "is_cooperation": 0, + "ugc_pay_preview": 0, + "no_background": 0, + "arc_pay": 0, + "pay_free_watch": 0 + }, + "owner": { + "mid": 153362257, + "name": "微胖委员会", + "face": "http://i1.hdslb.com/bfs/face/7bce12b8b5fef2f31d215dec94fc5fc18cdd41a2.jpg" + }, + "stat": { + "aid": 514421957, + "view": 1863705, + "danmaku": 1357, + "reply": 2953, + "favorite": 3091, + "coin": 95, + "share": 25867, + "now_rank": 0, + "his_rank": 0, + "like": 16315, + "dislike": 0 + }, + "dynamic": "", + "cid": 802910768, + "dimension": { + "width": 1280, + "height": 720, + "rotate": 0 + }, + "short_link_v2": "https://b23.tv/BV1xg411k7L1", + "up_from_v2": 8, + "first_frame": "http://i1.hdslb.com/bfs/storyff/n220814qn1cm2zo6jetqmu2nvlcxssy1_firsti.jpg", + "pub_location": "江苏", + "bvid": "BV1xg411k7L1", + "inter_video": false, + "resource_type": "ugc", + "subtitle": "" + }, + { + "aid": 259434557, + "videos": 1, + "tid": 218, + "tname": "喵星人", + "copyright": 1, + "pic": "http://i2.hdslb.com/bfs/archive/47d46ad72bf1898ebbfe7d82a9d972d4b53e61fc.jpg", + "title": "42度在家造溜冰场降温,猫上去直呼脚滑!", + "pubdate": 1660361400, + "ctime": 1660361407, + "desc": "刚开始真的觉得很难,不可能,学会理论知识后觉得,就这?太简单了,所以随便做做是成立的。就是学费有点贵,1w多……,我现在空调随便修!希望日后修空调能把这钱在挣回来!(溜冰场上期指路:BV1ga411f79y)\n萌宠区手工up主往期发明指路: \n猫力跑步发电机:BV1iy4y1a7Cb \n电动撸毛器:BV1H64y1v7gq\n戒烟头盔:BV1H64y1k7tz \n猫热能暖床器:BV1xF411i7tw \n全透明赏猫床:BV1Qb4y1C7sn \n写不完啦 还有很多,就要靠各位慢慢挖掘啦!", + "state": 0, + "duration": 501, + "mission_id": 859937, + "rights": { + "bp": 0, + "elec": 0, + "download": 0, + "movie": 0, + "pay": 0, + "hd5": 1, + "no_reprint": 1, + "autoplay": 1, + "ugc_pay": 0, + "is_cooperation": 0, + "ugc_pay_preview": 0, + "no_background": 0, + "arc_pay": 0, + "pay_free_watch": 0 + }, + "owner": { + "mid": 20951119, + "name": "蒂姆嘟嘟Tim", + "face": "http://i1.hdslb.com/bfs/face/9860c4c559fd2517b1fa92e592d3d71b95bb3ec2.jpg" + }, + "stat": { + "aid": 259434557, + "view": 1403315, + "danmaku": 5762, + "reply": 1295, + "favorite": 26633, + "coin": 100847, + "share": 4502, + "now_rank": 0, + "his_rank": 64, + "like": 130944, + "dislike": 0 + }, + "dynamic": "猫确实会两条腿滑冰!猫和老鼠诚不欺我", + "cid": 800970167, + "dimension": { + "width": 1920, + "height": 1080, + "rotate": 0 + }, + "season_id": 3702, + "short_link_v2": "https://b23.tv/BV1wa411Z77n", + "first_frame": "http://i0.hdslb.com/bfs/storyff/n220812a228chhkmeci9f0hizo6ivhzv_firsti.jpg", + "pub_location": "上海", + "bvid": "BV1wa411Z77n", + "inter_video": false, + "resource_type": "ugc", + "subtitle": "" + }, + { + "aid": 765765040, + "videos": 1, + "tid": 26, + "tname": "音MAD", + "copyright": 1, + "pic": "http://i0.hdslb.com/bfs/archive/f92297d237bc330e4c70bd7cb4b6a5988a4a35df.jpg", + "title": "向 先 辈 奔 去", + "pubdate": 1642843003, + "ctime": 1642843003, + "desc": "远野说大家听不出他的和声所以不愿意来了(迫真)\nBGM:夜に駆ける\nPV:BV1Ph411C7S5\n封面:@十人比白 \n其他作品:\n病 名 为 臭 BV1W3411Y7R3\nHomo KING BV1p3411Y7Qf\n先 辈 の 名 は BV1bF411p7W7\n野兽先辈的消失 BV1XL4y147KK", + "state": 0, + "duration": 119, + "rights": { + "bp": 0, + "elec": 0, + "download": 0, + "movie": 0, + "pay": 0, + "hd5": 0, + "no_reprint": 1, + "autoplay": 1, + "ugc_pay": 0, + "is_cooperation": 0, + "ugc_pay_preview": 0, + "no_background": 0, + "arc_pay": 0, + "pay_free_watch": 0 + }, + "owner": { + "mid": 26540403, + "name": "小王子擎天", + "face": "http://i0.hdslb.com/bfs/face/70723d05c4fcd3af47ac7e453bee06feea48b804.jpg" + }, + "stat": { + "aid": 765765040, + "view": 125123, + "danmaku": 168, + "reply": 384, + "favorite": 3518, + "coin": 878, + "share": 858, + "now_rank": 0, + "his_rank": 0, + "like": 6224, + "dislike": 0 + }, + "dynamic": "", + "cid": 490015078, + "dimension": { + "width": 1920, + "height": 1080, + "rotate": 0 + }, + "season_id": 185827, + "short_link_v2": "https://b23.tv/BV19r4y1Y7De", + "first_frame": "http://i1.hdslb.com/bfs/storyff/n220122a26mtv7cs4x1ga3329ew4cqhb_firsti.jpg", + "bvid": "BV19r4y1Y7De", + "inter_video": false, + "resource_type": "ugc", + "subtitle": "" + }, + { + "aid": 599348400, + "videos": 1, + "tid": 218, + "tname": "喵星人", + "copyright": 1, + "pic": "http://i1.hdslb.com/bfs/archive/6c0b56f7b2a378e32c40c2ec7cf4a34cf6e42ad2.jpg", + "title": "打开前请先降低音量哦!!", + "pubdate": 1660007700, + "ctime": 1660007701, + "desc": "日常投食小猫咪\n视频里的是两个窝次的15只崽崽\n5月30日和6月1日出生\nliliya和Tessa的宝宝", + "state": 0, + "duration": 203, + "rights": { + "bp": 0, + "elec": 0, + "download": 0, + "movie": 0, + "pay": 0, + "hd5": 1, + "no_reprint": 1, + "autoplay": 1, + "ugc_pay": 0, + "is_cooperation": 0, + "ugc_pay_preview": 0, + "no_background": 0, + "arc_pay": 0, + "pay_free_watch": 0 + }, + "owner": { + "mid": 43099315, + "name": "颖姥姥的小猪喵", + "face": "http://i1.hdslb.com/bfs/face/6261098e074624891f5f1cdf35b4df64401c4307.jpg" + }, + "stat": { + "aid": 599348400, + "view": 5611104, + "danmaku": 14300, + "reply": 8180, + "favorite": 122270, + "coin": 45195, + "share": 126333, + "now_rank": 0, + "his_rank": 5, + "like": 536114, + "dislike": 0 + }, + "dynamic": "日常投食小猫咪\n视频里的是两个窝次的15只崽崽\n5月30日和6月1日出生\nliliya和Tessa的宝宝", + "cid": 797762429, + "dimension": { + "width": 1080, + "height": 1920, + "rotate": 0 + }, + "short_link_v2": "https://b23.tv/BV1cB4y167B8", + "up_from_v2": 9, + "first_frame": "http://i1.hdslb.com/bfs/storyff/n220809a2ku7vu7oisum1632zs07p7dg_firsti.jpg", + "pub_location": "山东", + "bvid": "BV1cB4y167B8", + "inter_video": false, + "resource_type": "ugc", + "subtitle": "" + }, + { + "aid": 472194944, + "videos": 1, + "tid": 162, + "tname": "绘画", + "copyright": 1, + "pic": "http://i2.hdslb.com/bfs/archive/aee4307632ecad127f60ae556cc5981f1a329c15.jpg", + "title": "有些画,不需要太清晰", + "pubdate": 1660817303, + "ctime": 1660817303, + "desc": "先画个狗头保命", + "state": 0, + "duration": 147, + "mission_id": 761022, + "rights": { + "bp": 0, + "elec": 0, + "download": 0, + "movie": 0, + "pay": 0, + "hd5": 0, + "no_reprint": 1, + "autoplay": 1, + "ugc_pay": 0, + "is_cooperation": 0, + "ugc_pay_preview": 0, + "no_background": 0, + "arc_pay": 0, + "pay_free_watch": 0 + }, + "owner": { + "mid": 28330240, + "name": "叶无趣", + "face": "http://i1.hdslb.com/bfs/face/9416d6dd723d271bdd805ccf2e44dc47436c5a07.jpg" + }, + "stat": { + "aid": 472194944, + "view": 2378719, + "danmaku": 6517, + "reply": 2815, + "favorite": 33778, + "coin": 24411, + "share": 11461, + "now_rank": 0, + "his_rank": 0, + "like": 209110, + "dislike": 0 + }, + "dynamic": "", + "cid": 807922809, + "dimension": { + "width": 1920, + "height": 1080, + "rotate": 0 + }, + "short_link_v2": "https://b23.tv/BV1DT411c7AD", + "first_frame": "http://i1.hdslb.com/bfs/storyff/n220819a213lvuk7uqfgh91m9lv1esx1_firsti.jpg", + "pub_location": "湖南", + "bvid": "BV1DT411c7AD", + "inter_video": false, + "resource_type": "ugc", + "subtitle": "" + }, + { + "aid": 599779624, + "videos": 1, + "tid": 173, + "tname": "桌游棋牌", + "copyright": 1, + "pic": "http://i0.hdslb.com/bfs/archive/70800347ccbd019b678b41318c203b8fecb9aaec.jpg", + "title": "【雀魂汪汪录】第196期 谁能给我翻译翻译 什么叫做惊喜", + "pubdate": 1661394900, + "ctime": 1661252218, + "desc": "BGM可以通过网易云搜索【雀魂汪汪录BGM】就可以找到啦!\n雀魂汪汪录 周四中午见\n微博 @雀魂麻将majsoul\n——————————————————————————\n想要投稿的玩家~务必请通过邮箱来进行投稿~【请不要在评论区或是私信投稿,谢谢】\n邮箱地址:tg@catfoodstudio.com\n投稿最少需要注明【局目、内容、牌谱链接】哦!", + "state": 0, + "duration": 575, + "mission_id": 808212, + "rights": { + "bp": 0, + "elec": 0, + "download": 0, + "movie": 0, + "pay": 0, + "hd5": 0, + "no_reprint": 1, + "autoplay": 1, + "ugc_pay": 0, + "is_cooperation": 0, + "ugc_pay_preview": 0, + "no_background": 0, + "arc_pay": 0, + "pay_free_watch": 0 + }, + "owner": { + "mid": 353240497, + "name": "雀魂麻将majsoul", + "face": "http://i1.hdslb.com/bfs/face/053f02d2a7eb96884b1020ca20d6d02241df6099.jpg" + }, + "stat": { + "aid": 599779624, + "view": 187150, + "danmaku": 1958, + "reply": 516, + "favorite": 342, + "coin": 787, + "share": 646, + "now_rank": 0, + "his_rank": 0, + "like": 7429, + "dislike": 0 + }, + "dynamic": "#雀魂# #雀魂汪汪录# #立直麻将#", + "cid": 812183140, + "dimension": { + "width": 1920, + "height": 1080, + "rotate": 0 + }, + "season_id": 2739, + "short_link_v2": "https://b23.tv/BV1aB4y1z74J", + "first_frame": "http://i0.hdslb.com/bfs/storyff/n220823qn266np8ftodq2t2m2paam9xj_firsti.jpg", + "pub_location": "上海", + "bvid": "BV1aB4y1z74J", + "inter_video": false, + "resource_type": "ugc", + "subtitle": "" + }, + { + "aid": 685619632, + "videos": 1, + "tid": 17, + "tname": "单机游戏", + "copyright": 1, + "pic": "http://i1.hdslb.com/bfs/archive/750b5fabea1ff363d775ba58f95a23b5cb890be9.jpg", + "title": "多人群峦传说联机3:用木炭炉做出铜溶液,浇筑出铜镐和探矿镐!", + "pubdate": 1656756676, + "ctime": 1656756677, + "desc": "-", + "state": 0, + "duration": 268, + "rights": { + "bp": 0, + "elec": 0, + "download": 0, + "movie": 0, + "pay": 0, + "hd5": 0, + "no_reprint": 1, + "autoplay": 1, + "ugc_pay": 0, + "is_cooperation": 0, + "ugc_pay_preview": 0, + "no_background": 0, + "arc_pay": 0, + "pay_free_watch": 0 + }, + "owner": { + "mid": 1771879421, + "name": "方块局安神", + "face": "http://i2.hdslb.com/bfs/face/c3781165f41f2b4d99e7beb1356105f624cc424e.jpg" + }, + "stat": { + "aid": 685619632, + "view": 215, + "danmaku": 0, + "reply": 2, + "favorite": 1, + "coin": 0, + "share": 0, + "now_rank": 0, + "his_rank": 0, + "like": 8, + "dislike": 0 + }, + "dynamic": "", + "cid": 761921385, + "dimension": { + "width": 1920, + "height": 864, + "rotate": 0 + }, + "short_link_v2": "https://b23.tv/BV1MU4y1D7ND", + "up_from_v2": 35, + "first_frame": "http://i1.hdslb.com/bfs/storyff/n220702qndfrow9p4eq991lyl8em2v9w_firsti.jpg", + "pub_location": "宁夏", + "bvid": "BV1MU4y1D7ND", + "inter_video": false, + "resource_type": "ugc", + "subtitle": "" + }, + { + "aid": 427974127, + "videos": 1, + "tid": 17, + "tname": "单机游戏", + "copyright": 1, + "pic": "http://i0.hdslb.com/bfs/archive/1f81be8fd2eec800e3134f24928b66b75c25a078.jpg", + "title": "多人群峦传说联机1:开局做出篝火和木炭窑!很快的进入陶器时代!", + "pubdate": 1656660681, + "ctime": 1656660682, + "desc": "-", + "state": 0, + "duration": 313, + "rights": { + "bp": 0, + "elec": 0, + "download": 0, + "movie": 0, + "pay": 0, + "hd5": 0, + "no_reprint": 1, + "autoplay": 1, + "ugc_pay": 0, + "is_cooperation": 0, + "ugc_pay_preview": 0, + "no_background": 0, + "arc_pay": 0, + "pay_free_watch": 0 + }, + "owner": { + "mid": 1771879421, + "name": "方块局安神", + "face": "http://i2.hdslb.com/bfs/face/c3781165f41f2b4d99e7beb1356105f624cc424e.jpg" + }, + "stat": { + "aid": 427974127, + "view": 186, + "danmaku": 0, + "reply": 7, + "favorite": 1, + "coin": 2, + "share": 0, + "now_rank": 0, + "his_rank": 0, + "like": 7, + "dislike": 0 + }, + "dynamic": "", + "cid": 760818007, + "dimension": { + "width": 1920, + "height": 864, + "rotate": 0 + }, + "short_link_v2": "https://b23.tv/BV1MG411x7Jh", + "up_from_v2": 35, + "first_frame": "http://i0.hdslb.com/bfs/storyff/n220701qn3ejknxipb82r1a0hut5chj5_firsti.jpg", + "pub_location": "宁夏", + "bvid": "BV1MG411x7Jh", + "inter_video": false, + "resource_type": "ugc", + "subtitle": "" + }, + { + "aid": 602112213, + "videos": 1, + "tid": 22, + "tname": "鬼畜调教", + "copyright": 1, + "pic": "http://i1.hdslb.com/bfs/archive/5edabb39c8ac3a3202111e8e60f8e45b8b3c180d.jpg", + "title": "你被百度骗了,呵呵", + "pubdate": 1660561467, + "ctime": 1660561467, + "desc": "分区和参与活动真的合理吗()\n很草的点子\n烂活", + "state": 0, + "duration": 62, + "mission_id": 738105, + "rights": { + "bp": 0, + "elec": 0, + "download": 0, + "movie": 0, + "pay": 0, + "hd5": 0, + "no_reprint": 1, + "autoplay": 1, + "ugc_pay": 0, + "is_cooperation": 0, + "ugc_pay_preview": 0, + "no_background": 0, + "arc_pay": 0, + "pay_free_watch": 0 + }, + "owner": { + "mid": 361685930, + "name": "啰嗦_Losso", + "face": "http://i2.hdslb.com/bfs/face/e26253ff660c19fdb953825aef990c30ad08c8dc.jpg" + }, + "stat": { + "aid": 602112213, + "view": 58957, + "danmaku": 112, + "reply": 231, + "favorite": 1401, + "coin": 514, + "share": 117, + "now_rank": 0, + "his_rank": 0, + "like": 9353, + "dislike": 0 + }, + "dynamic": "", + "cid": 804462941, + "dimension": { + "width": 828, + "height": 1792, + "rotate": 0 + }, + "short_link_v2": "https://b23.tv/BV1yB4y1L7iG", + "first_frame": "http://i1.hdslb.com/bfs/storyff/n220815qn31gxoi0spl1yr35uq27n3u4_firsti.jpg", + "pub_location": "美国", + "bvid": "BV1yB4y1L7iG", + "inter_video": false, + "resource_type": "ugc", + "subtitle": "" + }, + { + "aid": 856393020, + "videos": 1, + "tid": 238, + "tname": "运动综合", + "copyright": 1, + "pic": "http://i1.hdslb.com/bfs/archive/d7edbba4eb63bb9ceed978ae46e676cb3fdbaf6a.jpg", + "title": "极限难度!不碰其他球把45颗球打入洞中!海外知名桌球博主来B站啦!", + "pubdate": 1659105213, + "ctime": 1659105213, + "desc": "", + "state": 0, + "duration": 756, + "rights": { + "bp": 0, + "elec": 0, + "download": 0, + "movie": 0, + "pay": 0, + "hd5": 0, + "no_reprint": 1, + "autoplay": 1, + "ugc_pay": 0, + "is_cooperation": 0, + "ugc_pay_preview": 0, + "no_background": 0, + "arc_pay": 0, + "pay_free_watch": 0 + }, + "owner": { + "mid": 1954176521, + "name": "桌球小哥genipool官方", + "face": "http://i2.hdslb.com/bfs/face/90ca22fa8c79d0d5042c7c24daf1ec574679a740.jpg" + }, + "stat": { + "aid": 856393020, + "view": 342876, + "danmaku": 365, + "reply": 159, + "favorite": 809, + "coin": 800, + "share": 283, + "now_rank": 0, + "his_rank": 0, + "like": 4266, + "dislike": 0 + }, + "dynamic": "", + "cid": 788065599, + "dimension": { + "width": 1280, + "height": 720, + "rotate": 0 + }, + "short_link_v2": "https://b23.tv/BV18V4y1E7zo", + "first_frame": "http://i0.hdslb.com/bfs/storyff/n220729qn15m1fxzexlmvq1j541qvx6r_firsti.jpg", + "pub_location": "福建", + "bvid": "BV18V4y1E7zo", + "inter_video": false, + "resource_type": "ugc", + "subtitle": "" + }, + { + "aid": 728238452, + "videos": 1, + "tid": 232, + "tname": "科工机械", + "copyright": 1, + "pic": "http://i2.hdslb.com/bfs/archive/6613ccabbf0828d0071efbb2351818c3cab62725.jpg", + "title": "烧脑故障,家庭漏电维修图解", + "pubdate": 1657075740, + "ctime": 1657075740, + "desc": "-", + "state": 0, + "duration": 433, + "rights": { + "bp": 0, + "elec": 0, + "download": 0, + "movie": 0, + "pay": 0, + "hd5": 0, + "no_reprint": 1, + "autoplay": 1, + "ugc_pay": 0, + "is_cooperation": 0, + "ugc_pay_preview": 0, + "no_background": 0, + "arc_pay": 0, + "pay_free_watch": 0 + }, + "owner": { + "mid": 1985127693, + "name": "城阳电工电路", + "face": "http://i0.hdslb.com/bfs/face/faae5daababbf652d97faedab1a25d78b654fc44.jpg" + }, + "stat": { + "aid": 728238452, + "view": 138664, + "danmaku": 277, + "reply": 263, + "favorite": 681, + "coin": 601, + "share": 85, + "now_rank": 0, + "his_rank": 0, + "like": 9567, + "dislike": 0 + }, + "dynamic": "", + "cid": 765013281, + "dimension": { + "width": 1080, + "height": 1920, + "rotate": 0 + }, + "short_link_v2": "https://b23.tv/BV12S4y1E7rt", + "up_from_v2": 8, + "first_frame": "http://i2.hdslb.com/bfs/storyff/n220706qn257g5ymn00jrq1tbc2y0k4s_firsti.jpg", + "pub_location": "山东", + "bvid": "BV12S4y1E7rt", + "inter_video": false, + "resource_type": "ugc", + "subtitle": "" + }, + { + "aid": 556671285, + "videos": 1, + "tid": 173, + "tname": "桌游棋牌", + "copyright": 1, + "pic": "http://i1.hdslb.com/bfs/archive/02aa212793ebfdc5bd2b243109961d01ef74015f.jpg", + "title": "【整活向】麻将新手不常见错误示范——偷换牌山", + "pubdate": 1659761706, + "ctime": 1659761706, + "desc": "大家千万不要学习@肉目 的反面教材噢\n不然胡萝卜很快就被切光了", + "state": 0, + "duration": 61, + "mission_id": 808212, + "rights": { + "bp": 0, + "elec": 0, + "download": 0, + "movie": 0, + "pay": 0, + "hd5": 1, + "no_reprint": 1, + "autoplay": 1, + "ugc_pay": 0, + "is_cooperation": 0, + "ugc_pay_preview": 0, + "no_background": 0, + "arc_pay": 0, + "pay_free_watch": 0 + }, + "owner": { + "mid": 5256791, + "name": "凤鸣麻雀社", + "face": "http://i2.hdslb.com/bfs/face/79c578d5a00dc25498913187f1e2e7b63463b027.jpg" + }, + "stat": { + "aid": 556671285, + "view": 28016, + "danmaku": 17, + "reply": 62, + "favorite": 25, + "coin": 34, + "share": 22, + "now_rank": 0, + "his_rank": 0, + "like": 845, + "dislike": 0 + }, + "dynamic": "健康麻将 保护胡萝卜 从@肉目 做起\n玩儿花的手法是越来越熟练了 危险危险", + "cid": 795200966, + "dimension": { + "width": 1080, + "height": 1440, + "rotate": 0 + }, + "short_link_v2": "https://b23.tv/BV12e4y1D7mp", + "up_from_v2": 8, + "first_frame": "http://i0.hdslb.com/bfs/storyff/n220806a21h7h5icb0b5fv1v71d6cwu7_firsti.jpg", + "pub_location": "广东", + "bvid": "BV12e4y1D7mp", + "inter_video": false, + "resource_type": "ugc", + "subtitle": "" + }, + { + "aid": 471592118, + "videos": 1, + "tid": 59, + "tname": "演奏", + "copyright": 1, + "pic": "http://i0.hdslb.com/bfs/archive/3f1fcd0461235f8881a86faaa1321744b251b26f.jpg", + "title": "有仪式感的植物大战僵尸", + "pubdate": 1659409876, + "ctime": 1659409876, + "desc": "-", + "state": 0, + "duration": 150, + "rights": { + "bp": 0, + "elec": 0, + "download": 0, + "movie": 0, + "pay": 0, + "hd5": 0, + "no_reprint": 1, + "autoplay": 1, + "ugc_pay": 0, + "is_cooperation": 0, + "ugc_pay_preview": 0, + "no_background": 0, + "arc_pay": 0, + "pay_free_watch": 0 + }, + "owner": { + "mid": 523219895, + "name": "上官画画", + "face": "http://i2.hdslb.com/bfs/face/a69355ca44c5343e202e1e1294245ba588e92e96.jpg" + }, + "stat": { + "aid": 471592118, + "view": 314596, + "danmaku": 302, + "reply": 630, + "favorite": 2532, + "coin": 2648, + "share": 1294, + "now_rank": 0, + "his_rank": 0, + "like": 20552, + "dislike": 0 + }, + "dynamic": "", + "cid": 791291889, + "dimension": { + "width": 960, + "height": 540, + "rotate": 0 + }, + "short_link_v2": "https://b23.tv/BV1WT41177PD", + "up_from_v2": 36, + "first_frame": "http://i2.hdslb.com/bfs/storyff/n220802qn3bbryqe32dploiilb7xtqft_firsti.jpg", + "pub_location": "浙江", + "bvid": "BV1WT41177PD", + "inter_video": false, + "resource_type": "ugc", + "subtitle": "" + }, + { + "aid": 599162361, + "videos": 1, + "tid": 238, + "tname": "运动综合", + "copyright": 1, + "pic": "http://i0.hdslb.com/bfs/archive/bc086df16873a9bc619d625bc176359220062d79.jpg", + "title": "张镇辉台球正经教学【6个不太建议使用的技巧】15.0版本", + "pubdate": 1659690000, + "ctime": 1659690022, + "desc": "靓仔,用一句话证明你是老粉!!\n \n \n \n长按点赞,有彩蛋哟~", + "state": 0, + "duration": 119, + "mission_id": 846900, + "rights": { + "bp": 0, + "elec": 0, + "download": 0, + "movie": 0, + "pay": 0, + "hd5": 0, + "no_reprint": 1, + "autoplay": 1, + "ugc_pay": 0, + "is_cooperation": 0, + "ugc_pay_preview": 0, + "no_background": 0, + "arc_pay": 0, + "pay_free_watch": 0 + }, + "owner": { + "mid": 88895225, + "name": "张镇辉台球教学", + "face": "http://i2.hdslb.com/bfs/face/2af69641c86d3915440b28ef64214e112390c15c.jpg" + }, + "stat": { + "aid": 599162361, + "view": 2275313, + "danmaku": 23143, + "reply": 2608, + "favorite": 22825, + "coin": 15344, + "share": 3584, + "now_rank": 0, + "his_rank": 73, + "like": 243787, + "dislike": 0 + }, + "dynamic": "", + "cid": 794017093, + "dimension": { + "width": 2160, + "height": 3840, + "rotate": 0 + }, + "season_id": 39377, + "short_link_v2": "https://b23.tv/BV1CB4y1r7d5", + "first_frame": "http://i2.hdslb.com/bfs/storyff/n220805qn1xjr322hy7j1tc0t7ntj0r3_firsti.jpg", + "pub_location": "广东", + "bvid": "BV1CB4y1r7d5", + "inter_video": false, + "resource_type": "ugc", + "subtitle": "" + }, + { + "aid": 729057411, + "videos": 1, + "tid": 59, + "tname": "演奏", + "copyright": 1, + "pic": "http://i1.hdslb.com/bfs/archive/365e41383e10a774d54b908c018e66a0f90bcc65.jpg", + "title": "今天练练脚下钢琴", + "pubdate": 1659322244, + "ctime": 1659322244, + "desc": "-", + "state": 0, + "duration": 16, + "mission_id": 741439, + "rights": { + "bp": 0, + "elec": 0, + "download": 0, + "movie": 0, + "pay": 0, + "hd5": 0, + "no_reprint": 1, + "autoplay": 1, + "ugc_pay": 0, + "is_cooperation": 0, + "ugc_pay_preview": 0, + "no_background": 0, + "arc_pay": 0, + "pay_free_watch": 0 + }, + "owner": { + "mid": 397865300, + "name": "Rhythm梦龙", + "face": "http://i2.hdslb.com/bfs/face/297f26c89a43d60619e552d5606e575d2a8406aa.jpg" + }, + "stat": { + "aid": 729057411, + "view": 17740, + "danmaku": 8, + "reply": 27, + "favorite": 74, + "coin": 37, + "share": 20, + "now_rank": 0, + "his_rank": 0, + "like": 1878, + "dislike": 0 + }, + "dynamic": "", + "cid": 790320365, + "dimension": { + "width": 1080, + "height": 1920, + "rotate": 0 + }, + "short_link_v2": "https://b23.tv/BV1zS4y1x7ZM", + "up_from_v2": 9, + "first_frame": "http://i1.hdslb.com/bfs/storyff/n220801qn337b2rig3v6l23kyehiinaa_firsti.jpg", + "pub_location": "上海", + "bvid": "BV1zS4y1x7ZM", + "inter_video": false, + "resource_type": "ugc", + "subtitle": "" + } + ] + } +} +``` + +
+ +## 投稿 + + + +### 查询用户投稿视频明细 + +> https://api.bilibili.com/x/space/wbi/arc/search + +> https://api.bilibili.com/x/space/arc/search (旧) + +PS:旧 api 存在一些不同,比如某些情况下,例如 mid=2 时如果没有设置 Cookie 则出现非法访问(-401),但新 api 不会。 + + +*请求方式:GET* + +**header字段:** + +必须要有 `user-agent`,且不能为 `空字符串`,以及含有 `python`、`node`、`curl` 等的字符串。 + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +|---------|-----|---------|-----|-------------------------------------------------------------| +| mid | num | 目标用户mid | 必要 | | +| order | str | 排序方式 | 非必要 | 默认为pubdate
最新发布:pubdate
最多播放:click
最多收藏:stow | +| tid | num | 筛选目标分区 | 非必要 | 默认为0
0:不进行分区筛选
分区tid为所筛选的分区 | +| keyword | str | 关键词筛选 | 非必要 | 用于使用关键词搜索该UP主视频稿件 | +| pn | num | 页码 | 非必要 | | +| ps | num | 每页项数 | 非必要 | 最小1,最大50,默认30 | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +|---------|-----|------|----------------------------------------------------------------------| +| code | num | 返回值 | 0:成功
-400:请求错误
-412:请求被拦截
-1200:被降级过滤的请求(一种意义不明的偶发状况) | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +|-----------------|------|----------|-----| +| list | obj | 列表信息 | | +| page | obj | 页面信息 | | +| episodic_button | obj | “播放全部“按钮 | | +| is_risk | bool | | | +| gaia_res_type | num | | | +| gaia_data | | | | + +`data`中的`list`对象: + +| 字段 | 类型 | 内容 | 备注 | +|-------|-------|----------|-----| +| tlist | obj | 投稿视频分区索引 | | +| vlist | array | 投稿视频列表 | | + +`list`中的`tlist`对象: + +| 字段 | 类型 | 内容 | 备注 | +|-------|-----|--------|--------------| +| {tid} | obj | 该分区的详情 | 字段名为存在的分区tid | +| …… | obj | …… | 向下扩展 | + +`tlist`中的`{tid}`对象: + +| 字段 | 类型 | 内容 | 备注 | +|-------|-----|------------|-----| +| count | num | 投稿至该分区的视频数 | | +| name | str | 该分区名称 | | +| tid | num | 该分区tid | | + +`list`中的`vlist`数组: + +| 项 | 类型 | 内容 | 备注 | +|-----|-----|-----------|-----| +| 0 | obj | 投稿视频1 | | +| n | obj | 投稿视频(n+1) | | +| …… | obj | …… | …… | + +`list`中的`vlist`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +|------------------|------|----------|--------------------------------------------------------------------------------| +| aid | num | 稿件avid | | +| author | str | 视频UP主 | 不一定为目标用户(合作视频) | +| bvid | str | 稿件bvid | | +| comment | num | 视频评论数 | | +| copyright | str | 空 | 作用尚不明确 | +| created | num | 投稿时间 | 时间戳 | +| description | str | 视频简介 | | +| hide_click | bool | false | 作用尚不明确 | +| is_pay | num | 0 | 作用尚不明确 | +| is_union_video | num | 是否为合作视频 | 0:否
1:是 | +| length | str | 视频长度 | MM:SS | +| mid | num | 视频UP主mid | 不一定为目标用户(合作视频) | +| pic | str | 视频封面 | | +| play | num | 视频播放次数 | 如果视频基本信息API对应的状态为-403视频访问权限不足,数据类型将变为str,如("play": "--",),于mid79发表的av5132474可见 | +| review | num | 0 | 作用尚不明确 | +| subtitle | str | 空 | 作用尚不明确 | +| title | str | 视频标题 | | +| typeid | num | 视频分区tid | | +| video_review | num | 视频弹幕数 | | +| is_steins_gate | num | 0 | | +| is_live_playback | num | 0 | | +| meta | | | | +| is_avoided | num | 0 | | +| attribute | num | 0 | | + +`data`中的`page`对象: + +| 字段 | 类型 | 内容 | 备注 | +|-------|-----|-------|-----| +| count | num | 总计稿件数 | | +| pn | num | 当前页码 | | +| ps | num | 每页项数 | | + +`data`中的`episodic_button`对象: + +| 字段 | 类型 | 内容 | 备注 | +|------|-----|----------|-----| +| text | str | 按钮文字 | | +| uri | str | 全部播放页url | | + +**示例:** + +`pn`(页码)和`ps`(每页项数)只改变`vlist`中成员的多少与内容 + +以每页2项查询用户`mid=53456`的第1页投稿视频明细 + +```shell +curl -G 'https://api.bilibili.com/x/space/wbi/arc/search' \ +--data-urlencode 'mid=53456' \ +--data-urlencode 'ps=2' \ +--data-urlencode 'pn=1' \ +--user-agent 'go' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "list": { + "tlist": { + "1": { + "tid": 1, + "count": 41, + "name": "动画" + }, + "3": { + "tid": 3, + "count": 36, + "name": "音乐" + }, + "4": { + "tid": 4, + "count": 82, + "name": "游戏" + }, + "36": { + "tid": 36, + "count": 1, + "name": "知识" + }, + "160": { + "tid": 160, + "count": 49, + "name": "生活" + }, + "211": { + "tid": 211, + "count": 3, + "name": "美食" + }, + "217": { + "tid": 217, + "count": 2, + "name": "动物圈" + } + }, + "vlist": [ + { + "comment": 6729, + "typeid": 172, + "play": 2171260, + "pic": "http://i2.hdslb.com/bfs/archive/9fe04c2acb6678c9a8d1547db211e458ea70982c.jpg", + "subtitle": "", + "description": "好开心能和几千人一起看音乐会!真的震撼到我了,它给我带来的冲击感远超出了我的想象……光遇这场音乐会会一直持续到元旦哦,大家感兴趣的话也可以来试试吧~\n祝看得开心啦!", + "copyright": "1", + "title": "【warma】我尝试学习交朋友", + "review": 0, + "author": "Warma", + "mid": 53456, + "created": 1671163200, + "length": "23:58", + "video_review": 7931, + "aid": 433873134, + "bvid": "BV1nG411P7hf", + "hide_click": false, + "is_pay": 0, + "is_union_video": 0, + "is_steins_gate": 0, + "is_live_playback": 0, + "meta": null, + "is_avoided": 0, + "attribute": 0 + }, + { + "comment": 3380, + "typeid": 31, + "play": 811600, + "pic": "http://i2.hdslb.com/bfs/archive/7e6c6ec32a0db8684abd660d599644e9d1c43ee4.jpg", + "subtitle": "", + "description": "原曲:BV1iR4y1X7V9\n这首歌是今年生日的时候收到的礼物,真的太好听了!我也想翻唱试试~\n在翻唱中录了一些不一样的小音效,比如卡祖笛和竖笛,还录了些小配音……大家来听听看!\n谢谢原曲staff老师们做出这么有趣的作品,谢谢在这次翻唱中staff老师们的帮助(PV老师甚至根据翻唱版本把曲子的PV做了些修改,加了好多小细节,真的超用心!)\n祝听得开心啦~\n \n【staff表】\n原曲staff:详见BV1iR4y1X7V9\n翻唱:warma\n混音:白萝卜音乐工作室\nPV修改:@颜一bot \n封面:是根", + "copyright": "1", + "title": "【warma】来唱大家送我的歌!《夏天幻游日记》", + "review": 0, + "author": "Warma", + "mid": 53456, + "created": 1670558400, + "length": "02:59", + "video_review": 2343, + "aid": 733323002, + "bvid": "BV18D4y1Y7o6", + "hide_click": false, + "is_pay": 0, + "is_union_video": 0, + "is_steins_gate": 0, + "is_live_playback": 0, + "meta": null, + "is_avoided": 0, + "attribute": 0 + } + ] + }, + "page": { + "pn": 1, + "ps": 2, + "count": 214 + }, + "episodic_button": { + "text": "播放全部", + "uri": "//www.bilibili.com/medialist/play/53456?from=space" + }, + "is_risk": false, + "gaia_res_type": 0, + "gaia_data": null + } +} +``` + +
+ +### 查询用户投稿相簿预览 + +> https://api.bilibili.com/x/space/album/index + +*请求方式:GET* + +所有类型的相簿 + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +|-----|-----|---------|-----|----------------------------| +| mid | num | 目标用户mid | 必要 | | +| ps | num | 获取的相簿量 | 非必要 | 默认为8 定义域 1-大于1700 (注意滥用风险) | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +|---------|-------|------|---------------------| +| code | num | 返回值 | 0:成功
-400:请求错误 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | array | 相簿列表 | | + +`data`数组: + +| 项 | 类型 | 内容 | 备注 | +|-----|-----|-----------|-----| +| 0 | obj | 相簿内容1 | | +| n | obj | 相簿内容(n+1) | | +| …… | obj | …… | …… | + +`data`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +|-------------|-------|---------|--------| +| count | num | 总计图片数 | | +| ctime | num | 发布时间 | 时间戳 | +| description | str | 简介 | | +| doc_id | num | 相簿id | 非动态!!! | +| like | num | 点赞数 | | +| pictures | array | 图片内容 | | +| poster_uid | num | 上传用户mid | | +| title | str | 标题 | 动态内容无 | +| view | num | 浏览数 | | + +`data`数组中的对象中的`pictures`数组: + +| 项 | 类型 | 内容 | 备注 | +|-----|-----|-----------|----------------| +| 0 | obj | 内容图片1 | | +| n | obj | 内容图片(n+1) | 项数取决于`count`的值 | +| …… | obj | …… | …… | + +`pictures`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +|------------|-----|-------|----------| +| img_height | num | 图片高度 | | +| img_size | num | 图片大小 | 单位为KByte | +| img_src | str | 图片url | | +| img_width | num | 图片宽度 | | + +**示例:** + +查询用户`mid=53456`的投稿相簿预览 + +```shell +curl -G 'https://api.bilibili.com/x/space/album/index' \ +--data-urlencode 'mid=53456' \ +--data-urlencode 'ps=2' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": [{ + "doc_id": 60470424, + "poster_uid": 53456, + "title": "", + "description": "你醒啦![tv_大佬]\n之前说到过的百万粉纪念的视频已经定时在了今天下午七点,欢迎来看呀!", + "pictures": [{ + "img_src": "https://i0.hdslb.com/bfs/album/2840366e30bf7c0aba9da5adde1a771255a57bc7.jpg", + "img_width": 625, + "img_height": 134, + "img_size": 14 + }], + "count": 1, + "ctime": 1583444859, + "view": 1677521, + "like": 29974 + }, { + "doc_id": 58962388, + "poster_uid": 53456, + "title": "", + "description": "上次的那些写实儿童画发出来啦!可以打印下来辟邪[tv_大佬]", + "pictures": [{ + "img_src": "https://i0.hdslb.com/bfs/album/8acaf7c7897cb858cccab36c33a5e875adfef177.jpg", + "img_width": 2172, + "img_height": 3258, + "img_size": 2831 + }, { + "img_src": "https://i0.hdslb.com/bfs/album/1611b6b56d3d4328889a62b9f9bdc92e9d065532.jpg", + "img_width": 3456, + "img_height": 5184, + "img_size": 3024 + }, { + "img_src": "https://i0.hdslb.com/bfs/album/f3a30a2ef5b39711af8b945d54d85ffd1e932b8a.jpg", + "img_width": 1200, + "img_height": 757, + "img_size": 313 + }], + "count": 3, + "ctime": 1582881332, + "view": 1176646, + "like": 25734 + }] +} +``` + +
+ +### 查询用户投稿相簿明细 + +> https://api.vc.bilibili.com/link_draw/v1/doc/doc_list + +*请求方式:GET* + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +|-----------|-----|---------|-----|-------------------------------------------------------------| +| uid | num | 目标用户mid | 必要 | | +| page_num | num | 页码 | 非必要 | 默认为0 | +| page_size | num | 每页项数 | 必要 | 默认为30 | +| biz | str | 查询类型 | 非必要 | 全部:all
绘画:draw
摄影:photo
日常:daily
默认为all | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +|---------|-----|------|------------| +| code | num | 返回值 | 0:成功 | +| msg | str | 错误信息 | 默认为success | +| message | str | 错误信息 | 默认为success | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +|-------|-------|------|-----| +| items | array | 相簿列表 | | + +`items`数组: + +| 项 | 类型 | 内容 | 备注 | +|-----|-----|-----------|-----| +| 0 | obj | 相簿内容1 | | +| n | obj | 相簿内容(n+1) | | +| …… | obj | …… | …… | + +`items`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +|-------------|-------|---------|--------| +| count | num | 总计图片数 | | +| ctime | num | 发布时间 | 时间戳 | +| description | str | 简介 | | +| doc_id | num | 相簿id | 非动态!!! | +| like | num | 点赞数 | | +| pictures | array | 图片内容 | | +| poster_uid | num | 上传用户mid | | +| title | str | 标题 | 动态内容无 | +| view | num | 浏览数 | | + +`items`数组中的对象中的`pictures`数组: + +| 项 | 类型 | 内容 | 备注 | +|-----|-----|-----------|----------------| +| 0 | obj | 内容图片1 | | +| n | obj | 内容图片(n+1) | 项数取决于`count`的值 | +| …… | obj | …… | …… | + +`pictures`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +|------------|-----|-------|----------| +| img_height | num | 图片高度 | | +| img_size | num | 图片大小 | 单位为KByte | +| img_src | str | 图片url | | +| img_width | num | 图片宽度 | | + +**示例:** + +查询用户`mid=53456`的投稿明细中的全部类型 + +```shell +curl -G 'https://api.vc.bilibili.com/link_draw/v1/doc/doc_list' \ +--data-urlencode 'uid=2' \ +--data-urlencode 'page_num=1' \ +--data-urlencode 'page_size=2' \ +--data-urlencode 'biz=all' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "msg": "success", + "message": "success", + "data": { + "items": [{ + "doc_id": 59015720, + "poster_uid": 2, + "title": "", + "description": "6影是真的无脑,2个宝石都护不住(设计师:这真是太酷了)", + "pictures": [{ + "img_src": "http://i0.hdslb.com/bfs/album/8456f050ec8639c6e0cef36aba27bfdedc550590.jpg", + "img_width": 1824, + "img_height": 840, + "img_size": 1024 + }], + "count": 1, + "ctime": 1582894607, + "view": 707073, + "like": 7055 + }, { + "doc_id": 46853140, + "poster_uid": 2, + "title": "", + "description": "#年度报告# #新年Flag# https://www.bilibili.com/blackboard/timemachine2019.html\n决定了,这就是我的新年Flag!今年我一定要…", + "pictures": [{ + "img_src": "http://i0.hdslb.com/bfs/album/5b3ae76f79d7cf2501afc3ca7c7da509dcf0e38a.jpg", + "img_width": 1125, + "img_height": 2184, + "img_size": 465 + }, { + "img_src": "http://i0.hdslb.com/bfs/album/87789fe9644337a1f7e6a0655a32584705af8bda.jpg", + "img_width": 1125, + "img_height": 2184, + "img_size": 421 + }, { + "img_src": "http://i0.hdslb.com/bfs/album/f752d7f3bb7952f6c0013b3f48ddcb07060b4721.jpg", + "img_width": 1125, + "img_height": 2184, + "img_size": 524 + }, { + "img_src": "http://i0.hdslb.com/bfs/active/7a52a411bccb716c8e67fe70e6c330d5209346de.jpg", + "img_width": 1125, + "img_height": 2184, + "img_size": 534 + }], + "count": 4, + "ctime": 1577966163, + "view": 833193, + "like": 5667 + }] + } +} +``` + +
+ +## 频道 + + + +### 查询用户频道列表 + +> https://api.bilibili.com/x/space/channel/list + +*请求方式:GET* + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +|-----|-----|---------|-----|-----| +| mid | num | 目标用户mid | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +|---------|-----|------|----------------------------| +| code | num | 返回值 | 0:成功 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | obj | 信息本体 | 无则为空 所有频道内均无视频则为空,此时code为0 | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +|-------|-------|-------|-----| +| count | num | 总计频道数 | | +| list | array | 频道列表 | | + +`data`中的`list`数组: + +| 项 | 类型 | 内容 | 备注 | +|-----|-----|---------|----------------| +| 0 | obj | 频道1 | | +| n | obj | 频道(n+1) | 项数取决于`count`的值 | +| …… | obj | …… | …… | + +`data`中的`list`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +|-------|-----|---------|------| +| cid | num | 频道id | | +| count | num | 频道内含视频数 | | +| cover | str | 封面图片url | | +| intro | str | 简介 | 无则为空 | +| mid | num | 创建用户mid | | +| mtime | num | 创建时间 | 时间戳 | +| name | str | 标题 | | + +**示例:** + +查询用户`mid=53456`的频道列表 + +```shell +curl -G 'https://api.bilibili.com/x/space/channel/list' \ +--data-urlencode 'mid=53456' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "count": 6, + "list": [{ + "cid": 100249, + "mid": 53456, + "name": "【实况】动物之森", + "intro": "", + "mtime": 1579898830, + "count": 2, + "cover": "http://i1.hdslb.com/bfs/archive/6a7ed9483c34e839dfca981b9e2b94cd4c4efa0a.jpg" + }, { + "cid": 79323, + "mid": 53456, + "name": "忆雨", + "intro": "忆雨出现过的视频", + "mtime": 1562535222, + "count": 7, + "cover": "http://i2.hdslb.com/bfs/archive/1783e4f03042b282495799adda1cb56270cea647.jpg" + }, { + "cid": 79322, + "mid": 53456, + "name": "大画家", + "intro": "", + "mtime": 1562535122, + "count": 6, + "cover": "http://i0.hdslb.com/bfs/archive/9c85a14e805c6c23cb7a42e1dbef97821bb68960.jpg" + }, { + "cid": 77758, + "mid": 53456, + "name": "灭火器", + "intro": "", + "mtime": 1561270856, + "count": 4, + "cover": "http://i2.hdslb.com/bfs/archive/0073208d086b4ebe9cdc540e7664aa74b483aeb6.jpg" + }, { + "cid": 75696, + "mid": 53456, + "name": "沃玛小剧场", + "intro": "", + "mtime": 1559129460, + "count": 5, + "cover": "http://i2.hdslb.com/bfs/archive/db2b20ecdb6ed013fc3780b0e741ea88d46b5b40.jpg" + }, { + "cid": 170, + "mid": 53456, + "name": "爆炸电台", + "intro": "闲聊的电台", + "mtime": 1503298893, + "count": 7, + "cover": "http://i2.hdslb.com/bfs/archive/73d77bc6bb0d44b239fd4f5a2682fe3144e81692.jpg" + }] + } +} +``` + +
+ + + +### 查询用户频道中的视频 + +> https://api.bilibili.com/x/space/channel/video + +*请求方式:GET* + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +|-----|-----|---------|-----|--------| +| mid | num | 目标用户mid | 必要 | | +| cid | num | 目标频道id | 必要 | | +| pn | num | 页码 | 非必要 | 默认为1 | +| ps | num | 每页项数 | 非必要 | 默认为100 | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +|---------|-----|------|----------------------------------------| +| code | num | 返回值 | 0:成功
-400:请求错误
-404:无用户对应的频道 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +|------|-----|------|-----| +| list | obj | 频道信息 | | +| page | obj | 页面信息 | | + +`data`中的`list`对象: + +| 字段 | 类型 | 内容 | 备注 | +|----------|-------|---------|------| +| archives | array | 包含的视频列表 | | +| cid | num | 频道id | | +| count | num | 频道内含视频数 | | +| cover | str | 封面图片url | | +| intro | str | 简介 | 无则为空 | +| mid | num | 创建用户mid | | +| mtime | num | 创建时间 | 时间戳 | +| name | str | 标题 | | + +`list`中的`archives`数组: + +| 项 | 类型 | 内容 | 备注 | +|-----|-----|---------|----------------| +| 0 | obj | 视频1 | | +| n | obj | 视频(n+1) | 项数取决于`count`的值 | +| …… | obj | …… | …… | + +`list`中的`archives`数组中的对象: + +基本同「[视频详细信息](https://github.com/SocialSisterYi/bilibili-API-collect/blob/master/video/info.md#视频详细信息(avid/bvid互转))」中的data对象 + +`data`中的`page`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----- | ---- | ---------- | ---- | +| count | num | 总计视频数 | | +| num | num | 当前页码 | | +| size | num | 每页项数 | | + +**示例:** + +查询用户`mid=53456`的频道`170`中的视频 + +```shell +curl -G 'https://api.bilibili.com/x/space/channel/video' \ +--data-urlencode 'mid=53456' \ +--data-urlencode 'cid=170' \ +--data-urlencode 'ps=2' \ +--data-urlencode 'pn=1' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "list": { + "cid": 170, + "mid": 53456, + "name": "爆炸电台", + "intro": "闲聊的电台", + "mtime": 1503298893, + "count": 7, + "cover": "http://i2.hdslb.com/bfs/archive/73d77bc6bb0d44b239fd4f5a2682fe3144e81692.jpg", + "archives": [{ + "aid": 87673204, + "videos": 1, + "tid": 21, + "tname": "日常", + "copyright": 1, + "pic": "http://i0.hdslb.com/bfs/archive/5387bdcbbe4d5551adbf0ee2e607e4b7d3d8f2f0.jpg", + "title": "【warma爆炸电台】迟来的自我介绍【第八期】", + "pubdate": 1581244539, + "ctime": 1581244540, + "desc": "时隔半年的新的一期爆炸电台来啦,这是我的一系列杂谈聊天电台,这次因为多了很多新关注的朋友们,所以来做个自我介绍吧!\n画师:Dr-H_喵_ 动画:K_Lacid\n结尾提到的壁纸稍后在动态发原图,动态壁纸在steam那个壁纸软件的创意工坊里搜warma能找到\n\n往期的电台:\n第一期:av6786024 \n第三期:av13619263\n第四期:av18862091\n第五期:av25092410\n第六期:av42492515\n第七期:av62910468", + "state": 0, + "attribute": 16512, + "duration": 2388, + "rights": { + "bp": 0, + "elec": 0, + "download": 0, + "movie": 0, + "pay": 0, + "hd5": 0, + "no_reprint": 1, + "autoplay": 1, + "ugc_pay": 0, + "is_cooperation": 0, + "ugc_pay_preview": 0, + "no_background": 0 + }, + "owner": { + "mid": 53456, + "name": "Warma", + "face": "http://i1.hdslb.com/bfs/face/c1bbee6d255f1e7fc434e9930f0f288c8b24293a.jpg" + }, + "stat": { + "aid": 87673204, + "view": 1383542, + "danmaku": 88908, + "reply": 9237, + "favorite": 32929, + "coin": 68849, + "share": 5140, + "now_rank": 0, + "his_rank": 52, + "like": 116164, + "dislike": 0 + }, + "dynamic": "来做个自我介绍吧! #warma##沃玛##爆炸电台#", + "cid": 149793525, + "dimension": { + "width": 1920, + "height": 1080, + "rotate": 0 + }, + "bvid": "BV1D7411t7Be", + "inter_video": false + }, { + "aid": 62910468, + "videos": 1, + "tid": 21, + "tname": "日常", + "copyright": 1, + "pic": "http://i2.hdslb.com/bfs/archive/4bd598f71a144d4505e259b143c0de0bf27968b2.jpg", + "title": "【warma爆炸电台】居然收到了几千条问题!【第七期】", + "pubdate": 1565345410, + "ctime": 1565338559, + "desc": "时隔半年的爆炸电台第七期终于来啦!在这一期里回答了很多问题,祝看得开心!此外,就在昨天,50万订阅了…真的谢谢大家!\n也欢迎来看往期的电台:\n第一期:av6786024 (2016年10月)\n第二期:av10373352(2017年5月)\n第三期:av13619263(2017年8月)\n第四期:av18862091(2018年1月)\n第五期:av25092410(2018年6月)\n第六期:av42492515(2019年2月)", + "state": 0, + "attribute": 16512, + "duration": 1987, + "mission_id": 11740, + "rights": { + "bp": 0, + "elec": 0, + "download": 0, + "movie": 0, + "pay": 0, + "hd5": 0, + "no_reprint": 1, + "autoplay": 1, + "ugc_pay": 0, + "is_cooperation": 0, + "ugc_pay_preview": 0, + "no_background": 0 + }, + "owner": { + "mid": 53456, + "name": "Warma", + "face": "http://i1.hdslb.com/bfs/face/c1bbee6d255f1e7fc434e9930f0f288c8b24293a.jpg" + }, + "stat": { + "aid": 62910468, + "view": 455277, + "danmaku": 19383, + "reply": 2108, + "favorite": 10507, + "coin": 19422, + "share": 1208, + "now_rank": 0, + "his_rank": 0, + "like": 31515, + "dislike": 0 + }, + "dynamic": "爆炸电台 第七期 来啦!", + "cid": 109284065, + "dimension": { + "width": 1920, + "height": 1080, + "rotate": 0 + }, + "bvid": "BV1gt411K7Ga", + "inter_video": false + }] + }, + "page": { + "count": 7, + "num": 1, + "size": 2 + } + } +} +``` + +
+ +### 创建频道 + +> https://api.bilibili.com/x/space/channel/add + +*请求方式:POST* + +认证方式:Cookie(SESSDATA) + +创建成功后会返回新建频道的id + +**正文参数( application/x-www-form-urlencoded ):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +|-------|-----|----------------------|-----|-----| +| name | str | 频道名 | 必要 | | +| intro | str | 频道简介 | 非必要 | | +| csrf | str | CSRF Token(位于cookie) | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +|---------|-----|------|------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| code | num | 返回值 | 0:成功
-101:账号未登录
-111:csrf校验失败
-400:请求错误
53001:频道名字数超过限制
53002:频道简介字数超过限制
53004:创建的频道已经满额
53007:频道名称已经存在
53024:编辑内容命中敏感信息 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | obj | 数据本体 | 成功有此项 | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +|-----|-----|------|-----| +| cid | num | 频道id | | + +**示例:** + +创建名为`test1`的频道,简介为空 + +```shell +curl 'https://api.bilibili.com/x/space/channel/add' \ +--data-urlencode 'name=test1' \ +--data-urlencode 'intro=' \ +--data-urlencode 'csrf=xxx' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "cid": 138996 + } +} +``` + +
+ +### 修改频道 + +> https://api.bilibili.com/x/space/channel/edit + +*请求方式:POST* + +认证方式:Cookie(SESSDATA) + +**正文参数( application/x-www-form-urlencoded ):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +|-------|-----|----------------------|-----|-----| +| cid | num | 频道id | 必要 | | +| name | str | 频道名 | 必要 | | +| intro | str | 频道简介 | 非必要 | | +| csrf | str | CSRF Token(位于cookie) | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +|---------|-----|------|---------------------------------------------------------------------------------------------------------------------------------------------| +| code | num | 返回值 | 0:成功
-101:账号未登录
-111:csrf校验失败
-400:请求错误
53001:频道名字数超过限制
53002:频道简介字数超过限制
53007:频道名称已经存在
53024:编辑内容命中敏感信息 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | + +**示例:** + +修改频道`138996`名称为`测试`,简介为`123456` + +```shell +curl 'https://api.bilibili.com/x/space/channel/edit' \ +--data-urlencode 'cid=138996' \ +--data-urlencode 'name=测试' \ +--data-urlencode 'intro=123456' \ +--data-urlencode 'csrf=xxx' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1 +} +``` + +
+ +### 删除频道 + +> https://api.bilibili.com/x/space/channel/del + +*请求方式:POST* + +认证方式:Cookie(SESSDATA) + +**正文参数( application/x-www-form-urlencoded ):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | ---- | ------------------------ | ------ | ---- | +| cid | num | 需要删除的频道id | 必要 | | +| csrf | str | CSRF Token(位于cookie) | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------------------ | +| code | num | 返回值 | 0:成功
-101:账号未登录
-111:csrf校验失败
-400:请求错误 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | + +**示例:** + +删除频道`138996` + +```shell +curl 'https://api.bilibili.com/x/space/channel/del' \ +--data-urlencode 'cid=138996' \ +--data-urlencode 'csrf=xxx' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1 +} +``` + +
+ +### 频道添加视频 + +> https://api.bilibili.com/x/space/channel/video/add + +*请求方式:POST* + +认证方式:Cookie(SESSDATA) + +仅能添加自己是UP主的视频 + +如添加多个视频,仅会添加正确的 + +**注:完成后需要使用接口「查询用户频道中的视频」刷新** + +**正文参数( application/x-www-form-urlencoded ):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +|------|------|----------------------|-----|----------------| +| cid | num | 频道id | 必要 | | +| aids | nums | 要添加的目标稿件avid | 必要 | 多个使用","(%2C)分隔 | +| csrf | str | CSRF Token(位于cookie) | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +|---------|-------|------------|----------------------------------------------------------------------------------------------------------------------------| +| code | num | 返回值 | 0:成功
-101:账号未登录
-111:csrf校验失败
-400:请求错误
-404:无此项
53003:本频道里的视频已满
53006:提交视频已失效或频道里有(非该视频UP主) | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | array | 出错稿件avid列表 | | + +`data`数组: + +| 项 | 类型 | 内容 | 备注 | +|-----|-----|---------------|-----| +| 0 | num | 出错稿件avid1 | | +| n | num | 出错稿件avid(n+1) | | +| …… | num | …… | …… | + +**示例:** + +向频道`138995`中添加视频`av583785685`和`av243322853` + +```shell +curl 'https://api.bilibili.com/x/space/channel/video/add' \ +--data-urlencode 'cid=138995' \ +--data-urlencode 'aids=583785685,243322853' \ +--data-urlencode 'csrf=xxx' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": [] +} +``` + +
+ +### 频道删除视频 + +> https://api.bilibili.com/x/space/channel/video/del + +*请求方式:POST* + +认证方式:Cookie(SESSDATA) + +**注:完成后需要使用接口「查询用户频道中的视频」刷新** + +**正文参数( application/x-www-form-urlencoded ):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +|-----|-----|--------------|-----|-----| +| cid | num | 频道id | 必要 | | +| aid | num | 要删除的目标稿件avid | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +|---------|-----|------|-------------------------------------------------------------------------------------------------------------| +| code | num | 返回值 | 0:成功
-101:账号未登录
-111:csrf校验失败
-400:请求错误
-404:无此项
53008:频道内没有视频
53009:频道内没有该视频 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | + +**示例:** + +删除频道`138995`中的视频`av583785685` + +```shell +curl 'https://api.bilibili.com/x/space/channel/video/del' \ +--data-urlencode 'cid=138995' \ +--data-urlencode 'aid=583785685' \ +--data-urlencode 'csrf=xxx' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1 +} +``` + +
+ +### 调整频道视频排序 + +> https://api.bilibili.com/x/space/channel/video/sort + +*请求方式:POST* + +认证方式:Cookie(SESSDATA) + +**正文参数( application/x-www-form-urlencoded ):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +|------|-----|----------------------|-----|-----------------------------------------| +| cid | num | 频道id | 必要 | | +| aid | num | 要移动的目标稿件avid | 必要 | | +| to | num | 视频排序倒数位置 | 非必要 | 默认为1
1为列表底部,视频总数为首端
与显示顺序恰好相反 | +| csrf | str | CSRF Token(位于cookie) | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +|---------|-----|------|--------------------------------------------------------| +| code | num | 返回值 | 0:成功
-101:账号未登录
-111:csrf校验失败
-400:请求错误 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | + +**示例:** + +调整`138995`中的视频`av583785685`位置为倒数第2 + +```shell +curl 'https://api.bilibili.com/x/space/channel/video/sort' \ +--data-urlencode 'cid=138995' \ +--data-urlencode 'aid=583785685' \ +--data-urlencode 'to=2' \ +--data-urlencode 'csrf=xxx' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1 +} +``` + +
+ +### 检查频道中有无失效视频 + +> https://api.bilibili.com/x/space/channel/video/check + +*请求方式:GET* + +认证方式:Cookie(SESSDATA) + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +|-----|-----|--------|-----|-----| +| cid | num | 目标频道id | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +|---------|-----|------|-----------------------------------------------------------------------| +| code | num | 返回值 | 0:成功
-101:账号未登录
-400:请求错误
-404:无此项
53005:频道内有失效视频 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | + +**示例:** + +检查频道`138995` + +```shell +curl -G 'https://api.bilibili.com/x/space/channel/video/check +--data-urlencode 'cid=138995' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1 +} +``` + +
+ +## 收藏 + + + +### 查询用户创建的视频收藏夹 + +> https://api.bilibili.com/x/v3/fav/folder/created/list-all + +*请求方式:GET* + +认证方式:Cookie(SESSDATA) + +查看私有收藏夹时需要认证 + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +|--------|-----|---------|-----|-----| +| up_mid | num | 目标用户mid | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +|---------|-----------------------|------|---------------------| +| code | num | 返回值 | 0:成功
-400:请求错误 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | 隐藏时:null
公开时:obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +|-------|-----------------------------|---------|-----| +| count | num | 创建的收藏夹数 | | +| list | 无收藏夹时:null
有收藏夹时:array | 收藏夹列表 | | + +`data`中的`list`数组: + +| 项 | 类型 | 内容 | 备注 | +|-----|-----|----------|----------------| +| 0 | obj | 收藏夹1 | | +| n | obj | 收藏夹(n+1) | 项数取决于`count`的值 | +| …… | obj | …… | | + +`data`中的`list`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +|-------------|-----|-----------|-----------| +| id | num | 收藏夹mlid | | +| fid | num | 原始收藏夹mlid | 去除两位mid尾号 | +| mid | num | 创建用户mid | | +| attr | num | 收藏夹属性位配置 | | +| title | str | 收藏夹标题 | | +| fav_state | num | 0 | 作用尚不明确 | +| media_count | num | 收藏夹总计视频数 | | + +`attr`属性位二进制值表: + +| 位 | 内容 | 备注 | +|-----------|----------|----------------------| +| 0 | 是否为默认收藏夹 | 0:默认收藏夹
1:其他收藏夹 | +| 1 | 私有收藏夹 | 0:公开
1:私有 | +| 其他有待补充... | | | + +**示例:** + +查询用户`mid=7792521`的收藏夹列表 + +```shell +curl -G 'https://api.bilibili.com/x/v3/fav/folder/created/list-all' \ +--data-urlencode 'up_mid=7792521' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "count": 5, + "list": [{ + "id": 44233921, + "fid": 442339, + "mid": 7792521, + "attr": 0, + "title": "默认收藏夹", + "fav_state": 0, + "media_count": 85 + }, { + "id": 936347621, + "fid": 9363476, + "mid": 7792521, + "attr": 22, + "title": "放假君的鬼畜私房歌", + "fav_state": 0, + "media_count": 2 + }, { + "id": 845218621, + "fid": 8452186, + "mid": 7792521, + "attr": 22, + "title": "♪一言不合就开唱♪", + "fav_state": 0, + "media_count": 4 + }, { + "id": 844998121, + "fid": 8449981, + "mid": 7792521, + "attr": 22, + "title": "个人作品精选", + "fav_state": 0, + "media_count": 25 + }, { + "id": 381779121, + "fid": 3817791, + "mid": 7792521, + "attr": 22, + "title": "鬼畜小课堂", + "fav_state": 0, + "media_count": 25 + }] + } +} +``` + +
+ +### 查询用户收藏的视频收藏夹 + +> https://api.bilibili.com/x/v3/fav/folder/collected/list + +*请求方式:GET* + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +|--------|-----|---------|-----|--------------| +| ps | num | 每页项数 | 必要 | 定义域 1 - 大于70 | +| pn | num | 页码 | 必要 | | +| up_mid | num | 目标用户mid | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +|---------|-----------------------|------|---------------------------------------------------------| +| code | num | 返回值 | 0:成功
-101:账号未登录
-111:csrf校验失败
40022:签名过长 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | 隐藏时:null
公开时:obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +|-------|-----------------------------|---------|-----| +| count | num | 创建的收藏夹数 | | +| list | 无收藏夹时:null
有收藏夹时:array | 收藏夹列表 | | + +`data`中的`list`数组: + +| 项 | 类型 | 内容 | 备注 | +|-----|-----|----------|----------------| +| 0 | obj | 收藏夹1 | | +| n | obj | 收藏夹(n+1) | 项数取决于`count`的值 | +| …… | obj | …… | | + +`data`中的`list`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +|-------------|-----|------------|----------------------------| +| id | num | 收藏夹ml | | +| fid | num | 原始收藏夹mlid | 去除两位mid尾号 | +| mid | num | 创建用户mid | | +| attr | num | 收藏夹属性 | 转换成8-bit二进制处理
详细说明见下表 | +| title | str | 收藏夹标题 | | +| cover | str | 收藏夹封面图片url | | +| upper | obj | 收藏夹创建用户信息 | | +| cover_type | num | 2 | 作用尚不明确 | +| intro | str | 空 | 作用尚不明确 | +| ctime | num | 创建时间 | 时间戳 | +| mtime | num | 审核时间 | 时间戳 | +| state | num | 0 | 作用尚不明确 | +| fav_state | num | 0 | 作用尚不明确 | +| media_count | num | 收藏夹总计视频数 | | + +`attr`属性二进制值表: + +| 其他有待补充... | 1:默认收藏夹 | 0:公开性 | +|-----------|----------------------|----------------| +| | 0:默认收藏夹
1:其他收藏夹 | 0:公开
1:私有 | + +`data`中的`list`数组中的对象中的`upper`对象: + +| 字段 | 类型 | 内容 | 备注 | +|------|-----|--------|--------| +| mid | num | 创建人mid | | +| name | str | 创建人昵称 | | +| face | str | 空 | 作用尚不明确 | + +**示例:** + +查询用户`mid=293793435`的收藏夹收藏列表 + +```shell +curl -G 'https://api.bilibili.com/x/v3/fav/folder/collected/list' \ +--data-urlencode 'up_mid=293793435' \ +--data-urlencode 'ps=20' \ +--data-urlencode 'pn=1' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "count": 2, + "list": [{ + "id": 496307088, + "fid": 4963070, + "mid": 412466388, + "attr": 22, + "title": "入站必刷", + "cover": "http://i0.hdslb.com/bfs/archive/baae2b4050363c0ab45465b7cf696b8304fdaca8.jpg", + "upper": { + "mid": 412466388, + "name": "热门菌", + "face": "" + }, + "cover_type": 2, + "intro": "", + "ctime": 1563394571, + "mtime": 1563394571, + "state": 0, + "fav_state": 0, + "media_count": 55 + }, { + "id": 381779121, + "fid": 3817791, + "mid": 7792521, + "attr": 22, + "title": "鬼畜小课堂", + "cover": "http://i2.hdslb.com/bfs/archive/09a668cfdb38fb3a85f905c10f48a2947e36a695.jpg", + "upper": { + "mid": 7792521, + "name": "还有一天就放假了", + "face": "" + }, + "cover_type": 2, + "intro": "", + "ctime": 1553700224, + "mtime": 1557291666, + "state": 0, + "fav_state": 0, + "media_count": 25 + }] + } +} +``` + +
+ +## 课程 + + + +### 查询用户发布的课程列表 + +> https://api.bilibili.com/pugv/app/web/season/page + +*请求方式:GET* + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +|-----|-----|---------|-----|-------| +| mid | num | 目标用户mid | 必要 | | +| pn | num | 页码 | 非必要 | 默认为1 | +| ps | num | 每页项数 | 非必要 | 默认为20 | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +|---------|-----|------|------------------------------------------| +| code | num | 返回值 | 0:成功
-400:请求错误
53013:用户隐私设置未公开 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +|------|-------|------|-----| +| list | array | 课程列表 | | +| page | obj | 页面信息 | | + +`data`中的`page`对象: + +| 字段 | 类型 | 内容 | 备注 | +|-------|------|---------|----------------------------| +| next | bool | 是否存在下一页 | false:最后一页
true:存在下一页 | +| num | num | 当前页码 | | +| size | num | 每页项数 | | +| total | num | 总计项数 | | + +`data`中的`list`数组: + +| 项 | 类型 | 内容 | 备注 | +|-----|-----|---------|---------------| +| 0 | obj | 课程1 | | +| n | obj | 课程(n+1) | 按照目标用户的发布顺序排列 | +| …… | obj | …… | | + +`data`中的`list`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +|-----------|-----|---------|----------| +| cover | str | 课程封面url | | +| ep_count | num | 课程集数 | | +| link | str | 课程页面url | 手机版页面url | +| page | num | 1 | 作用尚不明确 | +| play | num | 课程播放数 | | +| season_id | num | 课程ssid | | +| status | str | 更新状态说明 | | +| subtitle | str | 课程副标题 | | +| title | str | 课程标题 | | + +**示例:** + +查询用户`mid=33683045`的课程发布列表 + +```shell +curl -G 'https://api.bilibili.com/pugv/app/web/season/page' \ +--data-urlencode 'mid=33683045' \ +--data-urlencode 'ps=5' \ +--data-urlencode 'pn=1' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "data": { + "items": [ + { + "cover": "http://i0.hdslb.com/bfs/archive/596575057885fff7f0ceff047437186cba459358.jpg", + "ep_count": 10, + "link": "https://m.bilibili.com/cheese/play/ss80", + "page": 1, + "play": 174467, + "season_id": 80, + "status": "共10期", + "subtitle": "百科全书式军事科普短视频系列", + "title": "《战忽知道》第一季" + }, + { + "cover": "http://i0.hdslb.com/bfs/archive/322aa94d27cece62d2a859caf71ac2426f29eee2.jpg", + "ep_count": 1, + "link": "https://m.bilibili.com/cheese/play/ss145", + "page": 1, + "play": 22155, + "season_id": 145, + "status": "更新至第1期", + "subtitle": "此课程为《局座:第四次工业革命来了》部分集数,请谨慎购买", + "title": "【体验课】局座讲5G:5G如何改变我们的生活?" + }, + { + "cover": "http://i0.hdslb.com/bfs/archive/b9794ac4507f8764e219df413b661b5faf499a19.jpg", + "ep_count": 10, + "link": "https://m.bilibili.com/cheese/play/ss113", + "page": 1, + "play": 49833, + "season_id": 113, + "status": "更新至第10期", + "subtitle": "百科全书式军事科普短视频系列", + "title": "《战忽知道》第二季" + }, + { + "cover": "http://i0.hdslb.com/bfs/archive/7351fcb33592a4bc7aac9f71d421b4b5ce0177d3.jpg", + "ep_count": 10, + "link": "https://m.bilibili.com/cheese/play/ss51", + "page": 1, + "play": 4981037, + "season_id": 51, + "status": "共10期", + "subtitle": "洞悉国际局势,学习战略思维", + "title": "局座的国际战略课" + }, + { + "cover": "http://i0.hdslb.com/bfs/archive/31e2a170b5a815e34f0537a2727b28f1b87dca18.jpg", + "ep_count": 10, + "link": "https://m.bilibili.com/cheese/play/ss121", + "page": 1, + "play": 30754, + "season_id": 121, + "status": "更新至第10期", + "subtitle": "百科全书式军事科普短视频系列", + "title": "《战忽知道》第三季" + } + ], + "page": { + "next": true, + "num": 1, + "size": 5, + "total": 8 + } + }, + "message": "success" +} +``` + +
+ +## 订阅 + + + +### 查询用户追番预览列表 + +> https://space.bilibili.com/ajax/Bangumi/getList + +*请求方式:GET* + +认证方式:Cookie(SESSDATA) + +如设置隐私查看自己的需要认证 + +带有转义,且只能获取最多15条 + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +|-----|-----|---------|-----|-----| +| mid | num | 目标用户mid | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +|--------|--------------------|----------------------|-----------------------| +| status | bool | 状态 | false:失败
true:成功 | +| data | 失败:str
成功:obj | 失败:错误信息
成功:信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +|--------|-------|--------|--------| +| count | num | 总计追番数 | | +| pages | num | 0 | 作用尚不明确 | +| result | array | 追番预览列表 | | + +`data`中的`result`数组: + +| 项 | 类型 | 内容 | 备注 | +|-----|-----|---------|---------------| +| 0 | obj | 追番1 | | +| n | obj | 追番(n+1) | 按照目标用户的关注顺序排列 | +| …… | obj | …… | | +| 14 | obj | 追番15 | 最后一项 | + +`data`中的`result`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +|-----------------|-----|-----------|-----------------------| +| brief | str | 简介 | | +| cover | str | 封面图片url | | +| evaluate | str | 空 | | +| favorites | num | 追番数 | | +| is_finish | num | 是否已完结 | 0:未完结
1:已完结 | +| last_ep_index | num | 0 | 作用尚不明确 | +| newest_ep_index | num | 最新一话 | 可能为0 | +| season_id | str | 番剧ssid | | +| share_url | str | 播放页面链接url | | +| title | str | 标题 | | +| total_count | num | 总计集数 | 未完结:-1
已完结:非0正整数 | + +**示例:** + +查看用户`mid=14082`的追番预览列表 + +```shell +curl -G 'https://space.bilibili.com/ajax/Bangumi/getList' \ +--data-urlencode 'mid=14082' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "status": true, + "data": { + "count": 25, + "pages": 0, + "result": [{ + "season_id": "29310", + "share_url": "http:\/\/bangumi.bilibili.com\/anime\/29310\/", + "title": "异度侵入 ID:INVADED", + "is_finish": 1, + "favorites": 3479220, + "newest_ep_index": 13, + "last_ep_index": 0, + "total_count": 13, + "cover": "http:\/\/i0.hdslb.com\/bfs\/bangumi\/image\/9bf9e66968f85b33ec3769a16c86b36dc984abbc.png", + "evaluate": "", + "brief": "本片讲述利用能检测出人们杀意的装置以及利用思想粒子做出的“井”,来探知事件真相的科幻故事。" + }, { + "season_id": "25739", + "share_url": "http:\/\/bangumi.bilibili.com\/anime\/25739\/", + "title": "关于我转生变成史莱姆这档事", + "is_finish": 1, + "favorites": 5518829, + "newest_ep_index": 0, + "last_ep_index": 0, + "total_count": 27, + "cover": "https:\/\/i0.hdslb.com\/bfs\/bangumi\/a4c0e0ccc44fe3949a734f546cf5bb07da925bad.png", + "evaluate": "", + "brief": "史莱姆生活,开始了。\n上班族的三上悟在道路上被歹徒给刺杀身亡后,回过神来发现自己转生到了异世界。\n不..." + }, + ………… + ] + } +} +``` + +
+ +### 查询用户追番(追剧)明细 + +> https://api.bilibili.com/x/space/bangumi/follow/list + +*请求方式:GET* + +认证方式:Cookie(SESSDATA) + +如设置隐私查看自己的需要认证 + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +|------|-----|---------|-----|----------------| +| vmid | num | 目标用户mid | 必要 | | +| pn | num | 页码 | 非必要 | 默认为1 | +| ps | num | 每页项数 | 非必要 | 默认为15 定义域1-30 | +| type | num | 查询类型 | 必要 | 1:追番
2:追剧 | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +|---------|-----|------|------------------------------------------| +| code | num | 返回值 | 0:成功
-400:请求错误
53013:用户隐私设置未公开 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +|-------|-------|-------|-----| +| list | array | 追番列表 | | +| pn | num | 当前页码 | | +| ps | num | 每页项数 | | +| total | num | 总计追番数 | | + +`data`中的`list`数组: + +| 项 | 类型 | 内容 | 备注 | +|-----|-----|---------|---------------| +| 0 | obj | 追番1 | | +| n | obj | 追番(n+1) | 按照目标用户的关注顺序排列 | +| …… | obj | …… | | + +`data`中的`list`数组中的对象: + +基本同「番剧详细信息」中的result对象(未完工) + +**示例:** + +查看用户`mid=14082`的追番明细 + +```shell +curl -G 'https://api.bilibili.com/x/space/bangumi/follow/list' \ +--data-urlencode 'vmid=14082' \ +--data-urlencode 'type=1' \ +--data-urlencode 'ps=2' \ +--data-urlencode 'pn=1' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "list": [{ + "season_id": 29310, + "media_id": 28224080, + "season_type": 1, + "season_type_name": "番剧", + "title": "异度侵入 ID:INVADED", + "cover": "http://i0.hdslb.com/bfs/bangumi/image/9bf9e66968f85b33ec3769a16c86b36dc984abbc.png", + "total_count": 13, + "is_finish": 1, + "is_started": 1, + "is_play": 1, + "badge": "会员专享", + "badge_type": 0, + "rights": { + "allow_review": 1, + "is_selection": 1, + "selection_style": 1 + }, + "stat": { + "follow": 3475768, + "view": 87500861, + "danmaku": 1334654, + "reply": 316632, + "coin": 835150, + "series_follow": 3475242, + "series_view": 87500861 + }, + "new_ep": { + "id": 307774, + "index_show": "全13话", + "cover": "http://i0.hdslb.com/bfs/archive/3dce2b856a7b0ea667aa288b51b7c0478fa56c4d.jpg", + "title": "13", + "long_title": "CHANNELEDⅡ", + "pub_time": "2020-03-23 00:30:00", + "duration": 1481000 + }, + "rating": { + "score": 9.8, + "count": 262589 + }, + "square_cover": "http://i0.hdslb.com/bfs/bangumi/image/664dbf039ec2da8dd982b697a108e28e87b9897e.jpg", + "season_status": 13, + "season_title": "TV", + "badge_ep": "会员", + "media_attr": 196608, + "season_attr": 0, + "evaluate": "本片讲述利用能检测出人们杀意的装置以及利用思想粒子做出的“井”,来探知事件真相的科幻故事。...", + "areas": [{ + "id": 2, + "name": "日本" + }], + "subtitle": "", + "first_ep": 307446, + "can_watch": 1, + "series": { + "series_id": 4760, + "title": "ID:INVADED", + "season_count": 1, + "new_season_id": 29310 + }, + "publish": { + "pub_time": "2020-01-06 00:30:00", + "pub_time_show": "敬请期待", + "release_date": "2020-01-06", + "release_date_show": "2020年1月6日" + }, + "mode": 2, + "section": [{ + "section_id": 39327, + "season_id": 29310, + "limit_group": 328, + "watch_platform": 15, + "copyright": "dujia", + "ban_area_show": 1 + }, { + "section_id": 39633, + "season_id": 29310, + "limit_group": 328, + "watch_platform": 15, + "type": 1, + "copyright": "dujia", + "title": "其他", + "ban_area_show": 1 + }, { + "section_id": 44101, + "season_id": 29310, + "limit_group": 316, + "watch_platform": 15, + "type": 4, + "copyright": "ugc", + "ban_area_show": 1 + }], + "url": "https://www.bilibili.com/bangumi/play/ss29310", + "follow_status": 2, + "is_new": 0, + "progress": "", + "both_follow": true + }, { + "season_id": 25739, + "media_id": 139252, + "season_type": 1, + "season_type_name": "番剧", + "title": "关于我转生变成史莱姆这档事", + "cover": "http://i0.hdslb.com/bfs/bangumi/a4c0e0ccc44fe3949a734f546cf5bb07da925bad.png", + "total_count": 27, + "is_finish": 1, + "is_started": 1, + "is_play": 1, + "badge": "会员专享", + "badge_type": 0, + "rights": { + "allow_review": 1, + "is_selection": 1, + "selection_style": 1 + }, + "stat": { + "follow": 5516519, + "view": 246739631, + "danmaku": 3802465, + "reply": 460225, + "coin": 1338958, + "series_follow": 5516535, + "series_view": 246739631 + }, + "new_ep": { + "id": 316957, + "index_show": "全27话", + "cover": "http://i0.hdslb.com/bfs/archive/81d07d1a478ce3a6209b557e14df9b9c78c42abb.jpg", + "title": "OAD03", + "long_title": "外传:利姆鲁的华丽教师生活 其一", + "pub_time": "2020-03-27 00:00:03", + "duration": 1493000 + }, + "rating": { + "score": 9.4, + "count": 83354 + }, + "square_cover": "http://i0.hdslb.com/bfs/bangumi/8d9f5b4a566d0547bc2e3f6f733b732a09c0d3d4.jpg", + "season_status": 13, + "season_title": "TV", + "badge_ep": "会员", + "media_attr": 0, + "season_attr": 0, + "evaluate": "史莱姆生活,开始了。\n上班族的三上悟在道路上被歹徒给刺杀身亡后,回过神来发现自己转生到了异世界。\n不过,自己居然是“史莱姆”!\n他在得到利姆鲁这个名字后开始了自己的史莱姆人生,随着与各个种族相处交流的...", + "areas": [{ + "id": 2, + "name": "日本" + }], + "subtitle": "", + "first_ep": 250460, + "can_watch": 1, + "series": { + "series_id": 4188, + "title": "关于我转生变成史莱姆这档事", + "season_count": 1, + "new_season_id": 25739 + }, + "publish": { + "pub_time": "2018-10-02 00:30:00", + "pub_time_show": "2018年10月02日00:30", + "release_date": "2018-10-02", + "release_date_show": "2018年10月2日" + }, + "mode": 2, + "section": [{ + "section_id": 34988, + "season_id": 25739, + "limit_group": 328, + "watch_platform": 15, + "copyright": "bilibili", + "ban_area_show": 1 + }], + "url": "https://www.bilibili.com/bangumi/play/ss25739", + "follow_status": 2, + "is_new": 0, + "progress": "", + "both_follow": true + }], + "pn": 1, + "ps": 2, + "total": 25 + } +} +``` + +
+ +### 查询用户关注的TAG(话题) + +> https://space.bilibili.com/ajax/tags/getSubList + +*请求方式:GET* + +认证方式:Cookie(SESSDATA) + +如设置隐私查看自己的需要认证 + +带有转义 + +只显示前100个 + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +|-----|-----|---------|-----|-----| +| mid | num | 目标用户mid | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +|--------|----------------------|------------------------|-----------------------| +| ststus | bool | 返回值 | false:错误
true:正确 | +| data | 错误时:str
正确时:obj | 错误时:错误信息
正确时:数据本体 | 正确时不返回错误信息 | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +|-------|-------|---------|-----| +| tags | array | 关注TAG列表 | | +| count | num | 关注TAG的数 | | + +`data`中的`tags`数组: + +| 项 | 类型 | 内容 | 备注 | +|-----|-----|------------|------| +| 0 | obj | 关注TAG1 | | +| n | obj | 关注TAG(n+1) | | +| …… | obj | …… | …… | +| 99 | obj | 关注TAG100 | 最后一项 | + +`data`中的`tags`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +|---------------|-----|---------------------|--------| +| archive_count | num | 0 | 作用尚不明确 | +| cover | str | TAG图片url | 无则为空 | +| name | str | TAG名 | | +| notify | num | 1 | 作用尚不明确 | +| tag_id | num | tag_id | | +| updated_ts | str | 1970-01-01 08:00:00 | 作用尚不明确 | + +**示例:** + +查询用户`mid=2`的关注TAG + +```shell +curl -G 'https://space.bilibili.com/ajax/tags/getSubList' \ +--data-urlencode 'mid=2' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "status": true, + "data": { + "tags": [{ + "name": "豪宅", + "cover": "", + "tag_id": 47637, + "notify": 1, + "archive_count": 0, + "updated_ts": "1970-01-01 08:00:00" + }, { + "name": "死亡搁浅", + "cover": "", + "tag_id": 1737239, + "notify": 1, + "archive_count": 0, + "updated_ts": "1970-01-01 08:00:00" + }, + ………… + ], + "count": 58 + } +} +``` + +
diff --git a/docs/user/status_number.md b/docs/user/status_number.md new file mode 100644 index 0000000000..ec56fe3d82 --- /dev/null +++ b/docs/user/status_number.md @@ -0,0 +1,311 @@ +# 用户状态数 + +- [关系状态数](#关系状态数) +- [UP主状态数](#UP主状态数) +- [~~订阅&投稿状态数(已弃用)~~](#~~订阅&投稿状态数(已弃用)~~) +- [相簿投稿数](#相簿投稿数) + +--- + +## 关系状态数 +> https://api.bilibili.com/x/relation/stat + +*请求方式:GET* + +认证方式:Cookie(SESSDATA)或APP + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ---------- | ---- | ------------ | ----------- | ---- | +| access_key | str | APP登录Token | APP方式必要 | | +| vmid | num | 目标用户mid | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | --------------------------- | +| code | num | 返回值 | 0:成功
-400:请求错误 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| --------- | ---- | ----------- | ----------------------------------------------- | +| mid | num | 目标用户mid | | +| following | num | 关注数 | | +| whisper | num | 悄悄关注数 | 需要登录(Cookie或APP)
未登录或非自己恒为0 | +| black | num | 黑名单数 | 需要登录(Cookie或APP)
未登录或非自己恒为0 | +| follower | num | 粉丝数 | | + +**示例:** + +查询用户`mid=332704117`的关系状态数 + +```shell +curl -G 'https://api.bilibili.com/x/relation/stat' \ +--data-urlencode 'vmid=332704117' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "mid": 332704117, + "following": 32, + "whisper": 0, + "black": 0, + "follower": 919515 + } +} +``` + +
+ +## UP主状态数 + +> https://api.bilibili.com/x/space/upstat + +*请求方式:GET* + +认证方式:Cookie(SESSDATA)或APP + +注:该接口需要**任意用户**登录,否则**不会返回任何数据** + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ---------- | ---- | ------------ | ----------- | ---- | +| access_key | str | APP登录Token | APP方式必要 | | +| mid | num | 目标用户mid | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | --------------------------- | +| code | num | 返回值 | 0:成功
-400:请求错误 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ----- | ---------- | ----- | +| archive | obj | 视频播放量 | | +| article | obj | 专栏阅读量 | | +| likes | num | 获赞次数 | | + +`data`中的`archive`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ----- | ---------- | ----- | +| view | num | 视频播放量 | | + +`data`中的`article`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ----- | ---------- | ----- | +| view | num | 专栏阅读量 | | + +**示例:** + +查询用户`mid=456664753`的UP主状态数 + +```shell +curl -G 'https://api.bilibili.com/x/space/upstat' \ +--data-urlencode 'mid=456664753' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "archive": { + "view": 213567370 + }, + "article": { + "view": 3230808 + }, + "likes": 20295095 + } +} +``` + +
+ +## ~~订阅&投稿状态数(已弃用)~~ + +
+查看折叠内容 +> https://api.bilibili.com/x/space/navnum + +*请求方式:GET* + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | ---- | ----------- | ------ | ---- | +| mid | num | 目标用户mid | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | --------------------------- | +| code | num | 返回值 | 0:成功
-400:请求错误 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| --------- | ----- | ---------- | ------------ | +| video | num | 投稿视频数 | | +| bangumi | num | 追番数 | 无视隐私设置 | +| cinema | num | 追剧数 | 无视隐私设置 | +| channel | obj | 频道数 | | +| favourite | obj | 收藏夹数 | 无视隐私设置 | +| tag | num | 关注TAG数 | 无视隐私设置 | +| article | num | 投稿专栏数 | | +| playlist | num | 0 | 作用尚不明确 | +| album | num | 投稿相簿数 | | +| audio | num | 投稿音频数 | | +| pugv | num | 投稿课程数 | | + +`data`中的`channel`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ----- | ---------- | ------------ | +| master | num | 频道数 | | +| guest | num | 频道数 | | + +`data`中的`favourite`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------ | ---- | ------------ | --------------------------------------- | +| master | num | 全部收藏夹数 | 需要登录(SESSDATA)
只能查看自己的 | +| guest | num | 公开收藏夹数 | 无视隐私设置 | + +**示例:** + +查询用户`mid=239202390`的订阅&投稿状态数 + +```shell +curl -G 'https://api.bilibili.com/x/space/navnum' \ +--data-urlencode 'mid=239202390' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "video": 290, + "bangumi": 25, + "cinema": 13, + "channel": { + "master": 2, + "guest": 2 + }, + "favourite": { + "master": 6, + "guest": 6 + }, + "tag": 0, + "article": 1, + "playlist": 0, + "album": 150, + "audio": 4, + "pugv": 0 + } +} +``` + +
+
+ +## 相簿投稿数 + +> https://api.vc.bilibili.com/link_draw/v1/doc/upload_count + +*请求方式:GET* + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | ---- | ----------- | ------ | ---- | +| uid | num | 目标用户mid | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------- | +| code | num | 返回值 | 0:成功 | +| msg | str | 错误信息 | 默认为success | +| message | str | 错误信息 | 默认为success | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----------- | ---- | ---------------------- | ------------------ | +| all_count | num | 相簿总数 | 总数为以下三者之和 | +| draw_count | num | 发布绘画数 | | +| photo_count | num | 发布摄影数 | | +| daily_count | num | 发布日常(图片动态)数 | | + +**示例:** + + 查询用户`mid=53456`的投稿相簿数 + +```shell +curl -G 'https://api.vc.bilibili.com/link_draw/v1/doc/upload_count' \ +--data-urlencode 'uid=53456' +``` + +
+查看响应示例: + +```json +{ + "code":0, + "msg":"success", + "message":"success", + "data":{ + "all_count":92, + "draw_count":5, + "photo_count":0, + "daily_count":87 + } +} +``` + +
diff --git a/docs/video/action.md b/docs/video/action.md new file mode 100644 index 0000000000..db733cec1f --- /dev/null +++ b/docs/video/action.md @@ -0,0 +1,830 @@ +# 视频点赞&投币&收藏&分享 + +- [视频点赞&投币&收藏&分享](#视频点赞投币收藏分享) + - [点赞](#点赞) + - [点赞视频(web端)](#点赞视频web端) + - [点赞视频(APP端)](#点赞视频app端) + - [判断视频是否被点赞(双端)](#判断视频是否被点赞双端) + - [点踩](#点踩)点赞 + - [点踩视频(APP端)](#点踩视频app端) + - [投币](#投币) + - [投币视频(web端)](#投币视频web端) + - [投币视频(APP端)](#投币视频app端) + - [判断视频是否被投币(双端)](#判断视频是否被投币双端) + - [收藏](#收藏) + - [收藏视频(双端)](#收藏视频双端) + - [判断视频是否被收藏(双端)](#判断视频是否被收藏双端) + - [一键三连](#一键三连) + - [一键三连视频(web端)](#一键三连视频web端) + - [一键三连视频(APP端)](#一键三连视频app端) + - [分享](#分享) + - [分享视频 (Web端)](#分享视频-web端) + +--- + +## 点赞 + + + +### 点赞视频(web端) + +> https://api.bilibili.com/x/web-interface/archive/like + +*请求方式:POST* + +认证方式:仅可Cookie(SESSDATA) + +**正文参数( application/x-www-form-urlencoded ):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | ---- | ------------------------ | ------------ | ---------------------- | +| aid | num | 稿件avid | 必要(可选) | avid与bvid任选一个 | +| bvid | str | 稿件bvid | 必要(可选) | avid与bvid任选一个 | +| like | num | 操作方式 | 必要 | 1:点赞
2:取消赞 | +| csrf | str | CSRF Token(位于cookie) | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | +| code | num | 返回值 | 0:成功
-101:账号未登录
-111:csrf校验失败
-400:请求错误
10003:不存在该稿件
65004:取消点赞失败
65006:重复点赞 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | + +**示例:** + +点赞视频`av79677524`/`BV1uJ411r7hL` + +avid方式: + +```shell +curl 'https://api.bilibili.com/x/web-interface/archive/like' \ +--data-urlencode 'aid=79677524' \ +--data-urlencode 'like=1' \ +--data-urlencode 'csrf=xxx' \ +-b 'SESSDATA=xxx' +``` + +bvid方式: + +```shell +curl 'https://api.bilibili.com/x/web-interface/archive/like' \ +--data-urlencode 'bvid=BV1uJ411r7hL' \ +--data-urlencode 'like=1' \ +--data-urlencode 'csrf=xxx' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1 +} +``` + +
+ +### 点赞视频(APP端) + +> https://app.bilibili.com/x/v2/view/like + +*请求方式:POST* + +认证方式:仅可APP + +**正文参数( application/x-www-form-urlencoded ):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ---------- | ---- | ------------ | ----------- | ---------------------- | +| access_key | str | APP登录Token | APP方式必要 | | +| aid | num | 稿件avid | 必要 | | +| like | num | 操作方式 | 必要 | 0:点赞
1:取消赞 | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | --------------------------------------------------------------------------- | +| code | num | 返回值 | 0:成功
-101:账号未登录
-400:请求错误
10003:不存在该稿件 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | obj | 数据本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----- | ---- | ------------ | ---- | +| toast | str | 提示信息内容 | | + +**示例:** + +点赞视频`av79677524` + +```shell +curl 'https://app.bilibili.com/x/v2/view/like' \ +--data-urlencode 'access_key=xxx' \ +--data-urlencode 'aid=79677524' \ +--data-urlencode 'like=0' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "toast": "点赞收到!视频可能推荐哦" + } +} +``` + +
+ +### 判断视频是否被点赞(双端) + +> https://api.bilibili.com/x/web-interface/archive/has/like + +*请求方式:GET* + +认证方式:APP或Cookie(SESSDATA) + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ---------- | ---- | ------------ | ------------ | ------------------ | +| access_key | str | APP登录Token | APP方式必要 | | +| aid | num | 稿件avid | 必要(可选) | avid与bvid任选一个 | +| bvid | str | 稿件bvid | 必要(可选) | avid与bvid任选一个 | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | ---------- | ------------------------------------------------- | +| code | num | 返回值 | 0:成功
-400:请求错误
-101:账号未登录 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | num | 被点赞标志 | 0:未点赞
1:已点赞 | + +**示例:** + +视频`av39330059`/`BV1Bt411z799`的状态为已点赞 + +avid方式: + +```shell +curl -G 'https://api.bilibili.com/x/web-interface/archive/has/like' \ +--data-urlencode 'aid=39330059' \ +-b 'SESSDATA=xxx' +``` + +bvid方式: + +```shell +curl -G 'api.bilibili.com/x/web-interface/archive/has/like' \ +--data-urlencode 'bvid=BV1Bt411z799' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": 1 +} +``` + +
+ +## 点踩 + +### 点踩视频(App端) + +> https://app.biliapi.net/x/v2/view/dislike + +*请求方式:POST* + +认证方式:仅可App + +**正文参数( application/x-www-form-urlencoded ):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +|------------|-----|-----------|-----|-----------------| +| access_key | str | APP Token | 必要 | | +| aid | num | 视频aid | 必要 | | +| dislike | num | 操作类型 | 必要 | 0:点踩
1:取消点踩 | + +**json回复:** + +| 字段 | 类型 | 内容 | 备注 | +|---------|-----|------|-----------------------------------------------------------------------------------------| +| code | num | 返回值 | 0:成功
-101:账号未登录
-400:请求错误
-404:啥都木有
65005:取消踩失败 未点踩过
65007:已踩过 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | + +**示例:** + +点踩视频 + +```shell +curl -L -X POST 'https://app.biliapi.net/x/v2/view/dislike' \ +-H 'Content-Type: application/x-www-form-urlencoded' \ +--data-urlencode 'access_key=xxx' \ +--data-urlencode 'aid=xxx' \ +--data-urlencode 'dislike=0' +``` + +取消点踩 + +```shell +curl -L -X POST 'https://app.biliapi.net/x/v2/view/dislike' \ +-H 'Content-Type: application/x-www-form-urlencoded' \ +--data-urlencode 'access_key=xxx' \ +--data-urlencode 'aid=xxx' \ +--data-urlencode 'dislike=1' +``` + +## 投币 + + + + +### 投币视频(web端) + +> https://api.bilibili.com/x/web-interface/coin/add + +*请求方式:POST* + +认证方式:仅可Cookie(SESSDATA) + +**正文参数( application/x-www-form-urlencoded ):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ----------- | ---- | ------------------------ | ------------ | --------------------------------------- | +| aid | num | 稿件avid | 必要(可选) | avid与bvid任选一个 | +| bvid | str | 稿件bvid | 必要(可选) | avid与bvid任选一个 | +| multiply | num | 投币数量 | 必要 | 上限为2 | +| select_like | num | 是否附加点赞 | 非必要 | 0:不点赞
1:同时点赞
默认为0 | +| csrf | str | CSRF Token(位于cookie) | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| code | num | 返回值 | 0:成功
-101:账号未登录
-102:账号被封停
-104:硬币不足
-111:csrf校验失败
-400:请求错误
10003:不存在该稿件
34002:不能给自己投币
34003:非法的投币数量
34004:投币间隔太短
34005:超过投币上限 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +data 对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | ------------ | ----------------------------------------------------- | +| like | bool | 是否点赞成功 | true:成功
false:失败
已赞过则附加点赞失败 | + +**示例:** + +为视频`av90671873`/`BV1N7411A7wC`投币2枚 + +avid方式: + +```shell +curl 'https://api.bilibili.com/x/web-interface/coin/add' \ +--data-urlencode 'aid=90671873' \ +--data-urlencode 'select_like=1' \ +--data-urlencode 'multiply=2' \ +--data-urlencode 'csrf=xxx' \ +-b 'SESSDATA=xxx' +``` + +bvid方式: + +```shell +curl 'https://api.bilibili.com/x/web-interface/coin/add' \ +--data-urlencode 'bvid=BV1N7411A7wC' \ +--data-urlencode 'select_like=1' \ +--data-urlencode 'multiply=2' \ +--data-urlencode 'csrf=xxx' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "like": true + } +} +``` + +
+ +### 投币视频(APP端) + +> https://app.bilibili.com/x/v2/view/coin/add + +*请求方式:POST* + +认证方式:仅可APP + +**正文参数( application/x-www-form-urlencoded ):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ----------- | ---- | ------------ | ----------- | --------------------------------------- | +| access_key | str | APP登录Token | APP方式必要 | | +| aid | num | 稿件avid | 必要 | | +| multiply | num | 投币数量 | 必要 | 上限为2 | +| select_like | num | 附加点赞 | 非必要 | 0:不点赞
1:同时点赞
默认为0 | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| code | num | 返回值 | 0:成功
-101:账号未登录
-102:账号被封停
-104:硬币不足
-400:请求错误
10003:不存在该稿件
34002:不能给自己投币
34003:非法的投币数量
34004:投币间隔太短
34005:超过投币上限 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +data 对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | ------------ | ----------------------------------------------------- | +| like | bool | 是否点赞成功 | true:成功
false:失败
已赞过则附加点赞失败 | + +为视频`av90671873`投币2枚 + +```shell +curl 'https://app.bilibili.com/x/v2/view/coin/add' \ +--data-urlencode 'access_key=xxx' \ +--data-urlencode 'aid=90671873' \ +--data-urlencode 'select_like=1' \ +--data-urlencode 'multiply=2' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "like": true + } +} +``` + +
+ +### 判断视频是否被投币(双端) + +> https://api.bilibili.com/x/web-interface/archive/coins + +*请求方式:GET* + +认证方式:APP或Cookie(SESSDATA) + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ---------- | ---- | ------------ | ------------ | ------------------ | +| access_key | str | APP登录Token | APP方式必要 | | +| aid | num | 稿件avid | 必要(可选) | avid与bvid任选一个 | +| bvid | str | 稿件bvid | 必要(可选) | avid与bvid任选一个 | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------- | +| code | num | 返回值 | 0:成功
-400:请求错误
-101:账号未登录 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| -------- | ---- | -------- | --------- | +| multiply | num | 投币枚数 | 未投币为0 | + +**示例:** + +视频`av37896701`/`BV18t411q7zz`的投币数为2枚 + +avid方式: + +```shell +curl -G 'api.bilibili.com/x/web-interface/archive/coins' \ +--data-urlencode 'aid=37896701' \ +-b 'SESSDATA=xxx' +``` + +bvid方式: + +```shell +curl -G 'api.bilibili.com/x/web-interface/archive/coins' \ +--data-urlencode 'bvid=BV18t411q7zz' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "multiply": 2 + } +} +``` + +
+ +## 收藏 + + + +### 收藏视频(双端) + +> https://api.bilibili.com/medialist/gateway/coll/resource/deal +> +> https://api.bilibili.com/x/v3/fav/resource/deal + +*请求方式:POST* + +认证方式:APP或Cookie(SESSDATA) + +鉴权方式:Cookie方式时需要验证referer为 `.bilibili.com`域名下 + +**正文参数( application/x-www-form-urlencoded ):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------------- | ---- | ------------------------ | -------------- | ------------------------------ | +| access_key | str | APP登录Token | APP方式必要 | | +| rid | num | 稿件avid | 必要 | | +| type | num | 必须为2 | 必要 | | +| add_media_ids | nums | 需要加入的收藏夹mlid | 非必要 | 同时添加多个,用`,`(%2C)分隔 | +| del_media_ids | nums | 需要取消的收藏夹mlid | 非必要 | 同时取消多个,用`,`(%2C)分隔 | +| csrf | str | CSRF Token(位于cookie) | Cookie方式必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| code | num | 返回值 | 0:成功
-101:账号未登录
-111:csrf校验失败
-400:请求错误
-403:访问权限不足
10003:不存在该稿件
11201:已经收藏过了
11202:已经取消收藏了
11203:达到收藏上限
72010017:参数错误 | +| message | str | 错误信息 | 正确为success | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------ | ---- | -------------------- | ----------------------- | +| prompt | bool | 是否为未关注用户收藏 | false:否
true:是 | + +**示例:** + +将视频`av49166435`添加到收藏夹`49166435`中 + +Cookie方式: + +```shell +curl 'https://api.bilibili.com/medialist/gateway/coll/resource/deal' \ +--data-urlencode 'rid=90671873' \ +--data-urlencode 'type=2' \ +--data-urlencode 'add_media_ids=49166435' \ +--data-urlencode 'del_media_ids=' \ +--data-urlencode 'csrf=xxx' \ +-b 'SESSDATA=xxx' \ +-e 'https://www.bilibili.com' +``` + +APP方式: + +```shell +curl 'https://api.bilibili.com/medialist/gateway/coll/resource/deal' \ +--data-urlencode 'access_key=xxx' \ +--data-urlencode 'rid=90671873' \ +--data-urlencode 'type=2' \ +--data-urlencode 'add_media_ids=49166435' \ +--data-urlencode 'del_media_ids=' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "data": { + "prompt": false + }, + "message": "success" +} +``` + +
+ +### 判断视频是否被收藏(双端) + +> https://api.bilibili.com/x/v2/fav/video/favoured + +*请求方式:GET* + +认证方式:APP或Cookie(SESSDATA) + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ---------- | -------- | ------------------ | ----------- | ---- | +| access_key | str | APP登录Token | APP方式必要 | | +| aid | num或str | 稿件avid或稿件bvid | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------- | +| code | num | 返回值 | 0:成功
-400:请求错误
-101:账号未登录 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +data 对象: + +| 字段 | 类型 | 内容 | 备注 | +| -------- | ---- | -------- | ------------------------------- | +| count | num | 1 | 作用尚不明确 | +| favoured | bool | 是否收藏 | true:已收藏
false:未收藏 | + +**示例:** + +视频`av46281123`/`BV1Bb411H7Dv`的状态为已收藏 + +avid方式: + +```shell +curl -G 'https://api.bilibili.com/x/v2/fav/video/favoured' \ +--data-urlencode 'aid=46281123' \ +-b 'SESSDATA=xxx' +``` + +bvid方式: + +```shell +curl -G 'https://api.bilibili.com/x/v2/fav/video/favoured' \ +--data-urlencode 'aid=BV1Bb411H7Dv' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "count": 1, + "favoured": true + } +} +``` + +
+ +## 一键三连 + + + +### 一键三连视频(web端) + +> https://api.bilibili.com/x/web-interface/archive/like/triple + +*请求方式:POST* + +认证方式:仅可Cookie(SESSDATA) + +同时点赞投币收藏视频,收藏于默认收藏夹中 + +**正文参数( application/x-www-form-urlencoded ):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | ---- | ------------------------ | ------------ | ------------------ | +| aid | num | 稿件avid | 必要(可选) | avid与bvid任选一个 | +| bvid | str | 稿件bvid | 必要(可选) | avid与bvid任选一个 | +| csrf | str | CSRF Token(位于cookie) | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | -------------------------------------------------------------------------------------------------- | +| code | num | 返回值 | 0:成功
-101:账号未登录
-111:csrf校验失败
-400:请求错误
10003:不存在该稿件 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| -------- | ---- | ------------ | --------------------------- | +| like | bool | 是否点赞成功 | true:成功
false:失败 | +| coin | bool | 是否投币成功 | true:成功
false:失败 | +| fav | bool | 是否收藏成功 | true:成功
false:失败 | +| multiply | num | 投币枚数 | 默认为2 | + +**示例:** + +将视频`av91003840`/`BV1Wj411f79U`一键三连 + +avid方式: + +```shell +curl 'https://api.bilibili.com/x/web-interface/archive/like/triple' \ +--data-urlencode 'aid=91003840' \ +--data-urlencode 'csrf=xxx' \ +-b 'SESSDATA=xxx' +``` + +bvid方式: + +```shell +curl 'https://api.bilibili.com/x/web-interface/archive/like/triple' \ +--data-urlencode 'bvid=BV1Wj411f79U' \ +--data-urlencode 'csrf=xxx' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "like": true, + "coin": true, + "fav": true, + "multiply": 2 + } +} +``` + +
+ +### 一键三连视频(APP端) + +> https://app.bilibili.com/x/v2/view/like/triple + +*请求方式:POST* + +认证方式:仅可APP + +同时点赞投币收藏视频,收藏于默认收藏夹中 + +**正文参数( application/x-www-form-urlencoded ):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ---------- | ---- | ------------ | ----------- | ---- | +| access_key | str | APP登录Token | APP方式必要 | | +| aid | num | 稿件avid | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | -------------------------------------------------------------------------- | +| code | num | 返回值 | 0:成功
-101:账号未登录
-400:请求错误
10003:不存在该稿件 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| -------- | ---- | ------------ | --------------------------- | +| like | bool | 是否点赞成功 | true:成功
false:失败 | +| coin | bool | 是否投币成功 | true:成功
false:失败 | +| fav | bool | 是否收藏成功 | true:成功
false:失败 | +| multiply | num | 投币枚数 | 默认为2 | + +**示例:** + +将视频`av91003840`一键三连 + +```shell +curl 'https://app.bilibili.com/x/v2/view/like/triple' \ +--data-urlencode 'access_key=xxx' \ +--data-urlencode 'aid=91003840' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "like": true, + "coin": true, + "fav": true, + "multiply": 2 + } +} +``` + +
+ +## 分享 + +### 分享视频 (Web端) + +> https://api.bilibili.com/x/web-interface/share/add + +*请求方式:POST* + +认证方式 csrf token + +**正文参数( application/x-www-form-urlencoded ):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | ---- | ------------------------ | ------------ | ------------------ | +| aid | num | 稿件avid | 必要(可选) | avid与bvid任选一个 | +| bvid | str | 稿件bvid | 必要(可选) | avid与bvid任选一个 | +| csrf | str | CSRF Token(位于cookie) | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | ---------- | ------------------------------------------------------------------------- | +| code | num | 返回值 | 0:成功
-101:账号未登录
-111:csrf校验失败
-400:请求错误 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | num | 当前分享数 | | + + +**示例:** + +分享视频`BV1oA411776z` + +```shell +curl 'https://api.bilibili.com/x/web-interface/share/add' \ +--data-urlencode 'csrf=xxx' \ +--data-urlencode 'bvid=BV1oA411776z' +``` + +
+查看响应示例: + +```json +{ + "code":0, + "message":"0", + "ttl":1, + "data":19 +} +``` + +
diff --git a/docs/video/appeal.md b/docs/video/appeal.md new file mode 100644 index 0000000000..f3b4e65e9f --- /dev/null +++ b/docs/video/appeal.md @@ -0,0 +1,306 @@ +# 稿件投诉 + +--- + +- [附件上传](#附件上传) +- [获取投诉类型](#获取投诉类型) +- [投诉稿件](#投诉稿件) + +--- + +## 附件上传 + +> 附件上传与视频封面上传共用一个api。 + +## 获取投诉类型 + +> https://api.bilibili.com/x/web-interface/archive/appeal/tags + +*请求类型:GET* + +**json回复:** + +| 参数名 | 类型 | 内容 | 备注 | +| ------- | ------------- | ---- | ------- | +| code | num | | 成功为0 | +| message | str | | 成功为0 | +| ttl | num | 1 | | +| data | List\ | | | + +`data`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | -------------- | ------------------ | +| 0 | obj | 类型条目 1 | | +| n | obj | 类型条目 (n+1) | 按照指定的顺序排列 | +| …… | obj | …… | …… | + +`data`数组中的对象 + +| 项 | 类型 | 内容 | 备注 | +| -------- | ------------------------------ | ---------------- | -------- | +| tid | num | 类型tid | | +| business | num | | 意义不明 | +| weight | num | 权重 | | +| round | num | | 意义不明 | +| state | num | | 意义不明 | +| name | str | 类型名称 | | +| remark | str | 类型备注 | | +| ctime | str | | 意义不明 | +| mtime | str | | 意义不明 | +| controls | 拥有时:object
没有时:null | 详细信息填写提示 | | + +`data`数组中的对象中的`controls`对象: + +| 项 | 类型 | 内容 | 备注 | +| ----------- | ---- | -------------- | -------- | +| tid | num | 同上 | | +| bid | num | | 意义不明 | +| name | str | 提示名称 | | +| title | str | 提示标题 | | +| component | str | 需要填入的类型 | | +| placeholder | str | 文本框占位符 | | +| required | num | 是否为必填 | | + +**示例:** + +```bash +curl --location --request GET 'https://api.bilibili.com/x/web-interface/archive/appeal/tags' +``` + +
+ 查看响应示例 +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": [ + { + "tid": 1, + "business": 1, + "weight": 1, + "round": 2, + "state": 1, + "name": "有其他问题", + "remark": "为帮助审核人员更快处理,请补充问题类型和出现位置等详细信息", + "ctime": "2018-08-13T15:41:20+08:00", + "mtime": "2018-08-13T15:41:20+08:00", + "controls": null + }, + { + "tid": 9, + "business": 1, + "weight": 30, + "round": 2, + "state": 1, + "name": "引战", + "remark": "为帮助审核人员更快处理, 请补充引战的话题和出现位置", + "ctime": "2018-08-13T15:41:20+08:00", + "mtime": "2018-08-13T15:41:20+08:00", + "controls": null + }, + { + "tid": 10, + "business": 1, + "weight": 20, + "round": 2, + "state": 1, + "name": "不能参加充电", + "remark": "为帮助审核人员更快处理, 请补充问题类型和出现位置等详细信息", + "ctime": "2018-08-13T15:41:20+08:00", + "mtime": "2018-08-23T11:35:28+08:00", + "controls": null + }, + { + "tid": 52, + "business": 1, + "weight": 35, + "round": 2, + "state": 1, + "name": "转载/自制类型错误", + "remark": "为帮助审核人员更快处理, 请补充原创作品出处", + "ctime": "2018-08-13T15:41:20+08:00", + "mtime": "2018-08-13T15:41:20+08:00", + "controls": [ + { + "tid": 52, + "bid": 1, + "name": "出处", + "title": "原创视频出处", + "component": "link", + "placeholder": "请填写链接", + "required": 1 + } + ] + }, + { + "tid": 2, + "business": 1, + "weight": 100, + "round": 1, + "state": 1, + "name": "违法违禁", + "remark": "为帮助审核人员更快处理,补充违规内容出现位置", + "ctime": "2018-08-13T15:41:20+08:00", + "mtime": "2018-08-13T15:41:20+08:00", + "controls": null + }, + { + "tid": 3, + "business": 1, + "weight": 90, + "round": 1, + "state": 1, + "name": "色情", + "remark": "为帮助审核人员更快处理,补充违规内容出现位置", + "ctime": "2018-08-13T15:41:20+08:00", + "mtime": "2018-08-13T15:41:20+08:00", + "controls": null + }, + { + "tid": 4, + "business": 1, + "weight": 80, + "round": 1, + "state": 1, + "name": "低俗", + "remark": "为帮助审核人员更快处理,补充违规内容出现位置", + "ctime": "2018-08-13T15:41:20+08:00", + "mtime": "2018-08-13T15:41:20+08:00", + "controls": null + }, + { + "tid": 5, + "business": 1, + "weight": 70, + "round": 1, + "state": 1, + "name": "赌博诈骗", + "remark": "为帮助审核人员更快处理,补充违规内容出现位置", + "ctime": "2018-08-13T15:41:20+08:00", + "mtime": "2018-08-13T15:41:20+08:00", + "controls": null + }, + { + "tid": 6, + "business": 1, + "weight": 60, + "round": 1, + "state": 1, + "name": "血腥暴力", + "remark": "为帮助审核人员更快处理,补充违规内容出现位置", + "ctime": "2018-08-13T15:41:20+08:00", + "mtime": "2018-08-13T15:41:20+08:00", + "controls": null + }, + { + "tid": 7, + "business": 1, + "weight": 50, + "round": 1, + "state": 1, + "name": "人身攻击", + "remark": "为帮助审核人员更快处理,补充违规内容出现位置", + "ctime": "2018-08-13T15:41:20+08:00", + "mtime": "2018-08-13T15:41:20+08:00", + "controls": null + }, + { + "tid": 8, + "business": 1, + "weight": 40, + "round": 1, + "state": 1, + "name": "与站内其他视频撞车", + "remark": "为帮助审核人员更快处理, 请描述撞车信息", + "ctime": "2018-08-13T15:41:20+08:00", + "mtime": "2018-08-23T00:30:04+08:00", + "controls": [ + { + "tid": 8, + "bid": 1, + "name": "撞车对象", + "title": "撞车对象", + "component": "input", + "placeholder": "BVID", + "required": 1 + } + ] + }, + { + "tid": 10000, + "business": 1, + "weight": 10, + "round": 1, + "state": 1, + "name": "青少年不良信息", + "remark": "为帮助审核人员更快处理, 请补充违规内容出现位置", + "ctime": "2018-08-13T15:41:20+08:00", + "mtime": "2018-08-13T15:41:20+08:00", + "controls": null + }, + { + "tid": 10013, + "business": 1, + "weight": 37, + "round": 1, + "state": 1, + "name": "不良封面/标题", + "remark": "为帮助审核人员更快处理, 请描述详细信息", + "ctime": "2019-04-17T19:18:09+08:00", + "mtime": "2019-04-17T20:42:25+08:00", + "controls": null + } + ] +} +``` +
+ +## 投诉稿件 + +> https://api.bilibili.com/x/web-interface/archive/appeal + +*请求方式:POST* + +认证方式:Cookie(SESSDATA) + +**正文参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | ---- | ------------------------ | ------ | ------------------------ | +| csrf | str | csrf token(位于cookie) | 必要 | 在url params中 | +| jsonp | str | jsonp | 必要? | 意义不明,位于url params | +| aid | num | 稿件aid | 必要 | 位于request body | +| tid | num | 投诉理由tid | 必要 | 位于request body | +| desc | str | 投诉理由详细描述 | 必要 | 位于request body | +| attach | str | 附件(多个附件用逗号隔开 | 非必要 | 位于request body | + +**json回复:** + +| 参数名 | 类型 | 内容 | 备注 | +| ------- | ---- | ------ | ------- | +| code | num | 返回码 | 成功为0 | +| message | str | | 成功为0 | +| ttl | | 1 | | + +**示例:举报av号为61080066的视频,理由为人身攻击,描述为“xxxxx”,并附带了一个图片附件 + +```bash +curl --location --request POST 'https://api.bilibili.com/x/web-interface/archive/appeal?jsonp=jsonp&csrf=xxxx' \ +--form 'aid="61080066"' \ +--form 'tid="7"' \ +--form 'desc="xxxxx"' \ +--form 'attach="https://archive.biliimg.com/bfs/archive/xxxxx.png"' +``` + +
+ 查看响应示例 +```json +{ + "code":0, + "message":"0", + "ttl":1 +} +``` +
diff --git a/docs/video/attribute_data.md b/docs/video/attribute_data.md new file mode 100644 index 0000000000..2fd1665099 --- /dev/null +++ b/docs/video/attribute_data.md @@ -0,0 +1,71 @@ +# 视频属性数据说明 + +(PS:以下部分内容来源不明,且部分值前端不可见,有待验证) + +- [attribute字段值(视频属性位)](#attribute字段值视频属性位) +- [state字段值(稿件状态)](#state字段值稿件状态) + +## attribute字段值(稿件属性位) + +该字段为二进制标志位,多个标志请用`OR`运算叠加 + +| 位 | 内容 | 备注 | +| ---- | ---------------------- | ------------------------------------------------------------ | +| 0 | 禁止排行 | | +| 1 | 动态禁止 | 禁止APP推送动态 | +| 2 | 禁止网页输出 | | +| 3 | 禁止客户端列表 | | +| 4 | 搜索禁止 | 打全标题或av/bv号都搜索不到的那种 | +| 5 | 海外禁止 | | +| 6 | 禁止推荐 | 禁止被APP端天马列表推荐 | +| 7 | 是否显示“禁止转载“标志 | **注:未经作者授权 禁止转载** | +| 8 | 是否高清 | 视频清晰度>=1080P | +| 9 | 是否PGC稿件 | 番剧&影视 | +| 10 | 允许承包 | | +| 11 | 是否番剧 | | +| 12 | 是否私单 | 存在商业推广恰饭内容 | +| 13 | 是否限制地区 | 大多数番剧&影视 | +| 14 | 禁止其他人添加TAG | | +| 15 | ? | 大多数旧视频会有这个标志 | +| 16 | 跳转 | 番剧及影视av/bv->ep跳转 | +| 17 | 是否影视 | | +| 18 | 是否付费 | | +| 19 | 推送动态 | | +| 20 | 家长模式 | | +| 21 | 是否限制游客和外链 | 分为两种情况,默认全部网页限制referer跳转,但第二种未登录无法访问,可以通过未登陆b站访问http://api.bilibili.com/x/web-interface/view 返回的code为-403来判断 | +| 22 | ? | | +| 23 | ? | | +| 24 | 是否为联合投稿 | | +| 25 | ? | | +| 26 | ? | | +| 27 | ? | | +| 28 | ? | | +| 29 | 是否为互动视频 | | + +## state字段值(稿件状态) + +| 值 | 内容 | 备注 | +| ---- | ------------ | ---------- | +| 1 | 橙色通过 | | +| 0 | 开放浏览 | | +| -1 | 待审 | | +| -2 | 被打回 | | +| -3 | 网警锁定 | | +| -4 | 被锁定 | 视频撞车了 | +| -5 | 管理员锁定 | | +| -6 | 修复待审 | | +| -7 | 暂缓审核 | | +| -8 | 补档待审 | | +| -9 | 等待转码 | | +| -10 | 延迟审核 | | +| -11 | 视频源待修 | | +| -12 | 转储失败 | | +| -13 | 允许评论待审 | | +| -14 | 临时回收站 | | +| -15 | 分发中 | | +| -16 | 转码失败 | | +| -20 | 创建未提交 | | +| -30 | 创建已提交 | | +| -40 | 定时发布 | | +| -100 | 用户删除 | | + diff --git a/docs/video/info.md b/docs/video/info.md new file mode 100644 index 0000000000..ea29a0bf41 --- /dev/null +++ b/docs/video/info.md @@ -0,0 +1,3373 @@ +# 视频基本信息 + + + +- [获取视频详细信息(web端)](#获取视频详细信息web端) +- [获取视频超详细信息(web端)](#获取视频超详细信息web端) +- [获取视频简介](#获取视频简介) +- [查询视频分P列表 (avid/bvid转cid)](#查询视频分p列表-avidbvid转cid) + +--- + +## 获取视频详细信息(web端) + +> https://api.bilibili.com/x/web-interface/view + +*请求方式:GET* + +认证方式:Cookie(SESSDATA) + +限制游客访问的视频需要登录 + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +|------|-----|--------|--------|---------------| +| aid | num | 稿件avid | 必要(可选) | avid与bvid任选一个 | +| bvid | str | 稿件bvid | 必要(可选) | avid与bvid任选一个 | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +|---------|-----|------|------------------------------------------------------------------------------------| +| code | num | 返回值 | 0:成功
-400:请求错误
-403:权限不足
-404:无视频
62002:稿件不可见
62004:稿件审核中 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +|----------------------|---------|-----------------|----------------------------------------------------| +| bvid | str | 稿件bvid | | +| aid | num | 稿件avid | | +| videos | num | 稿件分P总数 | 默认为1 | +| tid | num | 分区tid | | +| tname | str | 子分区名称 | | +| copyright | num | 视频类型 | 1:原创
2:转载 | +| pic | str | 稿件封面图片url | | +| title | str | 稿件标题 | | +| pubdate | num | 稿件发布时间 | 秒级时间戳 | +| ctime | num | 用户投稿时间 | 秒级时间戳 | +| desc | str | 视频简介 | | +| desc_v2 | array | 新版视频简介 | | +| state | num | 视频状态 | 详情见[属性数据文档](attribute_data.md#attribute字段值(稿件属性位)) | +| ~~attribute~~(已经弃用) | ~~num~~ | ~~稿件属性位配置~~ | 详情见[属性数据文档](attribute_data.md#state字段值(稿件状态)) | +| duration | num | 稿件总时长(所有分P) | 单位为秒 | +| forward | num | 撞车视频跳转avid | 仅撞车视频存在此字段 | +| mission_id | num | 稿件参与的活动id | | +| redirect_url | str | 重定向url | 仅番剧或影视视频存在此字段
用于番剧&影视的av/bv->ep | +| rights | obj | 视频属性标志 | | +| owner | obj | 视频UP主信息 | | +| stat | obj | 视频状态数 | | +| dynamic | str | 视频同步发布的的动态的文字内容 | | +| cid | num | 视频1P cid | | +| dimension | obj | 视频1P分辨率 | | +| premiere | | null | | +| teenage_mode | num | | | +| is_chargeable_season | bool | | | +| is_story | bool | | | +| no_cache | bool | | 作用尚不明确 | +| pages | array | 视频分P列表 | | +| subtitle | obj | 视频CC字幕信息 | | +| staff | array | 合作成员列表 | 非合作视频无此项 | +| is_season_display | bool | | | +| user_garb | obj | 用户装扮信息 | | +| honor_reply | obj | | | +| like_icon | str | | | + +`data`中的`desc_v2`数组: + +| 项 | 类型 | 内容 | 备注 | +|-----|-----|--------|-----| +| 0 | obj | 新版简介内容 | | + +`desc_v2`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +|----------|-----|------|-----| +| raw_text | str | 简介内容 |type=1时显示原文
type=2时显示'@'+raw_text+' '并链接至biz_id的主页| +| type | num | 类型 |1:普通,2:@他人| +| biz_id | num |被@用户的mid|=0,当type=1| + +`data`中的`rights`对象: + +| 字段 | 类型 | 内容 | 备注 | +|-----------------|-----|--------------|--------| +| bp | num | 是否允许承包 | | +| elec | num | 是否支持充电 | | +| download | num | 是否允许下载 | | +| movie | num | 是否电影 | | +| pay | num | 是否PGC付费 | | +| hd5 | num | 是否有高码率 | | +| no_reprint | num | 是否显示“禁止转载”标志 | | +| autoplay | num | 是否自动播放 | | +| ugc_pay | num | 是否UGC付费 | | +| is_cooperation | num | 是否为联合投稿 | | +| ugc_pay_preview | num | 0 | 作用尚不明确 | +| no_background | num | 0 | 作用尚不明确 | +| clean_mode | num | 0 | 作用尚不明确 | +| is_stein_gate | num | 是否为互动视频 | | +| is_360 | num | 是否为全景视频 | | +| no_share | num | 0 | 作用尚不明确 | +| arc_pay | num | 0 | 作用尚不明确 | +| free_watch | num | 0 | 作用尚不明确 | + +`data`中的`owner`对象: + +| 字段 | 类型 | 内容 | 备注 | +|------|-----|--------|-----| +| mid | num | UP主mid | | +| name | str | UP主昵称 | | +| face | str | UP主头像 | | + +`data`中的`stat`对象: + +| 字段 | 类型 | 内容 | 备注 | +|------------|-----|-----------|-------| +| aid | num | 稿件avid | | +| view | num | 播放数 | | +| danmaku | num | 弹幕数 | | +| reply | num | 评论数 | | +| favorite | num | 收藏数 | | +| coin | num | 投币数 | | +| share | num | 分享数 | | +| now_rank | num | 当前排名 | | +| his_rank | num | 历史最高排行 | | +| like | num | 获赞数 | | +| dislike | num | 点踩数 | 恒为`0` | +| evaluation | str | 视频评分 | | +| argue_msg | str | 警告/争议提示信息 | | + +`data`中的`pages`数组: + +| 项 | 类型 | 内容 | 备注 | +|-----|-----|----------|---------| +| 0 | obj | 1P内容 | 无分P仅有此项 | +| n | obj | (n+1)P内容 | | +| …… | obj | …… | …… | + +`pages`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +|-----------|-----|-----------|---------------------------------------------| +| cid | num | 分P cid | | +| page | num | 分P序号 | 从1开始 | +| from | str | 视频来源 | vupload:普通上传(B站)
hunan:芒果TV
qq:腾讯 | +| part | str | 分P标题 | | +| duration | num | 分P持续时间 | 单位为秒 | +| vid | str | 站外视频vid | 仅站外视频有效 | +| weblink | str | 站外视频跳转url | 仅站外视频有效 | +| dimension | obj | 当前分P分辨率 | 部分较老视频无分辨率值 | + +`pages`数组中的对象中的`dimension`对象(同`data`中的`dimension`对象): + +| 字段 | 类型 | 内容 | 备注 | +|--------|-----|---------|----------------| +| width | num | 当前分P 宽度 | | +| height | num | 当前分P 高度 | | +| rotate | num | 是否将宽高对换 | 0:正常
1:对换 | + +`subtitle`对象: + +| 字段 | 类型 | 内容 | 备注 | +|--------------|-------|----------|-----| +| allow_submit | bool | 是否允许提交字幕 | | +| list | array | 字幕列表 | | + +`subtitle`对象中的`list`数组: + +| 项 | 类型 | 内容 | 备注 | +|-----|-----|---------|-----| +| 0 | obj | 字幕1 | | +| n | obj | 字幕(n+1) | | +| …… | obj | …… | …… | + +`list`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +|--------------|------|---------------|-----| +| id | num | 字幕id | | +| lan | str | 字幕语言 | | +| lan_doc | str | 字幕语言名称 | | +| is_lock | bool | 是否锁定 | | +| author_mid | num | 字幕上传者mid | | +| subtitle_url | str | json格式字幕文件url | | +| author | obj | 字幕上传者信息 | | + +`list`数组中的对象中的`author`对象: + +| 字段 | 类型 | 内容 | 备注 | +|-----------------|-----|------------|--------| +| mid | num | 字幕上传者mid | | +| name | str | 字幕上传者昵称 | | +| sex | str | 字幕上传者性别 | 男 女 保密 | +| face | str | 字幕上传者头像url | | +| sign | str | 字幕上传者签名 | | +| rank | num | 10000 | 作用尚不明确 | +| birthday | num | 0 | 作用尚不明确 | +| is_fake_account | num | 0 | 作用尚不明确 | +| is_deleted | num | 0 | 作用尚不明确 | + +`staff`数组: + +| 项 | 类型 | 内容 | 备注 | +|-----|-----|-----------|-----| +| 0 | obj | 合作成员1 | | +| n | obj | 合作成员(n+1) | | +| …… | obj | …… | …… | + +`staff`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +|----------|-----|---------|-----| +| mid | num | 成员mid | | +| title | str | 成员名称 | | +| name | str | 成员昵称 | | +| face | str | 成员头像url | | +| vip | obj | 成员大会员状态 | | +| official | obj | 成员认证信息 | | +| follower | num | 成员粉丝数 | | +| label_style | num | | | + +`staff`数组中的对象中的`vip`对象: + +| 字段 | 类型 | 内容 | 备注 | +|------------|-----|--------|---------------------------| +| type | num | 成员会员类型 | 0:无
1:月会员
2:年会员 | +| status | num | 会员状态 | 0:无
1:有 | +| theme_type | num | 0 | | + +`staff`数组中的对象中的`official`对象: + +| 字段 | 类型 | 内容 | 备注 | +|-------|-----|--------|---------------------------------------| +| role | num | 成员认证级别 | 0:无
1 2 7:个人认证
3 4 5 6:机构认证 | +| title | str | 成员认证名 | 无为空 | +| desc | str | 成员认证备注 | 无为空 | +| type | num | 成员认证类型 | -1:无
0:有 | + +`data`中的`user_garb`对象: + +| 字段 | 类型 | 内容 | 备注 | +|-------------------|-----|-------|-----| +| url_image_ani_cut | str | 某url? | | + +`data`中的`honor_reply`对象: + +| 字段 | 类型 | 内容 | 备注 | +|-------|-------|-----|-----| +| honor | array | | | + +`honor`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +|----------------------|-----|-------------------------------------|-----| +| aid | num | 当前稿件aid | | +| type | num | 1:入站必刷收录
2:第?期每周必看
3:全站排行榜最高第?名
4:热门 | | +| desc | num | 描述 | | +| weekly_recommend_num | num | | | + +**示例:** + +获取视频`av85440373`/`BV117411r7R1`的基本信息 + +avid方式: + +```shell +curl -G 'https://api.bilibili.com/x/web-interface/view' \ +--data-urlencode 'aid=85440373' +``` + +bvid方式: + +```shell +curl -G 'https://api.bilibili.com/x/web-interface/view' \ +--data-urlencode 'bvid=BV117411r7R1' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "bvid": "BV117411r7R1", + "aid": 85440373, + "videos": 1, + "tid": 28, + "tname": "原创音乐", + "copyright": 1, + "pic": "http://i1.hdslb.com/bfs/archive/ea0dd34bf41e23a68175680a00e3358cd249105f.jpg", + "title": "当我给拜年祭的快板加了电音配乐…", + "pubdate": 1580377255, + "ctime": 1580212263, + "desc": "【CB想说的】看完拜年祭之后最爱的一个节目!给有快板的部分简单加了一些不同风格的配乐hhh,感谢沃玛画的我!太可爱了哈哈哈哈哈哈哈!!!\n【Warma想说的】我画了打碟的CB,画风为了还原原版视频所以参考了四迹老师的画风,四迹老师的画真的太可爱啦!不过其实在画的过程中我遇到了一个问题,CB的耳机……到底是戴在哪个耳朵上呢?\n\n原版:av78977080\n编曲(配乐):Crazy Bucket\n人声(配音):Warma/谢拉\n曲绘:四迹/Warma\n动画:四迹/Crazy Bucket\n剧本:Mokurei-木灵君\n音频后期:DMYoung/纳兰寻风/Crazy Bucket\n包装:破晓天", + "desc_v2": [ + { + "raw_text": "【CB想说的】看完拜年祭之后最爱的一个节目!给有快板的部分简单加了一些不同风格的配乐hhh,感谢沃玛画的我!太可爱了哈哈哈哈哈哈哈!!!\n【Warma想说的】我画了打碟的CB,画风为了还原原版视频所以参考了四迹老师的画风,四迹老师的画真的太可爱啦!不过其实在画的过程中我遇到了一个问题,CB的耳机……到底是戴在哪个耳朵上呢?\n\n原版:av78977080\n编曲(配乐):Crazy Bucket\n人声(配音):Warma/谢拉\n曲绘:四迹/Warma\n动画:四迹/Crazy Bucket\n剧本:Mokurei-木灵君\n音频后期:DMYoung/纳兰寻风/Crazy Bucket\n包装:破晓天", + "type": 1, + "biz_id": 0 + } + ], + "state": 0, + "duration": 486, + "mission_id": 11838, + "rights": { + "bp": 0, + "elec": 0, + "download": 1, + "movie": 0, + "pay": 0, + "hd5": 1, + "no_reprint": 1, + "autoplay": 1, + "ugc_pay": 0, + "is_cooperation": 1, + "ugc_pay_preview": 0, + "no_background": 0, + "clean_mode": 0, + "is_stein_gate": 0, + "is_360": 0, + "no_share": 0, + "arc_pay": 0, + "free_watch": 0 + }, + "owner": { + "mid": 66606350, + "name": "Crazy_Bucket_陈楒潼", + "face": "http://i2.hdslb.com/bfs/face/c9af3b32cf74baec5a4b65af8ca18ae5ff571f77.jpg" + }, + "stat": { + "aid": 85440373, + "view": 2270927, + "danmaku": 11839, + "reply": 2619, + "favorite": 58725, + "coin": 71048, + "share": 9398, + "now_rank": 0, + "his_rank": 55, + "like": 155954, + "dislike": 0, + "evaluation": "", + "argue_msg": "" + }, + "dynamic": "进来就出不去了!!!\n#全民音乐UP主##CB##warma##电音##快板##拜年祭##诸神的奥运##编曲##Remix#", + "cid": 146044693, + "dimension": { + "width": 1920, + "height": 1080, + "rotate": 0 + }, + "premiere": null, + "teenage_mode": 0, + "is_chargeable_season": false, + "is_story": false, + "no_cache": false, + "pages": [ + { + "cid": 146044693, + "page": 1, + "from": "vupload", + "part": "建议改成:建议改成:诸 神 的 电 音 节(不是)", + "duration": 486, + "vid": "", + "weblink": "", + "dimension": { + "width": 1920, + "height": 1080, + "rotate": 0 + } + } + ], + "subtitle": { + "allow_submit": false, + "list": [] + }, + "staff": [ + { + "mid": 66606350, + "title": "UP主", + "name": "Crazy_Bucket_陈楒潼", + "face": "http://i2.hdslb.com/bfs/face/c9af3b32cf74baec5a4b65af8ca18ae5ff571f77.jpg", + "vip": { + "type": 2, + "status": 1, + "due_date": 1674403200000, + "vip_pay_type": 0, + "theme_type": 0, + "label": { + "path": "", + "text": "年度大会员", + "label_theme": "annual_vip", + "text_color": "#FFFFFF", + "bg_style": 1, + "bg_color": "#FB7299", + "border_color": "", + "use_img_label": true, + "img_label_uri_hans": "", + "img_label_uri_hant": "", + "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png", + "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png" + }, + "avatar_subscript": 1, + "nickname_color": "#FB7299", + "role": 3, + "avatar_subscript_url": "", + "tv_vip_status": 0, + "tv_vip_pay_type": 0 + }, + "official": { + "role": 1, + "title": "bilibili 知名音乐UP主", + "desc": "", + "type": 0 + }, + "follower": 646111, + "label_style": 0 + }, + { + "mid": 53456, + "title": "曲绘", + "name": "Warma", + "face": "http://i2.hdslb.com/bfs/face/c1bbee6d255f1e7fc434e9930f0f288c8b24293a.jpg", + "vip": { + "type": 2, + "status": 1, + "due_date": 1706198400000, + "vip_pay_type": 0, + "theme_type": 0, + "label": { + "path": "", + "text": "年度大会员", + "label_theme": "annual_vip", + "text_color": "#FFFFFF", + "bg_style": 1, + "bg_color": "#FB7299", + "border_color": "", + "use_img_label": true, + "img_label_uri_hans": "", + "img_label_uri_hant": "", + "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png", + "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png" + }, + "avatar_subscript": 1, + "nickname_color": "#FB7299", + "role": 3, + "avatar_subscript_url": "", + "tv_vip_status": 0, + "tv_vip_pay_type": 0 + }, + "official": { + "role": 1, + "title": "bilibili 知名UP主", + "desc": "", + "type": 0 + }, + "follower": 3670591, + "label_style": 0 + } + ], + "is_season_display": false, + "user_garb": { + "url_image_ani_cut": "" + }, + "honor_reply": { + "honor": [ + { + "aid": 85440373, + "type": 2, + "desc": "第45期每周必看", + "weekly_recommend_num": 45 + }, + { + "aid": 85440373, + "type": 3, + "desc": "全站排行榜最高第55名", + "weekly_recommend_num": 0 + }, + { + "aid": 85440373, + "type": 4, + "desc": "热门", + "weekly_recommend_num": 0 + } + ] + }, + "like_icon": "" + } +} +``` + +
+ +视频标题为:`当我给拜年祭的快板加了电音配乐…` + +视频分区为:`tid=28(音乐->原创音乐)` + +视频时长:`486s` + +视频发布时间:`2020/1/30 17:40:55` + +视频投稿时间:`2020/1/28 19:51:3` + +视频分P为:`1` + +视频类型为:`1(原创)` + +视频UP主为:`66606350(Crazy_Bucket_陈楒潼)` + +视频简介为: + +`【CB想说的】看完拜年祭之后最爱的一个节目!给有快板的部分简单加了一些不同风格的配乐hhh,感谢沃玛画的我!太可爱了哈哈哈哈哈哈哈!!!\n【Warma想说的】我画了打碟的CB,画风为了还原原版视频所以参考了四迹老师的画风,四迹老师的画真的太可爱啦!不过其实在画的过程中我遇到了一个问题,CB的耳机……到底是戴在哪个耳朵上呢?\n\n原版:av78977080\n编曲(配乐):Crazy Bucket\n人声(配音):Warma/谢拉\n曲绘:四迹/Warma\n动画:四迹/Crazy Bucket\n剧本:Mokurei-木灵君\n音频后期:DMYoung/纳兰寻风/Crazy Bucket\n包装:破晓天` + +视频状态为:`0(开放浏览)` + +视频属性为: `显示“禁止转载“标志`、`高清`、`禁止其他人添加TAG`、`联合投稿视频` + +视频封面为: + +https://i1.hdslb.com/bfs/archive/ea0dd34bf41e23a68175680a00e3358cd249105f.jpg + +![](https://i1.hdslb.com/bfs/archive/ea0dd34bf41e23a68175680a00e3358cd249105f.jpg) + +## 获取视频超详细信息(web端) + +> https://api.bilibili.com/x/web-interface/view/detail + +*请求方式:GET* + +认证方式:Cookie(SESSDATA) + +限制游客访问的视频需要登录 + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +|------|-----|--------|--------|---------------| +| aid | num | 稿件avid | 必要(可选) | avid与bvid任选一个 | +| bvid | str | 稿件bvid | 必要(可选) | avid与bvid任选一个 | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +|---------|-----|------|------------------------------------------------------------------------------------| +| code | num | 返回值 | 0:成功
-400:请求错误
-403:权限不足
-404:无视频
62002:稿件不可见
62004:稿件审核中 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +|------------|-------|---------|--------| +| View | obj | 视频基本信息 | | +| Card | obj | 视频UP主信息 | | +| Tags | array | 视频TAG信息 | | +| Reply | obj | 视频热评信息 | | +| Related | array | 推荐视频信息 | | +| Spec | null | ? | 作用尚不明确 | +| hot_share | obj | ? | 作用尚不明确 | +| elec | null | ? | 作用尚不明确 | +| recommend | null | ? | 作用尚不明确 | +| view_addit | obj | ? | 作用尚不明确 | + +`data`中的`View`对象: + +基本同「[获取视频详细信息(web端)](#获取视频详细信息(web端))」中的data对象 + +`data`中的`Card`对象: + +| 字段 | 类型 | 内容 | 备注 | +|---------------|------|---------|-----------------------------------------------------------| +| card | obj | UP主名片信息 | | +| space | obj | 主页头图 | | +| following | bool | 是否关注此用户 | true:已关注
false:未关注
需要登录(Cookie)
未登录为false | +| archive_count | num | 用户稿件数 | | +| article_count | num | 用户专栏数 | | +| follower | num | 粉丝数 | | +| like_num | num | UP主获赞次数 | | + +`Card`中的`card`对象: + +| 字段 | 类型 | 内容 | 备注 | +|------------------|-------|------------|-----------------------------| +| mid | str | 用户mid | | +| name | str | 用户昵称 | | +| approve | bool | false | 作用尚不明确 | +| sex | str | 用户性别 | 男 女 保密 | +| rank | str | 10000 | 作用尚不明确 | +| face | str | 用户头像链接 | | +| face_nft | num | 是否为 nft 头像 | `0`不是nft头像
`1`是 nft 头像 | +| DisplayRank | str | 0 | 作用尚不明确 | +| regtime | num | 0 | 作用尚不明确 | +| spacesta | num | 0 | 作用尚不明确 | +| birthday | str | 空 | 作用尚不明确 | +| place | str | 空 | 作用尚不明确 | +| description | str | 空 | 作用尚不明确 | +| article | num | 0 | 作用尚不明确 | +| attentions | array | 空 | 作用尚不明确 | +| fans | num | 粉丝数 | | +| friend | num | 关注数 | | +| attention | num | 关注数 | | +| sign | str | 签名 | | +| level_info | obj | 等级 | | +| pendant | obj | 挂件 | | +| nameplate | obj | 勋章 | | +| Official | obj | 认证信息 | | +| official_verify | obj | 认证信息2 | | +| vip | obj | 大会员状态 | | +| is_senior_member | num | 是否为硬核会员 | 0:否
1:是 | + +`card`中的`level_info`对象: + +| 字段 | 类型 | 内容 | 备注 | +|---------------|-----|------|--------| +| current_level | num | 当前等级 | 0-6级 | +| current_min | num | 0 | 作用尚不明确 | +| current_exp | num | 0 | 作用尚不明确 | +| next_exp | num | 0 | 作用尚不明确 | + +`card`中的`pendant`对象: + +| 字段 | 类型 | 内容 | 备注 | +|--------|-----|---------|--------| +| pid | num | 挂件id | | +| name | str | 挂件名称 | | +| image | str | 挂件图片url | | +| expire | num | 0 | 作用尚不明确 | + +`card`中的`nameplate`对象: + +| 字段 | 类型 | 内容 | 备注 | +|-------------|-----|------------|----------| +| nid | num | 勋章id | 详细说明有待补充 | +| name | str | 勋章名称 | | +| image | str | 挂件图片url 正常 | | +| image_small | str | 勋章图片url 小 | | +| level | str | 勋章等级 | | +| condition | str | 勋章条件 | | + +`card`中的`Official`对象: + +| 字段 | 类型 | 内容 | 备注 | +|-------|-----|------|---------------------------------------| +| role | num | 认证类型 | 0:无
1 2 7:个人认证
3 4 5 6:机构认证 | +| title | str | 认证信息 | 无为空 | +| desc | str | 认证备注 | 无为空 | +| type | num | 是否认证 | -1:无
0:认证 | + +`card`中的`official_verify`对象: + +| 字段 | 类型 | 内容 | 备注 | +|------|-----|------|----------------| +| type | num | 是否认证 | -1:无
0:认证 | +| desc | str | 认证信息 | 无为空 | + +`card`中的`vip`对象: + +| 字段 | 类型 | 内容 | 备注 | +|---------------|-----|-------|----------------------------------| +| vipType | num | 大会员类型 | 0:无
1:月度大会员
2:年度及以上大会员 | +| dueRemark | str | 空 | 作用尚不明确 | +| accessStatus | num | 0 | 作用尚不明确 | +| vipStatus | num | 大会员状态 | 0:无
1:有 | +| vipStatusWarn | str | 空 | 作用尚不明确 | +| theme_type | num | 0 | 作用尚不明确 | + +`Card`中的`space`对象: + +| 字段 | 类型 | 内容 | 备注 | +|-------|-----|------------|-----| +| s_img | str | 主页头图url 小图 | | +| l_img | str | 主页头图url 正常 | | + +`data`中的`Tags`数组: + +基本同「[获取视频TAG信息](tags.md#获取视频TAG信息)」中的data数组 + +`data`中的`Reply`对象: + +基本同「[获取评论区热评](../comment/list.md#获取评论区热评)」中的data对象 + +`data`中的`Related`数组: + +| 项 | 类型 | 内容 | 备注 | +|-----|-----|-----------|-----| +| 0 | obj | 推荐视频1 | | +| n | obj | 推荐视频(n+1) | | +| …… | obj | …… | …… | + +`Related`数组中的对象: + +基本同「[获取视频详细信息(web端)](#获取视频详细信息(web端))」中的data对象 + +`data`中的`hot_share`对象: + +| 字段 | 类型 | 内容 | 备注 | +|------|-------|-------|--------| +| show | bool | false | 作用尚不明确 | +| list | array | 空 | 作用尚不明确 | + +`data`中的`view_addit`对象: + +| 字段 | 类型 | 内容 | 备注 | +|-----|------|-------|--------| +| 63 | bool | false | 作用尚不明确 | +| 64 | bool | false | 作用尚不明确 | + +**示例:** + +获取视频`av170001`/`BV17x411w7KC`的详细信息 + +avid方式: + +```shell +curl -G 'https://api.bilibili.com/x/web-interface/view/detail' \ +--data-urlencode 'aid=170001' +``` + +bvid方式: + +```shell +curl -G 'https://api.bilibili.com/x/web-interface/view/detail' \ +--data-urlencode 'bvid=BV17x411w7KC' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "View": { + "bvid": "BV17x411w7KC", + "aid": 170001, + "videos": 10, + "tid": 193, + "tname": "MV", + "copyright": 2, + "pic": "http://i2.hdslb.com/bfs/archive/1ada8c32a9d168e4b2ee3e010f24789ba3353785.jpg", + "title": "【MV】保加利亚妖王AZIS视频合辑", + "pubdate": 1320850533, + "ctime": 1497380562, + "desc": "sina 保加利亚超级天王 Azis1999年出道。他的音乐融合保加利亚名族曲风chalga和pop、rap等元素,不过他惊艳的易装秀与浮夸的角色诠释才是他最为出名的地方 Azis与众多保加利亚天王天后级歌手都有过合作.06年,他作为Mariana Popova的伴唱,在欧洲半决赛上演唱了他们的参赛曲Let Me Cry 06年他被Velikite Balgari评为保加利亚有史以来最伟大的名人之一", + "desc_v2": [ + { + "raw_text": "sina 保加利亚超级天王 Azis1999年出道。他的音乐融合保加利亚名族曲风chalga和pop、rap等元素,不过他惊艳的易装秀与浮夸的角色诠释才是他最为出名的地方 Azis与众多保加利亚天王天后级歌手都有过合作.06年,他作为Mariana Popova的伴唱,在欧洲半决赛上演唱了他们的参赛曲Let Me Cry 06年他被Velikite Balgari评为保加利亚有史以来最伟大的名人之一", + "type": 1, + "biz_id": 0 + } + ], + "state": 0, + "duration": 2412, + "rights": { + "bp": 0, + "elec": 0, + "download": 1, + "movie": 0, + "pay": 0, + "hd5": 0, + "no_reprint": 0, + "autoplay": 1, + "ugc_pay": 0, + "is_cooperation": 0, + "ugc_pay_preview": 0, + "no_background": 0, + "clean_mode": 0, + "is_stein_gate": 0, + "is_360": 0, + "no_share": 0, + "arc_pay": 0, + "free_watch": 0 + }, + "owner": { + "mid": 122541, + "name": "冰封.虾子", + "face": "http://i0.hdslb.com/bfs/face/40c46ee74dd6ea33d46c38cd6083e6a1286aa482.gif" + }, + "stat": { + "aid": 170001, + "view": 42987414, + "danmaku": 908915, + "reply": 176677, + "favorite": 892097, + "coin": 276446, + "share": 619090, + "now_rank": 0, + "his_rank": 13, + "like": 861939, + "dislike": 0, + "evaluation": "", + "argue_msg": "" + }, + "dynamic": "", + "cid": 279786, + "dimension": { + "width": 512, + "height": 288, + "rotate": 0 + }, + "premiere": null, + "teenage_mode": 0, + "is_chargeable_season": false, + "is_story": false, + "no_cache": false, + "pages": [ + { + "cid": 279786, + "page": 1, + "from": "vupload", + "part": "Хоп", + "duration": 199, + "vid": "", + "weblink": "", + "dimension": { + "width": 512, + "height": 288, + "rotate": 0 + } + }, + { + "cid": 275431, + "page": 2, + "from": "vupload", + "part": "Imash li surce", + "duration": 205, + "vid": "", + "weblink": "", + "dimension": { + "width": 640, + "height": 360, + "rotate": 0 + } + }, + { + "cid": 279787, + "page": 3, + "from": "vupload", + "part": "No Kazvam Ti Stiga", + "duration": 308, + "vid": "", + "weblink": "", + "dimension": { + "width": 432, + "height": 324, + "rotate": 0 + } + }, + { + "cid": 280467, + "page": 4, + "from": "vupload", + "part": "Samo za teb", + "duration": 273, + "vid": "", + "weblink": "", + "dimension": { + "width": 360, + "height": 288, + "rotate": 0 + } + }, + { + "cid": 280468, + "page": 5, + "from": "vupload", + "part": "Tochno sega", + "duration": 241, + "vid": "", + "weblink": "", + "dimension": { + "width": 584, + "height": 360, + "rotate": 0 + } + }, + { + "cid": 280469, + "page": 6, + "from": "vupload", + "part": "Kak boli", + "duration": 336, + "vid": "", + "weblink": "", + "dimension": { + "width": 384, + "height": 288, + "rotate": 0 + } + }, + { + "cid": 274491, + "page": 7, + "from": "vupload", + "part": "Obicham Te", + "duration": 250, + "vid": "", + "weblink": "", + "dimension": { + "width": 402, + "height": 208, + "rotate": 0 + } + }, + { + "cid": 267410, + "page": 8, + "from": "vupload", + "part": "Mrazish", + "duration": 201, + "vid": "", + "weblink": "", + "dimension": { + "width": 540, + "height": 360, + "rotate": 0 + } + }, + { + "cid": 267714, + "page": 9, + "from": "vupload", + "part": "Няма накъде", + "duration": 201, + "vid": "", + "weblink": "", + "dimension": { + "width": 450, + "height": 360, + "rotate": 0 + } + }, + { + "cid": 270380, + "page": 10, + "from": "vupload", + "part": "Gadna poroda", + "duration": 198, + "vid": "", + "weblink": "", + "dimension": { + "width": 432, + "height": 324, + "rotate": 0 + } + } + ], + "subtitle": { + "allow_submit": false, + "list": [] + }, + "is_season_display": false, + "user_garb": { + "url_image_ani_cut": "" + }, + "honor_reply": { + "honor": [ + { + "aid": 170001, + "type": 3, + "desc": "全站排行榜最高第13名", + "weekly_recommend_num": 0 + } + ] + }, + "like_icon": "" + }, + "Card": { + "card": { + "mid": "122541", + "name": "冰封.虾子", + "approve": false, + "sex": "保密", + "rank": "10000", + "face": "http://i0.hdslb.com/bfs/face/40c46ee74dd6ea33d46c38cd6083e6a1286aa482.gif", + "face_nft": 0, + "face_nft_type": 0, + "DisplayRank": "0", + "regtime": 0, + "spacesta": 0, + "birthday": "", + "place": "", + "description": "", + "article": 0, + "attentions": [], + "fans": 66620, + "friend": 35, + "attention": 35, + "sign": "路亚钓鱼爱好者交流群411267154", + "level_info": { + "current_level": 6, + "current_min": 0, + "current_exp": 0, + "next_exp": 0 + }, + "pendant": { + "pid": 0, + "name": "", + "image": "", + "expire": 0, + "image_enhance": "", + "image_enhance_frame": "" + }, + "nameplate": { + "nid": 9, + "name": "出道偶像", + "image": "http://i1.hdslb.com/bfs/face/3f2d64f048b39fb6c26f3db39df47e6080ec0f9c.png", + "image_small": "http://i2.hdslb.com/bfs/face/90c35d41d8a19b19474d6bac672394c17b444ce8.png", + "level": "高级勋章", + "condition": "所有自制视频总播放数>=50万" + }, + "Official": { + "role": 0, + "title": "", + "desc": "", + "type": -1 + }, + "official_verify": { + "type": -1, + "desc": "" + }, + "vip": { + "type": 1, + "status": 0, + "due_date": 1493827200000, + "vip_pay_type": 0, + "theme_type": 0, + "label": { + "path": "", + "text": "", + "label_theme": "", + "text_color": "", + "bg_style": 0, + "bg_color": "", + "border_color": "", + "use_img_label": true, + "img_label_uri_hans": "", + "img_label_uri_hant": "", + "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/d7b702ef65a976b20ed854cbd04cb9e27341bb79.png", + "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/KJunwh19T5.png" + }, + "avatar_subscript": 0, + "nickname_color": "", + "role": 0, + "avatar_subscript_url": "", + "tv_vip_status": 0, + "tv_vip_pay_type": 0, + "vipType": 1, + "vipStatus": 0 + }, + "is_senior_member": 0 + }, + "space": { + "s_img": "http://i1.hdslb.com/bfs/space/768cc4fd97618cf589d23c2711a1d1a729f42235.png", + "l_img": "http://i1.hdslb.com/bfs/space/cb1c3ef50e22b6096fde67febe863494caefebad.png" + }, + "following": false, + "archive_count": 387, + "article_count": 0, + "follower": 66620, + "like_num": 964504 + }, + "Tags": [ + { + "tag_id": 117552, + "tag_name": "保加利亚妖王", + "cover": "http://i0.hdslb.com/bfs/tag/6828dc0fe5037e1c483d55704f529135d961cb2b.jpg", + "head_cover": "", + "content": "  保加利亚超级天王 Azis\r\n  Azis生于1978年3月7日,1999年正式出道。他的音乐融合保加利亚名族曲风chalga和pop、rap等元素,不过他惊艳的易装秀与浮夸的角色诠释才是他最为出名的地方。", + "short_content": "", + "type": 3, + "state": 0, + "ctime": 1436866637, + "count": { + "view": 0, + "use": 9033, + "atten": 5573 + }, + "is_atten": 0, + "likes": 1161, + "hates": 0, + "attribute": 1, + "liked": 0, + "hated": 0, + "extra_attr": 0, + "music_id": "", + "tag_type": "old_channel", + "is_activity": false, + "color": "", + "alpha": 0, + "is_season": false, + "subscribed_count": 5573, + "archive_count": "-", + "featured_count": 0, + "jump_url": "" + }, + { + "tag_id": 112503, + "tag_name": "保加利亚", + "cover": "", + "head_cover": "", + "content": "", + "short_content": "", + "type": 0, + "state": 0, + "ctime": 1436866637, + "count": { + "view": 0, + "use": 5350, + "atten": 161 + }, + "is_atten": 0, + "likes": 645, + "hates": 0, + "attribute": 1, + "liked": 0, + "hated": 0, + "extra_attr": 0, + "music_id": "", + "tag_type": "old_channel", + "is_activity": false, + "color": "", + "alpha": 0, + "is_season": false, + "subscribed_count": 161, + "archive_count": "-", + "featured_count": 0, + "jump_url": "" + }, + { + "tag_id": 2958988, + "tag_name": "Азис", + "cover": "", + "head_cover": "", + "content": "", + "short_content": "", + "type": 1, + "state": 0, + "ctime": 1482071386, + "count": { + "view": 0, + "use": 35, + "atten": 59 + }, + "is_atten": 0, + "likes": 485, + "hates": 0, + "attribute": 1, + "liked": 0, + "hated": 0, + "extra_attr": 0, + "music_id": "", + "tag_type": "old_channel", + "is_activity": false, + "color": "", + "alpha": 0, + "is_season": false, + "subscribed_count": 59, + "archive_count": "-", + "featured_count": 0, + "jump_url": "" + }, + { + "tag_id": 2622213, + "tag_name": "azis", + "cover": "", + "head_cover": "", + "content": "", + "short_content": "", + "type": 0, + "state": 0, + "ctime": 1473763704, + "count": { + "view": 0, + "use": 274, + "atten": 86 + }, + "is_atten": 0, + "likes": 420, + "hates": 0, + "attribute": 1, + "liked": 0, + "hated": 0, + "extra_attr": 0, + "music_id": "", + "tag_type": "old_channel", + "is_activity": false, + "color": "", + "alpha": 0, + "is_season": false, + "subscribed_count": 86, + "archive_count": "-", + "featured_count": 0, + "jump_url": "" + }, + { + "tag_id": 2512079, + "tag_name": "mv", + "cover": "", + "head_cover": "", + "content": "", + "short_content": "", + "type": 0, + "state": 0, + "ctime": 1471434073, + "count": { + "view": 0, + "use": 73766, + "atten": 282 + }, + "is_atten": 0, + "likes": 384, + "hates": 0, + "attribute": 1, + "liked": 0, + "hated": 0, + "extra_attr": 0, + "music_id": "", + "tag_type": "old_channel", + "is_activity": false, + "color": "", + "alpha": 0, + "is_season": false, + "subscribed_count": 282, + "archive_count": "-", + "featured_count": 0, + "jump_url": "" + } + ], + "Reply": { + "page": { + "acount": 176677, + "count": 148385, + "num": 1, + "size": 3 + }, + "replies": [ + { + "rpid": 2509627306, + "oid": 170001, + "type": 1, + "mid": 7827964, + "root": 0, + "parent": 0, + "dialog": 0, + "count": 148, + "rcount": 105, + "floor": 78866, + "state": 0, + "fansgrade": 0, + "attr": 1024, + "ctime": 1583941947, + "like": 8120, + "action": 0, + "content": { + "message": "刻在dna里的av号", + "plat": 0, + "device": "" + }, + "replies": null, + "assist": 0, + "show_follow": false + }, + { + "rpid": 1057984105, + "oid": 170001, + "type": 1, + "mid": 241215549, + "root": 0, + "parent": 0, + "dialog": 0, + "count": 51, + "rcount": 43, + "floor": 62770, + "state": 0, + "fansgrade": 0, + "attr": 0, + "ctime": 1536388260, + "like": 11437, + "action": 0, + "content": { + "message": "这首歌的mv讲的是在未来的2050年,世界水资源缺乏,洗个澡都要缴纳大量的金钱并且还有预约,但有几个男人有幸掌握了部分水资源,为了节约水资源,他们洗澡的时候都在一起洗,哪怕这会让自己难堪,于是其中的妖王突然灵光一现创造出了这首《hop》来警示后人。", + "plat": 0, + "device": "" + }, + "replies": null, + "assist": 0, + "show_follow": false + }, + { + "rpid": 29939707, + "oid": 170001, + "type": 1, + "mid": 2923193, + "root": 0, + "parent": 0, + "dialog": 0, + "count": 41, + "rcount": 33, + "floor": 3125, + "state": 0, + "fansgrade": 0, + "attr": 0, + "ctime": 1430309717, + "like": 7924, + "action": 0, + "content": { + "message": "感觉好棒……女人都演绎不出来的那种妩媚……azis这种不分性别的妩媚真称得上艺术了虽然一般人接受起来很难", + "plat": 0, + "device": "" + }, + "replies": null, + "assist": 0, + "show_follow": false + } + ] + }, + "Related": [ + { + "aid": 34812433, + "videos": 1, + "tid": 130, + "tname": "音乐综合", + "copyright": 2, + "pic": "http://i2.hdslb.com/bfs/archive/149aed759c1231948c468c412f67c634e05a4974.jpg", + "title": "怎么办,妖王开始男人了", + "pubdate": 1540723612, + "ctime": 1540723612, + "desc": "QQ音乐", + "state": 0, + "duration": 303, + "rights": { + "bp": 0, + "elec": 0, + "download": 0, + "movie": 0, + "pay": 0, + "hd5": 0, + "no_reprint": 0, + "autoplay": 1, + "ugc_pay": 0, + "is_cooperation": 0, + "ugc_pay_preview": 0, + "no_background": 0, + "arc_pay": 0, + "pay_free_watch": 0 + }, + "owner": { + "mid": 229574099, + "name": "清尘埃落定", + "face": "http://i2.hdslb.com/bfs/face/4b34377580cf12eabe6bc568967dfe22f981c042.jpg" + }, + "stat": { + "aid": 34812433, + "view": 1053726, + "danmaku": 501, + "reply": 497, + "favorite": 4591, + "coin": 273, + "share": 732, + "now_rank": 0, + "his_rank": 0, + "like": 23321, + "dislike": 0 + }, + "dynamic": "#音乐选集##保加利亚#", + "cid": 60984624, + "dimension": { + "width": 640, + "height": 360, + "rotate": 0 + }, + "short_link": "https://b23.tv/BV1Qb411N7Ez", + "short_link_v2": "https://b23.tv/BV1Qb411N7Ez", + "up_from_v2": 8, + "bvid": "BV1Qb411N7Ez", + "season_type": 0, + "is_ogv": false, + "ogv_info": null, + "rcmd_reason": "" + }, + { + "aid": 543744396, + "videos": 1, + "tid": 138, + "tname": "搞笑", + "copyright": 2, + "pic": "http://i0.hdslb.com/bfs/archive/36f77d7478c18c95f50b9d9c22ba86fb58d0b760.jpg", + "title": "当van听到了hop会发生什么?", + "pubdate": 1610800809, + "ctime": 1610800809, + "desc": "vanbilibili直播间\nvan一边看mv一边把歌听完的……说这mv太奇怪猎奇了", + "state": 0, + "duration": 231, + "rights": { + "bp": 0, + "elec": 0, + "download": 0, + "movie": 0, + "pay": 0, + "hd5": 0, + "no_reprint": 0, + "autoplay": 1, + "ugc_pay": 0, + "is_cooperation": 0, + "ugc_pay_preview": 0, + "no_background": 0, + "arc_pay": 0, + "pay_free_watch": 0 + }, + "owner": { + "mid": 390902077, + "name": "花街----", + "face": "http://i1.hdslb.com/bfs/face/54221846311730ce79129ba3c1f3580c7f072182.jpg" + }, + "stat": { + "aid": 543744396, + "view": 483187, + "danmaku": 336, + "reply": 466, + "favorite": 4281, + "coin": 289, + "share": 3316, + "now_rank": 0, + "his_rank": 0, + "like": 14116, + "dislike": 0 + }, + "dynamic": "", + "cid": 283284930, + "dimension": { + "width": 720, + "height": 1520, + "rotate": 0 + }, + "short_link": "https://b23.tv/BV1wv4y1f7wX", + "short_link_v2": "https://b23.tv/BV1wv4y1f7wX", + "bvid": "BV1wv4y1f7wX", + "season_type": 0, + "is_ogv": false, + "ogv_info": null, + "rcmd_reason": "" + }, + { + "aid": 54864793, + "videos": 2, + "tid": 138, + "tname": "搞笑", + "copyright": 1, + "pic": "http://i0.hdslb.com/bfs/archive/c3231251ade65cdb35f40f96b9651f13d4355fc4.jpg", + "title": "全B站模仿保加利亚妖王最像的人", + "pubdate": 1559913751, + "ctime": 1559913020, + "desc": "求点赞! 求关注! 求投币! \n模型:平安夜的噩梦&@i-fox\n动作自制(做的太渣了,想要的就拿走吧)\n 链接:https://pan.baidu.com/s/1kZZHiAY4_pIwds1F_CCj1A \n 提取码:g1yp", + "state": 0, + "duration": 218, + "rights": { + "bp": 0, + "elec": 0, + "download": 0, + "movie": 0, + "pay": 0, + "hd5": 0, + "no_reprint": 1, + "autoplay": 1, + "ugc_pay": 0, + "is_cooperation": 0, + "ugc_pay_preview": 0, + "no_background": 0, + "arc_pay": 0, + "pay_free_watch": 0 + }, + "owner": { + "mid": 93755540, + "name": "空梦゛", + "face": "http://i2.hdslb.com/bfs/face/00ac5eec49917b23353a015a3af5af109f82721f.jpg" + }, + "stat": { + "aid": 54864793, + "view": 904172, + "danmaku": 1863, + "reply": 574, + "favorite": 2390, + "coin": 646, + "share": 400, + "now_rank": 0, + "his_rank": 0, + "like": 14770, + "dislike": 0 + }, + "dynamic": "#搞笑视频##恶搞##保加利亚妖王#", + "cid": 95953526, + "dimension": { + "width": 1920, + "height": 1080, + "rotate": 0 + }, + "short_link": "https://b23.tv/BV1o4411K7Sp", + "short_link_v2": "https://b23.tv/BV1o4411K7Sp", + "bvid": "BV1o4411K7Sp", + "season_type": 0, + "is_ogv": false, + "ogv_info": null, + "rcmd_reason": "" + }, + { + "aid": 98749955, + "videos": 1, + "tid": 122, + "tname": "野生技能协会", + "copyright": 1, + "pic": "http://i1.hdslb.com/bfs/archive/ff7765a1b049b72dd5acf1f74c8897f4807fd03d.png", + "title": "【打脸01】AV号为啥改成BV号?AV170001为例!AV号BV号有啥区别?", + "pubdate": 1585046601, + "ctime": 1585046601, + "desc": "欢迎收看lzr的打脸频道(雾)\n三连三连三连 \r\nUP为了这个视频连杭盖作业都没写\r\n球球你们了QAQ\r\n附:这个视频av号 av98749955", + "state": 0, + "duration": 335, + "rights": { + "bp": 0, + "elec": 0, + "download": 0, + "movie": 0, + "pay": 0, + "hd5": 0, + "no_reprint": 1, + "autoplay": 1, + "ugc_pay": 0, + "is_cooperation": 0, + "ugc_pay_preview": 0, + "no_background": 0, + "arc_pay": 0, + "pay_free_watch": 0 + }, + "owner": { + "mid": 24644307, + "name": "阿穆尔的小熊", + "face": "http://i0.hdslb.com/bfs/face/bff7059fcf5455e57c608a71522dab3e19220b59.jpg" + }, + "stat": { + "aid": 98749955, + "view": 18610, + "danmaku": 53, + "reply": 119, + "favorite": 121, + "coin": 27, + "share": 15, + "now_rank": 0, + "his_rank": 0, + "like": 500, + "dislike": 0 + }, + "dynamic": "", + "cid": 168567572, + "dimension": { + "width": 1920, + "height": 1080, + "rotate": 0 + }, + "short_link": "https://b23.tv/BV1f7411m7XK", + "short_link_v2": "https://b23.tv/BV1f7411m7XK", + "bvid": "BV1f7411m7XK", + "season_type": 0, + "is_ogv": false, + "ogv_info": null, + "rcmd_reason": "" + }, + { + "aid": 370010949, + "videos": 2, + "tid": 138, + "tname": "搞笑", + "copyright": 2, + "pic": "http://i1.hdslb.com/bfs/archive/8339e4a40c1a10cfb0e0abe0bc4ef6ecbd61a45f.jpg", + "title": "黑人抬棺原版视频", + "pubdate": 1585735296, + "ctime": 1585735296, + "desc": "up主关于本条视频收入的说明戳:BV1YK41157dT\n转载自https://www.youtube.com/watch?v=b3Y_9bTRGVg\n其他:抖棺(肩)舞:BV1kt4y127Ee\n苏卡棺裂:BV1GZ4y1x7mZ\n我是比划,感谢您的观看感谢点赞感谢一切!改天一定陪老铁好好比划比划!(咕)\n(建议大家戳一下宝藏2p)", + "state": 0, + "duration": 200, + "rights": { + "bp": 0, + "elec": 0, + "download": 0, + "movie": 0, + "pay": 0, + "hd5": 0, + "no_reprint": 0, + "autoplay": 1, + "ugc_pay": 0, + "is_cooperation": 0, + "ugc_pay_preview": 0, + "no_background": 0, + "arc_pay": 0, + "pay_free_watch": 0 + }, + "owner": { + "mid": 479724334, + "name": "比划大魔王", + "face": "http://i1.hdslb.com/bfs/face/910e60494f7deff1b3bdcf1eaaead6779d77bac5.jpg" + }, + "stat": { + "aid": 370010949, + "view": 60997787, + "danmaku": 448899, + "reply": 47839, + "favorite": 982387, + "coin": 422190, + "share": 763221, + "now_rank": 0, + "his_rank": 2, + "like": 1769280, + "dislike": 0 + }, + "dynamic": "", + "cid": 172423516, + "dimension": { + "width": 1280, + "height": 720, + "rotate": 0 + }, + "short_link": "https://b23.tv/BV1NZ4y1j7nw", + "short_link_v2": "https://b23.tv/BV1NZ4y1j7nw", + "bvid": "BV1NZ4y1j7nw", + "season_type": 0, + "is_ogv": false, + "ogv_info": null, + "rcmd_reason": "" + }, + { + "aid": 7250151, + "videos": 1, + "tid": 130, + "tname": "音乐综合", + "copyright": 2, + "pic": "http://i2.hdslb.com/bfs/archive/86af45f48db9f136411d11362870394787779d93.jpg", + "title": "我要唤醒你们曾一度被170001所支配的恐惧", + "pubdate": 1480076771, + "ctime": 1497436787, + "desc": "视频的一段脱节了 嗯 没了", + "state": 0, + "duration": 211, + "rights": { + "bp": 0, + "elec": 0, + "download": 0, + "movie": 0, + "pay": 0, + "hd5": 0, + "no_reprint": 0, + "autoplay": 1, + "ugc_pay": 0, + "is_cooperation": 0, + "ugc_pay_preview": 0, + "no_background": 0, + "arc_pay": 0, + "pay_free_watch": 0 + }, + "owner": { + "mid": 37333418, + "name": "ZLYHX", + "face": "http://i2.hdslb.com/bfs/face/69e68acd37fc2a5085f44fdf9982029ec85e8abe.jpg" + }, + "stat": { + "aid": 7250151, + "view": 170228, + "danmaku": 244, + "reply": 84, + "favorite": 561, + "coin": 80, + "share": 1806, + "now_rank": 0, + "his_rank": 0, + "like": 1572, + "dislike": 0 + }, + "dynamic": "", + "cid": 11852714, + "dimension": { + "width": 640, + "height": 360, + "rotate": 0 + }, + "short_link": "https://b23.tv/BV1ws411s7Xz", + "short_link_v2": "https://b23.tv/BV1ws411s7Xz", + "bvid": "BV1ws411s7Xz", + "season_type": 0, + "is_ogv": false, + "ogv_info": null, + "rcmd_reason": "" + }, + { + "aid": 668672894, + "videos": 1, + "tid": 138, + "tname": "搞笑", + "copyright": 1, + "pic": "http://i2.hdslb.com/bfs/archive/78376377b1db7026dc63a6f6a8c41cba7992c5cc.jpg", + "title": "有人跟我要网站,我把AV170001给了他", + "pubdate": 1593448525, + "ctime": 1593448525, + "desc": "有人跟我要网站,我让他下了个B站,还让他去搜AV170001", + "state": 0, + "duration": 23, + "rights": { + "bp": 0, + "elec": 0, + "download": 0, + "movie": 0, + "pay": 0, + "hd5": 0, + "no_reprint": 1, + "autoplay": 1, + "ugc_pay": 0, + "is_cooperation": 0, + "ugc_pay_preview": 0, + "no_background": 0, + "arc_pay": 0, + "pay_free_watch": 0 + }, + "owner": { + "mid": 488613042, + "name": "蒹葭3588", + "face": "http://i0.hdslb.com/bfs/face/475c9add5bc619091d8979cfe7f4a7ab5af2c865.jpg" + }, + "stat": { + "aid": 668672894, + "view": 37693, + "danmaku": 4, + "reply": 54, + "favorite": 16, + "coin": 2, + "share": 3, + "now_rank": 0, + "his_rank": 0, + "like": 296, + "dislike": 0 + }, + "dynamic": "#哲学##AV##妖王#", + "cid": 207235285, + "dimension": { + "width": 1080, + "height": 1920, + "rotate": 0 + }, + "short_link": "https://b23.tv/BV1Ka4y1e7k3", + "short_link_v2": "https://b23.tv/BV1Ka4y1e7k3", + "bvid": "BV1Ka4y1e7k3", + "season_type": 0, + "is_ogv": false, + "ogv_info": null, + "rcmd_reason": "" + }, + { + "aid": 631557307, + "videos": 1, + "tid": 193, + "tname": "MV", + "copyright": 2, + "pic": "http://i2.hdslb.com/bfs/archive/eafb857ea914589e3830a218d3820e063fb1751c.jpg", + "title": "Hop(高清无水印)", + "pubdate": 1625921694, + "ctime": 1625920960, + "desc": "https://m.youtube.com/watch?v=P9sQZLtsfp8", + "state": 0, + "duration": 231, + "rights": { + "bp": 0, + "elec": 0, + "download": 0, + "movie": 0, + "pay": 0, + "hd5": 0, + "no_reprint": 0, + "autoplay": 1, + "ugc_pay": 0, + "is_cooperation": 0, + "ugc_pay_preview": 0, + "no_background": 0, + "arc_pay": 0, + "pay_free_watch": 0 + }, + "owner": { + "mid": 404880090, + "name": "忆-画", + "face": "http://i0.hdslb.com/bfs/face/member/noface.jpg" + }, + "stat": { + "aid": 631557307, + "view": 600212, + "danmaku": 5332, + "reply": 627, + "favorite": 7258, + "coin": 1405, + "share": 16012, + "now_rank": 0, + "his_rank": 0, + "like": 13572, + "dislike": 0 + }, + "dynamic": "", + "cid": 367618065, + "dimension": { + "width": 1280, + "height": 576, + "rotate": 0 + }, + "short_link": "https://b23.tv/BV1Qb4y1r7ig", + "short_link_v2": "https://b23.tv/BV1Qb4y1r7ig", + "up_from_v2": 35, + "bvid": "BV1Qb4y1r7ig", + "season_type": 0, + "is_ogv": false, + "ogv_info": null, + "rcmd_reason": "" + }, + { + "aid": 456093155, + "videos": 1, + "tid": 59, + "tname": "演奏", + "copyright": 1, + "pic": "http://i2.hdslb.com/bfs/archive/9c160af2907ba2c161d565a99e61032ba72868ff.png", + "title": "太羞耻了!敢于琴行挑战演奏《Hop》!", + "pubdate": 1592883074, + "ctime": 1592883074, + "desc": "太羞耻了!敢于琴行挑战演奏《Hop》! Hop改编版", + "state": 0, + "duration": 168, + "rights": { + "bp": 0, + "elec": 0, + "download": 0, + "movie": 0, + "pay": 0, + "hd5": 1, + "no_reprint": 1, + "autoplay": 1, + "ugc_pay": 0, + "is_cooperation": 0, + "ugc_pay_preview": 0, + "no_background": 0, + "arc_pay": 0, + "pay_free_watch": 0 + }, + "owner": { + "mid": 13677047, + "name": "Piano莱特", + "face": "http://i2.hdslb.com/bfs/face/edf6a0ae7dfe9adb5e8d5e813a69455554931c73.jpg" + }, + "stat": { + "aid": 456093155, + "view": 1268344, + "danmaku": 3608, + "reply": 1772, + "favorite": 14046, + "coin": 7240, + "share": 4737, + "now_rank": 0, + "his_rank": 0, + "like": 70590, + "dislike": 0 + }, + "dynamic": "", + "cid": 204234033, + "dimension": { + "width": 3840, + "height": 2160, + "rotate": 0 + }, + "short_link": "https://b23.tv/BV1r5411W71r", + "short_link_v2": "https://b23.tv/BV1r5411W71r", + "bvid": "BV1r5411W71r", + "season_type": 0, + "is_ogv": false, + "ogv_info": null, + "rcmd_reason": "" + }, + { + "aid": 56261839, + "videos": 1, + "tid": 21, + "tname": "日常", + "copyright": 1, + "pic": "http://i0.hdslb.com/bfs/archive/2ecd40c61c6031fda0ece8c098724b9bc88ff89d.jpg", + "title": "当你开启了青少年模式并搜索av170001会发生什么事", + "pubdate": 1561080121, + "ctime": 1561080121, + "desc": "我莫得简介", + "state": 0, + "duration": 80, + "rights": { + "bp": 0, + "elec": 0, + "download": 0, + "movie": 0, + "pay": 0, + "hd5": 1, + "no_reprint": 1, + "autoplay": 1, + "ugc_pay": 0, + "is_cooperation": 0, + "ugc_pay_preview": 0, + "no_background": 0, + "arc_pay": 0, + "pay_free_watch": 0 + }, + "owner": { + "mid": 305523767, + "name": "空城玄亦", + "face": "http://i2.hdslb.com/bfs/face/a5838c33eeb1b19f04a2967d26bb8b323834ca5e.jpg" + }, + "stat": { + "aid": 56261839, + "view": 553812, + "danmaku": 728, + "reply": 593, + "favorite": 754, + "coin": 386, + "share": 78, + "now_rank": 0, + "his_rank": 0, + "like": 6616, + "dislike": 0 + }, + "dynamic": "#AV170001##妖王##HOP#", + "cid": 98331390, + "dimension": { + "width": 1920, + "height": 960, + "rotate": 0 + }, + "short_link": "https://b23.tv/BV15441137Xd", + "short_link_v2": "https://b23.tv/BV15441137Xd", + "up_from_v2": 8, + "pub_location": "浙江", + "bvid": "BV15441137Xd", + "season_type": 0, + "is_ogv": false, + "ogv_info": null, + "rcmd_reason": "" + }, + { + "aid": 88606863, + "videos": 1, + "tid": 138, + "tname": "搞笑", + "copyright": 1, + "pic": "http://i2.hdslb.com/bfs/archive/f6d607625938ba5bdada81f7ae4c59e43852d57c.jpg", + "title": "妖王被黑得最惨的一次!用营销号的方式打开av170001", + "pubdate": 1581565668, + "ctime": 1581565669, + "desc": "素材:av170001\n点赞点赞点赞点赞点赞点赞点赞点赞点赞点赞点赞点赞点赞点赞点赞点赞点赞点赞点赞点赞点赞点赞点赞点赞点赞点赞点赞点赞点赞点赞点赞点赞点赞点赞点赞点赞点赞点赞点赞点赞点赞点赞点赞点赞点赞点赞点赞点赞点赞点赞点赞点赞点赞点赞点赞点赞点赞点赞点赞点赞点赞点赞点赞点赞点赞点赞点赞点赞点赞点赞点赞点赞点赞点赞点赞点赞点赞点赞点赞点赞点赞点赞点赞点赞点赞点赞点赞点赞点赞点赞点赞点赞点赞点赞点赞点赞点赞点赞点赞点赞点赞点赞点赞点赞点赞点赞点赞点赞点赞点赞点赞点赞点赞点赞点赞点赞点赞", + "state": 0, + "duration": 60, + "mission_id": 12642, + "rights": { + "bp": 0, + "elec": 0, + "download": 0, + "movie": 0, + "pay": 0, + "hd5": 0, + "no_reprint": 1, + "autoplay": 1, + "ugc_pay": 0, + "is_cooperation": 0, + "ugc_pay_preview": 0, + "no_background": 0, + "arc_pay": 0, + "pay_free_watch": 0 + }, + "owner": { + "mid": 322628997, + "name": "湖畔者_Lynn", + "face": "http://i0.hdslb.com/bfs/face/a43fffdd14e81e992e570fce859351e7bace0ee8.jpg" + }, + "stat": { + "aid": 88606863, + "view": 826873, + "danmaku": 3047, + "reply": 5059, + "favorite": 6072, + "coin": 3274, + "share": 3742, + "now_rank": 0, + "his_rank": 0, + "like": 83644, + "dislike": 0 + }, + "dynamic": "#bilibili新星计划##HOP##AV170001#", + "cid": 151362415, + "dimension": { + "width": 1920, + "height": 1072, + "rotate": 0 + }, + "short_link": "https://b23.tv/BV1E741137Pb", + "short_link_v2": "https://b23.tv/BV1E741137Pb", + "bvid": "BV1E741137Pb", + "season_type": 0, + "is_ogv": false, + "ogv_info": null, + "rcmd_reason": "" + }, + { + "aid": 200010082, + "videos": 1, + "tid": 138, + "tname": "搞笑", + "copyright": 1, + "pic": "http://i1.hdslb.com/bfs/archive/588c51ca3f8f309abeab0e5aaa4ab60dcb3e15a6.jpg", + "title": "还记得AV17001的内容吗?", + "pubdate": 1585492555, + "ctime": 1585492555, + "desc": "-", + "state": 0, + "duration": 428, + "rights": { + "bp": 0, + "elec": 0, + "download": 0, + "movie": 0, + "pay": 0, + "hd5": 1, + "no_reprint": 1, + "autoplay": 1, + "ugc_pay": 0, + "is_cooperation": 0, + "ugc_pay_preview": 0, + "no_background": 0, + "arc_pay": 0, + "pay_free_watch": 0 + }, + "owner": { + "mid": 243683327, + "name": "可爱的豹二A6", + "face": "http://i2.hdslb.com/bfs/face/1b8debc465485bc84db4d0c0936ed7692b185b5b.jpg" + }, + "stat": { + "aid": 200010082, + "view": 30797, + "danmaku": 4, + "reply": 31, + "favorite": 19, + "coin": 6, + "share": 15, + "now_rank": 0, + "his_rank": 0, + "like": 282, + "dislike": 0 + }, + "dynamic": "#AV170001##保加利亚妖王##全程高能#", + "cid": 171166760, + "dimension": { + "width": 2160, + "height": 1080, + "rotate": 0 + }, + "short_link": "https://b23.tv/BV1hz411h7KH", + "short_link_v2": "https://b23.tv/BV1hz411h7KH", + "bvid": "BV1hz411h7KH", + "season_type": 0, + "is_ogv": false, + "ogv_info": null, + "rcmd_reason": "" + }, + { + "aid": 5164105, + "videos": 1, + "tid": 193, + "tname": "MV", + "copyright": 2, + "pic": "http://i2.hdslb.com/bfs/archive/149aed759c1231948c468c412f67c634e05a4974.jpg", + "title": "保加利亚妖王AZIS单曲HABIBI新版MV", + "pubdate": 1467381090, + "ctime": 1497380583, + "desc": "www.youtube.com/watch?v=ZmyVZRLOw3M AZIS - HABIBI (latino version) _ Азис - Хабиби (латино версия)", + "state": 0, + "duration": 266, + "rights": { + "bp": 0, + "elec": 0, + "download": 0, + "movie": 0, + "pay": 0, + "hd5": 0, + "no_reprint": 0, + "autoplay": 1, + "ugc_pay": 0, + "is_cooperation": 0, + "ugc_pay_preview": 0, + "no_background": 0, + "arc_pay": 0, + "pay_free_watch": 0 + }, + "owner": { + "mid": 122541, + "name": "冰封.虾子", + "face": "http://i0.hdslb.com/bfs/face/40c46ee74dd6ea33d46c38cd6083e6a1286aa482.gif" + }, + "stat": { + "aid": 5164105, + "view": 633795, + "danmaku": 2134, + "reply": 811, + "favorite": 7371, + "coin": 1639, + "share": 3328, + "now_rank": 0, + "his_rank": 0, + "like": 9908, + "dislike": 0 + }, + "dynamic": "", + "cid": 8392273, + "dimension": { + "width": 640, + "height": 360, + "rotate": 0 + }, + "short_link": "https://b23.tv/BV1zs411v7K5", + "short_link_v2": "https://b23.tv/BV1zs411v7K5", + "bvid": "BV1zs411v7K5", + "season_type": 0, + "is_ogv": false, + "ogv_info": null, + "rcmd_reason": "" + }, + { + "aid": 85804489, + "videos": 1, + "tid": 27, + "tname": "综合", + "copyright": 1, + "pic": "http://i1.hdslb.com/bfs/archive/d513318c0e5fa55580b7a1f47b6ce5c8fd8959d2.jpg", + "title": "av170001回来了!'!", + "pubdate": 1580391994, + "ctime": 1580391994, + "desc": "-", + "state": 0, + "duration": 20, + "mission_id": 12642, + "rights": { + "bp": 0, + "elec": 0, + "download": 0, + "movie": 0, + "pay": 0, + "hd5": 0, + "no_reprint": 1, + "autoplay": 1, + "ugc_pay": 0, + "is_cooperation": 0, + "ugc_pay_preview": 0, + "no_background": 0, + "arc_pay": 0, + "pay_free_watch": 0 + }, + "owner": { + "mid": 251852454, + "name": "胡桃老婆赛高哒", + "face": "http://i0.hdslb.com/bfs/face/b91aa1a2c50d9273d6c4c8cbf340ca34e8829642.jpg" + }, + "stat": { + "aid": 85804489, + "view": 54551, + "danmaku": 5, + "reply": 83, + "favorite": 31, + "coin": 6, + "share": 5, + "now_rank": 0, + "his_rank": 0, + "like": 190, + "dislike": 0 + }, + "dynamic": "#bilibili新星计划##AV170001##保加利亚妖王#", + "cid": 146661863, + "dimension": { + "width": 720, + "height": 1440, + "rotate": 0 + }, + "short_link": "https://b23.tv/BV1N7411B7Bq", + "short_link_v2": "https://b23.tv/BV1N7411B7Bq", + "bvid": "BV1N7411B7Bq", + "season_type": 0, + "is_ogv": false, + "ogv_info": null, + "rcmd_reason": "" + }, + { + "aid": 626849708, + "videos": 1, + "tid": 26, + "tname": "音MAD", + "copyright": 1, + "pic": "http://i2.hdslb.com/bfs/archive/701dd594c9060c7f6aaffc634ba8694288f02e45.jpg", + "title": "调音师的准确率已达170001%", + "pubdate": 1598149834, + "ctime": 1598102271, + "desc": "自制【猫鼠电音】Hop\n原曲:Hop-Azis(其音乐融合保加利亚名族曲风chalga和pop、rap等元素)\n感觉以前做音mad只为了还原原曲 太呆板无趣\n于是就做了这样一次尝试以求改观\n使用此标题已经过 @球球特别大 允许\n\n#猫鼠电音#5", + "state": 0, + "duration": 91, + "mission_id": 14023, + "rights": { + "bp": 0, + "elec": 0, + "download": 0, + "movie": 0, + "pay": 0, + "hd5": 0, + "no_reprint": 1, + "autoplay": 1, + "ugc_pay": 0, + "is_cooperation": 0, + "ugc_pay_preview": 0, + "no_background": 0, + "arc_pay": 0, + "pay_free_watch": 0 + }, + "owner": { + "mid": 34611143, + "name": "致明笑笑", + "face": "http://i2.hdslb.com/bfs/face/b8fd466c7a64a2f2baf0f38f1ff5a1ab8fc1e1fb.jpg" + }, + "stat": { + "aid": 626849708, + "view": 144490, + "danmaku": 370, + "reply": 388, + "favorite": 2865, + "coin": 1616, + "share": 387, + "now_rank": 0, + "his_rank": 0, + "like": 11937, + "dislike": 0 + }, + "dynamic": "#鬼畜大赏2020-音MAD##猫和老鼠##保加利亚妖王#", + "cid": 227521154, + "dimension": { + "width": 1280, + "height": 720, + "rotate": 0 + }, + "short_link": "https://b23.tv/BV1Xt4y1U79t", + "short_link_v2": "https://b23.tv/BV1Xt4y1U79t", + "bvid": "BV1Xt4y1U79t", + "season_type": 0, + "is_ogv": false, + "ogv_info": null, + "rcmd_reason": "" + }, + { + "aid": 257143502, + "videos": 1, + "tid": 21, + "tname": "日常", + "copyright": 1, + "pic": "http://i0.hdslb.com/bfs/archive/105015bbeab86dd32e8341ff2a53276f1ab5d7a2.jpg", + "title": "在b站最没存在感的国家是谁?各国相关最高播放的视频是什么?", + "pubdate": 1654327813, + "ctime": 1654327813, + "desc": "本来视频是按播放统计,但撒贝宁/马里奥/黑山大叔 比 贝宁/马里/黑山 还火2333333,所以以标签为准。\n估计视频播放过不了1万5 ;)", + "state": 0, + "duration": 661, + "rights": { + "bp": 0, + "elec": 0, + "download": 0, + "movie": 0, + "pay": 0, + "hd5": 0, + "no_reprint": 1, + "autoplay": 1, + "ugc_pay": 0, + "is_cooperation": 0, + "ugc_pay_preview": 0, + "no_background": 0, + "arc_pay": 0, + "pay_free_watch": 0 + }, + "owner": { + "mid": 544503411, + "name": "沙琪玛er", + "face": "http://i0.hdslb.com/bfs/face/b03c633eb227556b38930aab4d6cb94ab463cd2f.jpg" + }, + "stat": { + "aid": 257143502, + "view": 163449, + "danmaku": 1384, + "reply": 572, + "favorite": 2073, + "coin": 769, + "share": 111, + "now_rank": 0, + "his_rank": 0, + "like": 9576, + "dislike": 0 + }, + "dynamic": "估计播放过不了1万5 ;)", + "cid": 737740549, + "dimension": { + "width": 1920, + "height": 1080, + "rotate": 0 + }, + "season_id": 462986, + "short_link": "https://b23.tv/BV18Y411g7co", + "short_link_v2": "https://b23.tv/BV18Y411g7co", + "first_frame": "http://i1.hdslb.com/bfs/storyff/n220604a23d6t17is08tz01wjsgiyhzg_firsti.jpg", + "bvid": "BV18Y411g7co", + "season_type": 1, + "is_ogv": false, + "ogv_info": null, + "rcmd_reason": "" + }, + { + "aid": 627815773, + "videos": 1, + "tid": 27, + "tname": "综合", + "copyright": 1, + "pic": "http://i1.hdslb.com/bfs/archive/0d16d4fb0ec25f0c4dd2fff7f0a7de3ac789e5b7.jpg", + "title": "【开启新世界的大门】整活派派反被整——被「HOP」震惊到神隐", + "pubdate": 1605237196, + "ctime": 1605237196, + "desc": "20201112B限\n--\n翻译:長門準\n时轴:PY\n校对:長門準\n剪辑:PY\n------------------------------------------------------\n箱推粉丝7群:1132670270\n审核群:685228392", + "state": 0, + "duration": 392, + "rights": { + "bp": 0, + "elec": 0, + "download": 0, + "movie": 0, + "pay": 0, + "hd5": 0, + "no_reprint": 1, + "autoplay": 1, + "ugc_pay": 0, + "is_cooperation": 0, + "ugc_pay_preview": 0, + "no_background": 0, + "arc_pay": 0, + "pay_free_watch": 0 + }, + "owner": { + "mid": 421347849, + "name": "白百合リリィOfficial", + "face": "http://i0.hdslb.com/bfs/face/236f74251b9ac820908db1e0d2f09d46057cb7fe.jpg" + }, + "stat": { + "aid": 627815773, + "view": 270692, + "danmaku": 711, + "reply": 227, + "favorite": 2203, + "coin": 1044, + "share": 250, + "now_rank": 0, + "his_rank": 0, + "like": 9924, + "dislike": 0 + }, + "dynamic": "", + "cid": 255272814, + "dimension": { + "width": 1280, + "height": 720, + "rotate": 0 + }, + "short_link": "https://b23.tv/BV13t4y1v7XG", + "short_link_v2": "https://b23.tv/BV13t4y1v7XG", + "bvid": "BV13t4y1v7XG", + "season_type": 0, + "is_ogv": false, + "ogv_info": null, + "rcmd_reason": "" + }, + { + "aid": 91287627, + "videos": 1, + "tid": 22, + "tname": "鬼畜调教", + "copyright": 1, + "pic": "http://i2.hdslb.com/bfs/archive/07e972b7324b68facb2e3139821b477ab9f0e792.jpg", + "title": "我不信这么高♂雅的作品破不了100播放量?!", + "pubdate": 1582518913, + "ctime": 1582518913, + "desc": "爱咋咋地!!!!!!!不限流就烧高香了!!!!!!", + "state": 0, + "duration": 107, + "mission_id": 12868, + "rights": { + "bp": 0, + "elec": 0, + "download": 0, + "movie": 0, + "pay": 0, + "hd5": 0, + "no_reprint": 1, + "autoplay": 1, + "ugc_pay": 0, + "is_cooperation": 0, + "ugc_pay_preview": 0, + "no_background": 0, + "arc_pay": 0, + "pay_free_watch": 0 + }, + "owner": { + "mid": 4915107, + "name": "初音ミつ", + "face": "http://i0.hdslb.com/bfs/face/14887f1d272b1417484a109509c25835e6b0c0d5.jpg" + }, + "stat": { + "aid": 91287627, + "view": 5231099, + "danmaku": 9183, + "reply": 11975, + "favorite": 82502, + "coin": 69857, + "share": 8328, + "now_rank": 0, + "his_rank": 38, + "like": 397712, + "dislike": 0 + }, + "dynamic": "#鬼畜调教##VAN##罗西尼#", + "cid": 155876336, + "dimension": { + "width": 720, + "height": 576, + "rotate": 0 + }, + "short_link": "https://b23.tv/BV127411M7HC", + "short_link_v2": "https://b23.tv/BV127411M7HC", + "bvid": "BV127411M7HC", + "season_type": 0, + "is_ogv": false, + "ogv_info": null, + "rcmd_reason": "" + }, + { + "aid": 327580733, + "videos": 1, + "tid": 17, + "tname": "单机游戏", + "copyright": 1, + "pic": "http://i1.hdslb.com/bfs/archive/014591d2f7f129c660bca88e6c5d38638a2a1ea7.jpg", + "title": "当我的世界种子输入AV170001会怎么样?", + "pubdate": 1585207605, + "ctime": 1585207605, + "desc": "给三连啊!\n\n♂♂♂♂\n♂♂♂♂\n♂♂♂♂\n♂♂♂♂♂♂♂♂\n♂♂♂♂", + "state": 0, + "duration": 102, + "rights": { + "bp": 0, + "elec": 0, + "download": 0, + "movie": 0, + "pay": 0, + "hd5": 0, + "no_reprint": 1, + "autoplay": 1, + "ugc_pay": 0, + "is_cooperation": 0, + "ugc_pay_preview": 0, + "no_background": 0, + "arc_pay": 0, + "pay_free_watch": 0 + }, + "owner": { + "mid": 416313100, + "name": "永不言弃的电路猫", + "face": "http://i1.hdslb.com/bfs/face/d70d22d6edc68bfc5d9c6a644de4513a8751eace.jpg" + }, + "stat": { + "aid": 327580733, + "view": 154520, + "danmaku": 329, + "reply": 424, + "favorite": 743, + "coin": 55, + "share": 30, + "now_rank": 0, + "his_rank": 0, + "like": 10134, + "dislike": 0 + }, + "dynamic": "#AV170001##我的世界##HOP#", + "cid": 169645787, + "dimension": { + "width": 640, + "height": 480, + "rotate": 0 + }, + "short_link": "https://b23.tv/BV1RA41187Tq", + "short_link_v2": "https://b23.tv/BV1RA41187Tq", + "bvid": "BV1RA41187Tq", + "season_type": 0, + "is_ogv": false, + "ogv_info": null, + "rcmd_reason": "" + }, + { + "aid": 4033926, + "videos": 1, + "tid": 22, + "tname": "鬼畜调教", + "copyright": 1, + "pic": "http://i0.hdslb.com/bfs/archive/f004d589847c604f5e3800ce99bced09ec7e20af.jpg", + "title": "【电音单曲】我是papi酱", + "pubdate": 1457267935, + "ctime": 1497423784, + "desc": "自制 这个集鬼畜与才华于一身的女人,成功地引起了我的注意。", + "state": 0, + "duration": 156, + "rights": { + "bp": 0, + "elec": 0, + "download": 0, + "movie": 0, + "pay": 0, + "hd5": 0, + "no_reprint": 0, + "autoplay": 1, + "ugc_pay": 0, + "is_cooperation": 0, + "ugc_pay_preview": 0, + "no_background": 0, + "arc_pay": 0, + "pay_free_watch": 0 + }, + "owner": { + "mid": 375375, + "name": "伊丽莎白鼠", + "face": "http://i0.hdslb.com/bfs/face/6c36ec15f6d7ddd9bdb558511521bd0256779e1c.jpg" + }, + "stat": { + "aid": 4033926, + "view": 43805807, + "danmaku": 468795, + "reply": 91630, + "favorite": 680262, + "coin": 716611, + "share": 194916, + "now_rank": 0, + "his_rank": 1, + "like": 882426, + "dislike": 0 + }, + "dynamic": "", + "cid": 6505773, + "dimension": { + "width": 640, + "height": 360, + "rotate": 0 + }, + "short_link": "https://b23.tv/BV1hs411Q7zf", + "short_link_v2": "https://b23.tv/BV1hs411Q7zf", + "bvid": "BV1hs411Q7zf", + "season_type": 0, + "is_ogv": false, + "ogv_info": null, + "rcmd_reason": "" + }, + { + "aid": 497521129, + "videos": 1, + "tid": 138, + "tname": "搞笑", + "copyright": 1, + "pic": "http://i0.hdslb.com/bfs/archive/593078d6f292fc241f6b68437976b74b5d601365.jpg", + "title": "当老师在钉钉放起hop♂", + "pubdate": 1586053391, + "ctime": 1586050521, + "desc": "妖王的直播: hop已结束。在直播过程中,观看人的摄像头全程关闭(仅连麦功能时可选择开启),感谢观看直播。直播回放正在生成中,稍后在“群设置-直播回放”中查看, 查看详情", + "state": 0, + "duration": 166, + "rights": { + "bp": 0, + "elec": 0, + "download": 0, + "movie": 0, + "pay": 0, + "hd5": 0, + "no_reprint": 1, + "autoplay": 1, + "ugc_pay": 0, + "is_cooperation": 0, + "ugc_pay_preview": 0, + "no_background": 0, + "arc_pay": 0, + "pay_free_watch": 0 + }, + "owner": { + "mid": 353603699, + "name": "群束竹令", + "face": "http://i2.hdslb.com/bfs/face/34b63faea602e0cd212f874de9db9ad4e01df9dc.jpg" + }, + "stat": { + "aid": 497521129, + "view": 286263, + "danmaku": 1269, + "reply": 306, + "favorite": 1682, + "coin": 165, + "share": 620, + "now_rank": 0, + "his_rank": 0, + "like": 13048, + "dislike": 0 + }, + "dynamic": "#HOP##钉钉#", + "cid": 174065931, + "dimension": { + "width": 1536, + "height": 720, + "rotate": 0 + }, + "short_link": "https://b23.tv/BV1rK41177Qd", + "short_link_v2": "https://b23.tv/BV1rK41177Qd", + "bvid": "BV1rK41177Qd", + "season_type": 0, + "is_ogv": false, + "ogv_info": null, + "rcmd_reason": "" + }, + { + "aid": 3904091, + "videos": 1, + "tid": 238, + "tname": "运动综合", + "copyright": 2, + "pic": "http://i1.hdslb.com/bfs/archive/2cccf431ac5677c38535ac421daa5818443e258b.jpg", + "title": "冬钓250磅重的巨型鲶鱼", + "pubdate": 1455981826, + "ctime": 1497380578, + "desc": "youtube GOLIATH CATFISH 250 POUND 8 FEET IN WINTER DRIFT AND LIVE BAIT", + "state": 0, + "duration": 406, + "rights": { + "bp": 0, + "elec": 0, + "download": 0, + "movie": 0, + "pay": 0, + "hd5": 0, + "no_reprint": 0, + "autoplay": 1, + "ugc_pay": 0, + "is_cooperation": 0, + "ugc_pay_preview": 0, + "no_background": 0, + "arc_pay": 0, + "pay_free_watch": 0 + }, + "owner": { + "mid": 122541, + "name": "冰封.虾子", + "face": "http://i0.hdslb.com/bfs/face/40c46ee74dd6ea33d46c38cd6083e6a1286aa482.gif" + }, + "stat": { + "aid": 3904091, + "view": 1655057, + "danmaku": 2747, + "reply": 1810, + "favorite": 3206, + "coin": 204, + "share": 2175, + "now_rank": 0, + "his_rank": 0, + "like": 15779, + "dislike": 0 + }, + "dynamic": "", + "cid": 6280020, + "dimension": { + "width": 640, + "height": 360, + "rotate": 0 + }, + "season_id": 627981, + "short_link": "https://b23.tv/BV1es411972g", + "short_link_v2": "https://b23.tv/BV1es411972g", + "bvid": "BV1es411972g", + "season_type": 1, + "is_ogv": false, + "ogv_info": null, + "rcmd_reason": "" + }, + { + "aid": 926574462, + "videos": 1, + "tid": 65, + "tname": "网络游戏", + "copyright": 2, + "pic": "http://i2.hdslb.com/bfs/archive/4449df3efd8d007176a9eedb5dfb35a1dc89af48.jpg", + "title": "当毛子遇到混血超模(2)", + "pubdate": 1596097538, + "ctime": 1596097539, + "desc": "抖音\n抖音...", + "state": 0, + "duration": 30, + "rights": { + "bp": 0, + "elec": 0, + "download": 0, + "movie": 0, + "pay": 0, + "hd5": 0, + "no_reprint": 0, + "autoplay": 1, + "ugc_pay": 0, + "is_cooperation": 0, + "ugc_pay_preview": 0, + "no_background": 0, + "arc_pay": 0, + "pay_free_watch": 0 + }, + "owner": { + "mid": 543863677, + "name": "DJStevenAV", + "face": "http://i1.hdslb.com/bfs/face/b88800a78b68eacb48e9b48421b6c39c1bc9dc5b.jpg" + }, + "stat": { + "aid": 926574462, + "view": 565826, + "danmaku": 168, + "reply": 310, + "favorite": 4240, + "coin": 475, + "share": 2877, + "now_rank": 0, + "his_rank": 0, + "like": 9847, + "dislike": 0 + }, + "dynamic": "#茄子##吃鸡##美女#", + "cid": 218351947, + "dimension": { + "width": 720, + "height": 1280, + "rotate": 0 + }, + "short_link": "https://b23.tv/BV1BT4y1j7EV", + "short_link_v2": "https://b23.tv/BV1BT4y1j7EV", + "bvid": "BV1BT4y1j7EV", + "season_type": 0, + "is_ogv": false, + "ogv_info": null, + "rcmd_reason": "" + }, + { + "aid": 718913090, + "videos": 1, + "tid": 27, + "tname": "综合", + "copyright": 1, + "pic": "http://i2.hdslb.com/bfs/archive/6567760d676268e2bf2e2c57486085a31427ed79.jpg", + "title": "【咩栗】镇 站 之 宝", + "pubdate": 1636448401, + "ctime": 1636448403, + "desc": "可以关注一下可爱的小羊和小狼呀~\n小羊主页:https://space.bilibili.com/745493\n小狼主页:https://space.bilibili.com/617459493\n⚡️☀️\n微博@电击咩阿栗\n微博@呜米嗷呜\n⚡️☀️\n网易云@咩栗\n网易云@呜米", + "state": 0, + "duration": 188, + "rights": { + "bp": 0, + "elec": 0, + "download": 0, + "movie": 0, + "pay": 0, + "hd5": 0, + "no_reprint": 1, + "autoplay": 1, + "ugc_pay": 0, + "is_cooperation": 0, + "ugc_pay_preview": 0, + "no_background": 0, + "arc_pay": 0, + "pay_free_watch": 0 + }, + "owner": { + "mid": 674421433, + "name": "呜米咩栗的草原日常", + "face": "http://i1.hdslb.com/bfs/face/5566e3a4786959527a72545f908b5664693a2945.jpg" + }, + "stat": { + "aid": 718913090, + "view": 289956, + "danmaku": 188, + "reply": 455, + "favorite": 2984, + "coin": 679, + "share": 195, + "now_rank": 0, + "his_rank": 0, + "like": 14988, + "dislike": 0 + }, + "dynamic": "咩栗,不可以。", + "cid": 436835160, + "dimension": { + "width": 1920, + "height": 1080, + "rotate": 0 + }, + "short_link": "https://b23.tv/BV14Q4y1S7HU", + "short_link_v2": "https://b23.tv/BV14Q4y1S7HU", + "first_frame": "http://i0.hdslb.com/bfs/storyff/n211105a23d8ue6bh0m1ed1cu6yztac5_firsti.jpg", + "bvid": "BV14Q4y1S7HU", + "season_type": 0, + "is_ogv": false, + "ogv_info": null, + "rcmd_reason": "" + }, + { + "aid": 243979418, + "videos": 1, + "tid": 17, + "tname": "单机游戏", + "copyright": 1, + "pic": "http://i1.hdslb.com/bfs/archive/4be3a91598103a9d599d62ac77659b75c1d2c54b.jpg", + "title": "[缝合怪]HOP?哈哈哈奇怪的缝合生物增加了!(二)", + "pubdate": 1594986846, + "ctime": 1594986846, + "desc": "奇怪的生物...增加了??!\n这期连更几个创意搞笑小视频,连载上个视频的creeper用到的奥利奥的梗\n反正开心就对啦,之后明天再更一期这类似的小视频,然后这周视频时长就算达标咯\n狐圈:201928737\n“快来养老qwq”", + "state": 0, + "duration": 23, + "mission_id": 13752, + "rights": { + "bp": 0, + "elec": 0, + "download": 0, + "movie": 0, + "pay": 0, + "hd5": 0, + "no_reprint": 1, + "autoplay": 1, + "ugc_pay": 0, + "is_cooperation": 0, + "ugc_pay_preview": 0, + "no_background": 0, + "arc_pay": 0, + "pay_free_watch": 0 + }, + "owner": { + "mid": 289475254, + "name": "碧月狐", + "face": "http://i1.hdslb.com/bfs/face/4492716a1211a20b63015d84a9860b3424e9eca7.jpg" + }, + "stat": { + "aid": 243979418, + "view": 886939, + "danmaku": 516, + "reply": 301, + "favorite": 9412, + "coin": 1819, + "share": 2487, + "now_rank": 0, + "his_rank": 0, + "like": 41875, + "dislike": 0 + }, + "dynamic": "#沙雕日常##Minecraft##我的世界#", + "cid": 213532895, + "dimension": { + "width": 1280, + "height": 720, + "rotate": 0 + }, + "season_id": 11746, + "short_link": "https://b23.tv/BV1xv411q7fJ", + "short_link_v2": "https://b23.tv/BV1xv411q7fJ", + "bvid": "BV1xv411q7fJ", + "season_type": 0, + "is_ogv": false, + "ogv_info": null, + "rcmd_reason": "" + }, + { + "aid": 590060816, + "videos": 1, + "tid": 22, + "tname": "鬼畜调教", + "copyright": 1, + "pic": "http://i1.hdslb.com/bfs/archive/509fda71291eda10687fa839a5f89c6054bed167.png", + "title": "保 加 利 亚 瓜 王", + "pubdate": 1629954067, + "ctime": 1629954067, + "desc": "哥儿俩生妖王", + "state": 0, + "duration": 79, + "mission_id": 105577, + "rights": { + "bp": 0, + "elec": 0, + "download": 0, + "movie": 0, + "pay": 0, + "hd5": 0, + "no_reprint": 1, + "autoplay": 1, + "ugc_pay": 0, + "is_cooperation": 0, + "ugc_pay_preview": 0, + "no_background": 0, + "arc_pay": 0, + "pay_free_watch": 0 + }, + "owner": { + "mid": 64827416, + "name": "城之悠二", + "face": "http://i2.hdslb.com/bfs/face/032a0ec32dcd880eeb0850e7a03d0990445c9697.jpg" + }, + "stat": { + "aid": 590060816, + "view": 858513, + "danmaku": 1487, + "reply": 1282, + "favorite": 17119, + "coin": 13288, + "share": 7838, + "now_rank": 0, + "his_rank": 0, + "like": 67325, + "dislike": 0 + }, + "dynamic": "", + "cid": 396779777, + "dimension": { + "width": 1920, + "height": 1080, + "rotate": 0 + }, + "short_link": "https://b23.tv/BV1eq4y1D7H8", + "short_link_v2": "https://b23.tv/BV1eq4y1D7H8", + "up_from_v2": 2, + "first_frame": "http://i2.hdslb.com/bfs/storyff/n210826139etterlwdx0a2fsl8bfjlk7_firsti.jpg", + "bvid": "BV1eq4y1D7H8", + "season_type": 0, + "is_ogv": false, + "ogv_info": null, + "rcmd_reason": "" + }, + { + "aid": 74910522, + "videos": 1, + "tid": 21, + "tname": "日常", + "copyright": 2, + "pic": "http://i1.hdslb.com/bfs/archive/89dcc6be0083463aab31b22d31032270e363c019.jpg", + "title": "保加利亚妖王用中文数数", + "pubdate": 1573152882, + "ctime": 1573152882, + "desc": "https://www.youtube.com/watch?v=E68duawIQ7I\n一个意义不明的视频?", + "state": 0, + "duration": 10, + "rights": { + "bp": 0, + "elec": 0, + "download": 0, + "movie": 0, + "pay": 0, + "hd5": 0, + "no_reprint": 0, + "autoplay": 1, + "ugc_pay": 0, + "is_cooperation": 0, + "ugc_pay_preview": 0, + "no_background": 0, + "arc_pay": 0, + "pay_free_watch": 0 + }, + "owner": { + "mid": 122541, + "name": "冰封.虾子", + "face": "http://i0.hdslb.com/bfs/face/40c46ee74dd6ea33d46c38cd6083e6a1286aa482.gif" + }, + "stat": { + "aid": 74910522, + "view": 88597, + "danmaku": 20, + "reply": 223, + "favorite": 314, + "coin": 54, + "share": 90, + "now_rank": 0, + "his_rank": 0, + "like": 2426, + "dislike": 0 + }, + "dynamic": "迷之更新? #azis##保加利亚妖王##中文#", + "cid": 128148307, + "dimension": { + "width": 608, + "height": 1080, + "rotate": 0 + }, + "short_link": "https://b23.tv/BV1jE411q77T", + "short_link_v2": "https://b23.tv/BV1jE411q77T", + "bvid": "BV1jE411q77T", + "season_type": 0, + "is_ogv": false, + "ogv_info": null, + "rcmd_reason": "" + }, + { + "aid": 755494777, + "videos": 2, + "tid": 193, + "tname": "MV", + "copyright": 2, + "pic": "http://i1.hdslb.com/bfs/archive/e3986406217f03ce31ca46852164c0279a406ecd.png", + "title": "Rick Astley - Never Gonna Give You Up", + "pubdate": 1606492404, + "ctime": 1606492405, + "desc": "ISRC CN-E20-20-453-08/V.J6 XVCD-20153\n出自于BV1nW4y1C7T5的P9", + "state": 0, + "duration": 427, + "rights": { + "bp": 0, + "elec": 0, + "download": 0, + "movie": 0, + "pay": 0, + "hd5": 0, + "no_reprint": 0, + "autoplay": 1, + "ugc_pay": 0, + "is_cooperation": 0, + "ugc_pay_preview": 0, + "no_background": 0, + "arc_pay": 0, + "pay_free_watch": 0 + }, + "owner": { + "mid": 313290585, + "name": "作死君-", + "face": "http://i0.hdslb.com/bfs/face/f917350f82a8cb1ba4c211a28d0e281cb3457206.jpg" + }, + "stat": { + "aid": 755494777, + "view": 628308, + "danmaku": 328, + "reply": 501, + "favorite": 6767, + "coin": 682, + "share": 498, + "now_rank": 0, + "his_rank": 0, + "like": 30748, + "dislike": 0 + }, + "dynamic": "", + "cid": 425587380, + "dimension": { + "width": 960, + "height": 720, + "rotate": 0 + }, + "short_link": "https://b23.tv/BV1er4y1c7yZ", + "short_link_v2": "https://b23.tv/BV1er4y1c7yZ", + "up_from_v2": 2, + "first_frame": "http://i2.hdslb.com/bfs/storyff/n2110151395pbo9g2l5ka1arlotq4yxi_firsti.jpg", + "bvid": "BV1er4y1c7yZ", + "season_type": 0, + "is_ogv": false, + "ogv_info": null, + "rcmd_reason": "" + }, + { + "aid": 299723213, + "videos": 1, + "tid": 171, + "tname": "电子竞技", + "copyright": 1, + "pic": "http://i2.hdslb.com/bfs/archive/5eb1a2b31854985136c140403db76bd915af8168.jpg", + "title": "⚡️内 格 夫 の 嘲 讽⚡️", + "pubdate": 1654141500, + "ctime": 1654141501, + "desc": "", + "state": 0, + "duration": 89, + "mission_id": 683731, + "rights": { + "bp": 0, + "elec": 0, + "download": 0, + "movie": 0, + "pay": 0, + "hd5": 0, + "no_reprint": 1, + "autoplay": 1, + "ugc_pay": 0, + "is_cooperation": 0, + "ugc_pay_preview": 0, + "no_background": 0, + "arc_pay": 0, + "pay_free_watch": 0 + }, + "owner": { + "mid": 91542133, + "name": "邪神_Karasu_", + "face": "http://i1.hdslb.com/bfs/face/e1684c4d561628ca2baa326caefe9c7cc88e6b7d.jpg" + }, + "stat": { + "aid": 299723213, + "view": 307870, + "danmaku": 232, + "reply": 192, + "favorite": 1759, + "coin": 596, + "share": 352, + "now_rank": 0, + "his_rank": 0, + "like": 18974, + "dislike": 0 + }, + "dynamic": "", + "cid": 735728100, + "dimension": { + "width": 1920, + "height": 1080, + "rotate": 0 + }, + "season_id": 223572, + "short_link": "https://b23.tv/BV12F411G7GC", + "short_link_v2": "https://b23.tv/BV12F411G7GC", + "first_frame": "http://i2.hdslb.com/bfs/storyff/n220601a23cewjt7ozvrxwifaipjgy3m_firsti.jpg", + "pub_location": "贵州", + "bvid": "BV12F411G7GC", + "season_type": 1, + "is_ogv": false, + "ogv_info": null, + "rcmd_reason": "" + } + ], + "Spec": null, + "hot_share": { + "show": false, + "list": [] + }, + "elec": null, + "recommend": null, + "view_addit": { + "63": false, + "64": false + } + } +} +``` + +
+ +## 获取视频简介 + +> https://api.bilibili.com/x/web-interface/archive/desc + +*请求方式:GET* + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +|------|-----|--------|--------|---------------| +| aid | num | 稿件avid | 必要(可选) | avid与bvid任选一个 | +| bvid | str | 稿件bvid | 必要(可选) | avid与bvid任选一个 | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +|---------|-----|------|--------------------------------------| +| code | num | 返回值 | 0:成功
-400:请求错误
62002:稿件不可见 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | str | 简介内容 | | + +**示例:** + +查看视频(教主的咕鸽)`av39330059`/`BV1Bt411z799`的简介 + +avid方式: + +```shell +curl -G 'https://api.bilibili.com/x/archive/desc' \ +--data-urlencode 'aid=39330059' +``` + +bvid方式: + +```shell +curl -G 'https://api.bilibili.com/x/archive/desc' \ +--data-urlencode 'bvid=BV1Bt411z799' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": "1.小朋友们大家好,我是你们爷爷最喜欢的超威一列姆!\r\n2.在过去的一年里,我创作了无数脍炙人口的歌曲,常常被人夸赞高产似雌豚。\r\n3.接下来的日子里我会一如既往地勤勉创作,争取继续保持现在的产量,文体两开花。\r\n4.我感觉照这个势头和速度下去别说日常更新不在话下,连出张新专辑都指日可待了啊。\r\n5.也感谢你们一如既往的支持和鼓励,我会注意身体,不把自己累垮掉的。\r\n6.我个人不建议你们在评论区里艾特任何UP主,我真的不建议,当然你们非要这么做我也没办法的。" +} +``` + +
+ +## 查询视频分P列表 (avid/bvid转cid) + +> https://api.bilibili.com/x/player/pagelist + +*请求方式:GET* + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +|------|-----|--------|--------|---------------| +| aid | num | 稿件avid | 必要(可选) | avid与bvid任选一个 | +| bvid | str | 稿件bvid | 必要(可选) | avid与bvid任选一个 | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +|---------|-------|------|-----------------------------------| +| code | num | 返回值 | 0:成功
-400:请求错误
-404:无视频 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | array | 分P列表 | | + +数组`data`: + +| 项 | 类型 | 内容 | 备注 | +|-----|-----|----------|---------| +| 0 | obj | 1P内容 | 无分P仅有此项 | +| n | obj | (n+1)P内容 | | +| …… | obj | …… | …… | + +数组`data`中的对象: + +| 字段 | 类型 | 内容 | 备注 | +|-------------|-----|-----------|---------------------------------------------| +| cid | num | 当前分P cid | | +| page | num | 当前分P | | +| from | str | 视频来源 | vupload:普通上传(B站)
hunan:芒果TV
qq:腾讯 | +| part | str | 当前分P标题 | | +| duration | num | 当前分P持续时间 | 单位为秒 | +| vid | str | 站外视频vid | | +| weblink | str | 站外视频跳转url | | +| dimension | obj | 当前分P分辨率 | 有部分视频无法获取分辨率 | +| first_frame | str | 分P封面 | | + +数组`data`中的对象中的`dimension`对象: + +| 字段 | 类型 | 内容 | 备注 | +|--------|-----|---------|----------------| +| width | num | 当前分P 宽度 | | +| height | num | 当前分P 高度 | | +| rotate | num | 是否将宽高对换 | 0:正常
1:对换 | + +**示例:** + +查询视频`av13502509`/`BV1ex411J7GE`的分P列表 + +avid方式: + +```shell +curl -G 'https://api.bilibili.com/x/player/pagelist' \ +--data-urlencode 'aid=13502509' +``` + +bvid方式: + +```shell +curl -G 'https://api.bilibili.com/x/player/pagelist' \ +--data-urlencode 'bvid=BV1ex411J7GE' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": [{ + "cid": 66445301, + "page": 1, + "from": "vupload", + "part": "00. 宣传短片", + "duration": 33, + "vid": "", + "weblink": "", + "dimension": { + "width": 1920, + "height": 1080, + "rotate": 0 + } + }, { + "cid": 35039663, + "page": 2, + "from": "vupload", + "part": "01. 火柴人与动画师", + "duration": 133, + "vid": "", + "weblink": "", + "dimension": { + "width": 1484, + "height": 1080, + "rotate": 0 + } + }, { + "cid": 35039678, + "page": 3, + "from": "vupload", + "part": "02. 火柴人与动画师 II", + "duration": 210, + "vid": "", + "weblink": "", + "dimension": { + "width": 1484, + "height": 1080, + "rotate": 0 + } + }, { + "cid": 35039693, + "page": 4, + "from": "vupload", + "part": "03. 火柴人与动画师 III", + "duration": 503, + "vid": "", + "weblink": "", + "dimension": { + "width": 992, + "height": 720, + "rotate": 0 + } + }, + ………… + ] +} +``` + +
diff --git a/docs/video/interact_video.md b/docs/video/interact_video.md new file mode 100644 index 0000000000..2d5bb63d78 --- /dev/null +++ b/docs/video/interact_video.md @@ -0,0 +1,375 @@ +# 互动视频信息 + +注:互动视频分P与普通视频分P不互通 + +--- + +- [获取互动视频模块详细信息](#获取互动视频模块详细信息) + +--- + +## 获取互动视频模块详细信息 + +> https://api.bilibili.com/x/stein/edgeinfo_v2 + +*请求方式:GET* + +认证方式:Cookie(SESSDATA) + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------------- | ---- | -------- | ------------ | ------------------ | +| aid | num | 稿件avid | 必要(可选) | avid与bvid任选一个 | +| bvid | str | 稿件bvid | 必要(可选) | avid与bvid任选一个 | +| graph_version | num | 剧情图id | 必要 | 位于`player.so`中 | +| edge_id | num | 模块编号 | 非必要 | 0或留空为起始模块 | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------------------ | +| code | num | 返回值 | 0:成功
-400:请求错误
-404:无视频
99003:剧情图被修改已失效
99077:请输入aid/bvid | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| --------------- | ----- | ------------------- | ------------------------------------------------ | +| title | str | 视频模块(分P)标题 | | +| edge_id | num | 当前模块id | | +| story_list | array | 进度回溯信息 | 未登录仅有起始模块 | +| edges | obj | 当前模块信息 | | +| preload | obj | 预加载的分P | | +| hidden_vars | array | 变量列表 | 无变量时不存在此项 | +| is_leaf | num | 是否为结束模块 | 0:当前模块为普通模块
1:当前模块为结束模块 | +| no_tutorial | num | 禁止记录选择 | 1:禁止
非禁止时无此项 | +| no_backtracking | num | 禁止进度回溯 | 1:禁止
非禁止时无此项 | +| no_evaluation | num | 禁止结尾评分 | 1:禁止
非禁止时无此项 | + +`data`中的`story_list`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | ----------------- | ---- | +| 0 | obj | 回溯第一项模块 | | +| n | obj | 回溯第(n+1)项模块 | | +| …… | obj | …… | …… | + +`story_list`数组中的对象: + +| 项 | 类型 | 内容 | 备注 | +| ---------- | ---- | ---------------- | ----------------------------- | +| node_id | num | 模块编号 | | +| edge_id | num | **同上** | | +| title | str | 模块(分P)标题 | | +| cid | num | 模块(分P)cid | | +| start_pos | num | 记录播放开始位置 | 单位为毫秒 | +| cover | str | 分P封面url | | +| is_current | num | 是否为当前模块 | 1:是
仅为当前模块时存在 | +| cursor | num | 进度序号 | 从0开始向上增长 | + +`data`中的`edges`对象: + +| 字段 | 类型 | 内容 | 备注 | +| --------- | ----- | ------------- | ------------------------ | +| dimension | obj | 当前分P分辨率 | 有部分视频无法获取分辨率 | +| questions | array | 问题 | 结束模块无此项 | +| skin | obj | 问题外观 | | + +`edges`中的`dimension`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------ | ---- | -------------- | -------------------- | +| width | num | 当前分P 宽度 | | +| height | num | 当前分P 高度 | | +| rotate | num | 是否将宽高对换 | 0:正常
1:对换 | +| sar | str | ??? | 作用尚不明确 | + +`edges`中的`questions`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | -------- | ---- | +| 0 | obj | 套了个娃 | | + +`edges`中的`questions`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------------- | ----- | ---------------- | ------------------------------------------------------------ | +| id | num | ??? | 作用尚不明确 | +| type | num | 选项显示模式 | 0:不显示选项
1:底部选项模式
2:坐标定点模式
3:???
127:??? | +| start_time_r | num | 300 或 duration | 作用尚不明确 | +| duration | num | 回答限时 | 单位为毫秒
不限时为`-1` | +| pause_video | num | 是否暂停播放视频 | 0:不暂停
1:暂停播放 | +| title | str | 空 | 作用尚不明确 | +| choices | array | 选项列表 | | +| fade_in_time | num | 选项淡入时间 | 毫秒 | +| fade_out_time | num | 选项淡出时间 | 毫秒 | + +`questions`数组中的对象中的`choices`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | ----------- | ---- | +| 0 | obj | 第一选项 | | +| n | obj | 第(n+1)选项 | | +| …… | obj | …… | …… | + +`questions`数组中的对象中的`choices`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| --------------- | ---- | -------------------- | ------------------------------------- | +| id | num | 选项所跳转的模块id | | +| platform_action | str | 跳转信息文字 | JUMP+{所跳转的模块编号}+{所跳转的cid} | +| native_action | str | 点击后对变量运算语句 | 每项间用分号隔开
无为空 | +| condition | str | 选项出现条件判断语句 | 无为空 | +| cid | num | 选项所跳转分P的cid | | +| x | num | 选项出现的x坐标 | 仅坐标模式有此项 | +| y | num | 选项出现的y坐标 | 仅坐标模式有此项 | +| text_align | num | 选项文本对齐方式 | | +| option | str | 选项文字 | | +| selected | obj | 选择动画信息 | | +| submited | obj | 提交动画信息 | | +| is_default | num | 是否为默认选项 | 1:是
非默认选项无此项 | +| is_hidden | num | 是否为隐藏选项 | 1:是
非隐藏选项无此项 | + +`edges`中的`skin`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------------------------ | ---- | ------------------- | ---------------- | +| choice_image | str | 选项组件外观图片url | | +| title_text_color | str | 文字颜色 | 以下均为RGBA格式 | +| title_shadow_color | str | 文字阴影颜色 | | +| title_shadow_offset_x | num | 文字阴影x偏移 | | +| title_shadow_offset_y | num | 文字阴影y偏移 | | +| title_shadow_radius | num | 文字阴影半径 | | +| progressbar_color | str | 倒计时条颜色 | | +| progressbar_shadow_color | str | 倒计时条阴影颜色 | | + +`data`中的`preload`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----- | ----- | ----------- | ---- | +| video | array | 预加载的分P | | + +`preload`中的`video`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | --------------- | ------------------------------------ | +| 0 | obj | 预加载第一项 | 预加载的内容为当前所有选项的跳转视频 | +| n | obj | 预加载第(n+1)项 | | +| …… | obj | …… | …… | + +`preload`中的`video`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | -------- | ---- | +| aid | num | 稿件avid | | +| cid | num | 分P cid | | + +`data`中的`hidden_vars`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | ------------- | ---- | +| 0 | obj | 第一个变量 | | +| n | obj | 第(n+1)个变量 | | +| …… | obj | …… | …… | + +`data`中的`hidden_vars`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| -------------- | ---- | ------------ | -------------------------- | +| value | num | 变量值 | 随机值为随机整数 | +| id | str | 变量编号 | | +| id_v2 | str | 变量编号 | 语句中一般使用这种 | +| type | num | 变量类型 | 1:普通变量
2:随机值 | +| is_show | num | 是否展示变量 | 0:否
1:是 | +| name | str | 变量名 | | +| skip_overwrite | num | 0 | 作用尚不明确 | + +**示例:** + +查询互动视频`av73267982`下剧情图`155446`模块`5556092`的信息 + +avid方式: + +```shell +curl -G 'https://api.bilibili.com/x/stein/edgeinfo_v2' \ +--data-urlencode 'aid=73267982' \ +--data-urlencode 'graph_version=155446' \ +--data-urlencode 'edge_id=5556092' \ +-b 'SESSDATA=xxx' +``` + +bvid方式: + +```shell +curl -G 'https://api.bilibili.com/x/stein/edgeinfo_v2' \ +--data-urlencode 'bvid=BV1UE411y7Wy' \ +--data-urlencode 'graph_version=155446' \ +--data-urlencode 'edge_id=5556092' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "title": "4", + "edge_id": 5556092, + "story_list": [ + { + "node_id": 1, + "edge_id": 1, + "title": "0 片头", + "cid": 127486603, + "start_pos": 27000, + "cover": "http://i0.hdslb.com/bfs/steins-gate/127486603_screenshot.jpg", + "cursor": 0 + }, + { + "node_id": 5556092, + "edge_id": 5556092, + "title": "4", + "cid": 125499378, + "start_pos": 82000, + "cover": "http://i0.hdslb.com/bfs/steins-gate/125499378_screenshot.jpg", + "is_current": 1, + "cursor": 15 + } + ], + "edges": { + "dimension": { + "width": 1920, + "height": 1000, + "rotate": 0, + "sar": "" + }, + "questions": [ + { + "id": 0, + "type": 2, + "start_time_r": 300, + "duration": -1, + "pause_video": 1, + "title": "", + "choices": [ + { + "id": 5556133, + "platform_action": "JUMP 5556133 125499249", + "native_action": "", + "condition": "$H7g_64_PG2EVS>=1.00 && $H7g_64_PG2EVS<=80.00", + "cid": 125499249, + "x": 947, + "y": 499, + "text_align": 2, + "option": "A <你已成为杀手> 试图砍死萌新 (成功率20%)", + "is_default": 1 + }, + { + "id": 5556134, + "platform_action": "JUMP 5556134 125502707", + "native_action": "", + "condition": "$H7g_64_PG2EVS>=81.00 && $H7g_64_PG2EVS<=100.00", + "cid": 125502707, + "x": 949, + "y": 502, + "text_align": 2, + "option": "B <你已成为杀手> 试图砍死萌新 (成功率20%)" + }, + { + "id": 5556135, + "platform_action": "JUMP 5556135 125499249", + "native_action": "", + "condition": "", + "cid": 125499249, + "x": 120, + "y": 145, + "text_align": 2, + "option": "C 直接【砍杀失败】" + } + ] + } + ], + "skin": { + "choice_image": "https://i0.hdslb.com/bfs/app/db0ae7700d4fb1416c8b305bcfb6f0948f818cc9.png", + "title_text_color": "d8fbffff", + "title_shadow_color": "00000033", + "title_shadow_offset_y": 1, + "title_shadow_radius": 1, + "progressbar_color": "ffffffff", + "progressbar_shadow_color": "000000cc" + } + }, + "preload": { + "video": [ + { + "aid": 73267982, + "cid": 125499249 + }, + { + "aid": 73267982, + "cid": 125502707 + } + ] + }, + "hidden_vars": [ + { + "value": 97, + "id": "v-H7g@PG2EVS", + "id_v2": "$H7g_64_PG2EVS", + "type": 2, + "is_show": 0, + "name": "随机值", + "skip_overwrite": 0 + }, + { + "value": 0, + "id": "v-YWB6dk1oCP", + "id_v2": "$YWB6dk1oCP", + "type": 1, + "is_show": 1, + "name": "达成假结局次数", + "skip_overwrite": 0 + }, + { + "value": 0, + "id": "v-Zh4JACIiId", + "id_v2": "$Zh4JACIiId", + "type": 1, + "is_show": 1, + "name": "死亡次数", + "skip_overwrite": 0 + }, + { + "value": 0, + "id": "v-a2vplaQlsP", + "id_v2": "$a2vplaQlsP", + "type": 1, + "is_show": 1, + "name": "达成真结局次数", + "skip_overwrite": 0 + }, + { + "value": 1, + "id": "v-lMQqQ994Sk", + "id_v2": "$lMQqQ994Sk", + "type": 1, + "is_show": 1, + "name": "循环编号", + "skip_overwrite": 0 + } + ], + "is_leaf": 0 + } +} +``` + +
\ No newline at end of file diff --git a/docs/video/online.md b/docs/video/online.md new file mode 100644 index 0000000000..c4623c35a0 --- /dev/null +++ b/docs/video/online.md @@ -0,0 +1,146 @@ +# 视频在线人数 + +- [获取视频在线人数_web端](#获取视频在线人数_web端) +- [获取视频在线人数_APP端](#获取视频在线人数_APP端) + +## 获取视频在线人数_web端 + +> https://api.bilibili.com/x/player/online/total + +*请求方式:GET* + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | ---- | -------- | ---------- | ------------------ | +| aid | num | 稿件avid | 必要(可选) | avid与bvid任选一个 | +| bvid | str | 稿件bvid | 必要(可选) | avid与bvid任选一个 | +| cid | num | 视频cid | 必要 | 用于选择目标分P | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | --------------------------------------------- | +| code | num | 返回值 | 0:成功
-400:请求错误
-404:无视频 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----------- | ---- | ----------------- | ----------- | +| total | str | 所有终端总计人数 | 例如`10万+` | +| count | str | web端实时在线人数 | | +| show_switch | obj | 数据显示控制 | | + +`data`中的`show_switch`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----- | ---- | --------------------- | ---- | +| total | bool | 展示所有终端总计人数 | | +| count | bool | 展示web端实时在线人数 | | + +**示例:** + +查询视频`av759949922`/`BV1y64y1q757`中1P(`392402545`)的在线人数 + +```shell +curl -G 'https://api.bilibili.com/x/player/online/total' \ +--data-urlencode 'aid=759949922' \ +--data-urlencode 'cid=392402545' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "total": "9.4万+", + "count": "50953", + "show_switch": { + "total": true, + "count": true + } + } +} +``` + +
+ +## 获取视频在线人数_APP端 + +> https://app.bilibili.com/x/v2/view/video/online + +*请求方式:GET* + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | ---- | ---------- | ----------- | --------------- | +| aid | num | 稿件avid | 必要 | | +| appkey | str | APP密钥 | APP方式必要 | | +| cid | num | 视频cid | 必要 | 用于选择目标分P | +| ts | num | 当前时间戳 | APP方式必要 | | +| sign | str | APP签名 | APP方式必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | --------------------------------------------- | +| code | num | 返回值 | 0:成功
-400:请求错误
-404:无视频 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------ | ---- | ---------------- | ---- | +| online | obj | 所有终端总计人数 | | + +`data`中的`show_switch`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------ | ---- | ---------------- | ----------------- | +| online | str | 所有终端总计人数 | 例如`10万+人在看` | + +**示例:** + +查询视频`av759949922`/`BV1y64y1q757`中1P(`392402545`)的在线人数 + +```shell +curl -G 'https://app.bilibili.com/x/v2/view/video/online' \ +--data-urlencode 'aid=759949922' \ +--data-urlencode 'appkey=1d8b6e7d45233436' \ +--data-urlencode 'cid=392402545' \ +--data-urlencode 'ts=0' \ +--data-urlencode 'sign=172dfd9941a01275eb93ce6246cd8556' +``` + +
+查看响应示例: + + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "online": { + "total_text": "8.8万+人在看" + } + } +} +``` + +
\ No newline at end of file diff --git a/docs/video/pbp.md b/docs/video/pbp.md new file mode 100644 index 0000000000..b6b34a3703 --- /dev/null +++ b/docs/video/pbp.md @@ -0,0 +1,75 @@ +# 高能进度条 + +高能进度条反应了在时域上,单位时间内弹幕发送量的变化趋势 + +并用曲线顶点表示在进度条上,实现可视化 + +--- + +- [获取弹幕趋势顶点列表](#获取弹幕趋势顶点列表) + +--- + +## 获取弹幕趋势顶点列表 + +> https://bvc.bilivideo.com/pbp/data + +*请求方式:GET* + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | ---- | -------- | ------ | ---- | +| cid | num | 视频cid | 必要 | | +| aid | num | 稿件avid | 非必要 | | +| bvid | num | 稿件bvid | 非必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| -------- | ---- | ------------ | ---------------------------- | +| step_sec | num | 采样间隔时间 | 单位为秒
由视频时长决定 | +| tagstr | str | ??? | 作用尚不明确 | +| events | obj | 数据本体 | | +| debug | str | 调试信息 | json字串 | + +`events`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ------ | ---------- | ---- | +| default | array | 顶点值列表 | | + +`events`对象中的数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | --------- | -------------------------------- | +| 0 | num | 顶点1 | | +| n | num | 顶点(n+1) | 顶点个数由视频时长和采样时间决定 | +| …… | num | …… | …… | + +**示例:** + +获取视频`cid=3724723`的获取弹幕趋势顶点列表 + +```shell +curl -G 'https://api.bilibili.com/pbp/data' \ +--data-urlencode 'cid=3724723' +``` + +
+查看响应示例: + +```json +{ + "step_sec": 3, + "tagstr": "pbphide_0&client_&innersign_0&group_eg&nocheck_0&version_&pbphide_0", + "events": { + "default": [0, 8853, 8011, 8043.5, 8602.5, 9377, 18838, 9645, 10396, 10672.5, 10316.5, 9987, 9524, 9040, 9081, 8747, 8517, 8559.5, 8220.5, 8133, 7164, 5626, 4992, 4628.5, 4570.5, 4473.5, 4681.5, 4365.5, 3811.5, 3813, 3883, 4059.5, 4103.5, 4227.5, 4330.5, 4096.5, 4228.5, 4337, 5017, 5897, 6220, 5711.5, 4871.5, 4533, 4364, 3976, 4012, 3985, 3658, 3540, 3789, 3646, 3045, 2769, 2587, 2488.5, 2402.5, 2521.5, 2508.5, 2763.5, 2941.5, 3685.5, 3337.5, 2457, 2313, 2322.5, 2480.5, 2595, 2520, 2173.5, 2058.5, 2268.5, 2312.5, 2847, 1083, 1.5, 2.5, 0, 0, 2] + }, + "debug": "{\"max_time\":237,\"zero_points_ratio\":0.025,\"total_dm\":1000,\"event_count\":400147}" +} +``` + +
diff --git a/docs/video/recommend.md b/docs/video/recommend.md new file mode 100644 index 0000000000..d02e3c8273 --- /dev/null +++ b/docs/video/recommend.md @@ -0,0 +1,294 @@ +# 视频推荐 + +- [获取单视频推荐列表(web端)](#获取单视频推荐列表web端) + +--- + +## 获取单视频推荐列表(web端) + +> https://api.bilibili.com/x/web-interface/archive/related + +*请求方式:GET* + +最多获取40条推荐视频 + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | ---- | -------- | ------------ | ------------------ | +| aid | num | 稿件avid | 必要(可选) | avid与bvid任选一个 | +| bvid | str | 稿件bvid | 必要(可选) | avid与bvid任选一个 | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ------ | -------- | ---------------------------- | +| code | num | 返回值 | 0:成功
-400:请求错误 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | array | 推荐列表 | | + +`data`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | ------------- | ---- | +| 0 | obj | 推荐视频1 | | +| n | obj | 推荐视频(n+1) | | +| …… | obj | …… | …… | +| 39 | obj | 推荐视频40 | | + +`data`数组中的对象: + +基本同「[获取视频详细信息(web端)](info.md#获取视频详细信息(web端))」中的data对象 + +**示例:** + +查询视频`av7`/`BV1xx411c7m9`的推荐视频列表 + +avid方式: + +```shell +curl -G 'https://api.bilibili.com/x/web-interface/archive/related' \ +--data-urlencode 'aid=7' +``` + +bvid方式: + +```shell +curl -G 'https://api.bilibili.com/x/web-interface/archive/related' \ +--data-urlencode 'bvid=BV1xx411c7m9' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": [{ + "aid": 21322566, + "videos": 1, + "tid": 124, + "tname": "趣味科普人文", + "copyright": 1, + "pic": "http://i2.hdslb.com/bfs/archive/37f383ac35d386af1fc578108ad643e5952ff66a.jpg", + "title": "bilibili上市宣传视频", + "pubdate": 1522205992, + "ctime": 1522205994, + "desc": "今天晚上9点30分(北京时间),bilibili将在美国纳斯达克(NASDAQ)证券交易所挂牌上市。", + "state": 0, + "attribute": 16768, + "duration": 155, + "rights": { + "bp": 0, + "elec": 0, + "download": 0, + "movie": 0, + "pay": 0, + "hd5": 1, + "no_reprint": 1, + "autoplay": 1, + "ugc_pay": 0, + "is_cooperation": 0, + "ugc_pay_preview": 0, + "no_background": 0 + }, + "owner": { + "mid": 208259, + "name": "陈睿", + "face": "http://i2.hdslb.com/bfs/face/8920e6741fc2808cce5b81bc27abdbda291655d3.png" + }, + "stat": { + "aid": 21322566, + "view": 2129084, + "danmaku": 51108, + "reply": 18119, + "favorite": 46524, + "coin": 85223, + "share": 16669, + "now_rank": 0, + "his_rank": 1, + "like": 95621, + "dislike": 0 + }, + "dynamic": "今天晚上9点30分(北京时间),bilibili将在美国纳斯达克(NASDAQ)证券交易所挂牌上市。", + "cid": 35063529, + "dimension": { + "width": 1920, + "height": 1080, + "rotate": 0 + }, + "bvid": "" + }, { + "aid": 271, + "videos": 1, + "tid": 53, + "tname": "", + "copyright": 1, + "pic": "http://i1.hdslb.com/bfs/archive/a5980672f3d03e8292148748a63de99cd45679d3.jpg", + "title": "弹幕测试专用", + "pubdate": 1249886475, + "ctime": 1497344798, + "desc": "给职人发射弹幕定位用.", + "state": 0, + "attribute": 32768, + "duration": 4558, + "rights": { + "bp": 0, + "elec": 0, + "download": 0, + "movie": 0, + "pay": 0, + "hd5": 0, + "no_reprint": 0, + "autoplay": 1, + "ugc_pay": 0, + "is_cooperation": 0, + "ugc_pay_preview": 0, + "no_background": 0 + }, + "owner": { + "mid": 2, + "name": "碧诗", + "face": "http://i1.hdslb.com/bfs/face/3e60b20604b6fdc7d081eb6a1ec72aa47c5a3964.jpg" + }, + "stat": { + "aid": 271, + "view": 2532266, + "danmaku": 699214, + "reply": 10224, + "favorite": 34927, + "coin": 9712, + "share": 3586, + "now_rank": 0, + "his_rank": 182, + "like": 27257, + "dislike": 0 + }, + "dynamic": "", + "cid": 3659795, + "dimension": { + "width": 0, + "height": 0, + "rotate": 0 + }, + "bvid": "" + }, { + "aid": 106, + "videos": 1, + "tid": 26, + "tname": "音MAD", + "copyright": 2, + "pic": "http://i2.hdslb.com/bfs/archive/34d8fdf08d1fe28c229dec2fd122815a1d012908.jpg", + "title": "最终鬼畜蓝蓝路", + "pubdate": 1350316631, + "ctime": 1497348932, + "desc": "sm2057168 把这个音mad的图腾和支柱从UP的怒火中搬出来重新立好,这是我所能做的最后的事情了。", + "state": 0, + "attribute": 32768, + "duration": 318, + "rights": { + "bp": 0, + "elec": 0, + "download": 0, + "movie": 0, + "pay": 0, + "hd5": 0, + "no_reprint": 0, + "autoplay": 1, + "ugc_pay": 0, + "is_cooperation": 0, + "ugc_pay_preview": 0, + "no_background": 0 + }, + "owner": { + "mid": 8839, + "name": "TSA", + "face": "http://i0.hdslb.com/bfs/face/0ef5daf622bf4789034b3c15147a45e11c48c9b3.jpg" + }, + "stat": { + "aid": 106, + "view": 7607070, + "danmaku": 212896, + "reply": 41521, + "favorite": 200705, + "coin": 51673, + "share": 38049, + "now_rank": 0, + "his_rank": 22, + "like": 148550, + "dislike": 0 + }, + "dynamic": "", + "cid": 3635863, + "dimension": { + "width": 0, + "height": 0, + "rotate": 0 + }, + "bvid": "" + }, { + "aid": 50025934, + "videos": 1, + "tid": 122, + "tname": "野生技术协会", + "copyright": 1, + "pic": "http://i0.hdslb.com/bfs/archive/af534399612085dbd916381b3377b18c765fab2d.png", + "title": "B站又一位Lv9的up诞生了", + "pubdate": 1555829289, + "ctime": 1555829289, + "desc": "要不关注一下?", + "state": 0, + "attribute": 16512, + "duration": 45, + "rights": { + "bp": 0, + "elec": 0, + "download": 0, + "movie": 0, + "pay": 0, + "hd5": 0, + "no_reprint": 1, + "autoplay": 1, + "ugc_pay": 0, + "is_cooperation": 0, + "ugc_pay_preview": 0, + "no_background": 0 + }, + "owner": { + "mid": 174161216, + "name": "血色红茶Xenomprph", + "face": "http://i1.hdslb.com/bfs/face/5a5ececb9b7a688751024c60063ba5853bed7e1e.jpg" + }, + "stat": { + "aid": 50025934, + "view": 159595, + "danmaku": 62, + "reply": 153, + "favorite": 301, + "coin": 1059, + "share": 55, + "now_rank": 0, + "his_rank": 0, + "like": 1219, + "dislike": 0 + }, + "dynamic": "", + "cid": 87577929, + "dimension": { + "width": 2560, + "height": 1440, + "rotate": 0 + }, + "bvid": "" + }, + ………… + ] +} +``` + +
diff --git a/docs/video/report.md b/docs/video/report.md new file mode 100644 index 0000000000..9ae8f9129c --- /dev/null +++ b/docs/video/report.md @@ -0,0 +1,149 @@ +# 视频观看数据上报 + +- [上报观看进度(双端)](#上报观看进度双端) +- [上报视频播放心跳(web端)](#上报视频播放心跳web端) + +--- + +## 上报观看进度(双端) + +> https://api.bilibili.com/x/v2/history/report + +*请求方式:POST* + +认证方式:APP或Cookie(SESSDATA) + +**正文参数( application/x-www-form-urlencoded ):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ---------- | ---- | ------------------------ | -------------- | --------------------- | +| access_key | str | APP登录Token | APP方式必要 | | +| aid | num | 稿件avid | 必要 | | +| cid | num | 视频cid | 必要 | 用于识别分P | +| progress | num | 观看进度 | 非必要 | 单位为秒
默认为0 | +| platform | str | 平台标识 | 非必要 | 可为android | +| csrf | str | CSRF Token(位于cookie) | Cookie方式必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------------------ | +| code | num | 返回值 | 0:成功
-101:账号未登录
-111:csrf校验失败
-400:请求错误 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | + +**示例:** + +记录视频`av13662970`(`cid=126654047`)的观看记录位于`1248`秒 + +Cookie方式: + +```shell +curl 'https://api.bilibili.com/x/v2/history/report' \ +--data-urlencode 'aid=13662970' \ +--data-urlencode 'cid=126654047' \ +--data-urlencode 'progress=1248' \ +--data-urlencode 'platform=android' \ +--data-urlencode 'csrf=xxx' \ +-b 'SESSDATA=xxx' +``` + +APP方式: + +```shell +curl 'https://api.bilibili.com/x/v2/history/report' \ +--data-urlencode 'access_key=xxx' \ +--data-urlencode 'aid=13662970' \ +--data-urlencode 'cid=126654047' \ +--data-urlencode 'progress=1248' \ +--data-urlencode 'platform=android' +``` + + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1 +} +``` + +
+ +## 上报视频播放心跳(web端) + +> https://api.bilibili.com/x/click-interface/web/heartbeat + +*请求方式:POST* + +认证方式:仅可Cookie(SESSDATA) + +默认间隔15秒一次 + +亦可记录播放历史 + +**正文参数( application/x-www-form-urlencoded ):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ----------- | ---- | ------------------------ | ------------ | ------------------------------------------------------------ | +| aid | num | 稿件avid | 必要(可选) | avid与bvid任选一个 | +| bvid | str | 稿件bvid | 必要(可选) | avid与bvid任选一个 | +| cid | num | 视频cid | 非必要 | 用于识别分P | +| epid | num | 番剧epid | 非必要 | | +| sid | num | 番剧ssid | 非必要 | | +| mid | num | 当前用户mid | 非必要 | | +| played_time | num | 视频播放进度 | 非必要 | 单位为秒
默认为0 | +| realtime | num | 总计播放时间 | 非必要 | 单位为秒 | +| start_ts | num | 开始播放时刻 | 非必要 | 时间戳 | +| type | num | 视频类型 | 非必要 | 3:投稿视频
4:剧集
10:课程 | +| sub_type | num | 剧集副类型 | 非必要 | 当`type=4`时本参数有效
1:番剧
2:电影
3:纪录片
4:国创
5:电视剧
7:综艺 | +| dt | num | 2 | 非必要 | | +| play_type | num | 播放动作 | 非必要 | 0:播放中
1:开始播放
2:暂停
3:继续播放 | +| csrf | str | CSRF Token(位于cookie) | 非必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | --------------------------- | +| code | num | 返回值 | 0:成功
-400:请求错误 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | + +**示例:** + +上报一次视频`av2`/`BV1xx411c7mD`的心跳数据 + +```shell +curl 'api.bilibili.com/x/click-interface/web/heartbeat' \ +--data-urlencode 'aid=2' \ +--data-urlencode 'bvid=BV1xx411c7mD' \ +--data-urlencode 'cid=62131' \ +--data-urlencode 'played_time=60' \ +--data-urlencode 'realtime=60' \ +--data-urlencode 'start_ts=1592720840' \ +--data-urlencode 'type=3' \ +--data-urlencode 'dt=2' \ +--data-urlencode 'play_type=0' \ +--data-urlencode 'csrf=xxx' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1 +} +``` + +
diff --git a/docs/video/snapshot.md b/docs/video/snapshot.md new file mode 100644 index 0000000000..a596c429ee --- /dev/null +++ b/docs/video/snapshot.md @@ -0,0 +1,329 @@ +# 视频快照 + +快照的截取时间根据视频画面变化程度决定,各视频不相同 + +截取时间表的时间根据视频画面变化程度决定,各每个视频不相同 + +截取时间表的时间和快照一一对应,并按照从左到右 从上到下的顺序排布 + +--- + +- [获取视频快照(web端)](#获取视频快照web端) +- [获取视频快照(APP端)](#获取视频快照app端) +- [获取视频快照(web端)(用于封面预览)](#获取视频快照web端用于封面预览) +- [图片拼版](#图片拼版) +- [bin格式截取时间表](#bin格式截取时间表) + +--- + +## 获取视频快照(web端) +> https://api.bilibili.com/x/player/videoshot + +*请求方式:GET* + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | ---- | ------------------ | ------------ | ----------------------------------- | +| aid | num | 稿件avid | 必要(可选) | avid与bvid任选一个 | +| bvid | str | 稿件bvid | 必要(可选) | avid与bvid任选一个 | +| cid | num | 分P cid | 非必要 | 默认为1P | +| index | num | json数组截取时间表 | 非必要 | 1:需要
0:不需要
默认为0 | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------ | +| code | num | 返回值 | 0:成功
40001:请求错误
40003:无视频 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---------- | ----- | ---------------------- | --------- | +| pvdata | str | bin格式截取时间表url | | +| img_x_len | num | 每行图片数 | 一般为10 | +| img_y_len | num | 每列图片数 | 一般为10 | +| img_x_size | num | 每张图片长 | 一般为160 | +| img_y_size | num | 每张图片宽 | 一般为90 | +| image | array | 图片拼版 | | +| index | array | json数组格式截取时间表 | 无为空 | + +`data`中的`image`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | ----------------- | -------------------------- | +| 0 | str | 图片拼版1 url | | +| n | str | 图片拼版(n+1) url | 第一张拼版占满时延续第二张 | +| …… | str | …… | …… | + +`data`中的`index`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | --------------- | --------------- | +| 0 | num | 恒为0 | | +| 1 | num | 图片1 截取时间 | 视频0秒截取时间 | +| n | num | 图片n 截取时间 | 单位为秒 | +| …… | num | …… | 单位为秒 | + +**示例:** + +获取视频`av26273789`/`BV1os411H7wm`的快照 + +avid方式: + +```shell +curl -G 'https://api.bilibili.com/x/player/videoshot' \ +--data-urlencode 'aid=26273789' \ +--data-urlencode 'index=1' +``` + +bvid方式: + +```shell +curl -G 'https://api.bilibili.com/x/player/videoshot' \ +--data-urlencode 'bvid=BV1os411H7wm' \ +--data-urlencode 'index=1' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "pvdata": "//i0.hdslb.com/bfs/videoshot/49075258.bin", + "img_x_len": 10, + "img_y_len": 10, + "img_x_size": 160, + "img_y_size": 90, + "image": ["//i0.hdslb.com/bfs/videoshot/49075258.jpg", "//i0.hdslb.com/bfs/videoshot/49075258-1.jpg"], + "index": [0, 0, 8, 14, 19, 25, 34, 40, 46, 56, 63, 70, 80, 87, 93, 100, 109, 117, 124, 133, 142, 148, 156, 164, 171, 179, 184, 192, 198, 206, 214, 223, 232, 239, 246, 254, 261, 269, 275, 283, 289, 299, 305, 310, 315, 322, 330, 339, 348, 358, 364, 371, 376, 382, 391, 404, 413, 421, 426, 434, 441, 452, 458, 463, 473, 479, 491, 497, 504, 514, 521, 528, 533, 540, 546, 552, 558, 567, 575, 586, 591, 602, 609, 615, 623, 629, 639, 647, 653, 658, 664, 670, 675, 684, 691, 698, 713, 724, 729, 737, 743, 754, 762, 772, 779, 784, 797, 803, 810, 817, 825, 834, 845, 851, 857, 867, 878, 888, 896, 903, 909, 914, 919, 928, 935, 944, 958, 970, 977, 988, 996, 1004, 1011, 1018, 1026, 1035, 1041, 1048, 1055, 1063, 1073, 1079, 1086, 1095, 1106, 1111, 1124, 1135, 1147, 1153, 1159, 1165, 1171, 1184, 1198, 1209, 1215, 1221, 1228, 1236, 1242, 1253, 1258, 1269, 1276, 1284, 1289, 1300, 1306, 1315, 1321, 1328, 1340, 1347, 1354, 1361, 1366, 1371, 1383, 1390, 1396, 1403, 1415] + } +} +``` + +
+ +## 获取视频快照(APP端) + +> https://app.bilibili.com/x/v2/view/video/shot + +*请求方式:GET* + +鉴权方式:appkey + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | ---- | ---------- | ----------- | ---- | +| aid | num | 稿件avid | 必要 | | +| appkey | str | APP密钥 | APP方式必要 | | +| cid | num | 分P cid | 必要 | | +| ts | num | 当前时间戳 | APP方式必要 | | +| sign | str | APP签名 | APP方式必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ----------------------------------------------------------- | +| code | num | 返回值 | 0:成功
-400:请求错误
10008:稿件的缩略图不存在 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---------- | ----- | -------------------- | --------- | +| pvdata | str | bin格式截取时间表url | | +| img_x_len | num | 每行图片数 | 一般为10 | +| img_y_len | num | 每列图片数 | 一般为10 | +| img_x_size | num | 每张图片长 | 一般为160 | +| img_y_size | num | 每张图片宽 | 一般为90 | +| image | array | 图片拼版 | | + +`data`中的`image`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | ----------------- | -------------------------- | +| 0 | str | 图片拼版1 url | | +| n | str | 图片拼版(n+1) url | 第一张拼版占满时延续第二张 | +| …… | str | …… | …… | + +示例: + +获取视频`av26273789`(`cid=49075258`)的快照 + +```shell +curl -G 'https://app.bilibili.com/x/v2/view/video/shot' \ +--data-urlencode 'appkey=1d8b6e7d45233436' \ +--data-urlencode 'aid=26273789' \ +--data-urlencode 'cid=49075258' \ +--data-urlencode 'ts=0' \ +--data-urlencode 'sign=06c0a4f2ede21984313552bd9439db18' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "pvdata": "https://i0.hdslb.com/bfs/videoshot/49075258.bin", + "img_x_len": 10, + "img_y_len": 10, + "img_x_size": 160, + "img_y_size": 90, + "image": [ + "https://i0.hdslb.com/bfs/videoshot/49075258.jpg", + "https://i0.hdslb.com/bfs/videoshot/49075258-1.jpg" + ] + } +} +``` + +
+ +## 获取视频快照(web端)(用于封面预览) + +> https://api.bilibili.com/pvideo + +*请求方式:GET* + +内容与「获取视频快照1」加参数index=1相同,但url带有转义,仅限第1P + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | ---- | -------- | ------ | ---- | +| aid | num | 稿件avid | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ---------------------------------------------- | +| code | num | 返回值 | 0:成功
40001:请求错误
-404:无视频 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---------- | ----- | ---------------------- | --------- | +| pvdata | str | bin格式截取时间表url | | +| img_x_len | num | 每行图片数 | 一般为10 | +| img_y_len | num | 每列图片数 | 一般为10 | +| img_x_size | num | 每张图片长 | 一般为160 | +| img_y_size | num | 每张图片宽 | 一般为90 | +| image | array | 图片拼版 | | +| index | array | json数组格式截取时间表 | 无为空 | + +`data`中的`image`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | ----------------- | -------------------------- | +| 0 | str | 图片拼版1 url | | +| n | str | 图片拼版(n+1) url | 第一张拼版占满时延续第二张 | +| …… | str | …… | …… | + +`data`中的`index`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | --------------- | --------------- | +| 0 | num | 恒为0 | | +| 1 | num | 图片1 截取时间 | 视频0秒截取时间 | +| n | num | 图片n 截取时间 | 单位为秒 | +| …… | num | …… | 单位为秒 | + +**示例:** + +获取视频`av26273789`的快照 + +```shell +curl -G 'https://api.bilibili.com/pvideo' \ +--data-urlencode 'aid=26273789' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "pvdata": "\/\/i0.hdslb.com\/bfs\/videoshot\/49075258.bin", + "img_x_len": 10, + "img_y_len": 10, + "img_x_size": 160, + "img_y_size": 90, + "image": ["\/\/i0.hdslb.com\/bfs\/videoshot\/49075258.jpg", "\/\/i0.hdslb.com\/bfs\/videoshot\/49075258-1.jpg"], + "index": [0, 0, 8, 14, 19, 25, 34, 40, 46, 56, 63, 70, 80, 87, 93, 100, 109, 117, 124, 133, 142, 148, 156, 164, 171, 179, 184, 192, 198, 206, 214, 223, 232, 239, 246, 254, 261, 269, 275, 283, 289, 299, 305, 310, 315, 322, 330, 339, 348, 358, 364, 371, 376, 382, 391, 404, 413, 421, 426, 434, 441, 452, 458, 463, 473, 479, 491, 497, 504, 514, 521, 528, 533, 540, 546, 552, 558, 567, 575, 586, 591, 602, 609, 615, 623, 629, 639, 647, 653, 658, 664, 670, 675, 684, 691, 698, 713, 724, 729, 737, 743, 754, 762, 772, 779, 784, 797, 803, 810, 817, 825, 834, 845, 851, 857, 867, 878, 888, 896, 903, 909, 914, 919, 928, 935, 944, 958, 970, 977, 988, 996, 1004, 1011, 1018, 1026, 1035, 1041, 1048, 1055, 1063, 1073, 1079, 1086, 1095, 1106, 1111, 1124, 1135, 1147, 1153, 1159, 1165, 1171, 1184, 1198, 1209, 1215, 1221, 1228, 1236, 1242, 1253, 1258, 1269, 1276, 1284, 1289, 1300, 1306, 1315, 1321, 1328, 1340, 1347, 1354, 1361, 1366, 1371, 1383, 1390, 1396, 1403, 1415] + } +} +``` + +
+ +## 图片拼版 + +以160x90像素为一张,横向10张,纵向10张,从左到右从上到下进行裁剪 + +图1为0s,图2为8s,图3为14s,以此类推…… + +示例拼版图片url:http://i0.hdslb.com/bfs/videoshot/49075258.jpg + +![](https://i0.hdslb.com/bfs/videoshot/49075258.jpg) + +## bin格式截取时间表 + +bin的内容为uint16数组(2Byte对齐),与json数组一一对应 + +第0项恒为0,从第1项开始作为截取图片的时间(秒) + +示例bin格式截取时间表:http://i0.hdslb.com/bfs/videoshot/49075258.bin + +hex内容如下: + +``` +00000000 00 00 00 00 00 08 00 0e 00 13 00 19 00 22 00 28 |.............".(| +00000010 00 2e 00 38 00 3f 00 46 00 50 00 57 00 5d 00 64 |...8.?.F.P.W.].d| +00000020 00 6d 00 75 00 7c 00 85 00 8e 00 94 00 9c 00 a4 |.m.u.|..........| +00000030 00 ab 00 b3 00 b8 00 c0 00 c6 00 ce 00 d6 00 df |................| +00000040 00 e8 00 ef 00 f6 00 fe 01 05 01 0d 01 13 01 1b |................| +00000050 01 21 01 2b 01 31 01 36 01 3b 01 42 01 4a 01 53 |.!.+.1.6.;.B.J.S| +00000060 01 5c 01 66 01 6c 01 73 01 78 01 7e 01 87 01 94 |.\.f.l.s.x.~....| +00000070 01 9d 01 a5 01 aa 01 b2 01 b9 01 c4 01 ca 01 cf |................| +00000080 01 d9 01 df 01 eb 01 f1 01 f8 02 02 02 09 02 10 |................| +00000090 02 15 02 1c 02 22 02 28 02 2e 02 37 02 3f 02 4a |.....".(...7.?.J| +000000a0 02 4f 02 5a 02 61 02 67 02 6f 02 75 02 7f 02 87 |.O.Z.a.g.o.u....| +000000b0 02 8d 02 92 02 98 02 9e 02 a3 02 ac 02 b3 02 ba |................| +000000c0 02 c9 02 d4 02 d9 02 e1 02 e7 02 f2 02 fa 03 04 |................| +000000d0 03 0b 03 10 03 1d 03 23 03 2a 03 31 03 39 03 42 |.......#.*.1.9.B| +000000e0 03 4d 03 53 03 59 03 63 03 6e 03 78 03 80 03 87 |.M.S.Y.c.n.x....| +000000f0 03 8d 03 92 03 97 03 a0 03 a7 03 b0 03 be 03 ca |................| +00000100 03 d1 03 dc 03 e4 03 ec 03 f3 03 fa 04 02 04 0b |................| +00000110 04 11 04 18 04 1f 04 27 04 31 04 37 04 3e 04 47 |.......'.1.7.>.G| +00000120 04 52 04 57 04 64 04 6f 04 7b 04 81 04 87 04 8d |.R.W.d.o.{......| +00000130 04 93 04 a0 04 ae 04 b9 04 bf 04 c5 04 cc 04 d4 |................| +00000140 04 da 04 e5 04 ea 04 f5 04 fc 05 04 05 09 05 14 |................| +00000150 05 1a 05 23 05 29 05 30 05 3c 05 43 05 4a 05 51 |...#.).0.<.C.J.Q| +00000160 05 56 05 5b 05 67 05 6e 05 74 05 7b 05 87 |.V.[.g.n.t.{..| +``` diff --git a/docs/video/status_number.md b/docs/video/status_number.md new file mode 100644 index 0000000000..222c5a1c19 --- /dev/null +++ b/docs/video/status_number.md @@ -0,0 +1,202 @@ +# 视频状态数 + +- [视频状态数(仅avid)](#视频状态数仅avid) +- [视频状态数(bvid/avid)](#视频状态数bvid/avid) + +--- + +## 视频状态数(仅avid) +> https://api.bilibili.com/archive_stat/stat + +*请求方式:GET* + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | ---- | -------- | ------ | ---- | +| aid | num | 稿件avid | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ----------------------------------------------- | +| code | num | 返回值 | 0:成功
40001:请求错误
40003:无视频 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---------- | ------------------------ | ------------------------------ | -------------------- | +| aid | num | 稿件avid | | +| view | 正常:num
屏蔽:str | 正常:播放次数
屏蔽:"--" | | +| danmaku | num | 弹幕条数 | | +| reply | num | 评论条数 | | +| favorite | num | 收藏人数 | | +| coin | num | 投币枚数 | | +| share | num | 分享次数 | | +| now_rank | num | 0 | 作用尚不明确 | +| his_rank | num | 历史最高排行 | | +| like | num | 获赞次数 | | +| dislike | num | 0 | 作用尚不明确 | +| no_reprint | num | 禁止转载标志 | 0:无
1:禁止 | +| copyright | num | 版权标志 | 1:自制
2:转载 | + +**示例:** + +查询视频`av91572143`的状态数 + +avid方式: + +```shell +curl -G 'https://api.bilibili.com/archive_stat/stat' \ +--data-urlencode 'aid=91572143' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "aid": 91572143, + "view": 2236510, + "danmaku": 37856, + "reply": 5723, + "favorite": 131317, + "coin": 143389, + "share": 44598, + "now_rank": 0, + "his_rank": 4, + "like": 264314, + "dislike": 0, + "no_reprint": 1, + "copyright": 1 + } +} +``` + +
+ +## 视频状态数(bvid/avid) + +> https://api.bilibili.com/x/web-interface/archive/stat + +*请求方式:GET* + +此接口请求头中UA值存在`python`字串,会返回-412错误 + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | ---- | -------- | ------------ | ------------------ | +| aid | num | 稿件avid | 必要(可选) | avid与bvid任选一个 | +| bvid | str | 稿件bvid | 必要(可选) | avid与bvid任选一个 | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------------------ | +| code | num | 返回值 | 0:成功
-400:请求错误
-412:请求被拦截
40003:无视频 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---------- | ------------------------ | ------------------------------ | -------------------- | +| aid | num | 稿件avid | | +| bvid | str | 稿件bvid | | +| view | 正常:num
屏蔽:str | 正常:播放次数
屏蔽:"--" | | +| danmaku | num | 弹幕条数 | | +| reply | num | 评论条数 | | +| favorite | num | 收藏人数 | | +| coin | num | 投币枚数 | | +| share | num | 分享次数 | | +| now_rank | num | 0 | 作用尚不明确 | +| his_rank | num | 历史最高排行 | | +| like | num | 获赞次数 | | +| dislike | num | 0 | 作用尚不明确 | +| no_reprint | num | 禁止转载标志 | 0:无
1:禁止 | +| copyright | num | 版权标志 | 1:自制
2:转载 | +| argue_msg | str | 警告信息 | 默认为空 | +| evaluation | str | 视频评分 | 默认为空 | + +**示例:** + +查询视频`av2271112`/`BV1es411D7sW`的状态数 + +avid方式: + +```shell +curl -G 'https://api.bilibili.com/x/web-interface/archive/stat' \ +--data-urlencode 'aid=2271112' +``` + +bvid方式: + +```shell +curl -G 'https://api.bilibili.com/x/web-interface/archive/stat' \ +--data-urlencode 'bvid=BV1es411D7sW' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "aid": 2271112, + "bvid": "BV1es411D7sW", + "view": 26408224, + "danmaku": 161919, + "reply": 52825, + "favorite": 892560, + "coin": 599649, + "share": 240573, + "like": 628592, + "now_rank": 0, + "his_rank": 4, + "no_reprint": 0, + "copyright": 1, + "argue_msg": "", + "evaluation": "" + } +} +``` + +
+ +当UA为`2333python2333`时,则无法访问此接口: + +```shell +curl -G 'https://api.bilibili.com/x/web-interface/archive/stat' \ +--data-urlencode 'aid=2271112' \ +-A '2333python2333' +``` + +
+查看响应示例: + +```json +{ + "code":-412, + "message":"请求被拦截", + "ttl":1, + "data":null +} +``` + +
diff --git a/docs/video/tags.md b/docs/video/tags.md new file mode 100644 index 0000000000..bd911bdb37 --- /dev/null +++ b/docs/video/tags.md @@ -0,0 +1,316 @@ +# 视频TAG + +- [获取视频TAG信息](#获取视频TAG信息) +- [点赞&取消点赞视频TAG](#点赞&取消点赞视频TAG) +- [点踩&取消点踩视频TAG](#点踩&取消点踩视频TAG) + +--- + +## 获取视频TAG信息 + +> https://api.bilibili.com/x/tag/archive/tags + +*请求方式:GET* + +认证方式:Cookie(SESSDATA) + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | ---- | -------- | ------------ | ------------------ | +| aid | num | 稿件avid | 必要(可选) | avid与bvid任选一个 | +| bvid | str | 稿件bvid | 必要(可选) | avid与bvid任选一个 | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ------ | -------- | ---------------------------- | +| code | num | 返回值 | 0:成功
-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_name | str | TAG名称 | | +| cover | str | TAG图片url | | +| head_cover | str | TAG页面头图url | | +| content | str | TAG介绍 | | +| short_content | str | TAG简介 | | +| type | num | ??? | | +| state | num | 0 | | +| ctime | num | 创建时间 | 时间戳 | +| count | obj | 状态数 | | +| is_atten | num | 是否关注 | 0:未关注
1:已关注
需要登录(Cookie)
未登录为0 | +| likes | num | 0 | 作用尚不明确 | +| hates | num | 0 | 作用尚不明确 | +| attribute | num | 0 | 作用尚不明确 | +| liked | num | 是否已经点赞 | 0:未点赞
1:已点赞
需要登录(Cookie)
未登录为0 | +| hated | num | 是否已经点踩 | 0:未点踩
1:已点踩
需要登录(Cookie)
未登录为0 | +| extra_attr | num | ? ? ? | | + +`data`数组中的对象中的`count`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----- | ---- | ------------- | ------------ | +| view | num | 0 | 作用尚不明确 | +| use | num | 视频添加TAG数 | | +| atten | num | TAG关注 | | + +**示例:** + +查询视频`av89772773`/`BV1M741177Kg`的TAG + +avid方式: + +```shell +curl -G 'https://api.bilibili.com/x/tag/archive/tags' \ +--data-urlencode 'aid=89772773' \ +-b 'SESSDATA=xxx' +``` + +bvid方式: + +```shell +curl -G 'https://api.bilibili.com/x/tag/archive/tags' \ +--data-urlencode 'bvid=BV1M741177Kg' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```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)和漫画(comics,manga;特别是故事性漫画)之间联系日趋紧密,两者常被合而为“动漫”。\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 + }] +} +``` + +
+ +## 点赞&取消点赞视频TAG + +> https://api.bilibili.com/x/tag/archive/like2 + +*请求方式:POST* + +认证方式:Cookie(SESSDATA) + +重复请求为取消 + +**正文参数( application/x-www-form-urlencoded ):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | ---- | ------------------------ | ------ | ---- | +| aid | num | 稿件avid | 必要 | | +| tag_id | num | tag_id | 必要 | | +| csrf | str | CSRF Token(位于cookie) | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ---------------------------- | +| code | num | 返回值 | 0:成功
-400:请求错误 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | + +**示例:** + +为视频`av89772773`的TAG`12620189`点赞 + +```shell +curl 'https://api.bilibili.com/x/tag/archive/like2' \ +--data-urlencode 'aid=89772773' \ +--data-urlencode 'tag_id=12620189' \ +--data-urlencode 'csrf=xxx' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1 +} +``` + +
+ +## 点踩&取消点踩视频TAG + +> https://api.bilibili.com/x/tag/archive/hate2 + +*请求方式:POST* + +认证方式:Cookie(SESSDATA) + +重复访问为取消 + +**正文参数( application/x-www-form-urlencoded ):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | ---- | ------------------------ | ------ | ---- | +| aid | num | 稿件avid | 必要 | | +| tag_id | num | tag_id | 必要 | | +| csrf | str | CSRF Token(位于cookie) | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ---------------------------- | +| code | num | 返回值 | 0:成功
-400:请求错误 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | + +**示例:** + +为视频`av89772773`的TAG`7520816`点踩 + +```shell +curl 'https://pi.bilibili.com/x/tag/archive/hate2' \ +--data-urlencode 'aid=89772773' \ +--data-urlencode 'tag_id=7520816' \ +--data-urlencode 'csrf=xxx' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1 +} +``` + +
diff --git a/docs/video/video_zone.md b/docs/video/video_zone.md new file mode 100644 index 0000000000..cbf2387876 --- /dev/null +++ b/docs/video/video_zone.md @@ -0,0 +1,322 @@ +# 视频分区一览 + +用于通过稿件 avid 判断所在的分区,或推荐分区视频等....... + +亦可用于更深♂入了解B站的分区 + +--- + +## 动画 + + + +| 名称 | 代号 | tid | 简介 | url路由 | +| -------------- | ---------- | ---- | ------------------------------------------------------------ | ------------------------------------------------------------ | +| 动画(主分区) | douga | 1 | | [/v/douga](https://www.bilibili.com/v/douga) | +| MAD·AMV | mad | 24 | 具有一定创作度的动/静画二次创作视频 | [/v/douga/mad](https://www.bilibili.com/v/douga/mad) | +| MMD·3D | mmd | 25 | 使用mmd(mikumikudance)和其他3d建模类软件制作的视频 | [/v/douga/mmd](https://www.bilibili.com/v/douga/mmd) | +| 短片·手书·配音 | voice | 47 | 追求个人特色和创意表达的自制动画短片、手书(绘)及acgn相关配音 | [/v/douga/voice](https://www.bilibili.com/v/douga/voice) | +| 手办·模玩 | garage_kit | 210 | 手办模玩的测评、改造或其他衍生内容 | [/v/douga/garage_kit](https://www.bilibili.com/v/douga/garage_kit) | +| 特摄 | tokusatsu | 86 | 特摄相关衍生视频 | [/v/douga/tokusatsu](https://www.bilibili.com/v/douga/tokusatsu) | +| 动漫杂谈 | acgntalks | 253 | 以谈话形式对ACGN文化圈进行的鉴赏、吐槽、评点、解说、推荐、科普等内容 | [/v/douga/acgntalks](https://www.bilibili.com/v/douga/acgntalks) | +| 综合 | other | 27 | 以动画及动画相关内容为素材,包括但不仅限于音频替换、恶搞改编、排行榜等内容 | [/v/douga/other](https://www.bilibili.com/v/douga/other) | + +## 番剧 + + + +| 名称 | 代号 | tid | 简介 | url路由 | +|---------|-------------|-----|----------------------------------------------|----------------------------------------------------------------------| +| 番剧(主分区) | anime | 13 | | [/anime](https://www.bilibili.com/anime) | +| 资讯 | information | 51 | 以动画/轻小说/漫画/杂志为主的资讯内容,PV/CM/特报/冒头/映像/预告 | [/v/anime/information](https://www.bilibili.com/v/anime/information) | +| 官方延伸 | offical | 152 | 以动画番剧及声优为主的EVENT/生放送/DRAMA/RADIO/LIVE/特典/冒头等 | [/v/anime/offical](https://www.bilibili.com/v/anime/offical) | +| 完结动画 | finish | 32 | 已完结TV/WEB动画及其独立系列,旧剧场版/OVA/SP/未放送 | [/v/anime/finish](https://www.bilibili.com/v/anime/finish) | +| 连载动画 | serial | 33 | 连载中TV/WEB动画,新剧场版/OVA/SP/未放送/小剧场 | [/v/anime/serial](https://www.bilibili.com/v/anime/serial) | + +## 国创 + + + +| 名称 | 代号 | tid | 简介 | url路由 | +|---------|-------------|-----|----------------------|------------------------------------------------------------------------------| +| 国创(主分区) | guochuang | 167 | | [/guochuang](https://www.bilibili.com/guochuang) | +| 国产动画 | chinese | 153 | 国产连载动画,国产完结动画 | [/v/guochuang/chinese](https://www.bilibili.com/v/guochuang/chinese) | +| 国产原创相关 | original | 168 | 以国产动画、漫画、小说为素材的二次创作 | [/v/guochuang/original](https://www.bilibili.com/v/guochuang/original) | +| 布袋戏 | puppetry | 169 | 布袋戏以及相关剪辑节目 | [/v/guochuang/puppetry](https://www.bilibili.com/v/guochuang/puppetry) | +| 资讯 | information | 170 | 原创国产动画、漫画的相关资讯、宣传节目等 | [/v/guochuang/information](https://www.bilibili.com/v/guochuang/information) | +| 动态漫·广播剧 | motioncomic | 195 | 国产动态漫画、有声漫画、广播剧 | [/v/guochuang/motioncomic](https://www.bilibili.com/v/guochuang/motioncomic) | + +## 音乐 + + + +| 名称 | 代号 | tid | 简介 | url路由 | +| ---------------- | -------------- | ------- | ------------------------------------------------------------ | ------------------------------------------------------------ | +| 音乐(主分区) | music | 3 | | [/v/music](https://www.bilibili.com/v/music) | +| 原创音乐 | original | 28 | 原创歌曲及纯音乐,包括改编、重编曲及remix | [/v/music/original](https://www.bilibili.com/v/music/original) | +| 翻唱 | cover | 31 | 对曲目的人声再演绎视频 | [/v/music/cover](https://www.bilibili.com/v/music/cover) | +| VOCALOID·UTAU | vocaloid | 30 | 以vocaloid等歌声合成引擎为基础,运用各类音源进行的创作 | [/v/music/vocaloid](https://www.bilibili.com/v/music/vocaloid) | +| 演奏 | perform | 59 | 乐器和非传统乐器器材的演奏作品 | [/v/music/perform](https://www.bilibili.com/v/music/perform) | +| MV | mv | 193 | 为音乐作品配合拍摄或制作的音乐录影带(music video),以及自制拍摄、剪辑、翻拍mv | [/v/music/mv](https://www.bilibili.com/v/music/mv) | +| 音乐现场 | live | 29 | 音乐表演的实况视频,包括官方/个人拍摄的综艺节目、音乐剧、音乐节、演唱会等 | [/v/music/live](https://www.bilibili.com/v/music/live) | +| 音乐综合 | other | 130 | 所有无法被收纳到其他音乐二级分区的音乐类视频 | [/v/music/other](https://www.bilibili.com/v/music/other) | +| 乐评盘点 | commentary | 243 | 音乐类新闻、盘点、点评、reaction、榜单、采访、幕后故事、唱片开箱等 | [/v/music/commentary](https://www.bilibili.com/v/music/commentary) | +| 音乐教学 | tutorial | 244 | 以音乐教学为目的的内容 | [/v/music/tutorial](https://www.bilibili.com/v/music/tutorial) | +| ~~电音~~(已下线) | ~~electronic~~ | ~~194~~ | ~~以电子合成器、音乐软体等产生的电子声响制作的音乐~~ | ~~/v/music/electronic~~ | + +## 舞蹈 + + + +| 名称 | 代号 | tid | 简介 | url路由 | +| ------------ | ------- | ---- | ------------------------------------------------------------ | ------------------------------------------------------------ | +| 舞蹈(主分区) | dance | 129 | | [/v/dance](https://www.bilibili.com/v/dance) | +| 宅舞 | otaku | 20 | 与acg相关的翻跳、原创舞蹈 | [/v/dance/otaku](https://www.bilibili.com/v/dance/otaku) | +| 舞蹈综合 | three_d | 154 | 收录无法定义到其他舞蹈子分区的舞蹈视频 | [/v/dance/three_d](https://www.bilibili.com/v/dance/three_d) | +| 舞蹈教程 | demo | 156 | 镜面慢速,动作分解,基础教程等具有教学意义的舞蹈视频 | [/v/dance/demo](https://www.bilibili.com/v/dance/demo) | +| 街舞 | hiphop | 198 | 收录街舞相关内容,包括赛事现场、舞室作品、个人翻跳、freestyle等 | [/v/dance/hiphop](https://www.bilibili.com/v/dance/hiphop) | +| 明星舞蹈 | star | 199 | 国内外明星发布的官方舞蹈及其翻跳内容 | [/v/dance/star](https://www.bilibili.com/v/dance/star) | +| 中国舞 | china | 200 | 传承中国艺术文化的舞蹈内容,包括古典舞、民族民间舞、汉唐舞、古风舞等 | [/v/dance/china](https://www.bilibili.com/v/dance/china) | + +## 游戏 + + + +| 名称 | 代号 | tid | 简介 | url路由 | +| ------------ | ----------- | ---- | ------------------------------------------------------------ | ------------------------------------------------------------ | +| 游戏(主分区) | game | 4 | | [/v/game](https://www.bilibili.com/v/game) | +| 单机游戏 | stand_alone | 17 | 以所有平台(pc、主机、移动端)的单机或联机游戏为主的视频内容,包括游戏预告、cg、实况解说及相关的评测、杂谈与视频剪辑等 | [/v/game/stand_alone](https://www.bilibili.com/v/game/stand_alone) | +| 电子竞技 | esports | 171 | 具有高对抗性的电子竞技游戏项目,其相关的赛事、实况、攻略、解说、短剧等视频。 | [/v/game/esports](https://www.bilibili.com/v/game/esports) | +| 手机游戏 | mobile | 172 | 以手机及平板设备为主要平台的游戏,其相关的实况、攻略、解说、短剧、演示等视频。 | [/v/game/mobile](https://www.bilibili.com/v/game/mobile) | +| 网络游戏 | online | 65 | 由网络运营商运营的多人在线游戏,以及电子竞技的相关游戏内容。包括赛事、攻略、实况、解说等相关视频 | [/v/game/online](https://www.bilibili.com/v/game/online) | +| 桌游棋牌 | board | 173 | 桌游、棋牌、卡牌对战等及其相关电子版游戏的实况、攻略、解说、演示等视频。 | [/v/game/board](https://www.bilibili.com/v/game/board) | +| GMV | gmv | 121 | 由游戏素材制作的mv视频。以游戏内容或cg为主制作的,具有一定创作程度的mv类型的视频 | [/v/game/gmv](https://www.bilibili.com/v/game/gmv) | +| 音游 | music | 136 | 各个平台上,通过配合音乐与节奏而进行的音乐类游戏视频 | [/v/game/music](https://www.bilibili.com/v/game/music) | +| Mugen | mugen | 19 | 以mugen引擎为平台制作、或与mugen相关的游戏视频 | [/v/game/mugen](https://www.bilibili.com/v/game/mugen) | + +## 知识 + + + +| 名称 | 代号 | tid | 简介 | url路由 | +| ---------------------------------------------- | ----------------- | ------ | ------------------------------------------------------ | ------------------------------------------------------------ | +| 知识(主分区) | knowledge | 36 | | [/v/knowledge](https://www.bilibili.com/v/knowledge) | +| 科学科普 | science | 201 | 回答你的十万个为什么 | [/v/knowledge/science](https://www.bilibili.com/v/knowledge/science) | +| 社科·法律·心理(~~原社科人文、原趣味科普人文~~) | social_science | 124 | 基于社会科学、法学、心理学展开或个人观点输出的知识视频 | [/v/knowledge/social_science](https://www.bilibili.com/v/knowledge/social_science) | +| 人文历史 | humanity_history | 228 | 看看古今人物,聊聊历史过往,品品文学典籍 | [/v/knowledge/humanity_history](https://www.bilibili.com/v/knowledge/humanity_history) | +| 财经商业 | business | 207 | 说金融市场,谈宏观经济,一起畅聊商业故事 | [/v/knowledge/finance](https://www.bilibili.com/v/knowledge/finance) | +| 校园学习 | campus | 208 | 老师很有趣,学生也有才,我们一起搞学习 | [/v/knowledge/campus](https://www.bilibili.com/v/knowledge/campus) | +| 职业职场 | career | 209 | 职业分享、升级指南,一起成为最有料的职场人 | [/v/knowledge/career](https://www.bilibili.com/v/knowledge/career) | +| 设计·创意 | design | 229 | 天马行空,创意设计,都在这里 | [/v/knowledge/design](https://www.bilibili.com/v/knowledge/design) | +| 野生技术协会 | skill | 122 | 技能党集合,是时候展示真正的技术了 | [/v/knowledge/skill](https://www.bilibili.com/v/knowledge/skill) | +| ~~演讲·公开课~~(已下线) | ~~speech_course~~ | ~~39~~ | ~~涨知识的好地方,给爱学习的你~~ | ~~/v/technology/speech_course~~ | +| ~~星海~~(已下线) | ~~military~~ | ~~96~~ | ~~军事类内容的圣地~~ | ~~/v/technology/military~~ | +| ~~机械~~(已下线) | ~~mechanical~~ | ~~98~~ | ~~机械设备展示或制作视频~~ | ~~/v/technology/mechanical~~ | + +## 科技 + +新:旧: + +~~原数码分区~~ + +| 名称 | 代号 | tid | 简介 | url路由 | +| ------------------------------- | ------------------- | ------- | ---------------------------------------------------------- | ------------------------------------------------------------ | +| 科技(主分区) | tech | 188 | | [/v/tech](https://www.bilibili.com/v/tech) | +| 数码(~~原手机平板~~) | digital | 95 | 科技数码产品大全,一起来做发烧友 | [/v/tech/digital](https://www.bilibili.com/v/tech/digital) | +| 软件应用 | application | 230 | 超全软件应用指南 | [/v/tech/application](https://www.bilibili.com/v/tech/application) | +| 计算机技术 | computer_tech | 231 | 研究分析、教学演示、经验分享......有关计算机技术的都在这里 | [/v/tech/computer_tech](https://www.bilibili.com/v/tech/computer_tech) | +| 科工机械 (~~原工业·工程·机械~~) | industry | 232 | 前方高能,机甲重工即将出没 | [/v/tech/industry](https://www.bilibili.com/v/tech/industry) | +| 极客DIY | diy | 233 | 炫酷技能,极客文化,硬核技巧,准备好你的惊讶 | [/v/tech/diy](https://www.bilibili.com/v/tech/diy) | +| ~~电脑装机~~(已下线) | ~~pc~~ | ~~189~~ | ~~电脑、笔记本、装机配件、外设和软件教程等相关视频~~ | ~~/v/digital/pc~~ | +| ~~摄影摄像~~(已下线) | ~~photography~~ | ~~190~~ | ~~摄影摄像器材、拍摄剪辑技巧、拍摄作品分享等相关视频~~ | ~~/v/digital/photography~~ | +| ~~影音智能~~(已下线) | ~~intelligence_av~~ | ~~191~~ | ~~影音设备、智能产品等相关视频~~ | ~~/v/digital/intelligence_av~~ | + +## 运动 + + + +| 名称 | 代号 | tid | 简介 | url路由 | +| ------------ | ------------- | ---- | ------------------------------------------------------------ | ------------------------------------------------------------ | +| 运动(主分区) | sports | 234 | | [/v/sports](https://www.bilibili.com/v/sports) | +| 篮球 | basketball | 235 | 与篮球相关的视频,包括但不限于篮球赛事、教学、评述、剪辑、剧情等相关内容 | [/v/sports/basketball](https://www.bilibili.com/v/sports/basketball) | +| 足球 | football | 249 | 与足球相关的视频,包括但不限于足球赛事、教学、评述、剪辑、剧情等相关内容 | [/v/sports/football](https://www.bilibili.com/v/sports/football) | +| 健身 | aerobics | 164 | 与健身相关的视频,包括但不限于瑜伽、crossfit、健美、力量举、普拉提、街健等相关内容 | [/v/sports/aerobics](https://www.bilibili.com/v/sports/aerobics) | +| 竞技体育 | athletic | 236 | 与竞技体育相关的视频,包括但不限于乒乓、羽毛球、排球、赛车等竞技项目的赛事、评述、剪辑、剧情等相关内容 | [/v/sports/culture](https://www.bilibili.com/v/sports/culture) | +| 运动文化 | culture | 237 | 与运动文化相关的视频,包络但不限于球鞋、球衣、球星卡等运动衍生品的分享、解读,体育产业的分析、科普等相关内容 | [/v/sports/culture](https://www.bilibili.com/v/sports/culture) | +| 运动综合 | comprehensive | 238 | 与运动综合相关的视频,包括但不限于钓鱼、骑行、滑板等日常运动分享、教学、Vlog等相关内容 | [/v/sports/comprehensive](https://www.bilibili.com/v/sports/comprehensive) | + +## 汽车 + + + +| 名称 | 代号 | tid | 简介 | url路由 | +| -------------------- | ---------------- | ------- | ------------------------------------------------------------ | ------------------------------------------------------------ | +| 汽车(主分区) | car | 223 | | [/v/car](https://www.bilibili.com/v/car) | +| 赛车 | racing | 245 | f1等汽车运动相关 | [/v/car/racing](https://www.bilibili.com/v/car/racing) | +| 改装玩车 | modifiedvehicle | 246 | 汽车文化及改装车相关内容,包括改装车、老车修复介绍、汽车聚会分享等内容 | [/v/car/modifiedvehicle](https://www.bilibili.com/v/car/modifiedvehicle) | +| 新能源车 | newenergyvehicle | 247 | 新能源汽车相关内容,包括电动汽车、混合动力汽车等车型种类,包含不限于新车资讯、试驾体验、专业评测、技术解读、知识科普等内容 | [/v/car/newenergyvehicle](https://www.bilibili.com/v/car/newenergyvehicle) | +| 房车 | touringcar | 248 | 房车及营地相关内容,包括不限于产品介绍、驾驶体验、房车生活和房车旅行等内容 | [/v/car/touringcar](https://www.bilibili.com/v/car/touringcar) | +| 摩托车 | motorcycle | 240 | 骑士们集合啦 | [/v/car/motorcycle](https://www.bilibili.com/v/car/motorcycle) | +| 购车攻略 | strategy | 227 | 丰富详实的购车建议和新车体验 | [/v/car/strategy](https://www.bilibili.com/v/car/strategy) | +| 汽车生活 | life | 176 | 分享汽车及出行相关的生活体验类视频 | [/v/car/life](https://www.bilibili.com/v/car/life) | +| ~~汽车文化~~(已下线) | ~~culture~~ | ~~224~~ | ~~车迷的精神圣地,包括汽车赛事、品牌历史、汽车改装、经典车型和汽车模型等~~ | ~~/v/car/culture~~ | +| ~~汽车极客~~(已下线) | ~~geek~~ | ~~225~~ | ~~汽车硬核达人聚集地,包括DIY造车、专业评测和技术知识分享~~ | ~~/v/car/geek~~ | +| ~~智能出行~~(已下线) | ~~smart~~ | ~~226~~ | ~~探索新能源汽车和未来智能出行的前沿阵地~~ | ~~/v/car/smart~~ | + +## 生活 + + + +| 名称 | 代号 | tid | 简介 | url路由 | +| ------------------ | -------------- | ------- | ------------------------------------------------------------ | ------------------------------------------------------------ | +| 生活(主分区) | life | 160 | | [/v/life](https://www.bilibili.com/v/life) | +| 搞笑 | funny | 138 | 各种沙雕有趣的搞笑剪辑,挑战,表演,配音等视频 | [/v/life/funny](https://www.bilibili.com/v/life/funny) | +| 出行 | travel | 250 | 为达到观光游览、休闲娱乐为目的的远途旅行、中近途户外生活、本地探店 | [/v/life/travel](https://www.bilibili.com/v/life/travel) | +| 三农 | rurallife | 251 | 分享美好农村生活 | [/v/life/rurallife](https://www.bilibili.com/v/life/rurallife) | +| 家居房产 | home | 239 | 与买房、装修、居家生活相关的分享 | [/v/life/home](https://www.bilibili.com/v/life/home) | +| 手工 | handmake | 161 | 手工制品的制作过程或成品展示、教程、测评类视频 | [/v/life/handmake](https://www.bilibili.com/v/life/handmake) | +| 绘画 | painting | 162 | 绘画过程或绘画教程,以及绘画相关的所有视频 | [/v/life/painting](https://www.bilibili.com/v/life/painting) | +| 日常 | daily | 21 | 记录日常生活,分享生活故事 | [/v/life/daily](https://www.bilibili.com/v/life/daily) | +| ~~美食圈~~(重定向) | ~~food~~ | ~~76~~ | ~~美食鉴赏&料理制作教程~~ | ~~/v/life/food~~ | +| ~~动物圈~~(重定向) | ~~animal~~ | ~~75~~ | ~~萌萌的动物都在这里哦~~ | ~~/v/life/animal~~ | +| ~~运动~~(重定向) | ~~sports~~ | ~~163~~ | ~~运动相关的记录、教程、装备评测和精彩瞬间剪辑视频~~ | ~~/v/life/sports~~ | +| ~~汽车~~(重定向) | ~~automobile~~ | ~~176~~ | ~~专业汽车资讯,分享车生活~~ | ~~/v/life/automobile~~ | +| ~~其他~~(已下线) | ~~other~~ | ~~174~~ | ~~对于分区归属不明的视频进行归纳整合的特定分区~~ | ~~/v/life/other~~ | + +## 美食 + + + +| 名称 | 代号 | tid | 简介 | url路由 | +| -------------------------------- | ----------- | ---- | -------------------------------- | ------------------------------------------------------------ | +| 美食(主分区) | food | 211 | | [/v/food](https://www.bilibili.com/v/food) | +| 美食制作(~~原[生活]->[美食圈]~~) | make | 76 | 学做人间美味,展示精湛厨艺 | [/v/food/make](https://www.bilibili.com/v/food/make) | +| 美食侦探 | detective | 212 | 寻找美味餐厅,发现街头美食 | [/v/food/detective](https://www.bilibili.com/v/food/detective) | +| 美食测评 | measurement | 213 | 吃货世界,品尝世间美味 | [/v/food/measurement](https://www.bilibili.com/v/food/measurement) | +| 田园美食 | rural | 214 | 品味乡野美食,寻找山与海的味道 | [/v/food/rural](https://www.bilibili.com/v/food/rural) | +| 美食记录 | record | 215 | 记录一日三餐,给生活添一点幸福感 | [/v/food/record](https://www.bilibili.com/v/food/record) | + +## 动物圈 + + + +| 名称 | 代号 | tid | 简介 | url路由 | +| -------------- | ---------------- | ---- | ------------------------------------------------------------ | ------------------------------------------------------------ | +| 动物圈(主分区) | animal | 217 | | [/v/animal](https://www.bilibili.com/v/animal) | +| 喵星人 | cat | 218 | 喵喵喵喵喵 | [/v/animal/cat](https://www.bilibili.com/v/animal/cat) | +| 汪星人 | dog | 219 | 汪汪汪汪汪 | [/v/animal/dog](https://www.bilibili.com/v/animal/dog) | +| 大熊猫 | panda | 220 | 芝麻汤圆营业中 | [/v/animal/panda](https://www.bilibili.com/v/animal/panda) | +| 野生动物 | wild_animal | 221 | 内有“猛兽”出没 | [/v/animal/wild_animal](https://www.bilibili.com/v/animal/wild_animal) | +| 爬宠 | reptiles | 222 | 鳞甲有灵 | [/v/animal/reptiles](https://www.bilibili.com/v/animal/reptiles) | +| 动物综合 | animal_composite | 75 | 收录除上述子分区外,其余动物相关视频以及非动物主体或多个动物主体的动物相关延伸内容 | [/v/animal/animal_composite](https://www.bilibili.com/v/animal/animal_composite) | + +## 鬼畜 + + + +| 名称 | 代号 | tid | 简介 | url路由 | +| ------------ | --------------- | ---- | ------------------------------------------------------------ | ------------------------------------------------------------ | +| 鬼畜(主分区) | kichiku | 119 | | [/v/kichiku](https://www.bilibili.com/v/kichiku) | +| 鬼畜调教 | guide | 22 | 使用素材在音频、画面上做一定处理,达到与bgm一定的同步感 | [/v/kichiku/guide](https://www.bilibili.com/v/kichiku/guide) | +| 音MAD | mad | 26 | 使用素材音频进行一定的二次创作来达到还原原曲的非商业性质稿件 | [/v/kichiku/mad/v/kichiku/mad](https://www.bilibili.com/v/kichiku/mad) | +| 人力VOCALOID | manual_vocaloid | 126 | 将人物或者角色的无伴奏素材进行人工调音,使其就像VOCALOID一样歌唱的技术 | [/v/kichiku/manual_vocaloid](https://www.bilibili.com/v/kichiku/manual_vocaloid) | +| 鬼畜剧场 | theatre | 216 | 使用素材进行人工剪辑编排的有剧情的作品 | [/v/kichiku/theatre](https://www.bilibili.com/v/kichiku/theatre) | +| 教程演示 | course | 127 | 鬼畜相关的科普和教程演示 | [/v/kichiku/course](https://www.bilibili.com/v/kichiku/course) | + +## 时尚 + + + +| 名称 | 代号 | tid | 简介 | url路由 | +| ------------------ | ------------ | ------- | ------------------------------------------------------------ | ------------------------------------------------------------ | +| 时尚(主分区) | fashion | 155 | | [/v/fashion](https://www.bilibili.com/v/fashion) | +| 美妆护肤 | makeup | 157 | 彩妆护肤、美甲美发、仿妆、医美相关内容分享或产品测评 | [/v/fashion/makeup](https://www.bilibili.com/v/fashion/makeup) | +| 仿妆cos | cos | 252 | 对二次元、三次元人物角色进行模仿、还原、展示、演绎的内容 | [/v/fashion/cos](https://www.bilibili.com/v/fashion/cos) | +| 穿搭 | clothing | 158 | 穿搭风格、穿搭技巧的展示分享,涵盖衣服、鞋靴、箱包配件、配饰(帽子、钟表、珠宝首饰)等 | [/v/fashion/clothing](https://www.bilibili.com/v/fashion/clothing) | +| 时尚潮流 | catwalk | 159 | 时尚街拍、时装周、时尚大片,时尚品牌、潮流等行业相关记录及知识科普 | [/v/fashion/catwalk](https://www.bilibili.com/v/fashion/catwalk) | +| ~~健身~~(重定向) | ~~aerobics~~ | ~~164~~ | ~~器械、有氧、拉伸运动等,以达到强身健体、减肥瘦身、形体塑造目的~~ | ~~/v/fashion/aerobics~~ | +| ~~风尚标~~(已下线) | ~~trends~~ | ~~192~~ | ~~时尚明星专访、街拍、时尚购物相关知识科普~~ | ~~/v/fashion/trends~~ | + +## 资讯 + +**注:该分区无排名功能** + + + +| 名称 | 代号 | tid | 简介 | url路由 | +|---------|-------------|-----|------------------------|----------------------------------------------------------------------------| +| 资讯(主分区) | information | 202 | | [/v/information](https://www.bilibili.com/v/information) | +| 热点 | hotspot | 203 | 全民关注的时政热门资讯 | [/v/information/hotspot](https://www.bilibili.com/v/information/hotspot) | +| 环球 | global | 204 | 全球范围内发生的具有重大影响力的事件动态 | [/v/information/global](https://www.bilibili.com/v/information/global) | +| 社会 | social | 205 | 日常生活的社会事件、社会问题、社会风貌的报道 | [/v/information/social](https://www.bilibili.com/v/information/social) | +| 综合 | multiple | 206 | 除上述领域外其它垂直领域的综合资讯 | [/v/information/multiple](https://www.bilibili.com/v/information/multiple) | + +## 广告 + + + +**该分区已下线** + +| 名称 | 代号 | tid | 简介 | url路由 | +|-------------|--------|---------|-----|--------------| +| ~~广告(主分区)~~ | ~~ad~~ | ~~165~~ | | ~~/v/ad~~ | +| ~~广告~~(已下线) | ~~ad~~ | ~~166~~ | | ~~/v/ad/ad~~ | + +## 娱乐 + + + +| 名称 | 代号 | tid | 简介 | url路由 | +|------------------|-----------|---------|------------------------|--------------------------------------------------------------| +| 娱乐(主分区) | ent | 5 | | [/v/ent](https://www.bilibili.com/v/ent) | +| 综艺 | variety | 71 | 所有综艺相关,全部一手掌握! | [/v/ent/variety](https://www.bilibili.com/v/ent/variety) | +| 娱乐杂谈 | talker | 241 | 娱乐人物解读、娱乐热点点评、娱乐行业分析 | [/v/ent/talker](https://www.bilibili.com/v/ent/talker) | +| 粉丝创作 | fans | 242 | 粉丝向创作视频 | [/v/ent/fans](https://www.bilibili.com/v/ent/fans) | +| 明星综合 | celebrity | 137 | 娱乐圈动态、明星资讯相关 | [/v/ent/celebrity](https://www.bilibili.com/v/ent/celebrity) | +| ~~Korea相关~~(已下线) | ~~korea~~ | ~~131~~ | ~~Korea相关音乐、舞蹈、综艺等视频~~ | ~~/v/ent/korea~~ | + +## 影视 + + + +| 名称 | 代号 | tid | 简介 | url路由 | +| ------------ | ------------ | ---- | -------------------------------- | ------------------------------------------------------------ | +| 影视(主分区) | cinephile | 181 | | [/v/cinephile](https://www.bilibili.com/v/cinephile) | +| 影视杂谈 | cinecism | 182 | 影视评论、解说、吐槽、科普等 | [/v/cinephile/cinecism](https://www.bilibili.com/v/cinephile/cinecism) | +| 影视剪辑 | montage | 183 | 对影视素材进行剪辑再创作的视频 | [/v/cinephile/montage](https://www.bilibili.com/v/cinephile/montage) | +| 小剧场 | shortfilm | 85 | 有场景、有剧情的演绎类内容 | [/v/cinephile/shortfilm](https://www.bilibili.com/v/cinephile/shortfilm) | +| 预告·资讯 | trailer_info | 184 | 影视类相关资讯,预告,花絮等视频 | [/v/cinephile/trailer_info](https://www.bilibili.com/v/cinephile/trailer_info) | + +## 纪录片 + + + +| 名称 | 代号 | tid | 简介 | url路由 | +|----------|-------------|-----|-----------------------------------------------|----------------------------------------------------------------------------| +| 纪录片(主分区) | documentary | 177 | | [/documentary](https://www.bilibili.com/documentary) | +| 人文·历史 | history | 37 | 除宣传片、影视剪辑外的,人文艺术历史纪录剧集或电影、预告、花絮、二创、5分钟以上纪录短片 | [/v/documentary/history](https://www.bilibili.com/v/documentary/history) | +| 科学·探索·自然 | science | 178 | 除演讲、网课、教程外的,科学探索自然纪录剧集或电影、预告、花絮、二创、5分钟以上纪录短片 | [/v/documentary/science](https://www.bilibili.com/v/documentary/science) | +| 军事 | military | 179 | 除时政军事新闻外的,军事纪录剧集或电影、预告、花絮、二创、5分钟以上纪录短片 | [/v/documentary/military](https://www.bilibili.com/v/documentary/military) | +| 社会·美食·旅行 | travel | 180 | 除VLOG、风光摄影外的,社会美食旅行纪录剧集或电影、预告、花絮、二创、5分钟以上纪录短片 | [/v/documentary/travel](https://www.bilibili.com/v/documentary/travel) | + +## 电影 + + + +| 名称 | 代号 | tid | 简介 | url路由 | +|---------|---------|-----|-----|--------------------------------------------------------------| +| 电影(主分区) | movie | 23 | | [/movie](https://www.bilibili.com/movie) | +| 华语电影 | chinese | 147 | | [/v/movie/chinese](https://www.bilibili.com/v/movie/chinese) | +| 欧美电影 | west | 145 | | [/v/movie/west](https://www.bilibili.com/v/movie/west) | +| 日本电影 | japan | 146 | | [/v/movie/japan](https://www.bilibili.com/v/movie/japan) | +| 其他国家 | movie | 83 | | [/v/movie/movie](https://www.bilibili.com/v/movie/movie) | + +## 电视剧 + + + +| 名称 | 代号 | tid | 简介 | url路由 | +|----------|----------|-----|-----|----------------------------------------------------------| +| 电视剧(主分区) | tv | 11 | | [/tv](https://www.bilibili.com/tv) | +| 国产剧 | mainland | 185 | | [/v/tv/mainland](https://www.bilibili.com/v/tv/mainland) | +| 海外剧 | overseas | 187 | | [/v/tv/overseas](https://www.bilibili.com/v/tv/overseas) | diff --git a/docs/video/videostream_url.md b/docs/video/videostream_url.md new file mode 100644 index 0000000000..ed85ac43a9 --- /dev/null +++ b/docs/video/videostream_url.md @@ -0,0 +1,1288 @@ +# 视频流URL + + + +视频为 DASH 或 MP4 流媒体,需调用取流 API 传参视频 id 获取 + +- [qn视频清晰度标识](#qn视频清晰度标识) +- [fnver视频流版本标识](#fnver视频流版本标识) +- [fnval视频流格式标识](#fnval视频流格式标识) +- [视频伴音音质代码](#视频伴音音质代码) +- [获取视频流地址_web端](#获取视频流地址_web端) +- [视频取流说明](#视频取流说明) + +--- + +## qn视频清晰度标识 + +**注:该值在 DASH 格式下无效,因为 DASH 格式会取到所有分辨率的流地址** + +| 值 | 含义 | 备注 | +| ---- | -------------- | ------------------------------------------------------------ | +| 6 | 240P 极速 | 仅 MP4 格式支持
仅`platform=html5`时有效 | +| 16 | 360P 流畅 | | +| 32 | 480P 清晰 | | +| 64 | 720P 高清 | WEB 端默认值
B站前端需要登录才能选择,但是直接发送请求可以不登录就拿到 720P 的取流地址
**无 720P 时则为 720P60** | +| 74 | 720P60 高帧率 | 登录认证 | +| 80 | 1080P 高清 | TV 端与 APP 端默认值
登录认证 | +| 112 | 1080P+ 高码率 | 大会员认证 | +| 116 | 1080P60 高帧率 | 大会员认证 | +| 120 | 4K 超清 | 需要`fnval&128=128`且`fourk=1`
大会员认证 | +| 125 | HDR 真彩色 | 仅支持 DASH 格式
需要`fnval&64=64`
大会员认证 | +| 126 | 杜比视界 | 仅支持 DASH 格式
需要`fnval&512=512`
大会员认证 | +| 127 | 8K 超高清 | 仅支持 DASH 格式
需要`fnval&1024=1024`
大会员认证 | + +例如:请求 1080P+ 的视频,则`qn=112` + +## fnver视频流版本标识 + +目前该值恒为 0,即`fnver=0` + +## fnval视频流格式标识 + +该代码为二进制属性位,如需组合功能需要使用`OR`运算结合一下数值 + +目前 FLV 格式已下线,应避免使用`fnval=0` + +| 值 | 含义 | 备注 | +| ---- | ------------------ | ------------------------------------------------------------ | +| ~~0~~ | ~~FLV 格式~~ | FLV 格式已下线
~~仅 H.264 编码
部分老视频存在分段现象
与 MP4、DASH 格式互斥~~ | +| 1 | MP4 格式 | 仅 H.264 编码
与 ~~FLV~~、DASH 格式互斥 | +| 16 | DASH 格式 | 与 MP4、~~FLV~~ 格式互斥 | +| 64 | 是否需求 HDR 视频 | 需求 DASH 格式
仅 H.265 编码
需要`qn=125`
大会员认证 | +| 128 | 是否需求 4K 分辨率 | 该值与`fourk`字段协同作用
需要`qn=120`
大会员认证 | +| 256 | 是否需求杜比音频 | 需求 DASH 格式
大会员认证 | +| 512 | 是否需求杜比视界 | 需求 DASH 格式
大会员认证 | +| 1024 | 是否需求 8K 分辨率 | 需求 DASH 格式
需要`qn=127`
大会员认证 | +| 2048 | 是否需求 AV1 编码 | 需求 DASH 格式 | + +例如:请求 DASH 格式,且需要 HDR 的视频流,则`fnval=16|64=80` + +## 视频编码代码 + +| 值 | 含义 | 备注 | +| ---- | ---------- | ---------------- | +| 7 | AVC 编码 | 8K 视频不支持该格式 | +| 12 | HEVC 编码 | | +| 13 | AV1 编码 | | + +## 视频伴音音质代码 + +| 值 | 含义 | +| ----- | ---- | +| 30216 | 64K | +| 30232 | 132K | +| 30280 | 192K | +| 30250 | 杜比全景声 | +| 30251 | Hi-Res无损 | + +## 获取视频流地址_web端 + +> https://api.bilibili.com/x/player/playurl + +*请求方式:GET* + +认证方式:Cookie(SESSDATA) + +--- + +关于视频流会员鉴权: + +- 获取 720P 及以上清晰度视频时需要登录(Cookie) + +- 获取高帧率(1080P60)/ 高码率(1080P+)/ HDR / 杜比视界 视频时需要有大会员的账号登录(Cookie) + +- 获取会员专属视频时需要登录(Cookie) + +- 部分特殊视频(如平台宣传片、活动视频等)不需要大会员账号认证 + +--- + +获取 url 有效时间为 120min,超时失效需要重新获取 + +~~部分视频会有分段,需要特别注意~~(FLV 格式已下线,不可能出现分段 + +若视频有分P,仅为单P视频的 url,换P则需传参对应 CID 重新获取 + +**url参数:** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ------ | ---- | ---------------- | ------------ | ------------------------------------------------------------ | +| avid | num | 稿件 avid | 必要(可选) | avid 与 bvid 任选一个 | +| bvid | str | 稿件 bvid | 必要(可选) | avid 与 bvid 任选一个 | +| cid | num | 视频 cid | 必要 | | +| qn | num | 视频清晰度选择 | 非必要 | 未登录默认 32(480P),登录后默认 64(720P)
含义见 [上表](#qn视频清晰度标识)
**DASH 格式时无效** | +| fnval | num | 视频流格式标识 | 非必要 | 默认值为`1`(MP4 格式)
含义见 [上表](#fnval视频流格式标识) | +| fnver | num | 0 | 非必要 | | +| fourk | num | 是否允许 4K 视频 | 非必要 | 画质最高 1080P:0(默认)
画质最高 4K:1 | +| session | str | | 非必要 | 从视频播放页的 HTML 中获取 | +| otype | str | | 非必要 | 固定为`json` | +| type | str | | 非必要 | 目前为空 | +| platform | str | | 非必要 | pc:web播放(默认值,视频流存在 referer鉴权)
html5:移动端 HTML5 播放(仅支持 MP4 格式,清晰度最高 360P,无 referer 鉴权可以直接使用`video`标签播放) | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ----------------------------- | -------- | ---------------------------------------------- | +| code | num | 返回值 | 0:成功
-400:请求错误
-404:无视频 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | | +| data | 有效时:obj
无效时:null | 数据本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------------------ | ----- | ----------------------------------------------- | ----------------------------------------------- | +| from | str | `local`? | | +| result | str | `suee`? | | +| message | str | 空? | | +| quality | num | 清晰度标识 | 含义见 [上表](#qn视频清晰度标识) | +| format | str | 视频格式 | `mp4`/`flv` | +| timelength | num | 视频长度 | 单位为毫秒
不同分辨率 / 格式可能有略微差异 | +| accept_format | str | 支持的全部格式 | 每项用`,`分隔 | +| accept_description | array | 支持的清晰度列表(文字说明) | | +| accept_quality | array | 支持的清晰度列表(代码) | 含义见 [上表](#qn视频清晰度标识) | +| video_codecid | num | 默认选择视频流的编码id | 含义见 [上表](#视频编码代码) | +| seek_param | str | `start`? | | +| seek_type | str | `offset`(DASH / FLV)?
`second`(MP4)? | | +| durl | array | 视频分段流信息 | **注:仅 FLV / MP4 格式存在此字段** | +| dash | obj | DASH 流信息 | **注:仅 DASH 格式存在此字段** | +| support_formats | array | 支持格式的详细信息 | | +| high_format | null | (?) | | +| last_play_time | num | 上次播放进度 | 毫秒值 | +| last_play_cid | num | 上次播放分P的 cid | | + +`data`中的`accept_description`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | --------------- | ---- | +| 0 | str | 分辨率名称1 | | +| n | str | 分辨率名称(n+1) | | +| …… | str | …… | | + +`data`中的`accept_quality`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | --------------- | -------------------------------- | +| 0 | num | 分辨率代码1 | 含义见 [上表](#qn视频清晰度标识) | +| n | num | 分辨率代码(n+1) | | +| …… | num | …… | | + +`data`中的`support_formats`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | --------------- | ---- | +| 0 | obj | 播放格式详细信息1 | | +| n | obj | 播放格式详细信息(n+1) | | +| …… | obj | …… | | + +`support_formats`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---------- | ------ | ------------ | ---------------------------------- | +| quality | num | 视频清晰度代码 | 含义见 [上表](#qn视频清晰度标识) | +| format | str | 视频格式 | | +| new_description | str | 格式描述 | | +| display_desc | str | 格式描述 | | +| superscript | str | (?) | | +| codecs | array | 可用编码格式列表 | | + +`support_formats`中的`codecs`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | --------------- | ---- | +| 0 | str | 例:av01.0.13M.08.0.110.01.01.01.0 | 使用AV1编码 | +| 1 | str | 例子:avc1.640034 | 使用AVC编码 | +| 2 | str | 例子:hev1.1.6.L153.90 | 使用HEVC编码 | + +由于 MP4 / ~~FLV~~ 与 DASH 格式的返回结构不同,以下内容需要分类讨论`durl`与`dash`字段的内容 + + +--- + +### FLV/MP4格式 + +`data`中的`durl`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | ----------------- | ------------------------- | +| 0 | obj | 视频分段 1 信息 | **目前由于 FLV 格式已经下线,不会存在分段现象,故无需关心** | +| n | obj | 视频分段 (n+1) 信息 | | +| …… | obj | …… | | + +`durl`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---------- | ------ | ------------ | ---------------------------------- | +| order | num | 视频分段序号 | 某些视频会分为多个片段(从1顺序增长) | +| length | num | 视频长度 | 单位为毫秒 | +| size | num | 视频大小 | 单位为 Byte | +| ahead | str | (?) | | +| vhead | str | (?) | | +| url | str | 默认流 URL | **注意 unicode 转义符**
有效时间为120min | +| backup_url | array | 备用视频流 | | + +`durl`数组中的对象中的`backup_url`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | ---------------- | --------------------------------------------- | +| 0 | str | 备用流 URL 1 | **注意 unicode 转义符**
有效时间为120min | +| n | str | 备用流 URL (n+1) | | +| …… | str | …… | | + +**示例:** + +**视频无分段时:** + +获取视频`av99999999`/`BV1y7411Q7Eq`中的 1P(cid=`171776208`)的视频流 URL,清晰度为 1080P+,使用 FLV 方式获取 + +avid方式: + +```shell +curl -G 'https://api.bilibili.com/x/player/playurl' \ + --data-urlencode 'avid=99999999' \ + --data-urlencode 'cid=171776208' \ + --data-urlencode 'qn=112' \ + --data-urlencode 'fnval=0' \ + --data-urlencode 'fnver=0' \ + --data-urlencode 'fourk=1' \ + -b 'SESSDATA=xxx' +``` + + bvid方式: + +```shell +curl -G 'https://api.bilibili.com/x/player/playurl' \ + --data-urlencode 'bvid=BV1y7411Q7Eq' \ + --data-urlencode 'cid=171776208' \ + --data-urlencode 'qn=112' \ + --data-urlencode 'fnval=0' \ + --data-urlencode 'fnver=0' \ + --data-urlencode 'fourk=1' \ + -b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "from": "local", + "result": "suee", + "message": "", + "quality": 64, + "format": "flv720", + "timelength": 283801, + "accept_format": "hdflv2,flv,flv720,flv480,mp4", + "accept_description": [ + "高清 1080P+", + "高清 1080P", + "高清 720P", + "清晰 480P", + "流畅 360P" + ], + "accept_quality": [ + 112, + 80, + 64, + 32, + 16 + ], + "video_codecid": 7, + "seek_param": "start", + "seek_type": "offset", + "durl": [ + { + "order": 1, + "length": 283801, + "size": 70486426, + "ahead": "", + "vhead": "", + "url": "https://upos-sz-mirrorcos.bilivideo.com/upgcxcode/08/62/171776208/171776208_nb2-1-64.flv?e=ig8euxZM2rNcNbNMnwdVhwdlhbK3hwdVhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1662808778&gen=playurlv2&os=cosbv&oi=3719461929&trid=31dc1934e77141bfbdf5ae88aca0b29fu&mid=0&platform=pc&upsig=a4d5f1713e1ba313041d034a958c2414&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&bvc=vod&nettype=0&orderid=0,3&agrr=1&bw=249068&logo=80000000", + "backup_url": [ + "https://upos-sz-mirrorcos.bilivideo.com/upgcxcode/08/62/171776208/171776208_nb2-1-64.flv?e=ig8euxZM2rNcNbNMnwdVhwdlhbK3hwdVhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1662808778&gen=playurlv2&os=cosbv&oi=3719461929&trid=31dc1934e77141bfbdf5ae88aca0b29fu&mid=0&platform=pc&upsig=a4d5f1713e1ba313041d034a958c2414&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&bvc=vod&nettype=0&orderid=1,3&agrr=1&bw=249068&logo=40000000", + "https://upos-sz-mirrorcosb.bilivideo.com/upgcxcode/08/62/171776208/171776208_nb2-1-64.flv?e=ig8euxZM2rNcNbNMnwdVhwdlhbK3hwdVhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1662808778&gen=playurlv2&os=cosbbv&oi=3719461929&trid=31dc1934e77141bfbdf5ae88aca0b29fu&mid=0&platform=pc&upsig=7b8a6924948864944815ec0748cc108f&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&bvc=vod&nettype=0&orderid=2,3&agrr=1&bw=249068&logo=40000000" + ] + } + ], + "support_formats": [ + { + "quality": 112, + "format": "hdflv2", + "new_description": "1080P 高码率", + "display_desc": "1080P", + "superscript": "高码率", + "codecs": null + }, + { + "quality": 80, + "format": "flv", + "new_description": "1080P 高清", + "display_desc": "1080P", + "superscript": "", + "codecs": null + }, + { + "quality": 64, + "format": "flv720", + "new_description": "720P 高清", + "display_desc": "720P", + "superscript": "", + "codecs": null + }, + { + "quality": 32, + "format": "flv480", + "new_description": "480P 清晰", + "display_desc": "480P", + "superscript": "", + "codecs": null + }, + { + "quality": 16, + "format": "mp4", + "new_description": "360P 流畅", + "display_desc": "360P", + "superscript": "", + "codecs": null + } + ], + "high_format": null, + "last_play_time": 0, + "last_play_cid": 0 + } +} +``` + +
+ +**视频有分段时:** + +以下内容无参考价值,仅做历史保存 + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "from": "local", + "result": "suee", + "message": "", + "quality": 16, + "format": "flv360", + "timelength": 1437918, + "accept_format": "flv,flv720,flv480,flv360", + "accept_description": [ + "高清 1080P", + "高清 720P", + "清晰 480P", + "流畅 360P" + ], + "accept_quality": [ + 80, + 64, + 32, + 16 + ], + "video_codecid": 7, + "seek_param": "start", + "seek_type": "offset", + "durl": [ + { + "order": 1, + "length": 364417, + "size": 23018310, + "ahead": "", + "vhead": "", + "url": "http://upos-sz-mirrorhw.bilivideo.com/upgcxcode/98/24/872498/872498-1-15.flv?e=ig8euxZM2rNcNbRB7zUVhoM17WuBhwdEto8g5X10ugNcXBlqNxHxNEVE5XREto8KqJZHUa6m5J0SqE85tZvEuENvNo8g2ENvNo8i8o859r1qXg8xNEVE5XREto8GuFGv2U7SuxI72X6fTr859r1qXg8gNEVE5XREto8z5JZC2X2gkX5L5F1eTX1jkXlsTXHeux_f2o859IB_&uipk=5&nbs=1&deadline=1589874109&gen=playurl&os=hwbv&oi=1965551630&trid=ceac015d41e04a7b90ec972db710524fu&platform=pc&upsig=f99db2dc9b8c65c245515b29b9ca8b16&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,platform&mid=293793435&logo=80000000", + "backup_url": [ + "http://upos-sz-mirrorks3c.bilivideo.com/upgcxcode/98/24/872498/872498-1-15.flv?e=ig8euxZM2rNcNbRB7zUVhoM17WuBhwdEto8g5X10ugNcXBlqNxHxNEVE5XREto8KqJZHUa6m5J0SqE85tZvEuENvNo8g2ENvNo8i8o859r1qXg8xNEVE5XREto8GuFGv2U7SuxI72X6fTr859r1qXg8gNEVE5XREto8z5JZC2X2gkX5L5F1eTX1jkXlsTXHeux_f2o859IB_&uipk=5&nbs=1&deadline=1589874109&gen=playurl&os=ks3cbv&oi=1965551630&trid=ceac015d41e04a7b90ec972db710524fu&platform=pc&upsig=74d0d62697364346f88d9c39430ce23c&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,platform&mid=293793435&logo=40000000" + ] + }, + { + "order": 2, + "length": 364395, + "size": 23694756, + "ahead": "", + "vhead": "", + "url": "http://upos-sz-mirrorcos.bilivideo.com/upgcxcode/98/24/872498/872498-2-15.flv?e=ig8euxZM2rNcNbRjhbUVhoM17bNBhwdEto8g5X10ugNcXBlqNxHxNEVE5XREto8KqJZHUa6m5J0SqE85tZvEuENvNo8g2ENvNo8i8o859r1qXg8xNEVE5XREto8GuFGv2U7SuxI72X6fTr859r1qXg8gNEVE5XREto8z5JZC2X2gkX5L5F1eTX1jkXlsTXHeux_f2o859IB_&uipk=5&nbs=1&deadline=1589874109&gen=playurl&os=cosbv&oi=1965551630&trid=ceac015d41e04a7b90ec972db710524fu&platform=pc&upsig=308c87c55f3325bdaac2a3e8632948ee&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,platform&mid=293793435&logo=80000000", + "backup_url": [ + "http://upos-sz-mirrorks3c.bilivideo.com/upgcxcode/98/24/872498/872498-2-15.flv?e=ig8euxZM2rNcNbRjhbUVhoM17bNBhwdEto8g5X10ugNcXBlqNxHxNEVE5XREto8KqJZHUa6m5J0SqE85tZvEuENvNo8g2ENvNo8i8o859r1qXg8xNEVE5XREto8GuFGv2U7SuxI72X6fTr859r1qXg8gNEVE5XREto8z5JZC2X2gkX5L5F1eTX1jkXlsTXHeux_f2o859IB_&uipk=5&nbs=1&deadline=1589874109&gen=playurl&os=ks3cbv&oi=1965551630&trid=ceac015d41e04a7b90ec972db710524fu&platform=pc&upsig=eb8f043e0f36f82ab9c62fd002143438&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,platform&mid=293793435&logo=40000000" + ] + }, + { + "order": 3, + "length": 352333, + "size": 22835734, + "ahead": "", + "vhead": "", + "url": "http://upos-sz-mirrorhw.bilivideo.com/upgcxcode/98/24/872498/872498-3-15.flv?e=ig8euxZM2rNcNbRjhwdVhoM17bdVhwdEto8g5X10ugNcXBlqNxHxNEVE5XREto8KqJZHUa6m5J0SqE85tZvEuENvNo8g2ENvNo8i8o859r1qXg8xNEVE5XREto8GuFGv2U7SuxI72X6fTr859r1qXg8gNEVE5XREto8z5JZC2X2gkX5L5F1eTX1jkXlsTXHeux_f2o859IB_&uipk=5&nbs=1&deadline=1589874109&gen=playurl&os=hwbv&oi=1965551630&trid=ceac015d41e04a7b90ec972db710524fu&platform=pc&upsig=2685b7649f4bb6eb90f986f125432d78&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,platform&mid=293793435&logo=80000000", + "backup_url": [ + "http://upos-sz-mirrorks3c.bilivideo.com/upgcxcode/98/24/872498/872498-3-15.flv?e=ig8euxZM2rNcNbRjhwdVhoM17bdVhwdEto8g5X10ugNcXBlqNxHxNEVE5XREto8KqJZHUa6m5J0SqE85tZvEuENvNo8g2ENvNo8i8o859r1qXg8xNEVE5XREto8GuFGv2U7SuxI72X6fTr859r1qXg8gNEVE5XREto8z5JZC2X2gkX5L5F1eTX1jkXlsTXHeux_f2o859IB_&uipk=5&nbs=1&deadline=1589874109&gen=playurl&os=ks3cbv&oi=1965551630&trid=ceac015d41e04a7b90ec972db710524fu&platform=pc&upsig=922543bfb26184f901187bf9c39c69b2&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,platform&mid=293793435&logo=40000000" + ] + }, + { + "order": 4, + "length": 356773, + "size": 23466279, + "ahead": "", + "vhead": "", + "url": "http://upos-sz-mirrorkodo.bilivideo.com/upgcxcode/98/24/872498/872498-4-15.flv?e=ig8euxZM2rNcNbRjhbUVhoM17bNBhwdEto8g5X10ugNcXBlqNxHxNEVE5XREto8KqJZHUa6m5J0SqE85tZvEuENvNo8g2ENvNo8i8o859r1qXg8xNEVE5XREto8GuFGv2U7SuxI72X6fTr859r1qXg8gNEVE5XREto8z5JZC2X2gkX5L5F1eTX1jkXlsTXHeux_f2o859IB_&uipk=5&nbs=1&deadline=1589874109&gen=playurl&os=kodobv&oi=1965551630&trid=ceac015d41e04a7b90ec972db710524fu&platform=pc&upsig=9d29707faf012797ef2b6de21523fcf2&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,platform&mid=293793435&logo=80000000", + "backup_url": [ + "http://upos-sz-mirrorks3c.bilivideo.com/upgcxcode/98/24/872498/872498-4-15.flv?e=ig8euxZM2rNcNbRjhbUVhoM17bNBhwdEto8g5X10ugNcXBlqNxHxNEVE5XREto8KqJZHUa6m5J0SqE85tZvEuENvNo8g2ENvNo8i8o859r1qXg8xNEVE5XREto8GuFGv2U7SuxI72X6fTr859r1qXg8gNEVE5XREto8z5JZC2X2gkX5L5F1eTX1jkXlsTXHeux_f2o859IB_&uipk=5&nbs=1&deadline=1589874109&gen=playurl&os=ks3cbv&oi=1965551630&trid=ceac015d41e04a7b90ec972db710524fu&platform=pc&upsig=9ad4524d31c8d9695ae07b400b73ed29&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,platform&mid=293793435&logo=40000000" + ] + } + ] + } +} +``` + +
+ +--- + +### DASH格式 + +`data`中的`dash`对象: + +| 字段 | 类型 | 内容 | 备注 | +| --------------- | ----- | ---------- | ------------ | +| duration | num | 视频长度 | 秒值 | +| minBufferTime | num | 1.5? | | +| min_buffer_time | num | 1.5? | | +| video | array | 视频流信息 | | +| audio | array | 伴音流信息 | | +| dolby | obj | 杜比全景声伴音信息 | | +| flac | obj | 无损音轨伴音信息 | | + +`dash`中的`video`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | ---------------------- | ---- | +| 0 | obj | 视频码流 1 | 同一清晰度可拥有 H.264 / H.265 / AV1 多种码流
**HDR 仅支持 H.265** | +| n | obj | 视频码流(n+1) | | +| …… | obj | …… | | + +`dash`中的`audio`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | ------------- | ---- | +| 0 | obj | 清晰度1 | | +| n | obj | 清晰度(n+1) | | +| …… | obj | …… | | + +`video`及`audio`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| -------------- | ----- | --------------------- | ----------------------------------------------- | +| id | num | 音视频清晰度代码 | 参考上表
[qn视频清晰度标识](#qn视频清晰度标识)
[视频伴音音质代码](#视频伴音音质代码) | +| baseUrl | str | 默认流 URL | **注意 unicode 转义符**
有效时间为 120min | +| base_url | str | **同上** | | +| backupUrl | array | 备用流 URL | | +| backup_url | array | **同上** | | +| bandwidth | num | 所需最低带宽 | 单位为 Byte | +| mimeType | str | 格式 mimetype 类型 | | +| mime_type | str | **同上** | | +| codecs | str | 编码/音频类型 | eg:`avc1.640032` | +| width | num | 视频宽度 | 单位为像素
**仅视频流存在该字段** | +| height | num | 视频高度 | 单位为像素
**仅视频流存在该字段** | +| frameRate | str | 视频帧率 | **仅视频流存在该字段** | +| frame_rate | str | **同上** | | +| sar | str | Sample Aspect Ratio(单个像素的宽高比) | 音频流该值恒为空 | +| startWithSap | num | Stream Access Point(流媒体访问位点) | 音频流该值恒为空 | +| start_with_sap | num | **同上** | | +| SegmentBase | obj | 见下表 | url 对应 m4s 文件中,头部的位置
音频流该值恒为空 | +| segment_base | obj | **同上** | | +| codecid | num | 码流编码标识代码 | 含义见 [上表](视频编码代码)
音频流该值恒为`0` | + +`video`数组中的对象中的`backup_url`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | ---------------- | --------------------------------------------- | +| 0 | str | 备用流 URL 1 | **注意 unicode 转义符**
有效时间为120min | +| n | str | 备用流 URL (n+1) | | +| …… | str | …… | | + +`video`数组中的对象中的`SegmentBase`对象: + +| 字段 | 类型 | 内容 | 备注 | +| -------------- | ---- | ---------------------------- | ------------------------------------------------------------ | +| initialization | str | `${init_first}-${init_last}` | eg:`0-821`
ftyp (file type) box 加上 moov box 在 m4s 文件中的范围(单位为 bytes)
如 0-821 表示开头 820 个字节 | +| index_range | str | `${sidx_first}-${sidx_last}` | eg:`822-1309`
sidx (segment index) box 在 m4s 文件中的范围(单位为 bytes)
sidx 的核心是一个数组,记录了各关键帧的时间戳及其在文件中的位置,
其作用是索引 (拖进度条) | + +> 常规 MP4 文件的索引信息放在 moov box 中,其中包含每一帧 (不止是关键帧) 的一些信息。在 DASH 方式下,关键帧信息移到了 sidx box 里,其他的则分散到了各个 moof (movie fragment) box 中。 + +对这里的文件结构感兴趣的,可以参考标准文档 [ISO/IEC 14496-12](https://www.iso.org/standard/83102.html),如果不想那么深入的话可以百度「[MP4 文件结构](https://baike.baidu.com/item/mp4/9218018)」 + +`dash`中的`dolby`对象: + +此项为”杜比视界“视频独有 + +| 字段 | 类型 | 内容 | 备注 | +| -------------- | ---- | --------------------------------------------- | ------------------------------------------------------------ | +| type | num | 杜比音效类型 | 1:普通杜比音效
2:全景杜比音效 | +| audio | array | 杜比伴音流列表 | | + +`dolby`对象中的`audio`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | ------------------------ | ----------------------------------------------- | +| 0 | obj | 杜比伴音流信息 | 同上文 DASH 流中`video`及`audio`数组中的对象 | + +`dash`中的`flac`对象: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | ------------------------ | ----------------------------------------------- | +| display | bool | 是否在播放器显示切换Hi-Res无损音轨按钮 | | +| audio | obj | 音频流信息 | 同上文 DASH 流中`video`及`audio`数组中的对象 | + +**示例:** + +获取视频`av969628065`/`BV1rp4y1e745`中的 1P(cid=`244954665`)的视频流 URL,使用 DASH 方式获取 + +avid 方式: + +```shell +curl -G 'https://api.bilibili.com/x/player/playurl' \ + --data-urlencode 'avid=969628065' \ + --data-urlencode 'cid=244954665' \ + --data-urlencode 'qn=0' \ + --data-urlencode 'fnval=80' \ + --data-urlencode 'fnver=0' \ + --data-urlencode 'fourk=1' \ + -b 'SESSDATA=xxx' +``` + + bvid 方式: + +```shell +curl -G 'https://api.bilibili.com/x/player/playurl' \ + --data-urlencode 'bvid=BV1rp4y1e745' \ + --data-urlencode 'cid=244954665' \ + --data-urlencode 'qn=0' \ + --data-urlencode 'fnval=80' \ + --data-urlencode 'fnver=0' \ + --data-urlencode 'fourk=1' \ + -b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "from": "local", + "result": "suee", + "message": "", + "quality": 64, + "format": "flv720_p60", + "timelength": 346410, + "accept_format": "hdflv2,hdflv2,flv_p60,flv,flv720_p60,flv480,mp4", + "accept_description": [ + "真彩 HDR", + "超清 4K", + "高清 1080P60", + "高清 1080P", + "高清 720P60", + "清晰 480P", + "流畅 360P" + ], + "accept_quality": [ + 125, + 120, + 116, + 80, + 64, + 32, + 16 + ], + "video_codecid": 7, + "seek_param": "start", + "seek_type": "offset", + "dash": { + "duration": 347, + "minBufferTime": 1.5, + "min_buffer_time": 1.5, + "video": [ + { + "id": 125, + "baseUrl": "https://cn-jxjj-ct-01-01.bilivideo.com/upgcxcode/65/46/244954665/244954665_f9-1-30125.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1674133321&gen=playurlv2&os=bcache&oi=606633952&trid=000077eca41ddc4a4dc6926e971dfacc597cu&mid=293793435&platform=pc&upsig=f144133cabdfca56ae3cb14e208aebe1&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&cdnid=4261&bvc=vod&nettype=0&orderid=0,3&buvid=EC1BD8EA-88F6-4951-BF27-2CFE3450C78F167646infoc&build=0&agrr=0&bw=1726751&logo=80000000", + "base_url": "https://cn-jxjj-ct-01-01.bilivideo.com/upgcxcode/65/46/244954665/244954665_f9-1-30125.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1674133321&gen=playurlv2&os=bcache&oi=606633952&trid=000077eca41ddc4a4dc6926e971dfacc597cu&mid=293793435&platform=pc&upsig=f144133cabdfca56ae3cb14e208aebe1&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&cdnid=4261&bvc=vod&nettype=0&orderid=0,3&buvid=EC1BD8EA-88F6-4951-BF27-2CFE3450C78F167646infoc&build=0&agrr=0&bw=1726751&logo=80000000", + "backupUrl": [ + "https://upos-sz-estgoss.bilivideo.com/upgcxcode/65/46/244954665/244954665_f9-1-30125.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1674133321&gen=playurlv2&os=upos&oi=606633952&trid=77eca41ddc4a4dc6926e971dfacc597cu&mid=293793435&platform=pc&upsig=adf8ac03ae8aaf0e18c0f4c3f0ff267c&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&bvc=vod&nettype=0&orderid=1,3&buvid=EC1BD8EA-88F6-4951-BF27-2CFE3450C78F167646infoc&build=0&agrr=0&bw=1726751&logo=40000000", + "https://upos-sz-mirrorali.bilivideo.com/upgcxcode/65/46/244954665/244954665_f9-1-30125.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1674133321&gen=playurlv2&os=alibv&oi=606633952&trid=77eca41ddc4a4dc6926e971dfacc597cu&mid=293793435&platform=pc&upsig=cffdcf6daf7f55c58bdb97737694363f&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&bvc=vod&nettype=0&orderid=2,3&buvid=EC1BD8EA-88F6-4951-BF27-2CFE3450C78F167646infoc&build=0&agrr=0&bw=1726751&logo=40000000" + ], + "backup_url": [ + "https://upos-sz-estgoss.bilivideo.com/upgcxcode/65/46/244954665/244954665_f9-1-30125.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1674133321&gen=playurlv2&os=upos&oi=606633952&trid=77eca41ddc4a4dc6926e971dfacc597cu&mid=293793435&platform=pc&upsig=adf8ac03ae8aaf0e18c0f4c3f0ff267c&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&bvc=vod&nettype=0&orderid=1,3&buvid=EC1BD8EA-88F6-4951-BF27-2CFE3450C78F167646infoc&build=0&agrr=0&bw=1726751&logo=40000000", + "https://upos-sz-mirrorali.bilivideo.com/upgcxcode/65/46/244954665/244954665_f9-1-30125.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1674133321&gen=playurlv2&os=alibv&oi=606633952&trid=77eca41ddc4a4dc6926e971dfacc597cu&mid=293793435&platform=pc&upsig=cffdcf6daf7f55c58bdb97737694363f&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&bvc=vod&nettype=0&orderid=2,3&buvid=EC1BD8EA-88F6-4951-BF27-2CFE3450C78F167646infoc&build=0&agrr=0&bw=1726751&logo=40000000" + ], + "bandwidth": 13799375, + "mimeType": "video/mp4", + "mime_type": "video/mp4", + "codecs": "hev1.2.4.L156.90", + "width": 3840, + "height": 1920, + "frameRate": "125", + "frame_rate": "125", + "sar": "1:1", + "startWithSap": 1, + "start_with_sap": 1, + "SegmentBase": { + "Initialization": "0-1066", + "indexRange": "1067-1926" + }, + "segment_base": { + "initialization": "0-1066", + "index_range": "1067-1926" + }, + "codecid": 12 + }, + { + "id": 120, + "baseUrl": "https://cn-jxjj-ct-01-01.bilivideo.com/upgcxcode/65/46/244954665/244954665_f9-1-30120.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1674133321&gen=playurlv2&os=bcache&oi=606633952&trid=000077eca41ddc4a4dc6926e971dfacc597cu&mid=293793435&platform=pc&upsig=704c0a56e544a9e5ba42813960780304&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&cdnid=4261&bvc=vod&nettype=0&orderid=0,3&buvid=EC1BD8EA-88F6-4951-BF27-2CFE3450C78F167646infoc&build=0&agrr=0&bw=2124046&logo=80000000", + "base_url": "https://cn-jxjj-ct-01-01.bilivideo.com/upgcxcode/65/46/244954665/244954665_f9-1-30120.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1674133321&gen=playurlv2&os=bcache&oi=606633952&trid=000077eca41ddc4a4dc6926e971dfacc597cu&mid=293793435&platform=pc&upsig=704c0a56e544a9e5ba42813960780304&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&cdnid=4261&bvc=vod&nettype=0&orderid=0,3&buvid=EC1BD8EA-88F6-4951-BF27-2CFE3450C78F167646infoc&build=0&agrr=0&bw=2124046&logo=80000000", + "backupUrl": [ + "https://upos-sz-mirrorcoso1.bilivideo.com/upgcxcode/65/46/244954665/244954665_f9-1-30120.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1674133321&gen=playurlv2&os=coso1bv&oi=606633952&trid=77eca41ddc4a4dc6926e971dfacc597cu&mid=293793435&platform=pc&upsig=56ddf7293e93985ff0abdc8de74ddbea&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&bvc=vod&nettype=0&orderid=1,3&buvid=EC1BD8EA-88F6-4951-BF27-2CFE3450C78F167646infoc&build=0&agrr=0&bw=2124046&logo=40000000", + "https://upos-sz-mirrorcos.bilivideo.com/upgcxcode/65/46/244954665/244954665_f9-1-30120.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1674133321&gen=playurlv2&os=cosbv&oi=606633952&trid=77eca41ddc4a4dc6926e971dfacc597cu&mid=293793435&platform=pc&upsig=e35a421cf5209011191984cab0336ade&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&bvc=vod&nettype=0&orderid=2,3&buvid=EC1BD8EA-88F6-4951-BF27-2CFE3450C78F167646infoc&build=0&agrr=0&bw=2124046&logo=40000000" + ], + "backup_url": [ + "https://upos-sz-mirrorcoso1.bilivideo.com/upgcxcode/65/46/244954665/244954665_f9-1-30120.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1674133321&gen=playurlv2&os=coso1bv&oi=606633952&trid=77eca41ddc4a4dc6926e971dfacc597cu&mid=293793435&platform=pc&upsig=56ddf7293e93985ff0abdc8de74ddbea&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&bvc=vod&nettype=0&orderid=1,3&buvid=EC1BD8EA-88F6-4951-BF27-2CFE3450C78F167646infoc&build=0&agrr=0&bw=2124046&logo=40000000", + "https://upos-sz-mirrorcos.bilivideo.com/upgcxcode/65/46/244954665/244954665_f9-1-30120.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1674133321&gen=playurlv2&os=cosbv&oi=606633952&trid=77eca41ddc4a4dc6926e971dfacc597cu&mid=293793435&platform=pc&upsig=e35a421cf5209011191984cab0336ade&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&bvc=vod&nettype=0&orderid=2,3&buvid=EC1BD8EA-88F6-4951-BF27-2CFE3450C78F167646infoc&build=0&agrr=0&bw=2124046&logo=40000000" + ], + "bandwidth": 16974415, + "mimeType": "video/mp4", + "mime_type": "video/mp4", + "codecs": "avc1.640034", + "width": 3840, + "height": 1920, + "frameRate": "111.111", + "frame_rate": "111.111", + "sar": "1:1", + "startWithSap": 1, + "start_with_sap": 1, + "SegmentBase": { + "Initialization": "0-995", + "indexRange": "996-1855" + }, + "segment_base": { + "initialization": "0-995", + "index_range": "996-1855" + }, + "codecid": 7 + }, + { + "id": 120, + "baseUrl": "https://xy125x75x230x185xy.mcdn.bilivideo.cn:4483/upgcxcode/65/46/244954665/244954665_f9x2-1-30121.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1674133321&gen=playurlv2&os=mcdn&oi=606633952&trid=000077eca41ddc4a4dc6926e971dfacc597cu&mid=293793435&platform=pc&upsig=3d82b0f3589f2bde1d020c19a050aca8&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&mcdnid=1002708&bvc=vod&nettype=0&orderid=0,3&buvid=EC1BD8EA-88F6-4951-BF27-2CFE3450C78F167646infoc&build=0&agrr=0&bw=594581&logo=A0000001", + "base_url": "https://xy125x75x230x185xy.mcdn.bilivideo.cn:4483/upgcxcode/65/46/244954665/244954665_f9x2-1-30121.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1674133321&gen=playurlv2&os=mcdn&oi=606633952&trid=000077eca41ddc4a4dc6926e971dfacc597cu&mid=293793435&platform=pc&upsig=3d82b0f3589f2bde1d020c19a050aca8&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&mcdnid=1002708&bvc=vod&nettype=0&orderid=0,3&buvid=EC1BD8EA-88F6-4951-BF27-2CFE3450C78F167646infoc&build=0&agrr=0&bw=594581&logo=A0000001", + "backupUrl": [ + "https://upos-sz-estgoss.bilivideo.com/upgcxcode/65/46/244954665/244954665_f9x2-1-30121.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1674133321&gen=playurlv2&os=upos&oi=606633952&trid=77eca41ddc4a4dc6926e971dfacc597cu&mid=293793435&platform=pc&upsig=05403d92efb1f978bf95b03375760ee2&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&bvc=vod&nettype=0&orderid=1,3&buvid=EC1BD8EA-88F6-4951-BF27-2CFE3450C78F167646infoc&build=0&agrr=0&bw=594581&logo=40000000", + "https://upos-sz-mirrorali.bilivideo.com/upgcxcode/65/46/244954665/244954665_f9x2-1-30121.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1674133321&gen=playurlv2&os=alibv&oi=606633952&trid=77eca41ddc4a4dc6926e971dfacc597cu&mid=293793435&platform=pc&upsig=21828db787701f87944fd56a27b0ed06&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&bvc=vod&nettype=0&orderid=2,3&buvid=EC1BD8EA-88F6-4951-BF27-2CFE3450C78F167646infoc&build=0&agrr=0&bw=594581&logo=40000000" + ], + "backup_url": [ + "https://upos-sz-estgoss.bilivideo.com/upgcxcode/65/46/244954665/244954665_f9x2-1-30121.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1674133321&gen=playurlv2&os=upos&oi=606633952&trid=77eca41ddc4a4dc6926e971dfacc597cu&mid=293793435&platform=pc&upsig=05403d92efb1f978bf95b03375760ee2&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&bvc=vod&nettype=0&orderid=1,3&buvid=EC1BD8EA-88F6-4951-BF27-2CFE3450C78F167646infoc&build=0&agrr=0&bw=594581&logo=40000000", + "https://upos-sz-mirrorali.bilivideo.com/upgcxcode/65/46/244954665/244954665_f9x2-1-30121.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1674133321&gen=playurlv2&os=alibv&oi=606633952&trid=77eca41ddc4a4dc6926e971dfacc597cu&mid=293793435&platform=pc&upsig=21828db787701f87944fd56a27b0ed06&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&bvc=vod&nettype=0&orderid=2,3&buvid=EC1BD8EA-88F6-4951-BF27-2CFE3450C78F167646infoc&build=0&agrr=0&bw=594581&logo=40000000" + ], + "bandwidth": 4751624, + "mimeType": "video/mp4", + "mime_type": "video/mp4", + "codecs": "hev1.1.6.L156.90", + "width": 3840, + "height": 1920, + "frameRate": "111.111", + "frame_rate": "111.111", + "sar": "1:1", + "startWithSap": 1, + "start_with_sap": 1, + "SegmentBase": { + "Initialization": "0-1159", + "indexRange": "1160-2019" + }, + "segment_base": { + "initialization": "0-1159", + "index_range": "1160-2019" + }, + "codecid": 12 + }, + { + "id": 116, + "baseUrl": "https://xy125x75x230x185xy.mcdn.bilivideo.cn:4483/upgcxcode/65/46/244954665/244954665_f9-1-30116.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1674133321&gen=playurlv2&os=mcdn&oi=606633952&trid=000077eca41ddc4a4dc6926e971dfacc597cu&mid=293793435&platform=pc&upsig=4437f5c280e855acb05fbbc32f895574&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&mcdnid=1002708&bvc=vod&nettype=0&orderid=0,3&buvid=EC1BD8EA-88F6-4951-BF27-2CFE3450C78F167646infoc&build=0&agrr=0&bw=651301&logo=A0000001", + "base_url": "https://xy125x75x230x185xy.mcdn.bilivideo.cn:4483/upgcxcode/65/46/244954665/244954665_f9-1-30116.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1674133321&gen=playurlv2&os=mcdn&oi=606633952&trid=000077eca41ddc4a4dc6926e971dfacc597cu&mid=293793435&platform=pc&upsig=4437f5c280e855acb05fbbc32f895574&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&mcdnid=1002708&bvc=vod&nettype=0&orderid=0,3&buvid=EC1BD8EA-88F6-4951-BF27-2CFE3450C78F167646infoc&build=0&agrr=0&bw=651301&logo=A0000001", + "backupUrl": [ + "https://upos-sz-mirror08ct.bilivideo.com/upgcxcode/65/46/244954665/244954665_f9-1-30116.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1674133321&gen=playurlv2&os=08ctbv&oi=606633952&trid=77eca41ddc4a4dc6926e971dfacc597cu&mid=293793435&platform=pc&upsig=874e438aebbead2b5a379f6c57d5501d&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&bvc=vod&nettype=0&orderid=1,3&buvid=EC1BD8EA-88F6-4951-BF27-2CFE3450C78F167646infoc&build=0&agrr=0&bw=651301&logo=40000000", + "https://upos-sz-mirror08ct.bilivideo.com/upgcxcode/65/46/244954665/244954665_f9-1-30116.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1674133321&gen=playurlv2&os=08ctbv&oi=606633952&trid=77eca41ddc4a4dc6926e971dfacc597cu&mid=293793435&platform=pc&upsig=874e438aebbead2b5a379f6c57d5501d&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&bvc=vod&nettype=0&orderid=2,3&buvid=EC1BD8EA-88F6-4951-BF27-2CFE3450C78F167646infoc&build=0&agrr=0&bw=651301&logo=40000000" + ], + "backup_url": [ + "https://upos-sz-mirror08ct.bilivideo.com/upgcxcode/65/46/244954665/244954665_f9-1-30116.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1674133321&gen=playurlv2&os=08ctbv&oi=606633952&trid=77eca41ddc4a4dc6926e971dfacc597cu&mid=293793435&platform=pc&upsig=874e438aebbead2b5a379f6c57d5501d&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&bvc=vod&nettype=0&orderid=1,3&buvid=EC1BD8EA-88F6-4951-BF27-2CFE3450C78F167646infoc&build=0&agrr=0&bw=651301&logo=40000000", + "https://upos-sz-mirror08ct.bilivideo.com/upgcxcode/65/46/244954665/244954665_f9-1-30116.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1674133321&gen=playurlv2&os=08ctbv&oi=606633952&trid=77eca41ddc4a4dc6926e971dfacc597cu&mid=293793435&platform=pc&upsig=874e438aebbead2b5a379f6c57d5501d&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&bvc=vod&nettype=0&orderid=2,3&buvid=EC1BD8EA-88F6-4951-BF27-2CFE3450C78F167646infoc&build=0&agrr=0&bw=651301&logo=40000000" + ], + "bandwidth": 5204909, + "mimeType": "video/mp4", + "mime_type": "video/mp4", + "codecs": "avc1.640032", + "width": 2160, + "height": 1080, + "frameRate": "62.500", + "frame_rate": "62.500", + "sar": "1:1", + "startWithSap": 1, + "start_with_sap": 1, + "SegmentBase": { + "Initialization": "0-996", + "indexRange": "997-1856" + }, + "segment_base": { + "initialization": "0-996", + "index_range": "997-1856" + }, + "codecid": 7 + }, + { + "id": 116, + "baseUrl": "https://xy125x75x230x185xy.mcdn.bilivideo.cn:4483/upgcxcode/65/46/244954665/244954665_f9x2-1-30106.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1674133321&gen=playurlv2&os=mcdn&oi=606633952&trid=000077eca41ddc4a4dc6926e971dfacc597cu&mid=293793435&platform=pc&upsig=12dc56f1d7f019826fb120c6e0be1670&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&mcdnid=1002708&bvc=vod&nettype=0&orderid=0,3&buvid=EC1BD8EA-88F6-4951-BF27-2CFE3450C78F167646infoc&build=0&agrr=0&bw=129647&logo=A0000001", + "base_url": "https://xy125x75x230x185xy.mcdn.bilivideo.cn:4483/upgcxcode/65/46/244954665/244954665_f9x2-1-30106.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1674133321&gen=playurlv2&os=mcdn&oi=606633952&trid=000077eca41ddc4a4dc6926e971dfacc597cu&mid=293793435&platform=pc&upsig=12dc56f1d7f019826fb120c6e0be1670&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&mcdnid=1002708&bvc=vod&nettype=0&orderid=0,3&buvid=EC1BD8EA-88F6-4951-BF27-2CFE3450C78F167646infoc&build=0&agrr=0&bw=129647&logo=A0000001", + "backupUrl": [ + "https://upos-sz-mirror08ct.bilivideo.com/upgcxcode/65/46/244954665/244954665_f9x2-1-30106.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1674133321&gen=playurlv2&os=08ctbv&oi=606633952&trid=77eca41ddc4a4dc6926e971dfacc597cu&mid=293793435&platform=pc&upsig=bc2f8140b3ef558b5982b71f2cef2c47&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&bvc=vod&nettype=0&orderid=1,3&buvid=EC1BD8EA-88F6-4951-BF27-2CFE3450C78F167646infoc&build=0&agrr=0&bw=129647&logo=40000000", + "https://upos-sz-mirror08ct.bilivideo.com/upgcxcode/65/46/244954665/244954665_f9x2-1-30106.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1674133321&gen=playurlv2&os=08ctbv&oi=606633952&trid=77eca41ddc4a4dc6926e971dfacc597cu&mid=293793435&platform=pc&upsig=bc2f8140b3ef558b5982b71f2cef2c47&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&bvc=vod&nettype=0&orderid=2,3&buvid=EC1BD8EA-88F6-4951-BF27-2CFE3450C78F167646infoc&build=0&agrr=0&bw=129647&logo=40000000" + ], + "backup_url": [ + "https://upos-sz-mirror08ct.bilivideo.com/upgcxcode/65/46/244954665/244954665_f9x2-1-30106.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1674133321&gen=playurlv2&os=08ctbv&oi=606633952&trid=77eca41ddc4a4dc6926e971dfacc597cu&mid=293793435&platform=pc&upsig=bc2f8140b3ef558b5982b71f2cef2c47&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&bvc=vod&nettype=0&orderid=1,3&buvid=EC1BD8EA-88F6-4951-BF27-2CFE3450C78F167646infoc&build=0&agrr=0&bw=129647&logo=40000000", + "https://upos-sz-mirror08ct.bilivideo.com/upgcxcode/65/46/244954665/244954665_f9x2-1-30106.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1674133321&gen=playurlv2&os=08ctbv&oi=606633952&trid=77eca41ddc4a4dc6926e971dfacc597cu&mid=293793435&platform=pc&upsig=bc2f8140b3ef558b5982b71f2cef2c47&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&bvc=vod&nettype=0&orderid=2,3&buvid=EC1BD8EA-88F6-4951-BF27-2CFE3450C78F167646infoc&build=0&agrr=0&bw=129647&logo=40000000" + ], + "bandwidth": 1036030, + "mimeType": "video/mp4", + "mime_type": "video/mp4", + "codecs": "hev1.1.6.L150.90", + "width": 2160, + "height": 1080, + "frameRate": "58.824", + "frame_rate": "58.824", + "sar": "1:1", + "startWithSap": 1, + "start_with_sap": 1, + "SegmentBase": { + "Initialization": "0-1158", + "indexRange": "1159-2018" + }, + "segment_base": { + "initialization": "0-1158", + "index_range": "1159-2018" + }, + "codecid": 12 + }, + { + "id": 80, + "baseUrl": "https://xy125x75x230x185xy.mcdn.bilivideo.cn:4483/upgcxcode/65/46/244954665/244954665_f9-1-30080.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1674133321&gen=playurlv2&os=mcdn&oi=606633952&trid=000077eca41ddc4a4dc6926e971dfacc597cu&mid=293793435&platform=pc&upsig=377af91003514e9563155a4c87d21fca&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&mcdnid=1002708&bvc=vod&nettype=0&orderid=0,3&buvid=EC1BD8EA-88F6-4951-BF27-2CFE3450C78F167646infoc&build=0&agrr=0&bw=329117&logo=A0000001", + "base_url": "https://xy125x75x230x185xy.mcdn.bilivideo.cn:4483/upgcxcode/65/46/244954665/244954665_f9-1-30080.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1674133321&gen=playurlv2&os=mcdn&oi=606633952&trid=000077eca41ddc4a4dc6926e971dfacc597cu&mid=293793435&platform=pc&upsig=377af91003514e9563155a4c87d21fca&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&mcdnid=1002708&bvc=vod&nettype=0&orderid=0,3&buvid=EC1BD8EA-88F6-4951-BF27-2CFE3450C78F167646infoc&build=0&agrr=0&bw=329117&logo=A0000001", + "backupUrl": [ + "https://upos-sz-estgoss.bilivideo.com/upgcxcode/65/46/244954665/244954665_f9-1-30080.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1674133321&gen=playurlv2&os=upos&oi=606633952&trid=77eca41ddc4a4dc6926e971dfacc597cu&mid=293793435&platform=pc&upsig=aa662c302ff974b8a7ff24f48688465a&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&bvc=vod&nettype=0&orderid=1,3&buvid=EC1BD8EA-88F6-4951-BF27-2CFE3450C78F167646infoc&build=0&agrr=0&bw=329117&logo=40000000", + "https://upos-sz-mirrorali.bilivideo.com/upgcxcode/65/46/244954665/244954665_f9-1-30080.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1674133321&gen=playurlv2&os=alibv&oi=606633952&trid=77eca41ddc4a4dc6926e971dfacc597cu&mid=293793435&platform=pc&upsig=c652d684ccbccee35432aa2c77f551d3&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&bvc=vod&nettype=0&orderid=2,3&buvid=EC1BD8EA-88F6-4951-BF27-2CFE3450C78F167646infoc&build=0&agrr=0&bw=329117&logo=40000000" + ], + "backup_url": [ + "https://upos-sz-estgoss.bilivideo.com/upgcxcode/65/46/244954665/244954665_f9-1-30080.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1674133321&gen=playurlv2&os=upos&oi=606633952&trid=77eca41ddc4a4dc6926e971dfacc597cu&mid=293793435&platform=pc&upsig=aa662c302ff974b8a7ff24f48688465a&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&bvc=vod&nettype=0&orderid=1,3&buvid=EC1BD8EA-88F6-4951-BF27-2CFE3450C78F167646infoc&build=0&agrr=0&bw=329117&logo=40000000", + "https://upos-sz-mirrorali.bilivideo.com/upgcxcode/65/46/244954665/244954665_f9-1-30080.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1674133321&gen=playurlv2&os=alibv&oi=606633952&trid=77eca41ddc4a4dc6926e971dfacc597cu&mid=293793435&platform=pc&upsig=c652d684ccbccee35432aa2c77f551d3&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&bvc=vod&nettype=0&orderid=2,3&buvid=EC1BD8EA-88F6-4951-BF27-2CFE3450C78F167646infoc&build=0&agrr=0&bw=329117&logo=40000000" + ], + "bandwidth": 2630160, + "mimeType": "video/mp4", + "mime_type": "video/mp4", + "codecs": "avc1.640032", + "width": 2160, + "height": 1080, + "frameRate": "29.412", + "frame_rate": "29.412", + "sar": "1:1", + "startWithSap": 1, + "start_with_sap": 1, + "SegmentBase": { + "Initialization": "0-996", + "indexRange": "997-1856" + }, + "segment_base": { + "initialization": "0-996", + "index_range": "997-1856" + }, + "codecid": 7 + }, + { + "id": 80, + "baseUrl": "https://xy125x75x230x185xy.mcdn.bilivideo.cn:4483/upgcxcode/65/46/244954665/244954665_f9x2-1-30077.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1674133321&gen=playurlv2&os=mcdn&oi=606633952&trid=000077eca41ddc4a4dc6926e971dfacc597cu&mid=293793435&platform=pc&upsig=64cffd4fb74b13f6bc0a2467a151e998&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&mcdnid=1002708&bvc=vod&nettype=0&orderid=0,3&buvid=EC1BD8EA-88F6-4951-BF27-2CFE3450C78F167646infoc&build=0&agrr=0&bw=120853&logo=A0000001", + "base_url": "https://xy125x75x230x185xy.mcdn.bilivideo.cn:4483/upgcxcode/65/46/244954665/244954665_f9x2-1-30077.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1674133321&gen=playurlv2&os=mcdn&oi=606633952&trid=000077eca41ddc4a4dc6926e971dfacc597cu&mid=293793435&platform=pc&upsig=64cffd4fb74b13f6bc0a2467a151e998&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&mcdnid=1002708&bvc=vod&nettype=0&orderid=0,3&buvid=EC1BD8EA-88F6-4951-BF27-2CFE3450C78F167646infoc&build=0&agrr=0&bw=120853&logo=A0000001", + "backupUrl": [ + "https://upos-sz-estgoss.bilivideo.com/upgcxcode/65/46/244954665/244954665_f9x2-1-30077.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1674133321&gen=playurlv2&os=upos&oi=606633952&trid=77eca41ddc4a4dc6926e971dfacc597cu&mid=293793435&platform=pc&upsig=d02def5348a0cc0c76eadf6c323c0cb2&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&bvc=vod&nettype=0&orderid=1,3&buvid=EC1BD8EA-88F6-4951-BF27-2CFE3450C78F167646infoc&build=0&agrr=0&bw=120853&logo=40000000", + "https://upos-sz-mirrorali.bilivideo.com/upgcxcode/65/46/244954665/244954665_f9x2-1-30077.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1674133321&gen=playurlv2&os=alibv&oi=606633952&trid=77eca41ddc4a4dc6926e971dfacc597cu&mid=293793435&platform=pc&upsig=da259f0651e828005700c6cc57d9b4b7&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&bvc=vod&nettype=0&orderid=2,3&buvid=EC1BD8EA-88F6-4951-BF27-2CFE3450C78F167646infoc&build=0&agrr=0&bw=120853&logo=40000000" + ], + "backup_url": [ + "https://upos-sz-estgoss.bilivideo.com/upgcxcode/65/46/244954665/244954665_f9x2-1-30077.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1674133321&gen=playurlv2&os=upos&oi=606633952&trid=77eca41ddc4a4dc6926e971dfacc597cu&mid=293793435&platform=pc&upsig=d02def5348a0cc0c76eadf6c323c0cb2&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&bvc=vod&nettype=0&orderid=1,3&buvid=EC1BD8EA-88F6-4951-BF27-2CFE3450C78F167646infoc&build=0&agrr=0&bw=120853&logo=40000000", + "https://upos-sz-mirrorali.bilivideo.com/upgcxcode/65/46/244954665/244954665_f9x2-1-30077.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1674133321&gen=playurlv2&os=alibv&oi=606633952&trid=77eca41ddc4a4dc6926e971dfacc597cu&mid=293793435&platform=pc&upsig=da259f0651e828005700c6cc57d9b4b7&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&bvc=vod&nettype=0&orderid=2,3&buvid=EC1BD8EA-88F6-4951-BF27-2CFE3450C78F167646infoc&build=0&agrr=0&bw=120853&logo=40000000" + ], + "bandwidth": 965710, + "mimeType": "video/mp4", + "mime_type": "video/mp4", + "codecs": "hev1.1.6.L150.90", + "width": 2160, + "height": 1080, + "frameRate": "30.303", + "frame_rate": "30.303", + "sar": "1:1", + "startWithSap": 1, + "start_with_sap": 1, + "SegmentBase": { + "Initialization": "0-1158", + "indexRange": "1159-2018" + }, + "segment_base": { + "initialization": "0-1158", + "index_range": "1159-2018" + }, + "codecid": 12 + }, + { + "id": 64, + "baseUrl": "https://xy125x75x230x185xy.mcdn.bilivideo.cn:4483/upgcxcode/65/46/244954665/244954665_f9-1-30074.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1674133321&gen=playurlv2&os=mcdn&oi=606633952&trid=000077eca41ddc4a4dc6926e971dfacc597cu&mid=293793435&platform=pc&upsig=046aefbf748f9a2cfb1f6319e35952ae&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&mcdnid=1002708&bvc=vod&nettype=0&orderid=0,3&buvid=EC1BD8EA-88F6-4951-BF27-2CFE3450C78F167646infoc&build=0&agrr=0&bw=219847&logo=A0000001", + "base_url": "https://xy125x75x230x185xy.mcdn.bilivideo.cn:4483/upgcxcode/65/46/244954665/244954665_f9-1-30074.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1674133321&gen=playurlv2&os=mcdn&oi=606633952&trid=000077eca41ddc4a4dc6926e971dfacc597cu&mid=293793435&platform=pc&upsig=046aefbf748f9a2cfb1f6319e35952ae&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&mcdnid=1002708&bvc=vod&nettype=0&orderid=0,3&buvid=EC1BD8EA-88F6-4951-BF27-2CFE3450C78F167646infoc&build=0&agrr=0&bw=219847&logo=A0000001", + "backupUrl": [ + "https://upos-sz-mirror08ct.bilivideo.com/upgcxcode/65/46/244954665/244954665_f9-1-30074.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1674133321&gen=playurlv2&os=08ctbv&oi=606633952&trid=77eca41ddc4a4dc6926e971dfacc597cu&mid=293793435&platform=pc&upsig=028507c6f34713e9300e367ce0ef574f&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&bvc=vod&nettype=0&orderid=1,3&buvid=EC1BD8EA-88F6-4951-BF27-2CFE3450C78F167646infoc&build=0&agrr=0&bw=219847&logo=40000000", + "https://upos-sz-mirror08ct.bilivideo.com/upgcxcode/65/46/244954665/244954665_f9-1-30074.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1674133321&gen=playurlv2&os=08ctbv&oi=606633952&trid=77eca41ddc4a4dc6926e971dfacc597cu&mid=293793435&platform=pc&upsig=028507c6f34713e9300e367ce0ef574f&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&bvc=vod&nettype=0&orderid=2,3&buvid=EC1BD8EA-88F6-4951-BF27-2CFE3450C78F167646infoc&build=0&agrr=0&bw=219847&logo=40000000" + ], + "backup_url": [ + "https://upos-sz-mirror08ct.bilivideo.com/upgcxcode/65/46/244954665/244954665_f9-1-30074.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1674133321&gen=playurlv2&os=08ctbv&oi=606633952&trid=77eca41ddc4a4dc6926e971dfacc597cu&mid=293793435&platform=pc&upsig=028507c6f34713e9300e367ce0ef574f&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&bvc=vod&nettype=0&orderid=1,3&buvid=EC1BD8EA-88F6-4951-BF27-2CFE3450C78F167646infoc&build=0&agrr=0&bw=219847&logo=40000000", + "https://upos-sz-mirror08ct.bilivideo.com/upgcxcode/65/46/244954665/244954665_f9-1-30074.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1674133321&gen=playurlv2&os=08ctbv&oi=606633952&trid=77eca41ddc4a4dc6926e971dfacc597cu&mid=293793435&platform=pc&upsig=028507c6f34713e9300e367ce0ef574f&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&bvc=vod&nettype=0&orderid=2,3&buvid=EC1BD8EA-88F6-4951-BF27-2CFE3450C78F167646infoc&build=0&agrr=0&bw=219847&logo=40000000" + ], + "bandwidth": 1756920, + "mimeType": "video/mp4", + "mime_type": "video/mp4", + "codecs": "avc1.640028", + "width": 1440, + "height": 720, + "frameRate": "62.500", + "frame_rate": "62.500", + "sar": "1:1", + "startWithSap": 1, + "start_with_sap": 1, + "SegmentBase": { + "Initialization": "0-994", + "indexRange": "995-1854" + }, + "segment_base": { + "initialization": "0-994", + "index_range": "995-1854" + }, + "codecid": 7 + }, + { + "id": 64, + "baseUrl": "https://xy125x75x230x185xy.mcdn.bilivideo.cn:4483/upgcxcode/65/46/244954665/244954665_f9x2-1-30076.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1674133321&gen=playurlv2&os=mcdn&oi=606633952&trid=000077eca41ddc4a4dc6926e971dfacc597cu&mid=293793435&platform=pc&upsig=764e4d4e7bc28c908a7da3ad741b2b53&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&mcdnid=1002708&bvc=vod&nettype=0&orderid=0,3&buvid=EC1BD8EA-88F6-4951-BF27-2CFE3450C78F167646infoc&build=0&agrr=0&bw=126306&logo=A0000001", + "base_url": "https://xy125x75x230x185xy.mcdn.bilivideo.cn:4483/upgcxcode/65/46/244954665/244954665_f9x2-1-30076.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1674133321&gen=playurlv2&os=mcdn&oi=606633952&trid=000077eca41ddc4a4dc6926e971dfacc597cu&mid=293793435&platform=pc&upsig=764e4d4e7bc28c908a7da3ad741b2b53&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&mcdnid=1002708&bvc=vod&nettype=0&orderid=0,3&buvid=EC1BD8EA-88F6-4951-BF27-2CFE3450C78F167646infoc&build=0&agrr=0&bw=126306&logo=A0000001", + "backupUrl": [ + "https://upos-sz-mirror08ct.bilivideo.com/upgcxcode/65/46/244954665/244954665_f9x2-1-30076.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1674133321&gen=playurlv2&os=08ctbv&oi=606633952&trid=77eca41ddc4a4dc6926e971dfacc597cu&mid=293793435&platform=pc&upsig=1702a3c8c1e1a4d309e39b196465e903&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&bvc=vod&nettype=0&orderid=1,3&buvid=EC1BD8EA-88F6-4951-BF27-2CFE3450C78F167646infoc&build=0&agrr=0&bw=126306&logo=40000000", + "https://upos-sz-mirror08ct.bilivideo.com/upgcxcode/65/46/244954665/244954665_f9x2-1-30076.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1674133321&gen=playurlv2&os=08ctbv&oi=606633952&trid=77eca41ddc4a4dc6926e971dfacc597cu&mid=293793435&platform=pc&upsig=1702a3c8c1e1a4d309e39b196465e903&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&bvc=vod&nettype=0&orderid=2,3&buvid=EC1BD8EA-88F6-4951-BF27-2CFE3450C78F167646infoc&build=0&agrr=0&bw=126306&logo=40000000" + ], + "backup_url": [ + "https://upos-sz-mirror08ct.bilivideo.com/upgcxcode/65/46/244954665/244954665_f9x2-1-30076.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1674133321&gen=playurlv2&os=08ctbv&oi=606633952&trid=77eca41ddc4a4dc6926e971dfacc597cu&mid=293793435&platform=pc&upsig=1702a3c8c1e1a4d309e39b196465e903&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&bvc=vod&nettype=0&orderid=1,3&buvid=EC1BD8EA-88F6-4951-BF27-2CFE3450C78F167646infoc&build=0&agrr=0&bw=126306&logo=40000000", + "https://upos-sz-mirror08ct.bilivideo.com/upgcxcode/65/46/244954665/244954665_f9x2-1-30076.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1674133321&gen=playurlv2&os=08ctbv&oi=606633952&trid=77eca41ddc4a4dc6926e971dfacc597cu&mid=293793435&platform=pc&upsig=1702a3c8c1e1a4d309e39b196465e903&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&bvc=vod&nettype=0&orderid=2,3&buvid=EC1BD8EA-88F6-4951-BF27-2CFE3450C78F167646infoc&build=0&agrr=0&bw=126306&logo=40000000" + ], + "bandwidth": 1009331, + "mimeType": "video/mp4", + "mime_type": "video/mp4", + "codecs": "hev1.1.6.L120.90", + "width": 1440, + "height": 720, + "frameRate": "58.824", + "frame_rate": "58.824", + "sar": "1:1", + "startWithSap": 1, + "start_with_sap": 1, + "SegmentBase": { + "Initialization": "0-1159", + "indexRange": "1160-2019" + }, + "segment_base": { + "initialization": "0-1159", + "index_range": "1160-2019" + }, + "codecid": 12 + }, + { + "id": 32, + "baseUrl": "https://xy125x75x230x185xy.mcdn.bilivideo.cn:4483/upgcxcode/65/46/244954665/244954665_f9-1-30032.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1674133321&gen=playurlv2&os=mcdn&oi=606633952&trid=000077eca41ddc4a4dc6926e971dfacc597cu&mid=293793435&platform=pc&upsig=e251d9fa3d4369ace719b082eba78280&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&mcdnid=1002708&bvc=vod&nettype=0&orderid=0,3&buvid=EC1BD8EA-88F6-4951-BF27-2CFE3450C78F167646infoc&build=0&agrr=0&bw=98889&logo=A0000001", + "base_url": "https://xy125x75x230x185xy.mcdn.bilivideo.cn:4483/upgcxcode/65/46/244954665/244954665_f9-1-30032.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1674133321&gen=playurlv2&os=mcdn&oi=606633952&trid=000077eca41ddc4a4dc6926e971dfacc597cu&mid=293793435&platform=pc&upsig=e251d9fa3d4369ace719b082eba78280&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&mcdnid=1002708&bvc=vod&nettype=0&orderid=0,3&buvid=EC1BD8EA-88F6-4951-BF27-2CFE3450C78F167646infoc&build=0&agrr=0&bw=98889&logo=A0000001", + "backupUrl": [ + "https://upos-sz-mirror08ct.bilivideo.com/upgcxcode/65/46/244954665/244954665_f9-1-30032.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1674133321&gen=playurlv2&os=08ctbv&oi=606633952&trid=77eca41ddc4a4dc6926e971dfacc597cu&mid=293793435&platform=pc&upsig=5d48dd328f14b134c11d278c7d901794&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&bvc=vod&nettype=0&orderid=1,3&buvid=EC1BD8EA-88F6-4951-BF27-2CFE3450C78F167646infoc&build=0&agrr=0&bw=98889&logo=40000000", + "https://upos-sz-mirror08ct.bilivideo.com/upgcxcode/65/46/244954665/244954665_f9-1-30032.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1674133321&gen=playurlv2&os=08ctbv&oi=606633952&trid=77eca41ddc4a4dc6926e971dfacc597cu&mid=293793435&platform=pc&upsig=5d48dd328f14b134c11d278c7d901794&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&bvc=vod&nettype=0&orderid=2,3&buvid=EC1BD8EA-88F6-4951-BF27-2CFE3450C78F167646infoc&build=0&agrr=0&bw=98889&logo=40000000" + ], + "backup_url": [ + "https://upos-sz-mirror08ct.bilivideo.com/upgcxcode/65/46/244954665/244954665_f9-1-30032.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1674133321&gen=playurlv2&os=08ctbv&oi=606633952&trid=77eca41ddc4a4dc6926e971dfacc597cu&mid=293793435&platform=pc&upsig=5d48dd328f14b134c11d278c7d901794&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&bvc=vod&nettype=0&orderid=1,3&buvid=EC1BD8EA-88F6-4951-BF27-2CFE3450C78F167646infoc&build=0&agrr=0&bw=98889&logo=40000000", + "https://upos-sz-mirror08ct.bilivideo.com/upgcxcode/65/46/244954665/244954665_f9-1-30032.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1674133321&gen=playurlv2&os=08ctbv&oi=606633952&trid=77eca41ddc4a4dc6926e971dfacc597cu&mid=293793435&platform=pc&upsig=5d48dd328f14b134c11d278c7d901794&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&bvc=vod&nettype=0&orderid=2,3&buvid=EC1BD8EA-88F6-4951-BF27-2CFE3450C78F167646infoc&build=0&agrr=0&bw=98889&logo=40000000" + ], + "bandwidth": 790280, + "mimeType": "video/mp4", + "mime_type": "video/mp4", + "codecs": "avc1.64001F", + "width": 960, + "height": 480, + "frameRate": "29.412", + "frame_rate": "29.412", + "sar": "1:1", + "startWithSap": 1, + "start_with_sap": 1, + "SegmentBase": { + "Initialization": "0-994", + "indexRange": "995-1854" + }, + "segment_base": { + "initialization": "0-994", + "index_range": "995-1854" + }, + "codecid": 7 + }, + { + "id": 32, + "baseUrl": "https://xy125x75x230x185xy.mcdn.bilivideo.cn:4483/upgcxcode/65/46/244954665/244954665_f9x2-1-30033.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1674133321&gen=playurlv2&os=mcdn&oi=606633952&trid=000077eca41ddc4a4dc6926e971dfacc597cu&mid=293793435&platform=pc&upsig=6b4c4b1192085276a29f276a1acd1bc9&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&mcdnid=1002708&bvc=vod&nettype=0&orderid=0,3&buvid=EC1BD8EA-88F6-4951-BF27-2CFE3450C78F167646infoc&build=0&agrr=0&bw=36592&logo=A0000001", + "base_url": "https://xy125x75x230x185xy.mcdn.bilivideo.cn:4483/upgcxcode/65/46/244954665/244954665_f9x2-1-30033.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1674133321&gen=playurlv2&os=mcdn&oi=606633952&trid=000077eca41ddc4a4dc6926e971dfacc597cu&mid=293793435&platform=pc&upsig=6b4c4b1192085276a29f276a1acd1bc9&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&mcdnid=1002708&bvc=vod&nettype=0&orderid=0,3&buvid=EC1BD8EA-88F6-4951-BF27-2CFE3450C78F167646infoc&build=0&agrr=0&bw=36592&logo=A0000001", + "backupUrl": [ + "https://upos-sz-mirror08ct.bilivideo.com/upgcxcode/65/46/244954665/244954665_f9x2-1-30033.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1674133321&gen=playurlv2&os=08ctbv&oi=606633952&trid=77eca41ddc4a4dc6926e971dfacc597cu&mid=293793435&platform=pc&upsig=ade18a577cc6f16f39396e9275939846&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&bvc=vod&nettype=0&orderid=1,3&buvid=EC1BD8EA-88F6-4951-BF27-2CFE3450C78F167646infoc&build=0&agrr=0&bw=36592&logo=40000000", + "https://upos-sz-mirror08ct.bilivideo.com/upgcxcode/65/46/244954665/244954665_f9x2-1-30033.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1674133321&gen=playurlv2&os=08ctbv&oi=606633952&trid=77eca41ddc4a4dc6926e971dfacc597cu&mid=293793435&platform=pc&upsig=ade18a577cc6f16f39396e9275939846&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&bvc=vod&nettype=0&orderid=2,3&buvid=EC1BD8EA-88F6-4951-BF27-2CFE3450C78F167646infoc&build=0&agrr=0&bw=36592&logo=40000000" + ], + "backup_url": [ + "https://upos-sz-mirror08ct.bilivideo.com/upgcxcode/65/46/244954665/244954665_f9x2-1-30033.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1674133321&gen=playurlv2&os=08ctbv&oi=606633952&trid=77eca41ddc4a4dc6926e971dfacc597cu&mid=293793435&platform=pc&upsig=ade18a577cc6f16f39396e9275939846&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&bvc=vod&nettype=0&orderid=1,3&buvid=EC1BD8EA-88F6-4951-BF27-2CFE3450C78F167646infoc&build=0&agrr=0&bw=36592&logo=40000000", + "https://upos-sz-mirror08ct.bilivideo.com/upgcxcode/65/46/244954665/244954665_f9x2-1-30033.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1674133321&gen=playurlv2&os=08ctbv&oi=606633952&trid=77eca41ddc4a4dc6926e971dfacc597cu&mid=293793435&platform=pc&upsig=ade18a577cc6f16f39396e9275939846&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&bvc=vod&nettype=0&orderid=2,3&buvid=EC1BD8EA-88F6-4951-BF27-2CFE3450C78F167646infoc&build=0&agrr=0&bw=36592&logo=40000000" + ], + "bandwidth": 292405, + "mimeType": "video/mp4", + "mime_type": "video/mp4", + "codecs": "hev1.1.6.L120.90", + "width": 960, + "height": 480, + "frameRate": "30.303", + "frame_rate": "30.303", + "sar": "1:1", + "startWithSap": 1, + "start_with_sap": 1, + "SegmentBase": { + "Initialization": "0-1157", + "indexRange": "1158-2017" + }, + "segment_base": { + "initialization": "0-1157", + "index_range": "1158-2017" + }, + "codecid": 12 + }, + { + "id": 16, + "baseUrl": "https://xy125x75x230x185xy.mcdn.bilivideo.cn:4483/upgcxcode/65/46/244954665/244954665_f9x2-1-30011.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1674133321&gen=playurlv2&os=mcdn&oi=606633952&trid=000077eca41ddc4a4dc6926e971dfacc597cu&mid=293793435&platform=pc&upsig=c6bf79e46e41fbf9e0792028448796b2&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&mcdnid=1002708&bvc=vod&nettype=0&orderid=0,3&buvid=EC1BD8EA-88F6-4951-BF27-2CFE3450C78F167646infoc&build=0&agrr=0&bw=25561&logo=A0000001", + "base_url": "https://xy125x75x230x185xy.mcdn.bilivideo.cn:4483/upgcxcode/65/46/244954665/244954665_f9x2-1-30011.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1674133321&gen=playurlv2&os=mcdn&oi=606633952&trid=000077eca41ddc4a4dc6926e971dfacc597cu&mid=293793435&platform=pc&upsig=c6bf79e46e41fbf9e0792028448796b2&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&mcdnid=1002708&bvc=vod&nettype=0&orderid=0,3&buvid=EC1BD8EA-88F6-4951-BF27-2CFE3450C78F167646infoc&build=0&agrr=0&bw=25561&logo=A0000001", + "backupUrl": [ + "https://upos-sz-estgoss.bilivideo.com/upgcxcode/65/46/244954665/244954665_f9x2-1-30011.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1674133321&gen=playurlv2&os=upos&oi=606633952&trid=77eca41ddc4a4dc6926e971dfacc597cu&mid=293793435&platform=pc&upsig=c2ac7e3dfb9ea6506b0f7b6abee76b21&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&bvc=vod&nettype=0&orderid=1,3&buvid=EC1BD8EA-88F6-4951-BF27-2CFE3450C78F167646infoc&build=0&agrr=0&bw=25561&logo=40000000", + "https://upos-sz-mirrorali.bilivideo.com/upgcxcode/65/46/244954665/244954665_f9x2-1-30011.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1674133321&gen=playurlv2&os=alibv&oi=606633952&trid=77eca41ddc4a4dc6926e971dfacc597cu&mid=293793435&platform=pc&upsig=25d5ffbb285c281922818dfce1c46351&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&bvc=vod&nettype=0&orderid=2,3&buvid=EC1BD8EA-88F6-4951-BF27-2CFE3450C78F167646infoc&build=0&agrr=0&bw=25561&logo=40000000" + ], + "backup_url": [ + "https://upos-sz-estgoss.bilivideo.com/upgcxcode/65/46/244954665/244954665_f9x2-1-30011.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1674133321&gen=playurlv2&os=upos&oi=606633952&trid=77eca41ddc4a4dc6926e971dfacc597cu&mid=293793435&platform=pc&upsig=c2ac7e3dfb9ea6506b0f7b6abee76b21&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&bvc=vod&nettype=0&orderid=1,3&buvid=EC1BD8EA-88F6-4951-BF27-2CFE3450C78F167646infoc&build=0&agrr=0&bw=25561&logo=40000000", + "https://upos-sz-mirrorali.bilivideo.com/upgcxcode/65/46/244954665/244954665_f9x2-1-30011.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1674133321&gen=playurlv2&os=alibv&oi=606633952&trid=77eca41ddc4a4dc6926e971dfacc597cu&mid=293793435&platform=pc&upsig=25d5ffbb285c281922818dfce1c46351&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&bvc=vod&nettype=0&orderid=2,3&buvid=EC1BD8EA-88F6-4951-BF27-2CFE3450C78F167646infoc&build=0&agrr=0&bw=25561&logo=40000000" + ], + "bandwidth": 204255, + "mimeType": "video/mp4", + "mime_type": "video/mp4", + "codecs": "hev1.1.6.L120.90", + "width": 720, + "height": 360, + "frameRate": "30.303", + "frame_rate": "30.303", + "sar": "1:1", + "startWithSap": 1, + "start_with_sap": 1, + "SegmentBase": { + "Initialization": "0-1157", + "indexRange": "1158-2017" + }, + "segment_base": { + "initialization": "0-1157", + "index_range": "1158-2017" + }, + "codecid": 12 + }, + { + "id": 16, + "baseUrl": "https://xy125x75x230x185xy.mcdn.bilivideo.cn:4483/upgcxcode/65/46/244954665/244954665_f9-1-30016.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1674133321&gen=playurlv2&os=mcdn&oi=606633952&trid=000077eca41ddc4a4dc6926e971dfacc597cu&mid=293793435&platform=pc&upsig=84e198e866f75a6eda22a54e869c9c19&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&mcdnid=1002708&bvc=vod&nettype=0&orderid=0,3&buvid=EC1BD8EA-88F6-4951-BF27-2CFE3450C78F167646infoc&build=0&agrr=0&bw=44249&logo=A0000001", + "base_url": "https://xy125x75x230x185xy.mcdn.bilivideo.cn:4483/upgcxcode/65/46/244954665/244954665_f9-1-30016.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1674133321&gen=playurlv2&os=mcdn&oi=606633952&trid=000077eca41ddc4a4dc6926e971dfacc597cu&mid=293793435&platform=pc&upsig=84e198e866f75a6eda22a54e869c9c19&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&mcdnid=1002708&bvc=vod&nettype=0&orderid=0,3&buvid=EC1BD8EA-88F6-4951-BF27-2CFE3450C78F167646infoc&build=0&agrr=0&bw=44249&logo=A0000001", + "backupUrl": [ + "https://upos-sz-mirror08ct.bilivideo.com/upgcxcode/65/46/244954665/244954665_f9-1-30016.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1674133321&gen=playurlv2&os=08ctbv&oi=606633952&trid=77eca41ddc4a4dc6926e971dfacc597cu&mid=293793435&platform=pc&upsig=3fc57769d6f587c3c62db6406b2dea71&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&bvc=vod&nettype=0&orderid=1,3&buvid=EC1BD8EA-88F6-4951-BF27-2CFE3450C78F167646infoc&build=0&agrr=0&bw=44249&logo=40000000", + "https://upos-sz-mirror08ct.bilivideo.com/upgcxcode/65/46/244954665/244954665_f9-1-30016.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1674133321&gen=playurlv2&os=08ctbv&oi=606633952&trid=77eca41ddc4a4dc6926e971dfacc597cu&mid=293793435&platform=pc&upsig=3fc57769d6f587c3c62db6406b2dea71&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&bvc=vod&nettype=0&orderid=2,3&buvid=EC1BD8EA-88F6-4951-BF27-2CFE3450C78F167646infoc&build=0&agrr=0&bw=44249&logo=40000000" + ], + "backup_url": [ + "https://upos-sz-mirror08ct.bilivideo.com/upgcxcode/65/46/244954665/244954665_f9-1-30016.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1674133321&gen=playurlv2&os=08ctbv&oi=606633952&trid=77eca41ddc4a4dc6926e971dfacc597cu&mid=293793435&platform=pc&upsig=3fc57769d6f587c3c62db6406b2dea71&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&bvc=vod&nettype=0&orderid=1,3&buvid=EC1BD8EA-88F6-4951-BF27-2CFE3450C78F167646infoc&build=0&agrr=0&bw=44249&logo=40000000", + "https://upos-sz-mirror08ct.bilivideo.com/upgcxcode/65/46/244954665/244954665_f9-1-30016.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1674133321&gen=playurlv2&os=08ctbv&oi=606633952&trid=77eca41ddc4a4dc6926e971dfacc597cu&mid=293793435&platform=pc&upsig=3fc57769d6f587c3c62db6406b2dea71&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&bvc=vod&nettype=0&orderid=2,3&buvid=EC1BD8EA-88F6-4951-BF27-2CFE3450C78F167646infoc&build=0&agrr=0&bw=44249&logo=40000000" + ], + "bandwidth": 353623, + "mimeType": "video/mp4", + "mime_type": "video/mp4", + "codecs": "avc1.64001E", + "width": 720, + "height": 360, + "frameRate": "29.412", + "frame_rate": "29.412", + "sar": "1:1", + "startWithSap": 1, + "start_with_sap": 1, + "SegmentBase": { + "Initialization": "0-1003", + "indexRange": "1004-1863" + }, + "segment_base": { + "initialization": "0-1003", + "index_range": "1004-1863" + }, + "codecid": 7 + } + ], + "audio": [ + { + "id": 30280, + "baseUrl": "https://xy125x75x230x185xy.mcdn.bilivideo.cn:4483/upgcxcode/65/46/244954665/244954665_f9-1-30280.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1674133321&gen=playurlv2&os=mcdn&oi=606633952&trid=000077eca41ddc4a4dc6926e971dfacc597cu&mid=293793435&platform=pc&upsig=e983f8b4dc35aa8469dc0742d0371e19&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&mcdnid=1002708&bvc=vod&nettype=0&orderid=0,3&buvid=EC1BD8EA-88F6-4951-BF27-2CFE3450C78F167646infoc&build=0&agrr=0&bw=41220&logo=A0000001", + "base_url": "https://xy125x75x230x185xy.mcdn.bilivideo.cn:4483/upgcxcode/65/46/244954665/244954665_f9-1-30280.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1674133321&gen=playurlv2&os=mcdn&oi=606633952&trid=000077eca41ddc4a4dc6926e971dfacc597cu&mid=293793435&platform=pc&upsig=e983f8b4dc35aa8469dc0742d0371e19&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&mcdnid=1002708&bvc=vod&nettype=0&orderid=0,3&buvid=EC1BD8EA-88F6-4951-BF27-2CFE3450C78F167646infoc&build=0&agrr=0&bw=41220&logo=A0000001", + "backupUrl": [ + "https://upos-sz-estgoss.bilivideo.com/upgcxcode/65/46/244954665/244954665_f9-1-30280.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1674133321&gen=playurlv2&os=upos&oi=606633952&trid=77eca41ddc4a4dc6926e971dfacc597cu&mid=293793435&platform=pc&upsig=71b057cb7399c7f7e94932446696c479&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&bvc=vod&nettype=0&orderid=1,3&buvid=EC1BD8EA-88F6-4951-BF27-2CFE3450C78F167646infoc&build=0&agrr=0&bw=41220&logo=40000000", + "https://upos-sz-mirrorali.bilivideo.com/upgcxcode/65/46/244954665/244954665_f9-1-30280.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1674133321&gen=playurlv2&os=alibv&oi=606633952&trid=77eca41ddc4a4dc6926e971dfacc597cu&mid=293793435&platform=pc&upsig=e876c0a1b414c68f1e8a8c986e9de72e&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&bvc=vod&nettype=0&orderid=2,3&buvid=EC1BD8EA-88F6-4951-BF27-2CFE3450C78F167646infoc&build=0&agrr=0&bw=41220&logo=40000000" + ], + "backup_url": [ + "https://upos-sz-estgoss.bilivideo.com/upgcxcode/65/46/244954665/244954665_f9-1-30280.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1674133321&gen=playurlv2&os=upos&oi=606633952&trid=77eca41ddc4a4dc6926e971dfacc597cu&mid=293793435&platform=pc&upsig=71b057cb7399c7f7e94932446696c479&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&bvc=vod&nettype=0&orderid=1,3&buvid=EC1BD8EA-88F6-4951-BF27-2CFE3450C78F167646infoc&build=0&agrr=0&bw=41220&logo=40000000", + "https://upos-sz-mirrorali.bilivideo.com/upgcxcode/65/46/244954665/244954665_f9-1-30280.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1674133321&gen=playurlv2&os=alibv&oi=606633952&trid=77eca41ddc4a4dc6926e971dfacc597cu&mid=293793435&platform=pc&upsig=e876c0a1b414c68f1e8a8c986e9de72e&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&bvc=vod&nettype=0&orderid=2,3&buvid=EC1BD8EA-88F6-4951-BF27-2CFE3450C78F167646infoc&build=0&agrr=0&bw=41220&logo=40000000" + ], + "bandwidth": 329376, + "mimeType": "audio/mp4", + "mime_type": "audio/mp4", + "codecs": "mp4a.40.2", + "width": 0, + "height": 0, + "frameRate": "", + "frame_rate": "", + "sar": "", + "startWithSap": 0, + "start_with_sap": 0, + "SegmentBase": { + "Initialization": "0-907", + "indexRange": "908-1779" + }, + "segment_base": { + "initialization": "0-907", + "index_range": "908-1779" + }, + "codecid": 0 + }, + { + "id": 30216, + "baseUrl": "https://xy125x75x230x185xy.mcdn.bilivideo.cn:4483/upgcxcode/65/46/244954665/244954665_f9-1-30216.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1674133321&gen=playurlv2&os=mcdn&oi=606633952&trid=000077eca41ddc4a4dc6926e971dfacc597cu&mid=293793435&platform=pc&upsig=c61129748923407b50d98357e2925ec5&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&mcdnid=1002708&bvc=vod&nettype=0&orderid=0,3&buvid=EC1BD8EA-88F6-4951-BF27-2CFE3450C78F167646infoc&build=0&agrr=0&bw=8419&logo=A0000001", + "base_url": "https://xy125x75x230x185xy.mcdn.bilivideo.cn:4483/upgcxcode/65/46/244954665/244954665_f9-1-30216.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1674133321&gen=playurlv2&os=mcdn&oi=606633952&trid=000077eca41ddc4a4dc6926e971dfacc597cu&mid=293793435&platform=pc&upsig=c61129748923407b50d98357e2925ec5&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&mcdnid=1002708&bvc=vod&nettype=0&orderid=0,3&buvid=EC1BD8EA-88F6-4951-BF27-2CFE3450C78F167646infoc&build=0&agrr=0&bw=8419&logo=A0000001", + "backupUrl": [ + "https://upos-sz-mirror08ct.bilivideo.com/upgcxcode/65/46/244954665/244954665_f9-1-30216.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1674133321&gen=playurlv2&os=08ctbv&oi=606633952&trid=77eca41ddc4a4dc6926e971dfacc597cu&mid=293793435&platform=pc&upsig=733c928a078ae018899ebf9de87eecf4&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&bvc=vod&nettype=0&orderid=1,3&buvid=EC1BD8EA-88F6-4951-BF27-2CFE3450C78F167646infoc&build=0&agrr=0&bw=8419&logo=40000000", + "https://upos-sz-mirror08ct.bilivideo.com/upgcxcode/65/46/244954665/244954665_f9-1-30216.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1674133321&gen=playurlv2&os=08ctbv&oi=606633952&trid=77eca41ddc4a4dc6926e971dfacc597cu&mid=293793435&platform=pc&upsig=733c928a078ae018899ebf9de87eecf4&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&bvc=vod&nettype=0&orderid=2,3&buvid=EC1BD8EA-88F6-4951-BF27-2CFE3450C78F167646infoc&build=0&agrr=0&bw=8419&logo=40000000" + ], + "backup_url": [ + "https://upos-sz-mirror08ct.bilivideo.com/upgcxcode/65/46/244954665/244954665_f9-1-30216.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1674133321&gen=playurlv2&os=08ctbv&oi=606633952&trid=77eca41ddc4a4dc6926e971dfacc597cu&mid=293793435&platform=pc&upsig=733c928a078ae018899ebf9de87eecf4&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&bvc=vod&nettype=0&orderid=1,3&buvid=EC1BD8EA-88F6-4951-BF27-2CFE3450C78F167646infoc&build=0&agrr=0&bw=8419&logo=40000000", + "https://upos-sz-mirror08ct.bilivideo.com/upgcxcode/65/46/244954665/244954665_f9-1-30216.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1674133321&gen=playurlv2&os=08ctbv&oi=606633952&trid=77eca41ddc4a4dc6926e971dfacc597cu&mid=293793435&platform=pc&upsig=733c928a078ae018899ebf9de87eecf4&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&bvc=vod&nettype=0&orderid=2,3&buvid=EC1BD8EA-88F6-4951-BF27-2CFE3450C78F167646infoc&build=0&agrr=0&bw=8419&logo=40000000" + ], + "bandwidth": 67279, + "mimeType": "audio/mp4", + "mime_type": "audio/mp4", + "codecs": "mp4a.40.2", + "width": 0, + "height": 0, + "frameRate": "", + "frame_rate": "", + "sar": "", + "startWithSap": 0, + "start_with_sap": 0, + "SegmentBase": { + "Initialization": "0-941", + "indexRange": "942-1813" + }, + "segment_base": { + "initialization": "0-941", + "index_range": "942-1813" + }, + "codecid": 0 + }, + { + "id": 30232, + "baseUrl": "https://xy125x75x230x185xy.mcdn.bilivideo.cn:4483/upgcxcode/65/46/244954665/244954665_f9-1-30232.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1674133321&gen=playurlv2&os=mcdn&oi=606633952&trid=000077eca41ddc4a4dc6926e971dfacc597cu&mid=293793435&platform=pc&upsig=6682acc0dc48f4ac7d397861c537feab&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&mcdnid=1002708&bvc=vod&nettype=0&orderid=0,3&buvid=EC1BD8EA-88F6-4951-BF27-2CFE3450C78F167646infoc&build=0&agrr=0&bw=16615&logo=A0000001", + "base_url": "https://xy125x75x230x185xy.mcdn.bilivideo.cn:4483/upgcxcode/65/46/244954665/244954665_f9-1-30232.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1674133321&gen=playurlv2&os=mcdn&oi=606633952&trid=000077eca41ddc4a4dc6926e971dfacc597cu&mid=293793435&platform=pc&upsig=6682acc0dc48f4ac7d397861c537feab&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&mcdnid=1002708&bvc=vod&nettype=0&orderid=0,3&buvid=EC1BD8EA-88F6-4951-BF27-2CFE3450C78F167646infoc&build=0&agrr=0&bw=16615&logo=A0000001", + "backupUrl": [ + "https://upos-sz-mirror08ct.bilivideo.com/upgcxcode/65/46/244954665/244954665_f9-1-30232.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1674133321&gen=playurlv2&os=08ctbv&oi=606633952&trid=77eca41ddc4a4dc6926e971dfacc597cu&mid=293793435&platform=pc&upsig=80a5d0e507dddbe424c2394593bd9324&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&bvc=vod&nettype=0&orderid=1,3&buvid=EC1BD8EA-88F6-4951-BF27-2CFE3450C78F167646infoc&build=0&agrr=0&bw=16615&logo=40000000", + "https://upos-sz-mirror08ct.bilivideo.com/upgcxcode/65/46/244954665/244954665_f9-1-30232.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1674133321&gen=playurlv2&os=08ctbv&oi=606633952&trid=77eca41ddc4a4dc6926e971dfacc597cu&mid=293793435&platform=pc&upsig=80a5d0e507dddbe424c2394593bd9324&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&bvc=vod&nettype=0&orderid=2,3&buvid=EC1BD8EA-88F6-4951-BF27-2CFE3450C78F167646infoc&build=0&agrr=0&bw=16615&logo=40000000" + ], + "backup_url": [ + "https://upos-sz-mirror08ct.bilivideo.com/upgcxcode/65/46/244954665/244954665_f9-1-30232.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1674133321&gen=playurlv2&os=08ctbv&oi=606633952&trid=77eca41ddc4a4dc6926e971dfacc597cu&mid=293793435&platform=pc&upsig=80a5d0e507dddbe424c2394593bd9324&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&bvc=vod&nettype=0&orderid=1,3&buvid=EC1BD8EA-88F6-4951-BF27-2CFE3450C78F167646infoc&build=0&agrr=0&bw=16615&logo=40000000", + "https://upos-sz-mirror08ct.bilivideo.com/upgcxcode/65/46/244954665/244954665_f9-1-30232.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1674133321&gen=playurlv2&os=08ctbv&oi=606633952&trid=77eca41ddc4a4dc6926e971dfacc597cu&mid=293793435&platform=pc&upsig=80a5d0e507dddbe424c2394593bd9324&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&bvc=vod&nettype=0&orderid=2,3&buvid=EC1BD8EA-88F6-4951-BF27-2CFE3450C78F167646infoc&build=0&agrr=0&bw=16615&logo=40000000" + ], + "bandwidth": 132768, + "mimeType": "audio/mp4", + "mime_type": "audio/mp4", + "codecs": "mp4a.40.2", + "width": 0, + "height": 0, + "frameRate": "", + "frame_rate": "", + "sar": "", + "startWithSap": 0, + "start_with_sap": 0, + "SegmentBase": { + "Initialization": "0-907", + "indexRange": "908-1779" + }, + "segment_base": { + "initialization": "0-907", + "index_range": "908-1779" + }, + "codecid": 0 + } + ], + "dolby": { + "type": 0, + "audio": null + }, + "flac": null + }, + "support_formats": [ + { + "quality": 125, + "format": "hdflv2", + "new_description": "HDR 真彩", + "display_desc": "HDR", + "superscript": "", + "codecs": [ + "hev1.2.4.L156.90" + ] + }, + { + "quality": 120, + "format": "hdflv2", + "new_description": "4K 超清", + "display_desc": "4K", + "superscript": "", + "codecs": [ + "avc1.640034", + "hev1.1.6.L156.90" + ] + }, + { + "quality": 116, + "format": "flv_p60", + "new_description": "1080P 60帧", + "display_desc": "1080P", + "superscript": "60帧", + "codecs": [ + "avc1.640032", + "hev1.1.6.L150.90" + ] + }, + { + "quality": 80, + "format": "flv", + "new_description": "1080P 高清", + "display_desc": "1080P", + "superscript": "", + "codecs": [ + "avc1.640032", + "hev1.1.6.L150.90" + ] + }, + { + "quality": 64, + "format": "flv720_p60", + "new_description": "720P 60帧", + "display_desc": "720P", + "superscript": "60帧", + "codecs": [ + "avc1.640028", + "hev1.1.6.L120.90" + ] + }, + { + "quality": 32, + "format": "flv480", + "new_description": "480P 清晰", + "display_desc": "480P", + "superscript": "", + "codecs": [ + "avc1.64001F", + "hev1.1.6.L120.90" + ] + }, + { + "quality": 16, + "format": "mp4", + "new_description": "360P 流畅", + "display_desc": "360P", + "superscript": "", + "codecs": [ + "avc1.64001E", + "hev1.1.6.L120.90" + ] + } + ], + "high_format": null, + "last_play_time": 0, + "last_play_cid": 0 + } +} +``` + +
+ +## 视频取流说明 + +关于拉流: + +1. MP4 / ~~FLV~~ 格式仅需拉视频流,DASH 格式需同时拉视频与伴音流 +2. 如 DASH 格式需要杜比或无损的伴音,需要取对应`dolby`或`flac`字段中的流 +3. **注意 Unicode 转义符** + +~~关于分段:~~ + +~~FLV 格式可能产生分段情况,将`$.data.durl[1-n].url`或`$.data.durl[1-n].backup_url[0]`中的内容作为 URL 进行 GET 请求进行分段播放,如需下载需要合并~~(FLV 格式已下线,不会存在分段现象) + +关于鉴权: + +1. WEB 端取流需要验证防盗链,即`referer`为 `.bilibili.com`域名下且 UA 不能为空 +2. APP 端也需要验证防盗链,即 UA 需要含有`Mozilla/5.0 BiliDroid/*.*.* (bbcallen@gmail.com)`(*为版本) +3. 如`referer`或 UA 错误的情况会被判定为盗链,返回`403 Forbidden`故无法取流 +4. 若传`platform=html5`参数取流,则不会进行防盗链验证,即可通过 HTML 标签`